Introduction to Web Services

Slides:



Advertisements
Similar presentations
Web Service Architecture
Advertisements

Siebel Web Services Siebel Web Services March, From
Overview of Web Services
31242/32549 Advanced Internet Programming Advanced Java Programming
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
1 Understanding Web Services Presented By: Woodas Lai.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
WEB SERVICES DAVIDE ZERBINO.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
1 Core Web Services Standards. 2 (Simplified) Web Service Architecture Registry 1. Service Registers PUBLISH 3. Client calls Service BIND 2. Client Request.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
Web Server Administration Web Services XML SOAP. Overview What are web services and what do they do? What is XML? What is SOAP? How are they all connected?
XML – An Introduction Structured Data Mark-up James McCartney CSCE 590, Cluster and Grid Computing.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
Semantic Web Technologies Research Topics and Projects discussion Brief Readings Discussion Research Presentations.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Enterprise Computing: Web Services
XML and Web Services (II/2546)
Kemal Baykal Rasim Ismayilov
1/30/20161 Introduction to Web Services Bina Ramamurthy
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Web Services. XML Namespaces, Schemas XML processing. Week 2.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Introduction to Web Services
Sabri Kızanlık Ural Emekçi
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
A Web Services Journey on the .NET Bus
Chapter 5 Remote Procedure Call
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Introduction to Web Services
Web Service Interview/VIVA
Unit – 5 JAVA Web Services
Introduction to Web Services
Distributed web based systems
Web Services.
Overview of Web Services
Implementing a service-oriented architecture using SOAP
Introduction to Web Services and SOA
Web Server Administration
Inventory of Distributed Computing Concepts and Web services
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Inventory of Distributed Computing Concepts
Introduction to Web Services
WEB SERVICES DAVIDE ZERBINO.
Introduction to Web Services
Providing Web-based Access and Integrating with XML
Inter-process Communication Models
Distributed Systems through Web Services
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
WebServices Using JAX-RPC
Introduction to Web Services
Introduction to Service-Oriented Architectures (SOA)
Web Services and Application Development using Services API
Distributed System using Web Services
Introduction to Web Services
WEB SERVICES From Chapter 19, Distributed Systems
Introduction to Web Services and SOA
Distributed System using Web Services
Presentation transcript:

Introduction to Web Services Bina Ramamurthy bina@cse.buffalo.edu This work is partially supported by NSF-DUE-CCLI-A&I Grant 0311473 12/10/2018

Topics for Discussion Webservices and Service Oriented Architectures (SOA) XML (eXtensible Markup Language) SOAP (Simple Object Access Protocol) WS (Web Services) Summary 12/10/2018

Web Services and SOA Web Services is a technology that allows for applications to communicate with each other in a standard format. A Web Service exposes an interface that can be accessed through XML messaging. A Web service uses XML based protocol to describe an operation or the data exchange with another web service. Ex: SOAP A group of web services collaborating accomplish the tasks of an application. The architecture of such an application is called Service-Oriented Architecture (SOA). 12/10/2018

SOA in Real World: Report in InfoWorld, May 2, 2005 Issue 18 http://www.infoworld.com/article/05/05/02/18FEsoabt_1.html?WEB%20SERVICES State of Massachusetts uses SOA to deliver healthcare services. With HTML web application it had no control of look and feel and handling many hospitals. With SOAP based messaging they can easily handle different systems, billing systems, medical records systems etc. Use Microsoft-based systems. Countrywide financial simplifies lending: IBM Websphere based SOA is used to deliver services. Guardian Life Insurance uses SOA: IBM websphere based services. Uses EJB for business logic. British Telecom uses combination of BEA systems and Microsoft’s Connected Services Framework. Billing backend and operational support for the organization are web services. Legacy systems are enabled as web services. Amazon.com provides WS API for developers to implement applications leveraging their architecture and data. 12/10/2018

XML XML is a markup language, developed by W3C (World Wide Web Consortium), mainly to overcome the limitations of HTML. But it took a life of its own and has become a very popular part of distributed systems. We will examine its definition, associated specifications (DTD, XSLT etc.), Java APIs available to process XML, protocols and services based on XML, and the role XML plays in a distributed computing environment. 12/10/2018

First Look at XML It has no predefined tags. It is stricter. Such as in HTML Domains may specify their own set of standard tags It is stricter. Most html document have errors and the browser have to built to take care of these. On the other hand XML has a strict syntax. There is a notion of validity and A notion of well-formed. 12/10/2018

