48
DWD EGOWS 2007 Haucke - The NinJo CASE NinJo : NinJo : The NinJo CASE The NinJo CASE Computer Aided Software Computer Aided Software Engineering Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

Embed Size (px)

Citation preview

Page 1: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

NinJo : NinJo : The NinJo CASEThe NinJo CASEComputer Aided Software EngineeringComputer Aided Software Engineering

Sibylle Haucke, DWD

EGOWS 2007 Dublin

Page 2: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 3: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 4: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams

Perforce source depot and tools The NinJo developer Workbench

Page 5: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Perforce server in WAN/LANPerforce server in WAN/LAN

Perforce server is used by all partners via WAN access

Page 6: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Perforce client for WindowsPerforce client for Windows

Several release lines in the source code depot

RfA labels on the right hand side

Also documents in depot

Page 7: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Tools: Eclipse (IDE)Tools: Eclipse (IDE)Tools: Eclipse (IDE)Tools: Eclipse (IDE)

Navigation-view

Source code

class-Attributes &Methodes

Debug / log console

Page 8: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

The Developer WorkbenchThe Developer Workbench

JAVA tool, developed with Eclipse framework Developed by NinJo team

Uses Perforce interface to access files from the depot Covers everything, a developer needs for delivering his

components for a release

Page 9: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

The Developer WorkbenchThe Developer Workbench

Page 10: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 11: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

NinJo Release LinesNinJo Release Lines

Bugfixing on 1.1, Integration into 1.2;Development on 1.2 and

back-integration of features

Working in up to 3 code lines in parallel

Page 12: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

NinJo Release LinesNinJo Release Lines

Teams are working in up to 3 code lines in parallel Every code line has approximately 2.500.000 lines of code

(JAVA/XML) Problem of old system: The release label was handmade Release creation was already supported by scripts, Perforce,

Ant, but still very time consuming See next slides for the “old fashioned” release build

Page 13: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process – old style Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 14: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Semi-Automated BuildSemi-Automated Build

All developers deliver their component by creating a certain label The developer synchronizes the most recent labels from

Perforce The developer starts Eclipse The developer runs the appropriate Ant task for generating the

jar files or the Installation pack for a domain The busy release manager creates a Release label out of all

delivered component labels after checking, that the build works fine

Page 15: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Semi automated BuildSemi automated Build

Ant build scripts

Page 16: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Preparing a release manually- working stepsPreparing a release manually- working steps

Perforce - synchronizing the Release label Eclipse/IntelliJ/Netbeans..: run Ant script

select the “DVD” target wait 5 minutes

find on the disc: DVD1 and DVD2 directories, containing: whole NinJo software for server and client whole configuration installation scripts templates for run scripts

copy the Geo data and (if needed) demo data copy a JRE (JAVA runtime environment), inclusive extensions

(third party Jar-files) create the DVD images burn the DVDs

Page 17: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process – old style Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 18: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build System OverviewBuild System Overview

Why a fully automated release build? We need :

Automated checks (Checkstyle, dependencies, JavaDoc) >3 different releases to be build every day Continuous integration of teams work results Early detection of errors in any team Streamlined and specified release builds

Page 19: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build System OverviewBuild System Overview

Fully automated Contents of build are fully controlled by Perforce labels Build runs unattended Build problems are found automatically and mailed to last editor(s)

of affected file(s) Developer fixes the problem and restarts the build via a web

interface Dramatically reduced required release efforts and greatly increased

build frequency

Page 20: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build System OverviewBuild System Overview

Transparency Team members can see the full log file for each build via Perforce

or a web interface Live display of build status (blocked/running, elapsed time,…) by

web interface Automated e-mails on build problems directly to the responsible

developer (most of the times) with detailed problem description

Page 21: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build System OverviewBuild System Overview

Runs on a „dedicated“ linux machine (a single build run takes 4 hours)

Consists of some ant scripts plus self-developed ant tasks (Java)

Custom ant tasks Perforce (sync, check in, …) Create HTML reports out of label descriptions Label creation (success labels, auto-milestones,…) Parsing the build log and reporting problems via eMail

Current builds: daily : RfA 1.2, RfA 1.2.5 On demand: Nightly 1.2.5,Nightly 1.3, RfA 1.3

Page 22: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Automated Build System WorkflowAutomated Build System Workflow

Build LabelsRfA/Nightly

Perforce Server

NinJo Build SystemNinJo Build SystemNinJo Build SystemNinJo Build System

I18N/Docbook

IzPack-Installers

IzPack-Installers

Build Log

Release labels

NinJo Developers

createNDW/Perforce

controlBuild Control Page

notifiesE-Mail

Label Description

History

Page 23: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Automated Build System WorkflowAutomated Build System Workflow

Page 24: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build ControlBuild Control

Web interface Custom web interface to see build logs and „label histories“ „Build Control Page“ to see current build status and (re-)start build Can be controlled via Internet from any location in the world (also

from home) 6 different builds (versions/releases) possible

Page 25: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build ControlBuild Control

Build Control Page „Blockers“ are listed and can tell the system that they have finished

fixing the problem to restart the auto build When all developers are done build restarts automatically

Page 26: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build ControlBuild Control

NinJo work around the clock

Page 27: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build Process Step-by-StepBuild Process Step-by-Step

