SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems



Similar documents
Distributed Objects and Components

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

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

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

Enterprise Application Integration

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Distributed Systems Lecture 1 1

What Is the Java TM 2 Platform, Enterprise Edition?

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

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

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

Detailed Table of Contents

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

Client-Server Applications

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Web Services. Copyright 2011 Srdjan Komazec

Service Oriented Architectures

Event-based middleware services

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

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

System types. Distributed systems

Tier Architectures. Kathleen Durant CS 3200

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

Introduction into Web Services (WS)

Software Architecture

Chapter 2: Remote Procedure Call (RPC)

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

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

Distributed Systems LEEC (2005/06 2º Sem.)

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

Infrastructure that supports (distributed) componentbased application development

Middleware: Past and Present a Comparison

COM 440 Distributed Systems Project List Summary

Distributed Database Design

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

ON-LINE BOOKING APPLICATION NEIL TAIT

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

Middleware Lou Somers

Client/Server Computing Distributed Processing, Client/Server, and Clusters

PIE. Internal Structure

XII. Distributed Systems and Middleware. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Chapter 2: Enterprise Applications from a Middleware Perspective

S y s t e m A r c h i t e c t u r e

Managing Complexity in Mobile Application Deployment Using the OSGi Service Platform

Core J2EE Patterns, Frameworks and Micro Architectures

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

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

Enterprise Application Integration (Middleware)

Service-Oriented Architecture and Software Engineering

Holistic Performance Analysis of J2EE Applications

Distributed Systems Architectures

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

How To Understand The Concept Of A Distributed System

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

Enterprise Integration Architectures for the Financial Services and Insurance Industries

Chapter 11 Distributed File Systems. Distributed File Systems

Customer Bank Account Management System Technical Specification Document

Efficiency of Web Based SAX XML Distributed Processing

CICS Modernization & Integration

Chapter 16 Distributed Processing, Client/Server, and Clusters

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Application Architectures

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

B. WEB APPLICATION ARCHITECTURE MODELS

Overview Document Framework Version 1.0 December 12, 2005

A distributed system is defined as

How To Write A Network Operating System For A Network (Networking) System (Netware)

Java-technology based projects

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

Software Life-Cycle Management

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

Adobe LiveCycle Data Services 3 Performance Brief

Elements of Advanced Java Programming

E-Commerce Supply Chain Management Domain Research and Standard Architectures Kunal Chopra, Jeff Elrod, Bill Glenn, Barry Jones.

Software Architecture Document

Building Java Servlets with Oracle JDeveloper

This paper was presented at the 1996 CAUSE annual conference. It is part of the proceedings of that conference, "Broadening Our Horizons:

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

The Integration Between EAI and SOA - Part I

The Service Availability Forum Specification for High Availability Middleware

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus

System Architectures for Integrating Web-Based User Interfaces into (Legacy) Database Applications

Service Oriented Architecture

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Client/Server and Distributed Computing

A Survey Study on Monitoring Service for Grid

Web. Studio. Visual Studio. iseries. Studio. The universal development platform applied to corporate strategy. Adelia.

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Java Server Programming: Principles and Technologies. Subrahmanyam Allamaraju, Ph.D.

Performance Testing IBM MQSeries* Infrastructures

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Transcription:

SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems

Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE Techniques to represent and analyze interactions among multiple systems Extensions to software execution model for distributed systems Analysis of contention effects SOFT 437 2

Web Application Architecture Web applications adopt client/server architecture or multi-tier architecture The Web is a collection of Internet servers Web server stores electronic files Application server houses business logic Application Server Web Server Application Server Internet Web Server N Tier Internet Application Server Web Server SOFT 437 3

Observations Component based development technologies are largely adopted in the development of Web applications The development environments require little training of distributed object technologies or even in computer science Many Web applications are developed without the benefit of serious analysis, design or SPE The development process takes fix-it-later approach Both responsiveness and scalability are important for Web Applications SOFT 437 4

Class Diagram for a Web Application Servlets/ CGI JSP SOFT 437 5

Performance Concerns Forecasting the volume of activity Choice of mechanism for executables Allocation of executables to processing nodes Mechanisms for accessing the database Mechanisms for handling persistent data Mechanisms for providing access and/or data security Instrumentation for characterizing Web application usage Location of the database Interfaces to legacy systems Impact of downloading applets or other code SOFT 437 6

Performance Problems with Good Security SSL (Secure Sockets Layer) is commonly adopted for secured data over the Internet Every time a browser makes an https request for a page the server that the user is connecting to generates a digital key. Generating this key is a computationally intensive operation. Some solutions: Reuse of a key for the same session Keep webpage short SOFT 437 8

SOFT 437 9

