Upload
deacon
View
69
Download
7
Embed Size (px)
DESCRIPTION
file. Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments. A. Akkerman, A. Totok, V. Karamcheti Computer Science Department New York University. Motivation. J2EE application deployment complex have to: configure application components - PowerPoint PPT Presentation
Citation preview
Infrastructure for Automatic Dynamic Deployment of J2EE applications in
Distributed Environments
A. Akkerman, A. Totok, V. Karamcheti
Computer Science Department
New York University
file
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
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
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
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
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>
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
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
Architecture
Replication Management Service
PersistentStorage
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
ComponentRegistryService
ReplicaConfiguration
Service
ReplicaDeployment
Service
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
Application Registration
Replication Management Service
PersistentStorage
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
JBossAgentService
Deployment UnitFactory Service
JBossAgentService
ComponentRegistryService
ReplicaConfiguration
Service
ReplicaDeployment
Service
storeregisterapp
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
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
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
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
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
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
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
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
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
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
file
Thank You!