web 312 integrating applications with uddi services andy milligan program manager uddi services,...

34
WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Post on 15-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

WEB 312

Integrating Applications With UDDI Services

Andy MilliganProgram ManagerUDDI Services, Windows ServerMicrosoft Corporation

Page 2: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Agenda

UDDI update

Publishing Web servicesRegistration modeling

Programmatic registration

Consuming Web servicesDesign/configuration time discovery

Runtime discovery

Discovery for reliability

Customizing the UDDI experience

Next steps and discussion

Page 3: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

UDDI update

Universal Description Discovery and IntegrationWeb services standard

Data model for storing providers and their services

SOAP API for searching and publishing

Integrated into many tools such as Visual Studio .NET, Microsoft Office

Enterprise UDDI ServicesIntegrated component of Windows Server 2003

Built in C# on .NET Framework 1.1, Internet Information Server 6.0, and SQL Server 2000

Active Directory for roles, authentication and server registration

Page 4: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Publishing Web Services

Variety of applications are / will be exposing Web services

ISV server applicationIn-house deployed applications In-house wrapped LOB application

Motivations for publishing to UDDIPredictable, centralized rendezvous point for services and their metadataEnough to identify, differentiate, and integratePublish (advertise) to encourage reuse, limit development duplication, and out-of-band communicationCommunicate changes in application deployment

Page 5: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Publishing Mechanism

Register during application lifecycle eventsInstallation, deployment, configuration, upgrade, uninstall, etc.

UDDI Services supports Web UI and SOAP APIManual Web UI registration

Suitable for small number of services or simple profiles

Potentially error prone

Programmatic SOAP API registrationApplicable to widely deployed applications

Improved consistency and accuracy of registration details

Page 6: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Registration Profile

Model your serviceEstablish provider, service, bindings, and interfaces (tModels)

Develop standard approaches

Decide on appropriate categorizationsMapPoint Geographic

Visual Studio .NET

Business Capabilities

Create custom schemes

Page 7: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

UDDI Data Model

Provider: Information about the Provider: Information about the entity who offers a serviceentity who offers a service

0…n

Service: Descriptive Service: Descriptive information about a particular information about a particular family of technical offeringsfamily of technical offerings

0…n

Binding: Technical information Binding: Technical information about a service entry pointabout a service entry point

tModel: Definitions of tModel: Definitions of specifications for services specifications for services

0…n

Page 8: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

UDDI Data ModelDescribing WSDL Services

Provider: Information about the Provider: Information about the entity who offers a serviceentity who offers a service

0…n

Service: Descriptive Service: Descriptive information about a particular information about a particular family of technical offeringsfamily of technical offerings

0…n

Binding: Technical information Binding: Technical information about a service entry pointabout a service entry point

tModel: Definitions of tModel: Definitions of specifications for services specifications for services

0…n

Pointer to a WSDL specPointer to a WSDL spec

Categorization: uddi-org:typesCategorization: uddi-org:typesKey Value: wsdlSpec Key Value: wsdlSpec

Access point(s) Access point(s) for the servicefor the service

Name, description, and Name, description, and categorization of the servicecategorization of the service

Name, description, and Name, description, and categorization of the categorization of the deployment groupdeployment group

Page 9: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

UDDI Data ModelCOM similarities

Provider: Information about the Provider: Information about the entity who offers a serviceentity who offers a service

0…n

Service: Descriptive Service: Descriptive information about a particular information about a particular family of technical offeringsfamily of technical offerings

0…n

Binding: Technical information Binding: Technical information about a service entry pointabout a service entry point

tModel: Definitions of tModel: Definitions of specifications for services specifications for services

0…n

Pointer to a WSDL specPointer to a WSDL spec

Name, description, and Name, description, and categorization of the servicecategorization of the service

Name, description, and Name, description, and categorization of the categorization of the deployment groupdeployment group

InterfaceInterface

ImplementationImplementation

[ odl, uuid(34194D3F-2B85-41F0-8211-368904FD89B8)]interface _StockQuoteClass : IDispatch { HRESULT GetLastTradePrice( [in, out] BSTR* symbol, [out, retval] double* ); };

Access point(s) Access point(s) for the servicefor the service

[uuid(C92A5941-D42D-4DA2-B83F-C3299D893A23), version(1.0) ]coclass StockQuoteClass { [default] interface _StockQuoteClass;};

Page 10: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Manual Web UI Manual Web UI RegistrationRegistration

demodemo

Page 11: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Programmatic RegistrationUDDI SOAP API Message Set

Synchronous request/response protocol

For each UDDI entity (provider, service, binding, and tModel)

Finds – find_service, find_business

Gets – get_serviceDetail, get_businessDetail

Saves – save_service, save_business

Deletes – delete_service, delete_business

Broad cross-platform developer reachCumbersome to create using XML APIs

Page 12: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Programmatic RegistrationMicrosoft UDDI SDK 2.0

.NET assembly providing rich object model

Page 13: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Programmatic RegistrationMicrosoft UDDI SDK 2.0

Objects serialize to underlying UDDI XMLApplicable to any UDDI server

Superior to WSDL generated proxy classesProperties, collections, overridden Add methods etc.

Usable from COM / Visual Studio 6.0

Available in the Microsoft Platform SDK

Page 14: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Programmatic RegistrationBuilding The Registration

Discover the UDDI serverActive Directory registration and UddiSiteDiscovery

Establish a secured connectionWindows Integrated or UDDI Authentication

Create and Send a SaveTModel for the interface definition

Identifying GUID returned

CreateA named and categorized provider and service

A binding specifying the access point and referencing the tModel GUID

