LSR Object WebOSMOSE Deployment Framework Didier Donsez Vincent
LSR Object. Web/OSMOSE Deployment Framework Didier Donsez, Vincent Lestideau, Noureddine Belkhatir IMAG/LSR/ADELE 1
Agenda Sevilla meeting outcome q Motivations q Use cases q Model q 2
Deployment Working Group Two Complementary Approaches Abstraction Effort Descriptors & API J 2 EE Abstraction Effort CCM Shared models • MDA PIM • CASE tools • Repositories OSGi Pro. Active Shared code as • tools • libraries • components • frameworks Personalisation Effort Fractal … Personalisation Effort From Philippe Merle 3
Motivations q Generic Deployment Framework q Independent to the platform q q Personalities of this FW q q Mixin of platform (OSGi+J 2 EE+CCM) OSGi, J 2 EE, CCM, Fractal, Pro. Active Model-based q Application, Site, Process 4
OSGi Gateway Foo. Service Temperature. Producer GPSPosition. Producer Wire. Admin Customer. Alarm SMSIO Unit Repository Local Deployer Bar. Service Temperature. Producer Web. Cam. Producer Application Repository Wire. Admin Customer. Servlet HTTPService Local Deployer Use Case : OSGi gateway Deployer console Déployer 5
Use Case : J 2 EE distributed application Deployer Unit Repository Application Repository console Deployer Web Browser tranfer(a, b, 100) debit(a, 100) J 2 EE Server Local Deployer Account. EB Fund. Transfer. SB FTServlet Local Deployer J 2 EE Server Local Deployer credit(b, 100) End User 6 J 2 EE Server
Use Case : Weather Stations Mix of OSGi+J 2 EE+CORBA Application Repository Unit Repository Deployer End User console web browser End User http: //ctrlcenter/report ? gw=123 http: //gw 123/report M[] get. Last() J 2 EE Server Cardomon DCPS Local Deployer Report. Servlet Report. SB Measurement. EB Push. MDB Local Deployer JMS poll(M m[]) Temperature. Sensor OSGi Gateway Report. Sender Humidity. Producer Temperature. Producer Wire. Admin Report. Servlet SOAPService HTTPService Local Deployer poll(M m[]) Pull. Measurement. SB PDA CCM Runtime 7
Use Case : Platforms deployment Embedded Linux Cardamon Open. CCM Kaffe Local Deployer PHP My. SQL Apache HTTPD JOn. AS console SUN JRE 1. 5 (RPM)Unit Repository Local Deployer OSCAR IBM J 9 Local Deployer Application Repository Deployer Embedded Linux 8
Use Case : OSGi “cluster” Application Repository Deployer Unit Repository console Deployer web Browser debit(a, 100) tranfer(a, b, 100) credit(b, 100) OSGi Gateway Local Deployer Account Corba. Service Local Deployer Fund. Transfer FTServlet HTTP Local Deployer End User 9 OSGi Gateway
Model n n n Unit, Deployed. Unit Application, Deployed. Application Site, Organization Dependency / Attributes Resolver Process 10
Model 11
Attributes & Dependency n Attributes n Set of properties <key, values> n Platform-specific n n n Application n OSGi: Export-Package, Import-Package, Bundle-Version … … Developpement status: beta … Dependency n Represents a constraint n n 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 Object. Web Resolved or not by a Attribute 12
Unit n n n represents a deployment unit have attributes have dependencies n towards unit n n towards sites n n Eg: the unit cannot be use in a commercial application could embed others units n n n Eg: the unit runs only under Windows. XP and more towards applications n n Eg: the unit requires the package javax. servlet; version=2. 3 Eg J 2 EE EAR = EJBJAR + n WAR + m JAR (of client side applications) WAR could contain Mid. Lets and Applets Deployed. Unit n represents a deployed unit on a site or in an organization 13
Application n represents an application have attributes have dependencies n towards units n n towards sites n n Eg: the unit runs only under Windows. XP and more Dependencies are added by n n Unit. Dependency enables to fix the units that compose the application the assembler, the deployer, … Deployed. Application n represents a deployed application on a site or in an organization 14
Site n n n represents a site on which a part (units) of an application are deployed have attributes have dependencies n towards applications n n towards units n n Eg: the application must be stable dev. version Eg: the units must be licenced Open Source Organization n A set of sites 15
Identity n Platform-specific n n n OSGi: Bundle-Update. Location for Unit … One common method n n Object get. Id() Test equality 16
Unit. Repository n n Only an index of available units Not a storage system (platform-specific) n n Units could be loaded from a URL or from a Input. Stream In the case of URL loaded, the URL must be one of the attributes of the Unit 17
Application. Repository n TODO 18
Concrete Dependencies Common n n Unit. Dependency Ldap. Filter. Dependency Conjunction. Dependency Disjunction. Dependency 19
Concrete Dependencies: OSGi n n n Versioned. Unit. Dependency Import. Package. Dependency (OBR) n Eg: the unit requires the package javax. servlet; version=2. 3 Import. Service. Dependency n n n Service. Binder. Import. Service. Dependency Export. Service. Dependency n n Eg: Requires consumers consuming temperatures Producer. Wire. Admin. Dependency n n Eg: A command requires a Shell Consumer. Wire. Admin. Dependency n n Eg: A telnet deamon requires a Shell Eg: Requires producers producing GPS positions … 20
Resolution n n 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 n For the application, sites and units 21
Resolution (TODO) n An application Unit. Dependency id=1 Unit. Dependency id=2 Unit. Dependency id=4 Unit. Dependency id=3 22
Algorithm (TODO) 23
Interface design issues (i) n Interface Attributes could be replace by n javax. management. Dynamic. MBean n org. objectweb. fractal. api. control. Attribute. Controlle r n n n - muttable interface + link with JMX and OSMOSE Admin WG - muttable interface ? Functional or Non functional interface or n both 24
Interface design issues (ii) n Attribute values may be java. lang. Comparable n n Eg: Version, Versioned. Package, … Collection parameters and return n n Type[] Iterator<Type> JDK 1. 5 and + List/Set<Type> JDK 1. 5 and + 25
Interface design issues (iii) n Mutable interfaces n n add(Type), remove(Type), … Observable interfaces n n get/set Observer javax. management. Notification. Broadcaster Finder interfaces n n Improve performance during dependency resolution Dependency can use those indexes to search Attributes objects quickly n n Observes if the Unit A changes its implementation version Method find(String filter) Application. Repository, Organization, … Others ? 26
Relationship with other WPs n WP 2 n n System Management WP 3 n n Personalities for J 2 EE, OSGi, CCM Personalities for Fractal 27
Open issues n Code/State migration n n Pro. Active. Object Compliance with n OMG D&C n n JSR 88 n n (Deployment and Configuration of Component-based Distributed Applications) (J 2 EE Server API for 3 -tier Deployment Tools) Others ? n SUN JNLP, DVB-MHP, Linux RPM, … 28
Which issues are not addressed by GDF ? n Packaging n n Metadata Format n n Platform specific : RPM, Bundle Jarfile, EAR Jarfile Java. MF, RPM multi-files, . NET XML manifest, … Protocols n Between global and local deployer n n n rsh, rlogin, ssh, Globus 1, 2 …, PBS, LSF, Map. Rsh telnet, https, soap, xmlrpc, javagroup ? , ip multicast+carrousel … Should GDF address them ? n The right place (low level GDF) 29
The OSGi personality n First native implementation n Reuse OBR metadata Standalone or as a bundle Should merge with Resolve. IT ? 30
n Send comments to the Deployment Mailing List deployment@objectweb. org 31
- Slides: 31