Evolution of Service Oriented Architectures

Similar documents
DS 2009: middleware. David Evans

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

CHAPTER - 4 REMOTE COMMUNICATION

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

1.264 Lecture 16. Legacy Middleware

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

Distributed Objects. Object-Oriented Application Development

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distribution and Integration Technologies

Software Architecture Patterns

Today: Distributed Objects. Distributed Objects

Architectural Patterns

Lecture 5: Object Interaction: RMI and RPC

CAS 703 Software Design

Chapter 5: Distributed objects and remote invocation

Advanced Topics in Operating Systems

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

Distributed Systems Principles and Paradigms

Distributed Middleware. Distributed Objects

Communication. Distributed Systems Santa Clara University 2016

Advanced Distributed Systems

Distributed Systems. The main method of distributed object communication is with remote method invocation

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

Advanced Lectures on knowledge Engineering

Remote Invocation Vladimir Vlassov and Johan Montelius

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

Object-Oriented Systems Design RMI

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Object Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

ICENI: An Open Grid Service Architecture Implemented with Jini Nathalie Furmento, William Lee, Anthony Mayer, Steven Newhouse, and John Darlington

Today: Distributed Middleware. Middleware

RMI: Design & Implementation

IT6503 WEB PROGRAMMING. Unit-I

EECS 482 Introduction to Operating Systems

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Software Components and Distributed Systems

Client/Server-Architecture

(9A05803) WEB SERVICES (ELECTIVE - III)

Electronic Payment Systems (1) E-cash

Java J Course Outline

Lecture 06: Distributed Object

Operating System Support

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

CHAPTER 7 COM and.net

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Collaboration of Tasks

RPC and RMI. 2501ICT Nathan

Distributed Systems. 5. Remote Method Invocation

Distributed Environments. CORBA, JavaRMI and DCOM

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

DISTRIBUTED SYSTEMS [COMP9243] Distributed Object based: Lecture 7: Middleware. Slide 1. Slide 3. Message-oriented: MIDDLEWARE

CORBA (Common Object Request Broker Architecture)

Networks and Operating Systems Chapter 3: Remote Procedure Call (RPC)

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Performance comparison of DCOM, CORBA and Web service

Distributed Systems Middleware

5.4. Events and notifications

MONitoring Agents using a Large Integrated Services Architecture. Iosif Legrand California Institute of Technology

presentation DAD Distributed Applications Development Cristian Toma

Chapter 3. Database Architecture and the Web

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

Chapter 5 Distributed Objects and Remote Invocation

Architectural Blueprint

A short introduction to Web Services

Communication. Outline

Chapter 4 Communication

Structured communication (Remote invocation)

Sistemi ICT per il Business Networking

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware

Appendix A - Glossary(of OO software term s)

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University

CS 5523 Operating Systems: Remote Objects and RMI

Remote Invocation. To do. Request-reply, RPC, RMI. q Today q. q Next time: Indirect communication

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

Apartments and COM Threading Models. Jim Fawcett CSE775 - Distributed Objects Spring 2008

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

CSci Introduction to Distributed Systems. Communication: RPC

Distribution and web services

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

Chapter 4 Remote Procedure Calls and Distributed Transactions

Chapter 5: Remote Invocation. Copyright 2015 Prof. Amr El-Kadi

Communication and Distributed Processing

Lecture 16. What is COM? Principles of COM. COM Design Principles. Example (UML Diagram) Microsoft IDL (MIDL) COM/DCOM February 23, 2005

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Trusteq Oy

(D)COM Microsoft s response to CORBA. Alessandro RISSO - PS/CO

Module 1 - Distributed System Architectures & Models

KTH ROYAL INSTITUTE OF TECHNOLOGY. Remote Invocation. Vladimir Vlassov and Johan Montelius

15-498: Distributed Systems Project #1: Design and Implementation of a RMI Facility for Java

Distributed Object-Based. Systems. Chapter 9

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications

Communication. Overview

Transcription:

Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & Engineering Indian Institute of Technology Bombay Email: rkj@cse.iitb.ac.in R.K.Joshi IIT Bombay 1

