Service-Oriented Architectures Andrew Whitaker CSE451.

Slides:



Advertisements
Similar presentations
Cloud computing is used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication.
Advertisements

Distributed Processing, Client/Server and Clusters
Database Architectures and the Web
Introduction to Web Services and Web API’s Richard Holowczak Baruch College December, 2014.
Chapter 4 Infrastructure as a Service (IaaS)
SLC/Ver1.0/OS CONCEPTS/Oct'991INTRODUCTION What is an Operating System? Operating Structure -System Components -OS Services -System Calls & Programs -System.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Technical Architectures
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Middleware Technologies compiled by: Thomas M. Cosley.
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Apache Axis: A Set of Java Tools for SOAP Web Services.
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
SPRING 2011 CLOUD COMPUTING Cloud Computing San José State University Computer Architecture (CS 147) Professor Sin-Min Lee Presentation by Vladimir Serdyukov.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
1 CS 131 Wrap Up Fall 2008 What Good is Programming?
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
Web Applications Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
IT 344: Operating Systems Winter 2010 Module 17 Distributed Systems.
Database Architectures and the Web Session 5
In the name of God :).
Remote Procedure Call Andrew Whitaker CSE451. Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { Price.
Architecture Planning and designing a successful system Use tried and tested techniques Easy to maintain Robust and long lasting.
Overview Abstract Vulnerability: An Overview Cloud Computing Cloud-Specific Vulnerabilities Architectural Components and Vulnerabilities Conclusion.
2-Tier,3-Tier datawarehouse Submitted by Manisha Dubey & Akanksha Agrawal.
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
We will cover in this lecture A first look at issues related to Security Maintenance Scalability Simple Three Tier Architecture Module Road Map Assignment.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 43 Remote Method Invocation.
CENTRALISED AND CLIENT / SERVER DBMS. Topics To Be Discussed………………………. (A) Centralized DBMS (i) IntroductionIntroduction (ii) AdvantagesAdvantages (ii)
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
6.894: Distributed Operating System Engineering Lecturers: Frans Kaashoek Robert Morris
Service-Oriented Architectures Andrew Whitaker CSE451.
Design Patterns Cloud Sharath Feb
ECpE Student Database Team 21 Adviser: Tien Nguyen ECpE and Tony Moore.
Function as a Service An Ad Hoc Approach to Cloud Computing By Keith Downie.
Stuff to memorise… "A method tells an object to perform an action. A property allows us to read or change the settings of the object."
Stuff to memorise… "A method tells an object to perform an action. A property allows us to read or change the settings of the object."
Cloud Design Patterns Sharath Sahadevan,
SEMINAR ON.  OVERVIEW -  What is Cloud Computing???  Amazon Elastic Cloud Computing (Amazon EC2)  Amazon EC2 Core Concept  How to use Amazon EC2.
CS 325 Spring ‘09 Chapter 1 Goals:
Introduction to DBMS Purpose of Database Systems View of Data
Databases and DBMSs Todd S. Bacastow January 2005.
Virtual Machine Monitors
Chapter 6: Securing the Cloud
Chapter 1: Introduction
Web Services Primer Overview of Web Services
Stoneworks Software Corp.
LECTURE 34: WEB PROGRAMMING FOR SCALE
PHP / MySQL Introduction
Cloud Computing.
Inventory of Distributed Computing Concepts and Web services
Data, Databases, and DBMSs
LECTURE 32: WEB PROGRAMMING FOR SCALE
IT344 – Operating Systems Winter 2011, Dale Rowe.
LECTURE 33: WEB PROGRAMMING FOR SCALE
Introduction to Databases Transparencies
Architecture.
Chapter 40 Remote Method Invocation
Introduction to DBMS Purpose of Database Systems View of Data
Internet and Web Simple client-server model
Internet Protocols IP: Internet Protocol
Architecture.
Chapter 46 Remote Method Invocation
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Chapter 46 Remote Method Invocation
LECTURE 33: WEB PROGRAMMING FOR SCALE
Presentation transcript:

Service-Oriented Architectures Andrew Whitaker CSE451

Today’s Theme How do you allow hundreds of developers to work on a single website?

Amazon.com: The Beginning Initially, one web server (Obidos) and one database ObidosDatabase Internet Details: Front end consists of a web server (Apache) and “business logic” (Obidos)

Amazon: Success Disaster! Obidos Load balancer Amazon.com Internet Database Use redundancy to scale-up, improve availability

Obidos Obidos was a single monolithic C application that comprised most of Amazon.com’s functionality During scale-up, this model began to break down

Problem #1: Branch Management Merging code across branches becomes untenable HelloWorld.c development release Blue changes depend on Red changes (which may depend on other changes…)

Problem #2: Debugging On a failure, we would like to inspect what happened “recently”  But, the change log contains numerous updates from many groups Bigger problem: lack of isolation  Change by one group can impact others

Problem #3: Linker Failure Obidos grew so large that standard build tools were failing

Service-Oriented Architecture (1) First, decompose the monolithic web site into a set of smaller modules  Called services Examples:  Recommendation service  Price service  Catalogue service  And MANY others

Sidebar: Modularity Information hiding (Parnas 1972): The purpose of a module is to hide secrets Benefits of modularity  Groups can work independently Less “synchronization overhead”  Ease of change We are free to change the hidden secrets  Ease of comprehension Can study the system at a high level of abstraction public interface List { } // This can be an array, a linked-list, // or something else

Systems and Information Hiding There is often a tension between performance and information hiding In OS’s, performance often wins: struct buffer { // DO NOT MOVE these fields! // They are accessed by inline assembly that // assumes the current ordering. struct buffer* next; struct buffer* prev; int size; … }

Service Oriented Architectures (2) Modularity + a network Services live on disjoint sets of machines Services communicate using RPC  Remote procedure call

Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { float getPrice(long uniqueID); } Client Server PriceImpl getPrice()

SOA, Visualized Website Shopping Cart Price Recommendation Catalogue All services reside on separate machines All invocations are remote procedure calls

Benefits of SOA Modularity and service isolation  This extends all the way down to the OS, programming language, build tools, etc. Better visibility  Administrators can monitor the interactions between services Better resource accounting  Who is using which resources?

Performance Issues A webpage can require dozens of service calls  RPC system must be high performance Metrics of interest:  Throughput  Latency Both average and the variance

SLAs Service performance is dictated by contracts called Service Level Agreements  e.g., Service Foo must Have 4 9’s of availability Have a median latency of 50 ms Have a 3 9’s latency of 200 ms

Amazon and Web Services Allow third-parties to use some (but not all) of the Amazon platform Front-end website Catalogue Sleds.com Order Processing Shopping Carts Amazon.com

Searching on a Web Site

Searching Through a Web Service class Program { static void Main(string[] args) { AWSECommerceService service = new AWSECommerceService(); ItemSearch request = new ItemSearch(); request.SubscriptionId = "0525E2PQ81DD7ZTWTK82"; request.Request = new ItemSearchRequest[1]; request.Request[0] = new ItemSearchRequest(); request.Request[0].ResponseGroup = new string[] { "Small" }; request.Request[0].SearchIndex = "Books"; request.Request[0].Author = "Tom Clancy"; ItemSearchResponse response = service.ItemSearch(request); Console.WriteLine(response.Items[0].Item.Length + " books written by Tom Clancy found."); }

Other Web Services Google  Calendar  Maps  Charts Amazon infrastructure services  Simple storage (disk)  Elastic compute cloud (virtual machines)  SimpleDB Facebook Ebay …