- SOA實踐
- 余浩等編著
- 707字
- 2018-12-26 17:00:20
CHAPTER 1 面向服務的架構概述
1.1 什么是服務(Service)
在開始任何工作之前,需要有一個共同的基礎。這個共同的基礎就是對一些基本概念的統一定義,沒有這些定義,任何討論都失去意義。在了解面向服務的架構時,同樣如此。
服務是面向服務的架構中的核心概念,不理解服務的概念,就無法理解面向服務的架構,所以首先需要定義服務的概念。但是目前為止對服務這個概念沒有一個統一的定義,不同的組織機構對它有不同的理解。下面列出服務的一些定義。
W3C(World Wide Web Consortium)將服務定義為:“服務提供者完成一組工作,為服務使用者交付所需的最終結果。最終結果通常會使使用者的狀態發生變化,但也可能使提供者的狀態改變,或者雙方都產生變化”。該定義給出了服務涉及的雙方,即服務提供者和服務使用者。
OASIS(Organization for the Advancement of Structured Information Standards)則將服務定義為一種訪問某一個或多個能力的機制,這種訪問使用預先定義好的接口,并與該服務描述的約束和策略一致。該定義給出了服務的重要元素,即接口、約束和策略。
在Wikipedia中,服務是指自包含、無狀態的業務功能,通過良好定義的標準接口,接受多方的請求,并返回一個或多個響應。服務不應該依賴于其他的服務,并與使用的技術無關。該定義給出了服務的重要特征,即自包含和無狀態。
以上三個定義都試圖從抽象的角度給出服務的定義,但都只是描述了服務的某一方面,并沒有全面地刻畫出服務的特點。為了更深刻地了解服務的概念,需要了解服務的特點。一般來說,服務具有以下9個特點:
(1)服務是可重用的。
(2)服務都有服務合同。
(3)服務之間是松耦合的。
(4)服務隱藏了具體的邏輯。
(5)服務是可組合的。
(6)服務是自治的。
(7)服務是無狀態的。
(8)服務是可被發現的。
(9)服務一般是粗粒度的。
以下將逐一介紹服務的這些特點。
- Web前端開發技術:HTML、CSS、JavaScript(第3版)
- Mastering Natural Language Processing with Python
- Developing Middleware in Java EE 8
- Learning AWS Lumberyard Game Development
- Learning Linux Binary Analysis
- Hands-On Swift 5 Microservices Development
- JAVA程序設計實驗教程
- Python Data Analysis Cookbook
- 常用工具軟件立體化教程(微課版)
- 執劍而舞:用代碼創作藝術
- Python機器學習之金融風險管理
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- 零基礎輕松學C++:青少年趣味編程(全彩版)
- Google Adsense優化實戰
- 軟件設計模式(Java版)