計算機科學與技術(shù)畢業(yè)論文-體檢報告自助打印系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
計算機科學與技術(shù)畢業(yè)論文-體檢報告自助打印系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
計算機科學與技術(shù)畢業(yè)論文-體檢報告自助打印系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
計算機科學與技術(shù)畢業(yè)論文-體檢報告自助打印系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
計算機科學與技術(shù)畢業(yè)論文-體檢報告自助打印系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

緒論1.1研究背景伴隨著現(xiàn)代社會的發(fā)展,人民群眾的精神文化和物質(zhì)文化都得到了很好的發(fā)展。隨著社會對個人衛(wèi)生的重視,對個人衛(wèi)生的要求也在不斷提高。在各部門積極進行每年一次的健康檢查,做到了發(fā)現(xiàn)疾病,早治療、早預防。在醫(yī)療衛(wèi)生檢查工作中,運用現(xiàn)代的計算機技術(shù),對醫(yī)療衛(wèi)生檢查工作進行了深入研究,為醫(yī)療衛(wèi)生檢查工作的開展和開展,使醫(yī)療衛(wèi)生工作更加有效和方便。為了減少醫(yī)療費用,提升體檢的效率,對體檢中心的工作過程進行更加科學化的標準化,將醫(yī)院的體檢報告的自動打印系統(tǒng)進行運用,采用手機代替了外接的終端機,并在其內(nèi)部安裝了RFID存儲讀取卡,從而減少了系統(tǒng)的運行費用。此外,本項目還將實現(xiàn)手機端的身份驗證與支付功能,降低手機端對外界信息的依賴性。此外,該軟件還能為維護者和管理者分別設(shè)計相應(yīng)的軟件,從而增強了維護者的實時性。1.2研究目的和意義針對當前我國尚無一種較為完善的面向手機的醫(yī)學檢查報告自助打印系統(tǒng),本課題擬以REST為基礎(chǔ),通過對手機的輔助功能進行改進,建立一套面向手機的醫(yī)學檢查報告自助打印系統(tǒng)。為所有參加醫(yī)療檢查的人員提供方便和有效的服務(wù)。(1)移動打印的需求者對那些想要手機打印的人來說,他們可以通過手機來完成自己的醫(yī)療檢查,這樣就不會再帶著RFID儲值卡之類的銀行卡來進行身份驗證,也不會再收取打印費了。上傳文件,驗證身份,支付費用,都可以用手機來完成。而且,當該印刷工作結(jié)束時,該印刷工作的結(jié)束情況將由該移動終端向使用者反饋。為用戶節(jié)約了等候時間。(2)打印設(shè)備的維護者同時,也為印刷裝備的維修提供了一種方便、快捷的方式。因此,維修人員能夠及時地補充消耗品,例如:紙、墨粉等。并能迅速地對出現(xiàn)異常情況的打印裝置進行處理。(3)打印設(shè)備的管理者針對印刷裝置的管理者,采用了一種可移動的裝置來取代外部的終端機和卡片讀取機。該方法能夠有效地減少部署費用、維護費用和失效修復費用。為手機上的列印服務(wù)設(shè)定不同的收費。該系統(tǒng)還能通過數(shù)據(jù)分析,使用者更容易、更快捷地了解體檢報告的發(fā)展趨勢。

2相關(guān)技術(shù)2.1REST架構(gòu)的特點2.1.1概述REST隱含的狀態(tài)遷移是一種跨平臺跨語言的體系結(jié)構(gòu)。該體系結(jié)構(gòu)是由羅伊·托馬斯·費爾丁教授在2000年度的一篇文章《架構(gòu)風格與基于網(wǎng)絡(luò)的軟件架構(gòu)設(shè)計》中提出的。在這篇文章里,F(xiàn)ielding教授提出了6個關(guān)于REST體系結(jié)構(gòu)類型的體系結(jié)構(gòu)限制。一個可以符合這6種體系結(jié)構(gòu)要求的

