Exposing business value

Download Report

Transcript Exposing business value

Exposing Business Value with
VisualWorks Web Services
Kirk D. Blackburn
Qwest Communications, International
[email protected]
Stan Benda
Qwest Communications, International
[email protected]
Robert Michaud
Qwest Communications International
[email protected]
- 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 dataindependent 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
 Solutions will be comprised of web services
 Different than 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)
 XSchema
 Hype (promise to make EAI easy)
 Reality (security, Xactions, workflow)
- Page 7 -
VisualWorks Web Services 8/27/02 Version 1.0
UDDI and SOAP
UDDI Registry
Node
USER
UDDI
SOAP Request
UDDI
SOAP Response
Create, View,
Update, and Delete
registrations
- Page 8 -
XML
HTTP
Server
SOAP
Processor
UDDI
Registry Service
Implementationneutral
VisualWorks Web Services 8/27/02 Version 1.0
Registry APIs (SOAP Messages)
Publishers API
– Save things
Inquiry API
– Find things

find_business

find_service

find_binding

find_tModel
– Get Details about things
- Page 9 -




save_business
save_service
save_binding
save_tModel
– Delete things




get_businessDetail

get_serviceDetail

get_bindingDetail


get_tModelDetail


delete_business
delete_service
delete_binding
delete_tModel
– security…
get_authToken
discard_authToken
VisualWorks Web Services 8/27/02 Version 1.0
VisualWorks UDDI Search Tool
UDDISearchTool open
- 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, WSDL and ST signatures
IDL
Void createTicket(inout TroubleTicket troubleTicket, out ErrorStruct);
WSDL
<operation name=“createTicket” parameterOrder=“target troubleTicket error”>
<input message=“tns:createTicket”/>
<output message=“tns:createTicketResponse”/>
</operation>
Smalltalk
createTicket:aTicket
^(Array with:aTicket with:errorParameter)
- Page 14 -
VisualWorks Web Services 8/27/02 Version 1.0
Problem Description
- Page 15 -
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 16 -
VisualWorks Web Services 8/27/02 Version 1.0
Problem (early 2002)
 Need to expose Ticket Service as Web Service
 Trouble Ticket Service currently CORBA-based
 FindTicketByID (in Int out Ticket)
 CreateTicket(inout TroubleTicket troubleTicket, out
ErrorStruct error);
- Page 17 -
VisualWorks Web Services 8/27/02 Version 1.0
Existing Application
 Trouble Ticket Application (service)
 Promia 3.1 ORB
 VW3.1 Implementation
 Interface defines protocol for creating and finding
trouble tickets
 Server does Queuing and Scheduling
- Page 18 -
VisualWorks Web Services 8/27/02 Version 1.0
Trouble Ticket Service Architecture
TMMT Current Client
Java
IIOP
TT Server
(3.1 Promia ORB)
TT worker
ORB 1
- Page 19 -
TT worker
ORB 2
TT worker
ORB n
VisualWorks Web Services 8/27/02 Version 1.0
Options for Solving Problem
 Build on limited XML support in VisualWorks (Camp ST ‘20).
Need to write a SOAP server.
Drawbacks include:

Time to write
 Use .NET and VisualWorks Com Connect
COMConnect expertise
Hardware (never deployed on Wintel architecture)
Complicated (many pieces)
 Use existing SOAP to CORBA Bridge
 Shareware product
 Drawback = C++
Use VW7 Beta Bits
- Page 20 -
VisualWorks Web Services 8/27/02 Version 1.0
Chose to Use VW7 Beta
 All Smalltalk Solution
(applause!)
 We wanted VW7 experience
 Partner with Cincom in VW7 Beta Test
- Page 21 -
VisualWorks Web Services 8/27/02 Version 1.0
VW7 Support for Web Services
 SOAP Server
 WSDL Client
 UDDI
 XSD
 XMLToObject Framework
 WSDL tool (as of 8/20/02 … this week)
