Web Services Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Web service Authentication Desktop apps Accounting.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Message Passing Vs Distributed Objects
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
Web Services Web Services are the basic fundamental building blocks of invoking features that can be accessed by an application program. The accessibility.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Chapters 14 & 15 Internet Databases. E-Commerce  Bringing new products, services, or ideas to market, supporting and enhancing business operations 
Reliability on Web Services Presented by Pat Chan 17/10/2005.
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.
Distributed components
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Technical Architectures
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Enterprise Resource Planning
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Hands-On Microsoft Windows Server 2003 Networking Chapter Three TCP/IP Architecture.
Lesson 24. Protocols and the OSI Model. Objectives At the end of this Presentation, you will be able to:
9/15/2015© 2008 Raymond P. Jefferis IIILect Application Layer.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
INMIDIO: an INteroperable MIddleware for service Discovery and service InteractiOn Daniele Sacchetti
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
Web Services Presented By : Noam Ben Haim. Agenda Introduction What is a web service Basic Architecture Extended Architecture WS Stacks.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
XML and Web Services (II/2546)
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Protocols COM211 Communications and Networks CDA College Olga Pelekanou
Kemal Baykal Rasim Ismayilov
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Enterprise Network Systems TCP Mark Clements. 3 March 2008ENS 2 Last Week – Client/ Server Cost effective way of providing more computing power High specs.
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
A service Oriented Architecture & Web Service Technology.
Introduction to Servlets
Web Programming Developing Web Applications including Servlets, and Web Services using NetBeans 6.5 with GlassFish.V3.
Networking for Home and Small Businesses – Chapter 6
CHAPTER 3 Architectures for Distributed Systems
Working at a Small-to-Medium Business or ISP – Chapter 7
Networking for Home and Small Businesses – Chapter 6
Working at a Small-to-Medium Business or ISP – Chapter 7
Implementing a service-oriented architecture using SOAP
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Working at a Small-to-Medium Business or ISP – Chapter 7
Distributed System using Web Services
Networking for Home and Small Businesses – Chapter 6
Distributed System using Web Services
Chengyu Sun California State University, Los Angeles
Exceptions and networking
Presentation transcript:

Web Services Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Web service Authentication Desktop apps Accounting A service that : can describe itself Allow others to locate it can be readily invoked by others Mature technologies for : Machine-to-machine communications Service composition Well-known set of standards : SOAP/WS-*, REST, WS-BEPEL, WS-CDL Stocks Weather Databases

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Two worlds Corporate Domotics service disovery File sharing Streaming and VoIP Network supervision … … IMAP POP3 SMTP RTSP MGCP SIP SIMPLE TFTP NNTP FTP UPNP SLP Salutation SNMP SGMP CMIP NTP STUN … … Heterogeneous Application Layer Protocols (ALPs)

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Migration is a Challenge (1) 1 st Approach : Re-Write the Legacy service into WS Needlessly Invasive o Hard to recover the logic perfectly Expensive and time-consuming o Investments made in existing systems are lost Unreliable and restricted o New protocols require new clients WS WIP/WSIP A few attempts : WS , WIP/WSIP, etc.

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Migration is a Challenge (2) 2 nd Approach : Implement a WS Interface to legacy services Leverages best the value locked in legacy services It still works for me I can integrate this service now

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Migration is a Challenge (2) 2 nd Approach : Implement a WS Interface to legacy services Leverages best the value locked in legacy services Approaches differ in Approaches differ in : o Complexity Existing tools are not always appropriate Solutions are often partial (support of different types of legacy services) o The details in the extraction of service functionalities Black box approach (You may not get what you had before ) Grey box approach (Well try to break it down to what we can ) WS wrapper = WS interface to the functionalities of an ALP-based application

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Developing a wrapper (1) Implementation of a gateway between two worlds Need to master the technologies involved Expertise in WS paradigm + knowledge on ALPs How to reproduce the interaction models (sessions, multicast, multiplicity of ALPs, …) Efficiency and safety constraints Understanding of low-level network programming Knowledge on systems programming

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Developing a wrapper (2) WS has characteristics one must take into account SOAP+HTTP lead to complex and verbose messages Functionalities must be extracted accordingly Often unwise to mimic protocol behaviors Message transmission synchrony Messages return values

