最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

面向特定群體的健康管理平臺(論文+PPT+源碼)

2022-12-17 02:01 作者:考研保研直通車  | 我要投稿


畢業(yè)設(shè)計(jì)說明書

面向特定群體的健康管理平臺

設(shè)計(jì)與實(shí)現(xiàn)

班 級: 學(xué)號:

姓 名:

軟件學(xué)院

學(xué) 院:

軟件工程

專 業(yè):

指導(dǎo)教師:

2014年 6 月

面向特定群體的健康管理平臺設(shè)計(jì)與實(shí)現(xiàn)

摘要

隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)站的開發(fā)與運(yùn)用變得更加廣泛。這次采用java語言SSH框架(Spring,Struts,Hibernate)設(shè)計(jì)并實(shí)現(xiàn)了面向特定群體的健康管理平臺。該網(wǎng)站主要有教師飲食管理、教師健康日志、教師體檢管理、疾病預(yù)測評估等功能模塊。通過該網(wǎng)站,教師可以更好的自己的體檢狀況以及最近的身體狀況,根據(jù)自身情況調(diào)整飲食,睡眠等生活習(xí)慣,并且可以及時(shí)預(yù)測高血壓以及糖尿病的患病可能性大小,以便采取有效地預(yù)防措施。

本系統(tǒng)采用的是典型的J2EE 三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。

關(guān)鍵詞:健康管理,慢性病,Spring,Struts,Hibernate

Design and Implement of Health Management Platform for the Specific Groups

Abstract

With the continuous development of network technology , the use of web site has became more widespread. This time I use JAVA language and SSH frame (Spring , Struts , Hibernate) to design and implement the?health?management?platform for specific groups. Dietary management of?teachers, teachers’ health log, medical management for teachers, disease forecast are designed in the web. Through the site, teachers can focus on their physical condition better, also can according to their circumstances to adjust their diet, sleep habits, etc. At the same time, we can take preventive measures to avoid hypertension and diabetes effectively.

The system uses a three-tier structure called J2EE, divided into presentation layer, intermediate layer (business logic layer) and data services layer. Three-tier system put business rules, data access and legality verification work on the middle layer to process. Client does not establish a direct interaction with database, but make connections with the middle tier by components and then interacts with the database on the middle layer .

Keywords: Healthy Manage , Chronic disease , Spring , Struts , Hibernate

目 錄

1引言11

1.1設(shè)計(jì)背景11

1.2設(shè)計(jì)目的和意義11

1.3 國內(nèi)外研究現(xiàn)狀2

2 系統(tǒng)需求分析3

2.1系統(tǒng)目標(biāo)3

2.2 系統(tǒng)功能要求3

2.2.1前臺功能3

2.2.2后臺功能4

2.3 系統(tǒng)性能要求4

2.4系統(tǒng)數(shù)據(jù)要求4

2.4.1數(shù)據(jù)的性質(zhì)4

2.4.2數(shù)據(jù)字典5

2.4.3實(shí)體聯(lián)系圖6

3 系統(tǒng)設(shè)計(jì)9

3.1?開發(fā)工具介紹9

3.1.1?My eclipse介紹9

3.1.2 Oracle介紹9

3.2開發(fā)技術(shù)介紹10

3.2.1 Struts 2介紹10

3.2.2 Spring介紹11

3.2.3 Hibernate介紹11

3.2.4 Jsp介紹12

3.2.5 Jquery介紹12

3.2.6 Dwr(Ajax)介紹13

3.3 系統(tǒng)架構(gòu)設(shè)計(jì)13

3.3.1 Hibernate持久化15

3.3.2 Service層16

4 系統(tǒng)概要設(shè)計(jì)17

4.1系統(tǒng)體系結(jié)構(gòu)17

4.1.1 設(shè)計(jì)原則17

4.1.2 運(yùn)行架構(gòu)17

4.2 網(wǎng)站功能結(jié)構(gòu)18

4.3數(shù)據(jù)庫表設(shè)計(jì)19

4.3.1 數(shù)據(jù)庫詳細(xì)設(shè)計(jì)19

4.3.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)19

4.3.3 數(shù)據(jù)庫表設(shè)計(jì)20

4.4 信息安全設(shè)計(jì)21

4.4.1 網(wǎng)絡(luò)安全22

4.4.2 其他安全22

5詳細(xì)設(shè)計(jì)23

5.1 系統(tǒng)流程圖23

5.2 前臺主頁界面設(shè)計(jì)23

5.2.1前臺主頁功能設(shè)計(jì)23

5.2.2教師飲食管理功能設(shè)計(jì)24

5.2.3教師健康日志功能設(shè)計(jì)25

5.2.4教師體檢管理功能設(shè)計(jì)26

5.2.5疾病預(yù)測評估功能設(shè)計(jì)27

5.2.6注冊功能設(shè)計(jì)28

5.3后臺主頁界面設(shè)計(jì)29

5.3.1管理員用戶登錄功能29

5.3.2管理管理員功能30

5.3.3管理員管理體檢結(jié)果31

5.3.4管理員管理健康新聞32

5.3.5管理員管理教師功能33

6?系統(tǒng)測試34

6.1編寫測試用例34

6.2單元測試34

6.3系統(tǒng)和集成測試35

7?結(jié)論36

參?考?文?獻(xiàn)37

致 謝38

1 引言

1.1 設(shè)計(jì)背景

緊張的工作節(jié)奏、教學(xué)和科研的壓力、個(gè)人不良的工作生活習(xí)慣、以及伴隨工作壓力而來的家庭關(guān)系、人際關(guān)系緊張等因素使得高校群體成為慢性病的高發(fā)群體[1]。學(xué)生入學(xué)的定期體檢,教職工人入職體檢,以及所有學(xué)生和教職工的定期體檢工作,甚至個(gè)人自愿定期進(jìn)行身體健康檢查等都離不開醫(yī)院的體檢。人們對體檢工作越來越重視,目前,傳統(tǒng)的體檢一直延用手工管理的方式,對健康信息的可視化平臺需求迫切。

實(shí)現(xiàn)對健康信息分析的可視化,根據(jù)高危人群的日常行為,建立由此引發(fā)的發(fā)病概率預(yù)測模型,對高危人群做出相應(yīng)的行為干預(yù)。健康管理平臺不僅包含對個(gè)體健康曲線的可視化,同時(shí)包含對某群體健康曲線的可視化及預(yù)測,并以此為基礎(chǔ)對個(gè)體日常行為的干預(yù)顯示,以此為背景我選擇設(shè)計(jì)健康管理平臺。

1.2 設(shè)計(jì)目的和意義

健康管理既是一個(gè)概念,也是一種方法,更是一套完善、周密的服務(wù)程序,其目的在于使病人以及健康人更好地?fù)碛薪】?、恢?fù)健康、促進(jìn)健康并盡量節(jié)約經(jīng)費(fèi)開支,有效降低醫(yī)療支出。健康管理有如下幾大作用:一是可以了解居民的身體年齡,判斷疾病指向;二是可以根據(jù)日常行為判斷發(fā)病概率,以此為基礎(chǔ)由醫(yī)生提供降低慢性病發(fā)生危險(xiǎn)性的行為干預(yù)方案;三是可以長期(終生)跟蹤高危人群的健康,最大限度減少重大疾病的發(fā)生;四是可以節(jié)省維護(hù)健康的時(shí)間和金錢,提高保健效率[2]。