An Example: Memo See the two documents enclosed: one in html and the other in XML formats. Observe the meaningful tags in XML. Compare it to a class definition: it looks like a class with data definitions and accessors (tags). 12/10/2018

Memo.html vs memo.xml <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <title>memo.html</title> </head> <body> <h3>Hello World</h3> Bina<br> CS 220 Advanced Java Programming Students <br> Wake up everyone<br> BR<br> <br> </body> </html> <?xml version="1.0" ?>   <!DOCTYPE memo (View Source for full doctype...)> - <memo>   <header>Hello World</header>   <from>bina</from>   <to>CS220 Advanced Java Programming Students</to>   <body>Wake up everyone</body>   <sign>br</sign>   </memo> 12/10/2018

Memo Class Memo Header From To Body Para[] Link Signature 12/10/2018

XML document Content XML documents are composed of markup and contents Some of markup tags: Element Attributes Entity References Comments Processing instructions CDATA sections 12/10/2018

Elements Elements are the most common form of markup. Delimited by angle brackets, most elements identify the nature of the content they surround. Example: <allen><quote>Goodnight, Gracie.</quote></allen> Some elements may be empty, as seen above, in which case they have no content. If an element is not empty,it begins with a start-tag, <element>, and ends with an end-tag, </element>. Example:<applause/> 12/10/2018

Attributes Attributes are name-value pairs that occur inside start-tags after the element name. For example, <div class="preface"> is a div element with the attribute class having the value preface. In XML, all attribute values must be quoted. 12/10/2018

Entities In XML, entities are used to represent these special characters. Entities are also used to refer to often repeated or varying text and to include the content of external files. Example: &amp to represent & &US to represent United States XML also has a set of predefined entities: &quot, &amp 12/10/2018

Comments Comments begin with <!-- and end with -->. Comments can contain any data except the literal string --. You can place comments between markup anywhere in your document. Example: <!– loosely inspired by the vcard3.0 --> 12/10/2018

Processing Instructions (PI) Processing instructions (PIs) are an escape hatch to provide information to an application. Like comments, they are not textually part of the XML document, but the XML processor is required to pass them to an application. Processing instructions have the form: <?name pidata?> Example: <?xml-stylesheet href=“simple-ie5.xsl” type=“text/xsl”?> 12/10/2018

CDATA In a document, a CDATA section instructs the parser to ignore most markup characters. <?xml version=“1.0”?> <example> <[CDATA[ <?xml verion=“1.0”?> <entry> …. </entry>]]> </example> 12/10/2018

XML Processing Models XML Input Processing Business Logic Handling XML Output Processing WEB EXTRACT Business Logic XML input XML output 12/10/2018

XML input Processing Processing and validating the source document Recognizing/searching for relevant information based on its location or its tagging in the source document Extracting relevant information once it has been located Mapping/binding retrieved information to business objects 12/10/2018

XML Processing Technologies SAX, Simple API for XML DOM, Document Object Model API from W3C XSLT, XML Style Sheets Language Transformations from W3C XPath, the XML Path Language from W3C Other third party APIs. 12/10/2018

Apache Ant Tool Ant tool is an XML based build tool. Ant requires its config files to be specified in XML format. Config file build.xml has general commands for ant tool. Ant tool is used for build, deploy, and run java applications. See these tutorial for more information on ant: Tutorial1: http://www.ii.uni.wroc.pl/~nthx/java/ant.html Tutorial2: http://www.iseran.com/Java/ant/tutorial/ant_tutorial.html Ant Book Chapter: http://www.oreilly.com/catalog/anttdg/chapter/ch01.pdf 12/10/2018

XML to SOAP Simple xml can facilitate sending message to receive information. The message could be operations to be performed on objects. Simple Object Access Protocol (SOAP) 12/10/2018

SOAP Request <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productId>827635</productId> </getProductDetails> </soap:Body> </soap:Envelope> 12/10/2018

SOAP Reply <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productId>827635</productId> <description>3-Piece luggage set. Black Polyester.</description> <price>96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope> 12/10/2018

SOAPWeb Services (WS) Literature surveyed: 1. IBM’s alphaworks site: http://www-106.ibm.com/developerworks/webservices/ 2. http://www-3.ibm.com/software/solutions/webservices/pdf/WSCA.pdf 3. O’Reilly book on Web Services: Kim Topley’s Webservices in a Nutshell: http://www.oreilly.com/catalog/javawsian/index.html This link has a sample chapter (SAAJ) and zip of all examples in the book. 4. http://www.w3.org/DesignIssues/WebServices.html 12/10/2018

