通過這次大作業,讓我更深刻的理解了SOA體系結構,并且理解了上課時聽不明白的抽象名詞。
終于完成了,感謝精誠合作的同志們。
最近重看書本上有關SOA的章節,每次都有新的感覺,好像不是那么難懂了。除了老師給出的范例,我們在圖書館下載了大量的論文,相關的設計領域包括了典型企業、城市GIS綜合平臺、旅游資源信息服務、校園信息系統等,通過對實例的學習,更直觀而具體地感受到了SOA的方方面面。“服務”、“web封裝”、“松散耦合”、“業務流程”等等的關鍵詞,不再單純的理論名詞,而是可以給出更直觀的實例和平行應用領域的對比說明。
SOA是一種架構模型,“服務”是SOA的核心,我覺得這種以人為本的精神在現在這一消費時代是強有力的競爭力,得到客戶的擁護才有發展的前景,SOA體現的正是這種理念。SOA是一種構造分布式系統的方法,它將業務應用功能以服務的形式提供出來,以便更好的復用、組裝和與外部系統集成,從而降低開發成本,提高開發效率。從這一角度看,對于開發者SOA也是一種更有經濟價值的開發方式。恰當合理的SOA建設會是一個在起點上就能促進雙贏的推手。
在大量的閱讀和學習之后,我們初步決定設計一個學校的信息系統。提出這一想法首先是基于生活經驗,雖然SOA可以應用于很多領域和層級,但是對我們來說,對于學校生活有更深刻的理解和發言權;第二,我們發現,針對高校已經有了想當廣泛的研究并且我們認為現有的高校系統已經相當的成熟,于是我們試圖針對一個大型中學進行設計。決定之后,我們查閱了更多的資料,并決定了主要的服務功能,并進行了分工。我主要完成總體框架的設計,這一框架主要是系統的層次分級和各層次功能及服務的說明。最終選擇使用現在的表示層、業務流程層、核心服務層、組建層的四層結構,使用這一結構是為了更好的表現各層的服務功能表示,但缺乏各層的接口連接說明是一個較大的缺點。
最終的設計還是較為粗糙的,由于缺乏更系統的學習,且時間的確有限,最終的結果也不是令人十分滿意。但是,過程中的收獲或許更有價值,新知識的學習和把握運用、團隊合作和支持……對于我們自身來說是很好的體驗。
在搜集關于SOA的資料中,逐步深入了SOA系統的概念,特點,作用,以及這個系統的應用領域。通過對很多資料的層層篩選和集中歸納有人讓體會到資料的搜集過程也是很繁瑣的,需要不斷的選擇,合成和總結。
SOA(service-oriented architecture,也叫面向服務的體系結構或面向服務架構)是指為了解決在Internet環境下業務集成的需要,通過連接能完成特定任務的獨立功能實體實現的一種軟件系統架構。SOA是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。
對于建立這個系統,團隊作用是很重要的。大家各司其職,各揮其長才能很好的完成這個系統。
這次項目,我的工作是負責總體規劃和博客管理以及在詳細設計中的畫圖??傮w規劃的工作的最大難點是在決策上,也就是根據自己隊員的各種能力分配他們的工作 ,例如編程動手能力強的,搜索資料能力強的,表達能力強的等等,要分清楚他們在項目中該處什么位置才能發揮他們的才能使項目有效順利的完成。
項目里要求隊員們最重要的一的點是:要有團隊的概念。一個大型而且成功的項目向來都是一個小組完成的,而且小組里的隊員都互相熟悉的,通過調配資源使得小組在最短的時間內完成出最好的設計來。
具體的,由于以前有負責項目的經驗,例如品牌策劃活動等,所以由我來做總體規劃的工作。首先在我確定了隊員以后,我就以每位隊員的不同能力分工作;因為我一直有寫博客的習慣,所以博客的建立和管理這方面就由我來負責,其他組員再各自分工,完成資料搜索和整理實現設計。這次我們做的是基于SOA的校園信息系統,我就把系統功能劃分為3大部分分別歸屬于學生、老師和學生家長;按照我們的設計,我依據組員各自的能力不同進行了分工,包括詳細設計和資料搜索。
在我們具體做的時候,由于我們是第一次合作,而且隊里有很多人都是第一次經歷多人合作完成一個項目,所以我經常要把大局放到首位,因為總體規劃在我那,我要把分工明確了,當發生意見不一的時候,一定要站出來客觀分析對大局的利弊,并且每時每刻讓隊里所有人都有團體的概念;因為每時每刻我都清楚團隊精神是我們這個項目做成功的關鍵。
在開發完成這個系統的過程中,軟件工程的概念已經深深地刻到我的腦海里。還有就是結合我們現在學習的課程《軟件系統結構》懂得一個系統的真正完成并不是我們單單地編寫代碼,而是要結合軟件工程思想和體系結構理論來規劃與實現,只有經過后者系統才能完善按預期實現。
現在感覺到規劃一個這樣的項目只有單純的理論基礎是不夠的,對待每時每刻都有可能發生的異常情況要懂得如何應變也是非常重要的。
通過這次設計,進一步的感受到了團隊合作如何才能最好的發揮出團隊的最好水平,如何才能做好團隊的管理工作
基于SOA的校園信息系統研究初探
1 引言
在信息技術高速發展的今天,信息化管理成為很多企業單位的迫切要求。對于一個大型中學來說,在教學手段和教學層面逐步擴展的前提下,更加需要一個完善的數字化信息平臺。這一平臺應當面向學生、教師、家長等多種角色,并提供有差異性且有足夠深度的相關服務和業務。
面向服務架構(Service Oriented Architecture SOA , )的設計目標是以服務為基礎, 通過服務的交互來實現系統動態、松耦合集成, 極大地降低了復雜性與成本。數字化校園的業務服務面向大量復雜的數據,要求整合異質、異構信息資源, 而SOA正能為用戶提供多樣化、個性化的信息服務。
2 SOA簡介
SOA是一種架構模型,它可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統中與軟件代理交互的人為依賴性。SOA提供了這樣一種框架:一個系統上的軟件可以安全而且可靠地提出請求并獲得其他系統上的計算資源,而不再需要一臺中央服務器來管理和控制整個端到端的網絡。SOA從根本上突破了客戶機/服務器模式。
SOA的關鍵是“服務”的概念,W3C將服務定義為:“服務提供者完成一組工作,為服務使用者交付所需的最終結果。最終結果通常會使使用者的狀態發生變化,但也可能使提供者的狀態改變,或者雙方都產生變化”。在面向服務(SOA – Service Oriented Architecture)的應用體系中,是實現以人為本的‘服務’的為核心的。網絡技術的發展宗旨都是力求使得客戶的到的服務 – 擁護體驗User experience更方便的得到。
SOA是一種構造分布式系統的方法,它將業務應用功能以服務的形式提供出來,以便更好的復用、組裝和與外部系統集成,從而降低開發成本,提高開發效率。
3 背景
本系統針對一個大型中學,該中學的班級構成,包括有高中部、初中部、實驗班等多層級多班級的結構,且高中高年級按科目分班。教師按所教科目歸屬個教研組,并根據層級不同,賦予相應的權利和義務,兼任行政職務的教師在教研組內僅享“零行政權力”,負責宿舍管理的教師直接對學生形成垂直管理和交流,與各班主任保持平行聯絡和交流。對于家長,系統應當提供足夠多的信息服務和作為交流平臺的功能,保持關注學習狀態和心理狀態的聯絡。
學校的信息管理系統涉及多角色多部門,內容覆蓋面廣,系統建設的目標是提供給學生、教師、家長等角色保證實時和安全的服務和后臺管理人員的透明管理。另外,為應變不可預期的變化,應當保證系統的擴展功能。
在web服務的前提下,運用以服務為基礎的SOA可以實現快速安全的信息傳輸和業務傳送,通過服務的交互來實現系統動態、松耦合集成,可以有效地降低了復雜性與成本。
4 SOA 的體系結構
面向服務的體系架構中共有3 種角色, 它們分別是服務提供者、服務請求者和服務注冊中心。其中服務提供者負責服務功能的具體實現, 并通過注冊服務操作將其所提供的服務發布到服務注冊中心, 當接收到服務請求者的服務請求時, 執行所請求的服務。服務請求者則是服務執行的發起者, 首先需要到服務注冊中心中查找符合條件的服務,然后根據服務描述信息進行服務綁定ö調用, 以獲得需要的功能。而服務注冊中心則用來提供服務提供者注冊服務、提供對服務的分類和查找功能, 以便服務請求者發現服務(見圖1)。
圖1 SOA 體系結構模型
4 服務建模
基于SOA的校園信息系統服務建模,其框架主要由系統管理員(在本系統中沒有重點介紹)、學生、老師和學生家長4 部分組成。服務之間是通過登錄和系統反饋,交流信息,發布信息 、查找信息 和共享信息 等接口和操作關聯起來的。這些接口和操作建立在規范的描述語言之上,并且獨立于特定的硬件平臺、操作系統和編程語言,使得SOA 框架具有松散耦合、位置透明、協議獨立等特點。本文根據SOA 的體系結構 ,提出了基于校園信息服務模型,如圖二所示。該模型運行的主要過程分為2 個階段。
圖二 基于SOA的校園信息系統服務建模
(1) 用戶登錄系統和系統反饋給用戶相應的功能階段。首先,學生、老師和學生家長均可以根據個人已有的賬戶密碼對系統提出登錄申請,系統經過審核通過后反饋給各用戶對應于賬戶密碼的功能,由此形成了系統與用戶之間經過封裝的接口模塊、封裝的粒度、資源的服務時間、安全級別及服務信息等。在該模塊中經過給內部協商完成后,系統按照一定的規則將該系統資源信息進行封裝并與系統資源服務的用戶進行協商。然后,個服務用戶通過對系統進行訪問而獲得相應的資源服務
(2) 用戶對服務資源的使用階段。首先,學生,老師或者學生家長通過向系統提交申請獲得服務后可以在各自的平臺上提出相應的資源使用的請求,系統接到請求后,交由各自對應的平臺進行分析,并根據分析結果反饋給服務用戶相應的功能。因為系統在設計過程中已經對應三個主要對象將系統功能或分為三大不同的模塊,所以當系統服務器接到來自服務用戶請求的時候只需要把相應的模塊交由相應的服務用戶,用戶再可以對相應子模塊進一步處理。(例如,當學生登錄服務系統后對系統提出請要要查詢某某學年的學習成績或者選課情況,系統只需要將學生的功能模塊反饋給學生,然后再由學生功能模塊中的查詢功能模塊實現學生的查詢請求,這其實就是一個父子模塊調用的設計過程)。又由于在系統資源的使用過程中,各服務用戶之間難免存在著各種各樣的問題,因此,各在專有的模塊之間又需要設計有一個可以讓不同用戶間實現相互的交流和協作的交流平臺(例如學生可以通過交流平臺對老師提出教學疑問,老師可以通過交流平臺對學生的疑問作出相應的解答),從而使得系統資源得到充分的利用。
5 集成框架
基于SOA的原則和思想, 下面提出一種針對該系統的集成框架, 如圖所示分應用層、業務流程層、 服務核心層和組件層四個層次。
圖三 基于SOA的校園信息系統集成框架
(1)表示層
負責處理校園信息化系統與校園內外用戶的接口及相關的組件,涉及系統的各層級使用者。信息門戶給用戶提供了一個統一的但又個性化的界面, 為學生、教師、家長提供相應的入口和個性化系統服務信息。通過它可以訪問系統的各種不同的服務, 同時可以為業務流程層提供授權認證權限、信息的傳輸。
(2)業務流程層
集成了各種業務規則和邏輯, 提供服務請求者統一權限認證和活動監控。這一層側重在業務支持上, 通過通用和標準的對象和服務模型, 可以在這一層上定義各個服務的業務流程, 并能夠靈活調用各個功能模塊。
(3)服務核心層
該層主要負責將系統資源通過平臺提供的web services接口封裝為服務的形式發布到資源注冊中心供用戶使用,并對資源進行相應的維護、管理和定期清理刷新。包括通用的服務功能,如注冊認證、授權管理、資源搜索、學習服務、宿舍管理、成績管理、查詢服務等。另外,為了適應未來對系統的升級和擴展需要增加了一個業務擴展功能。實際上這一層可以看成是一個Web Services 容器, 處于核心地位,還負責服務質量和安全管理功能, 保證安全的訪問。
(4)組件層
這一層實現校園現有和正在開發系統的接口數據格式的統一、數據庫和文件系統數據的統一,為面向服務的信息平臺提供基礎的資源和協議。包括平臺所有的基礎數據庫和業務數據庫,如注冊信息存儲等;以及原有的可用系統組件。
5 系統的集成
在做好整體規劃后,可以從一個關鍵服務開始,實現獨立的web服務,在進一步按照SOA的思路,實現逐步的整合,一步步完善系統平臺。
基于SOA 的集成方法需要把所有不同的系統封裝成web 服務。經過封裝后的應用系統可以在注冊服務中心發布,實現Web服務的映射并進行管理。可以使用相關的資源封裝模板進行封裝,根據模板提供的組件和接口完成數據到業務的映射和封裝,實現資源發布。針對學??赡艽嬖诓糠峙f系統的情況,根據不同的性質進行新的集成和修改實現封裝。同時,對于數據庫進行整合和清理,保證數據來源的有效性和一致性。
6 結束語
SOA 為校園信息系統應用集成提供了理想的集成框架, 在應用層通過Web Service 實現松散的應用集成, 能夠滿足各種信息集成要求, 體現了松散耦合、位置透明、協議獨立的特點, 能夠支持隨需應變的動態業務需求,很好地解決了傳統校園信息應用系統集成存在的問題。上層設置服務總線利用面向消息的中間件技術實現服務的路由、編排、安全管理、事務管理等功能, 將面向應用的集成轉到面向服務的集成。這就意味著在不用對現有的企業系統作修改的前提下, 系統可對外提供Web服務接口, 為學校管理學生老師和學生家長三方都能取得良好的效果??傊?/span>, SOA簡化了IT 的計算環境, 其兼容性、互通性以及最終實現的商務自主的能力, 滿足了高度動態的學習環境。
參考文獻
[1]白鶴,趙靜,新一代企業管理信息系統的SOA集成設計,
[2]馮建文,基于SOA的校園信息系統集成研究, 數據庫與信息管理,2008年
[3]李永鋒,趙小明,面向服務的旅游資源信息服務框架結構,合肥工業大學學報,2008.4第31卷第4期
[4]王明倩,鄒紅霞,吳涢暉,基于SOA構建可擴展的教務管理信息系統,裝備指揮技術學院學報,2007.12,第18卷第6期
[5]與生俱來的SOA取代EAIhttp://www.anrison.org/wenzhang.asp?M_left=4&id=6284
[6]以服務為中心的企業整合-案例分析
http://java.ccidnet.com/art/3755/20060314/476513_1.html
[7]IBM SOA Homepage, http://www-306.ibm.com/software/solutions/soa/
[8]IBM Process Integration Homepage,
http://www-306.ibm.com/software/sw-bycategory/subcategory/SW920.html
(1)表示層
負責處理校園信息化系統與校園內外用戶的接口及相關的組件,涉及系統的各層級使用者。信息門戶給用戶提供了一個統一的但又個性化的界面, 為學生、教師、家長提供相應的入口和個性化系統服務信息。通過它可以訪問系統的各種不同的服務, 同時可以為業務流程層提供授權認證權限、信息的傳輸。
(2)業務流程層
集成了各種業務規則和邏輯, 提供服務請求者統一權限認證和活動監控。這一層側重在業務支持上, 通過通用和標準的對象和服務模型, 可以在這一層上定義各個服務的業務流程, 并能夠靈活調用各個功能模塊。
(3)服務核心層
該層主要負責將系統資源通過平臺提供的web services接口封裝為服務的形式發布到資源注冊中心供用戶使用,并對資源進行相應的維護、管理和定期清理刷新。包括通用的服務功能,如注冊認證、授權管理、資源搜索、學習服務、宿舍管理、成績管理、查詢服務等。另外,為了適應未來對系統的升級和擴展需要增加了一個業務擴展功能。實際上這一層可以看成是一個Web Services 容器, 處于核心地位,還負責服務質量和安全管理功能, 保證安全的訪問。
(4)組件層
這一層實現校園現有和正在開發系統的接口數據格式的統一、數據庫和文件系統數據的統一,為面向服務的信息平臺提供基礎的資源和協議。包括平臺所有的基礎數據庫和業務數據庫,如注冊信息存儲等;以及原有的可用系統組件。
基于SOA的校園信息系統服務建模,其框架主要由系統管理員(在本系統中沒有重點介紹)、學生、老師和學生家長4 部分組成。服務之間是通過登錄和系統反饋,交流信息,發布信息 、查找信息 和共享信息 等接口和操作關聯起來的。這些接口和操作建立在規范的描述語言之上,并且獨立于特定的硬件平臺、操作系統和編程語言,使得SOA 框架具有松散耦合、位置透明、協議獨立等特點。本文根據SOA 的體系結構 ,提出了基于校園信息服務模型。
該模型運行的主要過程分為2 個階段。
(1) 用戶登錄系統和系統反饋給用戶相應的功能階段。首先,學生、老師和學生家長均可以根據個人已有的賬戶密碼對系統提出登錄申請,系統經過審核通過后反饋給各用戶對應于賬戶密碼的功能,由此形成了系統與用戶之間經過封裝的接口模塊、封裝的粒度、資源的服務時間、安全級別及服務信息等。在該模塊中經過給內部協商完成后,系統按照一定的規則將該系統資源信息進行封裝并與系統資源服務的用戶進行協商。然后,個服務用戶通過對系統進行訪問而獲得相應的資源服務
(2) 用戶對服務資源的使用階段。首先,學生,老師或者學生家長通過向系統提交申請獲得服務后可以在各自的平臺上提出相應的資源使用的請求,系統接到請求后,交由各自對應的平臺進行分析,并根據分析結果反饋給服務用戶相應的功能。因為系統在設計過程中已經對應三個主要對象將系統功能或分為三大不同的模塊,所以當系統服務器接到來自服務用戶請求的時候只需要把相應的模塊交由相應的服務用戶,用戶再可以對相應子模塊進一步處理。(例如,當學生登錄服務系統后對系統提出請要要查詢某某學年的學習成績或者選課情況,系統只需要將學生的功能模塊反饋給學生,然后再由學生功能模塊中的查詢功能模塊實現學生的查詢請求,這其實就是一個父子模塊調用的設計過程)。又由于在系統資源的使用過程中,各服務用戶之間難免存在著各種各樣的問題,因此,各在專有的模塊之間又需要設計有一個可以讓不同用戶間實現相互的交流和協作的交流平臺(例如學生可以通過交流平臺對老師提出教學疑問,老師可以通過交流平臺對學生的疑問作出相應的解答),從而使得系統資源得到充分的利用。
SOA是一種架構模型,它可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統中與軟件代理交互的人為依賴性。SOA提供了這樣一種框架:一個系統上的軟件可以安全而且可靠地提出請求并獲得其他系統上的計算資源,而不再需要一臺中央服務器來管理和控制整個端到端的網絡。SOA從根本上突破了客戶機/服務器模式。
SOA的關鍵是“服務”的概念,W
SOA是一種構造分布式系統的方法,它將業務應用功能以服務的形式提供出來,以便更好的復用、組裝和與外部系統集成,從而降低開發成本,提高開發效率。
本系統針對一個大型中學,該中學的班級構成,包括有高中部、初中部、實驗班等多層級多班級的結構,且高中高年級按科目分班。教師按所教科目歸屬個教研組,并根據層級不同,賦予相應的權利和義務,兼任行政職務的教師在教研組內僅享“零行政權力”,負責宿舍管理的教師直接對學生形成垂直管理和交流,與各班主任保持平行聯絡和交流。對于家長,系統應當提供足夠多的信息服務和作為交流平臺的功能,保持關注學習狀態和心理狀態的聯絡。
學校的信息管理系統涉及多角色多部門,內容覆蓋面廣,系統建設的目標是提供給學生、教師、家長等角色保證實時和安全的服務和后臺管理人員的透明管理。另外,為應變不可預期的變化,應當保證系統的擴展功能。
在web服務的前提下,運用以服務為基礎的SOA可以實現快速安全的信息傳輸和業務傳送,通過服務的交互來實現系統動態、松耦合集成,可以有效地降低了復雜性與成本。
面向服務的體系架構中共有3 種角色, 它們分別是服務提供者、服務請求者和服務注冊中心。其中服務提供者負責服務功能的具體實現, 并通過注冊服務操作將其所提供的服務發布到服務注冊中心, 當接收到服務請求者的服務請求時, 執行所請求的服務。服務請求者則是服務執行的發起者, 首先需要到服務注冊中心中查找符合條件的服務,然后根據服務描述信息進行服務綁定ö調用, 以獲得需要的功能。而服務注冊中心則用來提供服務提供者注冊服務、提供對服務的分類和查找功能, 以便服務請求者發現服務,如下圖所示