• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ASSH框架的運動會信息管理系統(tǒng)設計

      2011-03-14 05:12:50王爽
      電子設計工程 2011年10期
      關鍵詞:表示層運動會組件

      王爽

      (西安體育學院網絡管理中心,陜西西安710068)

      大型運動會在全國乃至全世界都有著重要的影響,但是對于運動會的管理工作卻是一件比較復雜的事情。如果采用人工處理的方法進行運動會數(shù)據輸入、處理和發(fā)布,不僅速度慢、效率低、容易出錯,而且也不便于與當前運動會的外圍顯示系統(tǒng)和綜合信息發(fā)布系統(tǒng)進行數(shù)據共享和信息發(fā)布,迫切需要開發(fā)一種在網絡環(huán)境下運行的,符合實際需要的運動會信息管理系統(tǒng)[1]。因此,利用計算機技術、網絡通信技術、數(shù)據庫技術等實現(xiàn)運動會信息的管理,對于減輕繁重的手工勞動,提高工作效率和管理水平,實現(xiàn)運動會管理的信息化和現(xiàn)代化具有重要的現(xiàn)實意義。傳統(tǒng)的開發(fā)方法難以快速開發(fā)出功能強大、系統(tǒng)可擴展性強的基于Web的應用系統(tǒng)。而一個優(yōu)秀成熟的框架既可以提高開發(fā)效率,又可以保障系統(tǒng)質量。本文將ASSH(AJAX+Struts+Spring+Hibernate)框架引入了運動會信息管理系統(tǒng)應用的開發(fā)中,對整合的架構應用進行具體的研究。

      1 系統(tǒng)設計及相關技術介紹

      系統(tǒng)在物理上由3部分組成,第1部分:前端具有WLAN功能的手持PDA或計算機,以便通過無線網絡與數(shù)據處理計算機進行通信,第2部分:數(shù)據處理計算機,整個系統(tǒng)的核心部件,包括了所有基礎信息處理的功能。第3部分:數(shù)據庫服務器,用于存儲各種基礎信息[2]。

      本系統(tǒng)選用J2EE平臺。J2EE的跨平臺操作性很強,可搭建具有可伸縮性、靈活性、易維護性的系統(tǒng)。系統(tǒng)開發(fā)基于B/S的三層體系結構,分別是:表示層,位于最上層,離用戶最近,用于顯示數(shù)據和接收用戶輸入的數(shù)據,為用戶提供一種交互式操作的界面。業(yè)務邏輯層:負責處理用戶輸入的信息,或者是將這些信息發(fā)送給數(shù)據訪問層進行保存,或者是調用數(shù)據訪問層中的函數(shù)再次讀出這些數(shù)據,業(yè)務邏輯層也可以包括一些“業(yè)務邏輯”描述代碼。持久層:實現(xiàn)對數(shù)據的保存和讀取操作。由于采用了三層架構,使得數(shù)據的存儲在后臺數(shù)據庫服務器上完成,業(yè)務功能由成績處理計算機即應用程序服務器完成。采用該模式,客戶端不直接與數(shù)據庫服務器相連接,提高了數(shù)據庫的安全性。更重要的是,對體育比賽而言,當競賽項目的業(yè)務邏輯發(fā)生微調時,只需修改成績處理計算機上的程序即可,而不需要對客戶端進行任何改動。

      1.1 系統(tǒng)功能

      運動會信息管理系統(tǒng)涵蓋以下子系統(tǒng):

      1)系統(tǒng)維護子系統(tǒng)是公用子系統(tǒng),負責為其它子系統(tǒng)提供公共信息,管理用戶、設置用戶權限和維護系統(tǒng)日志。

      2)賽事管理子系統(tǒng)是基本子系統(tǒng),負責為其它子系統(tǒng)提供運動會信息和比賽項目信息。其中包括注冊系子統(tǒng),賽制設置子系統(tǒng),場館管理子系統(tǒng),比賽主計劃子系統(tǒng),賽程編排子系統(tǒng)[3]。

      3)運動會成績系統(tǒng)運動會成績系統(tǒng)是運動會的核心系統(tǒng),包括:中心成績系統(tǒng)、場館成績系統(tǒng)、現(xiàn)場計時記分系統(tǒng)。

      4)運動會信息發(fā)布子系統(tǒng)運動會信息發(fā)布系統(tǒng)是運動會對外發(fā)布的窗口將涵蓋:

      ①信息網站;②電視轉播字幕系統(tǒng);③打印分發(fā)系統(tǒng);④現(xiàn)場LED顯示屏系統(tǒng)。

      1.2 ASSH框架介紹

      AJAX指異步JavaScript及XML,借助于AJAX,可以在用戶單擊按鈕或鏈接時,利用JavaScript和DHTML立即更新用戶界面,并向服務器發(fā)出異步請求,以執(zhí)行更新或查詢。當請求返回時,就可以使用JavaScript和CSS相應地更新用戶界面,而不是刷新整個頁面,這種特性決定了它適用于需要與服務端頻繁交互,操作即時響應要求高的環(huán)境。采用AJAX技術可以減少數(shù)據傳輸量以及加快響應速度[4]。

      Struts框架,它是一個完美的MVC實現(xiàn),它有一個中央控制類(一個Servlet),針對不同的業(yè)務,用Action類負責頁面跳轉和后臺邏輯運算,Jsp頁面負責數(shù)據的輸入和輸出顯示,F(xiàn)orm類負責傳遞Action和Jsp中間的數(shù)據。Jsp中可以使用Struts框架提供的一組標簽,就像使用html標簽一樣簡單,但是可以完成非常復雜的邏輯。但如果把運算邏輯都放在Struts的Action類里將使得Action類復用度低和邏輯混亂,所以通常會把整個Web應用程序分為3層,Struts負責表示層,它調用業(yè)務邏輯層完成運算邏輯,業(yè)務邏輯層再調用持久層完成數(shù)據庫的讀寫。

      Struts調用業(yè)務類時,需要新建一個業(yè)務類出來,然后使用,業(yè)務邏輯層需要調用持久層的類,也需要新建一個持久層類出來用。簡單的說,就是調用者依賴被調用者,它們之間形成了強耦合,如果想在其他地方復用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調用,復用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。

      Spring框架,它的作用就是完全解耦類之間的依賴關系,一個類如果要依賴什么,那就是一個接口。只要有一個實現(xiàn)了這個接口的類,就可以輕松的通過xml配置文件把實現(xiàn)類注射到調用接口的那個類里。所有類之間的這種依賴關系就完全通過配置文件的方式替代了。所以Spring框架最核心的就是依賴注射和控制反轉。

      Hibernate框架,可以創(chuàng)建一系列的持久化類,每個類的屬性都可以簡單的看做和一張數(shù)據庫表的屬性一一對應,也可以實現(xiàn)關系數(shù)據庫的各種表間關聯(lián)的對應。當需要相關操作時,不用再關注數(shù)據庫表,不用再去一行行的查詢數(shù)據庫,只需要持久化類就可以完成增刪改查的功能。使軟件開發(fā)真正面向對象,而不是面向混亂的代碼,使用Hibernate可以比JDBC方式減少很多的編程量[5]。

      另外,由于Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內部模式非常優(yōu)秀,同時為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務層,使用更加方便。

      現(xiàn)在的架構是,Struts負責表示層,AJAX則作為Struts在表示層上的補充,Spring負責中間的業(yè)務層,Hibernate負責持久層,形成了ASSH框架,其架構如圖1所示。采用上述架構,不僅實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了表示層、業(yè)務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數(shù)據庫的變化也不會對前端有所影響。系統(tǒng)采用此架構開發(fā),無論在整體架構還是在局部的復雜業(yè)務模型中都有了更低的耦合性,而且提高了靈活性與可維護性、可擴展性及可重用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發(fā)效率。在性能速度、交互性和體驗上也有很大的改善,這樣便消除了單獨使用這些框架開發(fā)系統(tǒng)的不足[6]。

      圖1 ASSH框架架構圖Fig.1Frame structure of ASSH

      2 系統(tǒng)實現(xiàn)

      Struts、Spring、Hibernate的優(yōu)勢分別在于J2EE的表示層,業(yè)務邏輯層,持久層。本系統(tǒng)中集成框架的具體做法是用面向對象的分析方法根據需求來提出一個模型,將這些模型采用Java語言來實現(xiàn)出基本的Java對象,然后寫出基本的DAO(數(shù)據訪問對象)接口,并給出Hibernate的DAO實現(xiàn),這樣就可以通過Hibernate框架實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據庫之間的轉換和訪問,然后由Spring來完成業(yè)務邏輯處理。在此架構中,由Struts負責降低系統(tǒng)總架構的耦合性,由Spring負責復雜的業(yè)務邏輯處理,由Hibernate負責降低模型部分的開發(fā)難度,由AJAX負責在頁面進行監(jiān)聽和異步處理。

      系統(tǒng)的基本業(yè)務流程是:在表示層中,首先通過AJAX和JSP頁面實現(xiàn)交互界面,負責傳送請求(Request)和接收響應(Response),然后Struts根據配置文件(Struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業(yè)務邏輯層中,管理服務組件的Spring IOC容器負責向Action提供業(yè)務模型組件和該組件的協(xié)作對象數(shù)據處理(DAO)組件完成業(yè)務邏輯,并提供事務處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數(shù)據庫交互,處理DAO組件請求的數(shù)據,并返回處理結果。

      2.1 持久層的實現(xiàn)

      本系統(tǒng)使用Hibernate框架實現(xiàn)應用的持久層,封裝訪問數(shù)據庫的實現(xiàn)細節(jié),并向上層提供面向對象的數(shù)據訪問API。創(chuàng)建Hibernate框架為應用服務,分為如下3個步驟:1)創(chuàng)建O/R Mapping(對象關系映射)文件;2)創(chuàng)建Hibernate配置文件;3)通過Hibernate API實現(xiàn)具體的DAO數(shù)據訪問。

      Hibernate通過O/R映射文件將對象與關系型數(shù)據相關聯(lián),因此需要編寫和數(shù)據庫表相對應的Java持久化類以及對應的映射文件[7]。有了Java持久化類后就可以在此基礎上實現(xiàn)數(shù)據訪問類。在Spring框架中,數(shù)據訪問類可以從輔助類HibernateDaoSupport繼承,這極大地方便了Hibernate框架在Spring中的使用。以下是用戶管理模塊中,Hibernate映射文件User.hbm.xml的部分代碼。

      <class

      name=“com.sun.Hibernate.system.User”

      table=“SYSTEM_USER”>

      <id name=“id”type=“l(fā)ong”column=“ID”>

      <generator class=“sequence”>

      <param name=“sequence”>seq_user</param>

      </generator>

      </id>

      <property name=“name”type=“java.lang.String”column=“NAME”length=“10”/>

      <propertyname=“password”type=“java.lang.String”column=“PASSWORD”length=“10”/>

      ……

      <many-to-one name=“role”

      class=“com.sun.Hibernate.system.Role”insert=“false”

      update=“false”>

      <column name=“ROLEID”/>

      </many-to-one>

      具體的Hibernate數(shù)據源、Session工廠、事務管理、緩沖連接池等功能都由業(yè)務邏輯層的Spring容器提供。

      2.2 業(yè)務邏輯層實現(xiàn)

      業(yè)務邏輯層由Spring框架支持,提供了處理業(yè)務邏輯的服務組件。開發(fā)者需要對業(yè)務對象建模,抽象出業(yè)務模型并封裝在模型組件中。由于數(shù)據持久層實現(xiàn)了Java持久化類并且封裝了DAO,因此可以在模型組件中方便地調用DAO組件來存取數(shù)據[8]。Spring的IoC容器負責統(tǒng)一管理模型組件和DAO組件以及Spring所提供的事務處理、緩沖連接池等服務組件。

      例如:在用戶管理模塊中,通過業(yè)務建模創(chuàng)建了用戶模型UserService類,封裝了對用戶的權限管理等功能。UserService類通過調用數(shù)據訪問類UserDao實現(xiàn)對用戶數(shù)據的操作。這些組件的關系將通過配置Spring框架的applicationContext.xml聯(lián)系起來,配置文件的部分代碼如下:

      <beanid=“userDAO”class=“com.sun.Spring.system.UserDAOImpl”>

      <property name=“sessionFactory”><ref local=“sessionFactory”/></property>

      </bean>

      <bean id="userDAOProxy"

      class=“org.Springframework.transaction.interceptor.

      TransactionProxyFactoryBean”>

      <property name=“transactionManager”><ref bean=“transactionManager”/></property>

      <property name=“target”><ref local=“userDAO”/></property>

      ……

      </bean>

      <bean name=“/user”class=“com.sun.Struts.actions.system.UserAction”singleton=“false”>

      <propertyname=“userDAO”><refbean=“userDAOProxy”/></property>

      ……

      </bean>

      2 .3表示層實現(xiàn)

      本系統(tǒng)中表示層主要由Struts框架,AJAX技術實現(xiàn),設計嚴格依照MVC模式,其中V(視圖層)通過Jsp頁面實現(xiàn),C(控制層)由Servlet實現(xiàn),M(模型層)則由Action及AJAX后臺程序實現(xiàn),下面舉系統(tǒng)中的一個例子來說明Struts和AJAX在表示層的應用。在管理人員添加頁面中,當用戶在Jsp頁面中填寫完人員姓名、密碼等信息后,JavaScript中相應的XMLHttpRequest回調函數(shù)將異步派發(fā)XMLHttpRequest請求,后臺將根據提供的姓名、密碼從數(shù)據庫相應表中得到該人員個人基本信息。隨后服務器響應會傳到瀏覽器,在解析請求參數(shù)后,Servlet執(zhí)行必需的應用邏輯,將響應信息封裝到XML中,并將它寫回HttpServletResponse??蛻舳俗栽赬MLHttpRequest上的回調函數(shù)現(xiàn)在會被回調,用以處理由服務器返回的數(shù)據,并通過更新用戶界面來響應服務器傳輸過來的數(shù)據[9]。信息完成后提交時,所有需要保存的數(shù)據通過表單提交給相應的Servlet。由其根據配置文件調用相應Action進行后續(xù)處理。這樣做的好處是使視圖層、控制層、模型層完全分離,同時加入了AJAX的異步處理功能,使系統(tǒng)無論是在安全性、可擴展性還是交互性上較之普通設計都有明顯提高。

      控制器是按Struts-config.xml文件中的配置來決定業(yè)務流的轉向,開發(fā)人員在業(yè)務流控制方面的主要工作是對Strutsconfig.xml進行配置[10],Struts-config.xml部分代碼如下:

      <form-bean name=“userForm”

      type=“com.sun.Struts.forms.system.UserForm”/>

      </form-beans>

      <global-forwards>

      <forward name=“index”path=“/index.Jsp”/>

      <forward name=“l(fā)ogin”path=“/login.Jsp”/>

      ……

      </global-forwards>

      <action-mappings>

      ……

      <action path=“/user”name=“userForm”validate=“false”parameter=“method”

      type=“org.Springframework.Web.Struts.DelegatingActionProxy”>

      ……

      <forward name=“password”path=“/pages/system/user/password.Jsp”/>

      </action>

      在Struts-config.xml文件中定義保存HTTP表單對應的Form和對應的Action類。Form Bean必須在Struts-config.xml進行正確配置后,才能被程序引用。

      3 總結

      系統(tǒng)采用AJAX+Struts+Spring+Hibernate開源框架技術。在此架構中,表示層采用Struts,業(yè)務邏輯層采用Spring,數(shù)據持久層選擇Hibernate。整個架構能夠很好地實現(xiàn)控制流、業(yè)務調用、表示這3者的分離,集成后的框架具備了3種框架的技術優(yōu)勢,將Struts的MVC機制,Spring的反轉控制機制以及Hibernate的O/R Mapping映射機制融合在一起,此架構在系統(tǒng)開發(fā)簡潔性、開發(fā)效率、開發(fā)成本以及維護費用等方面有著很大的優(yōu)勢,同時,采用了當下十分流行的AJAX技術,這使系統(tǒng)具有更加完美的用戶體驗。

      [1]劉槐德.高校運動會綜合信息管理系統(tǒng)的設計與實現(xiàn)[D].重慶:重慶大學,2009:9-10.

      [2]宋依青,李書旗,王海濱.基于WLAN的分布式競賽打分系統(tǒng)的設計與實現(xiàn)[J].微電子學與計算機,2009,26(11):165-168.SONGYi-qing,LIShu-qi,WANGHai-bin.Designand realization of distributional competition grading system based on the WLAN[J].Microelectronics&Computer,2006,26(11):165-168.

      [3]蒲川江.奧運比賽管理系統(tǒng)分析與設計及關鍵技術研究[D].北京:清華大學,2005:14-16.

      [4]Woolston D.Pro Ajax and the NET 2.0 platform[M].LosAngeles,California,USA:Wager T Press,2006.

      [5]李剛.輕量級企業(yè)應用實戰(zhàn)—Struts+Spring+Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2007.

      [6]傅鸝,殷旻昊.基于Struts+Spring+Hibernate+Ajax技術的科研管理系統(tǒng)設計[J].軟件導刊,2009,8(1):134-136.FU Li,YIN Min-hao.Design of research management system based on Struts+Spring+Hibernate+Ajax technology[J].Software Guide,2009,8(1):134-136.

      [7]諶湘倩,狄文輝,孫冬.基于SSH框架與AJAX技術的Java Web應用開發(fā)[J].計算機工程與設計,2009,30(10):2590-2592.CHEN Xiang-qian,DI Wen-hui,SUN Dong.Application of Java Web Based on SSH and AJAX[J].Computer Engineering and Design,2009,30(10):2590-2592.

      [8]楊波,劉淵,冷文浩.基于Struts+Hibernate+Spring架構的船舶數(shù)字化平臺的設計與實現(xiàn)[J].計算機應用與軟件,2008,25(2):1409-1412.YANG Bo,LIU Yuan,LENG Wen-hao.Ship digitized platform based on architecture of Struts&Hibernate&Spring[J].Computer Applications and Software 2008,25(2):1409-1412.

      [9]肖杰,陳翔,何海江,等.基于AJAX和Struts的Web應用的設計與實現(xiàn)[J].計算機工程與設計,2009,30(8):1934-1938.XIAO Jie,CHEN Xiang,HE Hai-jiang,et al.Design and implementation of Web application based on AJAX and Struts[J].Computer Engineering and Design,2009,30(8):1934-1938.

      [10]王軍豪,彭巖.Hibernate+Struts+Spring整合技術在電子政務中的應用[J].計算機工程與設計,2008,29(6):1409-1412.WANG Jun-hao,PENG Yan.Application of Hibernate+Struts+SpringintegratetechnologyinE-government[J].Computer Engineering and Design,2008,29(6):1409-1412.

      猜你喜歡
      表示層運動會組件
      無人機智能巡檢在光伏電站組件診斷中的應用
      能源工程(2022年2期)2022-05-23 13:51:50
      新型碎邊剪刀盤組件
      重型機械(2020年2期)2020-07-24 08:16:16
      U盾外殼組件注塑模具設計
      基于Spring的企業(yè)級Web項目架構設計研究
      軟件(2019年6期)2019-10-08 06:27:21
      春季運動會
      幼兒畫刊(2018年5期)2018-06-05 02:17:09
      春季運動會
      小小藝術家(2017年1期)2017-05-31 21:51:11
      ASP.NET三層構架解析
      get Shopty!我們的運動會
      Coco薇(2016年7期)2016-06-28 02:20:38
      基于SSH框架科研管理系統(tǒng)的設計
      風起新一代光伏組件膜層:SSG納米自清潔膜層
      太陽能(2015年11期)2015-04-10 12:53:04
      融水| 天祝| 崇明县| 宣化县| 深泽县| 恩施市| 韶关市| 麻江县| 汝城县| 大兴区| 吉林省| 丹棱县| 松滋市| 蓬溪县| 上栗县| 博乐市| 英超| 岑溪市| 修水县| 佛学| 东莞市| 涪陵区| 沙田区| 荥阳市| 乳源| 嘉义市| 会东县| 济南市| 弥勒县| 宾川县| 南漳县| 庆元县| 凉山| 聂拉木县| 集安市| 萝北县| 盐城市| 思南县| 宕昌县| 龙海市| 平利县|