Analysis and Selection of Web Service Technologies

Similar documents
Introduction to Web Services & SOA

Introduction to Web Services & SOA

Web Services: Introduction and overview. Outline

Available online at ScienceDirect. Procedia Computer Science 104 (2017 ) ICTE 2016, December 2016, Riga, Latvia

SOAP Specification. 3 major parts. SOAP envelope specification. Data encoding rules. RPC conventions

Sistemi ICT per il Business Networking

Göttingen, Introduction to Web Services

Distribution and web services

Web Services in Cincom VisualWorks. WHITE PAPER Cincom In-depth Analysis and Review

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

ABSTRACT. Web Service Atomic Transaction (WS-AT) is a standard used to implement distributed

Transport (http) Encoding (XML) Standard Structure (SOAP) Description (WSDL) Discovery (UDDI - platform independent XML)

Realisation of SOA using Web Services. Adomas Svirskas Vilnius University December 2005

CmpE 596: Service-Oriented Computing

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web

This presentation is a primer on WSDL Bindings. It s part of our series to help prepare you for creating BPEL projects. We recommend you review this

WWW, REST, and Web Services

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95

Web services. In plain words, they provide a good mechanism to connect heterogeneous systems with WSDL, XML, SOAP etc.

Chapter 8 Web Services Objectives

Services Web Nabil Abdennadher

Introduction to Web Services

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications

Architectural patterns and models for implementing CSPA

(9A05803) WEB SERVICES (ELECTIVE - III)

XML Web Services Basics

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

Web Applications. Web Services problems solved. Web services problems solved. Web services - definition. W3C web services standard

WSDL Interface of Services for Distributed Search in Databases

Service Oriented Architectures (ENCS 691K Chapter 2)

Web Services. GC: Web Services-I Rajeev Wankar

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

Web service design. every Web service can be associated with:

REST Easy with Infrared360

Module 12 Web Service Model

Software Service Engineering

Introduzione ai Web Services

Programming Web Services in Java

Web Services Development for IBM WebSphere Application Server V7.0

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Web-Based Systems. INF 5040 autumn lecturer: Roman Vitenberg

WSDL. Stop a while to read about me!

World-Wide Wide Web. Netprog HTTP

Introduction to XML 3/14/12. Introduction to XML

On the Creation of Distributed Simulation Web- Services in CD++

Chapter 9 Web Services

Service Oriented Architectures Visions Concepts Reality

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91

Lecture Telecooperation. D. Fensel Leopold-Franzens- Universität Innsbruck

SOAP. Jasmien De Ridder and Tania Van Denhouwe

SOAP / WSDL INTRODUCTION TO SOAP, WSDL AND UDDI, THE COMBO FOR BIG WEB SERVICES SOAP - WSDL - UDDI. PETER R. EGLI peteregli.net. peteregli.

International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 6, Nov-Dec 2015

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018

Adaptation of Web service architecture in distributed embedded systems

SOAP Introduction. SOAP is a simple XML-based protocol to let applications exchange information over HTTP.

Web Services Overview

RESTful Web service composition with BPEL for REST

CHAPTER 2 LITERATURE SURVEY 2. FIRST LOOK ON WEB SERVICES Web Services

Berner Fachhochschule. Technik und Informatik. Web Services. An Introduction. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel

PowerBuilder User Regional Seminar Barcelona, Spain. Hotel NH Sants Barcelona DISCLAIMER

WEB Service Interoperability Analysis and Introduction of a Design Method to reduce non Interoperability Effects

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

TPF Users Group Fall 2007

SOAP (Simple Object Access Protocol)

ReST 2000 Roy Fielding W3C

Introduction to Web Service

Sriram Krishnan, Ph.D. NBCR Summer Institute, August 2010

Web services. Patryk Czarnik. XML and Applications 2016/2017 Lecture

Web Services: Trends & Evolution

Developing Mobile Application Framework By Using RESTFul Web Service with JSON Parser

Service oriented Middleware for IoT

XML for Java Developers G Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti

Web Services. Moving towards Service Oriented Architectures. Rensselaer CSCI 4220 Network Programming

Introduction to Web Services

2.2 What are Web Services?

Introduction to Web Services

SOAP Encoding. Reference: Articles at

HTTP, REST Web Services

Differentiating Parameters for Selecting Simple Object Access Protocol (SOAP) vs. Representational State Transfer (REST) Based Architecture

INF5750. RESTful Web Services

WebServices the New Era

REST A brief introduction