Web服務(wù)叫做RESTful。費爾丁教授還是HTTP協(xié)定規(guī)格書的第一個撰寫者。REST體系結(jié)構(gòu)樣式的限制:(1)client/server體系結(jié)構(gòu)。只有客戶機才可以啟動這個要求,并且服務(wù)器要對這個要求做出回應(yīng)。(2)nonstatussession??蛻魴C與服務(wù)器通訊不受狀況限制。通訊的工作階段在客戶機上被完整地記錄下來。(3)Cache。在一個網(wǎng)絡(luò)中,當一個信息被高速緩存時,一個信息要求被高速緩存器的信息必須被顯示出來或者隱藏出來。因此,客戶機可以重復使用這些數(shù)據(jù)。(4)集成界面。通信鏈路各部件之間采用了一個標準的界面,使得整個體系結(jié)構(gòu)得到了進一步的優(yōu)化,并且使得體系結(jié)構(gòu)更加簡單明了。(5)階層劃分。在此基礎(chǔ)上,提出了一種新的體系結(jié)構(gòu),以滿足日益擴大的網(wǎng)絡(luò)結(jié)構(gòu)。這還會約束元件間的互動,讓他們僅限于鄰近的層級。(6)按需播放的程序。REST讓客戶可以將一個正在執(zhí)行的指令碼進行卸載,這樣就可以減少客戶機預先執(zhí)行的許多特性。2.1.2AndroID平臺下的REST實現(xiàn)安卓系統(tǒng)在進行軟件設(shè)計時,必然會涉及聯(lián)網(wǎng)技術(shù),而安卓系統(tǒng)的收發(fā)一般都采用HTTP通信方式。在AndroID中,有兩個API用于向用戶發(fā)出HTTP的要求,ApacheHTTPClient和HTTPURL連接。所以,這兩種類型的API將被大部分的與互聯(lián)網(wǎng)有關(guān)的程序所采用。盡管Google的正式建議就像ApacheHTTPClient那樣,在向HTTP請求發(fā)出時也可以用HTTPURL連接。如果不對它們進行包裝,那么很可能會很簡單地對它們進行復制。此外,OKHTTP代替了HTTPURLConnection在AndroID4.4及其后的源代碼中的執(zhí)行。與ApacheHTTPClient有關(guān)的API已經(jīng)從AndroID6.0中移除了。所以,OKHTTP就成了一個無法避免的選項,它可以向HTTP請求發(fā)出。OKHTTP是由Square公司開發(fā)的一個非常出色的HTTP申請工具,它可以在HTTP的基礎(chǔ)上處理GET申請,POST申請,還可以在HTTP上處理文檔。利用響應(yīng)快取技術(shù)來防止出現(xiàn)重復的網(wǎng)絡(luò)要求。利用線程共享來降低回應(yīng)時延。OKHTTP也解決了很多普通的聯(lián)網(wǎng)問題.比如,如果有一個以上的IP位址被設(shè)定為服務(wù)器。當上一個IP的連接不成功時,OKHTTP將會在下一個IP上進行切換,從而增強了該網(wǎng)絡(luò)的魯棒性。OKHTTP還提供了一種針對ProxyServer和SSL交換失效的方法。2.2WebService構(gòu)建技術(shù)2.2.1Spring框架SpringFramework是一種基于JAVAEE的輕量化開發(fā)工具,它可以提供一種一站式的方法來構(gòu)造企業(yè)的程序。Spring可以很容易地處理事務(wù),Bean容器,切割要求。這樣既可以減少中間件的設(shè)計,又可以減少設(shè)計過程的復雜度,同時也可以大大的提升設(shè)計效率。在4.x中,Spring的架構(gòu)由如下模塊組成:核心容器(corecontainer)模塊(dataaccessandintegration)模塊(DataAccessandIntegration)模塊(web模塊)、AOP模塊(AudioOrganization)、工具模塊(ToolsModule)、消息發(fā)送(Module)、以及Test模塊(Module)。如圖2-1所示。圖2-1Spring框架圖核心容器模塊主要包含Core、Beans、Context和SPEL。核心與Bean為該架構(gòu)的架構(gòu)奠定了基石,并為其帶來了對倒置與相依關(guān)系的影響。Bean工廠能協(xié)助使用者從程式的邏輯上將相依性與組態(tài)分開。上下文是建立在核心和Beans之上的。通過JNDI,context可以為通過JNDI來登記的物體提供一種存取方式。SPEL為一種表示語言,它能在執(zhí)行階段對一個目標進行詢問并操縱。其中,數(shù)據(jù)庫的存取與整合部分由JDBC,ORM,OXM,JMS,事務(wù)等組成。JDBC模型為JDBC的應(yīng)用程序設(shè)計了一個JDBC的抽象化層次,從而降低了對數(shù)據(jù)庫進行存取、分析時所產(chǎn)生的冗長代碼所需的冗長代碼。ORM模型是一種面向?qū)ο蟮年P(guān)聯(lián)地圖API的整合平臺。Spring的全部功能都可以用于ORM模塊。例如:交易。OXM模組為物件/XML的對應(yīng)關(guān)系,并為物件/XML的對應(yīng)關(guān)系提供一個抽象化的架構(gòu)。JMS模塊的作用是實現(xiàn)信息的某些處理。交易模組支援編程與宣告的交易。2.2.2EclipseLink框架JPA2.1是一個正式的Java持久性標準,該標準利用了一種面向?qū)ο蟮年P(guān)聯(lián)映射技術(shù),在一個應(yīng)用中實現(xiàn)了關(guān)聯(lián)數(shù)據(jù)的有效處理。而EclipseLink則是JPA2.1的參照實施方案。Eclipse鏈接被稱為頂級鏈接。Oracle通過啟動和主導持久性EclipseLink這個被稱為EclipseLink的企業(yè)ORM平臺的編碼來幫助Eclipse社群。EclipseLink持久性工程包含了許多構(gòu)件,其中包含了ORM,OXM,SDO,DAS,DBWS,XR,EIS等構(gòu)件。在這些構(gòu)件中,EclipseLink-ORM構(gòu)件為面向JPA的可擴充ORM架構(gòu)提供了一種新的方法。給工程以強有力的緩沖能力,并對集群緩沖進行緩沖。EclipseLink-OXM構(gòu)件為JAXB的目標與XML的數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系,提供了一種新的方法。EclipseLink在ORM、OXM基礎(chǔ)上,還為SOA提供了一些新的技術(shù),例如,在Web服務(wù)中,通過ORM、SDO等技術(shù),實現(xiàn)對領(lǐng)域模型的配置,以及通過DAS等技術(shù),實現(xiàn)對實體的配置。3需求分析3.1系統(tǒng)需要解決的主要問題通過對現(xiàn)行體檢報告自動印刷的分析,我們認為該自動印刷系統(tǒng)的缺陷有:(1)依賴于RFID儲值卡的問題在已有的應(yīng)用中,一般都是利用RFID技術(shù)來完成對客戶的身份認證和打印收費等功能。但其不足之處在于:要想獲取RFID儲值卡的相關(guān)數(shù)據(jù),必須另外配置一臺卡片閱讀器,從而提高了配置的費用;當RFID存儲卡的讀寫器發(fā)生錯誤時,將不能對其進行認證。另外,由于不能支付醫(yī)藥費,也給醫(yī)療機構(gòu)提供了方便快捷的醫(yī)療服務(wù)。(2)依賴于PC端的問題目前,體檢報告的自動打印主要包括打印文件的上傳,打印設(shè)備的維護,打印服務(wù)的資金的使用等。但是,為了達到以上目的,使用者需要將已完成的文件以便攜式記憶體儲存于與醫(yī)療檢查結(jié)果自動顯示系統(tǒng)連接的個人電腦中;印刷裝置的維修工,要經(jīng)常在電腦前巡視,檢查印刷裝置的工作狀況;醫(yī)生們只有在電腦上才可以使用醫(yī)療檢查結(jié)果的自動印刷功能。所以,過分依靠PC會降低系統(tǒng)的服務(wù)質(zhì)量。(3)尚沒有支持移動設(shè)備的方案在手機及手機網(wǎng)絡(luò)快速發(fā)展的今天,已有的面向個人電腦的醫(yī)療診斷服務(wù)已無法適應(yīng)手機醫(yī)療服務(wù)的需要。但是,目前尚無一種基于手機的醫(yī)療健康檢查結(jié)果自動打印系統(tǒng)。3.2系統(tǒng)的功能需求醫(yī)療衛(wèi)生服務(wù)中心在醫(yī)療衛(wèi)生服務(wù)中心工作中發(fā)揮著重要作用。通過對患者自我印刷醫(yī)療檢查結(jié)果的統(tǒng)計,可以幫助患者找到并確定醫(yī)療檢查結(jié)果的具體要求。在圖3.1中顯示了該系統(tǒng)的角色:(1)移動打印的需求者1.文檔管理最大的作用就是對需要印刷的文檔進行處理。這包括增加文件,更新文件,刪除文件,向服務(wù)器上載文件。并且可以獲得從服務(wù)器上載檔案的清單。2.任務(wù)管理負責對印刷工作進行控制。在選定了一個工作表之后,使用者可以看到工作表中的工作表,也可以對工作表中的工作表進行更改或刪除。開始或終止按實際需求的印刷工作。并可以從服務(wù)器取得工作清單。3.訂單管理命令有兩種類型。其中一種是印刷訂單。工作細節(jié),被用來說明一個印刷工作。另外一種類型是支付憑證。使用者說明整個訂單的付款狀況。而訂單的處理則是對兩種類型的定單進行檢視與追蹤,以保證印刷工作的順利進行。(2)打印設(shè)備的維護者對已登記的打印機進行管理。在打印現(xiàn)場,按照現(xiàn)場的具體狀況,進行打印設(shè)備的登記和撤銷,檢查設(shè)備的工作狀況,確保其工作狀況良好。可以隨時修改打印地點的資料。(3)打印設(shè)備的管理者1.用戶管理獲得來自服務(wù)器的使用者清單的能力。在實現(xiàn)了對名單中使用者的資訊進行資訊處理時,針對使用者所扮演的角色設(shè)定了相應(yīng)的使用者授權(quán)。2.財務(wù)管理您可以根據(jù)您的印刷工作來設(shè)定費用。并且可以按照實際情況,對有關(guān)的經(jīng)營數(shù)據(jù)進行自動化的統(tǒng)計。比如每一種用紙的用紙量等等。在完成真實的商業(yè)過程的基礎(chǔ)上,為用戶提供醫(yī)學報表的自動打印系統(tǒng)。在此基礎(chǔ)上,結(jié)合醫(yī)療機構(gòu)的實際情況,對醫(yī)療機構(gòu)的醫(yī)療服務(wù)進行了全面、深入的研究,并提出了相應(yīng)的解決方案。該軟件包括:用戶管理,設(shè)備管理,文件管理,訂單管理,任務(wù)管理,以及資金管理。在圖3.1中給出了詳細的說明,在圖3.2中給出了各個功能的說明。圖3.1用例圖圖3.2系統(tǒng)功能模塊圖