建立面向教師的健康管理平臺的目的,對于個(gè)人,是如何利用健康體檢系統(tǒng)中的信息為人們的健康保駕護(hù)航。而健康信息信息管理系統(tǒng)的管理和利用,不僅需要具備基礎(chǔ)醫(yī)學(xué)知識、臨床醫(yī)學(xué)知識、流行病學(xué)知識、計(jì)算機(jī)技術(shù)、數(shù)學(xué)統(tǒng)計(jì)知識等綜合素質(zhì)的專業(yè)人員,同時(shí)需要有龐大的保健醫(yī)學(xué)、預(yù)防醫(yī)學(xué)、臨床醫(yī)學(xué)、康復(fù)醫(yī)學(xué)等專業(yè)的資深專家團(tuán)隊(duì)的支持,才能夠?yàn)閭€(gè)人提供一系列的健康管理服務(wù)。

當(dāng)今世界,信息管理數(shù)字化非計(jì)算機(jī)莫屬,只有利用計(jì)算機(jī)技術(shù),使用我國各個(gè)高校統(tǒng)一標(biāo)準(zhǔn)的健康體檢系統(tǒng)表格,開發(fā)高校健康體檢系統(tǒng)的系統(tǒng)軟件,設(shè)置教師健康體檢系統(tǒng)的計(jì)算機(jī)編號,制作教師的健康體檢檔案,并詳細(xì)記錄其本次體檢程中所發(fā)現(xiàn)的健康問題和處理情況等,實(shí)現(xiàn)用戶的健康體檢系統(tǒng)信息在學(xué)校范圍內(nèi)的網(wǎng)絡(luò)信息交換和共享,利用計(jì)算機(jī)技術(shù),對用戶的健康體檢系統(tǒng)實(shí)現(xiàn)連續(xù)的動態(tài)管理。健康信息管理系統(tǒng)以計(jì)算機(jī)為工具,通過對用戶體檢所得的數(shù)據(jù)進(jìn)行信息管理,把管理人員從繁瑣的數(shù)據(jù)計(jì)算處理中解脫出來,為更好的幫組用戶身體健康監(jiān)督檢查,從而全面提高質(zhì)量。具體通過本系統(tǒng)可以對用戶的基本健康狀況進(jìn)行各種必要的統(tǒng)計(jì)和分析[3]。

本項(xiàng)目將針對高校群體研發(fā)多模態(tài)的健康數(shù)據(jù)采集系統(tǒng),對歷年體檢數(shù)據(jù)、就診數(shù)據(jù)、膳食結(jié)構(gòu)、生活習(xí)慣等健康相關(guān)信息建立統(tǒng)一管理系統(tǒng),并在此基礎(chǔ)上采用數(shù)據(jù)挖掘方法對諸如心血管疾病、高血壓、糖尿病等慢性病進(jìn)行有效建模與評估,對高校群體內(nèi)廣泛存在的亞健康狀態(tài)進(jìn)行綜合客觀評價(jià)和風(fēng)險(xiǎn)預(yù)測,最終實(shí)現(xiàn)針對高校群體慢性病患者及其高危人群的動態(tài)跟蹤健康管理與干預(yù)。

1.3 國內(nèi)外研究現(xiàn)狀

健康管理的概念最早見于美國,早在1929年美國洛杉磯水利局就成立了最早的健康維護(hù)組織。早在20世紀(jì)70年代的美國,由于健康保險(xiǎn)的發(fā)展以及醫(yī)療服務(wù)模式的改變,要求醫(yī)生能更好地指導(dǎo)病人進(jìn)行疾病預(yù)防以及更加節(jié)省醫(yī)療費(fèi)用。健康服務(wù)組織通過對人群的健康狀況進(jìn)行評價(jià)和疾病的風(fēng)險(xiǎn)評估,科學(xué)預(yù)測疾病的危險(xiǎn)因素,制定具體的、有針對性的預(yù)防和保健措施。通過健康管理美國的醫(yī)療費(fèi)比以前節(jié)省了大約10%,同時(shí)避免了疾病的發(fā)生,提高了生活質(zhì)量。資料顯示,通過健康管理計(jì)劃,在1978-1983年,美國人的膽固醇水平下降了2%;高血壓水平下降了4%;冠心病發(fā)病率下降了16%。美國密執(zhí)安大學(xué)健康管理研究中心主任第·艾鼎敦博士(Dee.W.Edington)曾經(jīng)提出美國20多年的研究得出了9:1定律結(jié)論,即90%的人通過健康管理后,醫(yī)療費(fèi)用降到了原來的10%;10%的人未做健康管理,醫(yī)療費(fèi)用比原來上升了90%。通過經(jīng)濟(jì)學(xué)分析發(fā)現(xiàn),在健康管理方面投入1元錢,相當(dāng)于減少3-6元醫(yī)療費(fèi)用的開銷。如果加上由此產(chǎn)生的勞動生產(chǎn)率提高的回報(bào),實(shí)際效益達(dá)到投入的8倍[4]。

健康管理在中國剛剛起步,是一個(gè)朝陽的產(chǎn)業(yè)。目前在中國大陸地區(qū)僅有少數(shù)專業(yè)的健康管理機(jī)構(gòu),大部分為醫(yī)院及體檢中心的附屬部門。健康管理的從業(yè)人數(shù)沒有準(zhǔn)確的數(shù)據(jù),估計(jì)全國在10萬人以上,也就是說我國享受科學(xué)、專業(yè)的健康管理服務(wù)的人數(shù)只占人口總數(shù)的萬分之二,這一比例與美國70%居民能夠在健康管理公司或企業(yè)接受完善的服務(wù)相去甚遠(yuǎn)。而且目前健康管理仍然主要依賴于簡單的單次體檢或就診數(shù)據(jù)由醫(yī)生提供一些生活習(xí)慣的建議和意見,并沒有把個(gè)人的歷史病歷以及日常行為對個(gè)人慢性病的影響考慮進(jìn)去。此外,目前的健康管理也主要是針對已患病的患者,還未做到“早篩選、早預(yù)防、早發(fā)現(xiàn)、早診斷”的動態(tài)追蹤的健康管理模式。

2 系統(tǒng)需求分析

2.1 系統(tǒng)目標(biāo)

健康管理平臺的總目標(biāo)是:在計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫和先進(jìn)的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個(gè)具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的教師健康管理平臺。

具體的要求如下:

  1. 教師可以方便的使用五大基本功能;

  2. 獨(dú)立于具體的數(shù)據(jù)庫平臺。對于與數(shù)據(jù)庫交互的部分充分考慮兼容性;

  3. 容易在原先基礎(chǔ)上進(jìn)行二次開發(fā);

  4. 中間基礎(chǔ)平臺的無型性。盡量采用開放的標(biāo)準(zhǔn)技術(shù),達(dá)到跨平臺運(yùn)行的效果。

為了達(dá)到以上的開發(fā)目的,健康管理平臺應(yīng)遵循一定的設(shè)計(jì)和開發(fā)與原則:

  1. 模塊接口定義清晰;

2) 基礎(chǔ)類庫和接口設(shè)計(jì)合理,盡量建立叮擴(kuò)展的接口和抽象類;

3) 數(shù)據(jù)庫操作使用標(biāo)準(zhǔn)SQL語句,如果一定要使用有差別的SQL語句,則盡量集中在一起,以減少將來維護(hù)和移植的難度;

4) 采用開放的標(biāo)準(zhǔn)和工具等。

2.2 系統(tǒng)的功能要求

2.2.1 前臺功能

在前臺的功能實(shí)現(xiàn)上,可以分為以下幾個(gè)部分:

1.教師飲食管理:根據(jù)教師的相關(guān)信息,計(jì)算其每天所需熱量,給出一周的推薦菜單。

2.教師健康日志:用戶可以記錄自己健康日記,記錄每一天的睡眠,飲酒,吸煙,血壓,體重等情況。

