4/25/03 1 6. Application Server Issues for the Project CSEP 545 Transaction Processing for E-Commerce Philip A. Bernstein Copyright ©2003 Philip A. Bernstein.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

SOAP.
Message Queues COMP3017 Advanced Databases Dr Nicholas Gibbins –
Technical Architectures
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
Distributed Database Management Systems
1 ICS 214B: Transaction Processing and Distributed Data Management Lecture 15: Data Replication with Network Partitions & Transaction Processing Systems.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
The Architecture of Transaction Processing Systems
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
.NET Mobile Application Development Remote Procedure Call.
Client-Server Processing and Distributed Databases
The Client/Server Database Environment
INTRODUCTION TO WEB DATABASE PROGRAMMING
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Web Application Architecture and Communication. Displaying a Web page in a Browser
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Lecture 7 Interaction. Topics Implementing data flows An internet solution Transactions in MySQL 4-tier systems – business rule/presentation separation.
Networks QUME 185 Introduction to Computer Applications.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
J2EE Structure & Definitions Catie Welsh CSE 432
Lecture 15 Introduction to Web Services Web Service Applications.
Week 5 Lecture Distributed Database Management Systems Samuel ConnSamuel Conn, Asst Professor Suggestions for using the Lecture Slides.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Procedures for managing workflow components Workflow components: A workflow can usually be described using formal or informal flow diagramming techniques,
5/22/ Business Process Management CSEP 545 Transaction Processing Philip A. Bernstein Copyright ©2007 Philip A. Bernstein.
Distributed Transaction & Long-running transactions Rossen Zhivkov Freelance SharePoint Consultant January 19 th, 2008 Sofia, Bulgaria Krasimir Parushev.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
Architecture Models. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
Enterprise Integration Patterns CS3300 Fall 2015.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Replication (1). Topics r Why Replication? r System Model r Consistency Models – How do we reason about the consistency of the “global state”? m Data-centric.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Remote Procedure Call and Serialization BY: AARON MCKAY.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Web Services An Introduction Copyright © Curt Hill.
Implementing Remote Procedure Call Landon Cox February 12, 2016.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
SAP Integration with Oracle 11g Muhammad Raza Fatmi.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
6. Application Server Issues for the Project
The Client/Server Database Environment
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
z/Ware 2.0 Technical Overview
The Client/Server Database Environment
The Client/Server Database Environment
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Sarah Diesburg Operating Systems COP 4610
Lecture 1: Multi-tier Architecture Overview
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
4. Miscellaneous Project Issues
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
WEB SERVICES From Chapter 19, Distributed Systems
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
4. Miscellaneous Project Issues
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

4/25/ Application Server Issues for the Project CSEP 545 Transaction Processing for E-Commerce Philip A. Bernstein Copyright ©2003 Philip A. Bernstein

4/25/03 2 Requests A request is a message that describes a unit of work for the system to execute. An application server coordinates the flow of requests between message sources (displays, applications, etc.) and application programs that run requests as transactions. Basic control flow: –Translate the display input (form/menu selection, etc.) into a standard-format request –Send the request to the appropriate server based on the transaction type in the request header –Start the transaction –Invoke the transaction type’s application program –Commit and send the transaction’s output to the display

4/25/03 3 Application Server Architecture App server should make the previous control flow scale up Bold lines carry request messages Web Server Workflow Controller Transaction Server intranet http other TP systems Web Browser Resource Manager 1 6

4/25/03 4 Application Server Components Web Browser – A smart device, with forms, menus, input validation Web server –Performs front-end work, e.g., security, data caching, …. –“Calls” the web page associated with the URL, which in turn calls a workflow controller Workflow controller –Calls Start, Commit, and Abort –App logic that transforms the request (automatic loan payment, money transfer) into calls on basic objects (loan, account). Sometimes called business rules. Transaction server –Business objects (customer, account, loan, teller) Resource Manager – usually a database (DB) system

4/25/03 5 Project’s Process Architecture 1 Web Browser Web Server Workflow controller Transaction Server Resource Manager Client Workflow Controller Resource Manager

