Download XML Web Services and Middleware

Document related concepts
no text concepts found
Transcript
XML, Web Services and
Middleware
國立台灣師範大學
資訊教育系
葉耀明
[email protected]
內容大綱
•
•
•
•
•
•
•
•
•
•
•
•
•
•
第二代Web與Component Software
何謂Middleware
Middleware的演進
CORBA的概念
Web Service的概念
Web Services的發展過程
Web Services的架構
SOAP
WSDL
UDDI
Web Service與ebXML
Web Services的應用
台灣的殺手級應用:e-Taiwan計畫
總結
網路發展過程
• 1960-:網路源起
– Bitnet, IBM Network (獨立網路)
– ARPANET: TCP/IP (1968-)
• 1980-:Internet
– WAN:TCP/IP (網路進入網網相連時代)
– LAN:Ethernet, Token Ring
• 1990-:World-Wide Web(第一代)
– HTML (1989-) (網路進入多媒體時代)
• 2000-: World-Wide Web(第二代)
– XML (1998-) (網路進入自動化資訊處理時代)!!!
– Web Services (2001-) (程式獨立於網頁之外)
下一代全球資訊網(一)
• 全球性網路整合知識庫
• 全球性網路整合服務
web
service
web
data
web
service
web
data
web
data
web
service
web
data
web
data
下一代全球資訊網(二)
• 第一代Web: HTML
– 網頁資訊Web Data (for human)
• 第二代Web: XML
– Web Data: Semantic Web (XML網頁)可形成整合
知識庫的知識網頁
• XML Schema/RDF/OWL (for human & machine)
– Web Service: 可透過網路動態整合的網路服務
Web program, Web software (XML訊息)
• SOAP/UDDI/WSDL (for human & machine)
• Software in a nodeSoftware integrated through Web
中介軟體Middleware的概念
• Middleware的定義
• 起源:
– 主從架構技術:RPC
• Intranet Middleware:
– CORBA/DCOM/RMI
• Internet Middleware:
– Web Service
Types of Distributed Processes
• Peer-to-Peer
send
– Send/Receive
– Role: no
– Application: MP3 exchange
receive
B
A
receive
send
• Filter
– Receive/Forward
– Role: calling/filter/called
– Application: Router, Proxy Server
• Client/Server
– Request/Reply (or Response)
– Role:Client/Server
– Application: WWW, MIS, Agent…
• Multicast
B
A
calling
calling
C
filter
called
request
B
A
reply
server
client
– Multicast/response
– Role: Coordinator/Partner
reply
– Application: B2B Collaboration, Media
A
Distribution
coordinator
multicast
B
partner
B
B
Type of Client/Server System
• Desktop client
– Traditional client/server
• Intrasystem client/server
– DDE (Dynamic Data Exchange) Server
– Browser/Personal Web Server
• Desktop server
– X-terminal
Client/Server Architecture
• 3 Layer Architecture
Client
Server
AP
AP
AP
OS
System
Services
System
Services
Hardware
Hardware
Hardware
Fundamental AP
Client/Server AP
Middleware的定義
•
•
Middleware: a layer of software whose purpose is to mask heterogeneity and to
provide a convenient programming model to application programmers.
Middleware[Renaurd]:提供control integration,做data management,
communication management, object management
Client
Server
AP
AP
API
API
Middleware
Middleware
OS
OS
Protocol
Hardware
Hardware
Client/Server AP
註:Application Program Interface
Application Framework
User Interface
Userware
Presentation Interface
Task Management
Middleware
Control Integration
Data Repository
Enterpriseware
System Service
Hardware
Computer and Communication Facility
A
P
P
L
I
C
A
T
I
O
N
Middleware Framework
Foundation Components
Control Integration
Data
Object
Communication
Management Management Management
Data Repository
Federated Distributed Data Base
System API
RPC
Session Layer
System Service
Operating System
Transport Layer
Network Layer
Computer and Communication Facility
Device Driver
OSI 7 Layers
ORB
Application Layer
應用層
network service
RPC
Presentation Layer
表現層
data conversion
RPC
Session Layer
交談層
connection service
Socket
Transport Layer
傳輸層
end-to-end delivery
TCP, UDP
Network Layer
網路層
routable packet
IP
Data Link Layer
資料鏈結層
data frame
Ethernet MAC
Physical Layer
實體層
raw bit stream
Ethernet Base-band
RPC
Procedure Call的發展
• Procedure Call
– Pascal, C
– Compiler provides mechanisms
• Inter-Process Communication (IPC)
– C
– OS provides service
• Remote Procedure Call (RPC)
– ODBC, HTTP/HTML
– Middleware provides service
• Object-Oriented Remote Procedure Call (OORPC)
– CORBA(IIOP, GIOP), DCOM
• XML-based Remote Procedure Call (XML-Based RPC)
– XML-RPC (Remote Procedure Call)
– SOAP (Simple Object Access Protocol)
– WDDX (Web Distributed Data Exchange)
Procedure Call
Process
• Process內的Procedure Call
– Same Address Space
– Pascal, C
– Compiler provides mechanisms
• Procedure name linking
• Parameter binding
• Variable Stack
Main(){…
call pc(a,b,c);
…}
Procedure
pc(x,y,z){…
Return(z=result);
}
Inter-Process Communication
(IPC)
• Node內的Procedure Call
– Same Operating System
– C; SVC (supervisor call)
– OS provides service
• Process IDProcedure name
• Message Passing
• Send/Receive
Process A
Process B
Main(){…
send(pid,a,b);
receive(pid,c);
…}
receive(pid,x,y))
…
send(pid,z);
RPC (Remote Procedure Call)
• 用RPC做concurrent process由White
1976提出
• Node間的Procedure Call
– Different Operating System
– VB, Delphi, VC++, ODBC
– Middleware provides service
• NodeIDProcess IDProcedure name
• Message Passing
• Request/Reply
RPC Protocol
Client Process
Server Process
Main(){…
RPC Library
call rpc(a,b,c);
…}
HARNESS: Main(){
Request
Call rpc(x,y,z);
RPC Library
Send(z,client)
STUB: rpc(a,b,c){
send((x=a,y=b),server)
Receive((x,y),client)
Reply
}
Receive(c=z,server)
Application
Return(c);
Procedure rpc(x,y,z){…
}
Return(z=result);
}
Client/Server Communication的特性
• Client特性:主動者
– GUI
• Server特性:被動者
– Data Processing, Computing, . . .
• Communication特性:
– Transactional:
•
•
•
•
•
atomic:原子性
consistency:一致性
isolation:獨立性
serialization:循序性
durability:永久性
– Cooperative: not master/slave
RPC ISSUES
• Connection: 連線方式
– Connectionless封包式: datagram(packet switched)
– Connection-oriented連線式:datastream(circuit
switched)
• Addressing: 位址取得
– Name resolution:名稱解讀
– Dynamic binding:動態連結
•
•
•
•
Synchronization: 同步方式
Failure Handling:容錯處理
Security:安全
Data Conversion;資料格式轉換
Connection Issues
• Circuit switching: connection-oriented
– 電話網路,
• Packet switching: connectionless
– TCP/IP
• Hybrid:
– connectionless(low level) + connectionoriented(high level)
– ATM
Connection Issues
特性
connection-oriented
connectionless
message type
datastream
datagram
routing
Static
Dynamic
message
addressing
full destination address
to establish circuit;
circuit ID only
broadcast to all nodes to
full destination address to
specific node
reliability
sequenced,error control,
flow control, delivery
guaranteed
no guaranteed;message can
be lost or arrive out of
order
option
can be negotiated during
setup
N/A
synchronization
overhead
circuit setup and release
Message routing
Addressing Issues
•
•
•
•
•
•
•
by name: object X
by address: object at location x
by content: object with value x
by route: object found at end of path x
by source: all my objects
broadcast identifier: all objects of type x
group identifier: all objects related to x
Static Binding
•
•
Internet較低階部份用static binding (compile time)
global name:
– network+subnetwork+host+process-id+name
– internet domain name: [email protected] e.g. [email protected]
– 有時加上hostname eg: [email protected]
socket context
server nameport (8 bit)
network context
portIP address (32 bit)
datalink context
IP addressEthernet address (48 bit)
TCP/IP layered naming context
Dynamic Binding
•
•
client/server 較高階部份用(run time)
via convention: 用configuration convention
–
–
•
via broadcast:提供name resolution service
–
•
用environment variable: set
MYSERVER=123456
用configuration file:含global name table
Microsoft NetBEUI(NetBIOS Extended User
Interface)網路上的芳鄰
via name server
–
Novell SPX/IPX
Microsoft NetBEUI
(NetBIOS Extended User Interface)
Client
Local NetBIOS
ADD.NAME
“client21”
CALL
“Server4”
Remote NetBIOS
Update Name Table
Send(Client21 at address21”,
,broadcast)
Update Name Table
Update Name Table
Send(“Server4 at
address46,broadcast)
Receive
Update Name Table
Receive
Session Starts
SEND“Request”,
”Server4”
Lookup Name
Send(Session1,Address46)
RECEIVE
Session1
Process
Message
HANGUP
Lookup Name
Send(Request,Address46,
Session1)
Lookup Name
Send(Reply,address21)
Server
ADD.NAME
“Server4”
LISTEN
Session Starts
Receive
Session 1
Process message”
Send
“Reply”,”client21”
HANGUP
Novell SPX/IPX
Client@987654
Bindery
ScanBindery
“GreateServer”
Address 123456
Server@123456
AdvertiseServer
Address 123456 “GreatServer”
Socket 78
IPXOpenSocket
IPXGetLocalTarget
Socket 78
IPXSendPacket
[(0,123456,78),(0,987654,32),Request]
IPXReceive
Process Message
IPXSendPacket
[(0,987654,32),(0,123456,78),Reply]
Synchronization Issues
• blocking protocol:
– blocking send/blocking
receive :synchronized
– strict RPC
• nonblocking protocol:
– nonblocking send/nonblocking receive
– master/slave: rendezvous model
Master/slave Server process
Server Process
Client Process
MASTER: Loop( )
{receive((x,y),client)
spawn slave(x,y,client)
Main(){…
call rpc(a,b,c);
…}
}
Request
RPC Library
STUB: rpc(a,b,c){
send((x=a,y=b),server)
Receive(c=z,server)
Return(c);
}
Reply
SLAVE:{
call rpc(x,y,z);
send(z,client)
}
Application
Procedure rpc(x,y,z){…
Return(z=result);
}
Failure Modes
•
client call後crash:
–
•
message lost:
–
–
•
處理: 用ACK, timeout, resend: three-packet
protocol: request, reply, ACK
no-more-than-once RPC semantics:用sequence
number控制server resend
server crash:
–
–
•
處理: client discard message
處理: (1)client resend call, retry幾次後,依靠
server callback或user abort request
(2)server做atomic-transaction service
server lost message
Three-Packet Protocol
Server Process
Client Process
Main(){…
call rpc(a,b,c);
…}
RPC Library
STUB: rpc(a,b,c){
Inc RPC Sequence No.
send((x=a,y=b),rpc)
receive(c=z,server)
if (Timeout(receive))
retry
else send(ACK,rpc)
Request
Reply
resend
ACK
RPC Library
HARNESS: Main(){
Receive((x,y),client)
Check rpc Sequence
if Sequence > Last Msg
call rpc(x,y,z);
}
Application
Procedure rpc(x,y,z){…
Return(z=result);
}
Inc Last Msg
send(z,caller)
receive(ACK,caller)
if (Timeout(receive))
resend(z,caller)
CORBA
(Common Object Request Broker Architecture)
由 OMG (Object Management Group)所
制定的分散式物件標準規格
目前為CORBA 3.0
介面定義語言 (IDL; Interface Definition
Language) 讓各種語言所寫成的物件可
以達到共用的目的
以 ORB (Object Request Broker)為物件
間溝通的管道
CORBA Architecture
Application Objects
Common Facilities
CORBA ORB
...
...
Event LifeCycle Query Naming
Time
Common Object Services (16)
CORBA 架構
Java
C++
Client Stub
Ada
Java
C++
Ada
IDL
IDL
IDL
Server Skeleton
CORBA ORB
Web Services的發展過程
• SOAP發展:
–
–
–
–
–
XML-Based Remote Procedure Call: Loosely-Coupled Distributed System
XML-RPC: Userland
WDDI: WebMethod
SOAP:Microsoft
SOAP 1.2: W3C (Web基礎建設的一環)
• UDDI/WSDL發展
– UDDI協會:產業電子目錄
• Microsoft, IBM, Ariba
– Basic SOA (Web Services基礎架構)
• Web Services發展:SOA (e-Business主軸技術)
–
–
–
–
–
OASIS協會:和ebXML整合
WS-Security
WS-Reliability
WS-Choreography
WSDM (Distributed Management)
Web Services 技術概念:
SOA: Services Oriented Architecture
新型態的入口網站:
- 給程式(Web Service)用的
Service
Broker
WSDL
UDDI
Publish
Request
SOAP
Service
Provider
Bind and Request
Service
Requester
Reply
UDDI 2.0: Universal Description, Discovery and Integration (2001/6)
WSDL: Web Service Description Language
SOAP: Simple Object Access Protocol (2001/7)
Basic Web Services Stack
Service Publication/Discovery
UDDI
Service Description
WSDL
XML Messaging
SOAP
Transport Network
HTTP,SMTP,FTP over TCP/IP
一個Web Service是什麼?
• Some software functional block
– Location, platform, code are irrelevant
• “Loosely coupled software components that encapsulate
discrete functionality and that are accessible over standard
Internet protocols.”—The Stencil Group
• “Web Services are a new breed of web application. They
are self-contained, self-describing, modular applications
that can be published, located, and invoked across the
Web.”– IBM
• Web服務的提供者;Web的主要居民
• 資訊系統的動態組件
Service-Oriented Architecture:
Conceptual Model
Business Content
Business or
Application
Standards
Security
Universal Business Content
Registry/Repository
Business Process-Workflow
Partner Profiles
Reliable Messaging
Core XML Standards
Network/Transport
Platform
Management
Industry Vertical Content
Technical
Infrastructure
Standards
Architecture of Web Services:
Extended SOA
WS-Security
(Federation, Trust,
Conversation, SecurityPolicy)
Directory (UDDI)
Management
WSDM
Inspection (WSIL)
WS-Addressing
WS-Reliability
WS-Reliable Messaging
WS-Attachments (DIME)
Discovery
Process Flow and Pattern Description
(Workflow, Orchestration, Transaction,
Policy, Portal)
RDF (meta data)
Semantic Web
SOAP
XML
Service Description (WSDL)
Structure (XML Schemas)
Description
Messaging/Wire
(Invocation)
Web Services Implementation
UDDI
Registry
Service Discovery
Service Publish
Web Services
System
Service Description
Web Services
Client
WSDL
SOAP over HTTP
Web
Server
Web Service
Runtime
SOAP
Business
Functionality
Web Service的運作模式
• 兩種Web Service型態
– Message Producer
• 做服務動作和加內容到訊息內
– Message Consumer
• 取用訊息內容和做服務動作
• Pipeline:message flow
– Pipeline is a sequence of services
• Messages grow and shrink on the way
Web Services的發展類型
• Enterprise Web Services
– 新型態的EAI (Enterprise Application Integration)
– 使用技術:LAN+SOAP+WSDL
• Internet Web Services
– 新型態的B2Bi (Business to Business Integration)
– 使用技術:Basic SOA
• SOAP+UDDI+WSDL
• Internet Security
• Semantic Web Services
– Integrated e-Business (Global e-Marketplace)
– 使用技術:Extended SOA
• SOAP+UDDI+WSDL
• WS-Security+WS-Reliability+WS-Choreography+WSDM
– 整合Semantic Web Architecture
• RDF+OWL+XTM(XML Topic Map) …
Business Collaboration Through Web
Service Integration
Wrap intra-enterprise Application
Wrap intra-enterprise Application
Business Process Layer
WSFL,XLANG,ebXML,
Rosettanet
Web Services
Web Services
Content Layer
WSDL,ebXML,Rosettanet
EAI
Workflows
ERP
EAI
Workflows
ERP
Communication Layer
SOAP,HTTP,FTP,SMTP
Components
Components
B2B Interactions
Data Repository
Data Repository
Business Partner 1
Business Partner 2
Web Service 電子化企業協同合
作架構圖
Transactions
Context/Privacy
Security
Qos
Reliable Messaging
Routing intermediaries
Attachments (binary)
Invocation: SOAP
SOAP
XML
Messaging/Wire
(Invocation)
Why XML-Based RPC ?
COM/CORBA
Client or Server
XML-Based RPC
Client or Server
HTTP:
port 80
Server
(WEB) Server
Tightly-Coupled System v.s.
Loosely-Coupled System
• 平行處理系統
– Tightly-Coupled System:Shared memory, Synchronous
– Loosely-Coupled System:Distributed memory, Asynchronous
• 分散式系統
– Tightly-Coupled System:LAN-based Distributed System
• CORBA, DCOM
– Loosely-Coupled System:Web-based Distributed System
• XML-RPC
• SOAP
Tightly Coupled Distributed System
Request
GetCurrency(country)
Reply
Request
Server1
GetExchangeRate(currency)
Reply
Request
SubmitExchange(amount,currency)
Reply
Server2
Loosely Coupled Distributed System
Request
<method>
GetCurrency(country)
GetExchange(currency)
SubmitExchange(amount,currency)
</method>
Server1
Reply
<response>
reply data …
</response>
Server2
傳統RPC v.s. Web-Based RPC(SOAP)
• RPC:
– (typically) binary
representation
– protocol model
– transport dependent
– programming language
centric
– not extensible
– secure
– robust
– not easily transformed
• XML:
– text representation
– document/message
model
– transport independent
– language independent
– extensible
– not secure (yet)
– not robust
– easily transformed
• It’s implementation-centric • It’s application-centric
SOAP
• Simple Object Access Protocol
–
–
–
–
–
–
a lightweight protocol based on XML
W3C Notes (2000/5/8)(Microsoft主導, Userland)
SOAP Version 1.2: W3C Recommendation(2003/6/24)
Part 0: Primer
Part1: Messaging Framework
Part2: Adjuncts
• 升級版的XML-RPC
– 改善Verbosity(冗言)
– 改善Data Typing
SOAP Message
Main(){…
call rpc(a,b,c);
…}
RPC Library
STUB: rpc(a,b,c){
send((x=a,y=b),server)
Receive(c=z,server)
Return(c);
}
Client Process
Envelope
Message
Header
Message
Body
(Payload)
Envelope, body
(payload) and
header defined
in XML
RPC Library
HARNESS: Main(){
Receive((x,y),client)
Call rpc(x,y,z);
Send(z,client)
}
Application
Procedure rpc(x,y,z){…
Return(z=result);
}
Server Process
SOAP範例:RPC
• PlaceOrder([in] Title string, [in] Author
string, [out] DaysToDelivery integer);
SOAP範例:Request
• The request message in HTTP
POST /BookServer HTTP/1.1
Host: www.quickbooks.com
Content-Type: text/xml
Content-Length: nnnn
SOAPMethodName: Some-Namespace-URI#PlaceOrder
<SOAP:Envelope xmlns:SOAP=“urn:schemas-xml-xmlsoap-org:v1?gt;”>
<SOAP:Body>
<m:PlaceOrder
xmlns:m=“Some-Namespace-URI?gt;”>
<Title>Happy All The Time</Title>
<Author>Laurie Colwin</Author>
</m:PlaceOrder>
</SOAP:Envelope>
SOAP範例:Response
• The reply message in HTTP
HTTP/1.1 200 OK
Connection: close
Content-Type:text/xml
Content-Length: nnnn
<SOAP:Envelope xmlns:SOAP=“urn:schemas-xmlsoap-org:soap.v1?gt;”>
<SOAP:Body>
<m:PlaceOrderResponse xmlns:m=“Some-Namespace-URI?gt;”>
<return>1</return>
<DaysToDelivery>7</DaysToDelivery>
</m:PlaceOrderResponse>
</SOAP:Body>
</SOAP:Envelope>
WSDL Structure
Binding
PortType
Abstract Definition
Messages
(Reusable Part)
Types
Service
Port
Implementation
Specific
WSDL Working Mechanism
Obtain WSDL
WSDL
Published
Web Service
Application
(client, server)
SOAP
Service Description: WSDL Documents
•
•
•
•
•
•
•
Types: structure types of data
Messages: logical messages
Operations: messages group (unit of work)
Port types: operations group
Bindings: operation protocol
Ports: binding with protocol-specific address
Services: collection of ports
WSDL Document(1): Abstract Definition
<definitions>
<types>
[XML Schema describing the used datatypes]
</types>
<message>
[Description of message]
</message>
<portType>
<operation>
<input>…</input>
<output>…</output>
<fault>…</fault>
</operation>
</portType>
<binding>
[Description of network protocol for invocation]
</binding>
...
</definition>
WSDL Document(2): implementation
<definitions>
…
<service>
<port>
[Reference to actual location of service]
</port>
</service>
</definitions>
WSDL Transmission Primitives
•
•
•
•
One-way Operation
Request/Response Operation
Solicit/Response Operation
Notification Operation
One-way Operation
<portType name=“submitOrderType”>
<operation name=“submitOrder”> >
<input message=“SubmitOrderInput”/>
</operation>
</portType>
One-way input
Client
Service endpoint
Request/Response Operation
<portType name=“ItemDescriptionType”>
<operation name=“GetItemDescription”/>
<input message=“ItemDescriptionRequest”/>
<output message=“ItemDescription”/>
</operation>
</portType>
Request (input)
Response (output)
Client
Service endpoint
Solicit/Response Operation
<portType name=“OrderStatusType”>
<operation name=“SendOrderStatus”/>
<output message=“OrderStatus”/>
<input message=“OrderStatusReceipt”/>
</operation>
</portType>
Solicit (output)
Response (input)
Client
Service endpoint
Notification Operation
<portType name=“NotificationType”>
<operation name=“Notification”/>
<output message=“NotificationMessage”/>
</operation>
</portType>
Notification (output)
Client
Service endpoint
Discovery: UDDI
Directory (UDDI)
Inspection
Discovery
UDDI Working Mechanism
Service Discovery Layer
Service Publication Layer
UDDI
Registry
2. Obtains WSDL Information
1. Publishes WSDL Information
Service Description Layer
Application
(client, server)
WSDL
3. SOAP Messages
Published
Web Service
XML messaging & Transport Layer
UDDI Business Structure
Business
Service
Service
Technical Specification
UDDI Registry Data
• Businesses register
public information
about themselves
• Standards bodies,
Programmers,
Businesses register
information about
their Service Types
White
Pages
Business Units
Yellow
Pages
Taxonomies
Green
Pages
Descriptions of
Services
Service Type
Registrations
UDDI Data Structures
UDDI Business Entity(1)
<businessEntity>
<discoveryURL>
[URL returning related document about business]
</discoveryURL>
<name>
[business name]
</name>
...
</businessEntity>
UDDI Business Entity(2)
<businessEntity>
...
<contact>
<personName>
[Name of contact person]
</personName>
<email>
[email address]
</email>
<address>
<addressLine>
[address information]
</addressLine>
</address>
</contact>
</businessEntity>
UDDI Business Service(1)
<businessService>
<name>
[service name]
</name>
<description>
[service description]
</description>
<bindingTemplate>
<description> …</description>
<accessPoint>…</accessPoint>
<tModelInstanceDetails>…</tModelInstanceDetails>
</ bindingTemplate>
...
</businessEntity>
UDDI Business Service(2)
<businessService>
...
<categoryBag>
<keyedReference>
<keyName>…</keyName>
<keyValue>…</keyValue>
<tModelKey>
[taxonomy, one of 4 predefined keys, e.g. UUID]
</tModelKey>
</keyedReference>
</categoryBag>
</businessEntity>
UDDI tModel
<tModelInstanceDetails>
<tModelInstanceInfo>
<tModelKey>…</tModelKey>
<description>…</description>
<tModelDetails>
<overviewDoc>…</overviewDoc>
<instanceParms>…</instanceParms>
</tModelDetails>
</tModelInstanceInfo>
</tModelInstanceDetails>
UDDI API
• Inquiry API
– Find things
•
•
•
•
find_business
find_service
find_binding
find_tModel
– Get Details about things
•
•
•
•
get_businessDetail
get_serviceDetail
get_bindingDetail
get_tModelDetail
• Publishers API
– Save things
•
•
•
•
save_business
save_service
save_binding
save_tModel
– Delete things
•
•
•
•
delete_business
delete_service
delete_binding
delete_tModel
– security…
• get_authToken
• discard_authToken
.NET Platform
Visual Studio .NET
.NET Enterprise
Servers
.NET Building
Block Services
.NET Framework
Operating System on Servers, Desktops, and Devices
Web Services
Web Forms
Windows Forms
Data and XML Classes
Base Classes
Common Language Runtime (CLR)
Java Platform
• JAXM:
– Java API for XML Messaging
• JAXR:
– Java API for XML Registries and
Repositories
– uddi4j, wsdl4j: IBM
• JAXP:
– Java API for XML Processing
– Xerces: Apache
• JAX-RPC:
– Java API for XML based Remote
Procedure Calls
• JAXB:
– Java Architecture for XML Binding
Java Platform: Sun ONE
Service Creation and Assembly
Applications
And
Web Services
Any
Device
Service
Delivery
Backend
Service
Integration
Service Container
Identity and Policy
Platform
System
Web Services應用
• Business Information with rich content
–
–
–
–
Weather reports
News feed
Airline schedules
Stock quotes
- Credit check
- Credit card validation
- Request for quote
- Auctions
• Transactional Web Services for B2B or B2C
– Airline reservations
- Supply chain management
– Rental car agreements - Purchase order processing
• Business Process Externalisation
– Business linkages at a workflow level
– Allows complete integration at a process level
台灣在XML的導入應用
• 電子化公文系統:行政院研考會(1999-2001) (XML, DTD)
• B2B電子商務計畫:經濟部(1999-)
–
–
–
–
–
A計畫、B計畫:資訊流 (Rosettanet)電子業B2B
C計畫:金流
D計畫:物流
E計畫:協同設計
產業電子化標準計畫:傳統產業B2B
• E-Taiwan共通平台計畫:行政院研考會+各單位(2002-2008)
(Web Services)
• 國家型數位學習計畫:國科會(2002-2007) (SCORM)
• 國家型數位典藏計畫:中研院(2000-)(Dublin Core)
• 註:IPv6建置發展計畫:交通部電信總局(2003-2007)
台灣e化:e-Taiwan
• 台灣的G2G、G2B、和G2C基礎建設
– 2002-2007
• 政府單一入口網站
•政府目錄服務:Web Service(UDDI/WSDL)
• 共通作業平台: Web Service(SOAP)
政府單一入口網站
政府目錄服務整體架構
全國政府機關
目錄服務
GDS
GCA
GCA
討論區服務
跨機關目錄服務
X-GDS
X-GDS Update
Module
DMS-2
跨機關應用
目錄服務
X-APDS
全國政府機關
電子公佈欄服務
網路電話服務
網路安全通報
主計人員服務網
組織
U-GDS
機關
U-APDS
DS維護人員
其他應用服務
機關A
機關B
共通作業平台
認證
認證機構
GDS
GRCA
授權
User
Profile
Single Sign-On
目錄
Context
Publish
Browser
Interface
Hand Phone
Interface
PDA
Interface
Kiosk
Interface
Service Flow
Service Flow
Service Flow
Service Flow
XML
Metadata
Service
Accounting
GCA
內政部CA
工商CA
Service Execution Environment(Session/Transaction/Event Handling)
Web
Service
Repository
OID
註冊
XML / HTTP
戶役政
Gateway
稅務
Gateway
地政
Gateway
Authorization
Web Service
Accounting
Web Service
Authentication
Web Service
監理
Gateway
工商
Gateway
Gateway
Payment
Web Service
Digital
Signiture
Organization
Web Service
Document
Web Service
Gateway
Message
Web Service
User Profile
Web Service
金融機構
Gateway Services
Common Services
登錄機制
Gateway
Legacy
System
Legacy
System
Legacy
System
資料來源:資策會
Service
Server
Service
Server
Service
Server
Service
Server
Bank
導入36項便民網路服務
• 92年規劃項目(2003)
– 交通監理
– 公司登記
• 93年規劃項目(2004)
–
–
–
–
觀光旅遊
就業服務
戶政服務
醫療服務
總結
• 第二代全球資訊網已經來臨
– XML技術平台即為主流的Web技術平台
– Browse the Web  Program the Web
– XML技術基礎平台已經成熟(1998-2003)
• 下一波的主流資訊技術發展重點
– Service Oriented Architecture (2001-2005?or 2007?)
• Basic SOA (1999-2003)
• Extended SOA (2003-2005?or 2007?)
– Semantic Web Architecture (2001?-2010?)
• Bottom-Layer: RDF (1999)
• OWL/XTM/DAML-OIL . . .
• 第二波 .COM熱潮:Global e-Marketplace
–
–
–
–
2005? 2007?
ebXML (Web Service)
3G+WLAN
PKI (G2G, G2C, B2B)
Related documents