3.教師體檢管理:教師可通過該平臺查詢每次的體檢結(jié)果,顯示部分項(xiàng)目隨時(shí)間變化的曲線。

4.疾病預(yù)測評估:針對糖尿病和高血壓兩種疾病,利用數(shù)學(xué)線性回歸的方法,模擬計(jì)算出教師患病概率。

2.2.2 后臺功能

后臺主要有四個(gè)功能:

1.管理員用戶登錄功能:通過編號登錄系統(tǒng)。

2.管理員管理教師功能:可以增刪改查教師基本信息。

3.管理員管理體檢結(jié)果:可以增刪改查教師體檢記錄。

4.管理員管理健康新聞:可以發(fā)布或刪除新聞。

2.3 系統(tǒng)的性能需求

健康管理平臺的特性要求網(wǎng)站系統(tǒng)需要具備以下幾個(gè)主要特性:

  1. 多樣性:健康管理平臺在設(shè)計(jì)時(shí)必須遵循的一個(gè)重要原則,就是以用戶為系統(tǒng)設(shè)計(jì)的中心。網(wǎng)絡(luò)的發(fā)展大大降低了信息咨詢的成本,用戶面臨更多的選擇,所以,健康管理平臺除了降低成本以外,還必須在外觀,功能的多樣性上下工夫,才能夠得到用戶的認(rèn)可。具體來說,應(yīng)用系統(tǒng)應(yīng)能實(shí)現(xiàn)用戶特定的需求,操作界面友好、方便,功能設(shè)置符合用戶的習(xí)慣和要求。

  2. 易維護(hù):管理員能夠簡單方便地管理系統(tǒng),定義新的應(yīng)用,并對系統(tǒng)進(jìn)行日常維護(hù);隨著健康管理平臺信息的變更或增加、數(shù)據(jù)規(guī)模的增大,系統(tǒng)升級、維護(hù)應(yīng)易于操作;各子系統(tǒng)、功能模塊的設(shè)計(jì)應(yīng)具有良好的靈活性,保證在健康管理平臺系統(tǒng)建設(shè)過程中后期系統(tǒng)功能的實(shí)現(xiàn)不影響前期已投入使用的系統(tǒng)功能。

  3. 安全性:系統(tǒng)應(yīng)充分考慮信息、設(shè)備、運(yùn)行和管理的安全性,建立完善的多層次的安全保障體系,保證用戶的個(gè)人信息等資料的數(shù)據(jù)安全。

  4. 可擴(kuò)展:健康管理平臺的用戶從事著各種行業(yè),他們的需求各不相同,系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)充分考慮到用戶需求不斷變化的需要,降低系統(tǒng)在擴(kuò)展新的業(yè)務(wù)功能時(shí)的復(fù)雜度[5]。

2.4 系統(tǒng)的數(shù)據(jù)要求

2.4.1 數(shù)據(jù)的性質(zhì)

  1. 數(shù)據(jù)錄入和處理的準(zhǔn)確性和實(shí)時(shí)性。
    數(shù)據(jù)的輸入是否準(zhǔn)確是數(shù)據(jù)處理的前提,錯(cuò)誤的輸入會導(dǎo)致系統(tǒng)輸出的不正確和不可用,從而使系統(tǒng)的工作失去意義。數(shù)據(jù)的輸入來源是用戶的手工輸入。手工輸入要通過系統(tǒng)界面上的安排系統(tǒng)具有容錯(cuò)性,并且對用戶操作進(jìn)行實(shí)時(shí)的跟蹤和錯(cuò)誤提示。
    在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的,因此系統(tǒng)要有一定的處理能力,以保證迅速的處理數(shù)據(jù)。

  2. 數(shù)據(jù)的一致性與完整性。
    由于網(wǎng)站的數(shù)據(jù)是共享的,所以如何保證這些數(shù)據(jù)的一致性,是網(wǎng)站必須解決的問題。要解決這一問題,要有一定的人員維護(hù)數(shù)據(jù)的一致性,在數(shù)據(jù)錄入處控制數(shù)據(jù)的去向,并且要求對數(shù)據(jù)庫的數(shù)據(jù)完整性進(jìn)行嚴(yán)格的約束。
    對于輸入的數(shù)據(jù),要為其定義完整性規(guī)則,如果不能符合完整性約束,網(wǎng)站應(yīng)該拒絕該數(shù)據(jù)。

  3. 數(shù)據(jù)的共享與獨(dú)立性。

整個(gè)健康管理平臺的數(shù)據(jù)是共享的。然而,從網(wǎng)站開發(fā)的角度上看,共享會給設(shè)計(jì)和調(diào)試帶來困難。因此,應(yīng)該提供靈活的配置,使各個(gè)分系統(tǒng)能夠獨(dú)立運(yùn)行,而通過人工干預(yù)的手段進(jìn)行系統(tǒng)數(shù)據(jù)的交換。這樣,也能提供系統(tǒng)的強(qiáng)壯性。

2.4.2 數(shù)據(jù)字典

健康管理平臺主要涉及到真實(shí)姓名數(shù)據(jù)字典,如表2.1所示:

表2.1 真實(shí)姓名數(shù)據(jù)字典

名稱:真實(shí)姓名

別名:realname

描述:教師注冊時(shí)需要輸入自己的真實(shí)姓名,需與體檢表中的名字統(tǒng)一。

定義:真實(shí)姓名=[{字}2|{字}3|{字}4]

位置:用戶注冊界面

用戶注冊界面涉及到電話的數(shù)據(jù)字典,如表2.2所示:

表2.2 電話數(shù)據(jù)字典

名稱:電話

別名:phone

描述:教師注冊時(shí)需要輸入自己的聯(lián)系方式。

定義:電話={0···9}11

位置:用戶注冊界面

用戶注冊界面涉及到郵箱的數(shù)據(jù)字典,如表2.3所示:

表2.3 郵箱數(shù)據(jù)字典

名稱:郵箱

別名:email

描述:教師注冊時(shí)需要輸入自己的郵箱。

