1 / 48

NinJo : The NinJo CASE Computer Aided Software Engineering

NinJo : The NinJo CASE Computer Aided Software Engineering. Sibylle Haucke, DWD EGOWS 2007 Dublin. Agenda. 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

fia
Télécharger la présentation

NinJo : The NinJo CASE Computer Aided Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NinJo : The NinJo CASEComputer Aided Software Engineering Sibylle Haucke, DWD EGOWS 2007 Dublin EGOWS 2007 Haucke - The NinJo CASE

  2. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  3. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  4. Agenda • The NinJo CASE • Development environment in distributed teams • Perforce source depot and tools • The NinJo developer Workbench EGOWS 2007 Haucke - The NinJo CASE

  5. Perforce server in WAN/LAN • Perforce server is used by all partners via WAN access EGOWS 2007 Haucke - The NinJo CASE

  6. Perforce client for Windows • Several release lines in the source code depot • RfA labels on the right hand side • Also documents in depot EGOWS 2007 Haucke - The NinJo CASE

  7. Tools: Eclipse (IDE) Navigation- view Source code class- Attributes & Methodes Debug / log console EGOWS 2007 Haucke - The NinJo CASE

  8. The 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 EGOWS 2007 Haucke - The NinJo CASE

  9. The Developer Workbench EGOWS 2007 Haucke - The NinJo CASE

  10. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  11. Bugfixing on 1.1, Integration into 1.2;Development on 1.2 and back-integration of features NinJo Release Lines • Working in up to 3 code lines in parallel EGOWS 2007 Haucke - The NinJo CASE

  12. NinJo 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 EGOWS 2007 Haucke - The NinJo CASE

  13. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  14. Semi-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 EGOWS 2007 Haucke - The NinJo CASE

  15. Semi automated Build • Ant build scripts EGOWS 2007 Haucke - The NinJo CASE

  16. Preparing 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 EGOWS 2007 Haucke - The NinJo CASE

  17. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  18. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  19. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  20. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  21. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  22. NinJo Developers Automated Build System Workflow Perforce Server create NDW/Perforce I18N/Docbook Build LabelsRfA/Nightly control Build Control Page Release labels NinJo Build System notifies E-Mail Build Log Label Description History IzPack-Installers EGOWS 2007 Haucke - The NinJo CASE

  23. Automated Build System Workflow EGOWS 2007 Haucke - The NinJo CASE

  24. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  25. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  26. Build Control • NinJo work around the clock EGOWS 2007 Haucke - The NinJo CASE

  27. Build 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 EGOWS 2007 Haucke - The NinJo CASE

  28. Build 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 • … EGOWS 2007 Haucke - The NinJo CASE

  29. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  30. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  31. Frameworks 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 EGOWS 2007 Haucke - The NinJo CASE

  32. 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 GeoVectorLayer BottomLevel (Layer) Secondary Scene IntermediateLevel (LayerContainer) SatLayer BottomLevel (Layer) RadarLayer BottomLevel (Layer) GeoGridLayer BottomLevel (Layer) PointDataLayer BottomLevel (Layer) SoundingLayer BottomLevel (Layer) Main Scene intermediate level (LayerContainer) LightningLayer BottomLevel (Layer) GeoVectorLayer BottomLevel (Layer) Secondary Scene IntermediateLevel (LayerContainer) EGOWS 2007 Haucke - The NinJo CASE

  33. Controller Controller Controller Controller Controller Model Model Model Model Model View View View View View PAC framework for NinJo 1.3 • New basic framework • Changed Interagent communication • More clear communication flow between agents PACCommand PACRequest EGOWS 2007 Haucke - The NinJo CASE

  34. PAC 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 PAC Multithreading, Slide 34 EGOWS 2007 Haucke - The NinJo CASE

  35. PAC Multithreading: Agent tree Although an agent is single-threaded, the tree can be multithreaded: PAC Multithreading, Slide 35 EGOWS 2007 Haucke - The NinJo CASE

  36. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  37. Legend 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 EGOWS 2007 Haucke - The NinJo CASE

  38. Legends with Layout EGOWS 2007 Haucke - The NinJo CASE

  39. Legend 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 EGOWS 2007 Haucke - The NinJo CASE

  40. Vertical stacking Horizontal stacking Layout Framework - LayoutStrategies • StackLayout • BoxFlowLayout 5 layoutables with 2 columns 5 layoutables with 4 columns EGOWS 2007 Haucke - The NinJo CASE

  41. Legends with Layout EGOWS 2007 Haucke - The NinJo CASE

  42. Agenda • 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 EGOWS 2007 Haucke - The NinJo CASE

  43. Thread usage in NinJo 1.3 • Animations run in different threads, so are completely independent • But sometimes users want to run them synchronously • … EGOWS 2007 Haucke - The NinJo CASE

  44. Synchronous time/animation of different scenes EGOWS 2007 Haucke - The NinJo CASE

  45. Synchronous time/animation of different scenes • 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 EGOWS 2007 Haucke - The NinJo CASE

  46. Legends in NinJo 1.3 • And now some fancy usage of legends in NinJo EGOWS 2007 Haucke - The NinJo CASE

  47. A Fancy Legend and layout example EGOWS 2007 Haucke - The NinJo CASE

  48. Outlook • To be continued…. EGOWS 2007 Haucke - The NinJo CASE

More Related