熊 勇
(山西應用科技學院 山西 太原 030000)
目前,Java技術應用于實際軟件開發中,大部分軟件都采用C/S模式,進行設計一個后臺服務程序,負責對各類數據的讀寫操作,完成對線程及各類資源的管理。在大型ERP軟件內也同樣需要對各模塊及通信協調管理,與操作系統的“內核”程序一樣重要[1]。那么,在基于Java技術的后臺服務程序設計中,如何編寫“內核”程序來實現設計目標,提升軟件服務的設計要求,提高軟件設計質量,本文將以某旅游后臺服務設計程序運用Java技術設計進行分析。
(1)Java可以提供高級網絡編程固有支持,Java有關網絡類和接口在Java.net包內定義,客戶端軟件一般運用Java.net包內核心類Socket,建立和服務器端口之間的連接,與客戶機有所不同,在服務器程序中Socket類包括全部服務器系統編寫所需。
(2)服務器端的各端口可以提供大量服務,經端口實現對平臺服務對象管理,主要通過監聽器映射散列表完成,負責與連接池的管理連接。在ServerSocket類構造器運行中,作為保證服務器能夠正常程序運行的關鍵,完成port參數端口的初始化處理,對客戶機的連接請求實時監聽。Port能夠實現0~65 536范圍,0~1 023范圍作為INternet標準協議保留接口,與Unix主機連接,僅有root用戶可以負責應用。通常情況下自定義端口號為8 000~16 000范圍內。如果僅僅對ServerSocket進行初始化處理尚且不足,這主要由于不具備同步交互的socket類,所以就要對accept調用實現呼叫用戶。在Accept()方法執行中,直至發出連接請求,才可以返回至accept,創建服務器線程結合實例輸入、輸出數據流,對socket通信需求實時處理,之后即可調用getInetAddress、getLocaIPort成功獲得服務器IP端口與具體IP地址。setSoTimeot與getSoTimeout方法分別設置和服務器超時設置,假若timout時間段內未能得到服務器accept方法所返回套接字,這時會顯示IOException異常。
(3)設計后臺服務類控制系統,在運行中需要對各類所需服務動態化調用,加載形成新服務。
Web服務器要在HTTP協議工作原理基礎上實現,HTTP通信協議是基于TCP/IP協議,作為客戶端瀏覽器與服務器端Web服務器間應用層標準協議。作為面向對象、無狀態的通用協議,HTTP協議主要包括以下作用機理:(1)建立Web服務器之間的連接,打開socket虛擬文件即可成功建立連接;(2)經socket實現Web瀏覽器向服務器提交請求,一般請求采用GET與POST命令;(3)在Web瀏覽器提交請求后,向服務器傳送HTTP協議,服務器成功接收請求服務后處理相關事務,之后向Web瀏覽器傳回處理結果,即可在Web顯示具體請求頁面;(4)在成功應答后,斷開Web瀏覽器與服務器連接,確保其他Web瀏覽器和服務器可以建立連接。Java內可以創建套接字連接其他機器,獲得InputStream與OutputSteam,將此連接作為I/0流對象對待。根據以上原理設計功能如下:自行設計虛擬目錄,HTTP服務器相應端口,默認主文檔;以程序不同服務請求處理HTML,響應不同MIME格式,對不同錯誤服務信息響應差異化信息網頁,對HTTP方法及待瀏覽資源進行處理,在Java中可以通過線程方式處理多人連接,利用accept方法即可建立客戶端Socket對象,與自定義HTTPSession類[2]。
對市場上存在的相似產品及產品異同進行分析,了解技術的可發展空間,需要提前進行技術分析,對于是否存在無法解決的難題以及風險規避的方法進行探究。要對產品易用性充分考慮,Java Web網站為當下主流,在使用中無需下載插件與小程序,極大程度降低了用戶使用門檻,讓用戶獲得更好的交互體驗[3]。
服務程序系統劃分了使用人員包括普通用戶、管理員兩類角色,用戶在登錄時可以根據自己身份,選擇對應登錄界面,根據旅游服務系統的頁面劃分不同地區的名稱,可以讓用戶在系統應用中更便于查找相關信息。該服務程序以普通用戶的服務功能為核心,普通用戶可以在系統留言板中利用上傳功能,把自己想要了解的感興趣信息上傳服務程序,還能夠利用后臺留言板功能發表主觀意見,可以提高用戶在該服務程序的參與感。管理員能夠在此后臺服務程序,實現對用戶所發表內容的刪減處理。
運用UML建模理論對靜態、動態完成建模設計,運用Rational Rose工具作圖描述跟蹤UML生成品,構建服務代碼框架。
類作為應用領域關鍵實體,表示所包含結構屬性與操作行為兩部分的抽象表現,一般情況下,以項目組對涉及領域的具體熟悉度為依據,在初步設計中一般需要簡單實體列表,提出類系統內名詞羅列后,運用簡單篩選規則精簡處理。通過分析需求獲得實體列表,刪除后可以獲得以下類,分別是WebServer、WebServerFrame、ListenSocket、HTTPSession、ProcessProxy、LoginFrame、RegistFrame,對上述各候選類確定后,對各個關系加以確定,保證其中一個類能夠熟悉另一類的具體屬性和操作,服務需求分析可以運用動詞短語分析,并在Rational Rose圖內列舉類關聯,建立各類之間的關聯、依賴性與一般化關系。
本次設計后臺服務程序功能主要包括以下幾部分。
(1)在用戶注冊功能模塊,設計了用戶名添加、輸入密碼與再次輸入密碼的文本框,由于系統管理員的數量有限,大部分由企業管理者所擔任,通過協商服務程序開發人員后,可以在用戶表內為管理員添加區別于普通用戶的特殊字段[4]。
(2)在登錄界面,用戶可以依據自身的系統操作身份,進入用戶登錄及管理員登錄界面,假若在進入界面前所輸入的用戶名與密碼不符,則無法正常登錄。管理員可以登錄后對普通用戶信息進行查找、刪除、改動。
(3)在用戶留言板功能模塊,設計了留言上傳與評論功能,用戶可以輸入留言上傳后,涵蓋未囊括的經典信息,并利用評論功能可以為其他用戶提供可參考建設性意見。
(4)主頁面模塊設計,涵蓋了我國34個省級行政區名稱,用戶可以通過點擊圖片即可連接。
在普通用戶注冊時所輸入用戶名及密碼,可以經post表單方式向后臺JSP文件提交,調用Java統一編碼requst.setCharacterEncoding(),request.getParameter()方法接收表單相關參數[5]。為了確保用戶輸入用戶名及密碼準確無誤,驗證密碼輸入一致采用equals()方法,練級數據庫調用DriverManager.getConnectin(),數據庫的操作對象及操作命令分別為PreparedStatement pstmt=null、sql=”insert into User(username,password)valute”,將數據庫操作實例信息存入數據庫內,注冊管理員在普通用戶基礎上,開發數據庫用戶表及權限字段,見圖1、圖2。
以后臺服務程序登錄功能實現為例,通過設計“普通用戶”“管理員”兩個登錄鏈接,可以讓用戶登錄相應的服務界面,將各自用戶名及密碼輸入后,系統執行后續操作,注冊執行插入操作、登錄執行查找操作,因為普通用戶的數據庫內操作指令為Null條件,管理員數據庫的操作指令為Y,那么在輸入同樣用戶名及密碼時,就會進入必須經過的服務程序執行JSP文件,獲得差異化服務執行結果[6-7]。
在后臺服務程序的留言板功能實現中,可以調用圖片上傳file指令類型,提交景點信息并建立FileUploadTools類對象,調用數據庫構造即可發表各圖片文件與景點信息,在主頁面中顯示。用戶可以自主點擊評論,即可調用表單控件提交具體的評論內容。對于服務程序系統呈現的留言板內容,采用HTML5+CSS+JS前端技術優化加工設計,保證整個布局的簡約、美觀性[8]。
在后臺服務程序的主頁面功能模塊實現中,劃分了34個省級行政區域模塊名稱,通過地標建筑圖片作為點擊超鏈接,即可了解不同區域的情況,之后點擊JSP文件,依據各景點的地表數值查詢同省份景點,方便呈現為用戶查找景點。
為了驗證Java編程語言用于此系統開發的穩定可靠性,對系統功能進行測試判斷,應用聯想筆記本,i5處理器,64位win7操作系統,6 GB存儲空間;MysQl數據庫、Myeclipse 6.0、搜狗瀏覽器、tomacat6服務器。首先建立通用型服務器框架,能夠在多端口提供多線程服務,在系統運行中對各服務動態化調用,加載Service類提供服務,根據各端口散射services實現對服務對象的管理,其中addservice可以創建在特定端口提供后臺服務;removeservice可以執行服務器某端口后臺服務的停止需求,但是并不代表連接終止,僅僅能夠通過服務器暫停建立新連接;displaystatus可以用于對指定流中服務器具體狀態信息的處理打印,每一個服務器相應服務對象各有不同。
其中一段Java技術示例如下:
Java技術用于旅游后臺服務程序設計中,對各功能需求逐一進行驗證,用戶享受該程序的服務功能,根據大量數據情況與功能使用,證實Java技術在后臺服務程序設計中的適用性。
綜上所述,為提高我國經濟的發展,需將互聯網技術融入各行業,打造全新的服務體驗。本文以旅游服務程序設計為例,應用Java技術為游客提供了全面服務體驗,并以各功能接口為用戶提供更全面的旅游服務。