定義:郵箱= [a···z|0···9|A···Z] +@+([a···z|0···9|A···Z]

位置:用戶注冊界面

2.4.3 實(shí)體聯(lián)系圖

健康管理平臺主要涉及的實(shí)體聯(lián)系圖有六個(gè),實(shí)體有Teacher、Manager、Food、

Notice、Exam、Dairy。

3 系統(tǒng)設(shè)計(jì)

3.1 開發(fā)工具介紹

3.1.1 My Eclipse 介紹

My Eclipse企業(yè)級工作平臺(MyEclipseEnterprise Workbench ,簡稱My Eclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和Java EE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的Java EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,SQL,Javascript,Spring,Hibernate。

My Eclipse 是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的 Eclipse 插件集合,My Eclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯(cuò)。My Eclipse目前支持Java Servlet , AJAX, JSP, JSF, Struts, Spring, Hibernate, EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項(xiàng)功能。My Eclipse幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具[6]。

My Eclipse 2013支持HTML5、JQuery 和主流的JavaScript 庫。隨著My Eclipse 2013支持Html5,可以添加音頻、視頻和API元素到項(xiàng)目,從而為移動設(shè)備創(chuàng)建復(fù)雜的Web應(yīng)用程序。甚至還可以通過HTML5 可視化設(shè)計(jì)器設(shè)計(jì)令人難以置信的用戶界面。同時(shí),隨著My Eclipse 2013支持JQuery,可以通過插件提升性能,并添加動畫效果到設(shè)計(jì)中。

3.1.2 Oracle 介紹

Oracle數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。比如Silver Stream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫,它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實(shí)現(xiàn)了分布式處理功能。

Oracle數(shù)據(jù)庫最新版本為Oracle Database 12c。Oracle數(shù)據(jù)庫12c?引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對數(shù)據(jù)分層。這些獨(dú)一無二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫12c成為私有云和公有云部署的理想平臺[7]。

3.2 開發(fā)技術(shù)介紹

3.2.1 Struts2

Struts是 Apache軟件基金會(ASF)贊助的一個(gè)開源項(xiàng)目。它最初是 Jakarta項(xiàng)目中的一個(gè)子項(xiàng)目,并在2004年3月成為ASF的頂級項(xiàng)目。它通過采用 Java Servlet/JSP 技術(shù),實(shí)現(xiàn)了基于Java EE的Web應(yīng)用的MVC設(shè)計(jì)模式的應(yīng)用框架,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。

在Struts 中,已經(jīng)由一個(gè)名為ActionServle的 Servlet 充當(dāng)控制器(Controller)的角色,根據(jù)描述模型、視圖、控制器對應(yīng)關(guān)系的struts-config.xml的配置文件,轉(zhuǎn)發(fā)視圖(View)的請求,組裝響應(yīng)數(shù)據(jù)模型(Model)。在 MVC 的模型(Model)部分,經(jīng)常劃分為兩個(gè)主要子系統(tǒng)(系統(tǒng)的內(nèi)部數(shù)據(jù)狀態(tài)與改變數(shù)據(jù)狀態(tài)的邏輯動作),這兩個(gè)概念子系統(tǒng)分別具體對應(yīng) Struts 里的ActionForm與Action兩個(gè)需要繼承實(shí)現(xiàn)超類。在這里,Struts 可以與各種標(biāo)準(zhǔn)的數(shù)據(jù)訪問技術(shù)結(jié)合在一起,包括Enterprise Java Beans(EJB),JDBC與JNDI。在Struts的視圖(View) 端,除了使用標(biāo)準(zhǔn)的JavaServer Pages(JSP)以外,還提供了大量的標(biāo)簽庫使用,同時(shí)也可以與其他表現(xiàn)層組件技術(shù)(產(chǎn)品)進(jìn)行整合,比如 Velocity Templates,XSLT 等。通過應(yīng)用 Struts 的框架,最終用戶可以把大部分的點(diǎn)放在自己的業(yè)務(wù)邏輯(Action)與 映射關(guān)系的配置文件(struts-config.xml)中。

在Java EE的Web應(yīng)用發(fā)展的初期,除了使用Servlet技術(shù)以外,普遍是在JavaServer Pages(JSP)的源代碼中,采用HTML與Java代碼混合的方式進(jìn)行開發(fā)。因?yàn)檫@兩種方式不可避免的要把表現(xiàn)與業(yè)務(wù)邏輯代碼混合在一起,都給前期開發(fā)與后期維護(hù)帶來巨大的復(fù)雜度。為了擺脫上述的約束與局限,把業(yè)務(wù)邏輯代碼從表現(xiàn)層中清晰的分離出來,2000年,Craig McClanahan采用了MVC的設(shè)計(jì)模式開發(fā)Struts。后來該框架產(chǎn)品一度被認(rèn)為是最廣泛、最流行JAVA的WEB應(yīng)用框架。2006年,WebWork與Struts這兩個(gè)優(yōu)秀的Java EE Web框架(Web Framework〕的團(tuán)體,決定合作共同開發(fā)一個(gè)新的,整合了WebWork與Struts優(yōu)點(diǎn),并且更加優(yōu)雅、擴(kuò)展性更強(qiáng)的框架,命名為“Struts 2”,原Struts的1.x 版本產(chǎn)品稱為“Struts 1”。

其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品。雖然從Struts 1到Struts 2有著太大的變化,但是相對于WebWork,Struts 2的變化很小。

3.2.2 Spring 介紹

2002 年wrox 出版了《Expert one on one J2EE design and development》一書。該書的作者是Rod Johnson。在書中, Johnson 對傳統(tǒng)的J2EE 架構(gòu)提出深層次的思考和質(zhì)疑。并提出J2EE 的實(shí)用主義思想。2003 年, J2EE 領(lǐng)域出現(xiàn)一個(gè)新的框架: Spring ,該框架同樣出自Johnson 之手。事實(shí)上, Spring 框架是《Expert one on one J2EE design and development》一書中思想的全面體現(xiàn)和完善, Spring 對實(shí)用主義J2EE 思想進(jìn)一步改造和擴(kuò)充,使其發(fā)展成更開放、清晰、全面及高效的開發(fā)框架。一經(jīng)推出,就得到眾多開發(fā)者的擁戴。傳統(tǒng)J2EE 應(yīng)用的開發(fā)效率低,應(yīng)用服務(wù)器廠商對各種技術(shù)的支持并沒有真正統(tǒng)一,導(dǎo)致J2EE 的應(yīng)用并沒有真正實(shí)現(xiàn)Write Once 及Run Anywhere 的承諾。Spring 作為開源的中間件,獨(dú)立于各種應(yīng)用服務(wù)器,甚至無須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)等。Spring 致力于J2EE 應(yīng)用的各層的解決方案,而不是僅僅專注于某一層的方案。可以說Spring 是企業(yè)應(yīng)用開發(fā)的”一站式”選擇,并貫穿表現(xiàn)層、業(yè)務(wù)層及持久層。然而,Spring 并不想取代那些已有的框架,而與它們無縫地整合[8]??偨Y(jié)起來, Spring 有如下優(yōu)點(diǎn):

1.低侵入式設(shè)計(jì),代碼污染極低。

2.獨(dú)立于各種應(yīng)用服務(wù)器,可以真正實(shí)現(xiàn)Write Once, Run Anywhere 的承諾。

3.Spring 的DI 機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性。

4.Spring 并不完全依賴于Spring ,開發(fā)者可自由選用Spring 框架的部分或全部。

3.2.3 Hibernate 介紹

Hibernate 是目前最流行的ORM 框架,其采用非常優(yōu)雅的方式將SQL 操作完全包裝成對象化的操作。其作者Gavin King 在持久層設(shè)計(jì)上極富經(jīng)驗(yàn),采用非常少的代碼實(shí)現(xiàn)了整個(gè)框架,同時(shí)完全開放源代碼,即使偶爾遇到無法理解的情況,也可以參照源代碼來理解其在持久層上靈巧而智能的設(shè)計(jì)。下面通過對比來了解Hibernate 和傳統(tǒng)JDBC 操作數(shù)據(jù)庫持久層之間的差異[9]。

3.2.4 JSP 介紹

JSP是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)簽,就構(gòu)成了JSP網(wǎng)頁java程序片段可以操縱數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送E-mail等,實(shí)現(xiàn)建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,這樣大 大降低了對客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問JSP網(wǎng)頁。

JSP全名為Java Server Pages,其根本是一個(gè)簡化的Servlet設(shè)計(jì),他實(shí)現(xiàn)了Html語法中的java擴(kuò)張(以 <%, %>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。

JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來。

JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。

3.2.5 Jquery(JavaScript) 介紹

JavaScript是一種基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言。同時(shí)也是一種廣泛用于客戶端Web開發(fā)的腳本語言,常用來給HTML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)網(wǎng)頁添加動態(tài)功能,比如響應(yīng)用戶的各種操作。它最初由網(wǎng)景公司(Netscape)的Brendan Eich設(shè)計(jì),是一種動態(tài)、弱類型、基于原型的語言,內(nèi)置支持類。JavaScript是Sun公司(已被oracle收購)的注冊商標(biāo)。Ecma國際以JavaScript為基礎(chǔ)制定了ECMAScript標(biāo)準(zhǔn)。JavaScript也可以用于其他場合,如服務(wù)器端編程。完整的JavaScript實(shí)現(xiàn)包含三個(gè)部分:ECMAScript,文檔對象模型,瀏覽器對象模型。