Our generative language-based approach (1) Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Janus Janus : Description of the operations that the wrapper must support Legacy ALPs specifications Descriptions of the legacy service functionalities High-level descriptions Janus z2z z2z z2z: Protocol specifications (Middleware09)

Our generative language-based approach (1) Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Two automated generation steps Generation of the remaining z2z specifications and WSDL Generation of the wrapper C code Legacy ALPs specifications Descriptions of the legacy service functionalities WS description WS protocols specifications+ WS-ALP translation specification WS message parsers Consistency checks + Generation Consistency checks + Generation Contract-first High-level descriptions Translation engine Generation of C code Janus z2z

Our generative language-based approach (1) Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA A dedicated runtime system Optimized processing of WS requests and ALP messages Legacy ALPs specifications Descriptions of the legacy service functionalities WS description WS protocols specifications+ WS-ALP translation specification WS message parsers Consistency checks + Generation Consistency checks + Generation Contract-first A deployable WS wrapper Translation engine Generation of C code Runtime system High-level descriptions Janus z2z

The Janus DSL Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Need to enforce good practices in WS development Need to enforce good practices in WS development Contract-first strategy Need for a better programming language Type safety Support for stateful WS Expressiveness and Extensibility Hide subtleties of WS paradigm and ALPs Need automation to support wrapper developers Account for the issues in system and network programming

Development Scenario Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA

Case study : WS - IMAP Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA How to describe a service with in Janus?

Janus by the example : Describing a WS Interface for an IMAP server Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA import protocol.imap.*; import utils.List; service ImapServer (String hostname, int port){ /* Janus datatypes */ class Mail { int id; String body; } /* Janus operations */ List pullMails(String hostname, String login,... ){...} serverResponse imapCreateFolder(..., String foldername,...) {...} } Contents of a WS message encapsulating a mail. The WS will be deployed here Which legacy service functionalities are extracted

Janus by the example : Describing a WS Interface for an IMAP server Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA /** Retrieve all unread mail from an IMAP Server*/ List pullMails(String hostname, String login,...) { request req; response resp; Mail m; List mails = new List ();... send req = new Login(login, passwd); resp = req.send(); if (resp.code == error ) throw throw new ServiceFault( [login], authentication failure ); req = new selectFolder(foldername); resp = req.send();... req = new listMessage(); resp = req.send();... ids = List.parse2int (resp.line, ); for (int id :ids) { req = new getMail(id);... m = new Mail(id, resp.line);... } req = new Logout();... return return mails; } The variables for assigning request data Creating the appropriate request according to the protocol description You dont have to manage how the messages are sent in the network If it fails, stop, and send a WS Fault message Get all the mail you can, and log out! Send back the operation results How should the WS wrapper handle a WS Invocation request on the « pullMails » operation?

Janus by the example : Adding features Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA import protocol.rtsp.*; service mediaPlayer(...) { String SESSION_ID;... Media PLAY(PlayRequest preq){... req = new Setup(...); resp=req.send(); SESSION_ID = resp.sessionId;... } Media STOP(StopRequest sreq) {... req = new Teardown(..., SESSION_ID);... }... } import protocol.ssdp.*; multicast service controlPoint(...) {... List SEARCH(SearchRequest sreq){... }... } Global variables are detected as session variables // Use of a WS standard to support session Switch from SOAP/HTTP to SOAP/UDP and rely on WS- Addressing

z2z specifications: Complex translation module code, WS protocol descriptions, WS message parsers z2z specifications: Complex translation module code, WS protocol descriptions, WS message parsers Low-level efficient C code Straightforward code How much code… Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Developer code Generated Code Legacy service + ALPs descriptions z2z specs, parsers, WSDL docs Wrapper source code (LoC) WS wrapper (size in KB) WrapperRuntime System Total IMAP Server wrapper IMAP

