60
R.K.Joshi IIT Bombay 1 Evolution of Service Oriented Evolution of Service Oriented Architectures Architectures Rushikesh K. Joshi Rushikesh K. Joshi Department of Computer Science & Department of Computer Science & Engineering Engineering Indian Institute of Technology Bombay Indian Institute of Technology Bombay Email: [email protected] Email: [email protected]

Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 1

Evolution of Service Oriented Evolution of Service Oriented ArchitecturesArchitectures

Rushikesh K. JoshiRushikesh K. Joshi

Department of Computer Science & Department of Computer Science & EngineeringEngineering

Indian Institute of Technology BombayIndian Institute of Technology Bombay

Email: [email protected]: [email protected]

Page 2: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 2

The PlanWhat changes have taken place in typical What changes have taken place in typical

application architectures?application architectures?

What is service orientation?What is service orientation?

Where did it originate?Where did it originate?

How did it evolve?How did it evolve?

How does it connect to web services?How does it connect to web services?

What new technologies are needed?What new technologies are needed?

Page 3: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 3

Architecture of Your Data-structures Assignment

• A single process• One main• Manipulate data structure• Data is live till execution• Next run is fresh execution

DS

M

P

Page 4: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 4

A Database Assignment

• Create Tables• Manipulate them• Use a query language• Data is live across queries

D

Q

P

Page 5: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 5

Processes + Data +Interfaces

• Three tired application– GUI– Business Logic– Database

UI

BL

DB

A Single user application based on persistence

Page 6: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 6

Processes + Data +Interfaces + Concurrency

• A GUI• Tasks: Concurrent Activities• Shared Database• Concurrency Control

UI

T1

DB

A More complex Single user application using persistence

T2 T.. Tn

Page 7: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 7

Processes + Data +Interfaces + Parallelism

Concurrency• A GUI• Tasks: Concurrent and parallel

Activities• Shared Database• Distribution of control• Concurrency Control• Inter-task communication

UI

T1

DB

A More complex Single user parallel application using persistence

T2 T.. Tn

Page 8: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 8

Add more user roles• Views• Viewers are located at different

places UI

T1

DB

T2 T.. Tn

U.. Um

Page 9: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 9

Add more data sites• Views• Viewers are located at different

places• Data is distributed• Tasks are parallel

UI

T1

D1

T2 T.. Tn

U.. Um

D.. Dp

Page 10: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 10

Add control replication• Views• Viewers are located at different

places• Data is distributed• Tasks are parallel

– Possible Control replication

UI

T11

D1

T12 T.. Tno

U.. Um

D.. Dp

Page 11: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 11

Add data replication• Views• Viewers are located at different places• Data is distributed

– And replicated• Multiple copy consistency

• Tasks are parallel– Control replication

UI

T11

D1

T12 T.. Tno

U.. Um

D.. Dp

Page 12: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 12

Links may fail ! • Alternate routes?

UI

T11

D1

T12 T.. Tno

U.. Um

D.. Dp

Page 13: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 13

Tasks may fail !

• Failure Semantics

• Recovery possible?

UI

T11

D1

T12 T.. Tno

U.. Um

D.. Dp

Page 14: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 14

Users are scattered over the internet

UI

T11

D1

T12 T.. Tno

U..

Um

D.. Dp

UI

UI

UI

Page 15: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 15

Some users are local

UI

T11

D1

T12 T.. Tno

U..

Um

D.. Dp

UI

UI

UI

UI UI

UI UI

Page 16: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 16

You need security policies

UI

T11

D1

T12 T.. Tno

U..

Um

D.. Dp

UI

UI

UI

UI UI

UI UI

Page 17: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 17

All sites have all the layers and they collaborate

UI

UI

UI

D

D

D

BL

BL

BL

UI

UIUI

network

Page 18: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 18

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

Page 19: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 19

Service orientation

What is a service?

Service providerand the service user

Service contracts

Page 20: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 20

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

Page 21: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 21

How do you express a service?

• Syntactic Contracts• Behavioral Contracts

– Functional behavior– Non-functional behavior

Page 22: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 22

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

Page 23: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 23

RPC (early 80s)

• A very primitive service paradigm in multiprogramming systems– e.g. unix servers– Rup– Rusers– Fingerd

Machinesand processes

Page 24: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 24

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?