jQuery是一個(gè)兼容多瀏覽器的javascript框架,核心理念是write less,do more(寫得更少,做得更多)。jQuery是免費(fèi)、開源的,使用MIT許可協(xié)議。jQuery的語法設(shè)計(jì)可以使開發(fā)者更加便捷,例如操作文檔對象、選擇DOM元素、制作動畫效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開發(fā)者編寫插件。其模塊化的使用方式使開發(fā)者可以很輕松的開發(fā)出功能強(qiáng)大的靜態(tài)或動態(tài)網(wǎng)頁。

3.2.6 DWR(Ajax)介紹

AJAX 指異步JavaScript及XML(AsynchronousJavascript+XML)。核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。

AJAX不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的 Web 應(yīng)用程序的技術(shù)。在瀏覽器與 Web 服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP 請求),這樣就可使網(wǎng)頁從服務(wù)器請求少量的信息,而不是整個(gè)頁面;可使因特網(wǎng)應(yīng)用程序更小、更快,更友好;是一種獨(dú)立于 Web 服務(wù)器軟件的瀏覽器技術(shù)。DWR它包含兩個(gè)主要的部分:允許JavaScript從WEB服務(wù)器上一個(gè)遵循了AJAX原則的Servlet中獲取數(shù)據(jù).另外一方面一個(gè)JavaScript庫可以幫助網(wǎng)站開發(fā)人員輕松地利用獲取的數(shù)據(jù)來動態(tài)改變網(wǎng)頁的內(nèi)容。DWR采取了一個(gè)類似AJAX的新方法來動態(tài)生成基于JAVA類的JavaScript代碼。這樣WEB開發(fā)人員就可以在JavaScript里使用Java代碼,就像它們是瀏覽器的本地代碼一樣;但是Java代碼運(yùn)行在WEB服務(wù)器端而且可以自由訪問WEB 服務(wù)器的資源。

3.3 系統(tǒng)架構(gòu)設(shè)計(jì)

本系統(tǒng)采用嚴(yán)格的J2EE 應(yīng)用結(jié)構(gòu),主要有如下幾個(gè)分層。

  1. 表現(xiàn)層:由JSP 頁面組成。

  2. MVC 層:使用Struts框架。

  3. 業(yè)務(wù)邏輯層:主要由Spring loc 容器管理的業(yè)務(wù)邏輯組件組成。

  4. DAO 層:由 DAO 組件組成,實(shí)現(xiàn)類必須繼承Spring提供的Hibernate Dao Support。

  5. Hibernate 持久層:由 PO 組成,并在Hibernate Session 管理下,完成數(shù)據(jù)庫訪問。

  6. 數(shù)據(jù)庫服務(wù)層:使用Oracle 數(shù)據(jù)庫存儲持久化數(shù)據(jù)。
    系統(tǒng)的具體分層如圖3.1所示:
    視圖層(JSP)
    Web層(Struts)
    DAO
    DataAccess
    Object
    Service層
    (業(yè)務(wù)邏輯層)
    Hibernate
    持久層
    數(shù)據(jù)庫服務(wù)(Oracle)
    圖3.1 系統(tǒng)結(jié)構(gòu)圖
    在圖3.1黑色大方框內(nèi)的MVC 控制層、Service 層及DAO 組件層的組件,都由Spring IOC 容器負(fù)責(zé)生成,并管理組件的實(shí)例。
    本系統(tǒng)不僅嚴(yán)格按MVC 模式設(shè)計(jì),還按J2EE分層設(shè)計(jì),將中間層嚴(yán)格分成業(yè)務(wù)邏輯層、DAO 層及數(shù)據(jù)持久層等。MVC 層的控制器絕對禁止持久層訪問,甚至不參與業(yè)務(wù)邏輯的實(shí)現(xiàn)。表現(xiàn)層采用傳統(tǒng)JSP 技術(shù)。
    本系統(tǒng)采用的是典型的J2EE 三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理。客戶端不直接與數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。JSP廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。中間層采用的是流行的Spring + Hibernate ,為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種:
    Web 層,就是MVC 模式里面的C,負(fù)責(zé)邏輯層和表現(xiàn)層的交互。調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC采用Struts框架。
    Service 層(就是業(yè)務(wù)邏輯層),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO 層為基礎(chǔ),通過對DAO 組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。
    DAO 層,負(fù)責(zé)與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。
    PO ,持久化對象。通過實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫,該系統(tǒng)采用Hibernate 作為ORM 框架。Spring 的作用貫穿了整個(gè)中間層,將Web 層、Service 層、DAO 層及PO 無縫整合,其數(shù)據(jù)服務(wù)層用來存放數(shù)據(jù)。
    3.3.1 Hibernate持久化
    通過使用Hibernate 持久層,可以避免使用傳統(tǒng)的JDBC 操作數(shù)據(jù)庫,對JDBC近一步包裝,從而更好地使用面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫。保證了整個(gè)軟件開發(fā)過程以面向?qū)ο蟮姆绞竭M(jìn)行,即面向?qū)ο蠓治?、設(shè)計(jì)及編程,透過Hibernate 對PO對象持久化操作,不管插入還是查詢都是通過PO。
    在Hibernate 持久層之上,可使用DAO 組件再次封裝數(shù)據(jù)庫操作。通過DAO 層,可以讓業(yè)務(wù)邏輯層與具體持久層技術(shù)分離,一旦需要更換持久層技術(shù)時(shí),業(yè)務(wù)邏輯層組件不需要任何改變。因此,使用DAO 組件,即意味著引入DAO 模式,使每個(gè)DAO 組件包含了數(shù)據(jù)庫的訪問邏輯:每個(gè)DAO 組件可對一個(gè)數(shù)據(jù)庫表完成基本的CRUD 等操作。
    DAO 模式的實(shí)現(xiàn)至少需要如下三個(gè)部分:


    1. DAO 工廠類。

    2. DAO 接口。

    3. DAO 接口的實(shí)現(xiàn)類。DAO 模式是一種更符合軟件工程的開發(fā)方式,使用DAO 模式有如下理由:

  1. DAO 模式抽象出數(shù)據(jù)訪問方式,業(yè)務(wù)邏輯組件無須理會底層的數(shù)據(jù)庫訪問,而只專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。

  2. DAO 將數(shù)據(jù)訪問集中在獨(dú)立的一層,所有的數(shù)據(jù)訪問都由DAO 對象完成,這層獨(dú)立的DAO 分離了數(shù)據(jù)訪問的實(shí)現(xiàn)與其他業(yè)務(wù)邏輯,使得系統(tǒng)更具可維護(hù)性。

  3. DAO 還有助于提升系統(tǒng)的可移植性。獨(dú)立的DAO 層使得系統(tǒng)能在不同的數(shù)據(jù)庫之間輕易切換,底層的數(shù)據(jù)庫實(shí)現(xiàn)對于業(yè)務(wù)邏輯組件是透明的。數(shù)據(jù)庫移植時(shí)僅僅影響DAO 層,不同數(shù)據(jù)庫的切換不會影響業(yè)務(wù)邏輯組件,因此提高了系統(tǒng)的可復(fù)用性。

對于不同的持久層技術(shù),Spring 的DAO 提供一個(gè)DAO 模板,將通用的操作放在模板里完成,而對于特定的操作,則通過回調(diào)接口完成。