4系統(tǒng)總體設(shè)計4.1系統(tǒng)架構(gòu)概述同時,還解決了在手機上使用的客戶識別、打印收費等方面的問題。因此,在REST框架下,設(shè)計并實現(xiàn)了醫(yī)療診斷報表的自動打印。系統(tǒng)包括移動終端,系統(tǒng)服務(wù)器,以及印刷裝置。由于采用了一種新型的手機端取代了傳統(tǒng)的印刷設(shè)備和閱讀機,使得系統(tǒng)的部署、維護和修復費用大大減少。該系統(tǒng)服務(wù)器將會由原始的列印裝置來進行運作。在此基礎(chǔ)上,提出了以手機為核心的C/S體系結(jié)構(gòu)。在此基礎(chǔ)上,提出了一種基于REST體系結(jié)構(gòu)的手機和系統(tǒng)服務(wù)器之間的通信方式。使用者可利用手機的無線網(wǎng)路,透過手機接駁到電腦的電腦上。利用HTTP通訊協(xié)定和系統(tǒng)服務(wù)器通訊。手機和服務(wù)器之間的信息以JSON形式交換。通過手機進行通訊,實現(xiàn)了對使用者資料、印刷資料的收集、上載,以及對系統(tǒng)服務(wù)器所需要的使用者資料的收集。該系統(tǒng)的工作是對用戶提出的各種要求作出相應(yīng)的回應(yīng)。實現(xiàn)了對商業(yè)邏輯及數(shù)據(jù)的接收,檢查,分析及存儲。印刷裝置分為印刷、復制一臺或一臺純粹的印刷機,它的基本作用是實現(xiàn)印刷工作。系統(tǒng)部署視圖如圖4.1所示:圖4.1系統(tǒng)部署圖4.1.1系統(tǒng)交互過程在圖4.2中,說明了該手機和該系統(tǒng)服務(wù)器之間的互動過程。在此基礎(chǔ)上,通過對數(shù)據(jù)流的分析,提出了一種面向數(shù)據(jù)流的數(shù)據(jù)流模型,并通過數(shù)據(jù)流模型向數(shù)據(jù)流模型中的數(shù)據(jù)流模型來實現(xiàn)對數(shù)據(jù)流的分析。最后,手機終端會在接口上顯示出使用者的動作。圖4.2系統(tǒng)時序圖4.1.2系統(tǒng)服務(wù)器該系統(tǒng)的服務(wù)器是一種層次結(jié)構(gòu),它包括RESTAPI(SystemResourceLayer,RESTAPI)、業(yè)務(wù)邏輯層(業(yè)務(wù)邏輯層)以及數(shù)據(jù)存取層。JAVA是一種用于發(fā)展的語言,而Tomcat則是一種用于Web服務(wù)的服務(wù)(Servlet

Container)。在圖4.3中顯示了該系統(tǒng)的服務(wù)器體系結(jié)構(gòu):圖4.3系統(tǒng)服務(wù)器架構(gòu)圖4.1.3移動終端該系統(tǒng)采用MVP(模型-視圖-Presenter)體系結(jié)構(gòu),并在開放源代碼安卓系統(tǒng)上實現(xiàn)。以安卓Studio為平臺,以Gradle為平臺,以Gradle為平臺。將該移動終端劃分成一個數(shù)據(jù)層,一個視圖層,以及一個視圖層。在MVP體系結(jié)構(gòu)中,這個資料層與模型相對應(yīng)。圖4.4移動終端架構(gòu)圖(1)數(shù)據(jù)層(DataLayer)該數(shù)據(jù)層基本上包括了一個數(shù)據(jù)管理器,以及幾個根據(jù)需要產(chǎn)生的次要類。這一層次的工作是從系統(tǒng)的服務(wù)器端獲取資源,對數(shù)據(jù)庫中的信息進行處理,以及對第三方軟件開發(fā)工具的訪問。在此基礎(chǔ)上,通過Rxjava架構(gòu),將其作為一種非同步的事件流進行操作。在該架構(gòu)中,操作符可以對幫助人員類別所傳回的資料進行合并,篩選,以及轉(zhuǎn)換。其中,次要類的作用是完成特定的模塊功能。例如:請求資源,數(shù)據(jù)持久性處理,對微信支付SDK的調(diào)用等。針對資源需求,提出一種新的解決方案,以改善系統(tǒng)對任務(wù)的反應(yīng)速度,降低任務(wù)負載。利用由Square提供的Retrofit和OKHTTP兩個工具,來建立一個支持網(wǎng)絡(luò)助手的類。Retrofit架構(gòu)是一組允許幫助用戶以REST方法進行資源的REST級別的網(wǎng)絡(luò)要求架構(gòu)。OKHTTP架構(gòu)能夠執(zhí)行HTTP的網(wǎng)路要求,并利用Gson架構(gòu)來分析及包裝JSON資料。三種方法在REST語言中互相幫助,共同完成了REST語言中對REST語言的要求以及對REST語言中的表達方式的分析。至于持久性,則是依賴于優(yōu)先級助手和數(shù)據(jù)庫助手來處理共享優(yōu)先級和SQL數(shù)據(jù)庫中的數(shù)據(jù)。WxpayHelper的功能是通過對“微信付款”軟件包的調(diào)用實現(xiàn)的。(2)視圖層(ViewLayer)其中,視圖的作用是對接口的事件進行處理,并對接口的視圖進行渲染。在安卓系統(tǒng)中,以上的交易主要是通過片段,活動,視圖組等來進行的。(3)視圖處理層(PresenterLayer)視圖處理層的目的是為了減輕視圖的負擔,讓視圖更多地關(guān)注于渲染接口。在這個層次中,將所要顯示的接口信息通過這個層次的變換而產(chǎn)生,并且在這個層次中,可以從這個層次中調(diào)用對應(yīng)的方式,作為一個視圖的調(diào)度者。在此期間,為了進行接口的展示,這個層次也訂購了數(shù)據(jù)管理器所傳回的可查看的對象。4.2系統(tǒng)功能詳細設(shè)計4.2.1身份認證設(shè)計在使用手機網(wǎng)絡(luò)時,需要對手機的使用者進行身份驗證。該系統(tǒng)采取了一種以Token為基礎(chǔ)的身份驗證方法,并且具有一種在圖4.5中表示的互動時間序列:該手機終端利用一個用戶名稱和口令要求登陸。該系統(tǒng)的服務(wù)器將會確認使用者名稱及口令是否正確。在確認了身份之后,按照相應(yīng)的規(guī)則,將身份認證的身份認證結(jié)果輸入到手機上。手機端保存使用者的注冊資訊。該手機通過登錄托克來要求該系統(tǒng)的資源。在確認登錄Token是否通過后,該系統(tǒng)服務(wù)器將它所要求的資源發(fā)送給該手機。在這個認證過程中,可以執(zhí)行“User-login/login”的操作。上面的過程還說明了一個手機終端對網(wǎng)絡(luò)的要求。圖4.5身份認證時序圖在進行身份驗證時,首先要向服務(wù)器上載使用者名稱及口令。然而,由于用戶的口令十分機密,因此對口令的保密就變得十分關(guān)鍵。另外,驗證、更新、更新的登錄記錄和更新對驗證系統(tǒng)的安全運行起著至關(guān)重要的作用。(1)用戶密碼加密哈希方法是一種能把任何一段的輸入變換成一段一段的輸出的方法。報文提取是目前被普遍采用的一種密碼哈希方法。羅納德·利維開發(fā)了其第5版本MD5,能夠產(chǎn)生128比特的哈希數(shù)(16比特)。利用MD5算法對該使用者的口令進行了加密。然而,由于不了解哈希變換后的加密域,通常不能恢復為原始加密域,因此,需要對加密區(qū)域進行加密。然而,由于大虹光表技術(shù)的出現(xiàn),使得對哈希密碼的解密有了可能。在虹光表格中,只要在MD5的數(shù)值上進行查找,就能快速地破譯出原來的口令。這對于整個體系的安全性來說,是一個巨大的隱患。在MD5的加密過程中,要對使用者的口令“加鹽”,以達到更好的保密性?!凹欲}”就是把一個特定的字符放到一個特定的地方,就是一個特定的代碼。而“加鹽”則是將一個已被嵌入了一個已知的字串中的一個字段用哈希表示,它與未被嵌入的字段用哈表示是兩個完全不同的概念。將“加鹽”后的口令域設(shè)置為最小化了由于用戶資料被攔截所引起的口令泄漏的危險。雖然在MD5的加密之前,從彩虹表格中可以獲得原來的域,但因為經(jīng)過了鹽分的加工,所以獲得真正的口令的可能性也會大幅度下降。(2)用戶登錄信息設(shè)計在手機申請登陸的時候,該軟件會對用戶名稱、登陸口令進行認證。若驗證成功,就會按照規(guī)定產(chǎn)生使用者的登入資訊。登錄信息包含:登錄信息ID,創(chuàng)建時間,用戶ID,移動端IP,上次請求時間,LoginToken,以及LoginToken的期限。登錄Token是一個惟一的證書,用于向一個手機申請一個資源。LoginToken包含32比特的字段,它是按照UUID規(guī)范產(chǎn)生的.在用戶提出請求后,對用戶提交的日志Token進行認證。并在此基礎(chǔ)上,建立了一個新的注冊標記,并對注冊標記的有效期進行了設(shè)定,并對注冊標記進行了更新。然后將新的登錄標簽傳回至手機,從而實現(xiàn)了對登錄標簽過期時間的延展。在MD5的加密過程中,要對使用者的口令“加鹽”,以達到更好的保密性。“加鹽”就是把一個特定的字符放到一個特定的地方,就是一個特定的代碼。而“加鹽”則是將一個已被嵌入了一個已知的字串中的一個字段用哈希表示,它與未被嵌入的字段用哈表示是兩個完全不同的概念。將“加鹽”后的口令域設(shè)置為最小化了由于用戶資料被攔截所引起的口令泄漏的危險。雖然在MD5的加密之前,從彩虹表格中可以獲得原來的域,但因為經(jīng)過了鹽分的加工,所以獲得真正的口令的可能性也會大幅度下降。圖4.6文檔上傳時序圖4.2.2移動支付設(shè)計為了完成報關(guān)費的付款,使用了微信的密碼進行付款。首先要在手機上進行登記,然后才能在手機上整合到手機上來。在經(jīng)過審查之后,您將得到一個

