Published on

First Integrated Component Development Life-cycle Management Suite for OSGI

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Brane.Storm

    1. 2. Kagan Turgut Santa Clara March 23, 2009 Component Oriented Enterprise Applications
    2. 3. Agenda <ul><li>Components as Building Blocks </li></ul><ul><li>Life Cycle Management </li></ul><ul><li>Enterprise Challenges </li></ul><ul><li>Brane.STORM Preview </li></ul><ul><ul><li>Model </li></ul></ul><ul><ul><li>Architecture </li></ul></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>06/08/09 Brane confidential
    3. 4. OSGI: Service Platform for Dynamic Component-Oriented Systems <ul><li>Dynamic Component Model (Bundles) </li></ul><ul><li>Managed Lifecycle, Hot-deploy </li></ul><ul><li>Vibrant Implementations </li></ul><ul><ul><li>Eclipse Equinox </li></ul></ul><ul><ul><li>Apache Felix </li></ul></ul><ul><ul><li>Knopflerfish </li></ul></ul><ul><li>Application Servers </li></ul><ul><ul><li>GlassFish </li></ul></ul><ul><ul><li>WebLogic </li></ul></ul><ul><ul><li>Spring Dynamic Modules </li></ul></ul>Equinox Felix Java Execution Env Module Life Cycle Services Security Extensibility Application Bundles OSGI
    4. 5. Why Component-Oriented Software? <ul><li>Problem: </li></ul><ul><li>Proprietary Frameworks </li></ul><ul><li>Legacy Code </li></ul><ul><li>Lack of Tooling </li></ul><ul><li>Required: </li></ul><ul><li>Minimized Complexity </li></ul><ul><li>Dependency Management </li></ul><ul><li>Proper Abstractions and Boundaries among Parts </li></ul>
    5. 6. Building Blocks 06/08/09 Brane confidential Bundle Product Feature Archive Site Distribution Portal Eclipse Distribution Distribution Portal Team (Download) Portal Team Portal
    6. 7. OSGI Bundle <ul><li>Selectively Import / Export Packages </li></ul><ul><ul><li>Selectively give access rights to its internals to other bundles. </li></ul></ul><ul><li>Bundle Dependencies </li></ul><ul><ul><li>May be optional </li></ul></ul><ul><ul><li>May be hidden or exposed </li></ul></ul><ul><ul><li>Matching criteria in locating dependents </li></ul></ul><ul><li>Fragments to augment host bundles </li></ul><ul><li>Additional deployment options </li></ul><ul><ul><li>&quot;require exclusive installation&quot;, or </li></ul></ul><ul><ul><li>auto load upon startup , etc. </li></ul></ul>
    7. 8. Eclipse Feature <ul><li>Primary grouping mechanisms of OSGI bundles: </li></ul><ul><ul><li>Install new functionality </li></ul></ul><ul><ul><li>Update existing bundles </li></ul></ul><ul><ul><li>Control which bundles should run at startup </li></ul></ul><ul><li>May contain bundles and features directly, or depend on them </li></ul><ul><ul><li>Containment: contained bits exported/built together, </li></ul></ul><ul><ul><ul><li>May be optional </li></ul></ul></ul><ul><ul><li>Dependency: Requires other features and plug-ins to be present in the runtime environment </li></ul></ul><ul><li>Branding information </li></ul><ul><li>Export Feature Wizard uses PDE Build API </li></ul><ul><li>Either installed inside an Eclipse Product, or are packaged as part of the Site/Repository </li></ul>
    8. 9. Site <ul><li>Download Features and Bundles over HTTP </li></ul><ul><ul><li>Logical URL: ie “ com.iona.istf.update ” </li></ul></ul><ul><li>Digitally Sign the Distributed Jars </li></ul><ul><li>Clients Update Installed Components from Published Sites </li></ul><ul><li>Group Features into Logical “Categories” </li></ul><ul><li>Distribute “Data Achieves” </li></ul><ul><li>P2 Repositories for Advanced Dependency Resolution, Provisioning… </li></ul>
    9. 10. Distribution Portal <ul><li>Publish Eclipse Distributions, Products </li></ul><ul><li>Custom Distribution per User Profile </li></ul><ul><li>Quality Assurance of Distrubitions </li></ul><ul><li>Usage Statistics </li></ul><ul><li>Access Control </li></ul>
    10. 11. Team Portal <ul><li>Downloads </li></ul><ul><li>Team Collaboration </li></ul><ul><li>Newsgroups </li></ul>
    11. 12. Build Use Case Build Feature, Product Sites Portals (Download) Eclipse 3.3 External Jars Test on Eclipse 3.2 Test on Spring Spring Runtime Distribution Eclipse 3.2 BUILD TEST RELEASE
    12. 13. Site and Release Management Brane confidential External Sites (Mirrored) Development Portal Sites (Development + Release) Distribution Builder Mirrored Sites Feature Builder Mirror (n-1/1-1) Distribution Portal Eclipse Distributions Public Portal Sites (Development + Release) Filter publish Distribution Portal Eclipse Distributions release
    13. 14. Component Life-Cycle Management QA User Materialize Workspace Develop Build Test Continuous Build Release Deploy Patch Developer Code Review Release Engineer Monitor Usaage PDE Buckminster Hudson Cruise Control Challenges: Automation Integrated Tooling Configuration Management Maven
    14. 15. Observations - Enterprise Challenges <ul><li>Developer Productivity </li></ul><ul><ul><li>Workspace Materialization </li></ul></ul><ul><ul><li>Speed, Scalability </li></ul></ul><ul><li>Transition to OSGI </li></ul><ul><ul><li>Managing Dependencies </li></ul></ul><ul><ul><li>Dealing with Legacy Code </li></ul></ul><ul><li>“ Integrated and Tested” Development Environment </li></ul><ul><li>Continuous Build and Testing </li></ul><ul><ul><li>More Declarative, Less Scripting </li></ul></ul><ul><ul><li>Multiple Target Platforms – Development/Runtime </li></ul></ul><ul><li>Managing Sites </li></ul><ul><li>Process Automation </li></ul><ul><li>Configuration Management </li></ul>06/08/09 Brane confidential
    15. 17. STORM Highlights <ul><li>First Life-Cycle Management Suite for OSGI </li></ul><ul><li>Model Driven Architecture (MDA/EMF) </li></ul><ul><li>Declarative, ANT-free </li></ul><ul><li>Support for OSGI Runtimes: Equinox, Felix… </li></ul><ul><li>Compatible with Eclipse PDE </li></ul><ul><li>Relational / XML Persistence </li></ul><ul><li>Extensible Command Framework </li></ul><ul><li>Extensible Multi-user UI (RCP/RAP) </li></ul><ul><li>Command-line API </li></ul><ul><li>Integrated Continuous Builds </li></ul>
    16. 18. STORM Components Build Manager Distribution Manager Site Manager Deployment Manager Portal Manager STORM Database Server (Derby, MySQL) Eclipse Base Builder Eclipse Test Framework (JUNIT) PDE EMF CDO RAP gEclipse Amazon EC2 Extensible Command Framework SCM SVN CC CVS Security Publisher Team Configuration Manager Resource Manager Dashboard Usage Tracker Command Line API JPA STORM SERVER
    17. 19. <ul><li>Builder Tasks defined in terms of Commands </li></ul><ul><li>Extend STORM Commands </li></ul><ul><li>Import Execution Plan (XML) </li></ul><ul><li>Run from STORM Dashboard / Command-Line </li></ul><ul><li>Soon: Parallel Execution for Scalability </li></ul>Extensible Command Framework Refresh Mirror Refresh Mirror Install Platform Fetch Bundlize Build Feature Run Test Publish … Command Framework
    18. 20. Command Model
    19. 21. Job / Builder Model
    20. 22. Enterprise Model
    21. 23. Demo
    22. 24. Packaging <ul><li>STORM onDemand (Q3-09) </li></ul><ul><ul><li>Amazon EC2 AMI </li></ul></ul><ul><ul><li>Free for Eclipse Community, Open-Source Projects </li></ul></ul><ul><li>STORM Enterprise (Q2-09) </li></ul><ul><li>Professional Services </li></ul>
    23. 25. About Brane <ul><li>CA Company with top-notch Eclipse experts </li></ul><ul><li>Professional Services </li></ul><ul><ul><li>Solution and Architecture Design </li></ul></ul><ul><ul><li>Model Driven Development </li></ul></ul><ul><ul><li>Enterprise Applications </li></ul></ul><ul><ul><li>Component Oriented Software, OSGI </li></ul></ul><ul><ul><li>Software Infrastructure and Tooling </li></ul></ul><ul><li>Turn-key Application Delivery </li></ul>06/08/09 Brane confidential
    24. 26. Q & A