3.3.2 Service層

Service 組件采用正面模式封裝多個(gè)DAO 組件, DAO 對象與Service 組件之間的關(guān)Service 組件需要實(shí)現(xiàn)的業(yè)務(wù)方法主要取決于業(yè)務(wù)的需要,通常需要在業(yè)務(wù)組件中包含對應(yīng)的方法。

業(yè)務(wù)層組件的實(shí)現(xiàn)業(yè)務(wù)層組件與具體的數(shù)據(jù)庫訪問技術(shù)分離,使所有的數(shù)據(jù)庫訪問依賴于DAO 組件,定義一個(gè)Facade Manager Impl來包裝7個(gè)Dao這樣就可以把邏輯層和Dao分開,達(dá)到松散耦合的效果。事務(wù)管理將推遲到Service組件而不是DAO 組件,因?yàn)橹挥袑I(yè)務(wù)邏輯方法添加事務(wù)才有實(shí)際的意義,對于單個(gè)DAO方法(基本的CRUD 方法)增加事務(wù)操作是沒有太大實(shí)際意義的。關(guān)于事務(wù)屬性的配置,本系統(tǒng)使用Spring 提供的Transaction Proxy Factory Bean配置事務(wù)代理。這樣不必為每個(gè)目標(biāo)對象配置代理bean;避免了目標(biāo)對象被直接調(diào)用。部署業(yè)務(wù)層組件單獨(dú)配置系統(tǒng)的業(yè)務(wù)邏輯層,可避免因配置文件過大引起配置文件難以閱讀。將配置文件按層和模塊分開配置,可以提高Spring 配置文件的可讀性和可理解性。在application Context.xml 配置文件中配置數(shù)據(jù)源、事務(wù)管理器、業(yè)務(wù)邏輯組件和事務(wù)管理器等bean[10]。

4 系統(tǒng)概要設(shè)計(jì)

4.1 系統(tǒng)體系結(jié)構(gòu)

基于B/S結(jié)構(gòu)的健康管理平臺,應(yīng)由終端(用戶主機(jī)/瀏覽器)、WEB服務(wù)器、數(shù)據(jù)服務(wù)器構(gòu)成。健康管理平臺的核心是中間的接入服務(wù)器和應(yīng)用服務(wù)器部分。健康管理平臺的總體結(jié)構(gòu)圖如圖4.1所示:

圖4.1 健康管理平臺總體結(jié)構(gòu)

4.1.1 設(shè)計(jì)原則

在進(jìn)行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進(jìn)行系統(tǒng)的選型,即根據(jù)系統(tǒng)功能的實(shí)際需求,選擇合適的開發(fā)工具及軟件架構(gòu)。

本系統(tǒng)設(shè)計(jì)時(shí),比較主流的B/S設(shè)計(jì)有基于JSP、ASP、PHP、CGI及J2EE等模式。相比較而言PHP的功能相對簡單,不適合做大程序;而CGI效率相對較低,所以也不考慮。由于J2EE的開源的框架中提供了MVC模式實(shí)現(xiàn)框架Struts、對象關(guān)系模型中的Hibernate的框架及擁有事務(wù)管理和依賴注入的Spring。利用現(xiàn)存框架可以更快開發(fā)系統(tǒng),所以選擇Java技術(shù)作為健康平臺的開發(fā)工具。

4.1.2 運(yùn)行架構(gòu)

首先要對系統(tǒng)進(jìn)行分析,確定對系統(tǒng)的綜合要求,分析系統(tǒng)的數(shù)據(jù)要求,導(dǎo)出系統(tǒng)的邏輯模型。再對系統(tǒng)分析后確定系統(tǒng)的模塊,對每個(gè)模塊進(jìn)行研究,這也是該系統(tǒng)的一個(gè)主要解決的地方。本系統(tǒng)包括了用戶,管理員等很多信息,所以對該系統(tǒng)要建立數(shù)據(jù)庫。管理系統(tǒng)是基于WEB的,所以需要一定的網(wǎng)頁支持以及與數(shù)據(jù)庫的連接。該系統(tǒng)主要是以JSP技術(shù)為主來開發(fā)的,所以要對該技術(shù)進(jìn)行了解,學(xué)習(xí)。除此之外采用的技術(shù)和環(huán)境要求如下:

數(shù)據(jù)庫訪問:oracle數(shù)據(jù)庫

服務(wù)器訪問:Tomcat系列服務(wù)器

網(wǎng)頁編程技術(shù):DIV+CSS、JAVASCRIPT、AJAX等

后臺處理技術(shù):Struts2+Hibernate+Spring

硬件需求:PIII/512M/10G 及以上配置

操作系統(tǒng):Windows2000及以上操作系統(tǒng)

4.2 網(wǎng)站功能結(jié)構(gòu)

網(wǎng)站前臺功能結(jié)構(gòu)圖,如圖4.2所示:

圖4.2 網(wǎng)站前臺功能結(jié)構(gòu)圖

網(wǎng)站后臺功能結(jié)構(gòu)圖,如圖4.3所示:

網(wǎng)站后臺功能

管理員

管理教師信息

管理體檢

信息

管理健康信息

圖4.3 網(wǎng)站后臺功能結(jié)構(gòu)圖

4.3 數(shù)據(jù)庫設(shè)計(jì)

4.3.1 數(shù)據(jù)庫詳細(xì)設(shè)計(jì)

數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:

1.管理員表(Manager): 管理員編號,管理員名字,管理員密碼;

2.新聞表(Notice):新聞編號,新聞標(biāo)題,新聞內(nèi)容,發(fā)布時(shí)間,圖片路徑,發(fā)布者;

3.食物表(Food):食物編號,食物名字,食物熱量,食物類型,食物碳水化合物,纖維素,脂肪,蛋白質(zhì);

4.體檢表(Exam):收縮壓,舒張壓,體重指數(shù),腰臀比,尿素,尿酸,肌酐,甘油三酯,膽固醇,高密度脂蛋白膽固醇,低密度脂蛋白膽固醇,葡萄糖,同型半膀胱氨酸,微量白蛋白,微量白蛋白/尿肌酐;

5.教師表(Teacher):教師編號,教師昵稱,教師密碼,教師年齡,教師性別,教師郵箱,找回密碼問題,找回密碼答案,教師真實(shí)名字;

6.日志表(Dairy):日志內(nèi)容,日志時(shí)間,睡眠時(shí)間,心情,抽煙,體重,壓力,高壓,低壓,心率;

7.日志食物表(Dairy-food):日志編號,食物編號。

4.3.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)

數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)匯總表,如表4.1所示:

4.3.3 數(shù)據(jù)庫表設(shè)計(jì)

數(shù)據(jù)庫中共涉及到七張表,分別是管理員表,新聞表,食物表,日志表,日志食物表,體檢表以及教師表。

表4.2 管理員表

4.4 信息安全設(shè)計(jì)

網(wǎng)絡(luò)的開放性導(dǎo)致網(wǎng)絡(luò)技術(shù)的全面開放,任何團(tuán)體和個(gè)人都可以獲得網(wǎng)絡(luò)資源,因而網(wǎng)絡(luò)所面臨的破壞和攻擊將會是多方面的,可以是對軟件環(huán)境實(shí)施攻出,也可以是對硬件環(huán)境實(shí)施攻擊。網(wǎng)絡(luò)的國際性還意味著網(wǎng)絡(luò)的攻擊將不僅僅來自本地網(wǎng)絡(luò)用戶,它可能來自Internet上的任何一臺機(jī)器。即,發(fā)起攻擊的節(jié)點(diǎn)可以位于世界上任何地方。因此可以說,網(wǎng)絡(luò)安全所面臨的將是一個(gè)國際性全球化的挑戰(zhàn)。網(wǎng)絡(luò)的自由性意味著網(wǎng)絡(luò)最初對用戶的使用并沒有提供任何的技術(shù)約束,用戶可以自由地訪問網(wǎng)絡(luò),自由地使用和發(fā)布各種類型的信息。用戶只對自己的行為負(fù)責(zé),而沒有受到任何的法律限制。如何保護(hù)個(gè)人的機(jī)密信息不受木馬和病毒的入侵,己成為信息安全化健康發(fā)展所要考慮的重要事情之一。

