SlideShare a Scribd company logo
1 of 32
Beyond
OSGi Software
 Architecture

  Jeroen van Grondelle
    Marcel Offermans
     11 november - JFall 2009
About Us


Marcel Offermans   Jeroen van Grondelle
Lean Development
    Service Interfaces
    OSGi based Apps
Service Creation Patterns
Lean Development

       Part 1
Anticipate Change


Yes, there WILL be new
    requirements...
"Non-Functionals“
Great functionality! And can you do that, in a ... way.




                    Based on Luke Hohmann's book Beyond Software Architecture
Anticipate, don’t
over dimension

Do not try to support the things now
   that MIGHT be required next...
No decision is irreversible, but some
  are VERY expensive to reverse...
Service Interfaces that
  help you Change

          Part 2
Behavior Only
 Do NOT disclose parameters and implementation details.
Do NOT shape a Service after your rst/only implementation.
        This is NOT Object Orientation. Or is it... ;-)
Scale Invariance




 Service Interface should NOT re ect the scale 
   your ( rst) implementation will support.
Decoupling



If your implementations require other services, 
 access these services through interfaces only.
Think BIG
      act small!


    Your service interface should be future proof,
  your implementation should t your current needs.

         Keep many possible implementations 
(functionality, scale) in mind when designing interfaces.
Service Oriented Apps
      using OSGi

         Part 3
OSGi Recap
                                                                                                                         Service
                                                  Log                      Store                  Prefs
                                                                                       publish              publish
                                              publish                        use
                                                             use                                  use

                                                Bundle                Bundle            Bundle            Bundle




                                                        install                                                       Life Cycle
                                                                       installed
                          Service              start                                 start       starting
Bundle Bundle Bundle   Life Cycle                                      resolved                                          active
                         Module
                                                end                         uninstall            stopping       stop
                        Security
                                                                      uninstalled
                        OSGi framework
                       Java Virtual Machine

                                                                                                                        Module
                                                   Bundle                Bundle              Bundle          Bundle
                                                            imports                 exports           imports
                                               exports                         exports                             exports

                                              org.apache.util 1.0                  org.apache.db 1.4
                                                                  org.apache.log 2.3                  org.apache.util 1.1
Container Style
 Development


        Application consists of
      interdependent Services

   Public Services are accessed
      through UI/SOAP/JMS/...
Be a Good Host
                       Offer facilities to
                      your components




              OSGi Compendium is a
           Catalog of generic Facilities

Add your own to the container if needed
Deploy Everything



            Not just code!

                  Content
            Configurations
                Testcases
                     Work
Inversion of Control




        Use declarative Lifecycle and
          Dependency Management

                    Develop POJO’s
                   Delegate injection
Add Chemistry



          Deployed services react
                   on each other

             Resulting in behavior
                and new services

 Define these reactions in terms of
      life cycle and dependencies
Patterns for Creating
   Service Graphs
         Part 4
Singleton Services
                    Singleton
       Document
       Repository
 get()                                     Storage
 getVersions()                  requires
 get(version)
 store(Document)




         Bind Logic in a Single Instance
Singleton Services
class Activator {
   public void init(context, manager) {

        manager.add(
        	 createService()
           	 .setInterface(DocumentRepository.class.getName())
                                   (Pseudo)Code
        	 	 .setImplementation(DocumentRepositoryImpl.class)
        	 	 .add(
        	 	 	 createServiceDependency()
              	 	 .setService(Storage.class)));

    }
}
Aspect Services
                       Aspect
    Repository Cache                        Repository
get()                                   get()
getVersions()              intercepts   getVersions()
get(version)                            get(version)
store(Document)                         store(Document)




Transparently inject an interceptor service 
 "in front of" all services matching a lter
Aspect Services
class Activator {
   public void init(context, manager) {
         manager.add(
         	 createAspectService(
         	 	 DocumentRepository.class,
         	 	 DocumentRepositoryCache.class,
         	 	 10));

    }
}
Adapter Services
                       Adapter
    Repository Cache                       Repository Cache
        Manageable                        get()
 getCacheHits()                           getVersions()
                                 adapts
 setSize()                                get(version)
 setTTL()                                 store(Document)
 flush()




Start an instance of the adapter service for any
       "adaptee" service matching a lter
Adapter Services
class Activator {
   public void init(context, manager) {

        manager.add(
        	 createAdapterService(
        	 	 Manageable.class,
        	 	 DocumentRepositoryCache.class,
        	 	 DocumentRepositoryCacheManageable.class));

    }
}
Resource Adapters
                             Resource
                 Audio Track Adapter
            play()                               MP3
                                        adapts
            pause()                              File
            stop()



   Start an instance of a Resource Driven Service for all
                 resources matching a lter