4/25/03 6 Workflow Controller For the most part, Workflow Controllers and Transaction Servers are just plain old server programs The features that differentiate a Workflow Controller are that it –Brackets transactions (issues Start, Commit, and Abort), so that transaction server procedures can execute either as independent transactions or as steps in larger transactions –Reports Commits to the client (e.g. web server) –Handles Aborts and other failures (e.g. re-runs the transaction) –Does not access the DB system, so it need not be close to the DB server

4/25/03 7 Transaction Server The features that differentiate a Transaction Server are the inverse of the Workflow Controller, namely that it –Does not issue Start, Commit, and Abort (so it can be called either as an independent transaction or as a step in larger transaction) –Does not talk directly to the client (e.g., Web Server) –Can access the DB system In addition, it can call other transaction servers. Often, some transaction server code runs as stored procedures inside the DB system. –So combining the transaction server and resource manager in the project isn’t really an oversimplification.

4/25/03 8 Transaction Manager (TM) The TM is the server that supports Start, Commit and Abort. It implements two-phase commit. This is a major feature of many application servers. –10 years ago, it was the major feature (TM + T-RPC). –Supports 2PC across different RMs. –So it’s useful to have a TM in the application server even though DB products implement 2PC themselves

4/25/03 9 Project’s Process Architecture 2 Web Browser Web Server Workflow controller Transaction Server Resource Manager Client Workflow Controller Resource Manager Transaction Manager Start, Commit, Abort 2PC

4/25/03 10 Remote Procedure Call (RPC) Within a system or intranet, RPC is the most popular form of inter-process communication A program calls a remote procedure (in another process) the same way it would call a local procedure –This simplifies the message protocol. It’s always a call message followed by a return message. –It hides certain communications errors. –It automates the work of marshaling parameters into and out of the call and return messages. There are many implementations of the concept –RMI, DCOM, CORBA/IIOP, HTTP, SOAP, ODBC, …. In the project, all inter-process communications is via RPC.

4/25/03 11 Transactional RPC Transactional RPC is an RPC protocol that implements the necessary plumbing to cope with a caller and/or callee that are running a transaction. Ideally, Start returns a transaction ID that’s hidden from the caller in a transaction context –Transactional RPC passes that transaction context as a hidden parameter. It’s an easier programming model and avoids errors. –When a transaction first arrives at a callee C, C needs to enlist with the local transaction manager (TM), so the TM knows to call C during two-phase commit. –Also, C needs to execute the call in the context of the transaction that called it.

4/25/03 12 Transactional RPC in the Project You are implementing transactional RPC in the project. –In steps 6 and 7 –But the transaction context parameter is explicit (not hidden).

4/25/03 13 Project’s Process Architecture (revisited) Web Browser Web Server Workflow controller Transaction Server Resource Manager Client Workflow Controller Resource Manager Transaction Manager Start, Commit, Abort 2PC enlist

4/25/03 14 Partitioning Servers To add system capacity, add server machines. Sometimes, you can just relocate some server processes to different machines. But if an individual server process overloads one machine, then you need to partition the process. –Example – flights, cars, and hotel rooms are managed by one server process. Later, you partition them in separate processes. –This implies the WFC has to direct its RPC calls based on resource type –To facilitate such changes, the mapping of resource name to server name can be made table-driven. This scenario is developed in step (7) of the project, where multiple RMs are required.

4/25/03 15 Parameter-Based Routing Sometimes, it’s not enough to partition by resource type, because a resource is too popular –Example: flights The solution is to partition the popular resource based on value ranges –Example – flight number on Server A, flight number on Server B, etc. –This implies that a WFC has to direct its calls based on parameter value (e.g. flight number) –To facilitate such changes, the mapping of parameter range to server name can be made table-driven. This is a possible project extension (not required)

4/25/03 16 Summary of Concepts Workflow controller vs. Transaction Server Remote Procedure Call (RPC) Transactional RPC Transaction Manager Partitioning Servers Parameter-Based Routing There’s a lot more to say about Application Servers. We’ll return to the topic in a later lecture.