健康管理平臺用戶個(gè)人信息的安全問題是至關(guān)重要的,制定切實(shí)可行的安全策略和實(shí)施有力的防范手段是非常必要的。系統(tǒng)的安全體系由下述結(jié)構(gòu)組成,如下圖4.4所示:

環(huán)境安全

物理安全

網(wǎng)絡(luò)安全

主機(jī)系統(tǒng)安全 人員管理安全

操作安全規(guī)則 安全策略

圖4.4 系統(tǒng)的安全體系結(jié)構(gòu)

4.4.1 網(wǎng)絡(luò)安全

Jsp技術(shù)雖然比較安全,但還是存在著很多安全上的問題的,客觀的說,服務(wù)器軟件的開發(fā)商在內(nèi)部測試中不可能將系統(tǒng)中的所有bug 找出來,即使發(fā)布了軟件后,被發(fā)現(xiàn)的漏洞也只會是其中的很小一部分,將來還會不斷的有新的安全問題出現(xiàn),所以我們必須時(shí)刻提高警惕。網(wǎng)站服務(wù)器的操作系統(tǒng)要打好補(bǔ)丁,進(jìn)行安全權(quán)限的設(shè)置,并安裝好防火墻,殺毒軟件等,定時(shí)對數(shù)據(jù)進(jìn)行備份。

4.4.2 其他安全

環(huán)境安全是整個(gè)系統(tǒng)安全的基礎(chǔ),要把信息泄露的危險(xiǎn)減至最低限度,需要選擇適當(dāng)?shù)脑O(shè)施位置,要充分考慮水災(zāi)、地震、電磁干擾與輻射以及其他等人為威脅,保證凈化電源等等。物理安全也是整個(gè)系統(tǒng)安全的基礎(chǔ)設(shè)置之一,物理安全涉及以系統(tǒng)中微機(jī)和主機(jī)、服務(wù)器等資源的房間,必須進(jìn)行嚴(yán)格的管理。

5 詳細(xì)設(shè)計(jì)

5.1 系統(tǒng)流程圖

在計(jì)算教師所需標(biāo)準(zhǔn)熱量值得流程圖,如圖5.1所示:

判斷性別

[No]

[Yes]

判斷年齡

判斷年齡

18<age<30 31<age<60 age>60 18<age<30 31<age<60 age>60

15.2*體重+680

15.2*體重+680

15.2*體重+680

15.2*體重+680

15.2*體重+680

15.2*體重+680

圖5.1 計(jì)算熱量值流程圖

5.2 前臺功能設(shè)計(jì)

5.2.1 前臺主頁面設(shè)計(jì)

健康管理平臺的主頁面主要功能有教師的登陸,注冊功能,后臺界面的入口,四項(xiàng)主要功能的入口和簡單介紹,健康新聞的展示,校園風(fēng)景的動態(tài)展示以及相關(guān)部門的網(wǎng)站鏈接,此界面在實(shí)現(xiàn)登錄時(shí)采用DWR異步刷新。主頁面具體界面如圖5.2所示:

圖5.2 健康管理平臺主界面

5.2.2 教師飲食管理功能設(shè)計(jì)

教師飲食管理功能中,主要是根據(jù)教師身高,體重,年齡,性別,活動量來計(jì)算其每天所需熱量,給出一周的推薦菜單。用到的計(jì)算式是[11]:

人體基礎(chǔ)代謝的需要的基本熱量(REE)精確算法如表5.1所示:

表5.1 基本熱量精確算法表

圖5.3 教師飲食管理功能界面

5.2.3 教師健康日志功能設(shè)計(jì)

用戶可以記錄自己健康日記,還可記錄每一天的睡眠,飲酒,吸煙,血壓體重,心情等情況,錄入自己一天的飲食量,記錄健康日志采用的是kindeditor這款文本器健康日志功能界面具體如圖5.4所示:

圖5.4 健康日志功能界面

5.2.4 教師體檢管理功能設(shè)計(jì)

校醫(yī)院從后臺導(dǎo)入體檢結(jié)果,教師可通過該平臺查詢每次的體檢結(jié)果,并且利用Highcharts 顯示體檢部分項(xiàng)目隨時(shí)間變化的曲線,例如血壓,血糖等。

Highcharts 是一個(gè)用純JavaScript編寫的一個(gè)圖表庫, 能夠很簡單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖表,并且免費(fèi)提供給個(gè)人學(xué)習(xí)、個(gè)人網(wǎng)站和非商業(yè)用途使用。目前Highcharts支持的圖表類型有曲線圖、區(qū)域圖、柱狀圖、餅狀圖、散狀點(diǎn)圖和綜合圖表。Highcharts界面美觀,由于使用JavaScript編寫,所以不需要像Flash和Java那樣需要插件才可以運(yùn)行,而且運(yùn)行速度快。另外Highcharts還有很好的兼容性,能夠完美支持當(dāng)前大多數(shù)瀏覽器[12]。體檢管理功能具體界面如圖5.5所示:

圖5.5 教師體檢管理功能界面

5.2.5 疾病預(yù)測評估功能設(shè)計(jì)

主要是針對糖尿病和高血壓兩種疾病,根據(jù)用戶的體檢相關(guān)項(xiàng)以及數(shù)據(jù)庫近十年同類人患病情況,分析出致病的危險(xiǎn)因素,利用數(shù)學(xué)線性回歸的方法,建立預(yù)測模型,未來體檢者可輸入相關(guān)體檢項(xiàng)來模擬計(jì)算出教師患病概率,預(yù)測模型如圖5.6所示:

圖5.6 疾病預(yù)測模型圖

疾病預(yù)測評估界面具體如圖5.7所示:

圖5.7 疾病預(yù)測功能界面

5.2.6 注冊功能設(shè)計(jì)

新用戶可以按提示進(jìn)行注冊,每一項(xiàng)都用具體的正則表達(dá)式進(jìn)行表單驗(yàn)證,確保信息有效可用,注冊界面具體如圖5.8所示:

圖5.8 注冊功能界面

5.3 后臺功能設(shè)計(jì)

5.3.1 管理員登錄功能

管理員使用用戶名密碼登陸系統(tǒng)后臺,登陸界面如圖5.9所示:

圖5.9 管理員后臺登錄界面

管理員登陸后臺后進(jìn)入歡迎界面,此界面顯示后臺主要功能菜單以及登錄時(shí)間,歡迎界面圖5.10所示:

圖5.10 后臺歡迎界面

5.3.2 管理管理員功能

對管理員管理主要有查詢、刪除和添加操作,其中查詢出來的管理員采用分頁顯示,調(diào)用的是Hibernate Template中的excutefind方法,此方法中的參數(shù)為一個(gè)回調(diào)函數(shù),查詢及刪除管理員具體界面如圖5.11所示:

圖5.11 管理員查詢及刪除界面

添加管理員中分別對用戶名密碼進(jìn)行驗(yàn)證添加,管理員添加界面如圖5.12所示

圖5.12 管理員添加界面

5.3.3 管理員管理體檢結(jié)果

