【正文】
lemented as a coursegrained, discoverable software entity that exists as a single instance and interacts with applications and other services through a loosely coupled, messagebased munication model. SOA ? SOA的理念最初由全球最具權(quán)威的 IT研究與顧問(wèn)咨詢公司 Gartner于 1996年提出: ? “ A serviceoriented architecture is a style of multitier puting that helps anizations share logic and data among multiple applications and usage modes.”。 SOA ? OASIS defines SOA as the following: ? A paradigm for anizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations. ? Wikipedia ? In puting, the term ServiceOriented Architecture (SOA) expresses a perspective of software architecture that defines the use of services to support the requirements of software users. In an SOA environment, resources on a work are made available as independent services that can be accessed without knowledge of their underlying platform implementation。 SOA SOA ? 在計(jì)算領(lǐng)域,面向服務(wù)的體系結(jié)構(gòu)表示這樣一種軟件體系結(jié)構(gòu),它定義使用服務(wù)來(lái)滿足軟件用戶的需求。在一個(gè) SOA環(huán)境下,網(wǎng)絡(luò)上的資源是以獨(dú)立可訪問(wèn)的服務(wù)存在的,訪問(wèn)這些服務(wù)不需要了解它們的底層平臺(tái)實(shí)現(xiàn)細(xì)節(jié)。 ? “一種應(yīng)用程序體系結(jié)構(gòu),在這種體系結(jié)構(gòu)中,所有功能都定義為獨(dú)立的服務(wù),這些服務(wù)帶有定義明確的可調(diào)用接口,可以以定義好的順序調(diào)用這些服務(wù)來(lái)形成業(yè)務(wù)流程”。 SOA ? 面向服務(wù)的體系結(jié)構(gòu) (SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元 (稱為服務(wù) )通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。 Serviceoriented design ? important serviceoriented terminology: ? Services: Logical entities, the contracts defined by one or more published interfaces. ? Service provider: The software entity that implements a service specification. ? Service consumer (or requestor): The software entity that calls a service provider. Traditionally, this is termed a “client”. A service consumer can be an enduser application or another service. – Service locator: A specific kind of service provider that acts as a registry and allows for the lookup of service provider interfaces and service locations. – Service broker: A specific kind of service provider that can pass on service requests to one or more additional service providers. Interfacebased design ? In both ponent and service development, the design of the interfaces is done such that a software entity implements and exposes a key part of its definition. ? Therefore, the notion and concept of “interface” is key to successful design in both ponentbased and serviceoriented systems. ? The following are some key interfacerelated definitions: ? Interface: Defines a set of public method signatures, logically grouped but providing no implementation. An interface defines a contract between the requestor and provider of a service. Any implementation of an interface must provide all methods. ? Published interface: An interface that is uniquely identifiable and made available through a registry for clients to dynamically discover. ? Public interface: An interface that is available for clients to use but is not published, thus requiring static knowledge on the part of the client. ? Dual interface: Frequently interfaces are developed as pairs such that one interface depends on another。 for example, a client must implement an interface to call a requestor because the client interface provides some callback mechanism. Interfacebased design ? The following figure shows the UML definition of a customer relationship management (CRM) service, represented as a UML ponent, that implements the interfaces AccountManagement, ContactManagement, and SystemsManagement. ? Only the first two of these are published interfaces, although the latter is a public interface. ? Note that the SystemsManagement interface and ManagementService interface form a dual interface. Layered application architectures ? Objectoriented technology and languages are great ways to implement ponents. While ponents are the best way to implement services, though one has to understand that a good ponentbased application does not necessarily make an good serviceoriented application. ? The term “the application edge” reflects the fact that a service is a great way to expose an external view of a system, with internal reuse and position using traditional ponent design. A closer look at serviceoriented architecture ? Serviceoriented architecture presents an approach for building distributed systems that deliver application functionality as services to either enduser applications or other services. It is prised of elements that can be categorized into functional and quality of service. A closer look at serviceoriented architecture ? Functional aspects include: ? Transport is the mechanism used to move service requests from the service consumer to the service provider, and service responses from the service provider to the service consumer. ? Service Communication Protocol is an agreed mechanism that the service provider and the service consumer use to municate what is being requested and what is being returned. ? Service Description is an agreed schema for describing what the service is, how it should be invoked, and what data is required to invoke the service successfully. ? Service describes an actual service that is made available for use. ? Business Process is a collection of services, invoked in a particular sequence with a particular set of rules, to meet a business requirement. Note that a business process could be considered a service in its own right, which leads to the idea that business processes may be posed of services of different granularities. ? The Service Registry is a repository of service and data descriptions which may be used by service providers