web 312 integrating applications with uddi services andy milligan program manager uddi services,...
Post on 15-Jan-2016
214 views
TRANSCRIPT
WEB 312
Integrating Applications With UDDI Services
Andy MilliganProgram ManagerUDDI Services, Windows ServerMicrosoft 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
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
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
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
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
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
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
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;};
Manual Web UI Manual Web UI RegistrationRegistration
demodemo
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
Programmatic RegistrationMicrosoft UDDI SDK 2.0
.NET assembly providing rich object model
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
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
Programmatic API Programmatic API RegistrationRegistration
demodemo
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
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
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
Configuration Time Configuration Time DiscoveryDiscovery
demodemo
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
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
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
ManagedUrl: ManagedUrl: Robust Web services clientRobust Web services client
demodemo
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
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
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
ASP.NET Alternate UIASP.NET Alternate UI
•Simple search client•Simple publish client
demodemo
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...
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
Next steps
Install Windows Server 2003 UDDI Services
Model your application registrations
Discover and integrate with services from UDDI at design, configuration, and runtime
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
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
evaluationsevaluations
© 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.