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

Testing for Real
Testing for RealTesting for Real
Testing for RealESUG
 
Getting Off the Island
Getting Off the IslandGetting Off the Island
Getting Off the IslandESUG
 
Building end user applications
Building end user applicationsBuilding end user applications
Building end user applicationsESUG
 
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...ESUG
 
VASmalltalk, Today and Tomorrow
VASmalltalk, Today and TomorrowVASmalltalk, Today and Tomorrow
VASmalltalk, Today and TomorrowESUG
 
From Print Design to Web Design
From Print Design to Web DesignFrom Print Design to Web Design
From Print Design to Web DesignESUG
 

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

Modern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungModern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungOPEN KNOWLEDGE GmbH
 
Make your TechComm online/offline available
Make your TechComm online/offline availableMake your TechComm online/offline available
Make your TechComm online/offline availableGeorg Eck
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkToby Corbin
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical ApproachMadhaiyan Muthu
 
Introduction To Dot Net Siddhesh
Introduction To Dot Net SiddheshIntroduction To Dot Net Siddhesh
Introduction To Dot Net SiddheshSiddhesh Bhobe
 
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 CampDavid Strebel
 
#VMUGMTL - Radware Breakout
#VMUGMTL - Radware Breakout#VMUGMTL - Radware Breakout
#VMUGMTL - Radware Breakout1CloudRoad.com
 
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 AvivRon Perlmuter
 
WCF tutorial
WCF tutorialWCF tutorial
WCF tutorialAbhi Arya
 
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 2008Marco Brambilla
 
WebServices Fundamentals
WebServices FundamentalsWebServices Fundamentals
WebServices Fundamentalsmdfkhan625
 
ASP.NET Unit-4.pdf
ASP.NET Unit-4.pdfASP.NET Unit-4.pdf
ASP.NET Unit-4.pdfabiraman7
 
Domino 6 vs. Exchange 2000
Domino 6 vs. Exchange 2000Domino 6 vs. Exchange 2000
Domino 6 vs. Exchange 2000dominion
 
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 lessDavalen LLC
 

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 programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
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 RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
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 resultsESUG
 
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 6ESUG
 
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 GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
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 ModesESUG
 
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 ReportESUG
 
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
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 TransformationsESUG
 

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

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Dernier (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

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