- SOA實踐
- 余浩等編著
- 976字
- 2018-12-26 17:00:20
1.1.1 服務是可重用的
可重用性指的是,為某一目的而實現的模塊也能被用于其他的目的。具體到服務這個層面,就是服務所包含的邏輯不僅可以被用于最初設計時的目的,也可以被用于其他的目的,即服務可以出現在不同的應用中,它是上下文無關的。
可重用性也是軟件業一直追求的目標。回顧軟件發展的歷程,在面向過程的開發方法中,重用是通過函數來實現的,這些函數實現了一些通用的功能。函數一般被組合為函數庫,這些函數庫可以被用在不同的系統中,從而實現重用。在面向對象的開發方法中,重用的基本單位為對象。對象封裝了數據和對這些數據操作的方法,因此實現了一個更高層次的抽象。特別是對象之間組合形成的框架,不僅實現了功能上的重用,還實現了對象之間的關系的重用。但是,面向過程和面向對象的重用都局限于具體的實現語言,因此它們都不能實現跨語言的重用。隨著組件的概念及基于組件的開發模式的提出,在跨語言重用方面得到突破。組件可以跨越具體的編程語言和編程平臺實現一定程度上的重用。但是組件的概念更偏向于技術,一般粒度都很小,不能直接滿足企業業務的需求,隨后便出現了服務的概念,它可以和企業業務直接對齊,提供粗粒度的功能,其底層實現可以通過組件來完成。從軟件的發展歷程可以看出,抽象的程度一直在提高,直至和企業業務對齊。顯然,服務提供了一個更高層次的重用。
服務的可重用性是服務的很重要的一個特點,它能帶來很多好處。首先,最直接的好處就是降低了開發成本,提高了投資回報率。企業在開發新的應用時,可以先檢查是否現有的服務部分或全部滿足新的應用需求,如果存在這樣的服務,則不需要進行該部分的開發,從而節省了成本。其次,由于利用了現有的服務,開發時間也相應縮短。此外,服務的重用也提高了系統的質量,因為之前開發過的服務已經經過多次的測試和實踐的檢驗,確認是可靠的服務。如果新的應用都是通過現有的服務組合而成的,顯然,其質量能夠得到保證。
服務的可重用性在服務設計階段要重點加以注意,它給設計帶來了新的挑戰。在設計服務時,不僅要考慮到現有的應用,還要把眼光放長遠,考慮到將來可能出現的新應用,使得設計出的服務具有一般通用性。
服務的可重用性也使得創建一個中心服務庫成為必要,在中心服務庫中可以儲存企業現有的所有服務。在企業需要新的應用時,可以先檢查該中心服務庫,看是否存在現有的服務部分或全部滿足企業新的應用需求。
- FuelPHP Application Development Blueprints
- OpenShift開發指南(原書第2版)
- Python自動化運維快速入門
- Vue.js快跑:構建觸手可及的高性能Web應用
- Building an RPG with Unity 2018
- 零基礎入門學習Python(第2版)
- Python機器學習算法: 原理、實現與案例
- C# and .NET Core Test Driven Development
- 編程可以很簡單
- C語言程序設計與應用(第2版)
- Deep Learning with R Cookbook
- Mastering Elixir
- Node.js從入門到精通
- After Effects CC案例設計與經典插件(視頻教學版)
- Java從入門到精通(視頻實戰版)