How much code… Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Developer code Generated Code Legacy service + ALPs descriptions z2z specs, parsers, WSDL docs Wrapper source code (LoC) WS wrapper (size in KB) WrapperRuntime System Total IMAP Server wrapper IMAP SMTP Server wrapper SMTP

How much code… Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Developer code Generated Code Legacy service + ALPs descriptions z2z specs, parsers, WSDL docs Wrapper source code (LoC) WS wrapper (size in KB) WrapperRuntime System Total IMAP Server wrapper IMAP SMTP Server wrapper SMTP Media Service wrapper RTSP + SDP UPnP service discovery UPnP Around 77% of the final code is provided by the compiler Code size < 130 KB

Do we perform well? Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Janus wrappers vs. hand-made wrappers Janus runtime Tomcat server + general purpose WS stack

Do we perform well? Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Janus wrappers benefits from a fine grained runtime system WS – SMTP WS – IMAP

Concluding remarks Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA How do we improve wrapper development? Accommodating WS developers Programmers are familiar with Java-like syntax Encapsulating subtle and error-prone code WS developer can focus on the service description Benefiting from the DSL approach Important features are provided within the language rather than in a library as in Java Code can be checked for various coherence properties Future work More instanciations Other applications domains & other middleware protocols (RMI, CORBA) Extending Janus runtime system REST support, more WS-* standards

Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Questions, comments?

Service-Oriented Architectures Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Web browser Webmails RSS feeds Desktop apps Databases Accounting Software Software As A Service … … WS interfaces to Query engines Web APIs A service that : can describe itself Allow others to locate it can be readily invoked by others Mature technologies for : Machine-to-machine communications Service composition Well-known set of standards : SOAP/WS-*, REST, WS-BEPEL, WS-CDL

Service-Oriented Architectures Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Web browser Webmails RSS feeds Desktop apps Databases Accounting Software Software As A Service … … WS interfaces to Query engines Web APIs A service that : can describe itself Allow others to locate it can be readily invoked by others Mature technologies for : Machine-to-machine communications Service composition Well-known set of standards : SOAP/WS-*, REST, WS-BEPEL, WS-CDL

z2z : ALP specifications Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA protocol imap{ int tag; attributes { transport = tcp alive / 143; mode = sync; } start { tag = 1; } sending request req { req.tag = tag; tag = tag +1; } … } protocol imap{ int tag; attributes { transport = tcp alive / 143; mode = sync; } start { tag = 1; } sending request req { req.tag = tag; tag = tag +1; } … } message imap{ read { mandatory public fragment code; mandatory public fragment line; } request template response createFolder{ magic = SEP newline = \r\n public fragment folder; private int tag; --SEP create --SEP } … } message imap{ read { mandatory public fragment code; mandatory public fragment line; } request template response createFolder{ magic = SEP newline = \r\n public fragment folder; private int tag; --SEP create --SEP } … } Characterisitcs of the interaction with the network This is what the IMAP parser extracts How to create an IMAP request

Migration is a challenge -Integration with newer systems may also be difficult because new software may use completely different technologies -leveraging the value locked in legacy systems -Too important to scrap -Too expensive to modify -The ability to reuse existing codes/applications in combination with other Web/Internet technologies -Add years to the productive use and protect the investment made in the systems

Our generative language-base approach (2) Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA

Related Work Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Migration by re-engineering [Lux et al., ICWS05] WS [Chou et al., ICWS06] WIP/WSIP Continuity in business processes New protocols require new clients Use of existing infrastructures Investments made in systems are lost On the invasive aspect of the approaches Hard to recover the logic perfectly

Related Work Bridging the Gap between Legacy Services and Web ServicesMiddleware 2010, Bangalore, INDIA Migration by wrapping [Zhang and Yang, ASPEC04] [Canfora et al., CSMR06 and JSS 2008] [Almonaies et al., SOAME10] Finite state automaton to model interaction behaviors Developer may need to adjust to requirements of the new platform Cannot generalize to all systems Selection of the functionalities Need for more design flexibility