Osgi Now and Tomorrow
Total Page:16
File Type:pdf, Size:1020Kb
IntroductionIntroduction toto OSGiOSGi MatthewMatthew PerrinsPerrins IBMIBM SoftwareSoftware GroupGroup Executive IT Specialist MartinMartin GaleGale Certified IT Specialist OOpenpen SServiceservices GGatewayateway IInitiativenitiative AgendaAgenda WhyWhy isis OSGiOSGi technologytechnology important?important? WhatWhat isis OSGiOSGi technology?technology? OSGiOSGi™™ ComponentComponent ProgrammingProgramming WhatWhat changeschanges areare comingcoming inin thethe future?future? WhoWho isis thethe OSGiOSGi Alliance?Alliance? GranularityGranularity WhileWhile ObjectObject OrientedOriented languageslanguages likelike JavaJava helphelp TheyThey onlyonly helphelp atat thethe objectobject andand classclass levellevel ThereThere areare nono higherhigher levelslevels ofof mm odularity odularity WhatWhat isis Modularity?Modularity? ““TheThe propertyproperty ofof aa systemsystem thatthat hashas beenbeen decomposeddecomposed intointo aa setset ofof cohesivecohesive andand looselyloosely coupledcoupled modules.”modules.” engronline.ee.memphis.edu/networkprogram/Lectures/Lecture3/object_terms.htm ““(Desirable)(Desirable) propertyproperty ofof aa system,system, suchsuch thatthat individualindividual componentscomponents cancan bebe examined,examined, modifiedmodified andand maintainedmaintained independentlyindependently ofof thethe remainderremainder ofof thethe system.system. ObjectiveObjective isis thatthat changeschanges inin oneone partpart ofof aa systemsystem shouldshould notnot leadlead toto unexpectedunexpected behaviorbehavior inin otherother parts.”parts.” www.maths.bath.ac.uk/~jap/MATH0015/glossary.html OpenOpen SourceSource ProliferationProliferation OtherOther openopen sourcesource projectsprojects consumeconsume eacheach otherother CommercialCommercial softwaresoftware consumesconsumes themthem IntegratingIntegrating manymany OSOS projectsprojects isis veryvery difficultdifficult DifferentDifferent dependenciesdependencies ofof differentdifferent projectsprojects ConflictsConflicts andand unexpectedunexpected failuresfailures ModularizationModularization inin JavaJava AppsApps VisibilityVisibility Jar JavaJava PlatformPlatform ModularityModularity Package • ClassesClasses encapsulateencapsulate datadata Class Class Class • PackagesPackages containcontain classesclasses Package • Jars contain packages Jars contain packages Class Class Class VisibilityVisibility AccessAccess Package • private,private, packagepackage private,private, protected,protected, Class Class publicpublic Class PackagesPackages looklook hierarchical,hierarchical, butbut areare notnot JarsJars havehave nono modularizationmodularization characteristicscharacteristics 66 ModularizationModularization inin JavaJava AppsApps ClasspathClasspath Java VM party com m on resolver axis xerces rt assetm aint catalina m ail ezm orph xm lapis BB egin egin jce hhfacility base jenks servlets xm lrpc HH ere ere jsse pos. datafile jakarta jetty xmlgraphics plugin content entity log4j looks sunjce_prov. m anufact. widget httpunit jdbm dnsns product … m x4j bsf .. bi rom e batik bsh ClassClass m arketing workflow jpos18 fop velocity NotNot workeffort ecom m erce jcl tom cat ws-com m ons FoundFound Exception ebay oagis barcode4j poi geronim o Exception m inerva … freem arker lucene .. m inilang googlebase serializer jdom json accounting order nam ing com m ons xalan guiapp ofbiz jython derby wsdl4j JARJAR Hell!Hell! OSGiOSGi isis thethe SolutionSolution AA mature,mature, functionalfunctional andand ready-to-useready-to-use technologytechnology thatthat cancan addressaddress thesethese issuesissues OSGiOSGi ModularityModularity HigherHigher levellevel encapsulationencapsulation WellWell specifiedspecified couplingcoupling Explicit,Explicit, versionedversioned dependenciesdependencies ReducedReduced complexitycomplexity ComponentComponent reusereuse SolvesSolves JARJAR Hell!Hell! UsingUsing OSGiOSGi SimpleSimple format:format: JARJAR filefile withwith manifestmanifest entriesentries EasyEasy toto deploydeploy RunsRuns onon mostmost VMsVMs includingincluding olderolder versionsversions DynamicDynamic LikeLike thethe realreal worldworld OSGiOSGi isis MatureMature 1010 yearsyears ofof experienceexperience andand improvementsimprovements 66 releasesreleases TheThe dede factofacto choicechoice forfor JavaJava componentscomponents andand modularitymodularity UsedUsed byby Eclipse,Eclipse, IBM,IBM, Oracle,Oracle, SpringSource,SpringSource, Sun,Sun, Redhat,Redhat, …… MultipleMultiple openopen sourcesource implementationsimplementations OSGiOSGi AdoptionAdoption IncreasingIncreasing tractiontraction inin manymany verticals:verticals: • EnterpriseEnterprise • VehicleVehicle • MobileMobile • ““Smart”Smart” homehome • More…More… • IndustrialIndustrial automationautomation • Remote/HomeRemote/Home HealthcareHealthcare • MissionMission CriticalCritical EmbeddedEmbedded SolutionsSolutions HistoryHistory R4R4 V4.1V4.1 R4R4 V4.0.1V4.0.1 R4R4 V4.0V4.0 R3R3 R2R2 R1R1 20002000 20012001 20032003 20052005 20062006 20072007 AgendaAgenda WhyWhy isis OSGiOSGi technologytechnology important?important? WhatWhat isis OSGiOSGi technology?technology? OSGiOSGi ™™ ComponentComponent ProgrammingProgramming WhatWhat changeschanges areare comingcoming inin thethe future?future? WhoWho isis thethe OSGiOSGi Alliance?Alliance? OSGiOSGi technologytechnology TheThe DynamicDynamic ModuleModule SystemSystem forfor JavaJava™™ OSGiOSGi isis AA modulemodule systemsystem BundlesBundles VisibilityVisibility DependenciesDependencies VersioningVersioning OSGiOSGi isis DynamicDynamic Installing,Installing, starting,starting, stopping,stopping, updating,updating, uninstallinguninstalling bundles,bundles, allall dynamicallydynamically atat runtimeruntime OSGiOSGi isis ServiceService orientedoriented ServicesServices cancan bebe registeredregistered andand consumedconsumed insideinside aa VMVM AllAll dynamicallydynamically atat runtimeruntime OSGiOSGi ServiceService PlatformPlatform AA setset ofof specificationsspecifications CoreCore specificationsspecifications CompendiumCompendium specificationsspecifications CompendiumCompendium specificationsspecifications areare allall optionaloptional CoreCore SpecificationsSpecifications TheThe OSGiOSGi FrameworkFramework NetworkedNetworked ClassClass LoadersLoaders onon “Steroids”“Steroids” SystemSystem LoaderLoader BB u u n n dle dle AA ExtensionExtension LoaderLoader BundleBundle GG BB u u n n dle dle BB OSGiOSGi AppApp AA BB u u n n dle dle CC FrameworFramewor OSGiOSGi LoaderLoader kk BB u u n n dle dle FF BB u u n n dle dle DD CustomCustom LoaderLoader BB u u n n dle dle EE 2222 LifecycleLifecycle LayerLayer ProvidesProvides APIsAPIs toto controlcontrol thethe lifelife cyclecycle ofof bundlesbundles Install/Update/Uninstall/Start/StopInstall/Update/Uninstall/Start/Stop LifecycleLifecycle eventevent notificationsnotifications APIAPI providesprovides informationinformation onon statestate ofof modulemodule layerlayer SupportsSupports dynamicdynamic managementmanagement ofof bundlesbundles inin runningrunning VMVM ServiceService LayerLayer DefinesDefines aa publish/find/bindpublish/find/bind serviceservice modelmodel FullyFully dynamicdynamic IntraIntra VMVM LifecycleLifecycle eventevent notificationsnotifications Non-durableNon-durable serviceservice registryregistry AA serviceservice isis aa POJOPOJO publishedpublished underunder oneone oror moremore JavaJava interfaceinterface (or(or class)class) namesnames withwith additionaladditional key/valuekey/value pairpair metadatametadata AgendaAgenda WhyWhy isis OSGiOSGi technologytechnology important?important? WhatWhat isis OSGiOSGi technology?technology? OSGiOSGi™™ ComponentComponent ProgrammingProgramming WhatWhat changeschanges areare comingcoming inin thethe futurefuture ?? WhoWho isis thethe OSGiOSGi Alliance?Alliance? OSGiOSGi™™ ComponentComponent ProgrammingProgramming ComplexityComplexity ofof SoftwareSoftware • AA DVDDVD playerplayer cancan containcontain 11 MillionMillion lineslines ofof codecode • Comparison:Comparison: SpaceSpace ShuttleShuttle ~~ 0.50.5 MillionMillion • AA BMWBMW carcar cancan containcontain upup toto 5050 networkednetworked computerizedcomputerized devicesdevices • EclipseEclipse containscontains 2.52.5 millionmillion lineslines ofof codecode • AnAn averageaverage programmerprogrammer writeswrites anan averageaverage ofof 1010 lineslines aa dayday …… • HoustonHouston …… wewe havehave aa problemproblem ComplexityComplexity ofof SoftwareSoftware Service Oriented Programming Structured Programming Productivity Productivity Assem bly ComplexityComplexity andand SizeSize LimitsLimits ObjectObject OrientedOriented TechnologyTechnology • ObjectsObjects areare great,great, butbut oh,oh, thethe tangledtangled webswebs wewe weaveweave …… • CouplingCoupling severelyseverely limitslimits reusabilityreusability • UsingUsing aa genericgeneric object,object, cancan dragdrag inin aa largelarge numbernumber ofof otherother objectsobjects • CreatesCreates overlyoverly largelarge systemssystems afterafter aa certaincertain complexitycomplexity isis reachedreached • FlexibilityFlexibility mustmust bebe builtbuilt inin byby thethe programmerprogrammer • Plug-inPlug-in architecturesarchitectures ServiceService OrientedOriented ArchitecturesArchitectures • SeparateSeparate thethe contractcontract fromfrom thethe implementationimplementation • AllowsAllows alternatealternate Service Contract implementationsimplementations provides Component • DynamicallyDynamically discoverdiscover uses andand bindbind availableavailable implementationsimplementations