Distributed Object Technology (DOT) DOT is the merging of object oriented technology with distributed systems technology The object is the unit of computation and distribution in a heterogeneous multi-platform computing environment Encapsulation of data and operations Separate their interface from their implementation SOFT 437 10

Middleware A region in between client and server Provides an isolation layer, dealing with the different protocols and interfaces amassed from heterogeneous environment Presents its own API SOFT 437 11

Major Middleware Technologies Common Object Request Architecture (CORBA), from OMG Distributed Common Object Model (DCOM), from Microsoft J2EE from Sun now Oracle Common Object Model Plus (COM+), from Microsoft SOFT 437 12

Performance Aspects Related to DOT SOFT 437 14

Latency Latency is the difference in response time between a local and a remote operation invocation Sources of latency include network speed middleware overhead communication overhead due to objects in difference address space Performance in a distributed system is governed by communication overhead rather than component implementation SOFT 437 15

Memory Access Objects in the same memory space can be accessed efficiently using pointers Object in different address spaces can be accessed using less efficient object references The differences in the way local versus remote objects are accessed requires that either The programmer must be aware of the ultimate location of the object, or The execution environment must provide a uniform mechanism for accessing objects that hides their location SOFT 437 16

Partial Failure Failure occurs in a component, network, a given processor while others continue to operate and communicate normally It is difficult to restore consistency following a failure Two alternatives for coping with failures Treat all objects as if they were local Leads to nondeterministic behavior in the case of partial failure Treat all objects as if they were remote Adds additional latency for accessing local objects SOFT 437 17

Concurrency Methods of same objects could be invoked concurrently To prevent inconsistencies or data corruption, distributed objects must define and maintain critical sections to manage concurrent access to their data Approaches to treating all objects uniformly Ignore the concurrency Make all objects single thread Include concurrency semantics in all objects, regardless of their location SOFT 437 18

Effective Development with DOT Object locations and concurrency semantics should be fixed early in the development process For example, if an object will be remote, minimize the number of calls to the object, and maximizes the value of the results obtained From a performance perspective, the only rational way to make trade-offs is to base decisions on quantitative information SOFT 437 19

Modeling Distributed System Interactions The essence of the distributed system software architecture is the placement of objects and the communication and synchronization among objects Communication and synchronization overhead have significant impact on performance We adapt keep-it-simple approach Represent synchronization as a delay for a client to receive results from a server process in the stage of modeling software execution models Add specific synchronization notation to the sequence diagrams and software execution models, later SOFT 437 20

Modeling Distributed System Interactions (con t) Use software model approximation techniques to solve synchronization extended software execution models SOFT 437 21

The Essence of Distributed Systems Object Placement Communication Synchronization SOFT 437 22

Types of System Interactions Four types of system interactions are typically supported in middleware Synchronous Asynchronous Deferred synchronous, and Asynchronous callback communication Severs provide services to clients Clients request services on servers The roles of servers and clients refer to a particular interaction, and may be reversed in subsequent interactions SOFT 437 23

Synchronous Communication SOFT 437 24

Asynchronous Communication SOFT 437 25

Deferred Synchronous Communication SOFT 437 26

Asynchronous Callbacks SOFT 437 27

Synchronization RECALL UML provides different types of arrowheads to represent communications among objects Process is Idle Synchronous message Asynchronous message Return SOFT 437 28

Synchronization (con t) RECALL SOFT 437 29

Software Execution Model Representation SOFT 437 30

Software Model Solution Approximations Use approximate solutions of software models to easily identify serious problems and to permit quick analysis of many architectural and design alternatives Begin by creating separate performance scenarios for each key facility Specify resource requirements for active regions and estimate delays between active regions Later, if necessary, model individual processes on each facility SOFT 437 31

Solving Software Execution Models for Distributed Systems Insert synchronization nodes at appropriate points in the processing steps To solve the models, you specify Resource requirements for the processing nodes The estimated delay for synchronization nodes The number of messages sent via the network The processing overhead for middleware that handles remote calls SOFT 437 32

Example: Web e-commerce Application We consider a simple e-commerce application in which users may purchase items via the Web With the browser, the user selects items to purchase Once all selections have been made, the user checks out, and the order is processed When order processing is complete, the user receives an acknowledgement SOFT 437 35

SOFT 437 36

SOFT 437 37

SOFT 437 38

SOFT 437 39

SOFT 437 40

SOFT 437 41

Database Scenario SOFT 437 42

Database Scenario SOFT 437 43

Order Process Scenario SOFT 437 44

Example Summary This example has illustrated the construction and solution of software execution models for distributed systems We model scenarios individually, using estimates for delays introduced by communication and synchronization with objects on other processors The models can be solved iteratively to refine these estimates, if necessary SOFT 437 45