APPID。APPID是一個獨一無二的申請,它表示這個申請可以使用手機付款。在圖4.7中顯示了這些交互的次序。為使其與第三個系統(tǒng)的模組呈現(xiàn)一致,在此,在此將此影像中的手機代表成一個醫(yī)療檢查的自取的服務(wù)器,而在此影像中,則代表著醫(yī)療檢查的自取的服務(wù)器形態(tài)。圖4.7移動支付時序圖在手機上填寫自己的訂購信息,然后在手機上點擊“微信付款”。當系統(tǒng)服務(wù)器接收到付款要求時,會透過“微信付款”的“通用訂購界面”來取得付款指示碼。當您獲得了一個預先訂購的ID之后,您可以加入一個用于產(chǎn)生一個使用者付款的訂購的簽名。對API的訪問,該特征是一種安全性增強。在接收到“統(tǒng)一訂單”API的呼叫后,會對其進行簽字驗證,并對其進行判定。并由該系統(tǒng)的服務(wù)器產(chǎn)生及儲存使用者的付款指示。在確定了付款請求之后,手機端就可以通過SIM卡的SDK來啟動付款請求。在確認了付款條件之后,會有一個彈出的彈出的彈出的口令。在此過程中,使用者只需在手機上鍵入付款口令,就可以在手機上進行付款。事務(wù)處理的結(jié)果會被以不同步的方式告知給系統(tǒng)服務(wù)器。該系統(tǒng)服務(wù)器從該服務(wù)器收到付款的訊息,并將其儲存。不過,要確保付款協(xié)議的可靠。手機終端對該系統(tǒng)服務(wù)器發(fā)出該申請,并在該申請中,重新經(jīng)由該申請,在該申請中,手機終端對該申請的申請進行了申請。將該查詢的結(jié)果向使用者顯示為付款事務(wù)的最后結(jié)果。并對客戶的付款次序進行了更新。在以上步驟中,使用者要對印刷工作進行確定,然后要選擇微信支付,然后才能確定的付款訂單,然后再輸入自己的密碼,然后才能進行付款。本公司將于手機上呈現(xiàn)使用者之付款指示,并請使用者驗證及填上付款口令。支付訂單的內(nèi)容是以微信支付的統(tǒng)一訂單

API為基礎(chǔ),并以呼叫支付所需的參數(shù)為基礎(chǔ)來進行的。此外,還必須考慮到了對自助打印醫(yī)學檢查報告的業(yè)務(wù)要求。4.2.3任務(wù)執(zhí)行設(shè)計工作的實現(xiàn)就是把使用者所提交的文件,經(jīng)由印刷裝置進行輸出。該移動終端向該工作發(fā)出一個請求,以完成該工作。通過該方法,該方法可以實現(xiàn)對該打印作業(yè)的操作。接著,對進行該作業(yè)的印刷裝置的狀況進行查詢,并向該移動終端回送該印刷裝置的狀況。調(diào)節(jié)印刷裝置的工作狀況。該手機端定期地詢問其工作的執(zhí)行情況。它的互動定時顯示在圖4.8中:圖4.8任務(wù)執(zhí)行時序圖4.3系統(tǒng)數(shù)據(jù)集的設(shè)計對系統(tǒng)中的數(shù)據(jù)進行適當?shù)挠媱潱沁M行

REST全功能

Web服務(wù)的前提。該軟件包括:用戶管理,設(shè)備管理,文件管理,訂單管理,任務(wù)管理,資金管理等。用戶管理的主要內(nèi)容有:權(quán)限,角色,角色權(quán)限,用戶信息,標記信息等。裝置管理模組所包含的資料包含裝置布置面積與裝置資訊。文件管理的主要內(nèi)容是文件的內(nèi)容。其中,訂單處理的主要對象為客戶訂單以及訂單的付款情況。在此基礎(chǔ)上,提出了一種基于時間序列的時間序列分析方法。所述的金融管理模式包含有單位價格資訊。授權(quán)列表(Authority)是用來記載和維護該系統(tǒng)的授權(quán)的。其中含有域:許可ID,許可名稱,以及建立的日期。表4.1權(quán)限表數(shù)據(jù)項字段名數(shù)據(jù)類型備注權(quán)限IDauthority_IDint(10)主鍵權(quán)限名稱authority_namevarchar(20)創(chuàng)建時間authority_create_timedatetime角色表(role)是一個用來記錄和保持一個人物的人物信息的列表。其中包括:角色