The Plan What changes have taken place in typical application architectures? What is service orientation? Where did it originate? How did it evolve? How does it connect to web services? What new technologies are needed? R.K.Joshi IIT Bombay 2

Architecture of Your Datastructures Assignment A single process One main Manipulate data structure Data is live till execution Next run is fresh execution P DS M R.K.Joshi IIT Bombay 3

A Database Assignment Create Tables Manipulate them Use a query language Data is live across queries P Q D R.K.Joshi IIT Bombay 4

Processes + Data +Interfaces Three tired application G Business Logic Database BL DB A Single user application based on persistence R.K.Joshi IIT Bombay 5

Processes + Data +Interfaces + Concurrency A G Tasks: Concurrent Activities Shared Database Concurrency Control T1 T2 T.. Tn DB A More complex Single user application using persistence R.K.Joshi IIT Bombay 6

Processes + Data +Interfaces + Parallelism Concurrency A G Tasks: Concurrent and parallel Activities Shared Database T1 Distribution of control DB Concurrency Control Inter-task communication T2 T.. Tn A More complex Single user parallel application using persistence R.K.Joshi IIT Bombay 7

Views Add more user roles Viewers are located at different places U.. Um T1 T2 T.. Tn DB R.K.Joshi IIT Bombay 8

Views Add more data sites Viewers are located at different places U.. Data is distributed Tasks are parallel T1 D1 T2 T.. Tn D.. Um Dp R.K.Joshi IIT Bombay 9

Views Add control replication Viewers are located at different places U.. Data is distributed Tasks are parallel T11 D1 Possible Control replication T12 T.. Tno D.. Um Dp R.K.Joshi IIT Bombay 10

Add data replication Views Viewers are located at different places Data is distributed And replicated Multiple copy consistency Tasks are parallel Control replication T11 D1 U.. D.. Um T12 T.. Tno Dp R.K.Joshi IIT Bombay 11

Links may fail! Alternate routes? U.. Um T11 T12 T.. Tno D1 D.. Dp R.K.Joshi IIT Bombay 12

Tasks may fail! Failure Semantics U.. Um Recovery possible? T11 T12 T.. Tno D1 D.. Dp R.K.Joshi IIT Bombay 13

Users are scattered over the internet U.. Um T11 T12 T.. Tno D1 D.. Dp R.K.Joshi IIT Bombay 14

Some users are local U.. Um T11 T12 T.. Tno D1 D.. Dp R.K.Joshi IIT Bombay 15

You need security policies U.. Um T11 T12 T.. Tno D1 D.. Dp R.K.Joshi IIT Bombay 16

All sites have all the layers and they collaborate BL network D BL D D BL R.K.Joshi IIT Bombay 17

Types of Applications Compute centric, parallel Data centric, huge data Computations and data centric Long vs. short transactions Distributed and Networked High volume, large users Event driven Peer-to-peer, client-server, service oriented Multi-concern R.K.Joshi IIT Bombay 18

Service orientation What is a service? Service provider and the service user Service contracts R.K.Joshi IIT Bombay 19

Origins of service orientation Functions and procedures Input parameters --> output results What is important is an interaction between the client and the server Call to the service R.K.Joshi IIT Bombay 20

How do you express a service? Syntactic Contracts Behavioral Contracts Functional behavior Non-functional behavior R.K.Joshi IIT Bombay 21

From local call to Remote Procedure Call The procedure may be located out of the calling process Procedure may also be located at a remote machine R.K.Joshi IIT Bombay 22

RPC (early 80s) A very primitive service paradigm in multiprogramming systems e.g. unix servers Rup Rusers Fingerd Machines and processes R.K.Joshi IIT Bombay 23

Issues considered in RPC How do you describe RPC? What's the process of development? How do you find, bind and use? What are the non-functional semantics such as fault tolerance semantics? R.K.Joshi IIT Bombay 24

Technologies for RPC Description: e.g. XDR format Marshalling and De-marshalling Specification Language Stub generator Portmapper (directory service) R.K.Joshi IIT Bombay 25

