com+ and corba interop with xml-based web services jay schmelzer partner clarity consulting, inc....
TRANSCRIPT
COM+ And CORBA COM+ And CORBA Interop With XML-Based Interop With XML-Based Web ServicesWeb Services
Jay SchmelzerJay SchmelzerPartnerPartnerClarity Consulting, Inc.Clarity Consulting, Inc.
1-3031-303
About ClarityAbout Clarity
ClarityClarity Information technology consulting firmInformation technology consulting firm Based in ChicagoBased in Chicago Focus on MicrosoftFocus on Microsoft®® “Enterprise” “Enterprise”
technologiestechnologies JayJay
Development project leaderDevelopment project leader
……Check out www.claritycon.comCheck out www.claritycon.com
AgendaAgenda
Define the problemDefine the problem Review our optionsReview our options Dig into XML-based Web servicesDig into XML-based Web services Make it scaleMake it scale
What Is The Problem?What Is The Problem?
Access existing CORBA applicationsAccess existing CORBA applications Server to Server connectivityServer to Server connectivity
Capitalize on the investments made Capitalize on the investments made in encapsulating business rulesin encapsulating business rules
Server environments are heterogeneous Server environments are heterogeneous in naturein nature
Minimize the impact on the existing Minimize the impact on the existing applicationapplication
Example Of Our ProblemExample Of Our Problem
UNIX ServerUNIX ServerWindows 2000Windows 2000
CORBACORBAInventoryInventory
ObjectObject
COM+COM+Order Order ObjectObject
??????
What Are The Options?What Are The Options?
COM/CORBA Bridge productsCOM/CORBA Bridge products Message QueuesMessage Queues
IBM MQSeries on non-MS platformIBM MQSeries on non-MS platform MSMQ on MS platformsMSMQ on MS platforms
Custom SolutionCustom Solution Use Web ProtocolsUse Web Protocols
HTTPHTTP XMLXML SOAPSOAP
SOAP OverviewSOAP Overview
Simple Object Access ProtocolSimple Object Access Protocol Lightweight protocol for exchanging Lightweight protocol for exchanging
data using XMLdata using XML Message PartsMessage Parts
EnvelopEnvelop Encoding RulesEncoding Rules
SOAP ExampleSOAP Example
Stock quote methodStock quote method GetStockQuote(ByVal Symbol as String) GetStockQuote(ByVal Symbol as String)
as Doubleas Double Request messageRequest message
<SOAP-ENV:Envelope <SOAP-ENV:Envelope
xmlns:SOAPENV=“SOAPEnvelope-URI”xmlns:SOAPENV=“SOAPEnvelope-URI”
SOAP-ENV:encodingStyle=“SOAPEncoding-URI”SOAP-ENV:encodingStyle=“SOAPEncoding-URI”
<SOAP-ENV:Body><SOAP-ENV:Body>
<m:GetStockQuote xmlns:m=“Some-URI”><m:GetStockQuote xmlns:m=“Some-URI”>
<symbol>MSFT</symbol><symbol>MSFT</symbol>
</m:GetStockQuote></m:GetStockQuote>
</SOAP-ENV:Body></SOAP-ENV:Body>
</SOAP-ENV:Envelope></SOAP-ENV:Envelope>
SOAP ExampleSOAP Example
Response messageResponse message<SOAP-ENV:Envelope <SOAP-ENV:Envelope
xmlns:SOAPENV=“SOAPEnvelope-URI”xmlns:SOAPENV=“SOAPEnvelope-URI”
SOAP-ENV:encodingStyle=“SOAPEncoding-URI”SOAP-ENV:encodingStyle=“SOAPEncoding-URI”
<SOAP-ENV:Body><SOAP-ENV:Body>
<m:GetStockQuoteResponse<m:GetStockQuoteResponse
xmlns:m=“Some-URI”>xmlns:m=“Some-URI”>
<Price>MSFT</Price><Price>MSFT</Price>
</m:GetStockQuoteResponse></m:GetStockQuoteResponse>
</SOAP-ENV:Body></SOAP-ENV:Body>
</SOAP-ENV:Envelope></SOAP-ENV:Envelope>
DemoDemo
Hansen Brothers Interop SampleHansen Brothers Interop Sample
What’s Going On Here?What’s Going On Here?
Windows 2000Windows 2000 Solaris ServerSolaris Server
ASPASP
COM+COM+ObjectsObjects
ROPEROPEEngineEngine
SOAPSOAPListenerListener
CORBACORBAObjectsObjects
OracleOracleDBDB
Unix ListenerUnix Listener
Listens for HTTP PostsListens for HTTP Posts Parses the SOAP RequestParses the SOAP Request Call the appropriate CORBA objectCall the appropriate CORBA object Packages the results in Packages the results in
SOAP ResponseSOAP Response Sends the results back over HTTPSends the results back over HTTP
DemoDemo
Review Listener sourceReview Listener source
Microsoft SOAP SDKMicrosoft SOAP SDK
COM components that wrap COM components that wrap the SOAP messagesthe SOAP messages
Service Description Language – Service Description Language – TypeLib for a Web serviceTypeLib for a Web service
SDLSDL
Services Description LanguageServices Description Language XML schema file describes XML schema file describes
methods exposedmethods exposed Generated for existing components Generated for existing components
using the SDL Wizardusing the SDL Wizard Example – Product.xmlExample – Product.xml
ROPEROPE
Formats the SOAP XML messageFormats the SOAP XML message Packages the HTTP requestPackages the HTTP request Receives the HTTP responseReceives the HTTP response Parses the SOAP XML responseParses the SOAP XML response
Windows 2000 ComponentsWindows 2000 Components
HBProduct componentHBProduct component COM+ componentCOM+ component Wraps the calls to the CORBA componentWraps the calls to the CORBA component Utilizes ROPE Proxy object to make Utilizes ROPE Proxy object to make
the SOAP callsthe SOAP calls HBInteropHBInterop
COM+ business componentCOM+ business component Called by ASP to support the siteCalled by ASP to support the site
DemoDemo
HBProduct ComponentHBProduct Component
Converting The dataConverting The data
SOAP (HBProduct) returns XMLSOAP (HBProduct) returns XML We want ADO RecordsetsWe want ADO Recordsets OptionsOptions
Loop through the DOMLoop through the DOM XSL based transformationXSL based transformation
DemoDemo
HBInterop.ProductDC HBInterop.ProductDC
SummarySummary
SOAP is a great solution for InteropSOAP is a great solution for Interop Minimal impact to existing componentsMinimal impact to existing components Language neutralLanguage neutral Easy to configureEasy to configure
Questions?Questions?
Jay SchmelzerJay Schmelzer [email protected]@claritycon.com www.claritycon.comwww.claritycon.com