ID,角色名稱,以及建立的日期。表4.2角色表數(shù)據(jù)項字段名數(shù)據(jù)類型備注角色IDrole_IDint(10)主鍵角色名稱role_namevarchar(20)創(chuàng)建時間role_create_timedatetime角色權(quán)限表(authority_role)記錄保存角色與權(quán)限的對應(yīng)關(guān)系。其包含字段:角色權(quán)限ID、角色ID以及權(quán)限ID。表4.3角色權(quán)限表數(shù)據(jù)項字段名數(shù)據(jù)類型備注角色權(quán)限IDauthority_role_IDint(10)主鍵角色IDauthority_role_role_IDint(10)權(quán)限IDauthority_role_authority_IDint(10)用戶表(user_info)將該使用者的帳號資料記載在使用者表格(user_info)中。包括域:用戶ID,用戶名,用戶密碼,用戶性別,用戶刪除標志,用戶狀態(tài)標志,用戶角色ID,用戶登錄標志。表4.4用戶表數(shù)據(jù)項字段名數(shù)據(jù)類型備注用戶IDuser_IDint(10)主鍵用戶名user_namevarchar(10)用戶密碼user_passwordvarchar(10)用戶性別user_sexvarchar(2)刪除標記user_delete_flagchar(1)狀態(tài)標記user_state_flagchar(1)登錄標記user_is_login_flagchar(1)用戶角色IDuser_role_IDint(10)用戶登錄信息表(logininfo)使用者登入資訊(Login

Info),記載和儲存使用者的登入資訊。包括的域有:用戶登錄信息ID,用戶ID,移動端IP,登錄標簽,創(chuàng)建時間,上次請求時間,登錄標簽年齡。表4.5用戶登錄信息表數(shù)據(jù)項字段名數(shù)據(jù)類型備注用戶登錄信息IDlogin_IDint(10)主鍵用戶IDlogin_user_IDint(10)移動終端iplogin_client_ipvarchar(20)LoginTokenlogin_tokenvarchar(32)創(chuàng)建時間login_create_timedatetime最近一次請求時間login_lastest_requestdatetimeLoginToken時效login_expired_timedatetime文檔信息表(file_info)其中包括:文件ID,文件名稱,文件路徑,文件大小,文件類型,文件使用標記。表4.6文檔信息表數(shù)據(jù)項字段名數(shù)據(jù)類型備注文檔IDfile_IDint(10)主鍵用戶IDfile_user_IDint(10)文檔名稱file_namevarchar(100)文檔路徑file_pathvarchar(100)文檔大小file_sizevarchar(100)文檔類型file_typechar(10)文檔使用標記file_use_flagchar(1)設(shè)備放置區(qū)域表(area)用于記載和存儲印刷裝置的安裝區(qū)信息。包含以下字段:裝置安裝區(qū)ID,裝置安裝區(qū)名稱,裝置安裝區(qū)編號,裝置安裝區(qū)刪除標記,創(chuàng)建時間,上次編輯時間。表4.7設(shè)備放置區(qū)域表數(shù)據(jù)項字段名數(shù)據(jù)類型備注設(shè)備放置區(qū)域IDarea_IDint(10)主鍵設(shè)備放置區(qū)域名稱area_namevarchar(20)設(shè)備放置區(qū)域編號area_novarchar(10)設(shè)備放置區(qū)域刪除標記area_delete_flagchar(1)創(chuàng)建時間area_create_tidatetime最后一次編輯時間area_last_edit_timedatetime設(shè)備信息表(device)記載和保持該印刷裝置的相關(guān)信息。包括域:裝置ID,裝置號,裝置名稱,裝置存儲區(qū)ID,裝置狀態(tài),裝置刪除標志,裝置故障代碼,裝置故障標志。表4.8設(shè)備信息表數(shù)據(jù)項字段名數(shù)據(jù)類型備注設(shè)備IDdevice_IDint(10)主鍵設(shè)備編號device_novarchar(10)設(shè)備名稱device_namevarchar(30)設(shè)備類型IDdevice_type_IDint(10)設(shè)備存放區(qū)域IDdevice_area_IDint(10)設(shè)備狀態(tài)device_statechar(1)設(shè)備刪除標記device_delete_flagchar(1)設(shè)備故障代碼device_failure_codeint(11)設(shè)備故障標記device_failure_flagchar(1)用戶訂單表(order_info)中記載和保持UserOrderOrder的信息。包括域:訂單ID,任務(wù)確認ID,訂單使用者ID,訂單單價,訂單總額,訂單時間,支付標志,文件總數(shù)。表4.9用戶訂單表數(shù)據(jù)項字段名數(shù)據(jù)類型備注訂單IDorder_info_IDint(10)主鍵任務(wù)確認IDorder_info_job_info_IDint(10)訂單用戶IDorder_info_user_IDint(10)訂單單價order_info_unit_pricefloat(7,1)訂單總價order_info_total_priceloat(7,1)下單時間order_info_order_timedatetime支付標記order_info_payment_flagchar(1)文檔總數(shù)order_info_file_numint(11)支付訂單表(payment)記載和保持付款訂單的信息。包括域:流水號碼,訂單ID,用戶ID,支付方式,創(chuàng)建時間,發(fā)票標簽,備注,商品描述,交易標題,第三方支付訂單號碼,訂單總額,收款I(lǐng)D。表4.10支付訂單表數(shù)據(jù)項字段名數(shù)據(jù)類型備注流水號payment_stream_IDint(10)主鍵訂單IDpayment_order_IDint(30)用戶IDpayment_user_IDint(10)支付手段payment_pay_wayvarchar(50)創(chuàng)建時間payment_create_timedatetime發(fā)票標記payment_give_bill_flagchar(1)備注payment_remarkvarchar(50)商品描述payment_detailchar(255)交易標題payment_subjectchar(255)第三方支付訂單號payment_out_trade_nochar(64)訂單總額payment_total_amountchar(9)收款I(lǐng)Dpayment_seller_IDchar(16)5系統(tǒng)服務(wù)器的實現(xiàn)在這一章中,我們將從該體系結(jié)構(gòu)出發(fā),詳細地闡述該體系結(jié)構(gòu)中各個層次的整合技術(shù)及整合方式。以身份認證,文件上傳,手機支付,以及完成工作等為實例,對以上各方面的應(yīng)用進行了說明。5.1運行環(huán)境搭建系統(tǒng)服務(wù)器采用Maven被該系統(tǒng)的服務(wù)器用于建立并管理該工程。Maven是一個出色的自動化項目建設(shè),依賴關(guān)系管理,以及項目資訊管理的軟件。在表格5.1中列出了構(gòu)建該系統(tǒng)服務(wù)器所需要的架構(gòu)與Maven相關(guān)性。表5.1Maven依賴列表GroupIDArtifactIDVersionRemarkorg.apache.tomcattomcat-servlet-api8.0.32Servletorg.glassfish.jersey.containersjersey-container-servlet2.22.2Jerseyorg.glassfish.jersey.extjersey-spring32.22.2Springorg.springframeworkspring-core4.2.5Springorg.springframeworkspring-beans4.2.5Springorg.springframeworkspring-web4.2.5Springorg.springframeworkspring-test4.2.5Springorg.springframeworkspring-tx4.2.5Springorg.springframeworkspring-orm4.2.5Springorg.eclipse.persistenceEclipseLink2.6.0EclipseLinkmysqlmysql-connector-java5.1.38MySQL5.2系統(tǒng)資源層的實現(xiàn)在接收到用戶的請求之后,該系統(tǒng)將與相應(yīng)的

RESTAPI相匹配,完成特定的業(yè)務(wù)流程。要實現(xiàn)以上的配對,必須先由系統(tǒng)服務(wù)器來確定所需的資源。資源包含:實體類,實體集合類,資源路徑,資源類。5.2.1實體類的定義首先您必須為一個資源定義一個Entity類別。例如,任務(wù)信息類別中,任務(wù)信息類別中,包含了主鍵信息,任務(wù)服務(wù)時間,任務(wù)刪除標簽,任務(wù)備注,任務(wù)顏色,任務(wù)紙張類型,任務(wù)頁數(shù),任務(wù)副本數(shù)等等。對于以上的特性應(yīng)該有獲取和設(shè)置的方式,并且在圖4-1中顯示了一個任務(wù)的類型。圖5.1任務(wù)信息類5.2.2集合類的定義在對數(shù)據(jù)收集的過程中,將其進行了包裝,并進行了相應(yīng)的定義。通過對一種類型的資源進行注釋來包裝,可以在返回的值中再包裝一次

XML或

JSON的數(shù)據(jù)。在圖5.2中顯示了一個任務(wù)資訊收集類:圖5.2任務(wù)信息集合類5.2.3資源類的定義在這里,@Path用于聲明任務(wù)信息資源的路徑,在這里,@Path_Path_press_press_press_press。而@GET用于處理HTTPGET的要求,它與getJobInfosByUserID()相匹配。@Produces為GET要求的返回提供了一個MIME的形式。請指出,特定的商業(yè)邏輯通過JobInfoService和PrinterService這兩個商業(yè)類型來實施,它們都是@Autowired注釋的。對于Spring框架來說,@Autowired注釋是必需的,它可以通過@Autowired注解完成JavaBean的依賴注入來實現(xiàn)對JavaBean進行分類。在圖5.3中顯示了一個TaskInformationResources類別:圖5.3任務(wù)信息資源類按照上述的方法,構(gòu)建了一個系統(tǒng)的資源層。表5.2列出了與該系統(tǒng)有關(guān)的重要資源和它們的關(guān)系。在此基礎(chǔ)上,利用系統(tǒng)資源層中的

