Distributed, parallel web service orchestration using XSLT Peter Kelly Paul Coddington Andrew Wendelborn.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

PHP I.
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Scale Up Access to your 4GL Application using Web Services
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)
Technical Architectures
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Business Process Orchestration
Apache Axis: A Set of Java Tools for SOAP Web Services.
Presented By: Ayelet Birnbaum Yael Kazaz Supervisor: Viktor Kulikov 07/05/12.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
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.
SOA, BPM, BPEL, jBPM.
JSP Standard Tag Library
A Simplified Approach to Web Service Development Peter Kelly Paul Coddington Andrew Wendelborn.
XForms: A case study Rajiv Shivane & Pavitar Singh.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
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.
CONTENTS Arrival Characters Definition Merits Chararterstics Workflows Wfms Workflow engine Workflows levels & categories.
INTERPRETING IMPERATIVE PROGRAMMING LAGUAGES IN EXTENSIBLE STYLESHEET LANGUAGE TRANSFORMATIONS (XSLT) Authors: Ruhsan Onder Assoc.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Architecting Web Services Unit – II – PART - III.
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.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Eurostat Expression language (EL) in Eurostat SDMX - TWG Luxembourg, 5 Jun 2013 Adam Wroński.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
SEE-GRID-SCI The SEE-GRID-SCI initiative is co-funded by the European Commission under the FP7 Research Infrastructures contract no.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE User Forum, Manchester, 10 May ‘07 Nicola Venuti
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Enabling Grids for E-sciencE Astronomical data processing workflows on a service-oriented Grid architecture Valeria Manna INAF - SI The.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer Science Faculty of Information Technology.
ODS – Introduction to Web Services and BPEL Vakgroep Informatietechnologie Web Services & BPEL Design of Distributed Software.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
1 WSDL Web Services Description Language. 2 Goals of WSDL Describes the formats and protocols of a Web Service in a standard way –The operations the service.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
Compilation of XSLT into Dataflow Graphs for Web Service Composition Peter Kelly Paul Coddington Andrew Wendelborn.
INFSO-RI JRA2 Test Management Tools Eva Takacs (4D SOFT) ETICS 2 Final Review Brussels - 11 May 2010.
SOAP, Web Service, WSDL Week 14 Web site:
SE 548 Process Modelling WEB SERVICE ORCHESTRATION AND COMPOSITION ÖZLEM BİLGİÇ.
In this session, you will learn to: Understand managed code Create managed database objects Define the Hypertext Transfer Protocol endpoints Implement.
The Java API for XML-Based Web Services. A Web Service example in Java SOAP-awareServlet (e.g. Apache Axis2) SOAP-awareServlet Any class processing the.
1 Seminar on SOA Seminar on Service Oriented Architecture BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz.
Business Process Execution Language (BPEL) Pınar Tekin.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Deployment of Flows Loretta Auvil
Architecting Web Services
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Architecting Web Services
Distributed web based systems
Service-centric Software Engineering
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Presentation transcript:

Distributed, parallel web service orchestration using XSLT Peter Kelly Paul Coddington Andrew Wendelborn

Clusters vs. Grids What is the difference?

Clusters vs. Grids What is the difference? Conceptually… none!

Programming models Clusters – Parallel programming  Typically use message passing libraries e.g. MPI  Goal is to parallelise program to gain improved performance  Work to be done is split up into different tasks which communicate with each other Grids – Service composition  Service Oriented Architecture (SOA) – collection of machines on a grid each providing a set of services  High-level programs are written by composing the functionality of different services together  Multiple service calls can be in process at one time - parallelism

Service Composition Approaches Mainstream languages – Java, C++ etc.  Imperative programming style. Parallelism using threads  Written as text-based source code  Very powerful BPEL (Business Process Execution Language)  Imperative language. Parallelism using “flow” statements.  Limited expressiveness; cannot develop complex application logic  XML-based syntax is verbose and awkward to work with Workflow languages  Based on a graph notation  Constructed using a graphical tool  Parallelism is implicit in the model  Difficult to write large/complex programs in

