A Simplified Approach to Web Service Development Peter Kelly Paul Coddington Andrew Wendelborn.

Slides:



Advertisements
Similar presentations
Copyright 2001, ActiveState. XSLT and Scripting Languages or…XSLT: what is everyone so hot and bothered about?
Advertisements

Chapter 19 – Service-oriented Architecture
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call Design issues Implementation RPC programming
Remote Object Invocation Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Distributed, parallel web service orchestration using XSLT Peter Kelly Paul Coddington Andrew Wendelborn.
Distributed components
CSC-8530: Distributed Systems Christopher Salembier 28-Oct-2009.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Apache Axis: A Set of Java Tools for SOAP Web Services.
1 WS Technologies II API Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT- Institutions.
.NET Mobile Application Development Remote Procedure Call.
Java Server Pages (JSP) Presented by: Ananth Prasad & Alex Ivanov May 10, 2001.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
ITM352 PHP and Dynamic Web Pages: Server Side Processing.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
WSDL Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Object and component “wiring” standards This presentation reviews the features of software component wiring and the emerging world of XML-based standards.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
NReduce: A Distributed Virtual Machine for Parallel Graph Reduction Peter Kelly Paul Coddington Andrew Wendelborn Distributed and High Performance Computing.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
The New Zealand Institute for Plant & Food Research Limited Matthew Laurenson Web Services: Introduction & Design Considerations.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
©Xiaoying Gao, Peter Andreae First Java Program COMP 102 #2 2014T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
Remote Procedure Call Andrew Whitaker CSE451. Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { Price.
CSCI 6962: Server-side Design and Programming Web Services.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
First Java Program COMP 102 #2 2015T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Copyright © PASS Consulting Corp., Miami 2001 XX/1 XML Application Server.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
INT-5: Integrate over the Web with OpenEdge® Web Services
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and Web Services JSP and Web Services 18 th March 2005.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
XML and Web Services (II/2546)
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
Kemal Baykal Rasim Ismayilov
.NET Mobile Application Development XML Web Services.
Web Services using PHP. web services (recap) Web services today are frequently just Application Programming Interfaces (API) or web APIs that can be accessed.
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Compilation of XSLT into Dataflow Graphs for Web Service Composition Peter Kelly Paul Coddington Andrew Wendelborn.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Product Training Program
Applications Active Web Documents Active Web Documents.
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
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.
Interpreter Style Examples
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Inventory of Distributed Computing Concepts
Introduction to Web Services
Presentation transcript:

A Simplified Approach to Web Service Development Peter Kelly Paul Coddington Andrew Wendelborn

Development of Web Services Most popular languages used today really aren’t suited to network programming Why? Designed originally for standalone machines Remote method invocation treated as a “special case” and not built in to the language implementation Data structures don’t translate well to pass-by-value semantics used by web services Programmers have to deal with network errors themselves Little in the way of abstraction

Object-oriented languages Examples: Java, C++, C# Features Powerful languages for implementing application logic Widespread usage – today’s dominant programming model Drawbacks Pass by reference not supported in WS (pass by value only) XML represents data as trees, not graphs Stateful objects like threads, file handles can’t be sent to WS Member field representation differs between OO and XML Need proxy classes - RPC not built in to language Many complex steps required to deploy a WS (esp. in Java)

Scripting Languages Examples: Perl, PHP, Python, JavaScript Features Simple and easy to use Rapid development cycle No need for compilation Proxy objects simpler to use, can be generated at runtime Drawbacks No explicit typing makes automatic WSDL generation impossible Poor or no support for concurrency

Web service composition languages Examples: BPEL Features Designed specifically for WS development Type system (XML) matches that of WS interfaces Many easy to use graphical tools available Drawbacks Very limited programming model, can only write simple programs XML-based syntax verbose and awkward to code in directly

WS Composition – desirable features Static typing All data serializable as XML Rapid development cycle (like Perl/PHP) WSDL files auto-generated - w/o programmer intervention Same semantics for local & remote function calls Fault tolerance & load balancing And most importantly… Network transparency – It’s there but you can’t see it – Programmer should not have to deal with low-level details such as WSDL syntax

Our proposed approach XSLT as a web service composition language Specifically designed for dealing with XML data – Which all web services use for exchanging data – Type system is XML Schema – no mismatch between service interfaces and implementation language Functional language – side-effect free functions allow for automatic parallelisation and transparent fault tolerance Mature language – around 6 years old, now in V2 (almost) W3C standard, sizeable existing developer community Currently being implemented in our project, “GridXSLT”

Accessing other web services All user-defined and extension functions in XSLT are associated with a namespace Our implementation recognizes namespaces corresponding to WSDL service definitions Function calls in these namespaces are mapped to web service calls These are handled internally by the language implementation – proxy classes are unnecessary <xsl:transform xmlns:foo=“wsdl:

Exposing XSLT programs as web services The GridXSLT engine acts as a web server Simply place an XSLT program within the document root, just like a Perl script or PHP file Clients can access the WSDL definition as follows: WSDL file is auto-generated from the function signatures No type system conversion necessary; XML Schema used in XSLT is simply copied to WSDL definition No compilation, manual WSDL generation, jar packaging, XML configuration files, or deployment scripts necessary – just copy the file to the server!

Automatic parallelisation a(1)b(2)c(3) Host 1 Host 2Host 3 Host 4 f f(a(1), b(2), c(3))

Fault tolerance Host 3 fails after executing c(3) but before transmitting result Function is re-executed on Host 2 As c(3) causes no side-effects, this is safe to do a(1) b(2) c(3) Host 3 Host 4 f

Condensed language syntax WSDL, BPEL, XSLT all use an XML based syntax Very verbose to work with - 2x-10x the amount of code required vs. “standard” language syntax e.g. Java & C Writing large programs in XSLT can be very tedious We support an alternative language syntax Same semantics, but expressed more concisely foo(a=12,b=3);

Compare: hand-written WSDL <definitions xmlns=" xmlns:tns="urn:matrix" xmlns:soap=" xmlns:xsd=" targetNamespace="urn:matrix">

Compare: hand-written WSDL

Compare: XSLT w/condensed syntax type matrix { { int col[3]; } row[3]; }; matrix mmul(matrix $a, matrix $b) {... }

Conclusion Advantages over other WS development languages Type system match Automatic & transparent WSDL generation – without semantic inconsistencies Rapid service deployment – just copy a file (or edit in-place) No need to generate proxy classes Support for complex application logic Transparent fault tolerance & load balancing Advantages over other XSLT implementations Automatic parallelisation Support for web services (both client and server) Condensed language syntax

Questions/comments?