吳文慶,修雅慧
(1.蘇州市職業大學 計算機工程學院,江蘇 蘇州 215104;2.齊齊哈爾醫學院,黑龍江 齊齊哈爾 161006)
近年來,業界對軟件開發方法的研究也在逐漸深入,出現了多種不同的開發平臺和商業系統,但是傳統的軟件開發平臺在面對較為復雜的軟件系統時,容易留下系統漏洞,繼而形成“信息孤島”。[1]此時,一種面向服務的體系結構被提出,即SOA系統,這種系統利用服務流程化的組織方式,構建出一種分布式系統,具有較好松散耦合性,同時,軟件的復用度和擴充性也相對較優。[2]
SOA體系結構是一種面向服務的體系結構,同時也是一種組件模型,在SOA體系結構中將不同功能單元集合成為服務,利用體系結構定義中的接口,將這些服務組合起來,最終構成一個完整的體系結構。[3]其中所謂的接口定義屬于服務的硬件平臺,這種平臺相對獨立,利用中立的方式實現對體系的構建,而這種接口定義的主要特征就是松散耦合。這種松散耦合具有靈活性較高的優勢,且在發生變化后,松散耦合還會繼續存在。
由上可知,SOA體系結構和傳統的軟件開發的方法不同,這種體系結構之所以得到了廣泛的應用,正是因為其本身具有的特點優勢,主要包括以下幾個方面:
(1)松散耦合。松散耦合是SOA體系結構的特點之一,軟件開發人員依托這個特點,定義良好的接口,實現獨立的開發設計,在保證軟件開發獨立性的同時,不需要對系統的兩端進行緊密控制,相比較傳統的軟件開發方法,更具有靈活性,降低了開發人員的操作難度。[4]
(2)標準化。SOA體系結構是在行業標準之上建立而成的,而傳統的軟件開發方法中存在著嚴重的技術壟斷情況,SOA體系機構突破了這一困境,幫助設計人員建立起一種最優化的服務組合。
(3)可重用服務。在SOA體系結構中存在的服務,都是在目錄中開發出來的,能夠分布在整個網絡系統中,很容易就會發現服務,繼而也很容易重新產生組合服務。[5]由此,設計人員能夠從根本上避免重復開發的問題,保證了服務事項的一致性。
由上可知,SOA體系結構是一種面向服務的體系結構,因此這種體系結構中主要包括了三個角色:
(1)服務消費者,是指使用服務的應用程序或者其他服務,在對注冊中心的服務查詢后,根據接口說明信息,通過某種傳輸協議和服務綁定的情況,執行具體的服務功能。
(2)服務提供者,用來創建服務的實體,這種實體能夠接收到服務消費者提出的請求,并且可以在遠程執行請求服務,通過向注冊中心發布相應的服務接口信息,進而為服務消費者提供發現和訪問服務的功能。
(3)服務注冊中心,是整個體系結構的核心,位于中心位置,承擔著提供展示服務的功能,在這個過程中服務消費者能夠查詢到相關的服務接口信息,這是因為在這個注冊服務中心建立了服務信息庫,能夠讓感興趣的消費者順利進行查詢。
而在利用這種體系結構進行軟件開發工作時,軟件的開發設計人員需要保證用戶操作軟件要滿足以下幾點內容:
(1)首先,軟件發布信息的目的在于提高軟件的快捷性能,讓用戶能夠在簡單的操作下訪問頁面,因此設計人員要保證軟件發布的信息能夠較為容易地被服務對象發掘,也能夠輕易的調用,以此滿足消費者的需求。
(2)其次,消費者在使用軟件的時候,需要通過查詢中心,找到符合需要的要求,要保證整個過程簡單快捷,進而挑選出符合要求的服務。因此可知,設計人員在設計軟件的過程中,要保證查詢中心的功能模塊清晰明確,讓消費者能夠在短時間內找到符合個人需求的服務。
(3)最后,消費者在使用軟件時,還需要對相關服務進行確認,所以設計人員要保證頁面簡潔明了,能夠直接看到所需要的服務。SOA體系結構中的核心實現技術是Web服務,SOA中的應用則需要通過網絡接口服務實現。此外,想要實現調用,還需要和Web服務的體系結構基本吻合。
SOA體系結構最為常見的一種應用實例就是計算機教學管理系統,簡稱CMI,這種管理系統必須要具備互相操作性。國家制定出臺的遠程教育標準明確指出:一是在不同的計算機教學管理系統中,可以使用同樣的課程,二是還要能讓開發出來的不同課程系統能夠在一個教學管理系統中應用。通過以上兩點就能夠讓不同計算機教學管理系統中的課程互相使用,在簡單便捷的情況下,實現對學生數據的分析,實現信息的及時反饋。隨著科學技術的發展,傳統的軟件開發系統已經不能夠滿足新時期社會發展對計算機教學管理系統的要求,而SOA體系結構中的開發性和互相操作性,能夠在簡單開發的基礎上,在不同的教學管理系統上進行課程開發和交互,滿足以上要求。因此可知,基于SOA體系結構開發出來的CMI計算機教學管理系統較為便捷,隨著時代的發展,SOA體系結構會日益優化成熟,得到更加廣泛的應用。
由上述內容可知,SOA體系結構在CMI計算機教育管理軟件設計開發工作中較為常見,利用SOA系統的優點和特性,能夠滿足國家對CMI系統的要求,形成一個新的CMI系統。在計算機教育管理系統、考試系統、教務管理系統中都需要獲取學生的基本信息,這就需要利用SOA體系結構中的重用服務功能。雖然傳統的軟件開發系統中也能夠實現這種復用的功能,但是傳統的軟件開發的復用功能是一種代碼復用,而SOA體系結構中的復用是一種功能復用。
本文在基于SOA教學管理系統進行設計時,考慮到Java技術本身具有跨平臺的特點,因此在J2EE提供的Web服務能夠更加輕松地構建出設計框架,也能夠讓相關的軟件開發設計人員訪問到業務流程的SOA系統。因此,本文基于SOA體系結構之外,同時使用了J2EE技術,開發計算機教學管理系統、體系結構,如圖1所示:

