Modeling Web Services with UML



Similar documents
Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

Web Services Development In a Java Environment

4. Concepts and Technologies for B2C, B2E, and B2B Transaction

IBM Rational Rapid Developer Components & Web Services

Research on the Model of Enterprise Application Integration with Web Services

Introduction into Web Services (WS)

WEB SERVICES. Revised 9/29/2015

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

Web Services Technologies

Developing Java Web Services

Service Oriented Architecture

Introduction to Web Services

Fundamentals of Web Programming a

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC

Creating Web Services in NetBeans

Middleware and the Internet. Example: Shopping Service. What could be possible? Service Oriented Architecture

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Developing Java Web Services to Expose the WorkTrak RMI Server to the Web and XML-Based Clients

Consuming and Producing Web Services with Web Tools. Christopher M. Judd. President/Consultant Judd Solutions, LLC

Web services with WebSphere Studio: Deploy and publish

Introduction to UDDI: Important Features and Functional Concepts

Agents and Web Services

Building Web Services with XML Service Utility Library (XSUL)

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

UDDI Executive White Paper November 14, 2001

Middleware and the Internet

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Introduction to Testing Webservices

How To Create A C++ Web Service

Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

WhitePaper. Web services: Benefits, challenges, and a unique, visual development solution

Automating the DEVS Modeling and Simulation Interface to Web Services

Web Services in Oracle Fusion Middleware. Raghu Kodali Consulting Product Manager & SOA Evangelist Oracle Fusion Middleware Oracle USA

Web Services. Mark Volkmann Partner Object Computing, Inc. What Are Web Services?

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

ISM/ISC Middleware Module

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Internationalization and Web Services

WEB SERVICES. Definition: Web service is a programmable application component that s accessible through standard Web protocols.

Consuming, Providing & Publishing WS

Concept, implementation and performance testing of a mobile Web Service provider for Smart Phones

WEB SERVICES SECURITY

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

Building Web Services with Apache Axis2

Chapter 6 Registering and Discovering. Web Serv vices: Web services

Web Services Implementation: The Beta Phase of EPA Network Nodes

Web Services and Service Oriented Architectures. Thomas Soddemann, RZG

Service-Oriented Architectures

Java Web Services Training

WebSphere Portal Server and Web Services Whitepaper

Web services can convert your existing applications into web applications.

Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

AquaLogic Service Bus

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

1 What Are Web Services?

Introduction. Tom Dinkelaker, Ericsson Guido Salvaneschi, Mira Mezini, TUD

rpafi/jl open source Apache Axis2 Web Services 2nd Edition using Apache Axis2 Deepal Jayasinghe Create secure, reliable, and easy-to-use web services

What is a Web service?

Introduction to Web services architecture

Lesson 4 Web Service Interface Definition (Part I)

IBM Rational Web Developer for WebSphere Software Version 6.0

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Oracle Service Bus. User Guide 10g Release 3 Maintenance Pack 1 (10.3.1) June 2009

BUSINESS PROCESS AND EBXML - WEB SERVICES INTEGRATION PLATFORM, REQUIREMENTS, ARCHITECTURES, SECURITY

WSDL Example (Interface) WSDL Example (Implementation) Universal Description, Discovery and Integration. UDDI Usage

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services Skilltop Technology Limited. All rights reserved.

NetBeans IDE Field Guide

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

Web Services Technologies: State of the Art

