47
1 Roch H. Glitho- Ericsson/Concordia University March 2004 INSE 7110 – Winter 2004 Value Added Services Engineering in Next Generation Networks Week #9

INSE 7110 – Winter 2004 Value Added Services Engineering ...users.encs.concordia.ca/~glitho/Lect9_inse7110.pdf · Value Added Services Engineering in Next Generation Networks

Embed Size (px)

Citation preview

1Roch H. Glitho- Ericsson/Concordia University March 2004

INSE 7110 – Winter 2004Value Added Services Engineering in Next Generation Networks

Week #9

2Roch H. Glitho- Ericsson/Concordia University March 2004

Outline

• Basics

• Technologies

3Roch H. Glitho- Ericsson/Concordia University March 2004

Basics

• Fundamental principles

• Business model

4Roch H. Glitho- Ericsson/Concordia University March 2004

Fundamental principles …

.

1. Evolution of the Web

2. Definitions and principles

3. Standards

5Roch H. Glitho- Ericsson/Concordia University March 2004

Evolution of the Web

Today Tomorrow

• Publication of documents • Publication of “reusable business logic”

• Human interaction • Automated P2P interaction

• Proprietary ad-hoc interfaces • Industry standard interfacesX

ML

Tec

hnol

ogy

6Roch H. Glitho- Ericsson/Concordia University March 2004

Definitions and principles

“The term Web Services refers to an architecture that allows applications (on the Web) to talk to each other. Period. End of statement”

Adam Bobsworth in ACM Queue, Vol1, No1

The three fundamental principles, still according to Adam Bobsworth:

1. Coarse grained approach (I.e. high level interface)2. Loose coupling (e.g. application A which talks to application B

should not necessarily be re-written if application B is modified)3. Synchronous mode of communication, but also asynchronous

mode.

7Roch H. Glitho- Ericsson/Concordia University March 2004

Standards Some of the involved standards bodies / Consortia- Architectures and Technologies

- World Wide Web Consortium (W3C)- Interoperable technologies for the Web

- Liberty Alliance- Open standards for federated network identities (pertinent to Web

service security)

8Roch H. Glitho- Ericsson/Concordia University March 2004

Standards Some of the involved standards bodies / Consortia

Application to specific areasTelecom

Parlay-XOpen Mobile Alliance (OMA)

Digital images- International Imagery Association

9Roch H. Glitho- Ericsson/Concordia University March 2004

Business model …

.

1. Entities

2. Interactions

10Roch H. Glitho- Ericsson/Concordia University March 2004

Broker(Human + agent)

Requestor(Human + agent)

Provider(Human + agent)

Entities

11Roch H. Glitho- Ericsson/Concordia University March 2004

EntitiesRequestor• Person or organization that wishes to make use of a Web service.• Uses an agent (I.e requestor agent) to exchange messages with both

broker agent and provider agent.Provider• Person or organization that owns a Web service it wants to make

available for usage• Use an agent (I.e provider agent) to exchange messages with broker

agent and requestor agent.• The provider agent is also the software piece which implements the Web

service (e.g. mapping towards legacy)Broker• Person or organization that puts requestors and providers in contact

– Providers use brokers to publish Web services– Requestors use brokers to discover Web services

• Use an agent (I.e broker agent) to exchange messages with requestor agent and provider agent

12Roch H. Glitho- Ericsson/Concordia University March 2004

Interactions

Service Requestor

Service Broker/Registry

Service Provider 2

Service 1 Description

Service 2 Description

Publish

Publish

Find

Bind

Service 2 Description

Service Provider 1Service 1

Service 1 Description

Service 2

Service 2 Description

13Roch H. Glitho- Ericsson/Concordia University March 2004

Technologies

• Extensible Mark Up Language (XML)

• Web Service Description Language (WSDL)

• Simple Object Access Protocol (SOAP)

• Universal Description Discovery and Integration (UDDI)

• Putting it together

14Roch H. Glitho- Ericsson/Concordia University March 2004

Technologies …

Network

XML-Based Messaging

