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