web service challenges l.
Download
Skip this Video
Download Presentation
Web Service Challenges

Loading in 2 Seconds...

play fullscreen
1 / 43

Web Service Challenges - PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on

Who provides web services? How are they implemented? Where are they provided? What is their behavior? Is an application compatible? Searching and indexing are do not work today how to find the right services at the right time? we need solutions designed for tools and apps

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Web Service Challenges' - holden


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
web service challenges
Who provides web services?

How are they implemented?

Where are they provided?

What is their behavior?

Is an application compatible?

Searching and indexing are do not work today

how to find the right services at the right time?

we need solutions designed for tools and apps

our expectations have been lowered by the Internet experience today

WebService Challenges
slide2

How would you define UDDI:

A “meta service” for locating web services by enabling robust queries against rich metadata

slide3

What is UDDI?

  • Universal Description Discovery and Integration
    • Industry-wide initiative supporting web services
  • Specifications
    • Schemas for service description
    • Schemas for business (service implementers) description
    • Developed on industry standards (XML, HTTP, TCP/IP, SOAP)
    • Applies equally to XML and non-XML web services
  • Implementation
    • Public web service registry and development resources
slide4

Industry-Wide Project Support

  • All major technology providers
  • Global corporations
  • Strong resource and product commitment
  • Roadmap for transition to standards body
  • Unprecedented collaboration
    • XML and Web Services recognized as core standards
    • Competition on services built on a common model
    • Technology, platform, and development language neutral
slide5

An organization needs to create 400 electronic relationships with partners, each with its own standards and protocols

BroaderB2B

A small business wants to be “plugged in” to every marketplace in the world, but doesn’t know how

Smarter

Search

A B2B marketplace cannot get catalog data for relevant suppliers in its industry, along with connections to shippers, insurers, etc.

Easier

Aggregation

What Problems Do We Solve?

Describe Services

Discover Services

IntegrateThemTogether

Provide a standards-based profile for all electronic services that are provided. Includes web sites, other electronic resources

Publish for Accessibility

Web Service

Visibility

how did this come about
How did this come about?
  • Naturally “evolved”
    • Ariba and IBM collaboration around B2B
    • IBM and Microsoft collaboration around XML and SOAP
    • Microsoft and Ariba collaboration around BizTalk and cXML
  • 6 months, ~50 meetings
slide7

Foundation for Web Services

Publish and Discover Services: UDDI

Formal Service Descriptions: WSDL

Service Interactions: SOAP

Universal Data Format: XML

Ubiquitous Communications: Internet

Broad Industry Support, Simple Process

again what is uddi
A project to speed interoperability and adoption for web services

Standards-based specifications for service description and discovery

Shared operation of a business registry on the web

Partnership among industry and business leaders

Universal Description, Discovery, and Integration

Again What is UDDI?
base uddi architecture
A UDDI information model is composed of instances of the following entity types:

·         businessEntity: Describes a business or other organization that typically provides Web services.

·         businessService: Describes a collection of related Web services offered by an organization described by a businessEntity.

·         bindingTemplate: Describes the technical information necessary to use a particular Web service.

·         tModel: Describes a “technical model” representing a reusable concept, such as a Web service type, a protocol used by Web services, or a category system.

·         publisherAssertion: Describes, in the view of one businessEntity, the relationship that the businessEntity has with another  businessEntity

·         subscription: Describes a standing request to keep track of changes to the entities described by the subscription.

Base UDDI Architecture
slide10

UDDI Nodes

AThe set of Web services supporting at least one of the Node API sets is referred to as a UDDI node.

A UDDI node has these defining characteristics:

1.       A UDDI node supports interaction with UDDI data through one or more UDDI API sets

2.       A UDDI node is a member of exactly one UDDI registry.

3.       A UDDI node conceptually has access to and manipulates a complete logical copy of the UDDI data managed by the registry of which it is a part. Moreover, it is this data which is manipulated by any query and publish APIs supported by the node.

Typically, UDDI replication occurs between UDDI nodes which reside on different systems in order to manifest this logical copy in the node.

The physical realization of a UDDI node is not mandated by this specification.

slide11

UDDI Registries

One or more UDDI nodes may be combined to form a UDDI Registry.

A UDDI Registry has these defining characteristics.

1.A registry is comprised of one or more UDDI nodes.

2.The nodes of a registry collectively manage a well-defined set of UDDI data. Typically, this is supported by the use of UDDI replication between the nodes in the registry which reside on different systems.

3.A registry MUST make a policy decision for each policy decision point. It MAY choose to delegate policy decisions to nodes. See Chapter 9 Policy for details.

P.S The physical realization of a UDDI Registry is not mandated by this specification.

slide12

