infrastructure for automatic dynamic deployment of j2ee applications in distributed environments a....
TRANSCRIPT
![Page 1: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/1.jpg)
Infrastructure for Automatic Dynamic Deployment of J2EE applications in
Distributed Environments
A. Akkerman, A. Totok, V. Karamcheti
Computer Science Department
New York University
file
![Page 2: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/2.jpg)
Motivation
J2EE application deployment complex have to:
– configure application components
– configure and start required system components (services)
consistently maintain configuration data:– JNDI names
– IP addresses
– port numbers
Need a tool for automating the deployment process
![Page 3: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/3.jpg)
Infrastructure Overview
Main features distinguishes between application and system components supports inter-component connectivity specification addresses application component dependencies on system
components (services) enables reuse of components and services
Utilizes componentized application server architecture (e.g., JBoss, JOnAS) incremental (hot) service and application component
deployment/undeployment
Deployment descriptor manipulation Fully J2EE-compliant
![Page 4: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/4.jpg)
Components
Application components web-tier components (servlets, JSPs)
– treated as a single component
EJBs– collocated through local interfaces – as a single component
JDBC Data Sources JMS messaging destinations (topics, queues)
System components (system services) JMS Messaging service Transaction Manager service
Components should be registered with the infrastructure
![Page 5: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/5.jpg)
Architecture Description Languages
Component Description Language component and link description
– components have ports (required and provided)
a flexible type system for semantic consistency– component port types as interfaces to component functionality
(e.g., Catalog, Item)
– link types as communication protocols (e.g., EJBLink, DataSourceLink)
a declaration and expression language for configurable component properties
Component Replica Assembly Language to assemble component replicas into application deployments
![Page 6: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/6.jpg)
Component Description Language
Declaration and expression mechanisms for component properties properties are used to configure deployment descriptors component dependency specification propagation of property values between components through links
<component name="CatalogEJB">
<requires>
<port name="PortToItem" type="Item" link-type="jboss.system.EJBLink">
<property name="EJBObjectJNDI">
</property>
</port>
</requires>
<provides>
<port name="InvocationPort" type="Catalog" link-type="jboss.system.EJBLink">
<property name="EJBObjectJNDI">Catalog-${systemId}</property>
</port>
</provides>
</component>
![Page 7: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/7.jpg)
Architecture Description Languages
Component Description Language component and link description
– components have ports (required and provided)
a flexible type system for semantic consistency– component port types as interfaces to component functionality
(e.g., Catalog, Item)
– link types as communication protocols (e.g., EJBLink, DataSourceLink)
– a declaration and expression language for configurable component properties
Component Replica Assembly Language to assemble component replicas into application deployments
![Page 8: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/8.jpg)
Component Replica Assembly Language
<deployment-path path-id="...">
<component-replica replicaId="93" name="CatalogEJB" targetId="hostB">
<port-configuration name="PortToItem" .../>
</component-replica>
<component-replica replicaId="57" name="ItemEJB" targetId="hostA">
<port-configuration name="InvocationPort" .../>
</component-replica>
<link-replica replicaId="152" link-type="jboss.system.EJBLink"
__sourceEndpoint_id="93"
__sourceEndpoint_portId="PortToItem"
__destEndpoint_id="57"
__destEndpoint_portId="InvocationPort"/>
</deployment-path>
Assembly of component replicas into application deployments (deployment paths)
Mapping of component replicas onto application server nodes
![Page 9: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/9.jpg)
Architecture
Replication Management Service
PersistentStorage
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
ComponentRegistryService
ReplicaConfiguration
Service
ReplicaDeployment
Service
![Page 10: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/10.jpg)
Infrastructure Usage
Initialization System components and application registration
written in the Component Description Language
Writing the deployment path specification written in the Component Replica Assembly Language
Preparing deployment path component configuration process
Deployment of prepared path Management of deployed path
![Page 11: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/11.jpg)
Application Registration
Replication Management Service
PersistentStorage
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
ComponentRegistryService
ReplicaConfiguration
Service
ReplicaDeployment
Service
storeregisterapp
![Page 12: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/12.jpg)
Infrastructure Usage
Initialization System components and application registration
written in the Component Description Language
Writing the deployment path specification written in the Component Replica Assembly Language
Preparing deployment path component configuration process
Deployment of prepared path Management of deployed path
![Page 13: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/13.jpg)
Preparing Deployment Path
Replication Management Service
PersistentStorage
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
ComponentRegistryService
ReplicaConfiguration
Service
ReplicaDeployment
Service
storepreparepath
component (replica) configuration process
![Page 14: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/14.jpg)
Component Configuration Process
A deployment specification is a DAG link direction from required to provided ports
Configuration process leaf-to-root post-order processing of the DAG leaf components have no required ports, but may depend on
system components
Component reuse a component replica can be reused for several deployment
paths, if its subgraph of referenced components can be reused achieves:
– decreased resource utilization
– decreased deployment overhead
– no need for component data consistency management
![Page 15: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/15.jpg)
Infrastructure Usage
Initialization System components and application registration
written in the Component Description Language
Writing the deployment path specification written in the Component Replica Assembly Language
Preparing deployment path component configuration process
Deployment of prepared path Management of deployed path
![Page 16: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/16.jpg)
JBossAgentService
Deployment UnitFactory Service
Deployment of Prepared Path
Replication Management Service
PersistentStorage
JBossAgentService
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
ComponentRegistryService
ReplicaConfiguration
Service
ReplicaDeployment
Service
storedeploy
path
d e p l o y
![Page 17: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/17.jpg)
Infrastructure Usage
Initialization System components and application registration
written in the Component Description Language
Writing the deployment path specification written in the Component Replica Assembly Language
Preparing deployment path component configuration process
Deployment of prepared path Management of deployed path
![Page 18: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/18.jpg)
Implementation
JBoss micro-kernel architecture, based on the JMX specification
Infrastructure modules Agent Service on every node (Agent MBean) one XmlBlaster Service
– XmlBlaster is a MOM middleware server (XML-based, search, persistence, etc.)
– works as persistence storage
any number of Deployment Unit Factory Services– generate deployable bundles (JARs, WARs, EARs)
– contain bulky codebases, other application content
– implemented as a J2EE Web application (J2EE WAR)
GUI-based client tool– compose and edit deployment specifications (Component Replica Assembly)
– Replication Management Service client
– bundled with the Replication Management Service, but their codebases are decoupled
![Page 19: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/19.jpg)
Usage Experience
Java PetStore, RUBiS, TPC-W-NYU augmented with messaging
functionality Successful several-node
deployments Projects used in:
“Mutable Services” project– service distribution
infrastructure for component-based applications
– www.cs.nyu.edu/pdsg “Efficiently Distributing
Components in Wide Area Environments” D.Llambiri, A.Totok, V.Karamcheti, ICDCS’2003
![Page 20: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/20.jpg)
Miscellaneous
3+ years in development and usage Tools/projects the infrastructure utilizes
JBoss XmlBlaster Castor Jelly Graph Editing Framework (GEF)
Available for download http://www.cs.nyu.edu/pdsg follow the “Software” tab
![Page 21: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/21.jpg)
Discussion
Replication Manager Service and XmlBlaster back-end are centralized single points of failure
Not failure-resistant no support for atomic deployments
Application reconfiguration through component deployment/undeployment the only thing to do, because J2EE does not support dynamic
reconfiguration active monitoring/micro reboots - Pinpoint/JAGR
![Page 22: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science](https://reader030.vdocuments.mx/reader030/viewer/2022032722/56649cf05503460f949beed2/html5/thumbnails/22.jpg)
file
Thank You!