A Comparison of Software Architectures for E-Business Applications



Similar documents
3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Client/server is a network architecture that divides functions into client and server

JReport Server Deployment Scenarios

Virtual Credit Card Processing System

Enterprise Application Integration

WEBLOGIC ADMINISTRATION

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

A Hybrid Web Server Architecture for e-commerce Applications

Solutions for detect, diagnose and resolve performance problems in J2EE applications

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

.NET 3.0 vs. IBM WebSphere 6.1 Benchmark Results

B M C S O F T W A R E, I N C. BASIC BEST PRACTICES. Ross Cochran Principal SW Consultant

Ogunrinde Mutiat Adebukola, Olorisade Babatunde Kazeem

Techniques for Scaling Components of Web Application

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

TPC-W * : Benchmarking An Ecommerce Solution By Wayne D. Smith, Intel Corporation Revision 1.2

Conflict-Aware Scheduling for Dynamic Content Applications

Dependency Free Distributed Database Caching for Web Applications and Web Services

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

Holistic Performance Analysis of J2EE Applications

Case Study. SaaS Based Multi-Store Market Place Brainvire Infotech Pvt. Ltd Page 1 of 5

Apache Jakarta Tomcat

Java 2 Platform, Enterprise Edition (J2EE) Bruno Souza Java Technologist, Sun Microsystems, Inc.

Introduction. AppDynamics for Databases Version Page 1

JBS-102: Jboss Application Server Administration. Course Length: 4 days

A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software

White paper. IBM WebSphere Application Server architecture

CentOS Linux 5.2 and Apache 2.2 vs. Microsoft Windows Web Server 2008 and IIS 7.0 when Serving Static and PHP Content

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

A framework for web-based product data management using J2EE

IBM WebSphere Server Administration

Stock Trader System. Architecture Description

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

Performance Analysis of Web based Applications on Single and Multi Core Servers

WebLogic Server 11g Administration Handbook

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Open-Xchange Whitepaper Open-Xchange Server 6 Architecture Overview

Benchmarking and monitoring tools

Various Load Testing Tools

Oracle WebLogic Server 11g Administration

Efficiency of Web Based SAX XML Distributed Processing

JAVA/J2EE DEVELOPER RESUME

1 How to Monitor Performance

Cache Database: Introduction to a New Generation Database

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

WebSphere Application Server - Introduction, Monitoring Tools, & Administration

Detailed Table of Contents

TESTING AND OPTIMIZING WEB APPLICATION S PERFORMANCE AQA CASE STUDY

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

1 How to Monitor Performance

Version Overview. Business value

To increase scalability, the following features can be integrated:

White Paper. How to Achieve Best-in-Class Performance Monitoring for Distributed Java Applications

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

WebSphere Training Outline

Features of The Grinder 3

SAP WEB DISPATCHER Helps you to make decisions on Web Dispatcher implementation

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

NetIQ AppManager for WebLogic Server UNIX. Management Guide

WebSphere Server Administration Course

StreamServe Persuasion SP5 StreamStudio

Performance Comparison of Database Access over the Internet - Java Servlets vs CGI. T. Andrew Yang Ralph F. Grove

Glassfish, JAVA EE, Servlets, JSP, EJB

Enterprise Edition Scalability. ecommerce Framework Built to Scale Reading Time: 10 minutes

The Comparison of J2EE and.net for e-business

Liferay Portal Performance. Benchmark Study of Liferay Portal Enterprise Edition

AN EFFICIENT LOAD BALANCING ALGORITHM FOR A DISTRIBUTED COMPUTER SYSTEM. Dr. T.Ravichandran, B.E (ECE), M.E(CSE), Ph.D., MISTE.,

Best practices for performance tuning JBoss Enterprise

Web Application Development

Oracle WebLogic Server 11g: Administration Essentials

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

5 Days Course on Oracle WebLogic Server 11g: Administration Essentials

