Exposing Business Value with
               VisualWorks Web Services

                            Kirk D. Blackburn
      ...
Introduction

❏  Nice to be back at ESUG!

❏  ESUG ‘98 – Smalltalk and Java Interoperability

❏  This year: Web Services

...
Structure of Presentation

❏  Web Services Overview

❏  Problem (Trouble Ticket Service)

❏  Objectives (Qwest IT)

❏  Pro...
Why “Exposing Business Value …?”




 - Page 4 -            VisualWorks Web Services 8/27/02 Version 1.0
Web Services Definition

❏  “XML-based information exchange systems that
    use the internet for direct application to
  ...
XML Web Services

  Reusable & programmable web components

  Built on Open Standards

  Vendor, platform, & language i...
Web Service Technologies

  Set of XML-based Technologies
         SOAP (simple object access protocol)
         UDDI (...
UDDI and SOAP

                                                UDDI Registry
             USER
                     find_tM...
Registry APIs (SOAP Messages)
                                         Publishers API
                                    ...
VisualWorks UDDI Search Tool




- Page 10 -             VisualWorks Web Services 8/27/02 Version 1.0
HTTP Settings Tool




- Page 11 -              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 ...
WSDL Example




   * We will compare WSDL with IDL later in the presentation	



- Page 13 -                             ...
IDL and WSDL and ST Signatures

IDL
void createTicket(inout TroubleTicket troubleTicket, out ErrorStruct error);
WSDL

<op...
IDL and WSDL Complex Types
 IDL
 #pragma class ErrorStruct Qwest.WebServices.TroubleTicketErrorStruct
 struct ErrorStruct ...
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
 ...
Problem (early 2002)

  How to expose Trouble Ticket Service as Web
     Service

  Trouble Ticket Service was CORBA-bas...
Existing Application

  Trouble Ticket Application

  Promia ORB

  VW3.1 Implementation

  Java clients

  Interface...
Trouble Ticket Service Architecture

                             TMMT Current Client	

                                  ...
Options for Web Service Enabling

  Build on limited XML and HTTP support in VW3

  Use a shareware SOAP to CORBA Bridge...
Chose to Use VW7 Beta
  All Smalltalk Solution

  We Wanted VW7 Experience

  Partner with Cincom to Beta Test VW7




...
VW7 Support for Web Services

  SOAP Server

  WSDL Client

  UDDI

  XSD

  XMLMarshaling

  XMLToObject Bindings

...
VW7 Option
     Current TMMT Clients                            SOAP/XML Client                        UDDI Repository
   ...
Where does WSDL come from?

  Did not have WSDL

  Had IDL

  Tools exist to create WSDL from
          Java
        ...
Found Cape Connect

  Cape Connect from Cape Clear Software *

  Generates WSDL from IDL !

  Mainly for Java and C#
  ...
Steps to Create a Web Service


  Create WSDL

  Create Class for the Web Service

  Create Classes for the XSD types

...
VW7 Option
     Current TMMT Clients                            SOAP/XML Client                        UDDI Repository
   ...
Performance

  Preliminary
          CORBA – 30 to 100s of message sends/sec.
          SOAP – 800 msecs per request
  ...
New VW7 WSDL Capabilities




- Page 30 -                 VisualWorks Web Services 8/27/02 Version 1.0
Lessons Learned


  WSDL is not easy to write

  WSDL takes time to learn

  VW7 SOAP works. Can interop with ORBs

  ...
Summary and Conclusions

  VW7 provides good support for Web Services

  Support requires more coding than say .NET

  ...
Upcoming SlideShare
Loading in …5
×

Exposing Business Value

912 views

Published on

Kirk D. Blackburn: Exposing Business Value with VisualWorks Web Services (ESUG 2002, Douai, France.)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
912
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Exposing Business Value

  1. 1. Exposing Business Value with VisualWorks Web Services Kirk D. Blackburn Qwest Communications, International KDBlack@qwest.com Stan Benda Qwest Communications, International SBenda@qwest.com Robert Michaud Qwest Communications International RMichau@qwest.com - Page 1 - VisualWorks Web Services 8/27/02 Version 1.0
  2. 2. Introduction ❏  Nice to be back at ESUG! ❏  ESUG ‘98 – Smalltalk and Java Interoperability ❏  This year: Web Services ❏  My Team ❏  Project background - Page 2 - VisualWorks Web Services 8/27/02 Version 1.0
  3. 3. Structure of Presentation ❏  Web Services Overview ❏  Problem (Trouble Ticket Service) ❏  Objectives (Qwest IT) ❏  Project Approach ❏  Architecture, Implementation and Mappings ❏  Lessons Learned ❏  Summary and Conclusions - Page 3 - VisualWorks Web Services 8/27/02 Version 1.0
  4. 4. Why “Exposing Business Value …?” - Page 4 - VisualWorks Web Services 8/27/02 Version 1.0
  5. 5. Web Services Definition ❏  “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. “ - Page 5 - VisualWorks Web Services 8/27/02 Version 1.0
  6. 6. XML Web Services   Reusable & programmable web components   Built on Open Standards   Vendor, platform, & language independent   Platform interoperability by providing application to application connectivity   Applications will be comprised of web services (Unix Commands)   Differences from CORBA? - Page 6 - VisualWorks Web Services 8/27/02 Version 1.0
  7. 7. Web Service Technologies   Set of XML-based Technologies   SOAP (simple object access protocol)   UDDI (Universal Description, Discovery and Integration)   WSDL (Web Service Description Language)   XSD (XML Schema)   Hype (promise to make EAI easy)   Integration of heterogeneous systems   Reality (security, Xactions, workflow) - Page 7 - VisualWorks Web Services 8/27/02 Version 1.0
  8. 8. UDDI and SOAP UDDI Registry USER find_tModel Node UDDI SOAP Request HTTP SOAP Server Processor UDDI SOAP Response <-WSDL UDDI Registry Service Create, View, Update, and Delete registrations Implementation- neutral - Page 8 - VisualWorks Web Services 8/27/02 Version 1.0
  9. 9. Registry APIs (SOAP Messages) Publishers API –  Save things Inquiry API ■  save_business –  Find things ■  save_service ■  save_binding ■  find_business ■  save_tModel ■  find_service –  Delete things ■  find_binding ■  delete_business ■  find_tModel ■  delete_service –  Get Details about things ■  delete_binding ■  get_businessDetail ■  delete_tModel ■  get_serviceDetail –  security… ■  get_bindingDetail ■  get_authToken ■  get_tModelDetail ■  discard_authToken - Page 9 - VisualWorks Web Services 8/27/02 Version 1.0
  10. 10. VisualWorks UDDI Search Tool - Page 10 - VisualWorks Web Services 8/27/02 Version 1.0
  11. 11. HTTP Settings Tool - Page 11 - VisualWorks Web Services 8/27/02 Version 1.0
  12. 12. 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: Element Defines <portType> The operations performed by the web service <message> The messages used by the web service <types> The data types used by the web service <binding> The communication protocols used by the web service * We will discuss “Simple” later in the presentation - Page 12 - VisualWorks Web Services 8/27/02 Version 1.0
  13. 13. WSDL Example * We will compare WSDL with IDL later in the presentation - Page 13 - VisualWorks Web Services 8/27/02 Version 1.0
  14. 14. IDL and WSDL and ST Signatures IDL void createTicket(inout TroubleTicket troubleTicket, out ErrorStruct error); WSDL <operation name="createTicket" parameterOrder="target troubleTicket error"> <input message="tns:createTicket"/> <output message="tns:createTicketResponse"/> </operation> Smalltalk createTicket: aTicket error: errorParameter - Page 14 - VisualWorks Web Services 8/27/02 Version 1.0
  15. 15. IDL and WSDL Complex Types IDL #pragma class ErrorStruct Qwest.WebServices.TroubleTicketErrorStruct struct ErrorStruct { long code; string description; }; WSDL </xsd:complexType> <xsd:complexType name="troubleTicketErrorStruct"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="code" type="xsd:int"/> <xsd:element maxOccurs="1" minOccurs="1" name="description" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> - Page 15 - VisualWorks Web Services 8/27/02 Version 1.0
  16. 16. Problem Description - Page 16 - VisualWorks Web Services 8/27/02 Version 1.0
  17. 17. 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
  18. 18. Problem (early 2002)   How to expose Trouble Ticket Service as Web Service   Trouble Ticket Service was 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
  19. 19. Existing Application   Trouble Ticket Application   Promia ORB   VW3.1 Implementation   Java clients   Interface defines protocol for creating and finding trouble tickets - Page 19 - VisualWorks Web Services 8/27/02 Version 1.0
  20. 20. Trouble Ticket Service Architecture TMMT Current Client (Java) IIOP TT Server VW3.1 IIOP TT worker TT worker TT worker ORB 1 ORB 2 ORB n - Page 20 - VisualWorks Web Services 8/27/02 Version 1.0
  21. 21. Options for Web Service Enabling   Build on limited XML and HTTP support in VW3   Use a shareware SOAP to CORBA Bridge *   Use .NET and VisualWorks Com Connect   Use VW7 Beta Bits * http://soap2corba.sourceforge.net/html/fo)design.html - Page 21 - VisualWorks Web Services 8/27/02 Version 1.0
  22. 22. Chose to Use VW7 Beta   All Smalltalk Solution   We Wanted VW7 Experience   Partner with Cincom to Beta Test VW7 - Page 22 - VisualWorks Web Services 8/27/02 Version 1.0
  23. 23. VW7 Support for Web Services   SOAP Server   WSDL Client   UDDI   XSD   XMLMarshaling   XMLToObject Bindings   WSDL tool (as of 8/20/02 … last week) - Page 23 - VisualWorks Web Services 8/27/02 Version 1.0
  24. 24. VW7 Option Current TMMT Clients SOAP/XML Client UDDI Repository Xml spy, .NET, etc. XML with WSDL IIOP XML over HTTP Small Problem VW7 HTTP SOAP Server here Trouble Ticket Server IIOP With DST ORB (VW3.1) (VW7) IIOP Interesting Work Here TT worker TT worker TT worker (e.g. Marshaling) ORB 1 ORB 2 ORB n - Page 24 - VisualWorks Web Services 8/27/02 Version 1.0
  25. 25. Where does WSDL come from?   Did not have WSDL   Had IDL   Tools exist to create WSDL from   Java   .C# classes in .NET   So… - Page 25 - VisualWorks Web Services 8/27/02 Version 1.0
  26. 26. Found Cape Connect   Cape Connect from Cape Clear Software *   Generates WSDL from IDL !   Mainly for Java and C#   Generates WSDL from Classes   Did an ok job of generating WSDL from our IDL   (2.0 CORBA, IDL imports, etc)   Still had to modify the WSDL (namespaces, etc) * www.capeclear.com - Page 26 - VisualWorks Web Services 8/27/02 Version 1.0
  27. 27. Steps to Create a Web Service   Create WSDL   Create Class for the Web Service   Create Classes for the XSD types   Write XML to Smalltalk Bindings   WSDLClient creates default bindings   Can then modify to bind XSD types into Objects instead of default structs - Page 27 - VisualWorks Web Services 8/27/02 Version 1.0
  28. 28. VW7 Option Current TMMT Clients SOAP/XML Client UDDI Repository Xml spy, .NET, etc. XML with WSDL IIOP XML over HTTP Small Problem VW7 HTTP SOAP Server here Trouble Ticket Server IIOP With DST ORB (VW3.1) (VW7) IIOP Interesting Work Here TT worker TT worker TT worker (e.g. Marshaling, ORB 1 ORB 2 ORB n Binding) - Page 28 - VisualWorks Web Services 8/27/02 Version 1.0
  29. 29. Performance   Preliminary   CORBA – 30 to 100s of message sends/sec.   SOAP – 800 msecs per request   VW7 vs. .NET - Page 29 - VisualWorks Web Services 8/27/02 Version 1.0
  30. 30. New VW7 WSDL Capabilities - Page 30 - VisualWorks Web Services 8/27/02 Version 1.0
  31. 31. Lessons Learned   WSDL is not easy to write   WSDL takes time to learn   VW7 SOAP works. Can interop with ORBs   VW7 Web Services support saved us time   ObjRefs don’t exist in Web Services   Effort was well supprted by Cincom - Page 31 - VisualWorks Web Services 8/27/02 Version 1.0
  32. 32. Summary and Conclusions   VW7 provides good support for Web Services   Support requires more coding than say .NET   Interop issues with .NET   VW7 WS have potential to leverage entire Domain   Selling Web Services implemented VW still an obstacle (internally)   Web Services in VW may help overcome arguments that limited viability of VW in Web- based software architectures - Page 32 - VisualWorks Web Services 8/27/02 Version 1.0

×