efficiently distributing component-based applications across wide-area environments

24
Efficiently Distributing Component-Based Applications Across Wide-Area Environments D. Llambiri, A. Totok, V. Karamcheti New York University

Upload: rania

Post on 10-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Efficiently Distributing Component-Based Applications Across Wide-Area Environments. D. Llambiri, A. Totok, V. Karamcheti New York University. Problem Setting. Two major trends in designing and deploying internet-accessible services Component middleware (J2EE, CORBA CM, .NET) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Efficiently Distributing Component-Based Applications Across Wide-Area Environments

D. Llambiri, A. Totok, V. Karamcheti

New York University

Page 2: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Problem Setting

Two major trends in designing and deploying internet-accessible services Component middleware (J2EE, CORBA CM, .NET)

– integrated execution environment for pluggable components

– support for transactions, security, persistence, etc.

Bringing application data closer to clients– caching of static content

– web content distribution networks (Akamai)

– edge data processing (Akamai EdgeSuite, IBM WebSphere)

Is it beneficial to combine the two trends? Component middleware allows distributed deployment

Page 3: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Distributed Deployment ofComponent-based Applications

Provides several benefits faster client response times increased service availability replication/redeployment of “hot” components on demand

However, need to address two questions/challenges Can component-based applications benefit from distributed,

edge deployment in wide-area environments? How this distribution should be done to minimize programming

effort from the developers?

This study answers these questions Larger context: Mutable Services project

Page 4: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Approach of Study

Study performance of distributed deployment of prototypical component-based applications With application modifications as necessary

Target environment Java 2 Enterprise Edition (J2EE) framework Two well-known sample J2EE applications:

– Java Pet Store (SUN’s Java Enterprise BluePrints program)

– Rice University Bidding System (RUBiS)

Evaluate if applications can be efficiently distributed … without code changes?

with reusable design rules and optimizations? in a manner automatable by middleware?

NO

YES

YES

Page 5: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Overview

Background and methodology J2EE Java Pet Store

Design rules and optimizations Remote Façade design pattern Shared Stateful Component Caching (Read-Only Entity beans) Query Caching Asynchronous Updates

Discussion and related work Summary

Page 6: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Background (J2EE)

Data TierEJB TierWeb Tier

JSP

JavaServlet

RMI

StatelessSession

Bean

EntityBean

StatefulSession

Bean

EntityBean

RMI

RMI

RM

I

RM

I

Database

Database

JDBC

JDBC

Client

HTML HTTP

Client

HTMLHTTP

stateless client session state shared state

Page 7: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Background (Java Pet Store)

Service usage patterns: Browser: Category, Product, Item, Search Buyer: Sign In, Add to Cart, Checkout, Commit Order, Sign Out

Web Tier EJB TierEntitySession

Account

account

order orderstatus lineitem

categoryproductitem

inventory

Order

Cart

Catalog

Account

Order

Catalog

Inventory

Database

Customer

Shopping Cart

Inventory

session statestateless shared stateBrowser Buyer

Web Tier EJB TierEntitySession

Account

Order

Cart

Catalog

Account

Order

Catalog

Inventory

Customer

Shopping Cart

Inventory

session statestateless shared state

account

order orderstatus lineitem

categoryproductitem

inventory

Database

Page 8: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Methodology

Edge AS(JBoss)

Oracle

Edge AS(JBoss)

WAN

LAN

LAN

LAN

Main AS(JBoss)

LocalClients

RemoteClients

Page 9: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Centralized Application

HTTP

RemoteClient

Main Server

EJB Tier

Entity

Account

Order

Inventory

Session

ShoppingCart

Catalog

Customer

Web Tier

Account

Order

Cart

Catalog

Inventory

Database

Edge

Server

W

A

N

stateless session state shared state

Page 10: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

0

100

200

300

400

500

600

Local Browser Local Buyer Remote Browser Remote Buyer

Se

ss

ion

av

era

ge

re

sp

on

se

tim

es

(m

s)

Centralized Application

Remote Façade

Shared Stateful Component Caching

Query Caching

Asynchronous Updates

Centralized Application (cont.)

WAN HTTP

Page 11: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

EJB Tier EJB Tier

Entity

Account

Order

Inventory

Database

Session

ShoppingCart

Catalog

Customer

Web Tier

Account

Order

Cart

Catalog

Inventory

Session

ShoppingCart

Catalog

Customer

Web Tier

Account

Order

Cart

Catalog

Inventory

Replicating Stateless and Session Components

Main ServerEdge Server

RemoteClient

HTTP

W

A

N

stateless session state shared state

Page 12: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Remote Façade

Main ServerEdge Server

EJB Tier

Entity

Account

Order

Inventory

Database

Session

ShoppingCart

Catalog

Customer

Web Tier

Account

Order

Cart

Catalog

Inventory

RemoteClient

HTTP

EJB Tier

Session

ShoppingCart

Catalog

Customer

Web Tier

Account

Order

Cart

Catalog

Inventory

W

A

N

stateless session state shared state