- Page 22 -
VisualWorks Web Services 8/27/02 Version 1.0
VW7 option
Current TMMT Client
SOAP/XML Client
Xml spy, .NET, etc.
ORBs
IIOP
XML
XML over HTTP
Existing Promia ORB
IIOP
UDDI Repository
with WSDL
Small Problem here
VW7 HTTP SOAP Server
With DST ORB
IIOP
TT worker
ORB 1
- Page 23 -
TT worker
ORB 2
TT worker
ORB n
Interesting Work
Here
VisualWorks Web Services 8/27/02 Version 1.0
Where does WSDL come from?
 Had IDL
 Did not have WSDL
 Tools to create WSDL ..
 Java
 .NET

 Was not in VW7 then, however …
 So…
- Page 24 -
VisualWorks Web Services 8/27/02 Version 1.0
Found Cape Connect
 Cape Connect from Cape Clear Software *
 Generates WSDL from IDL !
 Mainly for Java and .NET
Generates WSDL from Classes
 Did an ok job of generating WSDL from our IDL
 Still had to modify the WSDL (namespaces, etc)
* www.capeclear.com
- Page 25 -
VisualWorks Web Services 8/27/02 Version 1.0
Steps to Create a Web Service in VW7
 Create WSDL
 Create Class for the Web Service
 Create Classes for the XSD types
 Write XML to Smalltalk Bindings
WSDLClient creates default bindings
 Then modify binding documents to bind XSD types to
Objects instead of defualt structs
- Page 26 -
VisualWorks Web Services 8/27/02 Version 1.0
VW7 option
Current TMMT Client
SOAP/XML Client
Xml spy, .NET, etc.
ORBs
IIOP
XML
XML over HTTP
Existing Promia ORB
IIOP
UDDI Repository
with WSDL
Small Problem here
VW7 HTTP SOAP Server
With DST ORB
IIOP
TT worker
ORB 1
- Page 27 -
TT worker
ORB 2
TT worker
ORB n
Interesting Work
Here
VisualWorks Web Services 8/27/02 Version 1.0
Performance
 Compare
CORBA calls to
SOAP calls
- Page 28 -
VisualWorks Web Services 8/27/02 Version 1.0
New WSDL Tool
Insert Screen shot here
Describe Typing and metadata
- Page 29 -
VisualWorks Web Services 8/27/02 Version 1.0
Lessons Learned
 WSDL is not easy to write
 WSDL takes time to learn
 SOAP works. Can interop with ORBs
 ObjRefs don’t exist in Web Services
 Interop issues with .NET
 Effort was well-supported by Cincom
- Page 30 -
VisualWorks Web Services 8/27/02 Version 1.0
Summary and Conclusions
 VW7 provides solid support for Web Services
 Support requires more coding than say, .NET
 Interop issues with .NET
 VW7 WS potential to leverage entire Domain
 Selling Web Services still an obstacle (internally)
 Web Services in ST may help overcome
arguments that limited viability of ST in Webbased software architectures
- Page 31 -
VisualWorks Web Services 8/27/02 Version 1.0
End of Presentation
- Page 32 -
VisualWorks Web Services 8/27/02 Version 1.0
- Page 33 -
VisualWorks Web Services 8/27/02 Version 1.0
Exposing Trouble Ticket Through COM
Qwest UDDI
NT/Win2k/XP Server
WSDL/XML
Some Remote Web
Service
Our Microsoft .NET
Web Service
Application
SOAP
(with SOAP and
COM+)
Com to Com. Ideally on the
same machine for
performance
TT Server ORB with
COM Objects
Current TMMT ORB
CORBA/IIOP
CORBA/
IIOP/I3
TT worker
ORB 1
- Page 34 -
TT worker
ORB 2
TT worker
ORB n
VisualWorks Web Services 8/27/02 Version 1.0
- Page 35 -
VisualWorks Web Services 8/27/02 Version 1.0