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

Post on 17-Dec-2015

214 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

${EJBObjectJNDI@jboss.system.EJBLink}

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

top related