Technical Models (tModels)

Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework.

tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.  

Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior

tModels can be used to promote the interoperability between software systems.

A UDDI tModel simply contains the addresses where those documents can be found.  A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel.

slide13

Technical Models (tModels)

Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework.

tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.  

Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior

tModels can be used to promote the interoperability between software systems.

A UDDI tModel simply contains the addresses where those documents can be found.  A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel.

slide14

Technical Models (tModels)

Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework.

tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.  

Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior

tModels can be used to promote the interoperability between software systems.

A UDDI tModel simply contains the addresses where those documents can be found.  A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel.

slide15

Technical Models (tModels)

Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework.

tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.  

Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior

tModels can be used to promote the interoperability between software systems.

A UDDI tModel simply contains the addresses where those documents can be found.  A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel.

slide16

Technical Models (tModels)

Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework.

tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures.  

Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior

tModels can be used to promote the interoperability between software systems.

A UDDI tModel simply contains the addresses where those documents can be found.  A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel.

uddi v1 implementation

UDDI Business Registry

Programmatic descriptions of web services

Programmatic descriptions of businesses and the services they support

Programming model, schema, and platform agnostic

Uses XML, HTTP, and SOAP

Free on the Internet

Manufacturers

Flower Shops

Marketplaces

UDDI v1 Implementation
how uddi v1 works

4.

Marketplaces, search engines, and business apps query the registry to discover services at other companies

2.

5.

BusinessRegistrations

Businesses populate the registry with

descriptions of the services they support

Business uses this data to facilitate easier integration with each other over the Web

3.

UBR assigns a programmatically unique identifier to each service and business registration

How UDDI v1 Works

1.

SW companies, standards bodies, and programmers populate the registry with

descriptions of different types of services

UDDI BusinessRegistry

Segrvice Type

Reistrations

slide19

UDDI Registry Entries

  • Standards Bodies, Agencies, Programmers, Publishers register specifications for their Service Types
  • Service providers register precise information about themselves and their Web services
slide20

Business name

  • General business description
    • Any number of languages
  • Contact info
    • Names, phone numbers, fax numbers, web sites, etc.
  • Known identifiers
    • List of unique identifiers for a business

D-U-N-S, Thomas, domain name, stock ticker symbol, other

slide21

Business categories

    • 3 base taxonomies in V1
      • Industry: NAICS (Industry codes - US Govt.)
      • Product/Services: UNSPSC (ECCMA)
      • Location: Geographical taxonomy (ISO 3166)
      • …easy extension in upcoming releases
slide22

New set of information businesses use to describe how to “do e-commerce” with them

    • Nested model
      • Business process (functional)
      • Service specifications (technical)
      • Binding information (implementation)
    • Programming/platform/implementation agnostic
    • Services can also be categorized
slide23

Public Registry Operation

  • Peer registry nodes (websites)
  • Information registeredwith any node
  • Registrations replicatedon a daily basis
  • Complete set of“registered” recordsavailable at all nodes
  • Common set ofSOAP APIs supportedby all nodes
  • Compliance enforced by business contract
  • All technologies applied
    • Interoperability verified constantly

Developers

Applications

Marketplaces

End Users

IBM

queries

other

UDDI.org

HP (planned)

other

Microsoft

service type registration
Pointer to the namespace where service type is described

What programmers read to understand how to use the service

Identifier for who published the service

Identifier for the service type registration

called a tModelKey

Used as a signature by web sites that implement those services

Service Type Registration
business registration
XML document

Created by end-user company (or on their behalf)

Can have multiple service listings

Can have multiple taxonomy listings

Contact

Contact

Phone

Address

Email

Phone

Address

Email

keyedReference

keyedReference

keyedReference

keyedReference

tModelKey

keyName

keyValue

tModelKey

keyName

keyValue

tModelKey

keyName

keyValue

tModelKey

keyName

keyValue

Business Registration

businessEntity

businessKey

name

URL

description

contacts

businessServices

identifierBag

categoryBag

businessService

businessService

serviceKey

tModelKey

Name

Description

BindingTemplates

Key

Name

Description

BindingTemplates

example of a registration

Peter Smythe

businessEntity

872-6891

4281 King’s Blvd, Sydney, NSW

Peter@harbourmetals.co.au

TB993… Harbour Metals

www.harbourmetals.co.au

“Serving Inner Sydney Harbour for …

contacts

businessServices

identifierBag

categoryBag

businessService

businessService

23T701e54683nf…

Online catalog

“Website where you can …

BindingTemplates

Key

Name

Description

BindingTemplates

BindingTemplate

keyedReference

keyedReference

5E2D412E5-44EE-…

http://www.sydneynet/harbour…

tModelInstanceDetails

