xml, web services and middleware 國立台灣師範大學 資訊教育系 葉耀明...
Post on 19-Dec-2015
271 Views
Preview:
TRANSCRIPT
XML, Web Services and Middleware
國立台灣師範大學資訊教育系葉耀明
ymyeh@ice.ntnu.edu.tw
內容大綱• 第二代 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-) ( 程式獨立於網頁之外 )
下一代全球資訊網 ( 一 )• 全球性網路整合知識庫• 全球性網路整合服務
webdata
webservice
webdata
webdata
webservice
webdata
webservice
webdata
webdata
下一代全球資訊網 ( 二 )• 第一代 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 nodeSoftware integrated through Web
中介軟體 Middleware 的概念
• Middleware 的定義• 起源:
– 主從架構技術: RPC
• Intranet Middleware:– CORBA/DCOM/RMI
• Internet Middleware:– Web Service
Types of Distributed Processes• Peer-to-Peer
– Send/Receive– Role: no– Application: MP3 exchange
• 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– Multicast/response– Role: Coordinator/Partner– Application: B2B Collaboration, Media
Distribution
A B
BA C
A B
send receive
sendreceive
filtercalling called
request
replyclient server
A B
B
Bmulticast
reply
calling
coordinator
partner
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
Hardware
AP
OS
Hardware
AP
SystemServices
Hardware
AP
SystemServices
Fundamental APClient/Server AP
Client Server
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
Hardware
AP
Hardware
AP
Client/Server AP
Client Server
OS OS
Middleware MiddlewareAPI API
Protocol
註: Application Program Interface
Application Framework
Computer and Communication Facility
System Service
Data Repository
Control Integration
Task Management
Presentation Interface
User Interface
Hardware
Enterpriseware
Middleware
Userware
APPLICATION
Middleware Framework Foundation Components
Computer and Communication Facility
System Service
Data Repository
Control Integration
Device Driver
Operating System
System API
Network Layer
Transport Layer
Session Layer
RPC
Federated Distributed Data Base
DataManagement
CommunicationManagement
ObjectManagement
OSI 7 LayersApplication Layer
應用層 Presentation Layer
表現層 Session Layer
交談層 Transport Layer
傳輸層 Network Layer
網路層Data Link Layer
資料鏈結層 Physical Layer
實體層 raw bit stream
data conversion
routable packet
data frame
end-to-end delivery
connection service
network service
Socket
TCP, UDP
IP
Ethernet MAC
Ethernet Base-band
ORB
RPC
RPC
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 內的 Procedure Call– Same Address Space– Pascal, C– Compiler provides mechanisms
• Procedure name linking
• Parameter binding
• Variable Stack
Process
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 IDProcedure name
• Message Passing
• Send/Receive
Process AMain(){…
send(pid,a,b);
receive(pid,c);
…}
receive(pid,x,y))…send(pid,z);
Process B
RPC (Remote Procedure Call)
• 用 RPC 做 concurrent process 由 White 1976 提出
• Node 間的 Procedure Call– Different Operating System– VB, Delphi, VC++, ODBC– Middleware provides service
• NodeIDProcess IDProcedure name• Message Passing• Request/Reply
RPC ProtocolClient Process
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);
}
Server Process
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);
}
Request
Reply
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) + connection-
oriented(high level) – ATM
Connection Issues特性 connection-
orientedconnectionless
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: user@subdomain.domain e.g. renaud@bnr.ca– 有時加上 hostname eg: myhost.renaud@bnr.ca
TCP/IP layered naming context
socket context
network context
datalink context
server nameport (8 bit)
portIP address (32 bit)
IP addressEthernet address (48 bit)
Dynamic Binding
• client/server 較高階部份用 (run time) • via convention: 用 configuration convention
– 用 environment variable: set MYSERVER=123456
– 用 configuration file: 含 global name table
• via broadcast: 提供 name resolution service– Microsoft NetBEUI(NetBIOS Extended User
Interface) 網路上的芳鄰 • via name server
– Novell SPX/IPX
Microsoft NetBEUI(NetBIOS Extended User Interface)
Client Local NetBIOS Remote NetBIOS Server
ADD.NAME “client21” Update Name Table
Send(Client21 at address21”,,broadcast)
Update Name TableUpdate Name TableSend(“Server4 at address46,broadcast)
ADD.NAME “Server4”
Update Name Table
CALL “Server4”
LISTEN
Session Starts
Lookup NameSend(Session1,Address46)
Receive
Receive
Lookup NameSend(Reply,address21)
ReceiveSession 1Process message”Send “Reply”,”client21”HANGUP
Lookup NameSend(Request,Address46,Session1)
Session StartsSEND“Request”, ”Server4”RECEIVESession1Process MessageHANGUP
Novell SPX/IPX Client@987654 Bindery Server@123456
ScanBindery “GreateServer”
AdvertiseServer “GreatServer”
IPXOpenSocket
Address 123456
Socket 78Address 123456
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 Client Process
Main(){… call rpc(a,b,c);…}
RPC LibrarySTUB: rpc(a,b,c){send((x=a,y=b),server)Receive(c=z,server)Return(c);}
Server ProcessMASTER: Loop( ) {receive((x,y),client) spawn slave(x,y,client)}
ApplicationProcedure rpc(x,y,z){…Return(z=result);}
Request
Reply
SLAVE:{ call rpc(x,y,z); send(z,client)
}
Failure Modes
• client call 後 crash:– 處理 : client discard message
• message lost:– 處理 : 用 ACK, timeout, resend: three-packet
protocol: request, reply, ACK– no-more-than-once RPC semantics: 用 sequence
number 控制 server resend• server crash:
– 處理 : (1)client resend call, retry 幾次後,依靠server callback 或 user abort request
– (2)server 做 atomic-transaction service• server lost message
Three-Packet Protocol
Client Process
Main(){… call rpc(a,b,c);…}
RPC LibrarySTUB: 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)
Server ProcessRPC LibraryHARNESS: Main(){Receive((x,y),client)Check rpc Sequenceif Sequence > Last Msgcall rpc(x,y,z); }
ApplicationProcedure rpc(x,y,z){…Return(z=result);}
Request
Reply
Inc Last Msgsend(z,caller)receive(ACK,caller)if (Timeout(receive))resend(z,caller)
ACK
resend
CORBA (Common Object Request Broker Architecture)
由 OMG (Object Management Group)所制定的分散式物件標準規格
目前為 CORBA 3.0 介面定義語言 (IDL; Interface Definition
Language) 讓各種語言所寫成的物件可以達到共用的目的
以 ORB (Object Request Broker) 為物件間溝通的管道
CORBA Architecture
CORBA ORB
Application Objects Common Facilities
Event LifeCycle TimeNaming
Common Object Services (16)
... ...
Query
CORBA 架構
CORBA ORB
Client Stub Server Skeleton
IDL
Java
IDL
C++
IDL
AdaJava C++ Ada
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
UDDI
WSDL
Service Broker
ServiceRequester
ServiceProvider
Publish Request
Bind and Request
Reply
SOAP
UDDI 2.0: Universal Description, Discovery and Integration (2001/6)WSDL: Web Service Description LanguageSOAP: Simple Object Access Protocol (2001/7)
新型態的入口網站: - 給程式 (Web Service) 用的
Basic Web Services Stack
Transport Network
XML Messaging
Service Description
Service Publication/Discovery
HTTP,SMTP,FTP over TCP/IP
SOAP
WSDL
UDDI
一個 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
Platform
Network/Transport
Core XML Standards
Partner Profiles
Reliable Messaging
Business Process-Workflow
Registry/Repository
Business Content
Industry Vertical Content
Universal Business Content
Sec
urity
Man
agem
ent
Technical Infrastructure
Standards
Business orApplicationStandards
Architecture of Web Services :Extended SOA
XML
SOAP
Messaging/Wire(Invocation)
WS
-Atta
chm
ents
(D
IME
)
WS
-Rel
iabi
lity
WS
-Rel
iabl
e M
essa
ging
WS
-Add
ress
ing
Structure (XML Schemas)
Service Description (WSDL)
Description
Semantic Web
RDF (meta data)
Process Flow and Pattern Description(Workflow, Orchestration, Transaction,
Policy, Portal)
Inspection (WSIL)
Directory (UDDI)
Discovery
WS-Security(Federation, Trust,
Conversation, SecurityPolicy)
ManagementWSDM
Web Services Implementation
UDDIRegistry
Web Server
WSDL
SOAP over HTTP
Web ServicesClient Web Service
Runtime
Business FunctionalityWeb Services
System
SOAP
Service Discovery Service Publish
Service Description
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
Workflows ERP
Data Repository
EAI
Components
Business Partner 1
Wrap intra-enterprise Application
Web Services
Workflows ERP
Data Repository
EAI
Components
Business Partner 2
Wrap intra-enterprise Application
Web Services
Communication LayerSOAP,HTTP,FTP,SMTP
Content LayerWSDL,ebXML,Rosettanet
Business Process LayerWSFL,XLANG,ebXML,
Rosettanet
B2B Interactions
Web Service 電子化企業協同合作架構圖
Invocation: SOAP
XML
SOAP
Messaging/Wire(Invocation)
Att
achm
ents
(bi
nary
)
Qos
Rel
iabl
e M
essa
ging
Sec
urit
y
Con
text
/Pri
vacy
Tra
nsac
tion
s
Rou
ting
in
term
edia
ries
Why XML-Based RPC ?
COM/CORBA Client or Server
XML-Based RPCClient or Server
Server (WEB) Server
HTTP: port 80
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
Server1 Server2
Request
Reply
GetCurrency(country)
Request
Reply
GetExchangeRate(currency)
Request
Reply
SubmitExchange(amount,currency)
Loosely Coupled Distributed System
Server1 Server2
Request
<method> GetCurrency(country) GetExchange(currency) SubmitExchange(amount,currency)</method>
Reply
<response> reply data …</response>
傳統 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
• It’s implementation-centric
• XML:– text representation
– document/message model
– transport independent– language independent– extensible– not secure (yet)– not robust– easily transformed
• 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
Client Process Server Process
Envelope
MessageHeader
MessageBody
(Payload)
Envelope, body (payload) and header defined
in XML
Main(){… call rpc(a,b,c);…}
RPC LibrarySTUB: rpc(a,b,c){send((x=a,y=b),server)Receive(c=z,server)Return(c);}
RPC LibraryHARNESS: Main(){Receive((x,y),client)Call rpc(x,y,z);Send(z,client)}
ApplicationProcedure rpc(x,y,z){…Return(z=result);}
SOAP 範例: RPC
• PlaceOrder([in] Title string, [in] Author string, [out] DaysToDelivery integer);
SOAP 範例: Request• The request message in HTTPPOST /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 HTTPHTTP/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
Messages
Types
Service
Port
Abstract Definition
(Reusable Part)
Implementation
Specific
WSDL Working Mechanism
Application(client, server)
PublishedWeb Service
WSDL
SOAP
Obtain WSDL
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>
Client Service endpoint
One-way input
Request/Response Operation<portType name=“ItemDescriptionType”>
<operation name=“GetItemDescription”/> <input message=“ItemDescriptionRequest”/><output message=“ItemDescription”/>
</operation></portType>
Client Service endpoint
Request (input)
Response (output)
Solicit/Response Operation
<portType name=“OrderStatusType”><operation name=“SendOrderStatus”/>
<output message=“OrderStatus”/><input message=“OrderStatusReceipt”/>
</operation></portType>
Client Service endpoint
Solicit (output)
Response (input)
Notification Operation
<portType name=“NotificationType”><operation name=“Notification”/>
<output message=“NotificationMessage”/></operation>
</portType>
Client Service endpoint
Notification (output)
Discovery: UDDI
Inspection
Directory (UDDI)
Discovery
UDDI Working Mechanism
UDDIRegistry
Service Publication LayerService Discovery Layer
Application(client, server)
PublishedWeb Service
WSDL
3. SOAP Messages
Service Description Layer
1. Publishes WSDL Information2. Obtains WSDL Information
XML messaging & Transport Layer
Service
UDDI Business Structure
Business
Service
Technical Specification
UDDI Registry Data
• Businesses register public informationabout themselves
• Standards bodies, Programmers, Businesses register information about their Service Types
WhitePages
YellowPages
GreenPages
Service TypeRegistrations
Business Units
Taxonomies
Descriptions of Services
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 PlatformVisual Studio .NET
.NET Enterprise Servers .NET Framework
.NET Building Block Services
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
Platform
Identity and Policy
Service Container
ApplicationsAnd
Web ServicesServiceDelivery
ServiceIntegration
Service Creation and Assembly
Any
Device
Backend
System
Web Services 應用• Business Information with rich content
– Weather reports - Credit check– News feed - Credit card validation– Airline schedules - Request for quote– Stock quotes - 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
跨機關目錄服務X-GDS
跨機關應用目錄服務X-APDS
討論區服務討論區服務
全國政府機關電子公佈欄服務全國政府機關
電子公佈欄服務
網路電話服務網路電話服務
網路安全通報網路安全通報
主計人員服務網主計人員服務網
其他應用服務其他應用服務
GCAGCA
組織U-GDS
機關U-APDS
機關 A 機關 B
X-GDS Update Module DMS-2
DS維護人員
共通作業平台
Single Sign-On
BrowserInterface
Service Flow
Hand PhoneInterface
PDAInterface
KioskInterface
WebService
Repository戶役政
Gateway稅務
Gateway地政
GatewayAuthorizationWeb Service
AccountingWeb Service
AuthenticationWeb Service
Context
Gateway Services
UserProfile
Common Services
XMLMetadata
目錄
登錄機制
Publish
LegacySystem
認證
授權
ServiceAccounting
XML / HTTP
監理Gateway Gateway
Gateway
工商Gateway
Service Execution Environment(Session/Transaction/Event Handling)
PaymentWeb Service
DigitalSigniture
DocumentWeb Service
MessageWeb Service
LegacySystem
LegacySystem
ServiceServer
ServiceServer
ServiceServer
Gateway
GRCA
Bank
Service Flow Service Flow Service Flow
OrganizationWeb Service
User ProfileWeb Service
GCA內政部 CA
認證機構
金融機構
資料來源 : 資策會
GDS
ServiceServer
工商 CA
OID註冊
導入 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)
top related