Service Oriented Computing: SOAP, WSDL and UDDI. Dr. Cristian Mateos Diaz ( ISISTAN - CONICET

JVA-561. Developing SOAP Web Services in Java

SCA-based Enterprise Service Bus WebSphere ESB

Web Services Developer s Guide

e-science Technologies in Synchrotron Radiation Beamline - Remote Access and Automation (A Case Study for High Throughput Protein Crystallography)

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

David Pilling Director of Applications and Development

SOA Myth or Reality??

Strategic Information Security. Attacking and Defending Web Services

VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE

Virtual Credit Card Processing System

A Web Services Created Online Training and Assessment Scheme

Cloud Computing & Service Oriented Architecture An Overview

Distributed Embedded Systems

1 What Are Web Services?

WCF WINDOWS COMMUNICATION FOUNDATION OVERVIEW OF WCF, MICROSOFTS UNIFIED COMMUNICATION FRAMEWORK FOR.NET APPLICATIONS

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

SW : : Introduction to Web Services with IBM Rational Application Developer V6

Enterprise Federation through Web Services based Contracts Architecture

EBXML FEATURE SOAP WSDL. written by Una Kearns UDDI. Content Management & Web Services. 6 November

Transcription:

Modeling Web Services with UML OMG Web Services Workshop 2002 Chris Armstrong ATC Enterprises, Inc. 1751 West County Road B, Suite 310 Roseville, MN 55113 651.633.1818 www.atcenterprises.com

Agenda What are Web Services? What is SOAP? What is UDDI? What is WSDL? What does all of this have to do with each other? UML modeling for SOAP, WSDL, and UDDI

What is a Web Service? Represents a specific business function Exposed by a company Usually through an Internet connection Provided to another company or software application to consume Web services are becoming the programmatic backbone for electronic commerce UDDI Technical White Paper uddi.org

What are Web Service Applications? Hyper-applications that are Designed Assembled Executed dynamically at run-time using web services Especially in a B2B environment Use emerging industry standards Extensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL) Universal Description, Discovery, and Integration (UDDI)

Web Services Business Model Publish Web Service Service Provider Register Web Service Find Web Service Service Broker Service Requester Cons ume Web Service

Fundamental Web Service Concepts Service Publish Find Bind Standard UDDI UDDI, WSDL, DISCO WSDL, SOAP

Realization of Web Services Business Model Publish Web Service Register Web Service Find Web Service Consume Web Service UDDI WSDL SOAP This is not complete only shows relationships to industry standards

Web Services Architectural Mechanisms Web Discovery Services Web Description Services Web Wire Services

Web Wire Services <<analysis mechanism>> Inter Process Communication <<analysis mechanism>> Reliability <<analysis mechanism>> Security <<analysis mechanism>> Routing

IPC Wire Services <<des ign mechanism>> Remote Procedure Call <<implementation mechanism>> SOAP <<analysis mechanism>> Inter Process Communic ation <<design mechanism>> Data Transport <<implementation mechanism>> HTTP <<design mechanism>> Data Encoding <<implementation mechanism>> XML

SOAP Wire Services SOAP HTTP XML

Web Description Services <<design mechanism>> Business Process Orchestration <<implementation mechanism>> BizTalk <<analysis mechanism>> Workflow Automation <<analysis mechanism>> Applicat ion Integration <<design mechanism>> Message Sequencing <<design mechanism>> Service Capability Configuration <<design mechanism>> Service Description <<implementation mechanism>> WSFL <<implementation mechansim>> UDDI <<implementation mechanism>> WSDL

Web Discovery Services <<design mechanism>> Directory Service <<analy sis mechanism>> Disc overy Services <<implementation mechansim>> UDDI <<design mechanism>> Inspection Service

What is SOAP? Simple Object Access Protocol (SOAP) Standard for invoking services across the web Uses HTTP for transport Uses XML for data encoding Extensible

Benefits of SOAP Can invoke components residing in many architectures DCOM CORBA EJB Perl!Heterogeneous glue Cross-platform, cross-architecture integration

Benefits of SOAP Uses industry standards HTTP XML Works through firewalls! Platform-independent Can be invoked from any platform Browser Desktop application Server component

Web Application Extensions (WAE) for UML Applet <<Applic ation>> Applic ation Client Page <<COM Object>> COM Object <<EJB Object>> EJB Object Form Server Page <<Session>> Session