Service Description

Service Publicationand Discovery Security

Managem

ent

QoS

UDDI

UDDI

WSDL

SOAP

HTTP, FTP,SMTP, MQ,

IIOP, etc

15Roch H. Glitho- Ericsson/Concordia University March 2004

XML …

.

• Introduction

• Objectives

• Fundamental concepts

• Examples

16Roch H. Glitho- Ericsson/Concordia University March 2004

Introduction Designed to overcome the limitations of HTML - Better support for dynamic content creation and management

- Dynamic content management is clumsy with HTML (e.g. CGI script, servlet)- Interactions between programs going further than browser / Web page

- Exchange of data- Meaning of the data- What to do with the data

W3C recommendation

17Roch H. Glitho- Ericsson/Concordia University March 2004

Objectives (As per the W3C recommendation) 1. XML shall be straightforwardly usable over the Internet.

2. XML shall support a wide variety of applications.

3. XML shall be compatible with SGML.

4. It shall be easy to write programs which process XML documents.

5. The number of optional features in XML is to be kept to the absoluteminimum, ideally zero.

6. XML documents should be human-legible and reasonably clear.

7. The XML design should be prepared quickly.

8. The design of XML shall be formal and concise.

9. XML documents shall be easy to create.

10. Terseness in XML markup is of minimal importance.

18Roch H. Glitho- Ericsson/Concordia University March 2004

Fundamental concepts XML documents

Data objects made of elements Schema vs. Instance- Schema: Type (Enable the validation of instances)

- Alternative to schema: Data Type Definition (DTD)- Instance: actual data- Name space

- Scope or qualify element names

19Roch H. Glitho- Ericsson/Concordia University March 2004

Fundamental concepts

Elements- Structures: Enable the grouping of elements- Mark ups: Enable the separations of elements

- Start tag < >- End tag < />

Instances of documents- Characters

- Character data- Name- Value

- Mark ups

20Roch H. Glitho- Ericsson/Concordia University March 2004

Fundamental concepts XML processor- Read XML documents- Provide access to the content and the structure- Behaviour described in the XML specifications- Most popular programming APIs

- Document Object Model (DOM) from W3C- Simple API for XML (SAX) – From XML-DEV mailing list

21Roch H. Glitho- Ericsson/Concordia University March 2004

SOAP …

.

• Introduction

• Message structure

• Bindings

22Roch H. Glitho- Ericsson/Concordia University March 2004

Introduction Purpose: Get the XML data from one point to another point

over the network- Provider / UDDI- Requestor / UDDI- Provider / Requestor

W3C recommendation- Effort initiated by IBM and IONA

23Roch H. Glitho- Ericsson/Concordia University March 2004

Introduction Purpose: Get the data from one point to another point over

the network- Misleading name: Does not include an object model- One way XML messaging protocol that can be used to build models such

as- Request / reply- Asynchronous messaging- Event notification

- Entities- Sender- Receiver- Intermediary

24Roch H. Glitho- Ericsson/Concordia University March 2004

Message structure Several parts• Envelope (mandatory): Start and end of message• Header (optional): Optional attributes used in the processing

– May be negotiated– Examples: transactions, priority, QoS, security

• Body (mandatory): Message being sent– Actual message– Fault codes

• Attachment (optional) : Self-explanatory• RPC convention (optional) : Requirements for RPC mapping

– Target URI for the SOAP node, procedure name/signature• SOAP Encoding (optional) : How to represent data being transmitted

in the message– Encoding scheme

25Roch H. Glitho- Ericsson/Concordia University March 2004

Message structureSOAP Envelope

SOAP HeaderSOAP Header Block

SOAP Header Block

SOAP Body Block

SOAP Body BlockSOAP Body

RPC Convention

SOAP Encoding

26Roch H. Glitho- Ericsson/Concordia University March 2004

Bindings Purpose: Specification of how SOAP messages may be

passed from one node to another node using a concrete lower layer protocol

Existing bindings- HTTP- SOAP over email

