g22 3033 002 c91 - nyu.edu€¦ · 4 7 towards xml application services processing dom extensions...

43
1 1 XML for Java Developers G22.3033-002 Session 9 - Main Theme XML Information Retrieval (Part I) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 2 Agenda Summary of Previous Session Applications of XML to Database Technology XML Query Languages XPath XML Queries XQuery: A Query Language for XML XML Query Engines XML Registries API Web Services Support in J2EE / .Net Assignment 5a+5b (due in two weeks)

Upload: others

Post on 15-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

1

1

XML for Java Developers G22.3033-002

Session 9 - Main ThemeXML Information Retrieval (Part I)

Dr. Jean-Claude Franchitti

New York UniversityComputer Science Department

Courant Institute of Mathematical Sciences

2

AgendaSummary of Previous SessionApplications of XML to Database Technology

XML Query Languages XPathXML Queries

XQuery: A Query Language for XMLXML Query EnginesXML Registries APIWeb Services Support in J2EE / .NetAssignment 5a+5b (due in two weeks)

Page 2: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

2

3

Summary of Previous Session

XML/XSL and JSP/JavaBeans Rendering TechnologyInternationalization IssuesWeb Content Accessibility Guidelines (WCAG)Assignment 4a+4b

4

XML-Based Retrieval DevelopmentXML Software Development Methodology

Language + Stepwise Process + ToolsRational Unified Process (RUP) vs.. “XML Unified Process”

XML Application Development InfrastructureMetadata Management (e.g., XMI)XML Query Engine (3rd party software)XML Tools (e.g., XML Editors)

XML Applications Involved in the Rendering Phase:Application(s) of XMLXML-based applications/services (markup language mediators)

MOM, POP, Persistence service

Application Infrastructure Frameworks

Page 3: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

3

5

XML Data Retrieval Patterns

XML Data Retrieval OperationsAccessQueryManipulate

Multiple XML Data Sources IntegrationXML Message FilteringDBMS Data ViewsDatabase System Interfacing

6

Part I

Applications of XML toDatabase Technology

Also See:

http://www.rpbourret.com/xml/XMLAndDatabases.htm

Page 4: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

4

7

Towards XML Application ServicesProcessing

DOM ExtensionsBinding ExtensionsComponent Frameworks (reusable component models)Model-Based Automation (MDA)

RenderingDOM 2.1.0, SAX 2.0, JAXP 1.2 & TraX, XSL-FO 1.0Component Frameworks

QueryingXQuery 1.0, XSLT 1.1/2.0, XPath 1.0/2.0

Security (signatures encryption/decryption, etc.)Etc.

8

Retrieval Software DevelopmentLanguages (XML-QL, YaTL, XQL, etc.)

Data Model + Operations + Syntax

Process (“XUP”)Frameworks

Custom Enginee.g., XQEngine

Translation to SQLe.g., DB2XML, Oracle’s XML I/F

Translation to OQL

XML Query InfrastructureXPath Processors: Saxon 6.5.2, Xalan-J 2.5.1XQuery Processors (e.g., Saxon)