DLL Technologies Dynamically linked libraries A function or procedure may be loaded and dynamically linked Available on the same machine R.K.Joshi IIT Bombay 26

Remote Method Invocations on Objects The Proxy Pattern interface proxy real R.K.Joshi IIT Bombay 27

Technologies for RMI Object specification Server development, Proxy generation Object discovery Object binding and use Object Middleware Architectur R.K.Joshi IIT Bombay 28

Middleware Technologies for Interoperable Networked Services Typical of Applications in Lan Hide and Provide Principle R.K.Joshi IIT Bombay 29

A View of CORBA-based Middleware Distributed Objects Middleware Distributed Objects S Y S T E M S (os/ n/w) R.K.Joshi IIT Bombay 30

Concerns addressed by Middleware Connectivity and Communication Interoperability Repositories Activation Services Service Descriptions and discovery Mechanisms Development Process and Tools Standardization R.K.Joshi IIT Bombay 31

Model Driven Approach Model first Then generate Implementation Existence of Middleware does not make an exception to this. R.K.Joshi IIT Bombay 32

Interfaces Interface I { typer func f (type1, type2..) } Interface description languages: vendor specific R.K.Joshi IIT Bombay 33

Implementation in an object paradigm Skeleton-Implementation inherits I { } Actual-Implementation inherits Skeleton- Implementation {.implement here } R.K.Joshi IIT Bombay 34

Register your implementation Create an instance and register - obj = new Actual - register it with a registry - start accepting requests R.K.Joshi IIT Bombay 35

Alternative Registration Mechanism Do not Create instance directly Register only the implementation The middleware will create an instance when needed R.K.Joshi IIT Bombay 36

Find, Bind and Invoke Find your component Create a placeholder for it Invoke as if it is a local component Proxy Design Pattern R.K.Joshi IIT Bombay 37

Dynamic Invocation Unlike procedure/function calls in your day to day programming Make a request as a message and send it to remote component R.K.Joshi IIT Bombay 38

One way calls and callbacks One way calls do not block the caller Callbacks from server needs that the caller supports an exportable send send interface callback R.K.Joshi IIT Bombay 39

Multiple interfaces sharing an implementation Different users may use different interfaces Roles can be associated with interfaces Single implementation realizes all Interface navigability R.K.Joshi IIT Bombay 40

Generic Services Type independent services Based on object orientation (polymorphism) E.g. Naming: name object mappings E.g. events: publisher-subscriber Events of any kind R.K.Joshi IIT Bombay 41

Component Reuse: e.g. Containment in COM/DCOM Interface A Interface IUnknown X Y IUnknown contained container R.K.Joshi IIT Bombay 42

Component Reuse: Aggregation in COM/DCOM IUnknown A Y X IUnknow n CStuden t CNewStude nt R.K.Joshi IIT Bombay 43

Creation through Factory Objects First find and bind to factory Factory creates objects DLL based factories Client COM Library DLL factory instance compone nt instance CoGetClassObj ect DllGetClassObject create return factory return factory instance instance CreateInstance return create component use instance R.K.Joshi component IIT Bombay 44

Creation through Factory Objects First find and bind to factory Factory creates objects DLL based factories Client COM Library DLL factory instance compone nt instance CoGetClassObj ect DllGetClassObject create return factory return factory instance instance CreateInstance return create component use instance R.K.Joshi component IIT Bombay 45

Web Services A service is available through httpbased protocols. You have to cross the firewalls A different set of technologies, but the issues are the same You need to rework out all the issues of communication, typing, discovery, descriptions, security R.K.Joshi IIT Bombay 46

Example Web Service Standards and Technologies WSDL web service description language SOAP Simple object access protocol for exchanging xml based messages UDDI universal description discovery and integration R.K.Joshi IIT Bombay 47

Some examples of service orientation Telephonic services Web Services Services for mobile devices Peer to peer applications Aggregates and Compositions R.K.Joshi IIT Bombay 48

