Download presentation
Presentation is loading. Please wait.
1
1 1 Fractal Deployment Framework Thursday, April 12, 2007 Nicolas DOLET (nicolas.dolet@inria.fr) ADAM Project - INRIA Futurs, Laboratoire d‘Informatique Fondamentale de Lille (LIFL), Université des Sciences et Technologies de Lille (USTL), Villeneuve d’Ascq, France Echirolles - France
2
2 2 Outline Motivations Fractal Deployment Framework Current FDF personalities What could be deployed with FDF today? Next FDF personalities What will be deployable with FDF in a near future?
3
3 3 Motivations Current trends for distributed intensive-software systems Grid Computing –Large scale networks of computers Service-Oriented Computing –Complex composition of heterogeneous software components The nightmare for system administrators Requirements for automatic deployment of Large scale distributed intensive-software systems The whole software stack –Business software components, application servers, middleware, language runtimes, operating systems, etc.
4
4 4 Automatic Distributed Deployment Deployment Description Software Repository Deployment Engine before after S1S2 S3S4 S5S6 target © 2003-2006, S. Krakowiak
5
5 5 An SOA-based Travel Agency Application
6
6 6 Distributed Deployment Issues Heterogeneity of Software to deploy –Business applications, application servers, middleware, virtual machines, shared libraries, data bases, operating systems Software technologies for business applications –OSGi, J2EE, JBI, SCA, CCM, Fractal, SOA, etc. Deployment tasks –install, configure, start, manage, stop, uninstall Low level deployment mechanisms –File transfer protocols, e.g. FTP, SCP –Remote control protocols, e.g. Telnet, SSH, HTTP, JMX –Scripting languages, e.g. SH, CSH, Windows Orchestration of distributed deployment tasks Sequence, parallel, synchronization High level descriptions versus low level programs
7
7 7 Fractal Deployment Framework A component-based middleware framework for deploying software Independent of Software technology, e.g. J2EE, OSGi, JBI, SCA, CCM, Fractal, … Software granulary, i.e., from EJB to operating systems Operating system Network protocol FDF is A deployment description language –System configurations –Software and network topologies A deployment engine A library of deployment components
8
8 8 Shell Generic deployment components End-User Configuration Fractal ADL Translate Fractal ADL Engine Instantiate Personalities Deploy Internet Network Variable Host Protocol... uses OpenCCM Mosaïques Port User Software Transfer JRE Global composite reifying the user’s configuration to deploy JOnAS JBoss PEtALS... Grid5000 LAN GSM/GPRS Network WiFi Network Grid5000 xDSL Fractal Deployment Framework
9
9 9 Primitive FDF Components Wrappers of low level deployment mechanisms Hostnames, ports, users, properties File transfer protocols, e.g. FTP, SCP Remote control protocols, e.g. Telnet, SSH, HTTP, JMX Shell command formatting, e.g. SH, CSH, Windows Runnable components Upload, download, and unarchive files Execute/send commands, ChangeDirectory, CreateDirectory, RemoveDirectory, … Set/unset shell variables Ping sockets, servers, etc. Orchestration components Sequencer, parallelizer Deployment automatons (install, start, stop, uninstall)
10
10 Composite FDF Components Host Composition of –Hostname, User, Transfer, Protocol, Shell Set of software instances Software Set of –Properties, e.g. Target host, archive file, home directory, etc. –Dependencies to other software instances –Procedures as install, configure, start, manage, stop, uninstall Sub component types –Installable, Manageable, Iconable, etc. Inherited from FDF personalities
11
11 FDF Personalities Describe how to configure and deploy particular software Composed of A set of properties, e.g. ARCHIVE, HOME, PORT, … Software definitions, e.g. SERVER, BEAN, … A set of configuration files A set of icon files for FDF Explorer Written with the FDF language A composition language
12
12 The PEtALS SERVER Personality PEtALS.SERVER = software.Installable(petals,PEtALS,archive,home), JAVA.DependOn(petals), software.Hosting(petals), software.Manageable(petals, http://#[petals-hostname]:#[http-port]), software.Iconable(petals,PEtALS/SERVER.png) { archive = PEtALS.ARCHIVE(UNDEFINED); home = PEtALS.HOME(UNDEFINED); properties { … } petals { … } }
13
13 The PEtALS SERVER Personality properties { http-port = HTTP.PORT(7080); jmx-user = JMX.USER(''); jmx-password = JMX.PASSWORD(''); jmx-port = JMX.PORT(7700); joram-domain = JORAM.DOMAIN(Petals); joram-id = JORAM.ID(0); joram-user = JORAM.USER(petals); joram-password = JORAM.PASSWORD(petals); joram-domainport = JORAM.DOMAINPORT(7740); joram-tcpport = JORAM.TCPPORT(7760); }
14
14 The PEtALS SERVER Personality petals { internal-deployment { configure { TRANSFER.UploadGeneratedFile( server.properties,… ); } start { SHELL.Fork( java -Xmx1024m -jar #[home]/bin/server.jar ); PEtALS.Ping( #[petals-hostname],#[jmx-port],#[jmx-user],#[jmx-password] ); } stop { SHELL.Execute( java -Xmx1024m -jar #[home]/bin/server.jar stop ); } } }
15
15 Current FDF Personalities Java Runtime Environment Java RMI Registry Apache Ant Apache Tomcat – Web server and applications/servlets (WAR) Geronimo - J2EE application server JBoss - J2EE application server JOnAS - J2EE application server and applications (EAR, WAR, EJB, RAR) JADE – Autonomous J2EE systems PEtALS – JBI container and applications/components MySql – Data base server Fractal – Julia – Fractal RMI Registry – Fractal RMI Server OpenCCM – CCM infractructure and applications FDF itself
16
16 FDF System Configurations Describe the topology of the system to deploy A set of hosts and software Example MyPetals { Hosts = INTERNET.NETWORK { host1 = INTERNET.HOST { … } host2 = INTERNET.HOST { … } } PEtALS-Servers { petals-host1 = PEtALS.SERVER { … } petals-host1 = PEtALS.SERVER { … } } JBI-Components { JBI1-on-host1 = PEtALS.JBI { … } JBI2-on-host2 = PEtALS.JBI { … } } }
17
17 FDF System Configurations host1 = INTERNET.HOST { hostname = INTERNET.HOSTNAME(host1); user = INTERNET.USER( login,[password],[privateKey] ); transfer = TRANSFER.JSCP; protocol = PROTOCOL.OpenSSH; shell = SHELL.SH; software { java = JAVA.JRE { archive = JAVA.ARCHIVE(Archive_File_URI); home = JAVA.HOME(Java_Home_URI); } } }
18
18 FDF System Configurations petals-host1 = PEtALS.SERVER { archive = PEtALS.ARCHIVE(Archive_File_URI); home = PEtALS.HOME(Petals_Home_URI); host = Hosts/host1; properties { html-port = HTTP.PORT(7700); jmx-user = JMX.USER(''); jmx-password = JMX.PASSWORD(''); jmx-port = JMX.PORT(8081); joram-domain = JORAM.DOMAIN(''); joram-id = JORAM.ID(0); joram-user = JORAM.USER(''); joram-domainport = JORAM.DOMAINPORT(7740); joram-tcpport = JORAM.TCPPORT(7760); } }
19
19 FDF System Configurations JBI1-on-host1 = PEtALS.JBI { archive = PEtALS.JBI.ARCHIVE(Archive_File_URI); name = PEtALS.JBI.NAME(JBIName); petals = PEtALS-Servers/petals-host1; }
20
20 The FDF Explorer
21
21 Fractal-based Implementation Fractal component model for hierarchical and sharing Julia as Java-based Fractal implementation Fraclet for programming primitive FDF components New generators Fractal ADL for composing composite FDF components Optimizations and new loaders FDF language for describing software personalities and system configurations Mapped to Fractal ADL dynamically Fractal Explorer for implementing the FDF Explorer Fractal RMI for distributing FDF servers
22
22 Next FDF Personalities J2EE applications (EAR, WAR, EJB, RAR) for Geronimo and JBoss OSCAR must be completed Apache Tuscany SCA – SCA runtime and applications JMS servers as ActiveMQ or JORAM BPEL engine and orchestrations as ActiveBPEL and BSOA Orchestra Other Web servers as Apache HTTPD Other OSGi gateways as Apache Felix or Eclipse Equinox Other data base servers Qemu – Operating system virtualization and images
23
23 Thanks You – Questions? FDF available at http://fdf.gforge.inria.frhttp://fdf.gforge.inria.fr
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.