Information Over The Web Workshop

Post on 13-Jun-2015

204 views 0 download

Tags:

Transcript of Information Over The Web Workshop

Information Information Over The WebOver The Web

WorkshopWorkshopIntroduction byIntroduction by

Jackie AssaJackie Assa

OutlineOutline The workshop goalThe workshop goal A few words about the workshop projectA few words about the workshop project LinksLinks IntroductionIntroduction

Web 2.0Web 2.0 Web servicesWeb services BPEL and SOABPEL and SOA

‘‘The stack’The stack’ XMLXML Web ServicesWeb Services BPELBPEL

Project detailsProject details

Workshop - GoalWorkshop - Goal

Participate in a near to Participate in a near to ““real-lifereal-life”” development scenario.development scenario.

Work with Web Services and BPEL.Work with Web Services and BPEL. Interact with internal/external development Interact with internal/external development

groups.groups.

This workshop requires significant effort This workshop requires significant effort and ability to rapidly self-learn and and ability to rapidly self-learn and incorporate state of the art technologies. incorporate state of the art technologies. Isn’t this as in real-life?Isn’t this as in real-life?

What we’ll teach here, What we’ll teach here, and what we’ll not.and what we’ll not.

We are here to show you the direction:We are here to show you the direction: TerminologyTerminology Technologies and standardsTechnologies and standards Options for implementationOptions for implementation Tools that you can useTools that you can use Few high level examplesFew high level examples

In the little time we have, we cannot go In the little time we have, we cannot go over web/product resources:over web/product resources: Specific APIs Specific APIs Tutorials for the various tools and productsTutorials for the various tools and products

ScheduleSchedule

Feb Mar Apr May June

27/2 Introduction to the workshop. Overview, introduction to XML

6/3 Introduction to web services, and tools

13/3 Introduction to BPEL, tools, and project signoff

27/3 specs submission (electronic)

17/4 integration starts (if required inclass)

5/6 project submission (inclass)

Workshop projectWorkshop project

Have you ever thought how (really) a virtual Have you ever thought how (really) a virtual store works?store works?

For example:

•Shopping processes•Payments•Business 2 business•Order management•Inventory•Support•…

By Using technologies Such as:•XML/XSLT•Web services•BPEL•Application server•…

Behind the scenesBehind the scenesClients BPEL

ServerApp

Server

WebServices

WebServices

GUI

Process1

Process1

Process1

Process1

Process1

WebServices

WebServices

GUI

SystemProcesses

LinksLinks

http://www.oracle.com/bpel

http://msdn.microsoft.com/webservices/

http://www.systinet.com/

http://www.xmethods.com

http://ws.apache.org/axis/java/reading.html

http://kokogiak.com/mashup/resources.html

http://searchwebservices.techtarget.com/

web 2.0web 2.0

““Web 2.0 applications often use a Web 2.0 applications often use a combination of techniques devised in combination of techniques devised in the late 1990s, including public the late 1990s, including public web serviceweb service APIs (dating from 1998), APIs (dating from 1998), AjaxAjax (1998), and (1998), and web syndicationweb syndication (1997).” (1997).”

From Wikipedia, the free From Wikipedia, the free encyclopediaencyclopedia

What is web 2.0What is web 2.0

ExamplesExamples

http://www.liveplasma.com/  

ExamplesExamples

http://www.mappr.com/www.mashupcoming.com

How does it work…How does it work…

Web ServicesWeb Services

<rate>5.6%

</rate>

XML

Network Centric

Metadata

GetCustomerInfoGetReportListProductsSearchCreditAccountProcessOrder

For example…For example… http://wwhttp://www.amazon.c

om/gp/aws/landing.html http://ebaydeveloper.typepad.cohttp://ebaydeveloper.typepad.co

m/dev/m/dev/ http://www.google.com/apis/http://www.google.com/apis/ http://www.flickr.com/services/http://www.flickr.com/services/

api/api/ http://upcoming.org/services/api/http://upcoming.org/services/api/ http://http://www.xmethods.comwww.xmethods.com//

BPELBPEL

?

BPEL

IU

PORTAL

J2EE

TOMCAT

Web Service

Java Service

ERPSAP, Oracle, etc.

User Tasks

DatabaseStored Procedures

What is BPEL?What is BPEL?

Duplicate Number!

SalesDB start

end

Router

Billing

Markup language for composing a set of discrete services into

an end-to-end process flow

• 10+ years of R&D from MSFT and IBM

• SOAP but also Java, JCA

• Rich Flow Semantics

• Optimized Bindings

• XPATH+XSLT+XQuery

• WS-Security

• A Process is a Service

The promiseThe promise

JDeveloper BPEL JDeveloper BPEL DesignerDesigner

• Native BPEL Support

• Drag-and-drop process modeler

• UDDI and WSIL service browser

• Visual XSLT mapper

• Visual XPATH editor

• Visual Assign editor

• One-click build and deploy

KEY FEATURES

XXMMLL

XMLXML

LanguageLanguage

to holdto hold

DataData

XMLXML

XML stands for EXML stands for EXXtensible tensible MMarkup arkup LLanguageanguage

XML 1.0 – a recommendation from W3C, 1998XML 1.0 – a recommendation from W3C, 1998

Roots: SGML (a very nasty language).Roots: SGML (a very nasty language).

After the roots: a format for sharing After the roots: a format for sharing datadata

XML is a XML is a markup languagemarkup language much like HTML much like HTML

XML was designed to XML was designed to describe datadescribe data

XML tags are not predefined. You must XML tags are not predefined. You must define define your own tagsyour own tags

XML vs HTML (cont)XML vs HTML (cont)

