Download presentation
Presentation is loading. Please wait.
Published byBenjamin Young Modified over 8 years ago
1
www.objectweb.org 4th Annual ObjectWeb Conference January 17-19,2005 – Lyon, France ESB illustration 3: XML pipelines for transformation and presentation By Erik Bruchez Tutorial 5 : Integrating Enterprise Data & Applications with ESB
2
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D2 About Orbeon è Founded in 1999 by two architects from Symantec’s Internet tools division è Open Source Products Orbeon Presentation Server (OPS) Orbeon Studio XML Server (under development) Soon on the ObjectWeb Forge! è Services Consulting Training Support è For more information visit: http://www.orbeon.com
3
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D3 About Myself è Involved with Java since 1995 è Worked at Symantec on VisualCafe è Co-founded Orbeon in 1999 è Contributed to large enterprise Web applications using J2EE and XML technologies è Favorite domains Web applications architecture Online publishing
4
www.objectweb.org Presentation Server Overview
5
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D5 Service Oriented Architecture
6
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D6 Service Oriented Architecture (cont.) è ESB Reliable “pipe” for XML messages between services Routing, transformation, monitoring, security, etc. è BPEL Server Business Process Orchestration Long-running, reliably-running processes
7
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D7 Service Oriented Architecture (cont.) è XML is at the center! Document-oriented Web Services More and more data standards (OASIS)
8
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D8 Goal of Presentation Server è Create Web applications that: Capture XML (typically with XForms) Present XML (typically with XSLT and XML pipelines) Communicate with XML Services è It is the ESB’s user interface! End-user XML services Capture InvokeReceive Present
9
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D9 Goal of XML Server è Create XML services that: Validate XML data Aggregate XML data Transform XML data è It is a container for simple XML services!
10
www.objectweb.org Scenarios
11
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D11 Scenario 1: Capture è Web form presented to user è Form submitted è Data validated è Data sent to an XML service if valid
12
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D12 Scenario 2: Presentation è Data retrieved from XML service è Data formatted (HTML table, PDF, etc.) è Data presented to the user
13
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D13 Scenario 3: Transformation è Data provided to XML service è Service converts data to legacy XML format (with XSLT) è Data returned by XML service
14
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D14 Common Points è Data inputs and outputs è Sequences of steps Transformation Validation Etc. è Conditions, etc. è No rocket science but…
15
www.objectweb.org Why XML Pipeline Languages
16
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D16 XML Processing Today è Existing Specifications (XML, XSLT, Schema, etc.) Implementations (Xerces, Saxon, etc.) è But No component API No easy way of combining components
17
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D17 Example: Cascaded Transforms
18
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D18 XML Processing Today (cont.) è Programming Languages (Java, Python, etc.) General-purpose (facilities for XML added later) Complex APIs like JAXP, with a plethora of other APIs like SAX, DOM, JDOM Missing APIs like validation API, etc. No declarative programming You reinvent the wheel! è Business Process Execution Languages More Web Services-oriented (no API) Higher granularity Not mature yet
19
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D19 Solution è Use the right tool for the job: XML Pipeline Language!
20
www.objectweb.org XPL
21
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D21 Brief History è Practical need recognized in 2002 è No suitable specification or implementation è First implementation by fall 2002 è Since then, constantly improved within Presentation Server (then OXF)
22
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D22 XML Components è Also called XML processors è Can have any number of XML inputs and outputs è Examples Transformation (XSLT) Validation (W3C Schema) Database access è API Set of interfaces Processors implement those interfaces
23
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D23 XPL è XML Pipeline Language è Simple, declarative, implementation-agnostic language è Connects XML processors following pipeline metaphor è Fills a void left by existing standards and APIs (JAXP, etc.)
24
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D24 XPL Features è XML-based syntax (like XSLT) è Main features Non-linear pipelines Conditionals (p:choose) Loops (p:for-each) Validation (W3C Schema and Relax NG) Aggregation and XPointer support Sub-pipelines è Execution model Declarative approach Based on lazy evaluation
25
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D25 Reference Implementation è Open source (LGPL) è Ships with Presentation Server (ObjectWeb) è SAX-based è Implements caching strategies è Use cases Command line Embedded in your Java applications Part of Presentation Server è Works on any Java 1.4.2 platform!
26
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D26 XPL Basics è A pipeline is defined in a.xpl file è A pipeline may have inputs and outputs è A pipeline uses one or more processors
27
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D27 Basic Syntax <p:input name="config“ href="my-stylesheet.xsl"/>
28
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D28 XPL: Connections è Processors are connected together with Input Parameter: name="my-input" Ouput Parameter: ref="my-output" Processor Output: id="my-id" Processor Input: href="#my-id" (notice the "#")
29
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D29 Simple Pipeline <p:input name="config“ href="my-stylesheet.xsl"/>
30
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D30 Connections
31
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D31 Inline XML Inputs Mary Albright malbright@sddpc.org
32
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D32 Aggregation <p:input name="data" href="aggregate(‘root’, #my-input-1, #my-input-2"/>
33
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D33 Conditionals = /root/amount">......
34
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D34 For Each <xsl:value-of select="sum(/year/quarter/@sales)"/>
35
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D35 Other Pipeline Languages è Cocoon “sitemap” Mixes “site map” and XML pipelines è 2002 W3C Note Fairly simple but not mature and not maintained è SXPipe (Simple XML Pipelines) Very simple (on purpose)
36
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D36 Future Steps è Increase awareness of XPL è Ship separate XPL engine è Write formal XPL specification è New W3C Note / Start standardization efforts è Keep making XPL useful
37
www.objectweb.org Using XPL in the Presentation Tier
38
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D38 Presentation Server Components
39
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D39 Presentation Tier è Presentation Server Captures and presents data (scenarios 1 & 2) Communicates through XML services Follows well-established MVC architecture Leverages standards (XSLT, XForms, etc.) Leverages pipelines (XPL) è Presentation logic does not require any Java programming!
40
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D40 MVC Architecture
41
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D41 Presentation Server Technologies è View XSLT for page templates XForms as web forms language è Model XML pipelines (XPL) Processors (XSLT, SQL, Web services, etc.) è Controller Page Flow Controller (PFC) Glues everything together
42
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D42 Example of Page Flow
43
www.objectweb.org Using XPL for Transformations
44
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D44 Transformation è XML Server Transforms data (scenario 3) XPL pipelines Respond to Web Services requests Execute transformations based on inputs Return result of transformations to caller Not limited to simple transformations: can call Web Services, etc. è Again: no need for Java!
45
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D45 XPL: A tool to Build an ESB è As routing + transformation part of ESB è Basic ESB XML server JMS implementation (JORAM) Some glue Prototype!
46
www.objectweb.org 4th Annual ObjectWeb Conf. – Jan.17-19,2005 – Lyon, France - D46 XPL: A tool to Build an ESB
47
www.objectweb.org Q & A
48
www.objectweb.org End of the Presentation!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.