發(fā)明的公開,下文中對(duì)特定例子的部件和設(shè)置進(jìn)行描述。此外,本發(fā)明可以在不同例子中重復(fù)參考數(shù)字和/或字母。這種重復(fù)是為了簡(jiǎn)化和清楚的目的,其本身不指示所討論各種實(shí)施例和/或設(shè)置之間的關(guān)系。應(yīng)當(dāng)注意,在附圖中所圖示的部件不一定按比例繪制。本發(fā)明省略了對(duì)公知組件和處理技術(shù)及工藝的描述以避免不必要地限制本發(fā)明。
[0064]本發(fā)明綜合了多種集成技術(shù),通過應(yīng)用層配置來實(shí)現(xiàn)與多種系統(tǒng)進(jìn)行集成的方法。其重點(diǎn)在于“可配置”,實(shí)施系統(tǒng)內(nèi)置多種集成方案,以及豐富的系統(tǒng)集成配置參數(shù),運(yùn)維人員甚至用戶,可以通過在系統(tǒng)的頁面上配置,實(shí)現(xiàn)與其他系統(tǒng)的集成,一方面極大減少了開發(fā)工作量,另一方面,能夠?yàn)橄到y(tǒng)集成模塊提供較高的可擴(kuò)展性。
[0065]本發(fā)明可配置集成技術(shù)的需求:
[0066]①可以滿足多種系統(tǒng)集成需求,以適配采用不同技術(shù)路線的系統(tǒng)接入,此外,系統(tǒng)集成可以實(shí)現(xiàn)雙向數(shù)據(jù)交換;
[0067]②系統(tǒng)集成可以通過配置方式實(shí)現(xiàn),無需或僅需少量系統(tǒng)開發(fā)即可實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)資源的連接,配置包括后臺(tái)配置和用戶配置;
[0068]③為保證部分系統(tǒng)數(shù)據(jù)的時(shí)效性,須實(shí)現(xiàn)定時(shí)數(shù)據(jù)采集;
[0069]④須滿足多并發(fā)性能要求。
[0070]如圖1所示,本發(fā)明的一種信息系統(tǒng)可配置集成方法,它包括以下過程:
[0071]建立資源連接模塊,進(jìn)行信息系統(tǒng)與目標(biāo)系統(tǒng)之間的數(shù)據(jù)交互;
[0072]連接信息系統(tǒng)與目標(biāo)系統(tǒng),根據(jù)數(shù)據(jù)流轉(zhuǎn)需求建立信息系統(tǒng)與目標(biāo)系統(tǒng)之間的鏈接,并將建立的所有鏈接組成一個(gè)連接池;
[0073]進(jìn)行數(shù)據(jù)交互,信息系統(tǒng)與目標(biāo)系統(tǒng)之間進(jìn)行數(shù)據(jù)交換;
[0074]進(jìn)行數(shù)據(jù)解析,將信息系統(tǒng)與目標(biāo)系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)格式。
[0075]如圖2所示,本發(fā)明的一種信息系統(tǒng)可配置集成系統(tǒng),它包括進(jìn)行信息系統(tǒng)與目標(biāo)系統(tǒng)數(shù)據(jù)交互的資源連接模塊。
[0076]對(duì)于資源連接模塊來說,它是連接本系統(tǒng)外部(目標(biāo)系統(tǒng))與內(nèi)部(被集成信息系統(tǒng))的“郵局”,負(fù)責(zé)根據(jù)數(shù)據(jù)流轉(zhuǎn)需求建立系統(tǒng)連接,對(duì)來自不同系統(tǒng)的數(shù)據(jù)進(jìn)行格式解析,轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),供系統(tǒng)內(nèi)部使用。
[0077]系統(tǒng)外部(目標(biāo)系統(tǒng))的數(shù)據(jù)包括由用戶配置的連接信息,以及同其他系統(tǒng)交互過程中的采集需求、錄入數(shù)據(jù);系統(tǒng)內(nèi)部(被集成信息系統(tǒng))模塊則采用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)同資源連接模塊交互。
[0078]資源連接模塊內(nèi)置多種連接技術(shù),實(shí)現(xiàn)多種方式的系統(tǒng)集成;通過讀取配置信息,實(shí)現(xiàn)連接及使用過程可配置;通過定時(shí)器保證信息資源時(shí)效性;通過優(yōu)化的多線程保證多并發(fā)性能需求。
[0079]如圖3所示,本發(fā)明所述的資源連接模塊包括:
[0080]連接器,用以根據(jù)數(shù)據(jù)流轉(zhuǎn)需求建立信息系統(tǒng)與目標(biāo)系統(tǒng)之間的鏈接,并將建立的所有鏈接組成一個(gè)連接池;
[0081]交互器,用以信息系統(tǒng)與目標(biāo)系統(tǒng)之間進(jìn)行數(shù)據(jù)交換;
[0082]解析器,將信息系統(tǒng)與目標(biāo)系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)格式。
[0083]資源連接模塊采用分層結(jié)構(gòu),由連接器、交互器、解析器構(gòu)成,其各自的具體功能如下:
[0084]①連接器負(fù)責(zé)與所連接系統(tǒng)建立和保持連接,并維護(hù)連接池,供交互器使用;
[0085]②交互器負(fù)責(zé)“溝通”工作,獲取連接之后,同目標(biāo)系統(tǒng)進(jìn)行數(shù)據(jù)交換;
[0086]③解析器負(fù)責(zé)“翻譯”工作,將交互器所獲得的目標(biāo)系統(tǒng)數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),供信息系統(tǒng)內(nèi)部其他模塊使用,或者將信息系統(tǒng)內(nèi)部其他模塊產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換為能夠與目標(biāo)系統(tǒng)進(jìn)行交互的數(shù)據(jù)格式,交由交互器“告知”目標(biāo)系統(tǒng)。
[0087]此外,通過多線程編程技術(shù),維護(hù)線程池,供資源連接過程使用;對(duì)于時(shí)效性要求較強(qiáng)的系統(tǒng)數(shù)據(jù)信息的獲取過程,開發(fā)啟動(dòng)例程,并配置至定時(shí)器中,實(shí)現(xiàn)定時(shí)數(shù)據(jù)采集。
[0088]下面對(duì)資源連接模塊的各個(gè)組成部分進(jìn)行詳細(xì)介紹。
[0089](I)連接器
[0090]連接器的任務(wù)是讀取系統(tǒng)配置信息,然后根據(jù)配置信息同目標(biāo)系統(tǒng)建立連接,對(duì)于需要進(jìn)行身份認(rèn)證的系統(tǒng),通過為了保證性能需求,需要維持至少一個(gè)連接,所有的針對(duì)各目標(biāo)系統(tǒng)的連接均維護(hù)在連接池中,供交互器使用。
[0091]目前連接器可支持的連接方式包括We Service連接、數(shù)據(jù)庫連接、SAP ERP連接、HTTP應(yīng)用層連接、Socket連接。
[0092]①Web Service連接方式針對(duì)能夠提供標(biāo)準(zhǔn)連接接口的系統(tǒng),Socket連接針對(duì)目前客戶使用的基于TCP/UDP協(xié)議的局域網(wǎng)即時(shí)通信軟件。對(duì)于Web Service和Socket連接方式,分別采用Apache CXF和Java標(biāo)準(zhǔn)庫中的API來實(shí)現(xiàn),標(biāo)準(zhǔn)技術(shù)實(shí)現(xiàn)方式,不做詳述。
[0093]②HTTP應(yīng)用層連接方式,理論上可用于所有的B/S系統(tǒng)連接,主要適用于頁面信息采集,以及無法提供連接接口的系統(tǒng)連接方式。從目標(biāo)系統(tǒng)來看,分為兩種情況,一種是無身份認(rèn)證的資訊類系統(tǒng),一種是具有身份認(rèn)證的業(yè)務(wù)類系統(tǒng)。
[0094]對(duì)于資訊類系統(tǒng),主要應(yīng)用側(cè)重于信息采集,并推送給用戶,實(shí)現(xiàn)信息訂閱。這種情況,無需連接器維持連接池。
[0095]對(duì)于具有身份認(rèn)證的業(yè)務(wù)類系統(tǒng),首先使用用戶配置的信息通過目標(biāo)系統(tǒng)認(rèn)證,獲取認(rèn)證信息,然后持認(rèn)證信息進(jìn)行后續(xù)的交互。因此,這種情況需要連接器在連接池中維護(hù)連接會(huì)話信息,其連接過程如圖4所示。
[0096]如果過程在如下情況下啟動(dòng):一是用戶配置認(rèn)證信息時(shí)進(jìn)行檢查,二是交互器從連接池獲取連接信息時(shí)。則在進(jìn)行系統(tǒng)連接時(shí),其流程如下:
[0097]第一步,首先檢查連接池中是否有可用連接,如果有,進(jìn)行第二步,否則,進(jìn)行第三步;
[0098]第二步,檢查連接是否有效,如果有效,則連接可用,否則,進(jìn)行第三步;
[0099]第三步,讀取用戶配置的認(rèn)證信息,通常為用戶名和密碼,針對(duì)目標(biāo)系統(tǒng)的需要,選擇加密方式進(jìn)行表達(dá)加密;
[0100]第四步,進(jìn)行系統(tǒng)認(rèn)證,并判斷是否通過認(rèn)證,判斷依據(jù)為用戶配置的校驗(yàn)信息,如果系統(tǒng)登錄成功后確定會(huì)獲取的HTTP響應(yīng)數(shù)據(jù),如果未通過,則在用戶配置認(rèn)證信息時(shí)提醒用戶檢查配置的信息是否正確,如果通過系統(tǒng)認(rèn)證,進(jìn)行第五步;
[0101]第五步,保存認(rèn)證通過后的會(huì)話信息(通常為cookie信息,一般包括sess1nID,以及不同系統(tǒng)特有的標(biāo)識(shí)鍵值對(duì))至連接池,提供給交互器使用。
[0102]對(duì)于第二步,檢查連接有效性有兩種處理方案:一種是先使用連接信息向目標(biāo)系統(tǒng)發(fā)送可預(yù)知結(jié)果的請(qǐng)求,觀察返回結(jié)果是否正確,若不正確,通常表明連接信息已失效;第二種是對(duì)于每個(gè)連接信息同時(shí)保存會(huì)話失效時(shí)間,該失效時(shí)間視不同系統(tǒng)而定,當(dāng)再次獲取連接信息時(shí),先檢查是否已過失效時(shí)間,從而確定連接是否可用。兩種方案分別有不同的優(yōu)缺點(diǎn),對(duì)于第一種來說,能夠保證準(zhǔn)確性,適用于對(duì)用戶連接有限制的系統(tǒng),如只允許一個(gè)用戶同時(shí)允許有限個(gè)會(huì)話登錄系統(tǒng),后登錄的會(huì)話會(huì)使已登錄的會(huì)話失效,存在這種情況的系統(tǒng)采用第一種驗(yàn)證方案,缺點(diǎn)也顯而易見,校驗(yàn)需要首先發(fā)送確認(rèn)請(qǐng)求,會(huì)稍微增加連接時(shí)間;對(duì)于第二種來說,驗(yàn)證過程在本系統(tǒng)完成,且驗(yàn)證時(shí)間完全可以忽略,適合于能夠掌握會(huì)話生效時(shí)間的目標(biāo)系統(tǒng)。
[0103]對(duì)于HTTP應(yīng)用層連接方式,配置內(nèi)容包括登錄地址、用戶名、密碼、登錄成功標(biāo)識(shí)信息。
[0104]③對(duì)于SAP ERP的連接,采用SAP Java Connector組件進(jìn)行連接。通常情況下,頻繁創(chuàng)建新的連接可能導(dǎo)致嚴(yán)重的性能問題,在Web應(yīng)用程序中,如果每個(gè)sess1n創(chuàng)建一個(gè)連接,那么在多并發(fā)的情況下,連接速度將難以保證。通過JCo中的ClientPool來創(chuàng)建連接池,重用已創(chuàng)建的連接。
[0105]配置信息包括SAP系統(tǒng)連接地址、客戶端編號(hào)、系統(tǒng)編號(hào)、登錄名、登錄口令。
[0106](2)交互器
[0107]交互器負(fù)責(zé)在建立連接后,根據(jù)配置要求,同目標(biāo)系統(tǒng)進(jìn)行數(shù)據(jù)交換。
[0108]①對(duì)于數(shù)據(jù)庫的連接方式,通常采用JDBC,原因在于可配置的數(shù)據(jù)交換,對(duì)數(shù)據(jù)庫讀寫操作的靈活性要求較高;對(duì)于個(gè)別的讀寫操作較為簡(jiǎn)單,且數(shù)據(jù)變動(dòng)不大、性能要求較高的系統(tǒng)集成,采用Hibernate進(jìn)行連接,并配置緩存,從而降低對(duì)目標(biāo)數(shù)據(jù)庫的壓力。通過緩存的配置進(jìn)行優(yōu)化的方式主要側(cè)重于二級(jí)緩存,并且采用只讀(read-only)緩存的策略。
[0109]配置內(nèi)容包括SQL查詢語句,及返回?cái)?shù)據(jù)的字段對(duì)應(yīng)關(guān)系。例如,在表Tl中查詢Cl和C2字段的內(nèi)容,則配置SQL為“select Cl, C2from TL...”,并且配置返回字段Cl和C2在系統(tǒng)內(nèi)對(duì)應(yīng)的鍵(key),返回值的數(shù)據(jù)結(jié)構(gòu)為L(zhǎng)ist〈Map〈String key, String value?