Standard HTTP Form POST Form Client Page <<submit>> <<build>> Client Page Renderer

SOAP Request from Browser - Structure Form Client Page <<interface>> ISOA PPro xy - newrequest() : SOAP Request - postrequest(soap Request) : SOAP Response + invokemethod() <<submit>> <<build>> XM L P ars er Client Page Renderer SOAP Response (from SOAP) SOAP Request (from S OA P )

SOAP Request from Browser - Behavior : Client Page : ISOAPProxy : SOAP Request 1: invokemethod( ) : XM L Parser : ISOAPTranslator 2: newrequest( ) 3: new 4: encode 5: postrequest(soap Request) 6: receive(soap Request)

SOAP Request on Server - Structure SOAP Response (from SOAP) <<interface>> ISOAPTranslator + receiverequest(soap Request) - sendresponse() : SOAP Respo... - locatecomponent() - buildresponse() <<interface>> IComponentInterface + method() (from SOAP) SOAP Request (from SOAP) XML Parser + decode() + encode()

SOAP Request on Server - Behavior : ISOAPProxy : ISOAPTranslator 1: receiverequest(soap Request) 2: decode( ) : XML Parser : IComponentInterface 3: locatecomponent( ) 4: method( ) 5: buildresponse( ) 6: sendresponse( )

SOAP Process View <<process>> Client P rocess <<process>> HTTP Server <<process>> EJB S erver <<process>> CORBA Server <<process>> SOAP Server <<process>> COM S erver

SOAP Deployment View Client Machine Firewall Browser Process W eb S erver Application Server Web Server Process Translator Process Component Process

What is WSDL? Web Services Description Language (WSDL) Way to describe web services Where do they reside locally What are they called How are external operations bound to internal operations How data is encoded How operation is invoked WSDL is similar to an interface in a component architecture, but also includes information on Protocol bindings Deployment

What is WSDL? History Started as Service Description Language (SDL) Part of early SOAP efforts Turned into Service Contract Language (SCL) Currently called Web Services Description Language (WSDL) In Apache SOAP, use XML Deployment Descriptors Register with ServiceManagerClient in org.apache.soap.server package WSDL extensions defined HTTP GET HTTP POST SOAP

WSDL Generation Development tool vendors provide WSDL generation tools Microsoft VisualStudio 6.0 Uses Web Services Meta Language (WSML) for COM binding on server side Microsoft VisualStudio.NET IBM Web Services Tool Kit (WSTK) Also provide tools to generate client-side proxies

WSDL Schema High-Level WSDL schema documentation 0..1 definitions targetnamespace 0..1 types documentat ion 0..n message name documentation porttype name 0..n binding name 0..n

WSDL Schema Types types documentation schema att ributeformdefault element FormDefault targetnamespace 0..n 0..n element name minoc curs maxoccurs nillable sequence 0..1 +type 0..1 0..n complextype

WSDL Schema Messages message name documentation 0..n part name element name minoccurs maxoccurs nillable 0..1 +type 0..1 complextype

WSDL Schema Port Types and Bindings porttype name 1..n operation name documentation 1 binding name +type 0..1 +input +output 0..1 +fault 0..1 0..1 message name documentation complextype

UML for WSDL Visually model key portions of WSDL definition Other details can be modeled using tagged values Use one class for overall service description Use <<wsdl service>> stereotype For each element, use <<element>> stereotype on attributes For elements that are complextypes, model as separate class with <<element>> stereotype For each message, use <<message>> stereotype on operations

UML for WSDL Use one class for each porttype Use <<wsdl porttype>> stereotype Attach to service with aggregation For each operation, use an operation Use one class for each binding Use <<wsdl binding>> stereotype Attach to service with aggregation with <<port>> stereotype For each operation, use an operation