Gather list of current labels NinJo_1.2_RfA_CLIENT_LAYER_Scit_20060927

Release version Build Type (RfA / Nightly) Component Sub-Component Name Date of label (yyyymmdd)

Check for „collisions“ For each „component“

Sync all files of the component‘s labels Run the „Ninjo.xml“ build script (that is the same developers use)

Parse the log file to find build problems (and send e-mails) Run the packager („auto-build“) Create the label description HTML files and upload them Upload the log file and check it in Create ninjo libraries and check them in

Page 28: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Build ResultsBuild Results

The DAILY result of the Autobuild- release machine: Ready-to-use installers for each domain

Are stored on network drives As Zip-Files

Unzip and use .bat/.sh to run installer

AUTO-MILESTONE labels Contain all files used to create the build

Log files Can be found on build page and in Perforce

Page 29: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process – old style Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 30: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process – old style Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 31: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Frameworks for NinJo 1.3Frameworks for NinJo 1.3

The Release machine allows us to do this: While others still develop small new features on 1.2 or develop a

complete new product workbench on 1.2.5 (See M.Flibottes talk) framework developers are preparing the next releases basics already

Summary framework changes Multithreaded PAC framework New Layout and Legend facilities Updates in other frameworks, like formula Introduction of automated Configuration Converters to upgrade

configuration files from old releases

Usage of threads in the client in the next release… Running animations from different windows in different threads, but

synchronize the time steps

Page 32: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

PAC framework history (NinJo 1.0 .. NinJo 1.2)PAC framework history (NinJo 1.0 .. NinJo 1.2)

Remember: Pac is The building kit for NinJo client as a tree of cooperating agents

Integration of diagram framework (from DMI) for 1.1

Introduction of threads, legends, layout for 1.2

Main Scene

intermediate level

(LayerContainer)

Secondary Scene

IntermediateLevel (LayerContainer)

Secondary Scene

IntermediateLevel (LayerContainer)

GeoVectorLayer

BottomLevel

(Layer)

SatLayer

BottomLevel

(Layer)

RadarLayer

BottomLevel

(Layer)

GeoGridLayer

BottomLevel

(Layer)

PointDataLayer

BottomLevel

(Layer)

SoundingLayer

BottomLevel

(Layer)LightningLayer

BottomLevel

(Layer)GeoVectorLayer

BottomLevel

(Layer)

Page 33: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

PAC framework for NinJo 1.3PAC framework for NinJo 1.3

Controller

Model View

Controller

Model View

Controller

Model View

Controller

Model View

Controller

Model View

PACCommand

PACRequest

New basic framework

Changed Interagent communication

More clear communication flow between agents

Page 34: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASEPAC Multithreading, Slide 34

PAC Multithreading: PAC AgentPAC Multithreading: PAC Agent

We have hardware with > 1 processor and want to USE it, so we need multithreaded software for this

Starting a time consuming application in NinJo shall not block the other windows

Making trees (like PAC) thread safe is a difficult issue The basic unit of multithreading in PAC is the Agent: Each individual PAC agent is single-threaded

Page 35: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASEPAC Multithreading, Slide 35

PAC Multithreading: Agent treePAC Multithreading: Agent tree

Although an agent is single-threaded, the tree can be multithreaded:

Page 36: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process – old style Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 37: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Legend FrameworkLegend Framework

The legend framework has been integrated into the base PAC as a part of the View of a PAC agent

Thus it is usable for all PAC agents, i.e. also the layers A special layout implementation arranges all legends

according to their preferred size and alignment such that they do not overlap

Legends can be resized and repositioned interactively

Page 38: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Legends with LayoutLegends with Layout

Page 39: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Legend FrameworkLegend Framework

The contents of a text legend can be specified as text (I18n resource locators supported) with tags to be replaced by context specific information

The contents of a graphical legend is defined as a scenegraph

In the future the framework will be extended to support HTML-like legend contents

Page 40: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Layout Framework - LayoutStrategiesLayout Framework - LayoutStrategies

StackLayout

Vertical stacking Horizontal stacking

5 layoutables with 2 columns

5 layoutables with 4 columns

BoxFlowLayout

Page 41: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Legends with LayoutLegends with Layout

Page 42: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

AgendaAgenda

The NinJo CASE Development environment in distributed teams Working on different releases in parallel Semi automated build process – old style Fully automated build process – The Release Machine

The New Client Frameworks PAC and Threads Legends and Layout Examples of improvements

Page 43: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Thread usage in NinJo 1.3Thread usage in NinJo 1.3

Animations run in different threads, so are completely independent

But sometimes users want to run them synchronously …

Page 44: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Synchronous time/animation of different Synchronous time/animation of different scenesscenes

Page 45: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Synchronous time/animation of different Synchronous time/animation of different scenesscenes

Activate one scene , which shall control the time and animation

Select every scene, which should be synchronous to the central time control

synchronous mode

asynchronous mode

Page 46: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

Legends in NinJo 1.3Legends in NinJo 1.3

And now some fancy usage of legends in NinJo

Page 47: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

A Fancy Legend and layout exampleA Fancy Legend and layout example

Page 48: DWDEGOWS 2007 Haucke - The NinJo CASE NinJo : The NinJo CASE Computer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin

DWD EGOWS 2007 Haucke - The NinJo CASE

OutlookOutlook

To be continued….