350 likes | 367 Views
LSR. ObjectWeb/OSMOSE Deployment Framework Workshop in Prague. Didier Donsez, Noureddine Belkhatir IMAG/LSR/ADELE. Agenda. Sevilla meeting outcome Goal GDF Proposition Use cases Model Personalities Positioning Action points. Deployment Working Group Two Complementary Approaches.
E N D
LSR ObjectWeb/OSMOSE Deployment FrameworkWorkshop in Prague Didier Donsez, Noureddine Belkhatir IMAG/LSR/ADELE
Agenda • Sevilla meeting outcome • Goal • GDF Proposition • Use cases • Model • Personalities • Positioning • Action points
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
2 levels of interest • Deployment µkernel • Bootstrap core for loading extended functionality • Class Loading • Downloading/Installation/Uninstallation • Application deployment • Potential extended functionality modules • Packaging, Description, Deployment Life Cycle Activities(configuration, dependencies, …), Monitoring, Fault tolerance,Distributed vs Local (1 site), others ??? • Target Platforms • JOnAS JSR88, OpenCCM, OSGi use cases, Fractal • Common deployment tools • Administration console, etc. • Common deployment models • Reference deployment infrastructure architecture • Application deployment models • E.g., ORYA, OMG D&C Framework developeroriented Application deployeroriented
What we have to provide ? • First software deliverable for the 15th of July • Workshop proposition • 27 October in Grenoble • DÉCOR conference (28-29 october) • First return on personalities implementations • Software deliverable v2 for the 15th of December
Motivations • Generic Deployment Framework • Independent to the platform • But Heterogeneous applications (OSGi+J2EE+CCM) • Personalities of this FW • OSGi, J2EE, CCM, Fractal, ProActive, … • Model-based • Application, Site, Process
Which issues are not addressed by GDF ? • Packaging • Platform specific : RPM, Bundle Jarfile, EAR Jarfile • Metadata Formats • 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)
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 • NotDependency • FacetDependency • QualifiedFacetDependency • ReceptacleDependency
Concrete Dependencies:OSGi • Unit -> Unit, Application -> Unit • VersionedUnitDependency • ImportPackageDependency (OBR) • Eg: the unit requires the package javax.servlet; version=2.3 • ImportServiceDependency • Eg: A telnet deamon requires a Shell • QualifiedImportServiceDependency • ExportServiceDependency • Eg: A command requires a Shell • ConsumerWireAdminDependency • Eg: Requires consumers consuming temperatures • ProducerWireAdminDependency • Eg: Requires producers producing GPS positions • … • Unit -> Site • NativeDependency
Resolver • Parameters • application dependencies • site dependencies • Select Units in a UnitRepository • According to • application dependencies, • site dependencies, • unit dependencies • And Already deployed units • Return a Process to execute
What is missing • Configuration • Multi-step ? • Pre-installation • Post-Installation (according site attributes) • Manager (OMG D&C) • Actor • …
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 • Positioning / 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, …
GDF personalities • OSGi • J2EE • CCM • Fractal • ProActive • DCUP/SOFA • Linux • .NET • Generic • Context Aware, Atonomic, SOA (JINI, WS, OSGi…)
The OSGi personality • First naïve implementation • Reuse Oscar Bunlde Repository metadata • standalone or as a bundle (on site resolver/deployer) • Should merge with ResolveIT ?
Action points • We have a deadline : 15 th of july • Complete the current GDF • OMG D&C subset • or OMG D&C compliance • Share out the work among us • Horizontal (process, resolution, …) • Vertical (platform)
Send commentsto the Deployment Mailing Listdeployment@objectweb.org