Resources: File(system) abstraction, access by InputStream
Resource Adapters
class Activator {
   public void init(context, manager) {

          manager.add(
          	 createResourceAdapterService(
                "(extension=mp3)",
          	 	 AudioTrack.class,
          	 	 MP3AudioTrack.class));

    }
}
Dependency
Management & OSGi
 Not standard OSGi, a number of extensions available.
Felix Dependency Manager implements these patterns.
Lean Development
    Service Interfaces
    OSGi based Apps
Service Creation Patterns
Questions?


Marcel Offermans              Jeroen van Grondelle
marcel.offermans@luminis.nl    j.vangrondelle@beinformed.nl

More Related Content

What's hot

Liferay UI (R)evolution
Liferay UI (R)evolutionLiferay UI (R)evolution
Liferay UI (R)evolution
Zeno Rocha
 
Going Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha ZelzerGoing Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha Zelzer
mfrancis
 
Building a server platform with os gi
Building a server platform with os giBuilding a server platform with os gi
Building a server platform with os gi
Dileepa Jayakody
 
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
mfrancis
 
Pro Syst Enterprise OSGi
Pro Syst Enterprise OSGiPro Syst Enterprise OSGi
Pro Syst Enterprise OSGi
Roman Roelofsen
 

What's hot (19)

EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik HarabiEclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
 
Liferay Configuration and Customization
Liferay Configuration and CustomizationLiferay Configuration and Customization
Liferay Configuration and Customization
 
MOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaMOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in Java
 
ProSyst OSGi SDK
ProSyst OSGi SDKProSyst OSGi SDK
ProSyst OSGi SDK
 
Liferay UI (R)evolution
Liferay UI (R)evolutionLiferay UI (R)evolution
Liferay UI (R)evolution
 
Modularization in java 8
Modularization in java 8Modularization in java 8
Modularization in java 8
 
Introduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay PortalIntroduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay Portal
 
Going Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha ZelzerGoing Native With The OSGi Service Layer - Sascha Zelzer
Going Native With The OSGi Service Layer - Sascha Zelzer
 
Building a server platform with os gi
Building a server platform with os giBuilding a server platform with os gi
Building a server platform with os gi
 
JasForge : the collaborative agile project
JasForge : the collaborative agile projectJasForge : the collaborative agile project
JasForge : the collaborative agile project
 
MuleSoft CloudHub API Versioning
MuleSoft CloudHub API VersioningMuleSoft CloudHub API Versioning
MuleSoft CloudHub API Versioning
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
 
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
Introduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator TitaniumIntroduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator Titanium
 
Using Liferay Portal with LDAP and Single sign-on
Using Liferay Portal with LDAP and Single sign-onUsing Liferay Portal with LDAP and Single sign-on
Using Liferay Portal with LDAP and Single sign-on
 
Android with dagger_2
Android with dagger_2Android with dagger_2
Android with dagger_2
 
Pro Syst Enterprise OSGi
Pro Syst Enterprise OSGiPro Syst Enterprise OSGi
Pro Syst Enterprise OSGi
 

Similar to Beyond OSGi Software Architecture

Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
mukulobject
 
Talkbits service architecture and deployment
Talkbits service architecture and deploymentTalkbits service architecture and deployment
Talkbits service architecture and deployment
Open-IT
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
IndicThreads
 
Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)
njbartlett
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
Pascal Rapicault
 
Os gi introduction made by Ly MInh Phuong-SOC team
Os gi introduction made by Ly MInh Phuong-SOC teamOs gi introduction made by Ly MInh Phuong-SOC team
Os gi introduction made by Ly MInh Phuong-SOC team
Thuy_Dang
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC Metro
pjhInovex
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
pjhInovex
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi Webinar
WSO2
 

Similar to Beyond OSGi Software Architecture (20)

OSGi tech session
OSGi tech sessionOSGi tech session
OSGi tech session
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
 
Weld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiWeld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGi
 
Talkbits service architecture and deployment
Talkbits service architecture and deploymentTalkbits service architecture and deployment
Talkbits service architecture and deployment
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
 
Introduction to OSGi
Introduction to OSGiIntroduction to OSGi
Introduction to OSGi
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Review
 
Dependencies, dependencies, dependencies
Dependencies, dependencies, dependenciesDependencies, dependencies, dependencies
Dependencies, dependencies, dependencies
 
Automatically Managing Service Dependencies in an OSGi Environment - Marcel O...
Automatically Managing Service Dependencies in an OSGi Environment - Marcel O...Automatically Managing Service Dependencies in an OSGi Environment - Marcel O...
Automatically Managing Service Dependencies in an OSGi Environment - Marcel O...
 
Osgi
OsgiOsgi
Osgi
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
 
Part6 introducing the jas forge collaborative project
Part6   introducing the jas forge collaborative projectPart6   introducing the jas forge collaborative project
Part6 introducing the jas forge collaborative project
 
Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
struts
strutsstruts
struts
 