HTTP binding- HTTP Request URI used to identify SOAP node- Commonly used HTTP request for carrying SOAP messages: HTTP Post

27Roch H. Glitho- Ericsson/Concordia University March 2004

WSDL …

.

• Introduction

• Elements

• Grammar

28Roch H. Glitho- Ericsson/Concordia University March 2004

Introduction Purpose: XML grammar for describing a Web service• Formats and protocols

– Input data to the Web service– Operations to be performed on the data– Binding to a transport protocol

• Initially developed by a handful of companies (e.g. IBM, Microsoft)

• Now a W3C recommendation

29Roch H. Glitho- Ericsson/Concordia University March 2004

Elements Types

– Data type definition using for instance XSD

Messages– Abstract definition of what goes on the wire

• One way• Request / reply• Solicit response• Notification

Operation– Abstract definition of an action supported by the service

Port type- Abstract set of operations supported by one or more endpoints

30Roch H. Glitho- Ericsson/Concordia University March 2004

Elements Types

– Data type definition using for instance

Binding- Concrete protocol and data format specification for a particular port

type

Port- Single endpoint defined as a combination of a binding and a network address

Service- Collection of related endpoints

31Roch H. Glitho- Ericsson/Concordia University March 2004

Grammar Conventions used in the specifications

? (0 or 1)* (0 or more)+ (1 or more)

32Roch H. Glitho- Ericsson/Concordia University March 2004

Grammar ExamplesOne way messaging vs. two way messaging

<wsdl:definitions .... > <wsdl:portType .... > *<wsdl:operation name="nmtoken">

<wsdl:input name="nmtoken"? message="qname"/></wsdl:operation>

</wsdl:portType ></wsdl:definitions>

<wsdl:definitions .... ><wsdl:portType .... > *

<wsdl:operation name="nmtoken" parameterOrder="nmtokens"><wsdl:input name="nmtoken"? message="qname"/><wsdl:output name="nmtoken"? message="qname"/><wsdl:fault name="nmtoken" message="qname"/>*

</wsdl:operation></wsdl:portType >

</wsdl:definitions>

33Roch H. Glitho- Ericsson/Concordia University March 2004

Example from WSDL specification Example 1 SOAP 1.1 Request/Response via HTTP

<?xml version="1.0"?><definitions name="StockQuote“

targetNamespace="http://example.com/stockquote.wsdl"xmlns:tns="http://example.com/stockquote.wsdl"xmlns:xsd1="http://example.com/stockquote.xsd"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns="http://schemas.xmlsoap.org/wsdl/">

34Roch H. Glitho- Ericsson/Concordia University March 2004

Example from WSDL specification Example 1 SOAP 1.1 Request/Response via HTTP - Continued

<types><schema targetNamespace="http://example.com/stockquote.xsd"

xmlns="http://www.w3.org/2000/10/XMLSchema"><element name="TradePriceRequest">

<complexType><all>

<element name="tickerSymbol" type="string"/></all>

</complexType></element><element name="TradePrice">

<complexType><all>

<element name="price" type="float"/></all>

</complexType></element>

</schema></types>

35Roch H. Glitho- Ericsson/Concordia University March 2004

Example from WSDL specification Example 1 SOAP 1.1 Request/Response via HTTP - Continued

<message name="GetLastTradePriceInput"><part name="body" element="xsd1:TradePriceRequest"/>

</message>

<message name="GetLastTradePriceOutput"><part name="body" element="xsd1:TradePrice"/>

</message>

<portType name="StockQuotePortType"><operation name="GetLastTradePrice">

<input message="tns:GetLastTradePriceInput"/><output message="tns:GetLastTradePriceOutput"/>

</operation></portType>

36Roch H. Glitho- Ericsson/Concordia University March 2004

Example from WSDL specification Example 1 SOAP 1.1 Request/Response via HTTP - Continued

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="GetLastTradePrice">

<soap:operation soapAction="http://example.com/GetLastTradePrice"/><input>

<soap:body use="literal"/></input><output>

<soap:body use="literal"/></output>

</operation></binding>