Place in a SaveBusiness and Send

Page 15: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Programmatic API Programmatic API RegistrationRegistration

demodemo

Page 16: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Programmatic RegistrationNotes

Overridden ToString() method provides XML messageConsole.WriteLine(myServiceDetail.ToString());

UddiConnection exposes HttpClient for advanced configmyUddiConnection.HttpClient.AllowAutoRedirect = true;myUddiConnection.HttpClient.Proxy = new WebProxy(...);

UDDI API errors thrown as UddiExceptiontry { ... }catch (UddiException e) {Console.Write("UDDI exception: " + e.Message);}catch (Exception gen) {Console.Write("General exception: " +

gen.Message);}

Enumerations for common tModels UUIDsCommonExtended.MicrosoftComMapPointGeographicCommonCanonical.UddiOrgHomepage

Page 17: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Consuming Web services

Variety of applications are / will be consuming Web services

Desktop application at configuration timeDeveloper applications at design timeDistributed server/desktop applications at runtime

MotivationsPredictable, centralized rendezvous point for services and their metadataEnough to dynamically identify, differentiate, and integrate with most “appropriate” servicesDiscover to enable reuse, limit development duplication and out of band communicationDiscover changes in application deployment

Page 18: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Configuration Time Discovery

“Find all services that implement interface X and are categorized with Y”

Use combination of Find APIs to retrieve list and Get APIs to retrieve full details

GetRelatedCategories extended API for category enumeration and drill down

Page 19: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Configuration Time Configuration Time DiscoveryDiscovery

demodemo

Page 20: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Design Time Discovery

“Find all WSDL described services”Used in Office XP, Visual Studio .NET, InfoPathUse combination of Find APIs to retrieve list and Get APIs to retrieve full detailsReusable DHTML UI:

http://<servername>/uddi/AddWebReference

Page 21: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Runtime Discovery

Dynamically bind to “most appropriate” service instance

Categorizations provide a mechanism for adding metadata criteria

Geographic localeQuality of serviceService status (test/production/deprecated)

Not dynamically discover a new kind of service

Given redundant service instances, can help manage the fragility of distributed applications

Cache to not require UDDI on every invocation

ManagedUrl class encapsulates this reliability

Page 22: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

ManagedUrl:ManagedUrl:ManagedUrl:ManagedUrl:•Instance 1Instance 1•Instance 2Instance 2•……•Instance NInstance N

ManagedUrl:ManagedUrl:•Instance 1Instance 1•Instance 2Instance 2•……•Instance NInstance N

Managed URL Reliability

UDDI Services

1. At application startup retrieve 1. At application startup retrieve compatible services from UDDIcompatible services from UDDI

3. Simple FailOver to next available3. Simple FailOver to next availableservice without additional lookup service without additional lookup or application interruptionor application interruption

2. Application uses2. Application usesManagedUrl.Value in invocationsManagedUrl.Value in invocations

Consuming application

Web service instance N

Web service instance 2

Web Service Instance 1

Page 23: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

ManagedUrl: ManagedUrl: Robust Web services clientRobust Web services client

demodemo

Page 24: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Customizing The UDDI ExperienceUDDI Services User Interface

UDDI Services user interfaceRich Web application – ASP.NET / DHTML / CSS

Full fidelity of UDDI object model

Scenario specific

ConsiderationsRequires understanding of UDDI Servicesconcepts and modeling decisions

Usage pattern not tied down

Corporate customization not a design goal

Specific look and feel

Page 25: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Custom User InterfaceSupporting Specific Scenarios

There is scope for user interface focused on more specific usage patterns

WinFormsUDDI Publish Wizard:

Focused on Visual Studio .NET developer

Available in UDDI SDK and integrates intoVisual Studio .NET

ASP.NETCorporate look and feel

Scenario specific

Page 26: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

ASP.NET Integration

UDDI Services API for integration is the UDDI XML API

No direct managed or COM integration

No direct database access supported

Post XML messages over HTTP to SOAP access point

ASP.NETASP.NET

SQL Server SQL Server / MSDE / MSDE

Stored Stored procsprocs

Windows Server 2003Windows Server 2003

UDDI ServicesUDDI Services

Web UIWeb UI

SOAP APISOAP API

.NET .NET business business

logiclogic

Web clientWeb client

Custom UICustom UI

Page 27: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

ASP.NET Alternate UIASP.NET Alternate UI

•Simple search client•Simple publish client

demodemo

Page 28: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

ASP.NET Alternate UINotes

UDDI SDK provides object model over theXML API

Send method to invoke XML API call

To leverage UDDI Services rolesConfigure Internet Information Server vdir for “Integrated Windows authentication”

Enable identity impersonation in Web.config...</authorization>

<identity impersonate="true"/>

<trace...

Page 29: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Summary

Publishing Web servicesRegistration modeling

Programmatic registration with the UDDI SDK

Consuming Web servicesDesign, configuration and runtime discovery

Discovery for reliability with the ManagedUrl

Customizing the UDDI experienceASP.NET UI for SOAP API

Page 30: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Next steps

Install Windows Server 2003 UDDI Services

Model your application registrations

Discover and integrate with services from UDDI at design, configuration, and runtime

Page 31: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

UDDI Resources

WebsitesMSDN UDDI Development:msdn.microsoft.com/uddiUDDI Services:www.microsoft.com/windowsserver2003From within UDDI Services:

“Additional UDDI resources on the web”

Newsgroupsmicrosoft.public.uddi.generalmicrosoft.public.uddi.programming

Page 32: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 33: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

evaluationsevaluations

Page 34: WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.