Compilation of xslt into dataflow graphs for web service composition
1 / 17

Compilation of XSLT into Dataflow Graphs for Web Service Composition - PowerPoint PPT Presentation

  • Uploaded on

Compilation of XSLT into Dataflow Graphs for Web Service Composition. Peter Kelly Paul Coddington Andrew Wendelborn. Web Service Composition. Composition programs invoke operations on multiple web services to build “higher level” functionality

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Compilation of XSLT into Dataflow Graphs for Web Service Composition' - sacha-conrad

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Compilation of xslt into dataflow graphs for web service composition

Compilation of XSLT into Dataflow Graphs for Web Service Composition

Peter Kelly

Paul Coddington

Andrew Wendelborn

Web service composition
Web Service Composition Composition

  • Composition programs invoke operations on multiple web services to build “higher level” functionality

  • Complex application logic implemented within individual services, not composition program

  • Languages available designed specifically for this purpose

  • Examples: BPEL, SCUFL

Why xslt
Why XSLT? Composition

  • Designed to deal natively with XML data

  • Compatibility with WSDL type system (XML Schema) - no “impedance mismatch”

  • Functional language - can be automatically parallelised

  • Easier to use and more powerful than other WS composition languages

    • Particularly for writing application logic

  • Existing, standardized, popular language

Distributed xslt processing
Distributed XSLT processing Composition

We are targeting two types of distribution:

Within the program

  • Automatically parallelising the code

  • Executing different function calls, loop iterations, etc. across different processors or machines

    Outside of the program

  • Invoking multiple web service operations asynchronously and in parallel

Why distributed processing
Why distributed processing? Composition

  • Better performance

    • Parallelism enables different CPUs or machines to cooperate on the program

    • Reduces execution time

    • Benefit of similar nature to that of MPI, OpenMP

  • Distribution through WS composition

    • Enables parallelism using existing services

    • Division of responsibility - parts of your program leverage others’ servers

Execution model
Execution Model Composition

  • Based on the dataflow concept

  • Program represented as a directed acyclic graph

  • Nodes represent operations, edges represent the flow of data between them

  • Each node can be a built-in operation, user-defined function, or web service operation

Execution model benefits
Execution Model - Benefits Composition

  • Parallelism possible for independent segments of the graph

  • By partitioning the graph, each segment can be assigned to a different processor or machine

  • Similar to the workflow concept used by many graphical WS development tools

    • But our model is more fine-grained

    • Aimed at parallel programming as well as WS composition

    • Text-based source code more appropriate than GUIs for large programs

Execution model1
Execution Model Composition

  • Each XSLT program represented as a collection of graphs

  • A graph corresponds to a piece of code that could be executed more than once

    • e.g. functions, templates, loop bodies

  • These graphs are generated during the compilation phase

Execution model2
Execution Model Composition

  • At runtime, a copy of each graph is created on demand when it needs to be executed

  • Multiple copies may be created in certain cases such as loops

  • These copies consist of activities (nodes), which represent operations that are waiting to execute

  • When an activity receives all of the inputs it needs, it “fires” and produces an output value

  • This output value is passed on to other nodes in the graph

Distributed execution not yet implemented
Distributed Execution Composition(not yet implemented)

  • Assign new activities to different machines when they are created

  • Activities without data dependencies between them can execute in parallel

  • Other language implementations have done this successfully; we are applying it to XSLT

Host 1

Host 2

Compilation process
Compilation Process Composition

  • Constants



Compilation process1
Compilation Process Composition

  • Binary operators - +, *, =, < etc.





left op right

Compilation process2
Compilation Process Composition

  • Conditionals - xsl:if, xsl:chose, XPath if


true branch




false branch

if (condition) then true branch else false branch

Compilation process3
Compilation Process Composition

  • Loops - xsl:for-each





Sub-graph g

<xsl:for-each select=“items”>body</xsl:for-each>

Current progress
Current Progress Composition

  • Prototype implementation

  • Parsing/verification of XSLT code

  • Compilation to dataflow graphs

  • Sequential interpreter

Future work
Future Work Composition

  • Distributed execution

  • Activity scheduling/distribution

  • Instruction clustering

  • Lazy evaluation

  • Streaming processing

  • Formal definition of compilation process

  • JIT compilation

  • Performance analysis and optimisation

Conclusion Composition

  • XSLT is a suitable language for web service composition

  • Dataflow model permits parallel execution of functional code

  • Increasing popularity of web services & XML necessitates more powerful and easy to use tools

    • Especially for web service composition

  • Our compiler demonstrates the viability of dataflow as an approach to executing XSLT