<service name="StockQuoteService"><documentation>My first service</documentation><port name="StockQuotePort" binding="tns:StockQuoteBinding">

<soap:address location="http://example.com/stockquote"/></port>

</service>

</definitions>

37Roch H. Glitho- Ericsson/Concordia University March 2004

UDDI …

.

• Introduction

• Content

• Publishing APIs

• Inquiry APIs

38Roch H. Glitho- Ericsson/Concordia University March 2004

Introduction Purpose: Enable the publication, the discovery and the

usage of Web services- Integral part of the Web services infrastructure

- Public- Semi-public (e.g. circle of trust)- Private (e.g. enterprise)

- Data bases accessible via SOAP APIs- Publishing API- Inquiry APIs

39Roch H. Glitho- Ericsson/Concordia University March 2004

Introduction UDDI.ORG- Initiated by a a handful of companies (e.g. IBM, Microsoft)- Now open to all companies- Produce specifications for UDDIInitial public UDDI repository- Operated by founders of UDDI.ORG, later joined by HP and SAP- Synchronized data bases called operator sites (one at each site)- Test UDDI

- Allow requestors and providers to test their UDDI clients- Production UDDI

- Allow providers to actually publish Web Services and requestors to actually inquire about Web services- Need to register with one of the operators for publishing services

(authorization)

40Roch H. Glitho- Ericsson/Concordia University March 2004

The content … White pagesBusiness addressContact person / number

Yellow pagesMore info about the business- Type of business - Industry type- Products / services

Green pages NEW !

Technical information about the services- Service features/functionality - Pointer to the WSDL file

41Roch H. Glitho- Ericsson/Concordia University March 2004

The content … UDDI data modelBusiness entity- Top level structure- Description of the entity for which information is being registered - Include the list of Web services provided by the entityBusiness services- Name and description of services being published- Include binding templatesBinding templates - Information about the services- Include entry point for accessing the servicestModel- Fingerprint, collection of information that uniquely identify the servicePublisher assertion- Business relationship between business entities (e.g. subsidiary of ..)

42Roch H. Glitho- Ericsson/Concordia University March 2004

Data model …

ListOf Web Service(s)

List of Binding Template(s)

Tmodel key

Business entity

Web services

Binding template

List ofaccess points

Tmodel

fromKeytoKey

Business entity

Publisher assertions

43Roch H. Glitho- Ericsson/Concordia University March 2004

Publishing APIs Some examples

– Add Publisher Assertions– Save/Delete binding– Save/Delete Business– Save/Delete Service– Save/Delete tModel– Set/Get Publisher assertions– Delete_Publisher_Assertion– Get Registered assertions– Get Assertions status report (used by UDDI operators)

44Roch H. Glitho- Ericsson/Concordia University March 2004

Inquiry APIs Some examples

– Find binding– Find business– Find related business– Find service– Find tModel– Get binding details– Get business details– Get tModel details

45Roch H. Glitho- Ericsson/Concordia University March 2004

Putting it together …

Service Requestor

Service RegistryUDDI

Service Provider 2

WSDL Service 1 Description

WSDL Service 2 Description

PublishWSDL, UDDI/SOAP

PublishWSDL, UDDI/SOAP

FindWSDL, UDDI/SOAP

Bind

WSDL Service 2 Description

Service Provider 1Service 1

WSDL Service 1 Description

Service 2

WSDL Service 2 Description

46Roch H. Glitho- Ericsson/Concordia University March 2004

Putting it together …Examples of tool kits

– Apache / Axis– BEA Weblogic– SunOne– .Net– Systinet– Get tModel details

47Roch H. Glitho- Ericsson/Concordia University March 2004

To probe further ...

- F. Curbera et al., Unraveling the Web services Web: An Introduction to SOAP, WSDL and UDDI, IEEE Internet Computing, Vol. 6, No2, March-April 2002, pp. 86-93

- E. Newcomer, Understanding Web Services: XML, WSDL, and UDDI, Addison Wesley, 2002

- W3C specifications- OASIS specifications (UDDI)

.