Service Oriented Architecture. 9. Web Services Darmstadt University of Applied Sciences, Department of Computer Science Dr. Markus Voß (Accso GmbH)

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

UNITE 2003 Technology Conference

REST - Representational State Transfer

Australian Journal of Basic and Applied Sciences

5.3 Using WSDL to generate client stubs

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

Lesson 14 SOA with REST (Part I)

The Design of The Integration System for OTOP Products Data Using Web Services Technology, Thailand

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Implementation Method of OGC Web Map Service Based on Web Service. Anthony Wenjue Jia *,Yumin Chen *,Jianya Gong * *Wuhan University

International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 4, Jul-Aug 2015

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

Web Services and Planning or How to Render an Ontology of Random Buzzwords Useful? Presented by Zvi Topol. May 12 th, 2004

Glossary of Exchange Network Related Groups

Transcription:

Environment. Technology. Resources, Rezekne, Latvia Proceedings of the 11 th International Scientific and Practical Conference. Volume II, 18-23 Analysis and Selection of Web Service Technologies Viktorija Boltunova 1, Natalya Prokofyeva 2 RTU student 1, RTU asoc. prof, dr.sc.ing. 2, Riga Technical University, Faculty of Computer Science and Information Technology. Address: Kalku iela 1, Riga, LV-1658, Latvia. Abstract. The main objective of this article is to provide insights on how applications can interact with each other on the Web using Web services. The article is devoted to Web services and their basics, as well as to technologies such as REST-compliant (RESTful) and arbitrary (XML, SOAP, WSDL, UDDI, XML-RPC) that are used to implement them. Keywords: SOAP, Web service, REST. I. INTRODUCTION The Internet has become a significant factor in business and public life. With the use of Internet technologies many problems can be solved. However, the Internet combines many different platforms and the information is saved in the various data sources. Linking of heterogeneous data communications as well as providing a method which allows obtaining it in a convenient form for further processing is an actual problem. The concept of Web services is designed to solve this problem of heterogeneous systems based on open standards association and integration [1], [2]. Web service is a service that is available on the Internet through a special program. For example, the most common services are search engines, web hosting (services that enables people and organizations to make their websites accessible via. II. MAIN IDEA A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. We can identify two major classes of Web services: REST-compliant Web services, in which the primary purpose of the service is to manipulate XML representations of Web resources using a uniform set of "stateless" operations; and Arbitrary Web services, in which the service may expose an arbitrary set of operations [3]. the World Wide Web), e-mail, an information storage (files, bookmarks), calendar, etc. An important feature of the Internet service is that the service is not dependent on the Internet service provider, browser or computer it can work with data anywhere in the world where there is Internet access. Web services are based on open standards and protocols (SOAP, XML-RPC, REST, etc.). Web service is a way of how applications can interact with each other in the Web. Applications can use different platforms and be written in different programming languages. Thanks to the fact that Web services are developed to ensure machine collaboration in the Web (Machine-to- Machine approach) each service interface can be described using a machine-readable format Fig. 1 shows the overall Web service architecture. There can be three instances identified that interact within a Web service: service requestor; service provider; service broker. The service provider sends the WSDL file to the UDDI (Universal Description Discovery & Integration). UDDI is an open source project that enables organizations to publish a Web service description (WSDL) so that it could be found by other organizations and integrated into their system. Service requester contacts the UDDI to find out what data provider he needs and then contacts the service provider via SOAP protocol. The service provider validates the service request and sends structured data in an XML file, using the SOAP protocol. This XML file would be validated again by the service requester using an XSD file. ISSN 1691-5402 Rezekne Academy of Technologies, Rezekne 2017 http://dx.doi.org/10.17770/ etr2017vol2.2540

