- Page 1 - VisualWorks Web Services 8/27/02 Version 1.0 Exp osin g Business Value with VisualWorks Web Services Kirk D. Blackburn Qwest Communications, International Stan Benda Qwest Communications, International Robert Michaud Qwest Communications International
- Page 2 - VisualWorks Web Services 8/27/02 Version 1.0 Introduction o Nice to be back at ESUG! o ESUG 98 – Smalltalk and Java Interoperability o This year: Web Services o My Team o Project Background
- Page 3 - VisualWorks Web Services 8/27/02 Version 1.0 Structure of Presentation o Web Services Overview o Problem (Trouble Ticket Service) o Objectives (Qwest IT) o Project Approach o Architecture, Implementation and Mappings o Lessons Learned o Summary and Conclusions
- Page 4 - VisualWorks Web Services 8/27/02 Version 1.0 Why “Exposing Business Value …?”
- Page 5 - VisualWorks Web Services 8/27/02 Version 1.0 Web Services Definition o “XML-based information exchange systems that use the internet for direct application to application interaction. These systems can include programs, objects, messages, or documents. Web services provide a data- independent mechanism to programmatically expose business services on the Internet using standard XML protocols and formats. Web services can be accessed using browsers, but do not require the use of either browsers or HTML. “XML
- Page 6 - VisualWorks Web Services 8/27/02 Version 1.0 XML Web Services Reusable & programmable web components Built on Open Standards Vendor, platform, & language independent Platform interoperability by providing application to application connectivity Solutions will be comprised of web services Different than CORBA?
- Page 7 - VisualWorks Web Services 8/27/02 Version 1.0 Web Service Technologies Set of XML-based Technologies SOAP (simple object access protocol) UDDI (Universal Description, Discovery and Integration) WSDL (Web Service Description Language) XSchema Hype (promise to make EAI easy) Reality (security, Xactions, workflow)
- Page 8 - VisualWorks Web Services 8/27/02 Version 1.0 UDDI and SOAP USER UDDI SOAP Request UDDI SOAP Response UDDI Registry Node HTTP Server SOAP Processor UDDI Registry Service Create, View, Update, and Delete registrations Implementation- neutral XML
- Page 9 - VisualWorks Web Services 8/27/02 Version 1.0 Registry APIs (SOAP Messages) Inquiry API –Find things n find_business n find_service n find_binding n find_tModel –Get Details about things n get_businessDetail n get_serviceDetail n get_bindingDetail n get_tModelDetail Publishers API –Save things n save_business n save_service n save_binding n save_tModel –Delete things n delete_business n delete_service n delete_binding n delete_tModel –security… n get_authToken n discard_authToken
- Page 10 - VisualWorks Web Services 8/27/02 Version 1.0 VisualWorks UDDI Search Tool UDDISearchTool open
- Page 11 - VisualWorks Web Services 8/27/02 Version 1.0 HTTP Settings Tool
- Page 12 - VisualWorks Web Services 8/27/02 Version 1.0 WSDL What is a Web Service Description Language? It is a “simple” XML document that contains set of definitions to define a web service * Major elements of a WSDL document are: ElementDefines The operations performed by the web service The messages used by the web service The data types used by the web service The communication protocols used by the web service * We will discuss “Simple” later in the presentation
- Page 13 - VisualWorks Web Services 8/27/02 Version 1.0 WSDL Example * We will compare WSDL with IDL later in the presentation
- Page 14 - VisualWorks Web Services 8/27/02 Version 1.0 IDL, WSDL and ST signatures IDL Void createTicket(inout TroubleTicket troubleTicket, out ErrorStruct); WSDL Smalltalk createTicket:aTicket ^(Array with:aTicket with:errorParameter)
- Page 15 - VisualWorks Web Services 8/27/02 Version 1.0 Problem Description
- Page 16 - VisualWorks Web Services 8/27/02 Version 1.0 Qwest IT Objectives Everything will be a Web Service “all businesses will provide Web Service access to existing Qwest applications without re-writing the existing applications. “ “We will use tools to create web services from existing applications and services without changing the underlying implementations….” Short-term, web services will tend to be developed with BEA’s EJB technology or similar technology. We will use the C# and Microsoft.NET in addition to the EJB technologies.
- Page 17 - VisualWorks Web Services 8/27/02 Version 1.0 Problem (early 2002) Need to expose Ticket Service as Web Service Trouble Ticket Service currently CORBA-based FindTicketByID (in Int out Ticket) CreateTicket(inout TroubleTicket troubleTicket, out ErrorStruct error);
- Page 18 - VisualWorks Web Services 8/27/02 Version 1.0 Existing Application Trouble Ticket Application (service) Promia 3.1 ORB VW3.1 Implementation Interface defines protocol for creating and finding trouble tickets Server does Queuing and Scheduling
- Page 19 - VisualWorks Web Services 8/27/02 Version 1.0 Trouble Ticket Service Architecture TMMT Current Client Java TT Server (3.1 Promia ORB) TT worker ORB 1 TT worker ORB n TT worker ORB 2 IIOP
- Page 20 - VisualWorks Web Services 8/27/02 Version 1.0 Options for Solving Problem Build on limited XML support in VisualWorks (Camp ST ‘20). Need to write a SOAP server. Drawbacks include: Time to write Use.NET and VisualWorks Com Connect COMConnect expertise Hardware (never deployed on Wintel architecture) Complicated (many pieces) Use existing SOAP to CORBA Bridge Shareware product Drawback = C++ Use VW7 Beta Bits
- Page 21 - VisualWorks Web Services 8/27/02 Version 1.0 Chose to Use VW7 Beta All Smalltalk Solution ( applause! ) We wanted VW7 experience Partner with Cincom in VW7 Beta Test
- Page 22 - VisualWorks Web Services 8/27/02 Version 1.0 VW7 Support for Web Services SOAP Server WSDL Client UDDI XSD XMLToObject Framework WSDL tool (as of 8/20/02 … this week)
- Page 23 - VisualWorks Web Services 8/27/02 Version 1.0 VW7 option Current TMMT Client ORBs TT worker ORB 1 TT worker ORB n TT worker ORB 2 SOAP/XML Client Xml spy,.NET, etc. XML over HTTP VW7 HTTP SOAP Server With DST ORB Existing Promia ORB IIOP UDDI Repository with WSDL XML Interesting Work Here Small Problem here
- Page 24 - VisualWorks Web Services 8/27/02 Version 1.0 Where does WSDL come from? Had IDL Did not have WSDL Tools to create WSDL.. Java .NET Was not in VW7 then, however … So…
- Page 25 - VisualWorks Web Services 8/27/02 Version 1.0 Found Cape Connect Cape Connect from Cape Clear Software * Generates WSDL from IDL ! Mainly for Java and.NET Generates WSDL from Classes Did an ok job of generating WSDL from our IDL Still had to modify the WSDL (namespaces, etc) *
- Page 26 - VisualWorks Web Services 8/27/02 Version 1.0 Steps to Create a Web Service in VW7 Create WSDL Create Class for the Web Service Create Classes for the XSD types Write XML to Smalltalk Bindings WSDLClient creates default bindings Then modify binding documents to bind XSD types to Objects instead of defualt structs
- Page 27 - VisualWorks Web Services 8/27/02 Version 1.0 VW7 option Current TMMT Client ORBs TT worker ORB 1 TT worker ORB n TT worker ORB 2 SOAP/XML Client Xml spy,.NET, etc. XML over HTTP VW7 HTTP SOAP Server With DST ORB Existing Promia ORB IIOP UDDI Repository with WSDL XML Interesting Work Here Small Problem here
- Page 28 - VisualWorks Web Services 8/27/02 Version 1.0 Performance Compare CORBA calls to SOAP calls
- Page 29 - VisualWorks Web Services 8/27/02 Version 1.0 New WSDL Tool Insert Screen shot here Describe Typing and metadata
- Page 30 - VisualWorks Web Services 8/27/02 Version 1.0 Lessons Learned WSDL is not easy to write WSDL takes time to learn SOAP works. Can interop with ORBs ObjRefs don’t exist in Web Services Interop issues with.NET Effort was well-supported by Cincom
- Page 31 - VisualWorks Web Services 8/27/02 Version 1.0 Summary and Conclusions VW7 provides solid support for Web Services Support requires more coding than say,.NET Interop issues with.NET VW7 WS potential to leverage entire Domain Selling Web Services still an obstacle (internally) Web Services in ST may help overcome arguments that limited viability of ST in Web- based software architectures
- Page 32 - VisualWorks Web Services 8/27/02 Version 1.0 End of Presentation
- Page 33 - VisualWorks Web Services 8/27/02 Version 1.0
- Page 34 - VisualWorks Web Services 8/27/02 Version 1.0 Exposing Trouble Ticket Through COM
- Page 35 - VisualWorks Web Services 8/27/02 Version 1.0