What Is the Java TM 2 Platform, Enterprise Edition?

Transcription:

A Comparison of Software Architectures for E-Business Applications Emmanuel Cecchet, Anupam Chanda, Sameh Elnikety, Juli Marguerite and Willy Zwaenepoel Rice University Department of Computer Science Dynamic Web Content _ Front-end Web server Executes the application logic Returns the page as an HTTP response to the client _ Back-end database Stores the content of the site Presented By: Stan Rajan Application Logic _ Provides access to the content _ Issues queries to the database _ Formats the results as an HTML page _ Various Forms Application Logic Scripting Languages A Module in the Apache Web server Microsoft Active Server Pages Separate Java virtual machine 1

Application Logic _ PHP Scripting language with embedded SQL queries _ Java Servlets Allow embedded SQL Queries in Java code *In both cases, the application programmer writes the SQL Queries Application Logic _ Java Servlets with Enterprise Java Beans Beans represent items in the database Java servlets call bean methods Bean methods issue SQL Queries to the database Application Logic _ Java Servlets with Enterprise Java Beans Provides a level of indirection between the application and the database Servlets do not have to be located on the Web Server Can be located on the database machine or on an altogether separate machine PHP (Hypertext Preprocessor) _ Scripting Language An extension of the HTML language Can be directly embedded into an HTML page Executed within a Web server process _ No inter-process communication overhead HTTP invokes PHP interpreter that executes the script _ Requests to the database performed using ad hoc interface 2

Java HTTP Servlets _ Java class that can be dynamically loaded by a servlet server Runs in a Java Virtual Machine Server invokes the servlet _ Inter-process communication _ Concurrent requests handled by separate threads Servlets access database using standard JDBC interface Enterprise Java Beans (EJB) _ Server abstracts the application business logic from underlying middleware _ Two Types of EJB Entity Beans _ Map data stored in the database Session Beans _ Perform temporary operations (stateless) _ Represent temporary objects (stateful) Enterprise Java Beans (EJB) EJB Server Example _ Services provided by EJB server Database access (JDBC) Transactions (JTA) Security (JMS) Naming (JNDI) Management Support (JMX) 1 - Client sends request to the HTTP server 3

EJB Server Example EJB Server Example 2 - HTTP server invokes servlet using AJP12 protocol 3 - Servlet queries the EJB server using RMI to retrieve info from the database in order to generate the HTML reply EJB Server Example PHP _ Pros Easy to write Reasonably efficient Minimized communication overheads _ Scripts execute in same address space as Web server 4 EJB server calls the database _ Cons Database interfaces are ad hoc _ New code needed for each new database access 4

Java Servlets _ Pros Easily portable between databases (JDBC interface) Servlet server can be placed on a machine different from the Web server to balance the load _ Cons Overhead of the JVM Cost of IPC with servlet and Web server executing on separate machines EJB _ Pros Abstracts the application logic from any specific platform, protocol, or middleware infrastructure Level of indirection between the application and the database _ Cons Seen in the application benchmarks Auction Site _ Significant load on the Web server _ Functionality Selling, browsing, bidding _ User Sessions Visitor (only allowed to browse) Buyer, seller (require registration) Auction Site _ Buyer Session Bid on items Summary of current bids Rating and other users comments _ Seller Session Require a fee before selling an item Specify a minimum price 5

Auction Site _ Seven database tables Users, items, bids, buy_now, comments, categories, regions _ 26 client web browser interactions Bidding, buying, selling, leaving comments, etc. Auction Site _ Workload Mix 33,000 items for sale 40 categories 62 regions 500,000 auction history (old-items) 10 bids per item average _ 330,000 bids table entries Auction Site _ Workload Mix 1,000,000 users table entries Feedback for 95% of transactions _ 31,500 new-comments table entries _ 475,000 old-comments table entries _ Total Size = 1.4 GB Online Bookstore _ Significant load on the database _ Eight database tables Customers, address, orders, order_line, credit_info, items, authors, countries _ 14 Interactions 6 read-only 8 cause database updates 6