圖1 計算機教學管理系統的體系結構
首先是表示層,也就是外部服務請求,在這個層次環節中包括了接口、組件、瀏覽器以及客戶端等,其中接口是用來完成用戶處理工作的,要和用戶交互組件相連接。此外,在這個系統中的客戶端可以采用其他編程語言編寫出來的,且能夠向不同的服務器發送的請求。其次是防火墻,作為一種隔離風險區域的網絡安全模型,不僅要和局域網進行連接,還要有效降低風險。在這個過程中防火墻可以對網絡的通行量進行全面的分析,通過監控阻止不安全信息的進入,抵制非法用戶和一些具有危害性的數據,保證系統的安全運行。
考慮到計算機教學管理系統中的使用者除了教師,還包括學生,因此學生注冊也是其中的重要功能。在建設具體的CMI系統的過程中,還需要實現學生的注冊功能?;赟OA教學管理系統的具體設計情況,接下來就是在設計的基礎上,讓系統功能得以實現。以學生注冊功能為例具體說明:如果在Java中建立Web服務,本文采用的開發工具為WSAD,這種工具能夠根據具體的Bean創建出對應的Web服務。首先使用Bean中的消息生成WSDL文件,然后利用WSDL文件創建出描述的Web服務,最后使用SOAP對HTTP的數據進行分析。在本文設計的計算機教育管理系統中應該包括兩大類,分別為:StuInfo、StuRegisterManager,前者是為了保存學生信息,后者是為了寫入學生信息,通過一系列的編碼、生成、發布、調用等過程,創建出具體的系統。最終,通過邏輯關系理順流程,整合Web服務,一個基于SOA的教學管理系統就實現了。
綜上所述,SOA系統的提出,讓一種全新的軟件結構出現在大眾視野中,和傳統的軟件結構相比,這種軟件結構的標準化較強、松耦合和粗粒度也相對較好,將它和Web服務技術相結合,能夠進一步推動SOA系統成熟發展,從而在不同的開發環境下、不同的構建平臺上,建立起軟件系統。因此,SOA系統的自身優勢符合軟件開發的發展趨勢,在未來會成為一種主流的軟件開發技術。