Web Server: A case study (program developed by 2 students) Handover to applications process some requests e.g. home pages HTTP Requests R.K.Joshi IIT Bombay 49

First, a Simple Socket Server An example code simple_server_main.cpp R.K.Joshi IIT Bombay 50

web server listens on port xxxx client->webserver->local server i.e. http/perl/java.. A simple webserver code how does it look like? R.K.Joshi IIT Bombay 51

Implementation instances of local server as threads Another web server thread listens to incoming requests request type determined and the request dispatched communication between main thread and local threads through pipes, one per local thread R.K.Joshi IIT Bombay 52

CLASS: CWebServer CWebServer() Input: int port, int p_http, int p_java, int p_plâ creates an instance of CWebServer. (this is the constructor) Service_function() Input: CWebServer * _webserver Output: nothing The main service loop which infinitely listens to the port for incoming requests and then classifies them and dispatches them to the appropriate LocalServer thread. GetRequestType() Input: std::string line Output: int request_type Classifies the incoming request as one of the following HTTP_REQ, JAVA_REQ, PL_REQ, BAD_REQ which then helps the service loop to decide which thread to send the request to. R.K.Joshi IIT Bombay 53

CLASS : LocalServer this is an abstract class which only provides the interface to the CWEbServer object to call the functions on the appropriate LocalServer objects CreateInstance() Input : int pipe_d Output : static LocalServer * Â This is the function which emulates the SINGLETON pattern to ensure that only one instance of each of the LocalServers is created. HandleRequest() Input : int sock, string & strfirstlineâ This function is supported by all the LocalServer objects. This is the function called by the CwebServer object to dispatch the request. Basically this reads the header and then determines the actions to be taken and then returns the file back to client. R.K.Joshi IIT Bombay 54

CLASS : CHTTP CLASS: CHTTPÂ CHTTP Input:int pipe_dâ Description: This is the constructor which creates a pipe for this object which communicates with the main service loop which diverts the appropriate incoming request to this object. GetHtml () Input : http_request * râ Description : This function searches for the requested file and then sends it to client with the help of LoadFile function. LoadFile () Input : string & strfilepath, string & strfilecontentsâ Description: This function when called by the GetHtml, gets the contents of the requestd file and then sends it to the client (bypassing the CwebServer object). R.K.Joshi IIT Bombay 55

CLASS : CPerl CPerl Input:int pipe_dâ Description: This is the constructor which creates a pipe for this object which communicates with the main service loop which diverts the appropriate incoming request to this object. GetPerl () Input : perl_request * râ Description : This function searches for the requested file and then sends it to client with the help of LoadFile function. LoadFile () Input : string & strfilepath, string & strfilecontentsâ Â Â Description: This function when called by the GetPerl, gets the contents of the requestd file and then sends it to the client (bypassing the CwebServer object). Â R.K.Joshi IIT Bombay 56

CLASS : CJava CJava Input:int pipe_dâ Description: This is the constructor which creates a pipe for this object which communicates with the main service loop which diverts the appropriate incoming request to this object. GetJava() Input : java_request * râ Description : This function searches for the requested file and then sends it to client with the help of LoadFile function. LoadFile () Input : string & strfilepath, string & strfilecontentsâ Description: This function when called by the GetJava, gets the contents of the requestd file and then sends it to the client (bypassing the CwebServer object). R.K.Joshi IIT Bombay 57

Natural Extensions How are logins and permissions and communication security to be handled? How should requests be logged? What support is assumed from the browser at client end? What support is available for application architectures? Grids at the backend? How are services themselves described? What formats are used to exchange data, requests, results? More meaningful or semantically rich applications designed as services R.K.Joshi IIT Bombay 58

Once again, what's a service? Agreed protocol between client and a server Web services are provided on the web Servers may use sophisticated available technologies, middleware, parallelism, shared spaces, shared resources At client side, some support is provided by the browser, but stand-alone applications can also exist R.K.Joshi IIT Bombay 59

So Explore and Enjoy your workshop! R.K.Joshi IIT Bombay 60