HTML HTML displayingdisplaying informationinformation

XML XML describingdescribing informationinformation

Why XML is of Interest Why XML is of Interest to Usto Us

XML is just syntax for dataXML is just syntax for data Note: we have no syntax for relational dataNote: we have no syntax for relational data But XML is not relational: But XML is not relational: semistructuredsemistructured

This is exciting because:This is exciting because: Can Can translate translate any any datadata to XML to XML Can ship XML over the Web (HTTP)Can ship XML over the Web (HTTP) Can input XML into any applicationCan input XML into any application Thus: Thus: data sharingdata sharing and and exchangeexchange on the on the

WebWeb

XML Data Sharing and XML Data Sharing and ExchangeExchange

application

relational data

Transform

Integrate

Warehouse

XML Data WEB (HTTP)

application

application

legacy data

object-relational

Specific data management tasks

From HTML to XMLFrom HTML to XML

HTML describes the presentation

HTMLHTML

<<h1h1> Bibliography <> Bibliography </h1/h1>>

<<pp> <> <ii> Foundations of Databases > Foundations of Databases <</i/i>>

Abiteboul, Hull, VianuAbiteboul, Hull, Vianu

<<brbr> Addison Wesley, 1995> Addison Wesley, 1995

<<pp> <> <ii> Data on the Web <> Data on the Web </i/i>>

Abiteoul, Buneman, SuciuAbiteoul, Buneman, Suciu

<<brbr> Morgan Kaufmann, 1999> Morgan Kaufmann, 1999

<<h1h1> Bibliography <> Bibliography </h1/h1>>

<<pp> <> <ii> Foundations of Databases > Foundations of Databases <</i/i>>

Abiteboul, Hull, VianuAbiteboul, Hull, Vianu

<<brbr> Addison Wesley, 1995> Addison Wesley, 1995

<<pp> <> <ii> Data on the Web <> Data on the Web </i/i>>

Abiteoul, Buneman, SuciuAbiteoul, Buneman, Suciu

<<brbr> Morgan Kaufmann, 1999> Morgan Kaufmann, 1999

XMLXML

<<bibliographybibliography>>

<<bookbook> <> <titletitle> Foundations… > Foundations… </</titletitle>>

<<authorauthor> Abiteboul > Abiteboul </</authorauthor>>

<<authorauthor> Hull </> Hull </authorauthor>>

<<authorauthor> Vianu </> Vianu </authorauthor>>

<<publisherpublisher> Addison Wesley > Addison Wesley </</publisherpublisher>>

<<yearyear> 1995 </> 1995 </yearyear>>

</</bookbook>>

… …

</</bibliographybibliography>>

<<bibliographybibliography>>

<<bookbook> <> <titletitle> Foundations… > Foundations… </</titletitle>>

<<authorauthor> Abiteboul > Abiteboul </</authorauthor>>

<<authorauthor> Hull </> Hull </authorauthor>>

<<authorauthor> Vianu </> Vianu </authorauthor>>

<<publisherpublisher> Addison Wesley > Addison Wesley </</publisherpublisher>>

<<yearyear> 1995 </> 1995 </yearyear>>

</</bookbook>>

… …

</</bibliographybibliography>>

XML describes the content

XML TerminologyXML Terminology

tags: tags: bookbook, , titletitle, , authorauthor, …, … start tag: <start tag: <bookbook>, end tag: </>, end tag: </bookbook>> elements: <elements: <bookbook>…<>…<bookbook>,<>,<authorauthor>…>…

</</authorauthor>> elements are nestedelements are nested empty element: <empty element: <redred></></redred> abbrv. > abbrv.

<<redred/>/> an XML document: single an XML document: single root elementroot element

well formed XML document: if it has matching tags

More XML: AttributesMore XML: Attributes

<<bookbook priceprice = “55” = “55” currencycurrency = = “USD”>“USD”>

<<titletitle> Foundations of > Foundations of Databases </Databases </titletitle>>

<<authorauthor> Abiteboul </> Abiteboul </authorauthor>>

… …

<<yearyear> 1995 </> 1995 </yearyear>>

</</bookbook>>

<<bookbook priceprice = “55” = “55” currencycurrency = = “USD”>“USD”>

<<titletitle> Foundations of > Foundations of Databases </Databases </titletitle>>

<<authorauthor> Abiteboul </> Abiteboul </authorauthor>>

… …

<<yearyear> 1995 </> 1995 </yearyear>>

</</bookbook>>attributes are alternative ways to represent data

XML Semantics: a Tree !XML Semantics: a Tree !

<data>

<person id=“o555” >

<name> Mary </name>

<address>

<street> Maple </street>

<no> 345 </no>

<city> Seattle </city>

</address>

</person>

<person>

<name> John </name>

<address> Thailand </address>

<phone> 23456 </phone>

</person>

</data>

<data>

<person id=“o555” >

<name> Mary </name>

<address>

<street> Maple </street>

<no> 345 </no>

<city> Seattle </city>

</address>

</person>

<person>

<name> John </name>

<address> Thailand </address>

<phone> 23456 </phone>

</person>

</data>

data

Mary

person

person

name address

name address

street no city

Maple 345 Seattle

JohnThai

phone

23456

id

o555

Elementnode

Textnode

Attributenode

Order matters !!!

XML exampleXML example

<?xml version=“1.0” encoding=“ISO-8859-1”?>

<car make= “Honda Jazz”>

<model> Vti </model>

<engine capacity> 1.3 litres </engine capacity>

<max power> 81kW @ 6000 rpm </max power>

<fuel tank capacity><quantity> 42 </quantity><units> litres </units>

</fuel tank capacity>

</car>

19/23