Viktorija Boltunova, et al./ Environment. Technology. Resources, (2017), Volume II, 18-23 Fig. 1 Web service architecture. III. WEB SERVICE TECHNOLOGIES Web service architecture includes a lot of layers and related technologies. There are many ways how to visualize these technologies, as there are many ways how to build and use Web services. Error! Reference source not found. represents one of the technology families. XML, WSDL, SOAP, XML- RPC and UDDI technologies will be considered more detailed. in different software tools. XML-document is a plain text file in which data elements are created with the help of special markers, which define the sequence and nesting of the document structure and its content. The main advantage of XML documents is that with a relatively simple way of creating and processing (plain text can be edited by any test processor and processed by standard XML parser) they allow to create structured information, which is well understandable to computers. XML does not do anything by itself. The XML format was created to structure, store and transport information. Below is a note from John to Eve, which was saved as XML. <note> <to>eve</to> <from>john</from> <heading>question</heading> <body>do you know what is XML?</body> </note> The note contains information about sender and recipient. It also has a title and a message body. But still this XML document does not do anything. XML is only information that is "wrapped" in tags. Developer should write software to send, receive, store and display the message which is shown in Fig. 3 [4]. Fig. 3 Example of a note. Fig. 2 Web service architecture stack. A. XML XML stands for extensible Markup Language which was recommended by the World Wide Web Consortium (W3C) on February 10, 1998. The XML specification describes XML documents. XML was designed as a formal language with a simple syntax that programs and humans can use to create and handle documents that will mostly be used on the Internet. The language is called extensible because it does not define the markup used in the documents: the developer is free to create the markup in accordance with the needs of a problem domain, being limited only by the syntax rules. A combination of simple formal syntax, convenience to the users and scalability, as well as being based on the Unicode encoding which is applied to represent the content of the documents, led to widespread use of XML, as well as using many other derivative specialized XML-based languages B. WSDL WSDL stands for Web Services Description Language which was recommended by the World Wide Web Consortium (W3C) on June 26, 2007. This standard was developed by IBM, Microsoft and webmethods. Each of these three companies had their own approach in developing of a standard for describing Web-services: IBM created NASSL, Microsoft developed SCL and webmethods company came up with WIDL. WSDL is based on XML and describes Web services as endpoint nodes or port groups. Abstract port and message definitions are separated from specific implementations. This allows the use of these definitions again elsewhere. The port is defined by associating a binding to a specific Web address. WSDL is often used in combination with SOAP and XML Schema to provide Web service availability on the Internet. When connecting to a Web service, a client program can read the WSDL file and determine which operations are available. Each WSDL document contains several items which belong to one of the following categories as shown in Fig. 4 (category names as in WSDL 1.1 and 19

Environment. Technology. Resources, Rezekne, Latvia Proceedings of the 11 th International Scientific and Practical Conference. Volume II, 18-23 WSDL 2.0 specifications are given in the parentheses) [5], [6]: Service (Service / Service) - service can be considered a system function that is available with the help of web protocols. Port (Port/Endpoint) - the port defines a web service address. Typically, it is a string containing a HTTP URL address. Binding (Binding / Binding) - defines the interface and SOAP binding type (Remote Procedure Call/Document). Binding section also defines operations. Port Type (porttype/interface) - describes the Web service operations that can be executed and messages for operation execution. sending and receiving messages. The main advantage of SOAP is that it is platform independent so it provides a way to communicate between applications running on different operating systems, with different technologies and programming languages. SOAP can be used with any application layer protocol: SMTP, FTP, HTTP, HTTPS, and others. SOAP specification defines a messaging framework that includes the following components [7], [8]: SOAP processing model - describes the rules that define processing of a SOAP message. SOAP extensibility model - defines SOAP features and modules. SOAP underlying protocol binding - a framework which describes exchange of SOAP messages between SOAP nodes. SOAP Message Construct - describes SOAP message structure. SOAP messages are using XML format which makes them easy to transfer, read and process. Fig. 5 shows that SOAP message consists of an envelope which is basically a container. The envelope contains a header and a body. The header contains information about how the recipient should handle received SOAP message. SOAP message body part contains information which is necessary for instruction execution. Fig. 4 WSDL 1.1 and WSDL 2.0 schematic diagram of concepts. The main structure of a WSDL document looks like this: <definitions> <types> data type definitions </types> <message> definition of the data being communicated </message> <porttype> set of operations </porttype> <binding> protocol and data format specification </binding> </definitions> C. SOAP SOAP stands for Simple Object Access Protocol which was recommended by the World Wide Web Consortium (W3C) on June 24, 2003 (version 1.2). SOAP is an application communication protocol which is based on XML. SOAP is a format for Fig. 5 SOAP message structure. SOAP message skeleton looks like this: HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: 299 <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soapenvelope"> <soap:header> </soap:header> <soap:body> </soap:body> </soap:envelope> D. XML-RPC XML-RPC stands for Extensible Markup Language Remote Procedure Call - remote procedure call standard/protocol which uses XML to encode its messages and HTTP as a transport 20

