專利名稱:記錄企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件的開(kāi)發(fā)和測(cè)試,尤其涉及為了軟件的開(kāi)發(fā)和測(cè)試而在基于服務(wù)架 構(gòu)的系統(tǒng)中進(jìn)行服務(wù)記錄的方法和系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,企業(yè)對(duì)企業(yè)(B2B)的應(yīng)用和企業(yè)信息化應(yīng)用成為了計(jì)算 機(jī)技術(shù)的重要應(yīng)用。圖1示出了已有技術(shù)中的B2B企業(yè)服務(wù)系統(tǒng)的方框圖。該圖示出了已 有技術(shù)中使用企業(yè)信息系統(tǒng)(Enterprise Information System)的典型的運(yùn)營(yíng)環(huán)境。其 中,服務(wù)程序(如信用卡申請(qǐng)流程的業(yè)務(wù)程序)運(yùn)行在整合服務(wù)器(IntegrationServer) 10 上。整合服務(wù)器10接收來(lái)自一網(wǎng)點(diǎn)用戶業(yè)務(wù)(例如,一銀行營(yíng)業(yè)網(wǎng)點(diǎn))的一服務(wù)請(qǐng)求(例 如,為申請(qǐng)人A提出的申請(qǐng)信用卡的請(qǐng)求)。響應(yīng)于該服務(wù)請(qǐng)求,整合服務(wù)器10上的信用卡 申請(qǐng)流程,通過(guò)連接器向企業(yè)信息系統(tǒng)40發(fā)出獲取信息請(qǐng)求,要求獲取特定申請(qǐng)人的帳戶 信息。該獲取信息請(qǐng)求可以包括企業(yè)信息系統(tǒng)40的IP地址,端口號(hào),數(shù)據(jù)庫(kù)名稱,表的名 稱,記錄索引號(hào)等等。整合服務(wù)器10將處理后的獲取信息請(qǐng)求發(fā)送給連接單元(connectivity component) 20。連接單元20將該獲取信息請(qǐng)求轉(zhuǎn)換成企業(yè)信息系統(tǒng)40可以接受的格式, 并以企業(yè)信息系統(tǒng)40可以接受的協(xié)議,發(fā)送轉(zhuǎn)換后的請(qǐng)求給企業(yè)信息系統(tǒng)40。企業(yè)信息系 統(tǒng)10處理該轉(zhuǎn)換后的請(qǐng)求,將相應(yīng)的響應(yīng)(如客戶帳戶信息)返回給連接單元20。連接 單元20將該響應(yīng)(如客戶帳戶信息)轉(zhuǎn)換成整合服務(wù)器10可以識(shí)別的格式,發(fā)送給整合 服務(wù)器10。整合服務(wù)器10將該響應(yīng)中的信息(如帳戶信息)傳遞給運(yùn)行在其上的業(yè)務(wù)流 程。如圖1所示,在面向服務(wù)(S0A)的商業(yè)整合項(xiàng)目中,經(jīng)常需要使用連接單元,通過(guò) Web Service, JMS, JCA等協(xié)議,與企業(yè)信息系統(tǒng)交互(EIS)。企業(yè)信息系統(tǒng)包括各種ERP系 統(tǒng),CRM系統(tǒng),數(shù)據(jù)庫(kù)等等。在項(xiàng)目的設(shè)計(jì),開(kāi)發(fā)和測(cè)試階段,需要頻繁的使用企業(yè)信息系統(tǒng)。 但是,商業(yè)用戶的企業(yè)信息系統(tǒng)是核心業(yè)務(wù)的運(yùn)行環(huán)境(如銀行的數(shù)據(jù)庫(kù)等),在投入運(yùn)營(yíng) 后,通常不可以作為開(kāi)發(fā)項(xiàng)目的環(huán)境。在這種情況下,已有的解決方案包括(1)配置一個(gè)新的類型的企業(yè)信息系統(tǒng)(如圖1中所示的模擬企業(yè)信息系統(tǒng)35), 作為開(kāi)發(fā)使用。但由于企業(yè)信息系統(tǒng)的復(fù)雜性,配置和維護(hù)通常需要花費(fèi)大量的人力物力。(2)使用整合服務(wù)器的連接模擬器。這種方法是實(shí)質(zhì)是,使用連接模擬器來(lái)模擬整 個(gè)連接組件和企業(yè)信息系統(tǒng)。在項(xiàng)目的實(shí)際應(yīng)用中,有很大的風(fēng)險(xiǎn),因?yàn)樵陂_(kāi)發(fā)階段無(wú)法判 定連接單元和企業(yè)信息系統(tǒng)的交互是否正常。另外,在項(xiàng)目和系統(tǒng)的維護(hù)階段,當(dāng)用戶發(fā)現(xiàn)業(yè)務(wù)流程出問(wèn)題的時(shí)候,通常的方案 是將詳細(xì)日志文件傳給技術(shù)支持部門(mén)。在某些情況下,技術(shù)支持部門(mén)僅僅依靠日志,不能準(zhǔn) 確地分析發(fā)生的問(wèn)題,而需要在實(shí)驗(yàn)室環(huán)境中重現(xiàn)。在這種情況下,如果企業(yè)信息系統(tǒng)非常 復(fù)雜(例如包括大量的業(yè)務(wù)數(shù)據(jù)和復(fù)雜的業(yè)務(wù)流程),重現(xiàn)用戶的問(wèn)題就會(huì)變得異常困難。
發(fā)明內(nèi)容
鑒于已有技術(shù)的不足,本發(fā)明提供了一種記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù) 交互數(shù)據(jù)的方法,包括接收一服務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址為所述企業(yè)信息系統(tǒng)的 地址;記錄所述服務(wù)請(qǐng)求中到所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信息,以便形成服務(wù)請(qǐng)求 記錄;響應(yīng)于所述服務(wù)請(qǐng)求,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接 口,其中企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口調(diào)用所述企業(yè)信息系統(tǒng) 本地Java樁文件的應(yīng)用程序接口 ;接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程 序接口的服務(wù)響應(yīng);記錄所述服務(wù)響應(yīng)中來(lái)自所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信息,以 便形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系;以及發(fā)送所述 服務(wù)響應(yīng)中的應(yīng)用程序接口信息。本發(fā)明還提供了一種生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)的方法,包括獲取連接單 元用來(lái)連接企業(yè)信息系統(tǒng)的基于Java的連接器文件,所述連接器文件包括用于調(diào)用企業(yè) 信息系統(tǒng)本地Java樁文件的連接器應(yīng)用程序接口 ;獲取所述企業(yè)信息系統(tǒng)的本地Java樁 文件;分析用來(lái)連接企業(yè)信息系統(tǒng)的連接器文件和所述企業(yè)信息系統(tǒng)的本地Java樁文件 之間的調(diào)用關(guān)系;根據(jù)所述調(diào)用關(guān)系,生成企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序 接口 ;以及插入用于保存記錄系統(tǒng)的輸入輸出的代碼。本發(fā)明還提供了一種記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的系統(tǒng),包 括服務(wù)請(qǐng)求接收裝置,用于接收一服務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址為所述企業(yè)信息 系統(tǒng)的地址;服務(wù)請(qǐng)求記錄裝置,用于記錄所述服務(wù)請(qǐng)求中到所述企業(yè)信息系統(tǒng)的應(yīng)用程 序接口信息,以便形成服務(wù)請(qǐng)求記錄;模擬應(yīng)用程序接口調(diào)用裝置,其響應(yīng)于所述服務(wù)請(qǐng) 求,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口,其中企業(yè)信息系統(tǒng)本地 Java樁文件的所述模擬應(yīng)用程序接口調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序 接口 ;服務(wù)響應(yīng)接收裝置,用于接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接 口的服務(wù)響應(yīng);服務(wù)響應(yīng)記錄裝置,用于記錄所述服務(wù)響應(yīng)中來(lái)自所述企業(yè)信息系統(tǒng)的應(yīng) 用程序接口信息,以便形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相 聯(lián)系;以及服務(wù)響應(yīng)發(fā)送裝置,用于發(fā)送所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息。本發(fā)明還提供了一種生成系統(tǒng),用于生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng),所述生成 系統(tǒng)包括連接器文件獲取裝置,用于獲取連接單元用來(lái)連接企業(yè)信息系統(tǒng)的基于Java的 連接器文件,所述連接器文件包括用于調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的連接器應(yīng)用 程序接口 ;樁文件獲取裝置,用于獲取所述企業(yè)信息系統(tǒng)的本地Java樁文件;分析裝置,用 于分析用來(lái)連接企業(yè)信息系統(tǒng)的連接器文件和所述企業(yè)信息系統(tǒng)的本地Java樁文件之間 的調(diào)用關(guān)系;模擬應(yīng)用程序接口生成裝置,用于根據(jù)所述調(diào)用關(guān)系,生成企業(yè)信息系統(tǒng)本地 Java樁文件的模擬應(yīng)用程序接口 ;以及輸入輸出代碼插入裝置,用于插入保存訪問(wèn)記錄的 輸入輸出代碼。根據(jù)本發(fā)明的實(shí)施例的企業(yè)信息系統(tǒng)記錄系統(tǒng)與模擬方法,記錄和模擬連接單元 與企業(yè)信息系統(tǒng)之間的一系列的特定交互,即請(qǐng)求與響應(yīng)。適用于針對(duì)運(yùn)營(yíng)環(huán)境中的軟件 進(jìn)行開(kāi)發(fā)、測(cè)試或糾錯(cuò)等等。
圖1示出了已有技術(shù)中的B2B企業(yè)服務(wù)系統(tǒng)的方框圖。圖2示出了根據(jù)本發(fā)明一實(shí)施例的服務(wù)系統(tǒng)的流程圖。圖3示出了根據(jù)本發(fā)明另一實(shí)施例的記錄系統(tǒng)的流程圖。圖4示出了根據(jù)本發(fā)明另一實(shí)施例的用于生成記錄系統(tǒng)的流程圖。圖5示出了根據(jù)本發(fā)明一實(shí)施例的記錄系統(tǒng)方框圖。圖6示出了根據(jù)本發(fā)明一實(shí)施例的記錄系統(tǒng)的生成系統(tǒng)的方框圖。
具體實(shí)施例方式以下參照按照本發(fā)明實(shí)施例的方法、裝置描述本發(fā)明。其中,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì) 算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器, 從而生產(chǎn)出一種機(jī)器,使得通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生 實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置(means)。也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能指令計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置 以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一個(gè)包 括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means) 的制造品。還可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,使得在計(jì) 算機(jī)或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而 在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令就提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定 的功能/操作的過(guò)程。圖2示出了根據(jù)本發(fā)明一實(shí)施例的服務(wù)系統(tǒng)的流程圖。其中,服務(wù)系統(tǒng)包括 整合服務(wù)器(Integration Server,簡(jiǎn)稱 IS) 110、連接單元(Connectivity Component, 簡(jiǎn)稱CC) 120、記錄系統(tǒng)(RecordingSystem,簡(jiǎn)稱RS) 130和企業(yè)信息系統(tǒng)(Enterprise Information System,簡(jiǎn)稱EIS) 140。其中,該企業(yè)信息系統(tǒng)是基于Java的,即提供了基于 Java的本地樁文件(即調(diào)用接口 )。該連接單元的連接器文件也是基于Java的,即連接單 元的連接器文件也提供了基于Java的本地樁文件(即調(diào)用接口)。在Java運(yùn)行時(shí)環(huán)境中,對(duì)于任意一個(gè)類,可以知道這個(gè)類有哪些屬性和方法。對(duì) 于任意一個(gè)對(duì)象,可以調(diào)用它的方法。Java語(yǔ)言的反射機(jī)制(reflection mechanism)提供 了這種動(dòng)態(tài)獲取類的信息,以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能。Java語(yǔ)言的反射機(jī)制主要提 供了以下功能在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類;在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象; 在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法;在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法; 以及生成動(dòng)態(tài)代理等等。運(yùn)行在整合服務(wù)器110上的信用卡申請(qǐng)流程,要求獲取特定用戶的帳戶信息。該 特定用戶的帳戶信息一般存儲(chǔ)在企業(yè)信息系統(tǒng)140中。因此,整合服務(wù)器110將通過(guò)連接 單元120調(diào)用企業(yè)信息系統(tǒng)140。在步驟S210,整合服務(wù)器110將要求獲取特定用戶的帳 戶信息的請(qǐng)求發(fā)送給連接單元120,該請(qǐng)求可以包括EIS服務(wù)器地址、認(rèn)證信息、需要查詢 的用戶帳戶號(hào)和用戶名等。
連接單元120獲得該請(qǐng)求之后,在步驟S220,將其轉(zhuǎn)換成企業(yè)信息系統(tǒng)140可以 接受的格式,并以企業(yè)信息系統(tǒng)140可以接受的協(xié)議,發(fā)送轉(zhuǎn)換后的請(qǐng)求給企業(yè)信息系統(tǒng) 140。根據(jù)本發(fā)明的該實(shí)施例,連接單元120并不需要了解記錄系統(tǒng)130的存在,亦即,連接 單元120不需要由于記錄系統(tǒng)130的加入而進(jìn)行調(diào)整。連接單元120以通常工作的方式, 將轉(zhuǎn)換后的請(qǐng)求發(fā)送給企業(yè)信息系統(tǒng)140。記錄系統(tǒng)130連接在連接單元120和企業(yè)信息系統(tǒng)140之間,用于記錄基于Java 企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)。在上述步驟S220,記錄系統(tǒng)接收來(lái)自連接單元120的服 務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址為所述企業(yè)信息系統(tǒng)的地址。在步驟S230,記錄系統(tǒng)130 得到轉(zhuǎn)換后的請(qǐng)求的信息后,將請(qǐng)求信息完整的保存在記錄庫(kù)(圖中未示出)里面;并將相 應(yīng)的請(qǐng)求轉(zhuǎn)發(fā)給企業(yè)信息系統(tǒng)140。在步驟S240,企業(yè)信息系統(tǒng)140處理該相應(yīng)的請(qǐng)求,將相應(yīng)的客戶帳戶信息返回 給連接單元。根據(jù)本發(fā)明的該實(shí)施例,企業(yè)信息系統(tǒng)140也并不需要了解記錄系統(tǒng)130的 存在,亦即,企業(yè)信息系統(tǒng)140不需要由于記錄系統(tǒng)130的加入而進(jìn)行調(diào)整。企業(yè)信息系統(tǒng) 140仍采用通常的工作方式接收相應(yīng)的請(qǐng)求,進(jìn)行處理后,以連接單元為接收方發(fā)送響應(yīng)。 該響應(yīng)包括客戶帳戶的需要返回的信息,例如帳戶名稱、申請(qǐng)人性別、申請(qǐng)人年齡、開(kāi)戶日 期、當(dāng)前存款數(shù)額、當(dāng)前貸款情況和/或信用等級(jí)等等。記錄系統(tǒng)130連接在連接單元120和企業(yè)信息系統(tǒng)140之間,因此,將收到企業(yè)信 息系統(tǒng)140發(fā)給連接單元120的響應(yīng)。在步驟S250,記錄系統(tǒng)130接收企業(yè)信息系統(tǒng)140 的響應(yīng),將響應(yīng)信息(包括返回的客戶帳戶信息)完整的保存在記錄庫(kù)(圖中未示出)里 面,并和前述請(qǐng)求信息聯(lián)系起來(lái);然后,記錄系統(tǒng)130將企業(yè)信息系統(tǒng)140的返回?cái)?shù)據(jù)轉(zhuǎn)發(fā) 給連接單元。在步驟S260,連接單元120將客戶帳戶信息轉(zhuǎn)換成整合服務(wù)器110可以識(shí)別的格 式,發(fā)送給整合服務(wù)器110。整合服務(wù)器110將該帳戶信息傳遞給運(yùn)行在其上的業(yè)務(wù)流程。圖3示出了根據(jù)本發(fā)明另一實(shí)施例的記錄系統(tǒng)的流程圖。在步驟S310,接收一服 務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址可以為所述企業(yè)信息系統(tǒng)的地址。該服務(wù)請(qǐng)求可以是如 上文所述來(lái)自于基于Java的連接單元的服務(wù)請(qǐng)求。在步驟S320,記錄所述服務(wù)請(qǐng)求中到所 述企業(yè)信息系統(tǒng)的應(yīng)用程序接口(Application Programming Interface,簡(jiǎn)稱API)信息, 以便形成服務(wù)請(qǐng)求記錄。在步驟S330,響應(yīng)于所述服務(wù)請(qǐng)求,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的模 擬應(yīng)用程序接口,其中企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口調(diào)用所述 企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。其中,該企業(yè)信息系統(tǒng)是基于Java的。其 中,可以根據(jù)所述連接單元的應(yīng)用程序接口和所述企業(yè)信息系統(tǒng)的本地樁文件的應(yīng)用程序 接口之間的調(diào)用關(guān)系,響應(yīng)于所述服務(wù)請(qǐng)求而調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的模擬 應(yīng)用程序接口。所述企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口,通過(guò)Java 反射機(jī)制來(lái)調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。其中,可以分析用來(lái)連接企業(yè)信息系統(tǒng)的連接單元的連接器文件和所述企業(yè)信息 系統(tǒng)的本地Java樁文件之間的調(diào)用關(guān)系,以便自動(dòng)生成企業(yè)信息系統(tǒng)本地Java樁文件的 模擬應(yīng)用程序接口。這種情況下可以利用Java反射機(jī)制,使得所述企業(yè)信息系統(tǒng)本地Java 樁文件的所述模擬應(yīng)用程序接口,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。其中,所述企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口的類名、方法名、參數(shù)可以與所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的類名、方法名、參數(shù)相同。其中,所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口用于調(diào)用企業(yè)信息系 統(tǒng)的服務(wù)或功能模塊。所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口通過(guò)調(diào)用 所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口,來(lái)調(diào)用所述企業(yè)信息系統(tǒng)的的服務(wù) 或功能模塊。在步驟S340,接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的服 務(wù)響應(yīng)。所述服務(wù)響應(yīng)的源地址可以標(biāo)識(shí)為所述企業(yè)信息系統(tǒng)的地址。在步驟S350,記錄所述服務(wù)響應(yīng)中來(lái)自所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信息, 以便形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系。在步驟S360,發(fā)送所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息。其中,所述服務(wù)請(qǐng)求可 以來(lái)自一連接單元,并且可以將所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息作為企業(yè)信息系統(tǒng)本 地Java樁文件的模擬應(yīng)用程序接口的服務(wù)響應(yīng)信息發(fā)送給所述連接單元。本領(lǐng)域的技術(shù) 人員可以理解,上述步驟310至350可以構(gòu)成完整的記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù) 交互數(shù)據(jù)的方法。步驟360本身并非記錄方法所必需。在步驟350之后的發(fā)送過(guò)程,在實(shí) 際實(shí)施中完全可以采用不同的多種處理方法。例如,對(duì)響應(yīng)進(jìn)行適當(dāng)?shù)奶幚砗笤龠M(jìn)行發(fā)送。根據(jù)本發(fā)明上述實(shí)施例的方法,尤其適用于在運(yùn)營(yíng)環(huán)境中記錄企業(yè)信息系統(tǒng)的服 務(wù)交互數(shù)據(jù)。其中,保存記錄系統(tǒng)輸入輸出的代碼,可以用于接收來(lái)自連接單元的服務(wù)請(qǐng) 求,并記錄所述服務(wù)請(qǐng)求中的應(yīng)用程序接口信息,以便形成服務(wù)請(qǐng)求記錄。保存記錄系統(tǒng)輸 入輸出的代碼,還可以用于記錄所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息,以便形成服務(wù)響應(yīng) 記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系。圖4示出了根據(jù)本發(fā)明另一實(shí)施例的用于生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)的流 程圖。在步驟S410,獲取連接單元用來(lái)連接企業(yè)信息系統(tǒng)的基于Java的連接器文件,所述 連接器文件包括用于調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的連接器應(yīng)用程序接口。其中,該 企業(yè)信息系統(tǒng)是基于Java的。在步驟S420,獲取企業(yè)信息系統(tǒng)的本地Java樁文件。企業(yè)信息系統(tǒng)的本地Java 樁文件,用于定義調(diào)用企業(yè)信息系統(tǒng)的服務(wù)的方式、交互的數(shù)據(jù)類型等,通常是jar包形式 的一組java程序。在步驟S430,分析用來(lái)連接企業(yè)信息系統(tǒng)的連接器程序文件和企業(yè)信息系統(tǒng)的本 地Java樁文件之間的調(diào)用關(guān)系。例如,連接器程序文件調(diào)用了哪些企業(yè)信息系統(tǒng)本地Java 樁文件的應(yīng)用程序接口,以及如何調(diào)用的這些應(yīng)用程序接口。在步驟S440,根據(jù)所述調(diào)用關(guān)系,生成企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用 程序接口??梢酝ㄟ^(guò)生成類名、方法名、參數(shù)完全一樣的模擬應(yīng)用程序接口,來(lái)模擬被連接 器文件調(diào)用的企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。但是,模擬應(yīng)用程序接口功 能的程序算法實(shí)現(xiàn)與被模擬的應(yīng)用程序接口不一樣。換言之,模擬應(yīng)用程序接口包括應(yīng)用 程序接口的調(diào)用關(guān)系,但是不包括功能的程序算法實(shí)現(xiàn)。該模擬應(yīng)用程序接口功能的程序 算法實(shí)現(xiàn),將通過(guò)調(diào)用企業(yè)信息系統(tǒng)本地樁文件的應(yīng)用程序接口來(lái)完成。其中,可以分析用來(lái)連接企業(yè)信息系統(tǒng)的連接單元的連接器文件和所述企業(yè)信息 系統(tǒng)的本地Java樁文件之間的調(diào)用關(guān)系,以便自動(dòng)生成企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口。該自動(dòng)生成是指對(duì)于需要生成訪問(wèn)記錄的企業(yè)信息系統(tǒng),可以根據(jù)分析來(lái)自動(dòng)生成上述模擬應(yīng)用程序接口,以便自動(dòng)生成企業(yè)信息系統(tǒng)的訪問(wèn)記錄系統(tǒng)。這種 情況下可以利用Java反射機(jī)制,使得所述企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用 程序接口,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。其中,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,通過(guò)本領(lǐng)域熟知的Java反射機(jī)制來(lái)調(diào)用企 業(yè)信息系統(tǒng)本地Java樁文件應(yīng)用程序接口,可以進(jìn)一步包括通過(guò)Java Class Loader (如 當(dāng)前通用的Java類裝載器)來(lái)導(dǎo)入企業(yè)信息系統(tǒng)的本地Java樁文件;通過(guò)Java反射機(jī)制 來(lái)找到需要調(diào)用的類,并且實(shí)例化所述需要調(diào)用的類;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用 的類的方法;以及通過(guò)Java反射機(jī)制來(lái)調(diào)用所述需要調(diào)用的類的方法。例如,對(duì)于檢索帳戶的例子中,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,調(diào)用真實(shí)的企業(yè)信 息系統(tǒng)本地Java樁文件應(yīng)用程序接口。可以通過(guò)Java Class Loader來(lái)導(dǎo)入企業(yè)信息系 統(tǒng),如帳戶數(shù)據(jù)庫(kù)的本地Java樁文件。通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類,如檢索帳 戶信息相關(guān)的類,并且實(shí)例化這個(gè)類。通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類的方法,如 檢索帳戶信息需要的調(diào)用的方法名。然后,通過(guò)Java反射機(jī)制來(lái)調(diào)用這個(gè)方法,如檢索帳 戶信息的方法。在程序的運(yùn)行狀態(tài)中,Java反射機(jī)制可以通過(guò)一組API,取得任何一個(gè)已知名稱 的類的內(nèi)部信息,包括類的所有屬性和方法等。其中,可以通過(guò)Java Class Loader來(lái)導(dǎo)入企業(yè)信息系統(tǒng)的本地Java樁文件通常 是一組Java類,以及企業(yè)信息系統(tǒng)調(diào)用者連接器文件的Java程序。通過(guò)Java反射機(jī)制來(lái) 分析所述連接器文件的Java程序,來(lái)找到需要調(diào)用的企業(yè)信息系統(tǒng)的本地Java樁文件的 類,并且實(shí)例化所述需要調(diào)用的這個(gè)類。然后,通過(guò)Java反射機(jī)制分析調(diào)用者與被調(diào)用者, 從而確定兩者通過(guò)哪個(gè)Java類來(lái)交互,然后實(shí)例化這個(gè)用來(lái)交互的Java類。并且,通過(guò) Java反射機(jī)制來(lái)調(diào)用所述需要調(diào)用的類的方法。對(duì)Java方法的操作過(guò)程,和Java類很類 似??梢酝ㄟ^(guò)Java反射機(jī)制來(lái)分析企業(yè)信息系統(tǒng)調(diào)用者的Java程序,來(lái)找到需要調(diào)用的 企業(yè)信息系統(tǒng)的本地Java樁文件的類的方法,并且調(diào)用這個(gè)方法。根據(jù)本發(fā)明的進(jìn)一步實(shí)施例,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,可以調(diào)用企業(yè)信息 系統(tǒng)本地樁文件的應(yīng)用程序接口。并且,可以把企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序 接口的返回作為模擬應(yīng)用程序接口的返回。在步驟S450,插入用于保存記錄系統(tǒng)的輸入輸出的代碼,并生成完整的記錄系統(tǒng)。 在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,調(diào)用企業(yè)信息系統(tǒng)本地樁文件應(yīng)用程序接口。因此,可以把 企業(yè)信息系統(tǒng)本地樁文件應(yīng)用程序接口返回的服務(wù)響應(yīng)信息數(shù)據(jù),作為模擬應(yīng)用程序接口 的返回?cái)?shù)據(jù)。保存記錄系統(tǒng)輸入輸出的代碼,可以用于接收來(lái)自連接單元的服務(wù)請(qǐng)求,并記 錄所述服務(wù)請(qǐng)求中的應(yīng)用程序接口信息,以便形成服務(wù)請(qǐng)求記錄。保存記錄系統(tǒng)輸入輸出 的代碼,還可以用于記錄所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息,以便形成服務(wù)響應(yīng)記錄,并 將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系。本領(lǐng)域的技術(shù)人員可以理解,上述生成的企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng),也可以實(shí) 現(xiàn)為記錄系統(tǒng)程序。相應(yīng)地,上述方法可以實(shí)現(xiàn)為生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)程序的 方法。圖5示出了根據(jù)本發(fā)明一實(shí)施例的記錄系統(tǒng)方框圖。其中示出了一種記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的系統(tǒng)500。該系統(tǒng)500包括以下多個(gè)裝置。服務(wù) 請(qǐng)求接收裝置510,用于接收一服務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址為所述企業(yè)信息系統(tǒng)的 地址。服務(wù)請(qǐng)求記錄裝置520,用于記錄所述服務(wù)請(qǐng)求中到所述企業(yè)信息系統(tǒng)的應(yīng)用程序 接口信息,以便形成服務(wù)請(qǐng)求記錄。模擬應(yīng)用程序接口調(diào)用裝置530,其響應(yīng)于所述服務(wù)請(qǐng) 求,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口,其中企業(yè)信息系統(tǒng)本地 Java樁文件的所述模擬應(yīng)用程序接口調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序 接口。服務(wù)響應(yīng)接收裝置540,用于接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程 序接口的服務(wù)響應(yīng)。服務(wù)響應(yīng)記錄裝置550,用于記錄所述服務(wù)響應(yīng)中來(lái)自所述企業(yè)信息系 統(tǒng)的應(yīng)用程序接口信息,以便形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求 記錄相聯(lián)系。服務(wù)響應(yīng)發(fā)送裝置560,用于發(fā)送所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息。其中,所述服務(wù)請(qǐng)求可以來(lái)自一基于Java的連接單元,并且服務(wù)響應(yīng)發(fā)送裝置 560可以進(jìn)一步配置為,將所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息作為企業(yè)信息系統(tǒng)本地 Java樁文件的模擬應(yīng)用程序接口的服務(wù)響應(yīng)信息發(fā)送給所述連接單元。其中,模擬應(yīng)用程序接口調(diào)用裝置530可以進(jìn)一步配置為,根據(jù)所述連接單元的 應(yīng)用程序接口和所述企業(yè)信息系統(tǒng)的本地樁文件的應(yīng)用程序接口之間的調(diào)用關(guān)系,響應(yīng)于 所述服務(wù)請(qǐng)求而調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口;其中,所述企業(yè) 信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口,通過(guò)Java反射機(jī)制來(lái)調(diào)用所述企業(yè) 信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。其中,所述企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口的類名、方法 名、參數(shù)可以與所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的類名、方法名、參數(shù) 相同。其中,所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口可以用于調(diào)用企業(yè)信 息系統(tǒng)的服務(wù)或功能模塊;所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口可以 通過(guò)調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口,來(lái)調(diào)用所述企業(yè)信息系統(tǒng) 的的服務(wù)或功能模塊。圖6示出了根據(jù)本發(fā)明一實(shí)施例的記錄系統(tǒng)的生成系統(tǒng)的方框圖。其中示出了一 種生成系統(tǒng)600,用于生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)。該系統(tǒng)600包括以下多個(gè)裝置。連 接器文件獲取裝置610,用于獲取連接單元用來(lái)連接企業(yè)信息系統(tǒng)的基于Java的連接器文 件,所述連接器文件包括用于調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的連接器應(yīng)用程序接口 ; 樁文件獲取裝置620,用于獲取所述企業(yè)信息系統(tǒng)的本地Java樁文件。分析裝置630,用于 分析用來(lái)連接企業(yè)信息系統(tǒng)的連接器文件和所述企業(yè)信息系統(tǒng)的本地Java樁文件之間的 調(diào)用關(guān)系。模擬應(yīng)用程序接口生成裝置640,用于根據(jù)所述調(diào)用關(guān)系,生成企業(yè)信息系統(tǒng)本 地Java樁文件的模擬應(yīng)用程序接口。以及,輸入輸出代碼插入裝置650,用于插入保存訪問(wèn) 記錄的輸入輸出代碼。其中,模擬應(yīng)用程序接口生成裝置640可以進(jìn)一步配置為,使用與企業(yè)信息系統(tǒng) 本地Java樁文件的應(yīng)用程序接口相同的類名、方法名和參數(shù),來(lái)自動(dòng)生成的企業(yè)信息系統(tǒng) 本地Java樁文件的模擬應(yīng)用程序接口。其中,模擬應(yīng)用程序接口生成裝置還可以進(jìn)一步配置為,在所述模擬應(yīng)用程序接 口的實(shí)現(xiàn)中,通過(guò)Java反射機(jī)制來(lái)調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口 ;并且把企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的返回作為模擬應(yīng)用程序接口的返回。其中,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,通過(guò)Java反射機(jī)制來(lái)調(diào)用企業(yè)信息系統(tǒng)本 地Java樁文件應(yīng)用程序接口,可以進(jìn)一步包括通過(guò)Java Class Loader來(lái)導(dǎo)入企業(yè)信息 系統(tǒng)的本地Java樁文件;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類,并且實(shí)例化所述需要調(diào) 用的類;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類的方法;以及通過(guò)Java反射機(jī)制來(lái)調(diào)用 所述需要調(diào)用的類的方法。
根據(jù)本發(fā)明的一實(shí)施例,根據(jù)企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的記錄可以生成,可 以生成企業(yè)信息系統(tǒng)模擬器。企業(yè)信息系統(tǒng)記錄系統(tǒng)與模擬器的方法可以在面向服務(wù)的整合項(xiàng)目的開(kāi)發(fā),測(cè)試 和維護(hù)中使用。根據(jù)本發(fā)明的一實(shí)施例對(duì)與企業(yè)信息系統(tǒng)相關(guān)的模擬方法進(jìn)行了改進(jìn)。下 文描述了使用的基本流程。第一步,使用一種生成系統(tǒng),用于生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)。例如,可以生 成特定的企業(yè)信息系統(tǒng)記錄系統(tǒng)程序。生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)的生成系統(tǒng),可以 是基于Java的工具,它針對(duì)連接單元和企業(yè)信息系統(tǒng)本地Java樁文件作靜態(tài)分析。舉例 來(lái)說(shuō),如果使用一JCA SAP資源適配器作為連接單元,連接到作為企業(yè)信息系統(tǒng)的一SAP R3 系統(tǒng)??梢允褂迷撨B接單元的本地Java樁文件和SAP R3系統(tǒng)本地Java樁文件作為輸入, 使用生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)程序的方法,生成特定的SAP R3系統(tǒng)的記錄系統(tǒng)。第二步,使用生成的SAP R3系統(tǒng)的記錄系統(tǒng),利用記錄基于Java的企業(yè)信息系統(tǒng) 的服務(wù)交互數(shù)據(jù)的方法,記錄SAP R3系統(tǒng)的服務(wù)交互數(shù)據(jù)。記錄系統(tǒng)在運(yùn)行時(shí),截獲連接 單元與企業(yè)信息系統(tǒng)本地包之間的API請(qǐng)求,并轉(zhuǎn)發(fā)請(qǐng)求到真實(shí)的企業(yè)信息系統(tǒng),轉(zhuǎn)發(fā)響 應(yīng)到相應(yīng)的連接單元。在這個(gè)過(guò)程中,記錄系統(tǒng)將記錄所有的輸入輸出信息。在請(qǐng)求完成 后,記錄系統(tǒng)基于保存下來(lái)的信息,生成特定的模擬器。這個(gè)模擬器可以模擬所記錄下來(lái)的 企業(yè)信息系統(tǒng)對(duì)于特定請(qǐng)求的響應(yīng)。例如,收到已知的一請(qǐng)求,使用記錄下來(lái)的特定響應(yīng)進(jìn) 行回應(yīng)。第三步,第二步生成的模擬器,可以在項(xiàng)目的開(kāi)發(fā)和維護(hù)階段使用。它能真實(shí)地模 擬企業(yè)信息系統(tǒng)對(duì)于特定請(qǐng)求的響應(yīng)。比如模擬SAP R3系統(tǒng),響應(yīng)對(duì)帳戶業(yè)務(wù)數(shù)據(jù)的檢索。例如,一個(gè)企業(yè)打算基于企業(yè)服務(wù)總線來(lái)實(shí)現(xiàn)一個(gè)帳戶管理系統(tǒng)。這個(gè)管理系統(tǒng) 中,需要一個(gè)創(chuàng)建帳戶的業(yè)務(wù)流程,需要和SAP S3系統(tǒng)交互。但由于SAP S3系統(tǒng)是企業(yè)的 核心系統(tǒng),所以在項(xiàng)目開(kāi)發(fā)過(guò)程中,不能長(zhǎng)時(shí)間的連接這個(gè)系統(tǒng),僅僅能夠利用系統(tǒng)維護(hù)的 一個(gè)小時(shí)時(shí)間內(nèi)做一些工作。遇到這種情況,已有技術(shù)通常的解決方法是搭建一個(gè)新的類 似的SAP S3系統(tǒng)作為開(kāi)發(fā)使用,但需要花費(fèi)大量的人力物力。在這種情況下,根據(jù)本發(fā)明 一實(shí)施例的方案是使用企業(yè)信息系統(tǒng)記錄系統(tǒng)與模擬器。根據(jù)上述的三個(gè)步驟,可以利用 一個(gè)小時(shí)的系統(tǒng)維護(hù)時(shí)間,創(chuàng)建SAP R3系統(tǒng)的模擬器。這個(gè)模擬器完全的模擬了 SAP S3 系統(tǒng)在創(chuàng)建帳戶過(guò)程中的行為。在項(xiàng)目開(kāi)發(fā)過(guò)程中,可以使用這個(gè)模擬器去整合整個(gè)業(yè)務(wù) 流程,而不需要真正的連接SAPR3系統(tǒng)。以后,當(dāng)項(xiàng)目上線運(yùn)行以后,如果管理員發(fā)現(xiàn),在一些特殊情況下,創(chuàng)建帳戶的業(yè) 務(wù)流程出現(xiàn)了一些問(wèn)題不能正常完成。管理員先把日志文件傳給技術(shù)支持部門(mén)。技術(shù)支持 部門(mén)分析了日志,發(fā)現(xiàn)這個(gè)問(wèn)題比較復(fù)雜,需要重現(xiàn)一下去定位錯(cuò)誤的來(lái)源。在這個(gè)情況 下,技術(shù)支持部門(mén)發(fā)現(xiàn)重現(xiàn)這個(gè)問(wèn)題非常困難,因?yàn)橛脩舻腟AP R3系統(tǒng)相當(dāng)復(fù)雜。
在這種情況下,根據(jù)本發(fā)明一實(shí)施例的企業(yè)信息系統(tǒng)記錄系統(tǒng)與模擬器方案,可 以發(fā)揮很大的作用。技術(shù)支持部門(mén)可以把“SAP R3系統(tǒng)記錄系統(tǒng)”發(fā)送給管理員,并要求管 理員使用記錄系統(tǒng),重新運(yùn)行一下這個(gè)業(yè)務(wù)流程。當(dāng)流程結(jié)束以后,記錄系統(tǒng)會(huì)記錄SAP R3 系統(tǒng)的服務(wù)交互數(shù)據(jù)。根據(jù)服務(wù)交互數(shù)據(jù),可以生成SAP R3系統(tǒng)的模擬器。這個(gè)模擬器記 錄了在這個(gè)錯(cuò)誤業(yè)務(wù)流程中,SAP R3系統(tǒng)的所有行為。當(dāng)管理員將這個(gè)模擬器傳給技術(shù)支 持部門(mén)后,技術(shù)支持部門(mén)就可以確切的重現(xiàn)這個(gè)問(wèn)題,從而節(jié)省了大量的時(shí)間。根據(jù)本發(fā)明的一實(shí)施例,整合服務(wù)器可以是WebSphere ProcessServer, WebSphere Enterprise Service Bus、 WebSphere Message Broker、 WebSphere Application Server 等等。連接單7Π可以是 Web Service, JavaMessage Service, JCA 配器等等。模擬器可以用于模擬基于Java的企業(yè)信息系統(tǒng),例如SAP R3系統(tǒng),BAPI接口, CUSTOMER 業(yè)務(wù)組件的相關(guān)操作;或 Siebel,v7. 8 系統(tǒng),Business Ob ject 接口,Account 業(yè) 務(wù)組件的相關(guān)操作。這樣,在以后的項(xiàng)目開(kāi)發(fā)和測(cè)試中,企業(yè)信息系統(tǒng)模擬器就可以用來(lái)替 代并模擬真實(shí)的企業(yè)信息系統(tǒng)的行為,從而加快項(xiàng)目的進(jìn)程并節(jié)省資源。在項(xiàng)目的維護(hù)中, 當(dāng)用戶發(fā)現(xiàn)整合系統(tǒng)的問(wèn)題時(shí),也可以使用企業(yè)信息系統(tǒng)記錄系統(tǒng)創(chuàng)建特定的企業(yè)信息系 統(tǒng)模擬器并發(fā)送給技術(shù)支持部門(mén)。技術(shù)支持部門(mén)使用模擬器就可以非??焖俑咝У闹噩F(xiàn)這 個(gè)問(wèn)題。根據(jù)本發(fā)明實(shí)施例的企業(yè)信息系統(tǒng)記錄系統(tǒng)與模擬器方法,并不模擬整個(gè)復(fù)雜的企業(yè)信息系統(tǒng),而是記錄和模擬連接單元與企業(yè)信息系統(tǒng)之間的一系列的特定交互,即請(qǐng) 求與響應(yīng)。企業(yè)信息系統(tǒng)模擬器不依賴于特定的整合服務(wù)器,所以可以保存在模擬器庫(kù)中, 被其他的整合項(xiàng)目重復(fù)使用。本發(fā)明還提供了一種存儲(chǔ)介質(zhì)或信號(hào)載體,其中包括用于執(zhí)行根據(jù)本發(fā)明的方法的指令。附圖中的流程圖和框圖,圖示了按照本發(fā)明實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn) 品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一 個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于 實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注 的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可 以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意 的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí) 行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令 的組合來(lái)實(shí)現(xiàn)。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。 因此,本發(fā)明可以具體實(shí)現(xiàn)為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐 留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統(tǒng)”的軟件部分與硬件部分的 組合。此外,本發(fā)明還可以采取體現(xiàn)在任何有形的表達(dá)介質(zhì)(medium of expression)中的 計(jì)算機(jī)程序產(chǎn)品的形式,該介質(zhì)中包含計(jì)算機(jī)可用的程序碼??梢允褂靡粋€(gè)或多個(gè)計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)的任何組合。計(jì)算機(jī)可 用的或計(jì)算機(jī)可讀的介質(zhì)例如可以是——但不限于——電的、磁的、光的、電磁的、紅外線 的、或半導(dǎo)體的系統(tǒng)、裝置、器件或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更具體的例子(非窮舉的列表)包括以下有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁 盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、諸如支持因特網(wǎng)或內(nèi)部網(wǎng)的傳輸介質(zhì)、或者磁存儲(chǔ)器 件。注意計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)甚至可以是上面印有程序的紙張或者其它合適 的介質(zhì),這是因?yàn)?,例如可以通過(guò)電掃描這種紙張或其它介質(zhì),以電子方式獲得程序,然后 以適當(dāng)?shù)姆绞郊右跃幾g、解釋或處理,并且必要的話在計(jì)算機(jī)存儲(chǔ)器中存儲(chǔ)。在本文件的語(yǔ) 境中,計(jì)算機(jī)可用的或計(jì)算機(jī)可讀的介質(zhì)可以是任何含有、存儲(chǔ)、傳達(dá)、傳播、或傳輸供指令 執(zhí)行系統(tǒng)、裝置或器件使用的或與指令執(zhí)行系統(tǒng)、裝置或器件相聯(lián)系的程序的介質(zhì)。計(jì)算機(jī) 可用的介質(zhì)可包括在基帶中或者作為載波一部分傳播的、由其體現(xiàn)計(jì)算機(jī)可用的程序碼的 數(shù)據(jù)信號(hào)。計(jì)算機(jī)可用的程序碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無(wú)線、 電線、光纜、RF等等。用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序碼,可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任何組合來(lái)編寫(xiě),所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言——諸如Java、Smalltalk, C++之類,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言——諸如” C”程序設(shè)計(jì)語(yǔ)言或類似的程序設(shè)計(jì) 語(yǔ)言。程序碼可以完全地在用戶的計(jì)算上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú) 立的軟件包執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算 機(jī)或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任何種類的網(wǎng)絡(luò)——包括局域 網(wǎng)(LAN)或廣域網(wǎng)(WAN)——連接到用戶的計(jì)算機(jī),或者,可以(例如利用因特網(wǎng)服務(wù)提供 商來(lái)通過(guò)因特網(wǎng))連接到外部計(jì)算機(jī)。以上結(jié)合優(yōu)選法方案對(duì)本發(fā)明進(jìn)行了詳細(xì)的描述,但是可以理解,以上實(shí)施例僅 用于說(shuō)明而非限定本發(fā)明。本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明的所示方案進(jìn)行修改而不脫離 本發(fā)明的范圍和精神。
權(quán)利要求
一種記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的方法,包括接收一服務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址為所述企業(yè)信息系統(tǒng)的地址;記錄所述服務(wù)請(qǐng)求中到所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信息,以便形成服務(wù)請(qǐng)求記錄;響應(yīng)于所述服務(wù)請(qǐng)求,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口,其中企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口;以及接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的服務(wù)響應(yīng);記錄所述服務(wù)響應(yīng)中來(lái)自所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信息,以便形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系。
2.根據(jù)權(quán)利要求1所述的方法,其中進(jìn)一步包括發(fā)送所述服務(wù)響應(yīng)中的應(yīng)用程序接口 信息;其中,所述服務(wù)請(qǐng)求來(lái)自一基于Java的連接單元,所述方法進(jìn)一步包括將所述服務(wù) 響應(yīng)中的應(yīng)用程序接口信息作為企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口的服 務(wù)響應(yīng)信息發(fā)送給所述連接單元。
3.根據(jù)權(quán)利要求2所述的方法,其中,根據(jù)所述連接單元的應(yīng)用程序接口和所述企業(yè) 信息系統(tǒng)的本地樁文件的應(yīng)用程序接口之間的調(diào)用關(guān)系,響應(yīng)于所述服務(wù)請(qǐng)求而調(diào)用企業(yè) 信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口。
4.根據(jù)權(quán)利要求2所述的方法,其中進(jìn)一步包括分析用來(lái)連接所述企業(yè)信息系統(tǒng)的 連接單元的連接器文件和所述企業(yè)信息系統(tǒng)的本地Java樁文件之間的調(diào)用關(guān)系,以便自 動(dòng)生成所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口 ;其中,利用Java反射機(jī) 制,使得所述企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口,調(diào)用所述企業(yè)信息 系統(tǒng)本地Java樁文件的應(yīng)用程序接口。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述企業(yè)信息系統(tǒng)本地Java樁文 件的所述模擬應(yīng)用程序接口的類名、方法名、參數(shù)與所述企業(yè)信息系統(tǒng)本地Java樁文件的 應(yīng)用程序接口的類名、方法名、參數(shù)相同。
6.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述企業(yè)信息系統(tǒng)本地Java樁 文件的應(yīng)用程序接口用于調(diào)用企業(yè)信息系統(tǒng)的服務(wù)或功能模塊;所述企業(yè)信息系統(tǒng)本地 Java樁文件的模擬應(yīng)用程序接口通過(guò)調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序 接口,來(lái)調(diào)用所述企業(yè)信息系統(tǒng)的服務(wù)或功能模塊。
7.一種生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng)的方法,包括獲取連接單元用來(lái)連接企業(yè)信息系統(tǒng)的基于Java的連接器文件,所述連接器文件包 括用于調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的連接器應(yīng)用程序接口 ;獲取所述企業(yè)信息系統(tǒng)的本地Java樁文件;分析用來(lái)連接企業(yè)信息系統(tǒng)的連接器文件和所述企業(yè)信息系統(tǒng)的本地Java樁文件之 間的調(diào)用關(guān)系;根據(jù)所述調(diào)用關(guān)系,生成企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口 ;以及插入用于保存記錄系統(tǒng)的輸入輸出的代碼。
8.根據(jù)權(quán)利要求7所述的方法,其中,使用與企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程 序接口相同的類名、方法名和參數(shù),來(lái)自動(dòng)生成的企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口。
9.根據(jù)權(quán)利要求7所述的方法,其中,在所述模擬應(yīng)用程序接口的實(shí)現(xiàn)中,調(diào)用企業(yè)信 息系統(tǒng)本地樁文件的應(yīng)用程序接口 ;把企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的 返回作為模擬應(yīng)用程序接口的返回。
10.根據(jù)權(quán)利要求7或8所述的方法,其中,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,通過(guò)Java 反射機(jī)制來(lái)調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件應(yīng)用程序接口。
11.根據(jù)權(quán)利要求10所述的方法,其中,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,通過(guò)Java反射 機(jī)制來(lái)調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件應(yīng)用程序接口,進(jìn)一步包括通過(guò)Java Class Loader來(lái)導(dǎo)入企業(yè)信息系統(tǒng)的本地Java樁文件;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類,并且實(shí)例化所述需要調(diào)用的類;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類的方法;以及通過(guò)Java反射機(jī)制來(lái)調(diào)用所述需要調(diào)用的類的方法。
12.—種記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的系統(tǒng),包括服務(wù)請(qǐng)求接收裝置,用于接收一服務(wù)請(qǐng)求,所述服務(wù)請(qǐng)求的目的地址為所述企業(yè)信息 系統(tǒng)的地址;服務(wù)請(qǐng)求記錄裝置,用于記錄所述服務(wù)請(qǐng)求中到所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信 息,以便形成服務(wù)請(qǐng)求記錄;模擬應(yīng)用程序接口調(diào)用裝置,其響應(yīng)于所述服務(wù)請(qǐng)求,調(diào)用所述企業(yè)信息系統(tǒng)本地 Java樁文件的模擬應(yīng)用程序接口,其中企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程 序接口調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口 ;服務(wù)響應(yīng)接收裝置,用于接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接 口的服務(wù)響應(yīng);服務(wù)響應(yīng)記錄裝置,用于記錄所述服務(wù)響應(yīng)中來(lái)自所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口 信息,以便形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系;以及服務(wù)響應(yīng)發(fā)送裝置,用于發(fā)送所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述服務(wù)請(qǐng)求來(lái)自一基于Java的連接單元,并 且服務(wù)響應(yīng)發(fā)送裝置進(jìn)一步配置為,將所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息作為企業(yè)信息 系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口的服務(wù)響應(yīng)信息發(fā)送給所述連接單元。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,模擬應(yīng)用程序接口調(diào)用裝置進(jìn)一步配置為,根 據(jù)所述連接單元的應(yīng)用程序接口和所述企業(yè)信息系統(tǒng)的本地樁文件的應(yīng)用程序接口之間 的調(diào)用關(guān)系,響應(yīng)于所述服務(wù)請(qǐng)求而調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序 接口;其中,所述企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口,通過(guò)Java反射 機(jī)制來(lái)調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。
15.根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的系統(tǒng),其中,所述企業(yè)信息系統(tǒng)本地Java樁 文件的所述模擬應(yīng)用程序接口的類名、方法名、參數(shù)與所述企業(yè)信息系統(tǒng)本地Java樁文件 的應(yīng)用程序接口的類名、方法名、參數(shù)相同。
16.根據(jù)權(quán)利要求12至14中任一項(xiàng)所述的系統(tǒng),其中,所述企業(yè)信息系統(tǒng)本地Java 樁文件的應(yīng)用程序接口用于調(diào)用企業(yè)信息系統(tǒng)的服務(wù)或功能模塊;所述企業(yè)信息系統(tǒng)本地 Java樁文件的模擬應(yīng)用程序接口通過(guò)調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口,來(lái)調(diào)用所述企業(yè)信息系統(tǒng)的服務(wù)或功能模塊。
17.一種生成系統(tǒng),用于生成企業(yè)信息系統(tǒng)訪問(wèn)記錄系統(tǒng),包括連接器文件獲取裝置,用于獲取連接單元用來(lái)連接企業(yè)信息系統(tǒng)的基于Java的連接 器文件,所述連接器文件包括用于調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件的連接器應(yīng)用程序 接口 ;樁文件獲取裝置,用于獲取所述企業(yè)信息系統(tǒng)的本地Java樁文件;分析裝置,用于分析用來(lái)連接企業(yè)信息系統(tǒng)的連接器文件和所述企業(yè)信息系統(tǒng)的本地 Java樁文件之間的調(diào)用關(guān)系;模擬應(yīng)用程序接口生成裝置,用于根據(jù)所述調(diào)用關(guān)系,生成企業(yè)信息系統(tǒng)本地Java樁 文件的模擬應(yīng)用程序接口 ;以及輸入輸出代碼插入裝置,用于插入保存訪問(wèn)記錄的輸入輸出代碼。
18.根據(jù)權(quán)利要求17所述的生成系統(tǒng),其中,模擬應(yīng)用程序接口生成裝置進(jìn)一步配置 為,使用與企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口相同的類名、方法名和參數(shù),來(lái) 自動(dòng)生成的企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口。
19.根據(jù)權(quán)利要求17或18所述的生成系統(tǒng),其中,模擬應(yīng)用程序接口生成裝置進(jìn)一步 配置為,在所述模擬應(yīng)用程序接口的實(shí)現(xiàn)中,通過(guò)Java反射機(jī)制來(lái)調(diào)用企業(yè)信息系統(tǒng)本地 Java樁文件的應(yīng)用程序接口 ;并且把企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的返 回作為模擬應(yīng)用程序接口的返回。
20.根據(jù)權(quán)利要求19所述的生成系統(tǒng),其中,在模擬應(yīng)用程序接口的實(shí)現(xiàn)中,通過(guò)Java 反射機(jī)制來(lái)調(diào)用企業(yè)信息系統(tǒng)本地Java樁文件應(yīng)用程序接口,進(jìn)一步包括通過(guò)Java Class Loader來(lái)導(dǎo)入企業(yè)信息系統(tǒng)的本地Java樁文件;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類,并且實(shí)例化所述需要調(diào)用的類;通過(guò)Java反射機(jī)制來(lái)找到需要調(diào)用的類的方法;以及通過(guò)Java反射機(jī)制來(lái)調(diào)用所述需要調(diào)用的類的方法。
全文摘要
本發(fā)明提供了一種記錄基于Java的企業(yè)信息系統(tǒng)的服務(wù)交互數(shù)據(jù)的方法和系統(tǒng)。該方法包括以下步驟。接收一服務(wù)請(qǐng)求。記錄所述服務(wù)請(qǐng)求中到所述企業(yè)信息系統(tǒng)的應(yīng)用程序接口信息,以便形成服務(wù)請(qǐng)求記錄。響應(yīng)于所述服務(wù)請(qǐng)求,調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的模擬應(yīng)用程序接口,其中企業(yè)信息系統(tǒng)本地Java樁文件的所述模擬應(yīng)用程序接口調(diào)用所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口。接收來(lái)自所述企業(yè)信息系統(tǒng)本地Java樁文件的應(yīng)用程序接口的服務(wù)響應(yīng)。形成服務(wù)響應(yīng)記錄,并將所述服務(wù)響應(yīng)記錄與所述服務(wù)請(qǐng)求記錄相聯(lián)系。以及,發(fā)送所述服務(wù)響應(yīng)中的應(yīng)用程序接口信息。
文檔編號(hào)G06F11/36GK101819551SQ200910126109
公開(kāi)日2010年9月1日 申請(qǐng)日期2009年2月27日 優(yōu)先權(quán)日2009年2月27日
發(fā)明者金千里 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司