摘要:鑒于J2ME和Web Services技術在部署企業移動應用上的優勢,本文在深入研究這兩種技術的基礎上結合實際項目構建了一個企業移動應用系統-移動ERP。它面向企業的工作人員,讓他們隨時隨地查詢企業進、銷、存等信息,并可以對信息進行審批,實現了移動終端和企業信息的交互,具有一定的實用價值,同時驗證了用這兩種技術構建企業移動應用程序的可行性。
關鍵詞:移動ERP;中間件;Web服務;J2ME
中圖分類號:TN919.2文獻標識碼:A文章編號:1009-3044(2010)01-108-03
Application of Mobile Middleware in ERP System
YU Xiao-rong
(Jiangsu University of Science and Technology, Zhenjiang 212003, china)
Abstract: Based on the J2ME and Web services technology, an enterprise mobile application called mobile ERP system was designed and developed. It's business-oriented staff to enable them to any inquiries into the business, marketing, deposit, and other information, and information can be carried out examination and approval. The practical value of mobile ERP system validates the feasibility of constructing an enterprise mobile application using J2ME and Web Services technologies.
Key words: mobile ERP; middleware; Web services; J2ME
隨著對各種應用的不斷擴充和新應用的不斷增加,各企業IT部門面臨的問題也越來越多,諸如不同硬件平臺、不同網絡環境、不同數據庫之間的互操作,多種應用模式并存,系統效率過低,傳輸不可靠,數據加密,開發周期過長等,諸如此類的問題使人們開始關注中間件。伴隨著分布式應用的迅猛發展,中間件[1]這一新興的軟件領域己悄然崛起,基于WEB服務技術已成為中間件的主要開發平臺。
移動中間件是實現企業移動應用的中間件系統,它可以無縫地集成到客戶的ERP系統[2]或其他軟件系統中,實現無論是在本地或其他任何位置的現場操作的數據實時傳輸和交換,完成企業數據安全完整地內外交換,更重要的是它的實時在線校驗功能最大程度降低的企業人為因素產生的錯誤,保證企業數據的準確性和實時性。
1 Web服務理論概述
1.1 Web服務的優勢
在中間件的多項實現技術中,我們最終選擇Web服務技術來開發,這是因為Web服務技術具有其他中間件技術不具備的優勢。Web服務技術是基于SOAP和XML等技術的[3],使用的都是標準的協議,因此擁有了以下的優勢:
使用SOAP協議進行網絡傳輸,而協議又是基于HTTP的,因此Web服務的傳輸能夠輕松穿越防火墻、以非常簡便的方式進行遠程調用。Web服務的語法規則符合語言規則,因此它具有了的優點平臺無關性可以跨平臺調用、編程語言無關性可以各種編程語言混合使用。Web服務基于標準的Web協議-XML、HTTP、TCP/IP。許多公司都已經建立了Web基礎結構,同時它們的員工在維護方面也都具備相應的知識和經驗。因此,引入Web服務與引入以前的技術相比,其成本要低得多。
在很多行業中,許多企業都建立了一些適合本企業和本部門的ERP系統。移動ERP是在傳統ERP基礎之上,通過開發無線終端程序來實現的,事實上是對原有ERP系統的擴展,而不是代替。在此基礎上,通過開發無線終端應用程序與原有網絡資源進行信息交互,達到與原有資源的信息整合,才能實現真正的健壯、安全和可擴展的企業級無線應用系統。
而目前的ERP系統開發部署平臺不同,通信協議也可能不同,對外交換的數據格式也有著很大差異,怎樣才能夠使用移動設備訪問不同平臺的企業ERP系統呢?在研究過程中我們應用MIE移動中間件思想,提出了基于Web服務的解決方案,Web Services能夠統一地封裝信息、行為、數據表現以及商務流程,無需考慮應用所在的環境是使用何種系統和設備。因此,要在移動ERP中應用Web服務技術,關鍵是在移動設備上提供對Web服務技術的支持。
通過Web Services構建MIE中間件,使得系統可以在多種硬件平臺和操作系統上運行,以便企業可以根據業務需求和投資能力選擇最佳平臺,幫助企業順利實現不同應用水平階段的平滑過渡,此外系統的核心業務邏輯都以Web Services形式封裝成了組件,這樣易于以后修改,并且方便于其它對象的調用。并且利用J2ME[4]構建移動web服務,并將之付諸移動客戶端,實現真正的基于J2ME的移動web服務程序的構建與訪問
在本文中,為實現使用J2ME構建移動web服務應用程序,在對J2ME技術和Web Services技術進行理論剖析的基礎上,將J2ME技術與Web Services技術相結合這一思路應用于實踐中,完成了一個移動ERP系統的開發。
1.2 Web服務體系結構
Web服務采用SOA(面向服務的體系結構,Service Oriented Architecture)模型[5]作為它的體系結構,如圖1 所示。
圖 1 給出的模型主要包含三方面的內容:角色、操作和組件。Web Services 體系結構基于三種角色(服務提供者、服務注冊中心和服務請求者)之間的交互,而交互涉及發布、查找和綁定三種操作。這些角色和操作一起作用于 Web 服務組件(Web 服務軟件模塊及服務描述)。在 SOA 的三種操作中,發布操作使用 WSDL 和 UDDI 技術,查找操作使用 SOAP [6]和 UDDI 技術,而綁定操作使用 SOAP 和 WSDL 技術。
服務提供者持有一個提供網絡訪問功能的服務軟件模塊(即 Web 服務的一個實現),為服務軟件模塊定義服務描述,并且把服務描述發布到服務注冊中心。服務請求者使用查找操作來從本地或服務注冊中心檢索服務描述,然后使用服務描述與服務提供者進行綁定并調用 Web 服務實現或同它交互。
2 J2ME Web Services API (JSR172)
J2ME以消費類設備和嵌入式設備市場為目標,包括各種電子用品,例如蜂窩電話、傳呼機、PDA(Personal Digital Assistant)、機頂盒和其他小型設備等,當前投放到市場的這類設備中90%都支持J2ME。
隨著XML技術與Web服務技術的發展,企業內部與企業之間的數據交互越來越傾向于使用XML,各類應用系統也越來越傾向于使用Web服務技術,為使J2ME能與這類數據及系統交互,就需要J2ME支持XML數據的解析和Web服務的訪問能力。
J2ME Web Services API擴展了Java2Platform,Micro Edition以支持Web服務,它被設計用于J2ME基于Connected Device Configuration(CDC)或Connected Limited Device Configuration ( CLDC 1.0或CLDC 1.1)的profiles.這個API的兩個可選包標準化了Web服務客戶端的兩個關鍵領域的功能:遠程服務調用和XML解析。JSR 172確定了在典型的Web服務架構中使用J2ME應用程序消費遠程服務的一種標準的客戶端技術。
3 系統總體需求分析
本系統服務器端在J2EE平臺上開發并部署系統需要的Web服務,移動客戶端利用WSA1.0(JSR172)與服務器端的Web服務交互。即一部分是服務器端的應用,另一個是手機上的客戶端應用程序設計。本人設計該項目時,將重點放在移動客戶端應用程序的實現,客戶端包括如下功能模塊:系統設置模塊、賬務管理模塊、銷售管理模塊,進貨入庫管理模塊,庫存管理模塊等。
3.1 系統設計
在本項目中,實現了以下一些功能:能根據關鍵字實現ERP系統的進、銷、存等相關信息的查詢;能根據關鍵字對ERP系統的進、銷、存等單據進行審批;軟件操作簡單,符合手機使用者的習慣;本軟件應具有一定的速度,不能讓用戶產生難以忍受的等待;本軟件應具有一定的健壯性。
根據需求分析,本系統的模塊結構圖如圖2、圖3。
3.2 系統實現
3.2.1 訪問數據庫
在系統中我們使用Java數據庫驅動程序的方式訪問數據庫,在服務器端程序訪問數據庫時候,需將相應的數據庫驅動文件拷貝到Tomcat\\webapps\\axis\\WEB-INF\\lib中。訪問數據庫的具體操作包括:1) 裝載數據庫的JDBC驅動程序;2) 由Connection建立與數據庫的連接;3)創建Statement對象,準備調用SQL語句;4) 用ResultSet調用SQL語句;5)訪問ResultSet中的結果記錄;6)關閉ResultSet,Statement和Connection對象;
進行數據庫操作的部分代碼如下:
import java.sql.*;
public class sql_data {
String sDBDriver = \"com.microsoft.jdbc.sqlserver.SQLServerDriver\";
String url =
\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=erpdata \";
String user = \"sa\"; String password = \"123\"; Connection conn = 1; Statement stmt = 1;
ResultSet rs = 1;
public sql_data() { try { Class.forName(sDBDriver);
} catch (java.lang.ClassNotFoundException e) {
System.err.println(\"sql_data(): \" + e.getMessage()); } }
public ResultSet executeQuery(String sql) {
try {conn = DriverManager.getConnection(url,user,password);
stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.err.println(\"sql_data.executeQuery:\"+ x.getMessage());}
return rs;}
…//其他操作}
3.2.2 Web服務的實現
下面以庫存類為例,對Web Services的實現進行說明: 在服務器端,創建的庫存類主要用來提供商品的信息,包括的public方法有:
getKucunYiji:得到庫存一級目錄。
getKucunErji:得到庫存二級目錄。
getKucunXilie:得到庫存系列目錄。
getSpList:得到商品列表。
getSpmx:得到商品明細信息。
在客戶端,根據News類生成的代理類放在工程MyEnterpriseClient包中包括以下類:CjspmxListUI.Java、ErjiMenuListUI.Java、KcJtSpMxListUI.Java、KcSpListUI.Java、KcspmxListUI.Java、SpxlListUI.Java、YijiMenuListUI.Java、MainScreen.Java、 Navigator.Java
我們也可以通過Web Services把客戶端的信息發送給服務器端,以獲得商品列表服務為例:
Thread t = new Threads{
public void run {
try{ boolean login=service.login(UserID, Pwd);
if (login=1){error(\"You can not login in.\"); }
else{display.setCurrent(MainForm); }
}catch (Exception e){
if (!EXIT.STRING.equals(e.getMessage()){
e.printStackTrace();
error(\"Connection problems.\\"+\"Check your internetproxy settings.\");
} } }
t.start();
這樣就實現了在J2ME客戶端方便的訪問服務。系統庫存查詢運行界面如圖4,圖5。
4 結束語
本文對移動中間件進行了介紹,并且提出了以Web Services技術為主的中間件解決方案來構建移動ERP系統的服務器端,在客戶端則采用了J2ME技術。通過兩者的結合,實現了移動終端和企業信息的交互,具有一定的實用價值,驗證了用這兩種技術構建企業移動應用程序的可行性,為今后類似的應用提供了新的思路和解決方法。同時,Web Services技術所具有的跨平臺優勢,可以使該實現不僅應用于手機上,也可以在對客戶端應用程序進行一定修改以后,將其應用到其它使用J2ME進行應用程序開發的設備上,使該項目的應用范圍變得更廣。
參考文獻:
[1] 李華飚.Java中間件技術及其應用開發[M].北京:水利水電出版社,2007.
[2] 閃四清.ERP系統原理和實施[M].北京:清華大學出版社,2006:33.
[3] 余敏.基于J2EE平臺的Web服務技術研究與實現[J].教育技術導刊,2009(4):122-123.
[4] 詹建飛.J2ME開發精解[M].北京:電子工業出版社,2006.
[5] Moore W,Allen C,Bracht R,et al.Managing Information Access to an Enterprise Information System Using J2EE and Services Oriented Architecture[M].U.S.: International Business Machines Corporation,2005.
[6] 岳昆,王曉玲,周傲英.Web服務核心支撐技術[M]:研究綜述.軟件學報,2004,15(3).