摘要:信息技術已經在現代物流中得到了非常廣泛的應用,特別是JavaTM EE和WebService成為了當今分布式Web開發的主要技術,文章對JavaTM EE體系架構以及WebServiece技術進行了深入的研究和分析。然后,該文設計了一個基于WebServices的安全的大型物流信息管理系統模型,并給出了基于J2EE平臺的實現方案。
關鍵詞:JavaTM EE;WebService;大型物流;信息系統
中圖分類號:TP315文獻標識碼:A文章編號:1009-3044(2008)34-1578-03
Implementation of Logistic Information System Based on JavaTM EE and WebService Technology
ZHAO Jie
(School of Information Security Engineering, Shanghai Jiaotong University, Shanghai 200240, China)
Abstract: With being widely used in modern logistics,JavaTMEE and WebService technology is becoming the main technology in distributed-web software developing. This thesis introduced and analyzed JavaTMEE and WebService technology. This paper has designed a model of secure logistic information system, and also provides the scheme of realization based on JavaTMEE platform.
Key words: JavaTM EE; webservice; logistic information system
1 前言
互聯網技術、數據庫技術和軟件工程技術的高速發展帶動了傳統物流向現代物流的轉變。在當今經濟全球化的社會,信息化的程度成為了判定現代物流企業成熟度的關鍵因素。軟件工程技術的發展,使得人們可以設計并構建出靈活、功能強大和高質量的信息系統。JavaTMEE (Java2 Enterprise Edition)是SUN公司定義的一個開發分布式企業級應用的規范。J2EE是在分布式環境中的一種體系結構,它提供了一種基于組件的設計、開發、集成、部署企業應用系統的方法。作為當前企業構建應用平臺的首選架構,它是目前主流的企業分布式架構平臺。WebServices是一種用于分布式應用程序之間通信的接口技術,它構建于通行的Internet標準協議棧之上,提供了一種B2B應用程序的耦合方式。Web Services的基本思想是把軟件當作一種服務。開發者可以使用JavaTMEE平臺、WebServices技術開發出設計良好的系統。
2 J2EE體系架構概述
從整體上講,J2EE 是使用 Java 技術開發企業級應用的一種事實上的工業標準而不是現成的產品,它是一種利用 Java2 平臺來簡化諸多與企業解決方案的開發、部署和管理相關復雜問題的體系結構。他的主要技術目標是:為企業應用系統提供具有高度可移植性和兼容性的安全平臺。J2EE 為企業應用系統的開發提供了一個企業級的計算模型和運行環境,他通過提供企業計算環境所必需的各種服務,使部署在 J2EE 平臺上的多層應用實現高可用性、安全性、可擴展性和可靠性。J2EE 平臺應用各種不同的應用組件(如 Servlet,JSP,EJB),它們構成了應用的主體。J2EE 平臺提供的應用服務(如 JDBC,JTS,JNDI),這些服務保證并促進組件的良好運行。J2EE 的應用通信技術(如 RMI,JMSJavaMail)在平臺底層實現機器和程序之間的信息傳遞。J2EE 平臺應用多層分布式結構來構造企業應用。企業應用的邏輯根據其功能而分布到不同的 J2EE組件中,組成 J2EE 應用程序的各種 J2EE 組件根據它所在的層被發布到不同的機器上。在 J2EE 的應用平臺中一般分為以下四層:
1) 客戶層:客戶層組件運行在客戶機上;
2) cWeb 層:Web 層組件運行在 J2EE 服務器上;
3) 業務邏輯層:作為解決或滿足某個特定業務領域的需要的邏輯的業務代碼由運行在業務層的 EJB 來執行;
4) 企業信息系統層(EIS):運行在 EIS 服務器上。EIS 服務器運行企業信息系統軟件,如企業資源計劃((ERP)、大型事務處理、數據庫系統及其他遺留信息系統。J2EE 組件可以通過訪問 EIS 來取得數據庫連接,這也是 EIS 層應用最多的一種形式。
J2EE 平臺的層次結構如圖1所示。
作為企業分布式應用的開發標準,J2EE由一系列的企業應用開發技術實現。J2EE技術框架可以分為三部分:組件技術、服務技術和通信技術。整個J2EE技術框架體系如圖2 所示。
3 WebService核心技術及Web安全技術
3.1 WebService核心技術
WebServices是一個面向服務的環境,從體系結構上看,服務提供者、服務請求者、服務代理者通過三種基本操作有機的聯結在一起協同工作。三種基本操作用Web Services技術組件實現,Web Services的組件基本部分包括HTTP,XML,SOAP,UDDI,WSDL。發布服務使用UDDI,查找使用UDDI和WSDL的組合,綁定服務使用WSDL和SOAP。數據交換和表示的標準語言XML與UDDI,WSDL,SOAP標準實現了WebService 。圖3描述了WebServices所使用的核心技術。
WebServices核心技術包括:
UDDI(Universal Description Discovery Integration):UDDI(統一描述、發現和集成)標準定義了Web服務的發布與查找的方法。UDDI提供了一種基于分布式的商業注冊中心的方法,UDDI注冊中心由UDDI規范的一種或多種實現組成,它們可以相互操作以共享注冊中心數據,合在一起就形成了UDDI業務注冊中心。該業務注冊中心維護了一個企業和企業提供的Web服務的全球目錄,其中的信息描述格式是基于通用的XML格式的。業務注冊是UDDI的核心組件,它用一個XML文檔來描述企業及其提供的Web服務。在UDDI協議中,注冊信息包含四種數據結構:Business Entity,Business Service,Binding Template,Tmodel。
WSDL(Web Services Description Language):WSDL(Web服務描述語言)用于描述Web服務的接口和功能。一個WSDL文檔將服務定義為成一個能交換消息的通信端點的集合,或者端口的集合。在WSDL中,作為一個網絡端點的集合,Web服務的端點及消息的抽象定義與它們具體的網絡實現和數據格式綁定是分離的。這樣就可以重用這些抽象定義:1) 消息,需要交換的數據的抽象描述;2) 端口類型,操作的抽象集合。針對一個特定端口類型的具體協議和數據格式規范構成一個可重用的綁定。一個端口定義成網絡地址和可重用的綁定的聯接,端口的集合定義為服務。
SOAP(Simple Object Access Protocol):SOAP定義了如何使用XML在分布式環境中傳遞結構化信息。它本身沒有定義任何應用程序語義(如編程模型和特定語義的實現),但通過提供模塊化的打包模型和模塊中數據的編碼規則,定義了一個可以表示應用程序語義的簡單機制。就是這種與特定語義無關的機制使得SOAP能夠用于從消息傳遞到RPC的各種系統。SOAP由三部分組成:消息框架、編碼規則和RPC機制。SOAP消息包括以下三部分:1) EnvelopeEnvelope元素是SOAP消息的最上層元素。2) Header 可選元素,它提供了一種擴展機制,除Body元素傳輸的消息語義外,允許任何類型的信息存在,WS Security的元素便是放在SOAPHeader:中。3) Body Body元素用于包含SOAP請求或應答。 SOAP還定義了下面幾個屬性:1) encodingStyle指定SOAP消息的串行化規則(數據元素的編碼規則),它可出現在任何一個元素中,作用于該元素及其沒有指定encodingStyle的子元素。2) Actor一個SOAP消息在到達最終接收點之前,可能會經過多個中間處理者,Actor屬性用于指示Header元素的接收者。3) mustUnderstand用來指示一個Header元素對于接收者是強制性的還是可選的,若為強制性的,接收者必須能夠處理此Header元素,否則處理必須失敗;若為可選的,則接收者可選擇對此Header元素是否進行處理。
3.2 Web服務安全技術
安全的Web服務是Web服務成功的必要保證。但眾所周知的是,Web服務使用XML來進行數據交換,而XML在默認情況下是明文編碼的;同時,大部分Web服務使用HTTP協議作為傳輸協議,同樣,HTTP也是使用明文方式來傳輸數據的。這就造成了在不加密的傳輸協議上傳輸不加密的信息,從而使信息傳輸的保密性受到威脅。作為企業級的應用,以上的方式不能滿足下列安全性基本要求:
1) 數據在因特網上傳播時不應該被第三方看到;
2) 雙方必須能夠確定消息的來源;
3) 雙方必須能夠確定被傳送的數據沒有被篡改。
為保證Web服務的完整性和保密性,IBM和Microsoft共同定義了一個Web服務安全模型,WS-Security則為此安全模型的核心。模型結構如圖4所示。
WS-Security 描述了如何為SOAP消息附加簽名和加密頭部,以及如何為SOAP消息附加二進制編碼的安全令牌。XML簽名和安全令牌聯合保證了數據完整性。SOAP消息的保密性則由XML加密和安全令牌共同提供。
1) WS-Policy WS-Trust描述了建立直接或間接信任關系模型(包括在第三方和中介體之間)。
2) WS-Privacy 定義了Web服務中如伺表述個人隱私政策。
3) WS-ScureConversation記述相互交換的信息的管理及認證方法。
4) WS-Federation記述在不同環境下管理及從中協調信賴關系的方法。
5) WS-Authorization定義Web服務管理認證數據及政策的方法。
4 基于安全的物流信息系統模型
系統模型如圖5所示。
系統針對物流帳務信息的安全性問題建立一個安全的物流信息系統。模型中牽涉到物流信息管理中心、物流企業、政府統計局、信任服務中心、UDDI服務器等五個實體。在模型中假設模型中牽涉到物流信息管理中心、物流企業、政府統計局、信任服務中心都應分別擁有一對密鑰,在信任服務中心進行了注冊,利用PKI來解決企業之間的身份認證問題。
系統是基于XML技術的Web服務體系結構。安全性上是基于PKI的,在PKI的訪問和集成上采用了XKMS規范,將許多個PKI協議和數據格式替換成一個基于XML的協議,以此來確保用戶的身份有效性。
5 系統設計
5.1 系統功能分析
系統針對成都市大型物流信息的統計與管理,其用戶為成都市各大中小型物流企業、成都市統計局。系統功能構成模塊如圖6所示。
系統實現的功能有:
1) 物流企業信息上報對物流企業信息上報要求系統能夠提供以下功能:對企業自身的注冊及信息具體化、對物流統計年月周報表的填報提交、按照審核意見在所得權限內修正或重提交。
2) 針對物流企業的管理對物流企業的管理要求系統能夠提供以下功能:市政府相關部門對物流企業的注冊管理、提供對物流企業的通知功能。
3) 對物流信息的統計管理對物流信息的統計管理要求系統能夠提供以下的功能:對統計報表的設計改動、對上報信息的審核批準、對已有信息的數學統計、公共查詢功能。
4) 對客戶身份的安全性認證
5.2 系統數據庫設計
系統選用Miicrosoft SQLSERVER-2000作為系統后臺數據庫支持。
系統數據庫結構:
1) 基礎資料表:物流企業信息表、客戶身份表、管理員身份表。
2) 報表設計表:對應于15種報表的字段設計表15張。
3) 報表數據表: 對應于15種報表具體存儲企業財務信息的數據表15張。
5.3 系統實現
系統的開發是基于JavaTMEE的,J2EE1.4新增加的技術大部分和Web服務相關。在J2EE 1.4平臺下,開發、部署、發現Web服務變得非常方便。J2EE平臺的優點(可擴展性、可靠性、開放性)尤其適用于Web服務的開發。因此本系統采用了J2EE平臺來開發。
Web服務可以使用(WSDL )Web服務描述語言)定義,也可以使用Java接口定義。在定義Web服務時,同時定義出Web服務的端點接口(Endpoint Interface ),服務端點接口是一個由JAX-RPC規范指定的Java接口,這個接口擴展javax.rmi.Remote接口,這個接口使用Java編程語言編寫。
public interface CertService extends Remote
{
/*返回用戶提供的信息。*/
public String cent (String Scert) throws RemoteException;
}
6 結束語
本系統是基于J2EE與WebService技術的大型物流信息管理系統,通過使用以上技術實現了松耦合系統架構,用戶身份認證的安全可靠性,提高了軟件的開發效率和開發質量.
參考文獻:
[1] Ball J,Carson D,Evans I,et al.The JavaTM EE 5 Tutorial[Z].Sun Microsystems,Inc.
[2] Alur D,Malks D,Crupi J,et al.Core J2EE Patterns - Best Practices and Design Strategies[Z].
[3] Designing Enterprise Applications With the Java 2 Platform[M].Enterprise Edition Copyrignt Sun Microsystems,Inc.
[4] Erich G, Richard H,Ralph J,John V.設計模式[M].李英軍,馬曉星,蔡敏,劉建中,等,譯.北京:機械工業出版社,2004.
[5] Hendricks M,Galbraith B.Java Web服務編程指南[M].北京:電子工業出版社,2002.