EE123…

NAICS

02417

DFE-2B…

DUNS

45231

tModelInstanceInfo

4453D6FC-223C-3ED0…

http://www.rosetta.net/catalogPIP

tModelKeys

Example of a Registration
registry apis soap messages
Inquiry API

Find things

find_business

find_service

find_binding

find_tModel

Get Details about things

get_businessDetail

get_serviceDetail

get_bindingDetail

get_tModelDetail

Publishers API

Save things

save_business

save_service

save_binding

save_tModel

Delete things

delete_business

delete_service

delete_binding

delete_tModel

security…

get_authToken

discard_authToken

Registry APIs (SOAP Messages)
now look at that again registry operation
Now look at that again:Registry Operation

queries

  • Peer nodes (websites)
  • Companies registerwith any node
  • Registrations replicatedon a daily basis
  • Complete set of“registered” recordsavailable at all nodes
  • Common set ofSOAP APIs supportedby all nodes
  • Compliance enforced bybusiness contract

IBM

Ariba

other

UDDI.org

other

Microsoft

slide29

The programmer’s API Implementation

Here is the deal!

  • The Universal Description, Discovery, and Integration (UDDI) Service is up and running at Microsoft, IBM, and Ariba.
  • This is an online Web Service that you can use from your applications to dynamically discover other online services, all neatly packaged in a simple XML interface. Following are the three URLs:
  • http://uddi.microsoft.com/inquire
  • http://uddi.ariba.com/UDDIProcessor.aw/ad/process
  • http://www-3.ibm.com/services/uddi/inquiryapi
  • These are the UDDI entry points for “INQUIRIES”. The entry points for updates are different and are typically HTTPS addresses for security reasons.
slide30

The four core types of data structures that are specified by the UDDI API Schema and their relationships are shown here

slide31

businessEntity Structure

Each businessEntity entity contains descriptive information about a business or organization and, through its contained businessService entities, information about the services that it offers

slide32

What XML Do You POST?

<?xml version='1.0' encoding='UTF-8'?>

<Envelope xmlns='http://schemas.xmlsoap.org/soap/envelope/'>

<Body>…</Body>

</Envelope>

The contents of the <Body> element can be any query from the uddi schema. For example, the following query, when placed inside the <Body> of the SOAP envelope returns the details on Microsoft:

<find_business generic="1.0" xmlns="urn:uddi-org:api">

<name>Microsoft</name>

</find_business>

slide33

How Do You Post the XML?

From a JScript file or HTML page the XMLHTTP control provided by MSXML can be used as follows:

http = new ActiveXObject("Microsoft.XMLHTTP");

http.open("POST", url, false);

http.setRequestHeader("Accept","text/xml");

http.setRequestHeader("Cache-Control","no-cache");

http.setRequestHeader("SOAPAction",'""');

http.send(msg);

slide34

What Do You Get Back?

In this case you get a detailed listing of <businessInfo> elements currently registered for Microsoft, which includes information about the UDDI service itself.

<businessList generic="1.0" operator="Microsoft Corporation"

truncated="false" xmlns="urn:uddi-org:api">

<businessInfos>

<businessInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3">

<name>Microsoft Corporation</name>

<description xml:lang="en">Empowering people through great software -

any time, any place and on any device is Microsofts vision. As the worldwide

leader in software for personal and business computing, we strive to produce

innovative products and services that meet our customer's </description>

<serviceInfos>

<serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"

serviceKey="8BF2F51F-8ED4-43FE-B665-38D8205D1333">

<name>Electronic Business Integration Services</name>

</serviceInfo>

<serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"

serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1">

<name>UDDI Web Services</name>

</serviceInfo>

</serviceInfos>

</businessInfo>

</businessInfos>

</businessList>

slide35

How how to drill in and get information about one specific service

For example, let’s drill in on the UDDI Web Service. You can take the businessKey from the above results and use <find_service> to look up a service by name:

<find_service generic='1.0' xmlns='urn:uddi-org:api'

businessKey='0076B468-EB27-42E5-AC09-9955CFF462A3'>

<name>UDDI Web Services</name>

</find_service>

This returns the information about this service:

<serviceList generic="1.0" operator="Microsoft Corporation"

truncated="false" xmlns="urn:uddi-org:api">

<serviceInfos>

<serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"

serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1">

<name>UDDI Web Services</name>

</serviceInfo>

</serviceInfos>

</serviceList>

slide36

Then you can use the serviceKey to get the details about this particular service:

<get_serviceDetail generic='1.0' xmlns='urn:uddi-org:api'>

<serviceKey>D2BC296A-723B-4C45-9ED4-494F9E53F1D1</serviceKey>

</get_serviceDetail>

