Académique Documents
Professionnel Documents
Culture Documents
Yuhong Yan Harold Boley Bruce Spencer NRC-IIT Fredericton Internet Logic
Agenda
Introduction (20 minutes)
13-Aug-06
80% of economic activities in US (from National Academy of Engineering 2003) 70% of the Organization for Economic Cooperation and Development (OECD) countries An new emerging discipline in business schools Marketing, customer relation, operations research, business, macroeconomics
Service Science
13-Aug-06
Service Computing
The role of Computing in Services
Facilitating the communication, storage, and processing of information Decreasing the cost of customization and marketing to small segments Giving the customer a broader range of selection Automated services enabled by Internet techniques Communicating among services Composing services into a process Semantic-based service searching and matching
ICEC 2006 Tutorial on SOA 13-Aug-06
In this tutorial
13-Aug-06
Web Services
W3C Web Services Architecture: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format.
13-Aug-06
SOA is not the same as Web Services (in this tutorial too)
Web services are an instantiation of SOA with SOAP and WSDL SOA is a concept not bound to any specific technology
The roles and operations in the SOA/WS triangle The principles of SOA/WS There are many ways to implement messaging and service description language, but ought to use internet protocols
13-Aug-06
13-Aug-06
SOA/WS Principles
Service Encapsulation Service Loose coupling - Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other Service contract - Services adhere to a communications agreement, as defined collectively by one or more service description documents Service abstraction - Beyond what is described in the service contract, services hide logic from the outside world Service reusability - Logic is divided into services with the intention of promoting reuse Service composability - Collections of services can be coordinated and assembled to form composite services Service autonomy Services have control over the logic they encapsulate Service statelessness Services minimize retaining information specific to an activity Service discoverability Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanism
http://en.wikipedia.org/wiki/Service-oriented_architecture
13-Aug-06
BPEL4WS, WSCI, WS-CDL UDDI WSDL XML-RPC, SOAP, XML HTTP, SMTP, FTP, BEEP
10
13-Aug-06
11
13-Aug-06
12
13-Aug-06
External Presentation: Xaver M. Linde Wikingerufer 7 10555 Berlin HTML Markup: <em>Xaver M. Linde</em> <br> Wikingerufer 7 <br> <strong>10555 Berlin</strong>
13
13-Aug-06
HTML Markup:
14
<em>Xaver M. Linde</em> <br> XML tags are chosen for Wikingerufer 7 content-structuring needs <br> <strong>10555 Berlin</strong> XML Markup: <address> <name>Xaver M. Linde</name> <street>Wikingerufer 7</street> <town>10555 Berlin</town> </address>
ICEC 2006 Tutorial on SOA 13-Aug-06
XML Markup: <address> <name>Xaver M. Linde</name> <street>Wikingerufer 7</street> <town>10555 Berlin</town> </address> XML stylesheets are, e.g., usable to generate External Presentations: different presentations Xaver M. Linde Xaver M. Linde Wikingerufer 7 Wikingerufer 7 ... 10555 Berlin 10555 Berlin
15
13-Aug-06
XML Markup 2:
<address> <name>Xaver M. Linde</name> <place> <street>Wikingerufer 7</street> <town>10555 Berlin</town> </place> </address>
ICEC 2006 Tutorial on SOA
16
13-Aug-06
17
Prolog Term:
s t r u c t u r e
address
s u b t r e e s
street Wikingerufer 7
18
(name, street, town) > (#PCDATA) > (#PCDATA) > (#PCDATA) >
address ::= name street town name ::= PCDATA street ::= PCDATA town ::= PCDATA
town PCDATA
13-Aug-06
19
20
XML principle for a document being valid with respect to (w.r.t.) a DTD :
Match the constraints listed in the DTD (or, generate from DTD as linearized derivation tree, as shown later)
21
Prolog Term:
address( name("Xaver M. Linde"), box("2001"), town("10555 Berlin") )
22
and the original street address are valid w.r.t. this "|"-DTD
town PCDATA
13-Aug-06
23
Prolog Term:
address( name("Xaver M. Linde"), street("Wikingerufer 7"), town("10555 Berlin"), phone("030/1234567"), phone("030/1234568"), fax("030/1234569") )
24
13-Aug-06
town PCDATA
25
13-Aug-06
Prolog Term:
address( name("Xaver M. Linde"), street("Wikingerufer 7"), town("10555 Berlin"), country("Germany") )
country Germany
13-Aug-06
26
PCDATA
27
28
XML Namespaces
29
13-Aug-06
Namespace Bindings
Prefixes are bound to namespace URIs by attaching an xmlns:prefix attribute to the prefixed element or one of its ancestors, prefix:name1 ,..., prefix:namen The value of the xmlns:prefix attribute is a URI, which may or (unlike for DTDs!) may not point to a description of the namespaces syntax An element can use bindings for multiple namespaces via attributes xmlns:prefix1 ,..., xmlns:prefixm 31
13-Aug-06
32
13-Aug-06
33
13-Aug-06