Information Over The Web Workshop
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