用了一天多的时间,把川波从杭州带回来的
PPT
大概地扫了一下。小写一篇抛砖引玉
^_^
Service
并不一定是
Web Service
,它的定义更加宽泛。在
PPT
里找到两种小分析一把:
l
Gartner definition: Loosely coupled software components that interact with one another dynamically via standard Internet technologies
l
Keyword: Loosely coupled; Standard; Internet
也就是说
Service
首先要是松耦合的,而我想
Service
内部应该是紧耦合的。这和面向对象程序设计的原则相似。一个类的内部(特别是
private
)成员和方法应该是逻辑上紧密相连的,而暴露给外部的接口则应该是高度抽象的。这个类和其他类的具体实现之间的关系应该是松散的。
其次是
Standard
和
Internet
。
Service
的目的应该是为了隐藏不同系统的异构性,所以通过
Internet
的访问方式必须是标准化的,这样才有利于
Service
理念的推广。我所知道的只有
Web Service
的那些协议:
SOAP, WSDL, UDDI…
貌似
IBM
还在推广它自己的一些协议,忘记叫什么啦,大家补充哦。
l
W3C definition: A software application identified by a URI, whose interfaces and binding are capable of being defined, described, and discovered by XML artifacts and supports direct interactions with other software applications using XML-based messages via Internet-based protocols
l
Keyword: XML, Interactions, Messages, Defined and described
这个就更技术化啦。首先,它已经默认
XML
将是数据交换的格式和协议了(
XML
的力量真是无限大,只不过困惑如果是海量数据传输的话,
XML
怎么搞)。
Interaction
是必然的,在后面我们肯定会用到定义一个
Service Component
里有
import
和
export
,这些都是
Service Component
和外部的交互。顺便说一句,
Service Component
是通过
Interface
和
Reference
与外部打交道,也许这也体现了松耦合的原则。
Message
应该是
Interaction
的载体吧。
SOA
里有
SDO
和
BO
的概念,就是在组件与组件交互时的数据流,
WPS
里应该有详细的实现支持,值得好好研究。
Defined and described
是描述
Service
的利器了,我猜想应该是
WSDL
或者是它的扩展吧。看到一句说
WSDL
作用的话觉得蛮精彩的。
WSDL provides a notation to answer the following questions:
1. What (is this service about)?
2. Where (does it reside)?
3. How (can it be invoked)?
拿它做关键字可能重要的是说
SOA
和传统的编程模型有所不同,描述和定义是其中很重要的内容。就像如果我们没有合适的
IDE
,自己用
Java
搞个
Web Service
就会很郁闷了。
就写这点啦,大家积极发挥!