教師體檢結(jié)果管理可顯示所有教師體檢結(jié)果并可以刪除不需要的記錄,體檢結(jié)果采用分頁顯示,每頁默認(rèn)顯示10條記錄,體檢結(jié)果顯示及刪除具體界面如圖5.13所示:

圖5.13 管理員管理體檢結(jié)果界面

教師體檢結(jié)果的添加使用POI讀取Excel表格, POI 是apache的子項(xiàng)目,目標(biāo)是處理ole2對象。目前比較成熟的是HSSF接口,處理Excel對象。它不僅僅是用csv生成的沒有格式的可以由Excel轉(zhuǎn)換的東西,而是真正的Excel對象,可以控制一些屬性如sheet,cell等[13]。體檢結(jié)果添加具體界面如圖5.14所示

圖5.14 體檢結(jié)果添加界面

5.3.4 管理員管理健康新聞

健康新聞管理中可以添加,修改以及刪除新聞,修改和刪除具體界面如圖5.15所示:

圖5.15 健康新聞修改刪除界面

健康新聞的添加功能中,圖片的上傳采用struts處理文件上傳,具體界面如圖5.16所示:

圖5.16 健康新聞添加界面

5.3.5 管理員管理教師功能

教師個(gè)人信息管理中有查看及刪除教師信息功能,具體界面如圖5.17所示:

圖5.17 教師管理界面

  1. 系統(tǒng)測試

6.1 編寫測試用例

表6.1 登陸測試用例

6.2 單元測試

在單元測試的時(shí)候,主要測試的是前后臺各功能模塊的功能是否都正常運(yùn)行,是否和預(yù)期的結(jié)果相同,頁面間的跳轉(zhuǎn)和頁面數(shù)據(jù)顯示是否正常,實(shí)現(xiàn)的方式是單步調(diào)試,調(diào)試工具是用VS2005,輔助工具使用IE的腳本調(diào)試。在VS2005中設(shè)置斷點(diǎn),跟蹤語句,逐句或者逐過程的調(diào)試,對出現(xiàn)的問題進(jìn)行記錄,并在完成所有測試后,對BUG進(jìn)行了修復(fù)。

6.3 系統(tǒng)和集成測試

系統(tǒng)測試是通過將健康管理的前后系統(tǒng)進(jìn)行整合,整體的測試平臺的性能,測試前后臺是否有數(shù)據(jù)不匹配,或者數(shù)據(jù)沖突等問題。集成測試是將整個(gè)平臺放在服務(wù)器上,通過遠(yuǎn)程的訪問、使用,測試系統(tǒng)平臺是否能正常運(yùn)行,通過使用VS2005提供的壓力測試工具,對平臺進(jìn)行壓力測試,以測試在用戶使用高峰期時(shí),平臺的承受能力。

集成壓力測試方法:

1.創(chuàng)建測試項(xiàng)目;

2.添加Web測試;

3.運(yùn)行健康管理平臺,此時(shí)web測試工具將對網(wǎng)站的相應(yīng)操作記錄,記錄充足后停止記錄,并生成相應(yīng)代碼;

4.添加負(fù)載測試;

5.在向?qū)е性O(shè)置需要測試環(huán)境,運(yùn)行測試。

7 結(jié)論

本文從健康管理平臺所需要實(shí)現(xiàn)的功能模塊開始分析,決定使用Java開發(fā)該網(wǎng)站。并利用JDK,Tomcat,My Eclipse,Oracle等軟件來搭建開發(fā)環(huán)境,利用Java技術(shù)的Spring、Hibernate、Struts等開源框架設(shè)計(jì)J2EE三層結(jié)構(gòu)的中業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層,健康管理平臺以Spring 框架為核心,向下整合Hibernate 進(jìn)行持久層訪問;向上整合Struts 按清晰的MVC 模式控制。這樣可以更快開發(fā)松散耦合的健康管理平臺。通過這次畢業(yè)設(shè)計(jì)學(xué)會利用java構(gòu)建Web 網(wǎng)站,在畢業(yè)設(shè)計(jì)中接觸過不少開源框架。開源框架的強(qiáng)大讓我覺得還有很多技術(shù)需要去學(xué)習(xí),這也讓我明白,要不斷地學(xué)習(xí)新知識才會利于自己各方面的發(fā)展。

參?考?文?獻(xiàn)

[1] 王磊,河南省高校教師亞健康狀態(tài)狀況研究,河南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),39(4): 163-167, 2011.

[2] 中國衛(wèi)生部疾病預(yù)防控制局,中國慢性病報(bào)告,北京,2009.

[3] 北京交通大學(xué)校醫(yī)院,北京交通大學(xué)教職工慢性病統(tǒng)計(jì)報(bào)告,北京,2012.

[4] World Health Organization. Preventing chronic disease: a vital investment. Geneva, 2005.

[5] 辛立偉,張帆.Java從初學(xué)到精通.北京:電子工業(yè)出版社,2010.552.

[6] 林建素,孟康健.《Eclipse開發(fā)學(xué)習(xí)筆記》 (第1版)北京:電子工業(yè)出版社. 2008.4.

[7] 《程序員》雜志社.程序員2004合訂本下 北京:電子工業(yè)出版社:2005.

[8] 辛立偉,張帆.Java從初學(xué)到精通.北京:電子工業(yè)出版社,2010.552.

[9] 耿祥義,張躍平.java2實(shí)用教程.北京:清華大學(xué)出版社,2006.134.

[10] 朱福喜,唐曉軍.Java程序設(shè)計(jì)技巧與開發(fā)實(shí)例 北京:人民郵電出版社:2004.

[11] 萬方數(shù)據(jù)庫,亞健康相關(guān)論文,s.g.wanfangdata.com.cn/= subhealth,2012.

[12] 張智勇. JavaScript開發(fā)技術(shù)大全.北京:清華大學(xué)出版社,2009.201.

[13] 李松林,陳華清,任鑫.《Eclipse寶典》(第1版).北京:電子工業(yè)出版社. 2007.9.

致 謝

在論文結(jié)束之際,首先要感謝我的基地指導(dǎo)老師和校內(nèi)指導(dǎo)老師,在我的論文設(shè)計(jì)以及實(shí)現(xiàn)過程中均給了我大量的幫助和指導(dǎo),他們嚴(yán)謹(jǐn)?shù)木礃I(yè)精神和治學(xué)態(tài)度給我留下了深刻的印象。從他們身上,我學(xué)到了許多能使我受益終身的東西,再次對兩位老師表示衷心的感謝。

感謝學(xué)院領(lǐng)導(dǎo)以及老師給我們創(chuàng)造的良好的學(xué)習(xí)環(huán)境和諸多幫助。

感謝父母,對我學(xué)業(yè)的支持;感謝寢室同學(xué)對我學(xué)習(xí)生活的諸多幫助。

感謝的人太多,只能說感謝所有給我關(guān)心、幫助和支持的人們。


面向特定群體的健康管理平臺(論文+PPT+源碼)的評論 (共 條)

分享到微博請遵守國家法律
临沭县| 天水市| 文安县| 成都市| 新竹县| 桂平市| 平安县| 凉城县| 缙云县| 广州市| 敦煌市| 长阳| 海宁市| 乳山市| 尖扎县| 江城| 体育| 泾川县| 罗源县| 登封市| 皮山县| 左贡县| 库尔勒市| 黄大仙区| 上高县| 建昌县| 阿图什市| 罗源县| 定日县| 阳山县| 建阳市| 永和县| 洛川县| 十堰市| 东宁县| 嘉峪关市| 通化县| 通海县| 勃利县| 施甸县| 南郑县|