RESTAPI,實現(xiàn)了對系統(tǒng)服務(wù)器的資源請求。表5.2資源列表實體類實體集合類資源類資源路徑UserUsersUserResource/usersLoginfo-LoginfoResource/loginfosDeviceDevicesDeviceResource/devicesFileInfoFileInfosFileInfoResource/filesJobInfoJobInfosJobInfoResource/jobsOrderInfoOrderInfosOrderInfoResource/ordersPaymentPaymentsPaymentResource/paymentsUnitPriceUnitPricesUnitPriceResource/unitprices5.3數(shù)據(jù)訪問層的實現(xiàn)5.3.1EclipseLink的配置首先,將實體類的信息登記到persistence.xml文件中,以便將實體類和數(shù)據(jù)庫表相結(jié)合。要求注冊的實體類有用戶、日志信息、文件信息、設(shè)備信息、Job信息、Order信息、付款信息和UnitPrice等,見圖5.4:圖5.4實體類的注冊其次,它相應(yīng)的JDBC驅(qū)動是基于MySQL數(shù)據(jù)庫來進行配置的。它包含驅(qū)動資訊,資料庫存取位址,使用者名稱與口令等資訊。在圖5.5中可以看到:圖5.5數(shù)據(jù)庫的JDBC配置5.3.2實體類的映射為了實現(xiàn)實體類與數(shù)據(jù)庫表單之間的關(guān)系,實體類通過實體注釋@Entity和表單注解@Table來實現(xiàn)實體類與數(shù)據(jù)庫表單之間的對象關(guān)系映射和表單注釋@Table實現(xiàn)。在窗體中的主關(guān)鍵字被映射為一個主關(guān)鍵字注釋@ID。通過field注釋@Column來定義field名稱,field長度,field約束。所以,從任務(wù)信息到數(shù)據(jù)庫窗體job_info之間的映射是通過@Entity和@Table(名稱為“job_info”)來完成的。在窗體中,通過@ID把主關(guān)鍵字映射到一個變量JobInfoID上。并且通過@Column來為主關(guān)鍵字(unique=true,nullable=false,名稱='job_info_code')來設(shè)定域注釋。5.4業(yè)務(wù)邏輯層的實現(xiàn)5.4.1Spring框架的集成在該系統(tǒng)中,應(yīng)用了商業(yè)邏輯類來處理具體的商業(yè)邏輯。Spring

Framework通過注釋@Service來定義資源服務(wù)類,這是一個很好的例子。當系統(tǒng)開始運行時,Spring框架的IoC機制會對帶有注釋的@Service的類進行掃描,然后把這些類以帶有注釋的@Component的組件類加載。然后,對ResourceServices類中注釋為@Autowired的業(yè)務(wù)邏輯類進行了掃描,以使得它們能夠按照類型自動地組合在一起,以完成依賴性注入。xml是Spring的一個通用的Context.xml,它為Spring提供了一個用于處理數(shù)據(jù)庫事務(wù)的統(tǒng)一的容器管理功能。這樣,就實現(xiàn)了對數(shù)據(jù)庫的存取,實現(xiàn)了對數(shù)據(jù)的控制與管理。對數(shù)據(jù)庫寫入進行注釋@Transactional,從而在容器層實現(xiàn)了面向切面的事務(wù)。SpringFramework將在寫入操作執(zhí)行前開始一個事務(wù)的開始方法。當該方法被成功地執(zhí)行時,該容器將會執(zhí)行該提交方法。當執(zhí)行失敗時,會呼叫回退的方法。避免由于資料出錯而造成資料混淆。5.4.2身份認證的實現(xiàn)系統(tǒng)服務(wù)器會先對使用者所提交的使用者名稱與口令進行確認。若確認,則按照設(shè)定的程序產(chǎn)生使用者的登入資訊,并將登入資訊傳回至手機端。移動端會將LoginToken帶到隨后的請求中,并由系統(tǒng)服務(wù)器利用LoginToken對用戶進行身份驗證,以確定用戶是否登錄。而“洛書”又是一種時效性很強的語言。登錄標記在使用者登出或長期沒有要求系統(tǒng)資源的情況下失效。使用者必須再次登入以取得新的登入記號。(1)用戶密碼處理該系統(tǒng)產(chǎn)生的口令是按照數(shù)字與大小寫的結(jié)合方式產(chǎn)生的口令,每個口令的個數(shù)不得低于8個位數(shù)?;谠摲椒?,該方法將16個字符中的“鹽”隨機地添加到該密碼中,再利用MD5算法產(chǎn)生一個加密字段。在一個48比特的加密區(qū)中,按照內(nèi)插的規(guī)則,將“salt”與一個新的加密區(qū)結(jié)合起來。所有使用者的口令均以此方式存入資料庫??诹畲_認是通過比較資料庫中的口令和使用者所遞交的口令來完成的。如果他們是一樣的,那么就是成功的,否則就是失敗的。用戶口令確認函數(shù)是一個商業(yè)邏輯類型的UserService,它通過表格5.3中描述的核心方式來提供的。表5.3用戶密碼驗證的方法名稱checkUserPassword()功能驗證密碼是否正確格式PublicbooleancheckUserPassword(Stringpassword)參數(shù)說明password:用戶密碼返回值返回密碼是否驗證成功。描述判斷用戶密碼是否與數(shù)據(jù)庫所存的密碼相同。(2)用戶登錄信息生成在REST樣式的環(huán)境中,用戶的注冊信息實際上也是一種資源。使用者的登入與退出,可被抽象為使用者登入與退出資訊的產(chǎn)生與刪除。通過LoginfoService來創(chuàng)建和刪除用戶注冊信息,并通過表5.4和5.5中的中心方式來實現(xiàn)。表5.4用戶登錄信息的生成方法名稱createUserLogin()功能用戶登錄后,系統(tǒng)生成用戶登錄信息格式publicUserLogincreateUserLogin(finalintuserID)參數(shù)說明userID:用戶ID返回值返回用戶登錄信息。描述基于用戶ID生成用戶登錄信息表5.5用戶登錄信息的刪除方法名稱deleteUserLogin()功能用戶登出后,系統(tǒng)刪除用戶登錄信息格式publicbooleandeleteUserLogin(finalintuserID)參數(shù)說明userID:用戶ID返回值返回刪除用戶登錄信息是否成功。描述基于用戶ID刪除用戶登錄信息。(3)使用LoginToken實現(xiàn)資源請求手機端通過登錄標記來要求更多的系統(tǒng)資源。當一個要求被發(fā)出時,將登錄標記加入HTTP要求標頭的驗證域。當系統(tǒng)服務(wù)器接收到一個HTTP請求時,它會在請求標題中抽取一個Authorization域所對應(yīng)的值。確認登入標記的正確性。如果有效,在延長登錄托oken到期日的情況下,該移動終端所請求的資源被返回。若無效,則會返回沒有訪問權(quán)限的HTTP狀態(tài)代碼401。表5.6詳細描述了登錄工具檢查和更新的核心方法:表5.6LoginToken的驗證和刷新方法名稱checkLoginToken()功能驗證和刷新LoginToken格式publicUserLogincheckLoginToken(Stringtoken)參數(shù)說明token:Logintoken返回值返回用戶登錄信息。描述根據(jù)Logintoken,判斷Logintoken是否有效。若有效延長Logintoken的時效,同時返回用戶登錄信息。5.4.3文檔上傳的實現(xiàn)該系統(tǒng)服務(wù)器將移動終端上載的文件以表格的方式進行處理。在手機的HTTP請求主體中,內(nèi)容類型被設(shè)定為多段/格式數(shù)據(jù)的媒體類型。系統(tǒng)資源層從HTTP的要求主體獲得多部件的實體,然后把這個實體轉(zhuǎn)化成一個文件的輸入流。在這個過程中,也會使用查詢參數(shù)來獲得一個用戶ID。然后,按照文件存儲的路徑準則,與用戶ID信息相結(jié)合,產(chǎn)生文件存儲路徑。向業(yè)務(wù)邏輯層發(fā)送文件輸入流,用戶ID,文檔存儲路徑等信息。其中,文件的存取、文件的存取等工作主要是由業(yè)務(wù)邏輯層來實現(xiàn)。上述的能力都被包裝在文件信息服務(wù)這種業(yè)務(wù)邏輯類型中。在儲存檔案前,您必須先判斷檔案的型別及檔案是否已存在。在此基礎(chǔ)上,把文件按規(guī)定的路徑保存,并把文件的內(nèi)容寫到數(shù)據(jù)庫中,從而實現(xiàn)文件的保存。并且向移動終端返回文件信息。

