310 likes | 324 Views
LSR. ObjectWeb/OSMOSE Deployment Framework. Didier Donsez, Vincent Lestideau, Noureddine Belkhatir IMAG/LSR/ADELE. Agenda. Sevilla meeting outcome Motivations Use cases Model. Deployment Working Group Two Complementary Approaches. Shared models MDA PIM CASE tools Repositories.
E N D
LSR ObjectWeb/OSMOSE Deployment Framework Didier Donsez, Vincent Lestideau, Noureddine Belkhatir IMAG/LSR/ADELE
Agenda • Sevilla meeting outcome • Motivations • Use cases • Model
Deployment Working GroupTwo Complementary Approaches • Shared models • MDA PIM • CASE tools • Repositories Personalisation Effort Abstraction Effort J2EE CCM OSGi ProActive Fractal … Descriptors & API Abstraction Effort • Shared code as • tools • libraries • components • frameworks Personalisation Effort From Philippe Merle
Motivations • Generic Deployment Framework • Independent to the platform • Mixin of platform (OSGi+J2EE+CCM) • Personalities of this FW • OSGi, J2EE, CCM, Fractal, ProActive • Model-based • Application, Site, Process
OSGi Gateway OSGi Gateway Use Case : OSGi gateway Deployer UnitRepository ApplicationRepository console Déployer Local Deployer HTTPService CustomerServlet BarService Local Deployer SMSIO WireAdmin WebCamProducer TemperatureProducer CustomerAlarm FooService WireAdmin GPSPositionProducer TemperatureProducer
WebBrowser tranfer(a,b,100) debit(a,100) credit(b,100) J2EE Server J2EE Server J2EE Server J2EE Server Use Case :J2EE distributed application Deployer UnitRepository ApplicationRepository console Deployer End User Local Deployer FundTransferSB FTServlet Local Deployer AccountEB Local Deployer Local Deployer AccountEB
End User http://ctrlcenter/report?gw=123 http://gw123/report M[] getLast() PDA poll(M m[]) poll(M m[]) J2EE Server CCM Runtime OSGi Gateway Use Case : Weather StationsMix of OSGi+J2EE+CORBA Deployer UnitRepository ApplicationRepository Deployer End User console web browser Local Deployer Local Deployer Local Deployer HTTPService ReportServlet SOAPService WireAdmin TemperatureProducer HumidityProducer ReportSender JMS PushMDB MeasurementEB ReportSB ReportServlet PullMeasurementSB Cardomon DCPS TemperatureSensor
Embedded Linux Embedded Linux Linux Use Case :Platforms deployment Deployer (RPM)UnitRepository ApplicationRepository Deployer console Local Deployer Local Deployer Local Deployer IBM J9 OSCAR SUN JRE1.5 JOnAS Apache HTTPD MySQL PHP Kaffe OpenCCM Cardamon
webBrowser debit(a,100) End User tranfer(a,b,100) credit(b,100) OSGi Gateway OSGi Gateway OSGi Gateway OSGi Gateway Use Case : OSGi “cluster” Deployer UnitRepository ApplicationRepository console Deployer Local Deployer HTTP FTServlet FundTransfer Local Deployer CorbaService Account Local Deployer CorbaService Account Local Deployer
Model • Unit, DeployedUnit • Application, DeployedApplication • Site, Organization • Dependency / Attributes • Resolver • Process
Attributes & Dependency • Attributes • Set of properties <key,values> • Platform-specific • OSGi: Export-Package, Import-Package, Bundle-Version … • … • Application • Developpement status: beta • … • Dependency • Represents a constraint • Eg: the Unit A requires os=Windows • Eg: the Site B requires stable Units • Eg: the Application C is composed only of signed units by ObjectWeb • Resolved or not by a Attribute
Unit • represents a deployment unit • have attributes • have dependencies • towards unit • Eg: the unit requires the package javax.servlet; version=2.3 • towards sites • Eg: the unit runs only under WindowsXP and more • towards applications • Eg: the unit cannot be use in a commercial application • could embed others units • Eg J2EE EAR = EJBJAR + n WAR + m JAR (of client side applications) • WAR could contain MidLets and Applets • DeployedUnit • represents a deployed unit on a site or in an organization
Application • represents an application • have attributes • have dependencies • towards units • UnitDependency enables to fix the units that compose the application • towards sites • Eg: the unit runs only under WindowsXP and more • Dependencies are added by • the assembler, the deployer, … • DeployedApplication • represents a deployed applicationon a site or in an organization
Site • represents a site on which a part (units) of an application are deployed • have attributes • have dependencies • towards applications • Eg: the application must be stable dev. version • towards units • Eg: the units must be licenced Open Source • Organization • A set of sites
Identity • Platform-specific • OSGi: Bundle-UpdateLocation for Unit • … • One common method • Object getId() • Test equality
UnitRepository • Only an index of available units • Not a storage system (platform-specific) • Units could be loaded from a URL or from a InputStream • In the case of URL loaded, the URL must be one of the attributes of the Unit
ApplicationRepository • TODO
Concrete DependenciesCommon • UnitDependency • LdapFilterDependency • ConjunctionDependency • DisjunctionDependency
Concrete Dependencies:OSGi • VersionedUnitDependency • ImportPackageDependency (OBR) • Eg: the unit requires the package javax.servlet; version=2.3 • ImportServiceDependency • Eg: A telnet deamon requires a Shell • ServiceBinderImportServiceDependency • ExportServiceDependency • Eg: A command requires a Shell • ConsumerWireAdminDependency • Eg: Requires consumers consuming temperatures • ProducerWireAdminDependency • Eg: Requires producers producing GPS positions • …
Resolution • The units are the root of a multi-colored graph • Edges are satisfing dependencies • One color per type of dependency • A deployment is succeful if all dependencies are satisfied • For the application, sites and units
Resolution (TODO) • An application UnitDependency id=1 UnitDependency id=4 UnitDependency id=2 UnitDependency id=3
Interface design issues (i) • Interface Attributes could be replace by • javax.management.DynamicMBean • - muttable interface • + link with JMX and OSMOSE Admin WG • or • org.objectweb.fractal.api.control.AttributeController • - muttable interface • ? Functional or Non functional interface • or • both
Interface design issues (ii) • Attribute values may be java.lang.Comparable • Eg: Version, VersionedPackage, … • Collection parameters and return • Type[] • Iterator • Iterator<Type> JDK 1.5 and + • List/Set • List/Set<Type> JDK 1.5 and +
Interface design issues (iii) • Mutable interfaces • add(Type), remove(Type), … • Observable interfaces • Observes if the Unit A changes its implementation version • get/set Observer • javax.management.NotificationBroadcaster • Finder interfaces • Improve performance during dependency resolution • Dependency can use those indexes to search Attributes objects quickly • Method find(String filter) ApplicationRepository, Organization, … • Others ?
Relationship with other WPs • WP2 • System Management • WP3 • Personalities for J2EE, OSGi, CCM • Personalities for Fractal
Open issues • Code/State migration • ProActive ActiveObject • Compliance with • OMG D&C • (Deployment and Configuration of Component-based Distributed Applications) • JSR 88 • (J2EE Server API for 3-tier Deployment Tools) • Others ? • SUN JNLP, DVB-MHP, Linux RPM, …
Which issues are not addressed by GDF ? • Packaging • Platform specific : RPM, Bundle Jarfile, EAR Jarfile • Metadata Format • Java .MF, RPM multi-files, .NET XML manifest, … • Protocols • Between global and local deployer • rsh, rlogin, ssh, Globus 1,2 …, PBS, LSF, MapRsh • telnet, http, https, soap, xmlrpc, javagroup ?, ip multicast+carrousel … • Should GDF address them ? • The right place (low level GDF)
The OSGi personality • First native implementation • Reuse OBR metadata • Standalone or as a bundle • Should merge with ResolveIT ?
Send commentsto the Deployment Mailing Listdeployment@objectweb.org