Page 25: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 25

Technologies for RPC

• Description: e.g. XDR format• Marshalling and De-marshalling• Specification Language• Stub generator• Portmapper (directory service)

Page 26: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 26

DLL Technologies

• Dynamically linked libraries• A function or procedure may be

loaded and dynamically linked• Available on the same machine

Page 27: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 27

Remote Method Invocations on Objects

• The Proxy Pattern

proxy

interface

real

Page 28: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 28

Technologies for RMI

• Object specification• Server development, Proxy

generation• Object discovery• Object binding and use

Object Middleware Architectures

Page 29: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 29

Middleware Technologiesfor Interoperable Networked

Services

• Typical of Applications in Lan• Hide and Provide Principle

Page 30: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 30

A View of CORBA-based Middleware

Distributed Objects

Middleware

Distributed Objects

SYSTEMS

(os/n/w)

Page 31: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 31

Concerns addressed by Middleware

• Connectivity and Communication• Interoperability• Repositories• Activation• Services• Service Descriptions and discovery

Mechanisms• Development Process and Tools• Standardization

Page 32: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 32

Model Driven Approach

Model first

Then generate Implementation

Existence of Middleware does not make an exception to this.

Page 33: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 33

Interfaces

Interface I {typeR func f (type1, type2 ..)

…}

Interface description languages: vendor specific

Page 34: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 34

Implementation in an object paradigm

Skeleton-Implementation inherits I { …

}Actual-Implementation inherits Skeleton-

Implementation {….implement here…}

Page 35: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 35

Register your implementation

Create an instance and register

- obj = new Actual

- register it with a registry

- start accepting requests

Page 36: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 36

Alternative Registration Mechanism

Do not Create instance directly

Register only the implementation

The middleware will create an instance when needed

Page 37: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 37

Find, Bind and Invoke• Find your component• Create a placeholder for it • Invoke as if it is a local component

Proxy Design Pattern

Page 38: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 38

Dynamic Invocation• Unlike procedure/function calls in

your day to day programming

• Make a request as a message and send it to remote component

Page 39: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 39

One way calls and callbacks

• One way calls do not block the caller

• Callbacks from server needs that the caller supports an exportable interface send send

callback

Page 40: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 40

Multiple interfaces sharing an

implementation• Different users may use different

interfaces• Roles can be associated with

interfaces• Single implementation realizes all• Interface navigability

Page 41: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 41

Generic Services• Type independent services• Based on object orientation

(polymorphism)• E.g. Naming: nameobject

mappings• E.g. events: publisher-subscriber

– Events of any kind

Page 42: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 42

Component Reuse: e.g. Containment in

COM/DCOM

Interface A

Interface IUnknown

X

Y

IUnknown

container

contained

Page 43: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 43

Component Reuse: Aggregation in

COM/DCOM

A

IUnknown

X

Y

IUnknown

CNewStudent

CStudent

Page 44: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi 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

component instance

CoGetClassObject

DllGetClassObjectcreate

return factory instancereturn factory

instance

use component

createreturn component instance

CreateInstance

Page 45: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 45

Creation through Factory Objects

• First find and bind to factory• Factory creates objects• DLL based factories

Client COM Library DLL factory instance

component instance

CoGetClassObject

DllGetClassObjectcreate

return factory instancereturn factory

instance

use component

createreturn component instance

CreateInstance

Page 46: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 46

Web Services

• A service is available through http-based 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

Page 47: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 47

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

Page 48: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 48

Some examples of service orientation

• Telephonic services• Web Services • Services for mobile devices• Peer to peer applications• Aggregates and Compositions

Page 49: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 49

Web Server: A case study (program developed by 2

students)

HTTP Requests

Handoverto applications

process somerequests e.g. home pages

Page 50: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 50

First, a Simple Socket ServerAn example code

• simple_server_main.cpp

Page 51: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 51

A simple webserver codehow does it look like?

web server listens on port xxxx

client->webserver->local server i.e. http/perl/java..

Page 52: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 52

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

Page 53: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 53

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.

Page 54: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 54

CLASS : LocalServer

this is an abstract class which only provides the interface to the CWEbServer object to call this is an abstract class which only provides the interface to the CWEbServer object to call the functions on the appropriate LocalServer objectsthe functions on the appropriate LocalServer objects

