SOA
面向服務架構SOA
丁海升
(石家莊鐵道大學,河北省石家莊市050000)
摘 要:SOA是在1996年提出的一個概念,旨在讓軟件變的有彈性,能夠迅速響應業務的需求,實現實時企業。基本理念是讓所有信息系統中需要整合的業務使用服務和接口聯系起來,接口中立,與開發平臺和編程語言無關。這也使得異構信息系統變的可開發,“信息孤島”,重復造輪子等問題在SOA的體系架構下不攻自破。
關鍵詞:SOA;信息孤島;服務和接口;
一、SOA發展
簡單通俗的說就是,SOA是不同業務建立不同的服務,服務之間的可以數據交互粗粒度的服務接口分級,這樣松散耦合提高服務的重用性,也讓業務邏輯變的可組合,并且每個服務可以根據使用情況做出合理的分布式部署,從而讓服務變的規范,高性能,高可用。
在之前的開發軟件的過程中,也做過一些需求分析的工作,當然想要滿軟件最后的條件也是要建立在需求的完成度上,而在軟件開發過程中呢也需要我們去不斷更改和優化,然而SOA便是我們優化過程的一個選擇,這也符合他的宗旨,不過它是建立在服務階層方面,這一點我們也是要去考慮的。
面向服務架構的主要技術之結構編程方法,40年前國際上發生了“軟件危機”,如IBM公司開發一個操作系統、或美國的航空公司開發飛機訂票系統,都花費了上千人年的工作量,開發周期長、而開發出來的產品卻是錯誤很多,難以維護和適應修改。正在此時,一位荷蘭的物理家E.W.Dijkstra提出了一種“結構程序設計方法”,他認為:人的智力是有限的,采用數學或物理學的思維方法,用枚舉、抽象、歸納、類比等思維方式簡化問題。由于我也是數學系畢業的,我拜讀了他的所有論文,就編寫一本著作“編程方法學”,此書曾三次獲得著作大獎,并在全國十多所名牌大學講過課。用此方法擴展到軟件設計中時,稱為“結構化分析和結構化設計(SASD)”。所謂“結構程序設計方法”,就是基于面向對象設計方法的早期藍本,側重於解決程序正確性的編程的方法,以此為基礎建立了軟件工程這門學科,建立了編程的基礎理論體系。
二、面向服務之面向對象
面向服務架構的主要技術之“面向對象”的可重用理論,我們都知道由面向對象發展到面向構件,由面向構件再發展到面向服務,因此它們的認知觀和基礎理論都是息息相關的,解決大型軟件的開發效率和質量除了要解決編程的正確性外,還必需解決開發周期長、復用性差、成本高、文檔多、以及難以適應系統演化等問題,十多年來仍舊困惑著這門學科,“軟件危機”仍未解決。人們的知識是從一個定理、一個原理逐步積累起來的,社會是依靠知識的不斷積累發展的。然而編制軟件每次卻都是從零開始,這是造成“軟件危機”的根本原因。由此提出了編程工作是否也可以重用以前成功的經驗和程序呢?。整整經過十多年的探索,到七十年代才獲得成功。
三、面向服務之面向構件架構
面向服務架構的主要技術之構件架構,由于這種OO方法真正用于實際工程中開發的應用軟件卻很少見到,工程上的實施缺乏開發規范;在技術上要術開發人員的素質較高;最大的問題是被開發出來的軟件難以演化,而軟件要能適應變化是客觀存在的。為此發展出單純重用的“構件和架構”技術及其理論體系。在1998年日本京都召開的“基于構件的軟件開發(CBSD)”國際專題學術會議上,一致認為軟件開發技術離不開構件和體系結構。軟件體系結構現簡稱“架構”。在此之前的軟件架構都采用層次結構的架構,直到分布式系統提出了用戶端/服務器模式后,才產生對架構的研究,出現了構件和架構。
XML和Web服務是當今的熱門技術,因為它們在實現面向服務的架構(SOA)上擔當了重要的角色。目前獨立的、而且通常是相互孤立的應用程序,制約了業務服務的共享,SOA則正在解決這一問題。通過給單個業務操作進行定義或在表層加上“服務訪問點”,IT組織能夠實現以下目標:1使IT資源與其業務功能更密切地結合在一起。通過以下方法的最佳組合和匹配,建立更加動態、更有效地利用成本的系統。2購買和自建自制和外包,更迅速地發布“組合”應用程序(想想“Web流[Web flow]”和“工作流[work flow]”),提供統一的、面向任務的跨業務視圖。3通過更加細致的增量管理需求和變化,在應用程序生命周期上獲得更高的靈活性。用提供“業務透明性”的基礎架構替換不透明的、“黑盒子”系統更容易——這種基礎架構根據流經應用程序的總體信息,提供實時的業務智能。對象和組件已經成功地在應用內提供了重用性(應用程序的定義是:以單元形式開發和部署的代碼)。但是,SOA依賴的是在應用程序之間實現重用。用SOA把不同的應用程序互連起來,這根本不是什么新東西——想想以前定義分布式的、應用間通信架構的一些努力(不用費力想什么新的首字母縮略詞):4同步的(面向RPC):CICS分布式程序鏈接(DPL)、分布式計算環境(DCE)、分布式組件對象模型(DCOM)、公共對象請求代理體系結構(CORBA)IIOP、Java遠程方法調用(RMI)、關系數據庫管理系統(RDBMS)存儲過程,等等。5異步的(面向消息的):CICS臨時數據隊列(TDQ)、Tuxedo ATM、IBM MQSeries、Tibco Rendezvous、Microsoft消息隊列(MSMQ)、Java消息服務(JMS),等等。
參考文獻
[1]CSDN軟件開發網https://blog.csdn.net/wr98442878/article/details/8992682
[2]中國知網https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbnam
[3]軟件架構實踐第二版
總結
- 上一篇: 【JavaWeb】石家庄地铁搭乘系统——
- 下一篇: NodeMCU学习(三) : 进入网络世