一、企業辦公自動化系統建設存在的問題
(一)存在的問題
隨著信息技術的發展,企業信息化建設已經有原有的企業業務信息化逐漸轉換成企業信息流的自動化管理,即利用信息化技術將財務管理系統、人事管理系統、倉庫管理系統、客戶關系管理系統等企業中相互孤立的信息化系統進行集成,從而簡化企業的組織結構,讓企業各部門在信息共享的基礎上進行協作,不僅使得各部門的責任更加明確,而且可以讓決策層迅速綜合企業各部門的信息,為管理層決策的制定提供信息化依據。
辦公自動化系統的建設就是在企業已有信息系統的基礎上,建立一條完整信息鏈的過程。由于企業信息化建設是一個逐步完善的過程。在這個完善的過程中,隨著計算機技術的發展,各種系統開發平臺層出不窮,使得企業先后建立的信息系統可能相互異構,從而導致這些異構系統之間的通信困難。如何解決由于企業內部信息相互異構而造成的信息孤島問題,就成為了企業辦公自動化系統建設所需要面對的問題。
(二)可行的解決方案
從上面的分析可以看出,目前企業辦公自動化系統建設存在的最大問題在于:由于企業內部系統互相異構,從而導致企業內部信息管理系統之間無法進行有效的通信,從而無法再企業內部形成一條高校的信息通信鏈。
針對目前企業辦公自動化系統建設所存在的問題,提出使用SOA技術來實現企業內部異構系統之間的信息通信。
SOA技術具有如下的特點:(1)松耦合性,基于SOA架構的系統之間耦合僅僅是通過一個文檔形式的服務契約,服務提供者根據這個契約提供服務,而應用程序終端則根據這個契約來調去服務提供者提供的服務,并實現特定的業務功能。而不需要考慮服務提供者與應用程序終端所在的操作系統類型和實現語言的不同;(2)SOA的復用性,SOA并不是提供一種編寫構件的全新的規范,而是提供了一種能夠把已有構建按照某種特定標準再次封轉之后的文檔形式,從而實現了服務提供者與服務使用者的一個松耦合的關系。應用程序前端也不必要理會服務提供者提供的服務時采用何種語言編寫的以及基于何種平臺的。因此,使用SOA技術可以有效解決企業內部信息系統異構,從而導致企業內部存在信息孤島的問題。
二、基于SOA技術的異構系統數據集成
以基于.NET平臺的倉庫管理系統與基于Java平臺的財務管理系統之間信息的傳輸為例,對基于SOA架構的異構系統間信息傳輸進行研究。
(一)信息傳輸格式
異構系統之間數據傳輸最大的問題在于數據結構的不同。不僅基于Java平臺的系統無法直接使用由.NET平臺實現的功能;而且.NET平臺中的表格等類型的數據無法直接轉換Java平臺中的相應的數據格式。為此,不僅需要有一個中間轉換的機制來處理異構平臺之間功能的相互調用,還需要定義一種數據格式來對異構平臺之間的數據進行描述。
一般而言,異構平臺之間的字符串都是基于不同字符編碼格式來進行編碼的,即如果異構平臺之間的字符編碼格式相同,那么異構平臺之間對相同字符串的數據流是相同的。為此,在企業辦公自動化系統中,異構系統之間數據交互采用XML字符串的數據格式進行交互。例如一個產品的庫存信息其XML表示如下所示:
XML實質上就是一個字符串,一般所有的平臺都支持對XML數據的處理,如果平臺不支持XML數據的處理,也因為XML格式是非常固定的,可以通過簡單的方法來解析XML字符串,得到XML字符串中的數據。因此,使用XML字符串數據格式來進行異構平臺之間的數據交互是可行的。
(二)服務實現
由于企業的其它系統(例如財務管理系統)可能需要獲取企業庫存管理系統中的產品庫存信息,為此,在企業基于.NET平臺的庫存管理系統端必須要實現產品庫存信息查詢的功能。.NET平臺下Web服務的實現,較為簡單,只需要在普通函數的前面加上[WebMethod]關鍵字即可,其具體的實現如下所示:
[WebMethod]
String GetProductByCode(String code)
{
String sql=”SELECT * FROM t_product WHERE code=\’”+code+”\’”;
DataTable dt=DataBaseOp.Select(sql);//數據庫查詢,并將結果保存在DataTable類型數據結構中。
String dtXML=dt.toXML();//將DataTable類型的數據轉換成XML字符串流
return dtXML;
}
(三)服務調用
在企業系統實現并發布了Web服務之后,企業財務管理系統就可以通過調用這個Web服務來進行產品庫存的查詢。
Java平臺使用Web服務有兩種方法,在本文的研究中主要使用Axis2來進行Web服務的調用,其實現的關鍵代碼如下所示:
public int getProductCount(String code) {
String endpoint = "http://localhost:8080/ERP/services/ERPSynrochnized?wsdl";//庫存管理系統發布的Web服務端點
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("GetProductByCode");//調用庫存管理系統發布的名為” GetProductByCode”的Web服務
call.addParameter("code", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//將產品編號作為參數傳入到Web服務調用中
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設置Web服務返回結果的類型為XML字符串類型
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.my.com/Rpc");
String strXML = (String) call.invoke(code);//調用ERP系統發布的名為” GetProductByCode”的Web服務
XML xml=new XML(strXML);//將XML字符串轉換成為XML類
int count=Convert.toInt(xml.getValue(“count”);//獲取xml中109的值,并且轉換成int型數據
return count;
}
通過上述的步驟,從而實現了企業與基于.NET平臺的庫存管理系統與基于Java平臺的財務管理系統與之間的數據交互。
三、結束語
將企業相互獨立的業務管理信息系統進行有效集成,從而實現企業的辦公自動化,已經成為了我國企業信息化的主要研究方向,但是各具體業務管理信息系統之間的異構,嚴重制約了企業內部的信息通信。為此,本文提出使用SOA技術來實現企業內部數據集成,并對其中具體的實現方法進行了研究。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:企業辦公自動化系統中異構數據集成技術研究