SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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
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
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
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
    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
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
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
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
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
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 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
WSDL Example




   * We will compare WSDL with IDL later in the presentation	



- Page 13 -                                        VisualWorks Web Services 8/27/02 Version 1.0
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
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
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)

  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
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
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
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
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
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
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
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
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
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
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
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
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

  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
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

Contenu connexe

En vedette (6)

Testing for Real
Testing for RealTesting for Real
Testing for Real
 
Getting Off the Island
Getting Off the IslandGetting Off the Island
Getting Off the Island
 
Building end user applications
Building end user applicationsBuilding end user applications
Building end user applications
 
Diagnosis and semi-automatic correction of detected design inconsistencies in...
Diagnosis and semi-automatic correction of detected design inconsistencies in...Diagnosis and semi-automatic correction of detected design inconsistencies in...
Diagnosis and semi-automatic correction of detected design inconsistencies in...
 
VASmalltalk, Today and Tomorrow
VASmalltalk, Today and TomorrowVASmalltalk, Today and Tomorrow
VASmalltalk, Today and Tomorrow
 
From Print Design to Web Design
From Print Design to Web DesignFrom Print Design to Web Design
From Print Design to Web Design
 

Similaire à Exposing Business Value

Similaire à Exposing Business Value (20)

Modern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungModern Web: Trends der Webentwicklung
Modern Web: Trends der Webentwicklung
 
Make your TechComm online/offline available
Make your TechComm online/offline availableMake your TechComm online/offline available
Make your TechComm online/offline available
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical Approach
 
Autodesk Technical Webinar: SAP NetWeaver Gateway Part 1
Autodesk Technical Webinar: SAP NetWeaver Gateway Part 1Autodesk Technical Webinar: SAP NetWeaver Gateway Part 1
Autodesk Technical Webinar: SAP NetWeaver Gateway Part 1
 
Introduction To Dot Net Siddhesh
Introduction To Dot Net SiddheshIntroduction To Dot Net Siddhesh
Introduction To Dot Net Siddhesh
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
Ofm msft-interop-v5c-132827
Ofm msft-interop-v5c-132827Ofm msft-interop-v5c-132827
Ofm msft-interop-v5c-132827
 
12 Factor Apps and Cloud Foundry - Twin Cities Code Camp
12 Factor Apps and Cloud Foundry - Twin Cities Code Camp12 Factor Apps and Cloud Foundry - Twin Cities Code Camp
12 Factor Apps and Cloud Foundry - Twin Cities Code Camp
 
Real-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalRReal-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalR
 
#VMUGMTL - Radware Breakout
#VMUGMTL - Radware Breakout#VMUGMTL - Radware Breakout
#VMUGMTL - Radware Breakout
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
WCF tutorial
WCF tutorialWCF tutorial
WCF tutorial
 
Node js
Node jsNode js
Node js
 
WebML and WebRatio 5 - TOOLS conference, Zurich 2008
WebML and WebRatio 5 - TOOLS conference, Zurich 2008WebML and WebRatio 5 - TOOLS conference, Zurich 2008
WebML and WebRatio 5 - TOOLS conference, Zurich 2008
 
WebServices Fundamentals
WebServices FundamentalsWebServices Fundamentals
WebServices Fundamentals
 
ASP.NET Unit-4.pdf
ASP.NET Unit-4.pdfASP.NET Unit-4.pdf
ASP.NET Unit-4.pdf
 
Domino 6 vs. Exchange 2000
Domino 6 vs. Exchange 2000Domino 6 vs. Exchange 2000
Domino 6 vs. Exchange 2000
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or less
 

Plus de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Plus de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Exposing Business Value

  • 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. 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. 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. Why “Exposing Business Value …?” - Page 4 - VisualWorks Web Services 8/27/02 Version 1.0
  • 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. 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. 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. 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. 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. VisualWorks UDDI Search Tool - Page 10 - VisualWorks Web Services 8/27/02 Version 1.0
  • 11. HTTP Settings Tool - Page 11 - VisualWorks Web Services 8/27/02 Version 1.0
  • 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. WSDL Example * We will compare WSDL with IDL later in the presentation - Page 13 - VisualWorks Web Services 8/27/02 Version 1.0
  • 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. 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. Problem Description - Page 16 - VisualWorks Web Services 8/27/02 Version 1.0
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. New VW7 WSDL Capabilities - Page 30 - VisualWorks Web Services 8/27/02 Version 1.0
  • 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. 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