Sample UML for WSDL High-Level <<wsdl service>> ZIPCodeResolver <<port>> <<wsdl porttype>> ZIPCodeResolverHTTPGet <<port>> <<wsdl binding>> ZIPCodeResolverSOAP <<wsdl porttype>> ZIPCodeResolverHTTPPost <<port>> <<wsdl binding>> ZIPCodeResolverHTTPPost <<wsdl porttype>> ZIPCodeResolverSOAP <<wsdl binding>> ZIPCodeResolverHTTPGet

Sample UML for WSDL Detailed <<wsdl service>> ZIPCodeRes olver <<element>> FullZipCode <<element>> FullZipCodeResponse <<element>> CorrectedAddressHTML <<element>> CorrectedAddressHTMLResponse <<message>> FullZipCodeHt tpgetin() <<message>> FullZipCodeHt tpgetout() <<message>> FullZipCodeHt tppost In() <<message>> FullZipCodeHt tppost Out() <<message>> FullZipCodeSoapIn() <<message>> FullZipCodeSoapOut() <<element>> USPSAddress <<element>> Street <<element>> City <<element>> State <<element>> ShortZIP <<element>> FullZIP <<port>> <<wsdl binding>> ZIPCodeResolverSOAP FullZipCode() ShortZipCode() CorrectedAddressHTML() CorrectedAddressXML() VersionInfo() <<wsdl porttype>> ZIPCodeResolverSOAP FullZipCode() ShortZipCode() CorrectedAddressHTML() CorrectedAddressXML() VersionInfo()

Sample UML for WSDL Context <<wsdl service>> ZIPCodeResolver <<Int erface>> IZIPCodeResolver FullZipCode() ShortZipCode() CorrectedAddress() CorrectedAddress() VersionInfo() <<derive>> ZIPCodeResolver ZIPCodeResolver Proxy

What is UDDI? Universal Description, Discovery and Integration (UDDI) A specification for distributed Web-based information registries of Web services Collaborative initiative IBM Microsoft Ariba Create a global, platform-independent, open framework to rapidly accelerate the global adoption of B2B e-commerce Enable businesses to discover each other Define how they interact over the Internet Share information in a global registry

What is UDDI? Similar to DNS for domain names Except works for web services instead Business service registry Logically centralized Physically distributed API defined in an XML Schema

UDDI Logical Architecture businessentity businessservice bindingtemplate tmodel

UDDI Leaders IBM UDDI4J Microsoft UDDI for.net SDK for Visual Studio 6.0

UDDI4J Overview Open source implementation of UDDI for Java by IBM Provides an API to interact with a UDDI registry Generates and parses messages sent to and received from a UDDI server Requirements Apache SOAP 2.1 or later JDK 1.2.2 or later Ant

UDDI4J Key Components client request util datatype response UDDIException UDDIElement

UDDI4J Key Components uddi.client package Especially UDDIProxy class Methods map to the UDDI Programmer s API Specification uddi.datatype package Contains core UDDI datatypes to send and receive data from a UDDI server uddi.request package Used internally by UDDIProxy for sending messages to a UDDI server uddi.response package Used internally by UDDIProxy for receiving messages from a UDDI server

Sample UDDI Usage Inquire Behavior : Get Business Name : UDDIProxy : BusinessList : BusinessInfos BusinessInfo : Vector : BusinessInfo 1: UDDIProxy( ) 2: setinquiryurl(url : String) 3: find_business(name : String, findqualifiers : FindQualifiers, maxrows : int) 4: getbusinessinfos( ) 5: getbusinessinfovector( ) 6: elementat(arg0 : int) 7: getnamestring( )

Sample UDDI Usage Inquire Structure UDDIProxy UDDIProxy() find_business () setinquiryurl() Get Business Name BusinessList inquiryurl URL businessinfos Business Infos getbusinessinfos() Vector businessinfo getbusinessinfovector() BusinessInfo element At() getnamestring()

Apache SOAP Overview Main Packages soap (from apache) rpc server util messaging providers transport encoding