Web Services Suite of Protocols A suite of protocols define the Web Services Technology. These are used to describe, publish, discover, deliver and interact with services. The information about the protocols is from IBM’s developerworks. 12/10/2018

WS Suite of Protocols Messaging protocol Simple Object Access Protocol (SOAP) encodes messages so that they can be delivered over the transport protocols HTTP, SMTP or IIOP. Web Services Definition Language (WSDL) is used to specify the service details such as name, methods and their parameters, and the location of the service. This facilitates the registering and discovery of the service. For services to locate each other, the Universal Description, Discovery and Integration (UDDI) protocol defines a registry and associated protocols for locating and accessing services. 12/10/2018

WS Suite of Protocols (contd.) The WS-Transaction and WS-Coordination protocols work together to handle distributed transactions. The Business Process Execution Language for Web Services (BPEL4WS) defines workflow operations. WS-Security is a family of protocols that cover authentication, authorization, federated security, secure communications, and delivery. WS-Policy is another group of protocols that define the policy rules behind how and when Web services can interact with each other. WS-Trust defines how trust models work between different services. 12/10/2018

WS Stack Service Flow WSFL Service Discovery UDDI Quality of Service Security Management Quality of Service Service Discovery UDDI Service Publication UDDI Service Description WSDL XML-based Messaging SOAP HTTP, FTP, MQ Email, IIOP Network 12/10/2018

WS Interoperability Infrastructure Service Description WSDL XML Messaging SOAP Network HTTP Do you see any platform or language dependencies here? 12/10/2018

JAX-RPC JAX-RPC: Java API for XML-based Remote Procedure Call (RPC). An API for building Web Services and Web Services clients. Some important concepts in JAX-RPC are: Type-mapping system (WSDL to Java) Service endpoint Exception handling Service endpoint context Message handlers Service clients and service context SOAP with attachments Runtime services JAX-RPC client invocation models 12/10/2018

JAX-RPC (contd.) JAX-RPC is designed to provide a simple way for developers to create Web services server and Web services client. Based on remote procedure calls; so the programming model is familiar to Java developers who have used RMI or CORBA. Major difference between RMI and JAX-RPC is that messages exchanged are encoded in XML based protocol and can be carried over a variety of transport protocols such as HTTP, SMTP etc. You can use JAX-RPC without having to be an expert in XML, SOAP, or HTTP. 12/10/2018

The JAX-RPC Programming Model Services, ports and bindings JAX-RPC web service servers and clients JAX-RPC service creation JAX-RPC client and server programming environments Stubs and ties Client invocation modes Static and dynamic stubs and invocation 12/10/2018

Services, ports and bindings Service endpoint interface or service endpoint that defines one or more operations that the web service offers. Access to an endpoint is provided by binding it to a protocol stack through a port. A port has an address that the client can use to communicate with the service and invoke its operations. An endpoint can be bound to different ports each offering a different suite of protocols for interaction. 12/10/2018

Endpoint, Port and binding Web service endpoint Port1 port2 port3 Web services Client SOAP1.1 Over http SOAP 1.1 over https Other. Ex: ebXML over SMTP https 1.1 transport soap1.1 messages 12/10/2018

WS Development Lifecycle Build: Definition of service interface Definition of service implementation New services Existing application into WS Composing a WS out of other WS and applications Source compiled and Stubs and Ties are generated. Deploy: Publication of the service interface and service implementation to service registry or service requestor. Deployment of executables in an execution environment. 12/10/2018

WS Development Lifecycle (contd.) Run: A WS is available for invocation. Requestor can perform find and bind operation. Manage: on going management and administration for security, availability, performance, QoS, and business processes. 12/10/2018

Service Oriented Architectures Lets look at some success stories. Amazon.com has is data collection available web services developers. See these URLs: Amazon.com E-Commerce Service (ECS) Conceptual Model       ECS Usage/Query Scenarios            Types of data available through ECS (and not available) Sample applications (some of them are cool) Programming and API for making (SOAP) requests 12/10/2018

Summary We looked at foundational concepts supporting web services: XML, SOAP, WSDL and Web Services standards. We also illustrated the concepts using sample programs. Best way to get started is try out WS tutorials by yourself. 12/10/2018