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