service oriented architecture 構造分布式計算的應用程序的方法
zh.wikipedia.org/wiki/面向服務的架構
【程序功能做為服務】
面向服務的體系結構(英語:service-oriented architecture)是構造分布式計算的應用程序的方法。它將應用程序功能作為服務發送給最終用戶或者其他服務。
它采用開放標準、與軟件資源進行交互並采用表示的標準方式。
- 服務封裝
- 服務鬆耦合(Loosely coupled) - 服務之間的關係最小化,只是互相知道。
- 服務契約 - 服務按照服務描述文檔所定義的服務契約行事。
- 服務抽象 - 除了服務契約中所描述的內容,服務將對外部隱藏邏輯。
- 服務的重用性 - 將邏輯分佈在不同的服務中,以提高服務的重用性。
- 服務的可組合性 - 一組服務可以協調工作並組合起來形成一個組合服務。
- 服務自治 – 服務對所封裝的邏輯具有控制權
- 服務無狀態 – 服務將一個活動所需保存的資訊最小化。
- 服務的可被發現性 – 服務需要對外部提供描述資訊,這樣可以通過現有的發現機制發現並訪問這些服務。
en.wikipedia.org/wiki/Service-oriented_architecture
【不強調模塊 分布式】
Different services can be used in conjunction to provide the functionality of a large software application.[4]
Standardized service contract
Services adhere to a standard communications agreements, as defined collectively by one or more service-description documents within a given set of services.Service reference autonomy (an aspect of loose coupling)The relationship between services is minimized to the level that they are only aware of their existence.Service location transparency (an aspect of loose coupling)Services can be called from anywhere within the network that it is located no matter where it is present.Service longevityServices should be designed to be long lived. Where possible services should avoid forcing consumers to change if they do not require new features, if you call a service today you should be able to call the same service tomorrow.
Service abstraction
The services act as black boxes, that is their inner logic is hidden from the consumers.
Service autonomy
Services are independent and control the functionality they encapsulate, from a Design-time and a run-time perspective.
Service statelessness
Services are stateless, that is either return the requested value or give an exception hence minimizing resource use.
Service granularity
A principle to ensure services have an adequate size and scope. The functionality provided by the service to the user must be relevant.Service normalizationServices are decomposed or consolidated (normalized) to minimize redundancy. In some, this may not be done, These are the cases where performance optimization, access, and aggregation are required.[15]
Service composability
Services can be used to compose other services.
Service discovery
Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.
Service reusability
Logic is divided into various services, to promote reuse of code.
Service encapsulation
Many services which were not initially planned under SOA, may get encapsulated or become a part of SOA.
service oriented architecture 構造分布式計算的應用程序的方法