岳 冰 劉 勇 付偉慶
(1.黑龍江大學(xué) 信息科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150080 2、黑龍江大學(xué) 電子工程學(xué)院,黑龍江 哈爾濱 150080 3、黑龍江大學(xué) 建筑工程學(xué)院,黑龍江 哈爾濱 150080)
隨著Web 服務(wù)的出現(xiàn),面向服務(wù)的體系結(jié)構(gòu)和Web 服務(wù)的結(jié)合,產(chǎn)生了巨大的應(yīng)用前景。根據(jù)預(yù)測(cè),基于SOA 的應(yīng)用必將占領(lǐng)軟件市場(chǎng)的重大比重。在這種情況下研究基于SOA 的應(yīng)用就具有經(jīng)濟(jì)意義。而SOA 的研究就是圍繞著應(yīng)用進(jìn)行的,SOA 的基本協(xié)議已經(jīng)完成,這就為開發(fā)基于SOA 的應(yīng)用提供可能,而接下來的研究主要是圍繞著開發(fā)部署中存在的問題進(jìn)行改進(jìn),根據(jù)SOA 的特點(diǎn)可以知道就算進(jìn)行改進(jìn)也并不影響已經(jīng)完成的開發(fā),仍然可以保證服務(wù)的重用,因此對(duì)于SOA 應(yīng)用的研究就迫在眉睫?;赟OA 的應(yīng)用目前商業(yè)公司分別推出了自己的解決方案,并且取得了一些應(yīng)用實(shí)踐,而目前的情況是開源產(chǎn)品己經(jīng)具備了一定的水平,在這樣的情況下提出基于開源產(chǎn)品的SOA 應(yīng)用研究就具有重要的意義。而目前雖然開源產(chǎn)品比較豐富,但是也存在著魚龍混雜的局面,更主要的是每個(gè)開源產(chǎn)品主要解決一個(gè)方面的問題,為此本文主要探討如何集成各種開源產(chǎn)品提出比較完整的解決方案。
目前開源產(chǎn)品提供了豐富的工具和服務(wù)器產(chǎn)品,能夠從不同的角度來提供SOA 應(yīng)用的解決方案,但是不同的開源社區(qū)的發(fā)展情況也是不均衡的,有的社區(qū)比較活躍,產(chǎn)品也比較成熟,而有的則不夠成熟,或者進(jìn)步很慢,利用開源產(chǎn)品就需要進(jìn)行合理的選擇,通過比較不同產(chǎn)品的特點(diǎn)來選擇適合自己的產(chǎn)品。開源產(chǎn)品是豐富的,水平也是參差不齊,因此不可能進(jìn)行全面的比較,本文主要是選擇有代表性的產(chǎn)品來作為解決方案的基礎(chǔ)。本文主要從應(yīng)用的開發(fā)框架的選擇、服務(wù)器的選擇、開發(fā)工具的選擇,這三個(gè)方面來進(jìn)行的。
Spring 是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE 應(yīng)用程序開發(fā)提供集成的框架。SPring 框架是一個(gè)分層架構(gòu),由7 個(gè)定義良好的模塊組成。
Apache Geronimo 是Apache 軟件基金會(huì)的開放源碼J2EE 服務(wù)器,它集成了眾多先進(jìn)技術(shù)和設(shè)計(jì)理念。這些技術(shù)和理念大多源自獨(dú)立的項(xiàng)目,配置和部署模型也各不相同。Geronimo 能將這些項(xiàng)目和方法的配置及部署完全整合到一個(gè)統(tǒng)一、易用的模型中。
Apache Axis2 是Apache Axis SOAP 項(xiàng)目的后繼項(xiàng)目。此項(xiàng)目是Web 服務(wù)核心引擎的重要改進(jìn),目標(biāo)是成為Web 服務(wù)和SOA 的下一代平臺(tái)。作為一個(gè)干凈的可擴(kuò)展的開放源代碼的Web 服務(wù)平臺(tái),Axis2 的體系結(jié)構(gòu)高度靈活,支持很多附加功能,如可靠消息傳遞和安全性等。Axis2 具有模塊化體系結(jié)構(gòu),由核心模塊和非核心模塊組成。
Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java 開發(fā)工具(Java Development Tools,JDT)。
學(xué)校信息管理系統(tǒng)首先要解決信息的共享問題,通過本部門提供信息的查詢服務(wù),為其它部門的使用帶來方便。正是因?yàn)槿绱吮疚闹饕歉鶕?jù)自身掌握的信息,提供信息查詢服務(wù)。由于整個(gè)學(xué)校對(duì)信息的需求很復(fù)雜,因此首先根據(jù)共同的需要,提供基本的服務(wù),而考慮到服務(wù)消費(fèi)者的復(fù)雜性,本文主要從本部門所掌握的信息情況,根據(jù)自身特點(diǎn),考慮各種可能的基礎(chǔ)上提供信息查詢服務(wù),也因此本文是以提供信息、查詢服務(wù)為中心的分析。
基于SOA 的應(yīng)用主要包括四個(gè)層次,分別是:數(shù)據(jù)層,數(shù)據(jù)訪問層,業(yè)務(wù)邏輯層,用戶界面層。本部分主要描述系統(tǒng)服務(wù)的設(shè)計(jì)與實(shí)現(xiàn),也就是重點(diǎn)描述業(yè)務(wù)層。這是因?yàn)榛诿嫦蚍?wù)的系統(tǒng)中,服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)是這個(gè)系統(tǒng)的核心。業(yè)務(wù)邏輯層又區(qū)分為兩個(gè)層次:一是基礎(chǔ)的服務(wù),為其他的服務(wù)提供基礎(chǔ);二是具有應(yīng)用邏輯的服務(wù)。
學(xué)生信息管理服務(wù),主要提供學(xué)生信息的修改、查詢等服務(wù)。課程安排、招生信息等服務(wù)都需要通過對(duì)其調(diào)用來獲取或者增加學(xué)生信息。
教員信息管理服務(wù),主要提供教員信息的修改、查詢等服務(wù)??蒲猩陥?bào)服務(wù)需要通過對(duì)其調(diào)用來查詢申報(bào)人員的情況;職稱評(píng)定服務(wù)需要通過調(diào)用來查詢基本的情況同時(shí)對(duì)其進(jìn)行修改;同樣課程安排服務(wù)需要根據(jù)教員的基本情況進(jìn)行課程的安排,也需要相關(guān)的信息。
后勤信息管理服務(wù),通過提供后勤信息的查詢、修改等操作,來滿足其他服務(wù)的調(diào)用需要,例如招生部門需要查詢后勤能力來作為招生的參考。
教學(xué)資源信息管理服務(wù),主要是提供教學(xué)資源的查詢,申請(qǐng)等操作。
問卷管理服務(wù),提供各種問卷的管理,是發(fā)布問卷的基礎(chǔ),同時(shí)提供問卷的查詢等操作。
SOA 作為一個(gè)新型的體系架構(gòu),基于Web 服務(wù)的SOA 應(yīng)用研究還在不斷深入,其技術(shù)不斷發(fā)展與更新之中,本文雖然對(duì)SOA的應(yīng)用研究進(jìn)行了比較全面的論述,從基本概念到開發(fā)方法,從開發(fā)技術(shù)到開發(fā)產(chǎn)品。雖然基于Web 服務(wù)的SOA 應(yīng)用研究主要就是圍繞兩個(gè)方面:一是功能的豐富,滿足不同的需要;二是簡(jiǎn)化開發(fā)成本。但是由于SOA 一應(yīng)用領(lǐng)域的多樣性,還是存在一些問題沒有涉及和解決,還需要進(jìn)一步的研究。本文主要側(cè)重于基于現(xiàn)有技術(shù)提出應(yīng)用的解決方案,因此具有局限性,下一步的工作就是根據(jù)在應(yīng)用中發(fā)現(xiàn)的問題,完善解決方案,從而達(dá)到進(jìn)一步簡(jiǎn)化SOA 的開發(fā)。
[1]R.Hull and J.Su.Tools for ComPosite Web Services:A Short Overview [J],SIGMOD Record,2005,34(2):86 一 95.
[2]X.Fu,T.Bultan,and J.Su.Analysis of Interacting BPEL Web Serviees[J],13th International World Wide Web Conference(WWW),2004:621 一630
[3]R.Hull and J.Su.Tools for Design of Composite Web Services[J],ACM SIGMOD International Conference on Management of Data,2004:958 一961
[4]孟.精通Spring-Java 輕量級(jí)架構(gòu)開發(fā)實(shí)踐[M].北京:人民郵電出版社,2006
[5]Anil Hemrajani.韓坤等譯.Java 敏捷開發(fā)-使用 Spring、Hibemate 和 Eelipse[M].北京:人民郵電出版社,2007:16 一17
[6]朱振杰.SOA 的關(guān)鍵技術(shù)的研究與應(yīng)用實(shí)現(xiàn)[D].成都:電子科技大學(xué),2006
[7]劉瑩.基于BPEL4WS 的工作流引擎的研究與實(shí)現(xiàn)「D].成都:電子科技大學(xué),2006.