表5.7文檔格式判斷的方法名稱checkFileFormat()功能識別和判斷文檔類型格式publicbooleancheckFileFormat(Filefile)參數(shù)說明file上傳的文檔內(nèi)容返回值是否符合系統(tǒng)上傳文檔的要求。描述判斷文檔的后綴名是否在PDF/WORD/EXCEL和PNG和JPEG的范圍內(nèi)。表5.8添加文檔的方法名稱addFile()功能實現(xiàn)文檔存儲格式publicFileaddFile(finalintuserID,finalFilefile)參數(shù)說明file上傳的文檔內(nèi)容userID:用戶ID返回值返回已在數(shù)據(jù)庫保存的文檔信息。描述判斷文檔已存儲在用戶路徑之下。若不存在,則存儲文檔,并將文檔信息寫入數(shù)據(jù)庫。返回文檔信息。若已存在,則檢索數(shù)據(jù)庫,返回已存在的文檔信息。5.4.4移動支付的實現(xiàn)為了完成手機的付款功能,本系統(tǒng)服務(wù)器的工作包括:產(chǎn)生付款命令,并將付款命令傳回至手機。支持在通知網(wǎng)址下的付款指示,也就是不同步地進行付款指示的更新。支持微信付款查詢界面的付款指令的更新,也就是付款指令的同步更新。(1)支付訂單的生成當用戶確定了打印工作,并選擇了微信付款時,在手機上使用RESTAPI實現(xiàn)了一個簡單的功能。ID=“用戶ID”)POST要求為用戶產(chǎn)生一個付款指令。系統(tǒng)服務(wù)器根據(jù)用戶ID對用戶訂單進行查詢,并對調(diào)用微信支付統(tǒng)一下單界面所需要的參數(shù)進行整理。通過API來獲得預先訂購的信息。表5.9中詳細說明了核心方法:表5.9獲取預付費訂單的生成方法名稱getPrepayInfo()功能用戶登錄后,系統(tǒng)生成用戶登錄信息格式publicPrepayGetPrepayInfo(finalintuserID)參數(shù)說明userID:用戶ID返回值返回預付費訂單信息。描述基于用戶ID組織預付費訂單,并向微信支付服務(wù)器請求生成預付費訂單。在獲得了預付款訂單信息后,該系統(tǒng)服務(wù)器對該信息增加了一個特征以及一個隨機的字符串,從而產(chǎn)生了該付款訂單信息,并且將該付款訂單信息返回至該移動終端,由該移動終端來調(diào)整該微信支付交易。添加一個隨機字串到付款指令資訊中,以保證指令的簽署是無法預測的。而付款單特征則是根據(jù)密鑰的大小,按照參數(shù)名稱的ASCII詞典次序?qū)⒏犊顔翁卣鲄?shù)組成的字符串。近期加入的微信API,是利用MD5的算法產(chǎn)生的.在表5.10中詳細說明了產(chǎn)生一個簽名的主要方法簽名形如:MD5(key1=value1&key2=value2…&keyn=APIKEY)表5.10簽名的生成方法名稱CreateSign()功能生成訂單簽名格式publicStringcreatePackageSign(List<NameValuePair>params)參數(shù)說明params:訂單參數(shù)列表返回值返回簽名字符串。描述基于支付訂單參數(shù)生成支付訂單簽名。(2)支付訂單異步更新付款程序結(jié)束后,微信付款將通過短信的方式向系統(tǒng)服務(wù)器發(fā)送付款結(jié)果。在此基礎(chǔ)上,針對不同的用戶請求,由系統(tǒng)服務(wù)器對請求進行接收、處理,并將請求反饋給用戶。通知是通過一個統(tǒng)一的命令API發(fā)送到微信的付款服務(wù)器。該系統(tǒng)使用url實現(xiàn)了對付款指令的實時更新,并使用了REST樣式。返回API:(分組/分組更新)POST。在表5.11中詳細說明了用于執(zhí)行付款指令的非同步更新的核心方法:表5.11支付訂單異步更新的方法名稱updatePaymentAsyn()功能用戶登錄后,系統(tǒng)生成用戶登錄信息格式publicPaymentupdatePaymentAsyn(Stringreturn_code)參數(shù)說明return_code:返回狀態(tài)碼返回值返回支付訂單信息。描述基于微信支付返回的狀態(tài)碼,更新支付訂單。5.4.5任務(wù)執(zhí)行的實現(xiàn)在此基礎(chǔ)上,利用手機上的taskID和動作命令完成了任務(wù)。在接收到來自手機端的

HTTP請求之后,系統(tǒng)服務(wù)器根據(jù)該請求的參數(shù)獲得了任務(wù)ID和操作指示。在此基礎(chǔ)上,再利用查詢資料庫中的資料,以獲取所需的資料。該系統(tǒng)服務(wù)器按照該任務(wù)的要求來完成該任務(wù)。PrinterService是一個商業(yè)邏輯類,它把工作信息轉(zhuǎn)換成印刷參數(shù),并按照行動指令來完成印刷的啟動和終止。(1)查詢?nèi)蝿?wù)信息工作信息的查詢功能大部分是通過JobInfoService這個商業(yè)邏輯類來實現(xiàn)的,它對工作信息進行了處理。在此基礎(chǔ)上,提出了一種基于JobInfoDao的方法,該方法將JobInfoDao用于數(shù)據(jù)存取層,并將其作為參數(shù)。在表5.12中詳細介紹了用于詢問任務(wù)信息的主要方式:表5.12查詢?nèi)蝿?wù)信息的方法名稱updatePaymentSyn()功能用戶登錄后,系統(tǒng)生成用戶登錄信息格式publicPaymentupdatePaymentSyn(Stringreturn_code)參數(shù)說明return_code:返回狀態(tài)碼返回值返回支付訂單信息。描述基于實際查詢API返回的支付結(jié)果,更新支付訂單(2)設(shè)置打印參數(shù)PrinterService類為輸出業(yè)務(wù)邏輯提供了支持。在此基礎(chǔ)上,建立了一套完整的打印流程。取得印表機的屬性;返回打印服務(wù),并按照打印機登記的名字進行打?。辉O(shè)定一個印刷參數(shù)只是把一個任務(wù)的信息轉(zhuǎn)換成印刷參數(shù),也就是印刷屬性。印刷的主要參數(shù)包括:版面名稱,版面數(shù)量,版面顏色,版面尺寸。即使是PDF,Word,或EXCEL文檔,也會產(chǎn)生打印頁面。要知道,這個作業(yè)的顏色與作業(yè)是用黑白印刷或彩色印刷有關(guān)。在表格5.13中提供了用于設(shè)定印刷參數(shù)的主要方法:表5.13設(shè)置打印參數(shù)的方法名稱GetJobInfo()功能查詢?nèi)蝿?wù)信息格式publicJobInfoGetJobInfo(finalintjobInfoID)參數(shù)說明jobInfoID:任務(wù)ID返回值返回已在數(shù)據(jù)庫保存的任務(wù)信息。描述在try-catch中調(diào)用JobInfoDao類的findByID()方法,在數(shù)據(jù)庫中,通過任務(wù)ID查詢?nèi)蝿?wù)信息。