Os gi introduction made by Ly MInh Phuong-SOC team
Os gi introduction made by Ly MInh Phuong-SOC teamOs gi introduction made by Ly MInh Phuong-SOC team
Os gi introduction made by Ly MInh Phuong-SOC team
 
Introduction to-osgi
Introduction to-osgiIntroduction to-osgi
Introduction to-osgi
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC Metro
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi Webinar
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Beyond OSGi Software Architecture

  • 1. Beyond OSGi Software Architecture Jeroen van Grondelle Marcel Offermans 11 november - JFall 2009
  • 2. About Us Marcel Offermans Jeroen van Grondelle
  • 3. Lean Development Service Interfaces OSGi based Apps Service Creation Patterns
  • 5. Anticipate Change Yes, there WILL be new requirements...
  • 6. "Non-Functionals“ Great functionality! And can you do that, in a ... way. Based on Luke Hohmann's book Beyond Software Architecture
  • 7. Anticipate, don’t over dimension Do not try to support the things now that MIGHT be required next...
  • 8. No decision is irreversible, but some are VERY expensive to reverse...
  • 9. Service Interfaces that help you Change Part 2
  • 10. Behavior Only Do NOT disclose parameters and implementation details. Do NOT shape a Service after your rst/only implementation. This is NOT Object Orientation. Or is it... ;-)
  • 11. Scale Invariance Service Interface should NOT re ect the scale  your ( rst) implementation will support.
  • 12. Decoupling If your implementations require other services,  access these services through interfaces only.
  • 13. Think BIG act small! Your service interface should be future proof, your implementation should t your current needs. Keep many possible implementations  (functionality, scale) in mind when designing interfaces.
  • 14. Service Oriented Apps using OSGi Part 3
  • 15. OSGi Recap Service Log Store Prefs publish publish publish use use use Bundle Bundle Bundle Bundle install Life Cycle installed Service start start starting Bundle Bundle Bundle Life Cycle resolved active Module end uninstall stopping stop Security uninstalled OSGi framework Java Virtual Machine Module Bundle Bundle Bundle Bundle imports exports imports exports exports exports org.apache.util 1.0 org.apache.db 1.4 org.apache.log 2.3 org.apache.util 1.1
  • 16. Container Style Development Application consists of interdependent Services Public Services are accessed through UI/SOAP/JMS/...
  • 17. Be a Good Host Offer facilities to your components OSGi Compendium is a Catalog of generic Facilities Add your own to the container if needed
  • 18. Deploy Everything Not just code! Content Configurations Testcases Work
  • 19. Inversion of Control Use declarative Lifecycle and Dependency Management Develop POJO’s Delegate injection
  • 20. Add Chemistry Deployed services react on each other Resulting in behavior and new services Define these reactions in terms of life cycle and dependencies
  • 21. Patterns for Creating Service Graphs Part 4
  • 22. Singleton Services Singleton Document Repository get() Storage getVersions() requires get(version) store(Document) Bind Logic in a Single Instance
  • 23. Singleton Services class Activator { public void init(context, manager) { manager.add( createService() .setInterface(DocumentRepository.class.getName()) (Pseudo)Code .setImplementation(DocumentRepositoryImpl.class) .add( createServiceDependency() .setService(Storage.class))); } }
  • 24. Aspect Services Aspect Repository Cache Repository get() get() getVersions() intercepts getVersions() get(version) get(version) store(Document) store(Document) Transparently inject an interceptor service  "in front of" all services matching a lter
  • 25. Aspect Services class Activator { public void init(context, manager) { manager.add( createAspectService( DocumentRepository.class, DocumentRepositoryCache.class, 10)); } }
  • 26. Adapter Services Adapter Repository Cache Repository Cache Manageable get() getCacheHits() getVersions() adapts setSize() get(version) setTTL() store(Document) flush() Start an instance of the adapter service for any "adaptee" service matching a lter
  • 27. Adapter Services class Activator { public void init(context, manager) { manager.add( createAdapterService( Manageable.class, DocumentRepositoryCache.class, DocumentRepositoryCacheManageable.class)); } }
  • 28. Resource Adapters Resource Audio Track Adapter play() MP3 adapts pause() File stop() Start an instance of a Resource Driven Service for all resources matching a lter Resources: File(system) abstraction, access by InputStream
  • 29. Resource Adapters class Activator { public void init(context, manager) { manager.add( createResourceAdapterService( "(extension=mp3)", AudioTrack.class, MP3AudioTrack.class)); } }
  • 30. Dependency Management & OSGi Not standard OSGi, a number of extensions available. Felix Dependency Manager implements these patterns.
  • 31. Lean Development Service Interfaces OSGi based Apps Service Creation Patterns
  • 32. Questions? Marcel Offermans Jeroen van Grondelle marcel.offermans@luminis.nl j.vangrondelle@beinformed.nl