Online Bookstore _ Payment gateway emulator (PGE) Represents an external system that authorizes payment of funds during purchasing Web server contacts the PGE using an SSL session to send the credit card information PGE replies with an authorization number Online Bookstore _ Workload Mix 95% read-only scripts 80% shopping mix 50% ordering mix _ Database sizes 350 MB 3.5 GB 3-Phase Experiment _ Warm-up phase Initializes the system until it reaches a steady-state throughput level _ Steady-state phase Measurements performed _ Cool-down phase Slows down the incoming request flow _ Auction 5 minutes, 30 minutes, 5 minutes _ Bookstore 1 minute, 10 minutes, 10 seconds Configurations _ PHP on same machine as the Web server _ Java servlets on same machine as Web server _ Java servlets on same machine as database _ Java servlets on dedicated machine _ Web server, servlet server, EJB server, and database server each on different machines 7

Browsing Java servlets on DM Java servlets on DB PHP Java servlets on WS Browsing Java servlets on Web server _ 6,840 interactions per minute for 700 clients PHP _ 8,520 interactions per minute for 800 clients Java servlets on database machine _ 10,200 interactions per minute for 1,000 clients Java servlets on dedicated machine _ 12,000 interactions per minute for 1,200 clients Bidding Java servlets on DM PHP Java servlets on WS Java servlets on DB Bidding Java servlets on database machine _ 6,480 interactions per minute for 700 clients Java servlets on Web server _ 7,380 interactions per minute for 700 clients PHP _ 9,780 interactions per minute for 1,100 clients Java servlets on dedicated machine _ 10,440 interactions per minute for 1,200 clients 8

Servlet running on the Web Server _ Web server CPU is the bottleneck with 100% CPU util. _ PHP is more efficient than Java servlets Due to separate process for communication between Web server and servlet server which is not needed in PHP Servlet running on the database machine _ Database machine CPU is not a bottleneck Util. substantially lower in browsing than bidding mix 21% browsing, 45% bidding Servlet running on a dedicated machine _ Best performance achieved for both mixes _ Benefit of an extra CPU outweighs the extra communication costs of the servlet server being on a separate machine _ Configurations using PHP, Java servlets and EJB _ Configurations using PHP, Java servlets and EJB EJB throughput initially grows linearly with # of clients Peaks at 850 ipm with 100 clients (browsing) Peaks at 1,051 ipm with 140 clients (bidding) Throughput of PHP and Java servlets continues to increase beyond peaks of EJB Browsing Bidding 9

_ Configurations using PHP, Java servlets and EJB Bookstore Results CPU on the EJB server is the bottleneck with average 99% util for both mixes Bookstore Results Bookstore Results Throughput about the same for all 3 configurations Java servlets on Web server _ 497 interactions per minute for 70 clients Java servlets on dedicated machine _ 504 interactions per minute for 70 clients PHP _ 532 interactions per minute for 70 clients Bottleneck is the database CPU 10

Bookstore Results _ Configurations using PHP, Java servlets and EJB Bookstore Results _ Configurations using PHP, Java servlets and EJB EJB version peaks at 92 ipm with 20 clients Both the database and the EJB servers CPU are alternatively the bottleneck resources limiting the throughput to under 100 ipm Bookstore Results _ Database CPU is the main bottleneck Minimal differences between PHP and Java servlets in performance _ EJB throughput problematic Overall performance considerably lower than with PHP or Java servlets Conclusions _ Web server and business logic on same machine PHP somewhat faster than Java servlets _ Web server or business logic bottleneck Re-locate Java servlets to database machine or separate machine to increase performance over PHP _ Database is the bottleneck No difference between PHP and Java servlets _ In all cases EJB considerably slower than PHP and Java servlets 11