Our goals We wanted to develop a language implementation that:  Allows web services to be easily accessed, developed, and composed  Supports the full range of abstraction/granularity – can develop lightweight service compositions or large scale, data intensive, high performance parallel programs  Allows complex workflows to be developed using various control constructs  Provides automatic parallelisation of code  Integrates well with the web services technology stack  Is suitable for use on both clusters and grids, and in fact makes no distinction between them

XSLT Instead of creating a new language, we chose to develop a new implementation of an existing one – XSLT. XSLT (Extensible Stylesheet Language Transformation)  Designed for processing XML data  Uses XML schema as its type system; fits in well with format used for web service request and response types  Functional language – side effect free, single assignment, which lends itself to automatic parallelisation  Sizable existing developer community  W3C standard 

Dataflow computation  We achieve parallelism by using the dataflow model of computation to execute programs  Before execution, the XSLT source code is parsed and compiled into a dataflow graph which represents the operations and flow of data within the program  A graph consists of nodes corresponding to operations, and edges connecting the operations together  When a node receives input tokens on each of its edges, it fires, producing a result which is sent to subsequent nodes in the graph 3 4 * + 5

Distributed execution There are two types of graph nodes Built-in operations  Correspond to internal functions within the interpreter  Can only be executed on a machine running the GridXSLT engine  Examples: add/subtract, substring, if, map, create element Web service calls  Correspond to operations provided by a web service  Actual call is executed on the remote machine  Host running the GridXSLT engine acts as a “client” to invoke the service  Associate a namespace with a WSDL URL to designate certain function calls as web service requests

Distributed execution Service Execution host Service host

Other features Exposing XSLT programs as web services  Similar to use of Perl or PHP for web applications  Just place the file on the server; it will take care of on-the-fly interface generation (WSDL) and argument/result serialization  XML Schema types defined within the XSLT program are included in the WSDL; no type system mismatch present with other languages  Much simpler than Java; no need for complex procedure for packaging/deploying services Condensed language syntax  Like BPEL, XSLT uses an XML-based syntax; awkward and cumbersome to write code in  We provide an alternative syntax which maintains the same language features but in a more concise manner

Language syntax float calcprice(float cost, float tax, string customer) { if ($customer = ’exempt’) $cost; else $cost * (1 + $tax); } Standard XSLT Condensed Syntax (“XSLiTe”)

Service composition - example function doSearch(var $searchterms) { namespace ri "reverse_index.wsdl"; namespace fi "forward_index.wsdl"; var $matches = for $t in $searchterms return ri:lookup($t); var $distinct = distinct-values($matches); %resultset { #size(count($distinct)); for-each ($distinct) { %result { #uri(.); fi:getmetadata(.); %abstract { substring(fi:getcontent(.), 0,1000); } } loop

Service composition - example 0fi:getcontent substring 1000 fi:getmetadata mkelem(abstract) mkelem(result) mkelem(resultset) mkattr(size) count distinct-values searchterms ri:lookup loop

Project status – work to date Most of the infrastructure for the language support is in place  Parsing of XML Schema, XSLT, and XPath/XSLiTe code  Compilation of XSLT into dataflow graphs  Dataflow execution engine (sequential implementation only)  Most major language constructs  Many built-in functions and operators  Regression testing and development tracking systems  Basic HTTP support  Capable of executing simple XSLT programs Main aspects still remaining to be implemented (still in the design phase)  Distributed execution  Web services support These both rely on a working implementation of the language, which is what most of the effort has gone into so far. The compiler and execution model have been designed around the dataflow model to enable this to be extended for distributed execution.

Conclusion  GridXSLT is an implementation of XSLT which provides support for distributed execution and web services development  Additional functionality done at implementation level – no changes to language required  Lack of side effects allows automatic parallelisation  We have also provided the additional option of using a condensed version of the language syntax, to ease the task of writing large programs  Supports development of applications for clusters and grids For further info:  