• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Beyond OSGi Software Architecture
 

Beyond OSGi Software Architecture

on

  • 3,653 views

Slides from the JFall '09 session on OSGi Software Architecture by Marcel Offermans and Jeroen van Grondelle.

Slides from the JFall '09 session on OSGi Software Architecture by Marcel Offermans and Jeroen van Grondelle.

Statistics

Views

Total Views
3,653
Views on SlideShare
2,630
Embed Views
1,023

Actions

Likes
12
Downloads
0
Comments
0

22 Embeds 1,023

http://www.vangrondelle.com 264
http://localhost 250
http://www.creativesoftware.com.br 220
http://177.75.141.156 76
http://177.75.141.130 60
https://www.creativesoftware.com.br 59
http://creativesoftware.com.br 28
http://redmine.creativesoftware.com.br 22
http://www.tuxmasters.com.br 11
http://www.linkedin.com 5
http://www.slideshare.net 5
http://blog.tuxmasters.com.br 5
https://creativesoftware.com.br 4
http://177.75.136.212 3
http://htmldreams.org 2
http://translate.googleusercontent.com 2
http://sci.creativesoftware.com.br 2
http://192.168.0.133 1
http://htmldreams.com.br 1
http://blog.vangrondelle.com 1
http://webcache.googleusercontent.com 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Beyond OSGi Software Architecture Beyond OSGi Software Architecture Presentation Transcript

    • 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