什麼事SOA

最近上課仍是老師的課堂測試,對SOA架構不是很陌生了,那麼還有哪些重要的架構呢?web

單體架構數據庫

Web應用程序發展的早期,在開發服務端企業應用時,應用須要支持各類不一樣類型的客戶端,好比桌面瀏覽器、移動瀏覽器以及原生移動應用。應用還須要向第三方提供可訪問的API,並經過Web Service或者消息代理與其它應用實現集成。大部分web工程是將全部的功能模塊(service side)打包到一塊兒並放在一個web容器中運行,不少企業的Java應用程序打包爲war包。應用經過執行業務邏輯、訪問數據庫、與其它系統交換信息、並返回一條HTML/JSON/XML響應,來處理請求(HTTP請求與消息)單體應用巨大的代碼庫可能會讓人望而生畏,特別是對那些團隊新成員來講。應用難以被理解和進行修改,進而致使開發速度減慢。因爲沒有清晰的模塊邊界,模塊化會逐漸消失。另外,因爲難以正確把握代碼變化,致使代碼質量逐步下滑,陷入惡性循環。過載的IDE——代碼庫越大,IDE速度越慢,開發者的生產效率越低。瀏覽器

過載的Web容器——應用越大,Web容器啓動時間越長。容器啓動耗費時間,極大影響到開發者的生產效率。對部署工做也有負面影響。持續部署困難——巨大的單體應用自己就是頻繁部署的一大障礙。爲了更新一個組件,你必須從新部署整個應用。這會中斷那些可能與更改無關的後臺任務(例如Java應用中的Quartz任務),同時可能引起問題。另外,未被更新的組件有可能沒法正常啓動。從新部署會增長風險,進而阻礙頻繁更新。由於用戶界面開發者常常須要進行快速迭代與頻繁從新部署。架構

因此這對用戶界面開發者而言更加是個難題。應用採用多層架構或者六角架構,主要由如下幾類不一樣組件構成:展示組件——負責處理HTTP請求並響應HTML或者JSON/XML(對於web Services APIs)業務邏輯——應用的業務邏輯數據庫訪問邏輯——用於訪問數據庫的數據訪問對象ide

SOA架構模塊化

SOA架構,是一種粗粒度、開放式、鬆耦合的服務結構,要求軟件產品在開發過程當中,按照相關的標準或協議,進行分層開發。經過這種分層設計或架構體系可使軟件產品變得更加彈性和靈活,且儘量的與第三方軟件產品互補兼容,以達到快速擴展,知足或響應市場或客戶需求的多樣化、多變性。微服務

微服務架構微服務是一種用於構建應用的架構方案。微服務架構有別於更爲傳統的單體式方案,可將應用拆分紅多個核心功能。每一個功能都被稱爲一項服務,能夠單獨構建和部署,這意味着各項服務在工做(和出現故障)時不會相互影響。是應用的各項核心功能,並且這些服務都可獨立運行。可是,微服務架構不僅是應用核心功能間的這種鬆散耦合,它還涉及重組開發團隊、涉及如何進行服務間通訊以應對不可避免的故障、知足將來的可擴展性並實現新的功能集成。測試

相關文章
相關標籤/搜索