Viktorija Boltunova, et al./ Environment. Technology. Resources, (2017), Volume II, 18-23 mechanism. Fig. 6 shows that XML-RPC is a bridge between service requestor and service provider. In spite of the fact that XML-RPC is the ancestor of SOAP, it differs with its outstanding ease of use. XML-RPC as well as any other interfaces of Remote Procedure Call (RPC) defines a set of standard data types and commands that the programmer can use to access the functionality of a different program located on another computer in the network. XML- RPC is not intended to solve global tasks as SOAP but it is widely used in Web development. Fig. 6 XML-RPC conception. Table I represents some of the characteristics that define differences between XML-RPC and SOAP. Data shows that data types in both protocols are the same. But in XML-RPC it is not possible to specify names for arrays, structures (all structures and arrays are "anonymous") and developer-defined encoding. In light of current pace of development of technologies and standards, especially the Web, the point - the ease of development and practical application is becoming more important. Table I Comparison of SOAP and XML-RPC main characteristics Characteristics XML-RPC SOAP Scalar data types + + Structures + + Arrays + + Named arrays and - + structures Developer defined - + encoding Developer-defined - + data types Detailing of errors + + The ease of development and practical application + - Most programmers and specifications developers agree that: if there is a need for a system that is dealing with complex logic, transferring large complex data structures, if there is a need for complete information about the client and request should contain instructions about its processing it is preferable to use SOAP; if data are relatively simple and applications must run on multiple platforms and languages, if performance is important and system logic does not require complicated commands - it is preferable to use XML-RPC [9]. E. UDDI UDDI stands for Universal Description Discovery & Integration. UDDI is a cross-platform software based on XML. It is an open source project sponsored by OASIS, which allows organizations to publish descriptions of Web services (WSDL) for them to be searched by other organizations and integrated into their systems. It also determines how services or applications communicate over the Internet. UDDI was originally proposed as a primary Web service standard. It is designed for surveying by SOAP messages and for providing access to Web Service Description Language (WSDL) documents that describes bindings of protocols and message formats required to interact with Web services listed in its directory. In Fig. 7 is shown how a business publishes services to the UDDI registry. Then a client finds the service in the registry and receives service binding information. Finally, the client uses received information to invoke the service. A business or a company can register three types of information into a UDDI registry. Fig. 7 UDDI registry. Registration in the UDDI consists of following components: white pages - address, contact and known identifiers; yellow pages - industrial categorization based on standard taxonomies; green pages - technical information about the services available in the business. White pages provide information about the service provider, for example a company name or description of services (probably in several languages). Using this information, it is possible to find a service that some information is already known about. Yellow pages contain the classification of a business based on standard taxonomies. Since a business can provide a number of services there may be several yellow pages (each describing a service) related to a single white page (giving general information about the business). Green pages are used to describe the method of gaining access to Web services and information about linked services. Part of the information is 21

Environment. Technology. Resources, Rezekne, Latvia Proceedings of the 11 th International Scientific and Practical Conference. Volume II, 18-23 associated with Web services - such as address of the service and its parameters as well as links to interface specifications. Other information is not directly related to the Web service - it includes e- mail, FTP, CORBA, and service phone numbers. Since a Web service can have multiple bindings (as defined in its WSDL description) it may have multiple green pages because each binding will need access to various pages [10]. F. RESTful REST stands for Representational State Transfer - architectural style of interaction between distributed application components in the network. REST is an alternative to RPC. The term RESTful is used for Web services that are based on REST architecture. REST is not a standard by itself, majority of RESTful implementations use standards such as HTTP, URL, JSON and XML. Although World Wide Web is based on this concept - the term REST was introduced only in 2000 by Roy Fielding who is one of the HTTP protocol founders. REST offers HTTP-methods for developers to use. This basic REST design principle establishes an unambiguous equivalence between such operations as create, read, update and delete (CRUD) and HTTP-methods. According to this equivalence: to create a new resource on the server is used POST; to access a resource is used GET; to update a existing resource or create a new resource on the server is used PUT; to delete a resource is used DELETE [11]. Fig. 8 shows that REST is based on client-server interactions. The client application makes a request that is translated to a RESTful HTTP request. This request is started like any other HTTP transaction from a client to a server. The server processes the request and responds accordingly. IV. RELATED WORK In our earlier work, we proposed various PHP programming framework [12] (CakePHP2, CodeIgniter, Symfony2, Yii, Phalcon) popularity overview and comparison using various criteria. Based on this study obtained data two frameworks were selected for deeper analysis - Symfony2 and PhalconPHP. There was offered a description of the architecture and main features of selected frameworks (routing, template engine, etc.). During framework comparison a performance test was developed with a goal to determine performance and effectiveness of frameworks for the same task. For performance testing a Ticket Reserving System cashier list section was selected. Tests were performed using ab.exe (Apache Benchmark) tool that comes along with the Apache Web server. Based on the comparison results, recommendations were made which allows Web developers to select a framework for the creation of a real Web project. Although both Web service technology classes can be used for Web systems development, paper authors decided to develop Web site improved version using the REST architectural style. REST architecture choice is based on the fact that the protocol separates the user interface from the server and data storage, which improves interface portability to other types of platforms and increases the scalability of the project. Also the key aspect of REST architecture is that it's stateless (without status saving). This feature makes RESTful architecture secure and helps to improve the scalability. Firstly, in order to improve the developed website capabilities, it was decided to use a Web service that will provide access to information about currency exchange rates. Currently the feature to book tickets is implemented on the website and registered users can see the prices for each performance. However, if a user from different country registers on the website, he will be more comfortable to look at the prices in his national currency. The Web service currencylayer.com was used to provide the information about currency exchange rates to the website. This Web service allows to use real-time REST API and retrieve the exchange rate history of the worlds 168 currencies and precious metals in the JSON format that is compatible with any application. Secondly, in order to improve the developed website capabilities, it was decided to use a Web service that will provide access to the information about the weather. Such opportunity will allow theatre visitors to prepare for unexpected weather changes. In order to implement such a feature, the Web service owm.io/weather-api was used, which aims to collect data on weather conditions around the world and make them more open and accessible to everyone. Fig. 8 Architecture of RESTful interactions. 22