CatalogCatalog

<<Facade>>

Page 13: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

0

100

200

300

400

500

600

Local Browser Local Buyer Remote Browser Remote Buyer

Se

ss

ion

av

era

ge

re

sp

on

se

tim

es

(m

s)

Centralized Application

Remote Façade

Shared Stateful Component Caching

Query Caching

Asynchronous Updates

Remote Façade (cont.)

Better load distribution

Many HTTP requests can be served locally, using only session information

Page 14: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Why is Response Time Still High?

Main ServerEdge Server

RemoteClient

HTTP

EJB Tier

EntitySession

Web Tier

Catalog Catalog<<Facade>>

Inventory

Database

EJB Tier

Entity

Session

Web Tier

CatalogW

A

N

stateless shared state

Page 15: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

EJB Tier

Entity

Session

Web Tier

Catalog

EJB Tier

Entity

Session

EJB Tier

EntitySession

Web Tier

Catalog Catalog<<Facade>>

InventoryInventoryRW

Shared Stateful Component Caching

Main ServerEdge Server

RemoteClient W

A

N Database

InventoryRO

Catalog<<Facade>> Inventory

RO

stateless shared statestateless RO shared RW shared

Page 16: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

EJB Tier

EntitySession

Web Tier

Catalog Catalog<<Facade>>

InventoryInventoryRW

Shared Stateful Component Caching

Main ServerEdge Server

RemoteClient

HTTP

Database

EJB Tier

Entity

Session

Web Tier

Catalog InventoryRO

EJB Tier

Entity

Session

InventoryRO

Catalog<<Facade>>

update

W

A

N

stateless RO shared RW shared

Page 17: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

0

100

200

300

400

500

600

Local Browser Local Buyer Remote Browser Remote Buyer

Se

ss

ion

av

era

ge

re

sp

on

se

tim

es

(m

s)

Centralized Application

Remote Façade

Shared Stateful Component Caching

Query Caching

Asynchronous Updates

Shared Stateful Component Caching (cont.)

Benefits of RO Entity beans

cachingBlocks while updates are

propagated to the edge servers

Page 18: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

0

100

200

300

400

500

600

Local Browser Local Buyer Remote Browser Remote Buyer

Se

ss

ion

av

era

ge

re

sp

on

se

tim

es

(m

s)

Centralized Application

Remote Façade

Shared Stateful Component Caching

Query Caching

Asynchronous Updates

Query Caching

Benefits of query

caching

Local caching and better load distribution

Blocks while updates are

propagated to the edge servers

Page 19: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Asynchronous Updates

EJB Tier

EntitySession

Web Tier

Catalog Catalog<<Facade>>

InventoryInventoryRW

Main ServerEdge Server

RemoteClient

HTTP

Database

EJB Tier

Entity

Session

Web Tier

Catalog InventoryRO

EJB Tier

Entity

Session

InventoryRO

update

W

A

N

Catalog<<Facade>>

stateless RO shared RW shared

Page 20: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

0

100

200

300

400

500

600

Local Browser Local Buyer Remote Browser Remote Buyer

Se

ss

ion

av

era

ge

re

sp

on

se

tim

es

(m

s)

Centralized Application

Remote Façade

Shared Stateful Component Caching

Query Caching

Asynchronous Updates

Asynchronous Updates (cont.)

Does not block on updates

Needs to access RW Entity beans on the main

server

Page 21: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Performance Results (RUBiS)

0

50

100

150

200

250

300

350

400

450

500

Local Browser Local Bidder Remote Browser Remote Bidder

Se

ss

ion

av

era

ge

re

sp

on

se

tim

es

(m

s)

Centralized Application

Remote Façade

Shared Stateful Component Caching

Query Caching

Asynchronous Updates

Page 22: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Discussion

Can functionality of proposed optimizations be automated by middleware?

Application dependent optimizations Remote Façade

– can not be automatically supported by the middleware

– enforcement: allow only façade objects to be accessed remotely (all other components use EJB 2.0 local interfaces)

Application independent optimizations Shared Stateful Component Caching (Read-Only Entity

beans), Query Caching, Asynchronous Updates– functionality can be implemented by application servers

– component behavior can be specified in the extended deployment descriptors

Page 23: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Related Work

EJB caching and clustering

State replication in wide-area environments (Bayou, TACT, database replication)

Application-level overlay networks (Overcast, RON)

Our approach application-independent solutions

lightweight techniques

potential for dynamic on-demand distribution and replication

Page 24: Efficiently Distributing  Component-Based Applications  Across Wide-Area Environments

Summary

Objective: Analyze/improve performance of component-based applications in WAN

Conclusions: Efficient distribution of component-based applications is feasible

Replication of stateless and stateful components

It is achieved by applying four identified reusable optimizations Which can be enforced or automated by middleware

Important to distinguish service usage patterns Improves understanding of performance and guides optimizations

Extended technical report: http://www.cs.nyu.edu/pdsg/projects/mutable-services/ (Publications)

Source code is available – send e-mail to [email protected]