SQLX (http://www.sqlx.org/5wd-14-xml-2002-08.pdf)

Page 5: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

5

9

XML Query History

SGML Query FacilitiesAd-hoc Approach to Query Languages02/98: XQL Proposal08/98: XML-QL Submission12/98: W3C QL’98 Workshop

Database Desiderata for an XML Query Language11/99: XPath Recommendation

10

W3C XML Query WG

07/99: WG Proposal09/99: WG Official InceptionToday:

30+ W3C Member Companies11+ Meetings, 60+ TelconsHeartbeat every Three Months or soProposed Recommendation(s)

Goals:XML Query Data Model for XML DcoumentsQuery Operators for XML Query Data ModelQuery Language Based on XML Query Operators

Page 6: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

6

11

W3C’s Related StandardsXML Query Specifications:

XML Query Requirements (06/27/03 - orig. 01/00)XML Query Use Cases (05/02/03 - orig. 08/00)XQuery 1.0 and XPath 2.0 Data Model (05/02/03 - orig. 05/00)XSLT 2.0 and XQuery 1.0 Serialization (05/02/03)

XQuery 1.0 and XPath 2.0 Formal Semantics (05/02/03-orig 12/00)XQuery 1.0: An XML Query Language (05/02/03)XML Syntax for XQuery 1.0 (XQueryX) (06/07/01)

XPath 2.0 SpecificationsXPath Requirements Version 2.0 (02/14/01)XQuery 1.0 and XPath 2.0 Functions and Operators (05/02/03)XML Path Language (XPath) 2.0 (05/02/03)

12

Related XML TechnologiesXPathXSLXPointerXML SchemaXML InfosetWAIInternationalizationIETF DASL

Distributed Authoring Searching and Locatinghttp://www.ics.uci.edu/pub/ietf/dasl/

Page 7: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

7

13

Properties of RDBMS Queries

Pattern + Filter + Construction clauseConstruction clause may have ordering subclausesQueries may perform joins across multiple input setsQueries may generate intermediate variables or path expressions

14

Mapping XML to a RDBMS

SQL-like queries that return XML documents

e.g., Microsoft IIS + SQL Servere.g., Oracle Database Server

Broad spectrum of possible mappingsHierarchical vs. limited RDBMS tree structure

Page 8: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

8

15

JDBC Refresher

See chapter 11of XML and Java textbookImporting JDBC PackageLoading a JDBC DriverConnecting to a DatabaseSubmitting a Query

16

XML Embedded in SQL (SQLX)

SQL Embedded in XMLFront-end to RDBMS that provides XML-based Input/OutputTranslates XML query into sequence of JDBC calls, and converts the result to a DOM structure which is returned

Page 9: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

9

17

Part II

XML Query

18

XML Query Requirements (Part I)General:

Declarative LanguageReadable XML SyntaxProtocol IndependenceStandard Error ConditionsSupport for Future Updates

Data Model Based on XML InfosetsNamespace AwareSupport for XML Schema Data TypesSupport Inter/Intra Document References

Page 10: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

10

19

XML Query Requirements (Part II)Query Functionality:

Operators on All Data TypesText Operators Across Element BoundariesHierarchies and SequencesCombination of Data from Various LocationsAggregation and SortingCombination of Operators (Queries as Operands)Support NULL valuesPreservation of Structure/IdentityOperations on Names/SchemasExtensibility & Closure

20

XML Query Use CasesApproach

Description, DTD/Schema, Input, Queries, ResultsExisting Use Cases

XMP (examples)TREE (queries that preserve hierarchy)SEQ (queries based on sequence)R (relational data access)TEXT (text search)NS (namespace-based queries)PARTS (recursive parts queries)REF (queries based on references)

Page 11: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

11

21

XML Query Data Model

Information Presented to a Query ProcessorAugmented Infoset:

XML Schema Data Types (PSVI)Document CollectionsReferences

Node-Labeled Tree Constructor Model with Node IdentityInfoset Mapping to Query Data Model is Defined as Part of the Specification

22

XML Query Data Model(continued)

NodesNode = DocNode | ElemNode | AttrNode | ValueNode | NSNode | PINode | CommentNode | InfoItemNode

XML Schema Primitive Typesstring, boolean, ID, IDREF, decimal, etc.

Collectionslist [T], set {T}, bag {|T|}, disjoint/union (T1 | T2), tuple (T1, …, Tn)

Referencesref(T)

Page 12: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

12

23

XML Query Algebra

Defines Static and Dynamic SemanticsStatic Semantics are Type Inference Rules

Relate Algebra Expressions to Types

Dynamic Semantics are Value Inference RulesRelate Algebra Expressions to Values

Issues:Algebra Type System Alignment with XML SchemaOperators on Schema Simple Types not DefinedLexical Representation of Schema Simple Types not Defined

24

ConstructorsConstruct Values in XML Query Data Model

attrNode : (Ref(QNameValue), Ref(ValueNode)) -> AttrNodeValueNode = QNameValue | StringValue | DecimalValue | ...qnameValue : (uriReference | null, string, Ref(Def_QName)) -> QNameValuedecimalValue : (decimal, Ref(Def_decimal)) -> DecimalValue

<part price=10.50/><xsd:attribute name=“price” type=xsd:decimal/>

attrNode(ref(qnameValue(null, “price”, Ref(Def_QName)), ref(decimalValue(10.50, Ref(Def_decimal))))

Page 13: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

13

25

Assessors

Deconstruct Values in XML Query Data Model

name : AttrNode -> Ref(QNameValue)value : AttrNode -> Ref(ValueNode)type : AttrNode -> Ref(ElemNode)

<xsd:attribue name=“price” type=xsd:decimal/><part price=10.50/>

name(A1) = ref(qnameValue(null, “price”))value(A1) = ref(decimalValue(10.50, Ref(Def_decimal)))type(A1) = <!-- data model representation of simple type decimal -->

26

Part III

XML Query Languages

Page 14: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

14

27

XQueryFunctional Language

Query Represented as an ExpressionExpressions can be Nested without RestrictionInput/Output of an XQuery are Instances of the XML Query Data ModelBased on OQL, SQL, XML-QL, XPathReadable XML SyntaxJava Specification Request for an XQuery API for Java (XQJ) launched on 6/11/03See articles:

Five Practical XQuery ApplicationsWriting and Debugging XQuery Web Apps with Qexo

Book:XQuery Kick Start

28

XQuery Expressions

Path ExpressionsElement ConstructorsFLWR ExpressionsExpressions with Operators/FunctionsConditional ExpressionsQuantified ExpressionsList ConstructorsExpressions to Test/Modify Datatypes

Page 15: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

15

29

XQuery Path ExpressionsAbbreviated XPath 1.0 Syntax

Find figure(s) with caption “Tree Frogs” in second chapter of “zoo.xml”document(“zoo.xml)/chapter[2]//figure[caption = “Tree Frogs”]

ExtensionsDereference OperatorRange PredicateDocument FormatsFind captions of figures referenced by <figref” elements in “Frogs” chapter of “zoo.xml”document(“zoo.xml”)/chapter[title = “Frogs”]//figref/@refid->fig/caption

30

XQuery Element Constructor

Start/End Tag + Enclosed List of ExpressionsGenerate an element with a computed name that contains nested elements:

<$tagname><description> $d </description><price> $p </price></$tagname>

Page 16: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

16

31

XQuery For Let Where Return (FLWR)

FOR and LET ClauseGenerate a List of Tuples that Preserves Doc Order

WHERE ClauseApplies a Predicate to Eliminate Some Tuples

RETURN ClauseExecuted on Resulting Tuples -> Ordered Output List

Syntax:FOR var IN expr WHERE expr RETURN exprLET var := expr

32

FLWR Sample Expressions

List titles of books published by MK in 98FOR $b IN document (“bib.xml”)//bookWHERE $b/publisher = “Morgan Kaufmann”

AND $b/year = “1998”RETURN $b/title

List each publisher and its books average priceFOR $p IN distinct(document(“bib.xml”)//publisher)LET $a := avg(document(“bib.xml”)

/book[publisher = $p]/price)

Page 17: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

17

33

XQuery Operators and Functions

Infix/Prefix Operatorse.g., Infix Operators BEFORE and AFTER

Parenthesized ExpressionsArithmetic/Logical OperatorsCollection Operators

e.g., UNION, INTERSECT, EXCEPTFunctions Can Be Defined in XQuery

34

Sample Operators and Functions

Find max depth of “partlist.xml”NAMESPACE xsd=“http”//www.w3.org/2001/03/XMLSchema-datatypes”

FUNCTION depth(ELEMENT $e) RETURNS xsd:integer{

IF empty ($e/*) THEN 1ELSE max (depth($e/*))+1

}depth(document(“partlist.xml”))

Page 18: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

18

35

XQuery Conditional Expressions

FOR $h IN //holdingRETURN

<holding>$h/titleIF $h/@type=“Journal” THEN $h/editorELSE $h/author

<holding> SORTBY (title)

36

XQuery Quantified Expressions

Example 1:FOR $b IN //bookWHERE SOME $p IN $b//para SATISFIES

contains($p, “sailing”)AND contains($p, “windsurfing”)

RETURN $b/title

Example 2:FOR $b IN //bookWHERE EVERY $p IN $b//para SATISFIES

contains($p, “sailing”)RETURN $b/title

Page 19: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

19

37

XQuery List Constructors

List encloses zero or more expressions in square brackets, separated by commasList of member variables: [$x, $y, $z]Empty list: [ ]

38

XQuery Operators on Data Types

INSTANCEOF (instance, type)CAST

Convert value from one datatype to anotherTREAT

Causes the query processor to treat an expression as if its datatype were a subtype of its static type

Page 20: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

20

39

XQuery Outstanding Issues

Integration with XPath 2.0Alignment of XQuery and XML Query Algebra SyntaxInternationalization

e.g., Collation Sequences for Sorting, Strings opsXML Query SyntaxOperators and Functions (recently added)

40

Part IV

XML Query Engines

Page 21: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

21

41

Various ApproachesFatDog’s XQEngine

Full-text search engine for XMLJava APIs availableW3C XQuery Specification Support

DB2XMLStandalone tool (with GUI or command line)Servlet to dynamically generate XML-documentsDB2XML API

Oracle XML Developer Kit (XDK ) XML DB: http://otn.oracle.com/tech/xml/xmldb/htdocs/querying_xml

Microsoft SQL Server support for XML

42

Other Implementations (* means Open Source)

• BEA's Liquid Data:http://edocs.bea.com/liquiddata/docs10/prodover/concepts.html

• Bluestream Database Software Corp.'s XStreamDB:http://www.bluestream.com/dr/?page=Home/Products/XStreamDB/

• Cerisent's XQE: http://cerisent.com/cerisent-xqe.html• Cognetic Systems's XQuantum:

http://www.cogneticsystems.com/xquery/xquery.html• Enosys Software's XQuery Demo: http://xquerydemo.enosyssoftware.com• E-XMLMedia's:

http://www.e-xmlmedia.com/prod/xmlizer.htm (XMLizer)http://www.e-xmlmedia.com/prod/repository.htm (Repository)

• GAEL's Derby: http://www.gael.fr/derby/• *GNU's Qexo (Kawa-Query): http://www.qexo.org/• Ipedo's XML Database v3.0: http://www.ipedo.com• IPSI's IPSI-XQ: http://ipsi.fhg.de/oasys/projects/ipsi-xq/index_e.html• *Lucent's Galax: http://db.bell-labs.com/galax/

Page 22: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

22

43

Other Implementations(continued)

• Microsoft's XML Query Language Demo: http://xqueryservices.com• Neocore's XML management system (XMS):

http://www.neocore.com/products/products.htm• Nimble Technology's Nimble Integration Suite:

http://www.nimble.com/• OpenLink Software's Virtuoso Universal Server:

http://demo.openlinksw.com:8890/xqdemo• Politecnico di Milano's XQBE:

http://dbgroup.elet.polimi.it/xquery/xqbedownload.html• QuiLogic's SQL/XML-IMDB: http://www.quilogic.cc/xml.htm• Software AG's

– Tamino XML Server: http://www.softwareag.com/tamino/News/tamino_41.htm

– Tamino XML Query Demo: http://tamino.demozone.softwareag.com/demoXQuery/index.html

44

Other Implementations(continued)

• Sonic Software's– Stylus Studio 5.0 (XQuery, XML Schema and XSLT IDE):

http://www.stylusstudio.com– Sonic XML Server:

http://www.sonicsoftware.com/products/additional_software/extensible_information_server/

• Sourceforge's Saxon: http://saxon.sourceforge.net/• *SourceForge's XQuench: http://xquench.sourceforge.net/• *SourceForge's XQuery Lite:

http://sourceforge.net/projects/phpxmlclasses/• X-Hive's XQuery demo: http://www.x-hive.com/xquery• XML Global's GoXML DB:

http://www.xmlglobal.com/prod/xmlworkbench/• *Sourceforge's JXQuery: http://sourceforge.net/projects/jxquery• *Sourceforge's Kweelt: http://kweelt.sourceforge.net/

Page 23: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

23

45

Part V

XML Registries APIs

46

XML RegistryEnabling Infrastructure for Building, Deploying, and Discovering Web ServicesVarious Existing Specifications

ebXML Registry and Repository StandardDeveloped by OASIS and U.N./CEFACTSee OASIS ebXML Registry and Test Site

Current version is 2.1

UDDI specification (UDDI Registry v2.0)Developed by a vendor consortium

CommerceNet’s eCo FrameworkDeveloped by a vendor consortium

Page 24: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

24

47

Java API for XML Registries (JAXR)

API to access various XML RegistriesSee specification: JAXR Specification v1.0

See JavaOne slides:http://servlet.java.sun.com/javaone/conf/sessions/640/google-sf2001.jsp

Provides classification, association, and query capabilitiesAllows portability across different registriesBeing developed via the Java Community Process (JSR-093)Can be used in combination with JAXP, JAXB, JAX-RPC, and SAAJ to support the development of Web Services

48

Part VI

Web Servicesin J2EE / .Net

Also see Session 9 Handout on:“Creating a Simple XML Web Service Using Visual Studio .Net”

andSession 8 Demos on:

“Web Services Build and Test Tutorial”“Web Services Deploy and Publish”

Page 25: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

25

49

Web Services Support in J2EE(review)

Java XML Pack (older)All in one XML technology for Javae.g., SAX, DOM, XSLT, SOAP, UDDI, ebXML, and WSDL

Java XML Pack Summer 02 Release (older)Java API for XML Messaging (JAXM 1.1)Java API for XML Processing (JAXP 1.2)Java API for XML Registries (JAXR 1.0_01) Java API for XML-based RPC (JAX-RPC 1.0) SOAP with Attachments API for Java (SAAJ 1.1)

Java Web Services Developer Pack 1.2Bundles latest JAX APIs

50

IBM WebSphere SDK for Web Services V. 5.0

Services-Oriented ComputingNew approach to B2BiXML message encoding architecture + HTTP as a communication transportWeb services are about how to access a business service, while J2EE is about how to implement that business service

Web Services with WSAD Demonstration Tutorials (see Session 8 handouts)

Build and Test

Deploy and Publish

Page 26: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

26

51

Service Oriented Architecture

52

Content, Discovery, Universal access, and Intelligent Software Agents

UDDI: Universal Description, Discovery, and IntegrationIndustry-wide effort to bring a common standard for business-to-business(B2B) integrationSet of standard interfaces for accessing a database of web servicesSee UDDI Browser at http://www.soapclient.com/uddisearch.htmljUDDI (pronounced "Judy") is an open source Java-based implementation of a UDDI registry Also see

http://www.sun.com/software/xml/developers/uddi/http://www-3.ibm.com/services/uddi/index.htmlhttp://uddi.microsoft.com/default.aspxhttp://www.oasis-open.org/cover/uddi.htmlhttp://www.itpapers.com/cgi/SubcatIT.pl?scid=436

Intelligent Software Agents: ATLAS, Aglets, etc.

Page 27: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

27

53

XML-Based e-Services Protocols and Architectures

XML-RPC and Peer-to-Peer ComputingSimple Object Application Protocol (SOAP)Universal Description, Discovery, and Integration (UDDI)Web Service Definition Language (WSDL)

http://www.w3.org/TR/wsdl

Pervasive devicesResource Description Framework (RDF)

Platform for Internet Content Selection (PICS)Platform for Privacy Preferences (P3P)Channel Definition Format (CDF)Rich Site Summary (RSS)Blocks Extensible Exchange Protocol (BXXP)

54

XML-Based e-Services Protocols and Architectures (continued)

XML Protocol (XMLP): XML-Based Messaging Systems

Standardized application to application XML messaging (via HTTP, and MQSeries)

XML and User Identification/SecurityXML and Databases

XML and JDBCXML Extensions and Tools for Oracle, Informix, IBM DB2, and Microsoft SQL Server

Transaction Authority Markup Language (XAML)Coordinated processing of transaction-supporting web services between internal fulfillment services and external services

Page 28: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

28

55

XML-Based e-Services Protocols and Architectures (continued)

Sun’s Open Net Environment (ONE)HP’s NetAction/e-speak platformOracle’s Dynamic Services platformMicrosoft .NET platformIBM WebSphere Architecture (WSA) platform

56

Web Services Stack

Page 29: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

29

57

Implementation Diagram

58

Derivative Architecture Patterns

Page 30: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

30

59

Web Services Latest Specifications(http://msdn.microsoft.com/webservices/ , http://www.ibm.com/webservices/,

http://dev2dev.bea.com/techtrack/standards.jsp, http://www.ws-i.org)

Baseline WS SpecificationsSOAP, UDDI, WSDL

BPEL4WSBusiness Process Execution Language for WS

Global WS SpecificationsWS-CoordinationWS-InspectionWS-ReferralWS-RoutingWS-SecurityWS-PolicyWS-Transaction

60

Microsoft .NET PlatformSmart Devices + Windows XP + Web Services

http://www.microsoft.com/net

Page 31: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

31

61

.Net Applications Support Technologies/Services

62

.NET Framework

Common Language Runtime (CLR)Accessible to any compiler that produced Microsoft Intermediate Language (IL) code

Runtime ClassesVisual Studio.Net (VS.Net)

Includes VB.Net, VC.Net (C#), and Visual C++.Net

Page 32: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

32

63

.NET, Win32, COM, and COM+

.Net applications can call functions that reside in Win32 DLLs via the DllImport attribute of System.Runtime.InteropServices’ platform invocation (PInvoke) services.Net applications can call traditional COM components using Runtime Callable Wrappers (RCWs) which uses interop assemblies (i.e., .Net components) created via COM Interop using the TLBIMP utilityCOM+ services (transactions, object pooling, JIT activation) can be used from .Net (via System.EnterpriseServices namespace).Net runtime uses COM+ to support some of its services (e.g., transactions for managed classes)

64

.Net Remoting(http://www.dotnetremoting.cc/)

Native .Net Remote Object InvocationAllows Object Invocation and Communications Across Processes and MachinesWire Protocol and Format IndependentExtensible via Custom Formatters (SOAP, Binary, etc.), Channels (HTTP, TCP, etc.), and Sink Chain (i.e., Channels + Formatters) StepsFlexible as Configuration can be Changed after Deployment with Little or no Code ChangesFlexible (IIS not required on server) but more Complex than Web Services

Page 33: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

33

65

.Net Remoting Vs. DCOM

Not as Transparent as DCOMHas no COM Interop InvolvedOffers More Deployment OptionsNot Tied to a Specific Wire Protocol or FormatFirewall FriendlyAllows you to Specify which Objects are Remoted

66

.Net CLR and COM+CLR Introduces a Newer and Easier Programming Model for COM+The COM+ Services are still Available only at the OS/Unmanaged WorldTransitions Between Managed/Unmanaged Layers are Taken Care of by “System.EnterpriseServices” Namespace

System.EnterpriseServices.ContextUtil class provides access to contexts (as did CoGetObjectContext)

Services are Made Available to Components Using Attributes

Page 34: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

34

67

ContextUtil ClassUseful Static Members

ActivityIdIsSecurityEnabledTransactionIdDesactivateOnReturnMyTransactionVote

Rich Set of Member FunctionsSetCompleteSetAbortEnableCommitDisableCommitIsCallerInRoleGetNamedProperty

68

.Net and ServicedComponent

COM+ Class Derives from “ServicedComponent”[ComVisible(true)][ObjectPooling(MinPoolSize=2, MaxPoolSize=5)][Guid(“57F01F20-9C0C-4e63-9588-720D5D537E66)][Transaction(TransactionOption.Required)]public class SVCCompClass : ServicedComponent

In COM+ 1.0, the List of Services Are not ChangedIn COM+ 1.5 (Microsoft Windows XP Professional and .Net server), Newer Services are Available to Leverage CLR Features

Page 35: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

35

69

Component Layers in .Net Applications/Services(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/distapp.asp)

70

Security Policies in .Net Applications/Services

Page 36: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

36

71

Operational Mgmt Policies in .Net Applications/Services

72

Communication Policies in .Net Applications/Services

Page 37: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

37

73

.Net Applications Support Technologies/Services(continued)

Security, Operational Management, Communication provided by Microsoft Windows OS Services

Active Directory ServiceMessage QueuingWindows Management Instrumentation (WMI)etc.

74

Part VII

Next GenerationComponent-Based Engineering

andProject Development Methodologies

Page 38: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

38

75

Towards Web Services

Plateaus of adoption Integration as an afterthoughtWeb services façadesManaged Web services and, finallyParadigm shift

Industry currently focuses on the second plateau

76

Integration as an Afterthought

The current enterprise conjecture consists of a collection of self-contained custom or packaged applicationsPackaged applications may expose functions via an API allowing some level of point-to-point integration

Page 39: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

39

77

Web Services Façades

Adopting Web services first requires "wrapping" existing applications with a Web services façadeThe resulting architecture resembles early EAI implementations, but provides the added benefit of standard protocols

78

Managed Web Services

In most cases, package applications are not designed to enable the replacement of underlying servicesAs a result, the resulting Web architecture remains a hybrid inwhich some applications leverage common infrastructure services while others access their own internal services

Page 40: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

40

79

Paradigm Shift

In a true service-oriented architecture, all business services use a common set of business-neutral services for logging, notification and security

80

Challenges

Evolving standards Immature tools Semantic mapping Network reliability Performance Application ownership Learning curves

Page 41: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

41

81

“Agile” Methodologies

See Agile Project Development Methodology at Work:http://www.thoughtworks.com/library/agileEAIMethods.pdfhttp://www.thoughtworks.com/library/newMethodology.pdf

82

Part VIII

Conclusions

Page 42: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

42

83

SummaryApplying XML to Database Technology allows the viewing of database data as an XML document.XML Query is based on a well defined Data Model and AlgebraVarious syntaxes are possible for an XML Query LanguageXML Query Engines are infrastructure components that support XML QueryJAXR provides a uniform interface to various XML RegistriesWeb Services standards are implemented in .Net and J2EE application servers to support the development of applications based on Service Oriented Architectures

84

ReadingsReadings

XML and Java: Chapter 11, Appendix DProcessing XML with Java: Appendix CDeveloping Java Web Services: Chapters 6, 11Handouts posted on the course web siteReview textbook chapters on XML/Java persistence bindings

Project Frameworks Setup (ongoing)Howard Katz’s XQEngineApache’s Web Server, TomCat/JRun, and CocoonApache’s Xerces, Xalan, SaxonAntenna House XML Formatter, Apache’s FOP, X-smilesPublishing Systems at http://www.xmlsoftware.comVisibroker 4.5 (or BES 5.2.1), WebLogic 6.1-8.1, WAS 5.0POSE & KVM (See Session 3 handout)

Page 43: g22 3033 002 c91 - nyu.edu€¦ · 4 7 Towards XML Application Services Processing DOM Extensions Binding Extensions Component Frameworks (reusable component models) Model-Based Automation

43

85

Assignment

Assignment #5: (#5c will be discussed next week)

#5a: This part of the project focuses on the application data model design/development using XML information retrieval technology. The design/development process should focus initially on identifying the data to be retrieved for resulting subsets of data#5b: Your XML application service should demonstrate the following additional steps: (a) Defining the optimal retrieval approach for each dataset, and (b) Considering query constraints when designing an overall application data modelMore specific project related information, and extra credit assignments will be provided during the session

86

Next Session:XML Information Retrieval (Part II)

XML-Based Frameworks (Part I)

XML Object PersistenceAdvanced XML-QL/XQL ConceptsUsing the SAX and DOM APIs with a databaseXML Server Pages (XSP)Presentation Oriented Publishing (POP) FrameworksClient-Side XML POP FrameworksServer-Side XML POP FrameworksXML Messaging and Security