infrastructure for automatic dynamic deployment of j2ee applications in distributed environments a....

22
Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science Department New York University file

Upload: shanna-adela-morris

Post on 17-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Infrastructure for Automatic Dynamic Deployment of J2EE applications in Distributed Environments A. Akkerman, A. Totok, V. Karamcheti Computer Science

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

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

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

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

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

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">

${[email protected]}

</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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

file

Thank You!