CreateInstance()CreateInstance()

Input : int pipe_dInput : int pipe_d

Output : static LocalServer *  Output : static LocalServer *  

This is the function which emulates the SINGLETON pattern to ensure that only one This is the function which emulates the SINGLETON pattern to ensure that only one instance of each of the LocalServers is created.instance of each of the LocalServers is created.

HandleRequest()HandleRequest()

Input : int sock, string & strFirstLine Input : int sock, string & strFirstLine 

This function is supported by all the LocalServer objects. This is the function called by the 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 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.determines the actions to be taken and then returns the file back to client.

Page 55: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 55

CLASS : CHTTP

CLASS: CHTTP CLASS: CHTTP 

CHTTPCHTTP

Input:int pipe_d Input:int pipe_d 

Description: This is the constructor which creates a pipe for this object which 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 communicates with the main service loop which diverts the appropriate incoming request

to this object.to this object.

GetHtml ()GetHtml ()

Input : http_request * r Input : http_request * r 

Description : This function searches for the requested file and then sends it to client with Description : This function searches for the requested file and then sends it to client with the help of LoadFile function. the help of LoadFile function.

LoadFile ()LoadFile ()

Input : string & strFilePath, string & strFileContents Input : string & strFilePath, string & strFileContents 

Description: This function when called by the GetHtml, gets the contents of the requestd 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). file and then sends it to the client (bypassing the CwebServer object).

Page 56: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 56

CLASS : CPerl

CPerlCPerl

Input:int pipe_d Input:int pipe_d 

Description: This is the constructor which creates a pipe for this object which 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 communicates with the main service loop which diverts the appropriate incoming request

to this object.to this object.

GetPerl ()GetPerl ()

Input : perl_request * r  Input : perl_request * r 

Description : This function searches for the requested file and then sends it to client with Description : This function searches for the requested file and then sends it to client with the help of LoadFile function. the help of LoadFile function.

LoadFile ()LoadFile ()

Input : string & strFilePath, string & strFileContents  Input : string & strFilePath, string & strFileContents  

 Description: This function when called by the GetPerl, gets the contents of the requestd  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). file and then sends it to the client (bypassing the CwebServer object).

  

Page 57: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 57

CLASS : CJava

CJavaCJava

Input:int pipe_d Input:int pipe_d 

Description: This is the constructor which creates a pipe for this object which 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 communicates with the main service loop which diverts the appropriate incoming request

to this object.to this object.

GetJava()GetJava()

Input : java_request * r  Input : java_request * r 

Description : This function searches for the requested file and then sends it to client with Description : This function searches for the requested file and then sends it to client with the help of LoadFile function. the help of LoadFile function.

LoadFile ()LoadFile ()

Input : string & strFilePath, string & strFileContents Input : string & strFilePath, string & strFileContents 

Description: This function when called by the GetJava, gets the contents of the requestd 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). file and then sends it to the client (bypassing the CwebServer object).

Page 58: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 58

Natural ExtensionsHow are logins and permissions and communication How are logins and permissions and communication

security to be handled?security to be handled?

How should requests be logged?How should requests be logged?

What support is assumed from the browser at client What support is assumed from the browser at client end?end?

What support is available for application architectures?What support is available for application architectures?

Grids at the backend?Grids at the backend?

How are services themselves described?How are services themselves described?

What formats are used to exchange data, requests, What formats are used to exchange data, requests, results?results?

More meaningful or semantically rich applications More meaningful or semantically rich applications designed as servicesdesigned as services

Page 59: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 59

Once again, what's a service?

Agreed protocol between client and a serverAgreed protocol between client and a server

Web services are provided on the webWeb services are provided on the web

Servers may use sophisticated available Servers may use sophisticated available technologies, middleware, parallelism, shared technologies, middleware, parallelism, shared

spaces, shared resourcesspaces, shared resources

At client side, some support is provided by At client side, some support is provided by the browser, but stand-alone applications can the browser, but stand-alone applications can

also existalso exist

Page 60: Evolution of Service orienetd architecturesrkj/talks/evolutionOfSoA.pdf · Evolution of Service Oriented Architectures Rushikesh K. Joshi Department of Computer Science & ... Architecture

R.K.Joshi IIT Bombay 60

So Explore and Enjoy your workshop!