Viktorija Boltunova, et al./ Environment. Technology. Resources, (2017), Volume II, 18-23 V. CONCLUSIONS AND FUTURE WORK The paper provides information about Web service basics and main technologies. In the paper REST-compliant (RESTful) and arbitrary (XML, SOAP, WSDL, UDDI, XML-RPC) Web service technologies that can be used in development of a Web system are described, also the description is provided about two Web services - currencylayer.com and owm.io/weather-api that were used to supplement developed website capabilities, and provide access to information on exchange rates and weather. The selected Web services are based on a REST architectural style, which nowadays is used more and more often in web-based technologies. To continue the research, it is necessary to improve the Web system [12] which was developed using Symfony2 and PhalconPHP frameworks further by implementing Web services described in this paper to apply theoretical knowledge in practice. REFERENCES [1] C. Pautasso, O. Zimmermann and Leymann F., RESTful Web Services vs. Big Web Services: Making the Right Architectural Decision, Beijing, 2008. [2] E. Cavanaugh, Web services: Benefits, challenges, and a unique, visual development solution, Altova, 2006. [3] Web Services Architecture. [Online]. Available: https://www.w3.org/tr/2004/note-ws-arch- 20040211/#relwwwrest. [Accessed: October 3, 2016]. [4] Introduction to XML. [Online]. Available: http://www.w3schools.com/xml/xml_whatis.asp. [Accessed: October 3, 2016]. [5] Web Services Description Language (WSDL) 1.1. [Online]. Available: http://www.w3.org/tr/wsdl. [Accessed: October 3, 2016]. [6] Web Services Description Language (WSDL) Version 2.0 Part 0: Primer. [Online]. Available: http://www.w3.org/ TR/wsdl20-primer. [Accessed: October 3, 2016]. [7] Simple Object Access Protocol (SOAP) 1.1. [Online]. Available: https://www.w3.org/tr/2000/note-soap- 20000508. [Accessed: October 3, 2016]. [8] XML SOAP. [Online]. Available: http://www.w3schools. com/xml/xml_soap.asp. [Accessed: October 3, 2016]. [9] Лозовюк A., XML-RPC: вызов процедур посредством XML. Издательский Дом "КОМИЗДАТ". [Online]. Available: http://citforum.ru/internet/xml/xml_rpc. [Accessed: October 3, 2016]. [10] UDDI Overview. [Online]. Available: https://www.tuto rialspoint.com/uddi/uddi_overview.htm. [Accessed: October 8, 2016]. [11] RESTful Web Services Introduction. [Online]. Available: https://www.tutorialspoint.com/restful/restful_quick_guide. htm. [Accessed: October 3, 2016]. [12] Prokofjeva N., Boltunova V., Analysis and Practical Application of PHP Frameworks in Development of Web Information Systems. Procedia Computer Science, 2017, Vol.104, pp.51-56. ISSN 1877-0509. Available: https://doi.org/10.1016/j.procs.2017.01.059 23