Apache SOAP Overview Main Classes Envelope Constants Header -header -at trhandler -body Body Utils Fault -at trhandler -attrhandler AttributeHandler -attrhandler SOAPException

SOAP Usage by UDDI Part 1 : Get Business Name : UDDIProxy : FindBusiness 1: find_business(name : String, findqualifiers : FindQualifiers, maxrows : int) 2: FindBusiness( ) 3: setname(s : String) 4: setfindqualifiers(s : FindQualifiers) 5: setmaxrows(s : int) 6: send(el : UDDIElement, inquiry : boolean)

SOAP Usage by UDDI Part 2 : UDDIProxy sendenv : Envelope 1: send(el : Element, inquiry : boolean) sendbody : Body bodyentry : Vector 2: Envelope( ) 3: Body () 4: Vector( ) 5: add(arg0 : Object) Add passed Element

SOAP Usage by UDDI Part 3 : UDDIProxy sendbody : Body 1: setbodyentries(bodyentries : Vector) soapmessage : Message response : Element 3: get transport 2: Message( ) 4: setsoaptransport(st : SOAPTransport) 5: Element()

SOAP Usage by UDDI Part 4 : UDDIProxy soapmessage : Message respenv : Envelope respbody : Body respbodyentries : Vector 1: send(url : URL, actionuri : String, env : Envelope) 2: receiveenvelope( ) 3: getbody( ) 4: getbodyentries( ) 5: firstelement( )

SOAP Usage by UDDI Structure Message Message() receiveenvelope() send() st <<Interface>> SOAPTransport Get Business Name transport UDDIProxy find_business() send() Element Element() FindBusiness FindBusiness() setfindqualifiers() setmaxrows() setname() Envelope Envelope() -body Vector Vector() add() first Element () Body Body() getbodyent ries() setbodyentries()

SOAP Message Sending Part 1 SOAP Client : Message st : SOAPHTTPConnection 1: send(url : URL, actionuri : String, env : Envelope) 2: SOAPHTTPConnection() 3: s end(sendto : URL, action : String, headers : Hashtable, env : Envelope, smr : SOAPMappingRegistry, ctx : SOAPContext)

SOAP Message Sending Part 2 : Message st : SOA PHTTPConnec tion payloadsw : StringWriter env : Envelope 1: send(sendto : URL, action : String, headers : Hashtable, env : Envelope, smr : SOAPMappingRegistry, ctx : SOA PContext) 2: StringW riter( ) 3: marshall(sink : Writer, xjmr : XMLJavaMappingRegistry, ctx : SOAPContext)

SOAP Message Sending Part 3 st : SOAPHTTPConnection 1: Hashtable( ) headers : Hashtable Constants.HEADER _SOAP_ACTION 2: put(arg0 : Object, arg1 : Object) 3: get username 4: get password Constants.HEADER _AUTHORIZATION 5: put(arg0 : Object, arg1 : Object)

SOAP Message Sending Part 4 st : SOA PHTTPConnect ion msg : TransportMessage : HTTPUtils 1: TransportMessage(envelope : String, ctx : SOAPContext, headers : Hashtable) 2: save( ) 3: post(url : URL, request : Transport Message, timeout : int, httpproxyhost : S tring, httpproxyport : int)

SOAP Message Sending - Structure SOAP Client StringWriter Message StringWriter() <<Interface>> SOAPTransport st send() SOA PContext send() TransportMessage TransportMessage() save() SOAPHTTPConnection password : String username : String SOAPHTTPConnection() send() URL SOA PMappingRegistry Envelope marshall() Hashtable Hashtable() put() HTTPUtils post()

Web Resources UDDI www.uddi.org uddi.microsoft.com www.ibm.com/services/uddi SOAP www.soap.org www.soaprpc.com www.soapware.org www.soapclient.com www.soap-wrc.com Web Services www.webservices.org www-106.ibm.com/developerworks/webservices www.xmlmodeling.com