1dt066 distributed information system
DESCRIPTION
1DT066 Distributed Information System. Middleware. Outline. Middleware RPCs Web Services Summary. 1. Middleware. Middleware is a computer software that connects software components or people and their applications. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/1.jpg)
1DT066Distributed Information System
Middleware
1
![Page 2: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/2.jpg)
Outline
o Middleware
o RPCs
o Web Services
o Summary
2
![Page 3: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/3.jpg)
1. Middleware
Middleware is a computer software that connects software components or people and their applications.
It consists of a set of services that allows multiple processes running on one or more machines to interact.
Interoperable in support of distributed systems. Middleware sits "in the middle" between
application software that may be working on different operating systems.
3
![Page 4: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/4.jpg)
1.Conceptual Framework
Architecture.
Accessing components from programming languages.
Interfaces to lower layers.
Component identification (to achieve location transparency).
Service invocation styles.
Handling of failures.
4
![Page 5: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/5.jpg)
5
Part I: RPC
![Page 6: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/6.jpg)
2 Remote Procedure Calls
Overview of RPC architecture.
Generation of client/server stubs.
RPC interface.
Binding.
Handling of remote procedures.
6
![Page 7: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/7.jpg)
2.1 RPC Architecture
Client Server
Network
Local Call
ClientStub
RPCInterface
RPCInterface
ServerStub
RemoteProcedure
send receive send receive
7
![Page 8: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/8.jpg)
2.2 The RPC Language Definition of types (similar to C). Component is described as a PROGRAM. PROGRAM has an identification and a version number. PROGRAM exports procedures
Procedures have a result type and a parameter list, Procedure can be called from remote components, Call can be defined statically or dynamically.
8
![Page 9: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/9.jpg)
2.2 The RPC Language (Example)/* person.x */const NL=64;enum sex_type { FEMALE = 1,MALE = 2 };struct Person { string first_name<NL>; string last_name<NL>; sex_type sex; string city<NL>; };
program PERSONPROG { version PERSONVERS { void PRINT(Person)=0; int STORE(Person)=1; Person LOAD(int)=2; } = 0;} = 105040;
9
![Page 10: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/10.jpg)
2.2 Generation of Stubs
rpcgen
person.x
client.c server.c
C Compiler, Linker C Compiler, Linker
person.h
person_clnt.c person_svc.c
person_xdr.c
Client Serverincludesgeneratesreads
librpc.a
10
![Page 11: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/11.jpg)
2.2 Implementation of Server
/* server.c */void * print_0(Person *argp, struct svc_req * rqstp){ static char * result; printf("%s %s\n%s\n\n", argp->first_name, argp->last_name, argp->city); return((void *) &result);}
11
![Page 12: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/12.jpg)
2.2 Use of Stubs
/* client.c */
print_person(char * host, Person * pers) {
...
if (print_0(pers, clnt)==NULL)
/* call failed /*
...
}
12
![Page 13: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/13.jpg)
2.3 RPC Interface
Used by client or server directly: Locating servers. Choosing a transport protocol. Authentication and security. Invoking RPCs dynamically.
Used by stubs for: Generating unique message IDs. Sending messages. Maintaining message history.
13
![Page 14: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/14.jpg)
2.3 RPC Interfaceprint_person(char * host, Person * pers) { CLIENT *clnt; clnt = clnt_create(host, PERSONPROG, PERSONVERS, "udp"); if (clnt == (CLIENT *) NULL) { exit(1); } if (print_0(pers, clnt)==NULL) clnt_perror(clnt, "call failed"); clnt_destroy(clnt);}
14
![Page 15: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/15.jpg)
2.4 Binding
How to locate an RPC server that can execute a given procedure in a network?
Can be done statically (i.e. at compile-time) or dynamically (i.e. at run-time).
Dynamic binding is supported by portmap daemons.
15
![Page 16: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/16.jpg)
2.5 Handling of Remote Procedures
Call handled synchronously by server.
Concurrent RPCs: serial or concurrently.
Server availability: continuous or on-demand.
16
![Page 17: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/17.jpg)
Part II: Web Services
17
![Page 18: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/18.jpg)
3. Web Services
Introduction Web Services Service descriptions and IDL for web services A directory service for use with web services Coordination of web services
18
![Page 19: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/19.jpg)
3.1 Introduction
Simple protocol restricts the potential scope of application.
Web services provide an infrastructure for maintaining a richer and more structured form of interoperability between clients and servers.
Security
Service descriptions (in WSDL)
Applications
Directory service
Web Services
XML
Choreography
SOAP
URIs (URLs or URNs) HTTP, SMTP or other transport
19
![Page 20: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/20.jpg)
3.2.1 WEB SERVICES A web service interface generally consists of a
collection of operations that can be used by clients over the Internet.
The key characteristic of most web services is they can process XML-formatted SOAP message
Properties: It is accessible over the Web. It provides an interface that can be called from another
program It is registered and can be located through a Web
Service registry. It communicates using message over standard Web
protocols.
20
![Page 21: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/21.jpg)
3.2.2 Web Services
Loosely-coupled software applications that use open standards to describe an interface for accessing them and a messaging format for communication
SOAP/HTTP
SOAP/HTTP
Database
Web Service
Web Service Clients21
![Page 22: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/22.jpg)
3.2.3 Characteristic of Web Services
Combination of web services Allows its operations to be combined with those of
other services to provide new functionality.
hotel bookinga
Travel Agent
flight booking
a
hire car bookingaService
Client
flight bookingb
hotel bookingbhire car bookingb
Example: The ‘travel agent service’ combines other web services22
![Page 23: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/23.jpg)
3.2.3 CHARACTERISTIC OF WEB SERVICES Two communication patterns
Processing of a booking takes a long time to complete and could well be supported by an asynchronous exchange of documents
The checking of credit card details and the interactions with the client should be supported by a synchronous request-reply protocol.
No particular programming modelThey are independent of any particular
programming paradigm.
23
![Page 24: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/24.jpg)
3.2.3 CHARACTERISTIC OF WEB SERVICES Representation of messages
Both SOAP message and the data it carries are represented in XML
Services referencesEach web service has a URL, which clients use to
access the service. Transparency
The details of SOAP and XML are generally hidden by a local API in a programming language. The service description may be used as a basis for automatically generating the necessary marshalling and unmarshalling procedures.
24
![Page 25: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/25.jpg)
3.2.4 Web Services Core Technologies Technologies for Web Services
XML SOAP ( XML Based ) WSDL ( XML Based ) UDDI ( XML Based )
Interoperability is the key advantage of Web Services!!!
25
![Page 26: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/26.jpg)
3.2.4 The Big Picture
An application allows other applications to connect to it over the Web using SOAP
This Web Service exposes its methods in a WSDL file
The Web Service is published in a UDDI registry to allow other businesses to find it
26
![Page 27: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/27.jpg)
3.2.4.1 SOAP
Simple Object Access Protocol SOAP is designed to enable both client-server and
synchronous interaction over the Web Web services communicate using W3C standard SOAP
messages. SOAP formalizes the use of XML as a way to pass data
(therefore can be Objects) from one process to another. Originally SOAP was based only on HTTP, but other
transport protocols such as TCP are also allowed.
<env:Envelopexmlns:env="http://www.w3.org/2001/12/soap-envelope"> <env:Body> <ns:Order xmlns:ns="urn:it.uu.se:Students"> <item>Bill</item> <item>Bob</item> <item>Tony</item> </ns:Students> </env:Body></env:Envelope>
![Page 28: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/28.jpg)
3.2.4.2 SOAP MESSAGES
envelope
header
body
header element
body element
header element
body element
28
![Page 29: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/29.jpg)
3.2.4.2 SOAP Messages
m:exchange
env:envelope xmlns:env =namespace URI for SOAP envelopes
m:arg1
env:body
xmlns:m = namespace URI of the service description
Hellom:arg2
World
In this figure and the next, each XML element is represented by a shaded box with its name in italic, followed by any attributes and its content
Example of a simple request without headers
29
![Page 30: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/30.jpg)
.NETapplication
J avaApplication
SOAP ClientSOAPServer
.NET function callrequest
Binary
Perform Serialization orMarshalling
Perform De-Serializationor Un-Marshalling
XML (Text Based)
Binary J ava function callrequest
SOAP Message
3.2.4.4 Transport of SOAP Messages
![Page 31: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/31.jpg)
3.3 Service Descriptions and IDL for Web Services Interface definitions are needed for clients to
communicate with services. Service description specifies two characteristics
– how the message are to be communicated and the URI of service.
Web Services Description Language (WSDL)
abstract concrete
how where
definitions
types
target namespace
interface bindings servicesmessage
document stylerequest-reply style
31
![Page 32: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/32.jpg)
WSDL has a well-defined XML vocabulary to answer the following questions regarding the web service involved:
What does the service do?Both in machine and human-readable forms
What language does the service speak?The format/data structure of the message
exchanged How does the client talk to the service?
HTTP/SMTP/FTP Where is the location of the web service?
The access point (URL)
3.3 WSDL
32
![Page 33: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/33.jpg)
3.3 WSDL – MESSAGES OR OPERATIONS Need a common idea about the message to be
exchanged
message name = "ShapeList_newShape "
type = "tns:GraphicalObject "
part name="GraphicalObject_1"
tns : target namespace xsd : XML schema definitions
message name = "ShapeList_newShapeResponse "
part name="result" type = "xsd:int"
WSDL request and reply messages for the newShape operation
33
![Page 34: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/34.jpg)
3.3 WSDL<?xml version="1.0" encoding="utf-8" ?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"> <s:element name="Add"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" /> <s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" /> </s:sequence> </s:complexType> </s:element> <s:element name="AddResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="AddResult" type="s:float" /> </s:sequence> </s:complexType> </s:element> </types> <message name="AddSoapIn"> <part name="parameters" element="s0:Add" /> </message> <message name="AddSoapOut"> <part name="parameters" element="s0:AddResponse" /> </message> …
34
![Page 35: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/35.jpg)
3.3 WSDL – INTERFACE
Name
In-Out
In-Only
Robust In-Only
Out-In
Out-Only
Robust Out-Only
Client Server Delivery Fault message
Request Reply may replace Reply
Request no fault message
Request guaranteed may be sent
Reply Request may replace Reply
Request no fault message
Request guaranteed may send fault
Messages sent by
Message exchange patterns for WSDL operations 35
![Page 36: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/36.jpg)
3.3 WSDL – CONCRETE PART Binding (choice of protocols) and Service (choice of
endpoint or sever address):
soap:binding transport = URI
binding
style= "rpc"
endpoint
service name =
binding = "tns:ShapeListBinding"
soap:address location = service URI
name = "MyShapeListService "
name = "ShapeListPort "for schemas for soap/http
the service URI is:
operation
soap:operationsoapAction
"ShapeListBinding""tns:ShapeList "type =
name="newShape "
inputsoap:body encoding, namespace
soap:body encoding, namespace
output
“ http://localhost:8080/ShapeList-jaxrpc/ShapeList”
36
![Page 37: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/37.jpg)
3.4 A DIRECTORY SERVICE FOR USE WITH WEB SERVICES
UDDI – Universal Description, Discovery, and Integration Service
Data structures allow human-readable information access
tModel
businessServices
tModel
businessEntity
information
about the publisher
tModel
businessServiceshuman readable
service descriptions key key
URL
URL
URL
businessServices
information about a family of services
human readable
service interfaces
bindingTemplate
bindingTemplate
bindingTemplateinformation about the
key service interfaces
37
![Page 38: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/38.jpg)
3.4 A DIRECTORY SERVICE FOR USE WITH WEB SERVICES Lookup
UDDI provides an API for looking up services based on 2 sets of query operation: get_xxx, find_xxx.
UDDI provides a notify/subscribe interface Publication
UDDI provides an interface for publishing and updating information about web services.
Registries UDDI service is based on replicated data stored in
registries
38
![Page 39: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/39.jpg)
3.4 UDDI
UDDI defines a way to publish and discover information about Web services
39
![Page 40: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/40.jpg)
3.6 Coordination of Web Services
SOAP infrastructure supports single request-response interactions between clients and web services.
Web service choreography allows a set of interactions between pairs of web services working together in a joint task. To generated code outline for new service that wants to
participate As a basis for generating test messages for a new
service To promote a common understanding of the
collaboration To analyze the collaboration, for example to identify
possible deadlock situations.
40
![Page 41: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/41.jpg)
3.6 Global XML Web Services Architecture
SOAPSOAP
HTTP/SMTPHTTP/SMTPXMLXMLTCP/IPTCP/IP
DirectoryDirectory
InspectionInspection
Building Block ModulesBuilding Block Modules
Inter Application ProtocolsInter Application Protocols
ReferralReferral
RoutingRouting
SecuritySecurity
LicenseLicense
EventingEventing TransactionsTransactions
Reliable MessagingReliable Messaging
The InternetThe Internet
DescriptionDescription
……
……
41
![Page 42: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/42.jpg)
3.7 Resources of Web Services
• Web service searching engine– http://www.seekda.com
• Web sites– www.webservicex.net– www.xmethods.com– www.webservicelist.com
• Web services of well know companies: – Google search, Google map, Yahoo, YouTube,
Facebook, Amazon, etc.
42
![Page 43: 1DT066 Distributed Information System](https://reader035.vdocuments.mx/reader035/viewer/2022062807/5681504e550346895dbe4b7a/html5/thumbnails/43.jpg)
6 Summary
The basic conceptual framework for middleware in distributed systems.
Definition of RPC and how it works. Basics of web services technologies. Read Textbook Chapters 5 and 9.
43