This returns the following <bindingTemplates>:

<serviceDetail generic="1.0" operator="Microsoft Corporation"

truncated="false" xmlns="urn:uddi-org:api">

<businessService businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"

serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1">

<name>UDDI Web Services</name>

<description xml:lang="en">UDDI SOAP/XML message-based programmatic web

service interfaces.</description>

<bindingTemplate bindingKey="A9CAFBE4-11C6-4BFE-90F5-595970D3DE24"

serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1">

<description xml:lang="en">Production UDDI server, Inquiry interface</description>

<accessPoint URLType="http">http://uddi.microsoft.com/inquire</accessPoint>

<tModelInstanceDetails>

<tModelInstanceInfo tModelKey="uuid:4CD7E4BC-648B-426D-9936-443EAAC8AE23">

<description xml:lang="en">UDDI SOAP Inquiry Interface</description>

</tModelInstanceInfo>

</tModelInstanceDetails>

</bindingTemplate>

<categoryBag>

<keyedReference keyName="KEYWORD" keyValue="API"

tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"></keyedReference>

<keyedReference keyName="KEYWORD" keyValue="SOAP"

tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"></keyedReference>

<keyedReference keyName="KEYWORD" keyValue="XML"

tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"></keyedReference>

</categoryBag>

</businessService>

</serviceDetail>

slide37

This diagram illustrates several models of registry interaction enabled by the UDDI 3 specification. Through mechanisms like publish/subscribe and replication among peer nodes, information in UDDI servers can be fully public, semiprivate, or fully private. (Source: uddi.org)

slide38

Practical Examples of UDDI registries

https://uddi.ibm.com/beta/registry.html

practical example from ibm http www 106 ibm com developerworks library ws uddi4j html
Practical Example from IBMhttp://www-106.ibm.com/developerworks/library/ws-uddi4j.html

UDDIProxy proxy = new UDDIProxy();

proxy.setInquiryURL("http://www-3.ibm.com/services/uddi/ testregistry/inquiryapi");

proxy.setPublishURL("https://www-3.ibm.com/services/uddi/ testregistry/protect/publishapi");

Code fragment for creating a UDDIProxy

slide40

Code fragment to Find a business in the UDDI registry

FindBusinessExample.java

BusinessList bl = proxy.find_business("S", null, 0);

Once we have the list of businesses that match our search criteria, this code iterates through the list and prints the names of all the businesses that match:

Vector businessInfoVector = bl.getBusinessInfos().getBusinessInfoVector();

for (int i = 0; i < businessInfoVector.size(); i++)

{

BusinessInfo businessInfo = (BusinessInfo)businessInfoVector.elementAt(i);

System.out.println(businessInfo.getNameString());

}

slide41

Publish a business listing

SaveBusinessExample.javaUDDIProxysetPublishURL

AuthToken token = proxy.get_authToken("userid", "password");

The next step is to defining the business name

Vector entities = new Vector();

BusinessEntity be = new BusinessEntity("");

be.setName("Sample business");

entities.addElement(be);

BusinessDetail bd = proxy.save_business(token.getAuthInfoString(), entities);

To verify that our data was published to the registry successfully, print the data we received from the save_business method

Vector businessEntities = bd.getBusinessEntityVector();

BusinessEntity returnedBusinessEntity = (BusinessEntity)(businessEntities.elementAt(0));

System.out.println("Returned businessKey:" + returnedBusinessEntity.getBusinessKey());

slide42

Unpublish (delete) a business listing

DeleteBusinessExample.javaBusinessEntity BusinessList bl = proxy.find_business("Sample business", null, 0);

Now that I have the list of businesses that match, I'll attempt to delete each one

Vector businessInfoVector = bl.getBusinessInfos().getBusinessInfoVector();

for (int i = 0; i < businessInfoVector.size(); i++) {

BusinessInfo bi = (BusinessInfo)businessInfoVector.elementAt(i); System.out.println("Found business key:" + bi.getBusinessKey());

DispositionReport dr = proxy.delete_business(token.getAuthInfoString(), bi.getBusinessKey());

if (dr.success()) {

System.out.println("Business successfully deleted");

}

Else

// handle error case

more information
UDDI Resources

http://www.uddi.org

http://uddi.microsoft.com

http://www-3.ibm.com/services/uddi

Public discussions and mailing lists at www.yahoogroups.com

For Developers

SOAP/Web Services SDK

msdn.microsoft.com/xml/general/soap1and2.asp

Visual Basic UDDI SDK

www.microsoft.com/downloads/release.asp?ReleaseID=24822

IBM AlphaWorks Web Services Toolkit

http://www.alphaworks.ibm.com/tech/webservicestoolkit

More Information