6系統(tǒng)測試通過對醫(yī)療診斷單自動查詢的應(yīng)用,實現(xiàn)了醫(yī)療診斷單自動查詢的自動化,并對其進行了層次式的管理。針對易發(fā)生錯誤的部位,增加了例外情況,確保了整個程序的可靠性。這一章著重于對該軟件進行了實驗,并對其進行了實驗,以證明該軟件能夠達到所需的功能。6.1測試方案本文從系統(tǒng)的資源、功能,性能三個方面對該系統(tǒng)進行了評價。所以,對網(wǎng)絡(luò)服務(wù)的測試,就是對網(wǎng)絡(luò)服務(wù)的測試,對功能的測試,以及對網(wǎng)絡(luò)服務(wù)的測試。網(wǎng)絡(luò)服務(wù)的檢測就是為了確認網(wǎng)絡(luò)服務(wù)與該系統(tǒng)所要求的網(wǎng)絡(luò)服務(wù)的一致性。功能試驗是對軟件開發(fā)過程中所涉及到的關(guān)鍵技術(shù)進行分析和研究。在有限的時間段里,當一個用戶對一個用戶進行了大規(guī)模的資源訪問后,該用戶對該用戶訪問行為的反映情況,并對其進行了驗證。6.2測試環(huán)境該系統(tǒng)的工作空間由系統(tǒng)服務(wù)器,移動終端,印刷裝置組成。(1)本系統(tǒng)的服務(wù)器使用的是英特爾XeonE6.2680v3(哈斯韋),主頻率為2.5

GHz,實體記憶體8GB,硬碟記憶體60GB。(2)手機方面,將以小米5為代表,其核心技術(shù)包括:高通驍龍820,主頻1.8Gg,物理內(nèi)存在3G,數(shù)據(jù)容量32G,5.15英寸的HDMI屏幕,MIUI(安卓6.0)。(3)本項目所使用的印刷裝置包括兩類:全一式印刷機和一臺印刷機。為此,我們選擇了FX文檔中心S2011作為本系列產(chǎn)品的典型。作為一種印刷裝置,DELL5130cdn。6.3WebService測試REST網(wǎng)絡(luò)應(yīng)用描述語言是一種接口,它在目前網(wǎng)絡(luò)服務(wù)中,以XML形式展示能夠被使用的REST服務(wù)。對WADL的存取,可以讓你看到哪些

Web服務(wù)是被供應(yīng)的。所以,這一試驗的首要目標就是要檢驗該服務(wù)器所能達到所設(shè)定之需求。“printsystem/webapi/application.wadl”是該軟件的一個WADL的存取地址。通過此途徑,可以看到WADL在該系統(tǒng)中的目錄。在圖6.1中可以看到:WADL用應(yīng)用程序根標記來代表應(yīng)用程序,從頂部到底部依次為文檔,圖形,資源。資源是一個由一個或多個系統(tǒng)所提供的一系列的、用來說明這些資源。圖6.1應(yīng)用程序描述語言通過一組資源標記來說明

REST服務(wù)。每一個“資源”選項卡包括了一個“方法”選項卡,該選項卡用來說明要求和回應(yīng)的內(nèi)容和形式。Request選項卡確定了怎樣填充Request的信息,并按要求確定了對應(yīng)的Request和HTTP頭部。其中,反應(yīng)標記用于確定相應(yīng)的反應(yīng)及相應(yīng)的反應(yīng)過程的反應(yīng)代碼。這個變量的值是用來說明這個函數(shù)的值。在REST資源被產(chǎn)生和公布之后,手機用戶可以根據(jù)在REST中對REST的資源進行查詢。對Web服務(wù)進行的試驗顯示在表格6.1中:表6.1WebService測試結(jié)果系統(tǒng)資源測試內(nèi)容測試結(jié)果User獲取用戶資源。通過Loginfo獲取用戶登錄信息資源。通過Device獲取設(shè)備資源。通過FileInfo獲取文檔信息資源。通過JobInfo獲取任務(wù)信息資源。通過OrderInfo獲取用戶訂單信息資源。通過Payment獲取支付訂單信息資源。通過UnitPrice獲取單價信息資源。通過6.4功能測試醫(yī)療診斷單自動印鑒機的主要性能指標,主要用于檢驗醫(yī)療診斷單自動印鑒機的主要性能指標與設(shè)計階段所確定的指標相符合。主要包括:用戶注冊,用戶登錄,文件列表,文件上傳,訂單支付,任務(wù)執(zhí)行等。上述的性能都是在小米5的AndroID6.0平臺下進行的。6.4.1用戶注冊醫(yī)療診斷單自動印鑒機的主要性能指標,主要用于檢驗醫(yī)療診斷單自動印鑒機的主要性能指標與設(shè)計階段所確定的指標相符合。主要包括:用戶注冊,用戶登錄,文件列表,文件上傳,訂單支付,任務(wù)執(zhí)行等。上述的性能都是在小米5的AndroID6.0平臺下進行的。圖6.2新用戶注冊當使用者所建立的使用者名稱與資料庫中所建立的使用者名稱一致時,會出現(xiàn)“使用者名稱已經(jīng)存在”的提示;若使用者所建立之使用者名稱未被載入本資料庫,本使用者名稱將被視為合法,并可供使用者登記使用。當使用者設(shè)定的口令與設(shè)定的口令不符時,將會出現(xiàn)口令必須以英文或英文首字加八個位數(shù)的的提示;當使用者輸入的口令與設(shè)定的口令相符時,會出現(xiàn)“注冊成功”的提示,使用者的資料會被儲存在資料庫中。在圖6.3中顯示了該使用者登記的結(jié)果:圖6.3新用戶注冊結(jié)果6.4.2用戶登錄用戶登錄檢測是指在登陸過程中對用戶的身份進行驗證。使用者登陸基本上是靠使用者手工輸入使用者所建立的使用者名稱與口令,再按“登錄”鍵以回到使用者的主頁面。在圖6.4中顯示了用戶登錄界面:圖6.4用戶登錄當你的用戶名和口令與你的系統(tǒng)資料庫相吻合時,你就會看到“登錄成功”的提示,然后你就會進入你的主頁。當?shù)卿浭褂谜咻斎氲氖褂谜呙Q及口令與目前的資料庫資料不一致時,會有“使用者名稱或口令錯誤”的提示,讓使用者再輸入一次。6.4.3文檔列表獲取文件清單采集試驗的目的是驗證

LoginToken是否能夠準確地采集到系統(tǒng)資源。其中,實驗的重點是向手機用戶發(fā)送文件的請求。如果文件的清單是正確的,那么就說明這些信息已經(jīng)保存在了你的系統(tǒng)服務(wù)器上,并且可以用日志標記來精確的讀取和顯示。文檔列表如圖6.5所示:圖6.5文檔列表6.4.4文檔上傳文件上載試驗,是對系統(tǒng)服務(wù)器是否能夠?qū)⑹謾C上載的文件準確地儲存到規(guī)定的文件路徑中。其中,要識別和判斷文檔的類型、檢測文檔是否為重復上傳、文檔是否準確地存儲在指定路徑下、文檔信息是否準確地存儲在數(shù)據(jù)庫中。圖6.6中顯示了一個用于用戶上載文件的選項。圖6.6文檔選擇當使用者按下“上載”鍵時,便會將檔案上載的要求傳送至電腦服務(wù)器。由系統(tǒng)服務(wù)器來判定。若上載的檔案是不支援的,則會有“此檔案不支援,請上載”的訊息。如果系統(tǒng)偵測到這個檔案已經(jīng)在你的系統(tǒng)里,會有一個“檔案已經(jīng)存在”的訊息。如果你上載的文件資訊被加入文件清單。代表已成功地上載了檔案。圖6.7顯示了上載文件的結(jié)果:圖6.7文檔上傳結(jié)果6.4.5訂單支付訂單付款測試的重點是檢測付款的定單是否被正確的付款。當使用者按下“確認支付”按鈕時,便會收到手機上的付款申請,然后便會使用手機上的“微信支付”軟件包,開始付款過程。在圖6.8中顯示了訂單的付款界面:圖6.8訂單支付界面6.4.6任務(wù)執(zhí)行在任務(wù)執(zhí)行方面,本文對系統(tǒng)服務(wù)器的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論