一種服務(wù)連接系統(tǒng)及其設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)通信領(lǐng)域,更具體地說,涉及一種實(shí)現(xiàn)服務(wù)接口間通信的快速應(yīng)用的系統(tǒng)和設(shè)計(jì)方法,并能夠?qū)浖?wù)間的調(diào)用進(jìn)行監(jiān)控及故障恢復(fù)。
【背景技術(shù)】
[0002]目前軟件系統(tǒng)內(nèi)部及軟件系統(tǒng)間的相互通信,軟件服務(wù)的請(qǐng)求方或多或少都會(huì)耦合服務(wù)方的代碼,服務(wù)方代碼重構(gòu)或升級(jí)會(huì)使得請(qǐng)求方也必須要做相應(yīng)的升級(jí)才能正常使用;且軟件系統(tǒng)需要做重新部署;導(dǎo)致工作量大、實(shí)施起來困難、又無法監(jiān)控服務(wù)的調(diào)用狀
??τ ο
[0003]并且,以往由于軟件服務(wù)間總是有著相互依賴性,部署一個(gè)簡(jiǎn)單的軟件服務(wù)模塊,基本需要部署其他大部分或者所有關(guān)聯(lián)的軟件服務(wù),系統(tǒng)才能正常運(yùn)行,無法實(shí)施單獨(dú)部署;且軟件服務(wù)在不同的軟件模塊中也總是有著驚人的共性,但有無非單獨(dú)提取出來使用;開發(fā)人員需要進(jìn)行重復(fù)的編碼工作才能完成相關(guān)功能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述軟件服務(wù)方代碼重構(gòu)或升級(jí)會(huì)使得請(qǐng)求方也必須要做相應(yīng)的升級(jí)才能正常使用以及軟件服務(wù)中的軟件模塊無法單獨(dú)提取出來的使用的缺陷,提供一種服務(wù)連接系統(tǒng)及其設(shè)計(jì)方法。
[0005]本發(fā)明解決其技術(shù)問題,所采用的技術(shù)方案是提供了一種服務(wù)連接系統(tǒng),包含:
[0006]服務(wù)庫,用于注冊(cè)和存儲(chǔ)服務(wù);
[0007]服務(wù)調(diào)用單元,用于根據(jù)請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求從服務(wù)方調(diào)用業(yè)務(wù)功能;
[0008]格式轉(zhuǎn)換單元,用于將調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換為WS格式的服務(wù)以及用于將根據(jù)調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換而來的服務(wù)和存儲(chǔ)于服務(wù)庫的服務(wù)轉(zhuǎn)換為EJB格式;
[0009]通用調(diào)用接口單元,用于接收請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求,根據(jù)服務(wù)請(qǐng)求中包含的服務(wù)標(biāo)識(shí)調(diào)用WS格式的服務(wù)以實(shí)現(xiàn)服務(wù)和業(yè)務(wù)之間的通信,以及用于根據(jù)服務(wù)請(qǐng)求中包含的服務(wù)標(biāo)識(shí)調(diào)用EJB格式的服務(wù)實(shí)現(xiàn)服務(wù)之間的數(shù)據(jù)通信,以根據(jù)服務(wù)請(qǐng)求中包含的請(qǐng)求數(shù)據(jù)和指定返回的請(qǐng)求數(shù)據(jù)的格式給請(qǐng)求方返回?cái)?shù)據(jù),該指定返回的請(qǐng)求數(shù)據(jù)的格式為請(qǐng)求方工作的格式類型或者為Json格式類型。
[0010]在本發(fā)明的服務(wù)連接系統(tǒng)中,格式轉(zhuǎn)換單元還用于將與服務(wù)連接系統(tǒng)工作于同一系統(tǒng)內(nèi)的業(yè)務(wù)功能轉(zhuǎn)換為特殊格式的服務(wù);通用調(diào)用接口單元還用于根據(jù)服務(wù)請(qǐng)求中包含的服務(wù)標(biāo)識(shí)調(diào)用特殊格式的服務(wù),以實(shí)現(xiàn)服務(wù)與本地業(yè)務(wù)之間的通信。
[0011]在本發(fā)明的服務(wù)連接系統(tǒng)中,服務(wù)庫包含:服務(wù)注冊(cè)模塊,用于用戶進(jìn)行服務(wù)的注冊(cè)并將注冊(cè)的服務(wù)進(jìn)行保存;服務(wù)查詢模塊,用于從服務(wù)庫中查詢被調(diào)用的服務(wù);服務(wù)裝載模塊,用于啟動(dòng)服務(wù)庫中被調(diào)用的服務(wù);服務(wù)目錄管理模塊,用于對(duì)服務(wù)的目錄進(jìn)行管理;服務(wù)元素導(dǎo)入導(dǎo)出模塊,用于將服務(wù)進(jìn)行導(dǎo)入或者導(dǎo)出。
[0012]在本發(fā)明的服務(wù)連接系統(tǒng)中,格式轉(zhuǎn)換單元包含:WS格式轉(zhuǎn)換模塊,用于將調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換為WS格式的服務(wù);EJB格式轉(zhuǎn)換模塊,用于將獲取到的服務(wù)和存儲(chǔ)于服務(wù)庫的服務(wù)轉(zhuǎn)換為EJB格式;特殊格式轉(zhuǎn)換模塊,用于將與服務(wù)連接系統(tǒng)工作于同一系統(tǒng)內(nèi)的業(yè)務(wù)功能轉(zhuǎn)換為特殊格式的服務(wù)。
[0013]在本發(fā)明的服務(wù)連接系統(tǒng)中,服務(wù)連接系統(tǒng)還可以與與本地的業(yè)務(wù)單元聯(lián)合進(jìn)行工作。
[0014]在本發(fā)明的服務(wù)連接系統(tǒng)中,服務(wù)調(diào)用單元包含:WS服務(wù)調(diào)用模塊,用于根據(jù)請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求直接或者采用動(dòng)態(tài)代理的方式從服務(wù)方調(diào)用業(yè)務(wù)功能,并傳送給WS格式轉(zhuǎn)換模塊;EJB服務(wù)調(diào)用模塊,用于根據(jù)請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求直接或者采用動(dòng)態(tài)代理的方式從服務(wù)方調(diào)用業(yè)務(wù)功能,并傳送給EJB格式轉(zhuǎn)換模塊。
[0015]在本發(fā)明的服務(wù)連接系統(tǒng)中,還包括日志組件單元,用于利用日志對(duì)服務(wù)連接系統(tǒng)的工作進(jìn)行記錄,并提供給用戶進(jìn)行日志查看、日志導(dǎo)出與備份以及日志的模塊進(jìn)行管理的功能。
[0016]在本發(fā)明的服務(wù)連接系統(tǒng)中,通用調(diào)用接口單元包含:查找服務(wù)模塊,用于根據(jù)服務(wù)請(qǐng)求中的服務(wù)標(biāo)識(shí)查找服務(wù);地址獲取模塊,用于服務(wù)請(qǐng)求的服務(wù)標(biāo)識(shí)對(duì)應(yīng)于服務(wù)方時(shí),獲取該服務(wù)方的地址并根據(jù)該地址從對(duì)應(yīng)的服務(wù)方調(diào)用業(yè)務(wù)功能;服務(wù)處理模塊用于根據(jù)調(diào)用的服務(wù)的服務(wù)方法和服務(wù)請(qǐng)求中包含的請(qǐng)求數(shù)據(jù),返回與服務(wù)請(qǐng)求中包含的數(shù)據(jù)指定返回的請(qǐng)求數(shù)據(jù)的格式相對(duì)應(yīng)的數(shù)據(jù)。
[0017]本發(fā)明為解決其技術(shù)問題,還提供了一種服務(wù)器連接系統(tǒng)的服務(wù)設(shè)計(jì)方法,包含下述步驟:
[0018]存儲(chǔ)服務(wù)至服務(wù)庫;
[0019]通用調(diào)用接口單元接收請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求,根據(jù)服務(wù)請(qǐng)求包含的服務(wù)標(biāo)識(shí)調(diào)用WS格式的服務(wù)和/或服務(wù)庫中的服務(wù)以實(shí)現(xiàn)服務(wù)和該服務(wù)對(duì)應(yīng)的業(yè)務(wù)共之間的通信,并調(diào)用EJB格式的服務(wù)以實(shí)現(xiàn)服務(wù)之間的數(shù)據(jù)通信,其中調(diào)用EJB格式的服務(wù)的步驟僅在需要進(jìn)行服務(wù)之間的通信時(shí)進(jìn)行,WS格式的服務(wù)為格式轉(zhuǎn)換單元基于調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換而來,EJB格式的服務(wù)為格式轉(zhuǎn)換單元基于根據(jù)調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換而來的服務(wù)和存儲(chǔ)于服務(wù)庫的服務(wù)轉(zhuǎn)換而來;
[0020]通用調(diào)用接口單元根據(jù)所調(diào)用的服務(wù)以及服務(wù)請(qǐng)求中包含的請(qǐng)求數(shù)據(jù)和指定返回的請(qǐng)求數(shù)據(jù)的格式給請(qǐng)求方返回?cái)?shù)據(jù)。
[0021]實(shí)施本發(fā)明的一種服務(wù)連接系統(tǒng)及其設(shè)計(jì)方法,具有以下有益效果:軟件服務(wù)的請(qǐng)求方無需耦合服務(wù)方的代碼,當(dāng)服務(wù)方代碼升級(jí)或者重構(gòu)時(shí),請(qǐng)求方無需進(jìn)行相應(yīng)的升級(jí),且各服務(wù)之間可以通信,開發(fā)人員無需進(jìn)行重復(fù)的面板工作才能完成相關(guān)功能。
【附圖說明】
[0022]下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中:
[0023]圖1是本發(fā)明的服務(wù)連接系統(tǒng)的優(yōu)選實(shí)施例的組成示意圖;
[0024]圖2是圖1中服務(wù)調(diào)用的一實(shí)施例的流程示意圖。
【具體實(shí)施方式】
[0025]為了對(duì)本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對(duì)照附圖詳細(xì)說明本發(fā)明的【具體實(shí)施方式】。
[0026]如圖1所示,其為本發(fā)明的服務(wù)連接系統(tǒng)的優(yōu)選實(shí)施例的組成示意圖。本發(fā)明的服務(wù)連接系統(tǒng)2工作于軟件服務(wù)的請(qǐng)求方3和服務(wù)方1之間,其至少包含:服務(wù)庫24、服務(wù)調(diào)用單元21、格式轉(zhuǎn)換單元22、通用調(diào)用接口單元23。本發(fā)明所述的服務(wù)是指應(yīng)用程序的不同功能單元。
[0027]服務(wù)庫24用于存儲(chǔ)服務(wù)。在本發(fā)明中,被調(diào)用的服務(wù)既可以來源于服務(wù)方(本實(shí)施例中優(yōu)選為南方企業(yè)信息集成平臺(tái)TBI1)的業(yè)務(wù)功能,也可以來源于本地的服務(wù)庫中存儲(chǔ)的服務(wù)。使用時(shí),用戶可以根據(jù)自身的使用需求,決定是否需要在服務(wù)庫24中進(jìn)行注冊(cè)服務(wù)和注冊(cè)哪些服務(wù),若注冊(cè),則服務(wù)庫24將接收到的服務(wù)進(jìn)行保存。
[0028]服務(wù)調(diào)用單元21用于根據(jù)請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求從服務(wù)方調(diào)用業(yè)務(wù)功能。在本發(fā)明中,請(qǐng)求方可以是指外部的應(yīng)用程序,也可以是指本地的業(yè)務(wù)單元3。該本地的業(yè)務(wù)單元3與服務(wù)連接系統(tǒng)聯(lián)合進(jìn)行工作,及與上述服務(wù)庫24、服務(wù)調(diào)用單元21、格式轉(zhuǎn)換單元22、通用調(diào)用接口單元23工作于同一生成系統(tǒng),即該服務(wù)連接器既可以為其所述的生成系統(tǒng)進(jìn)行工作,也可以為該生成系統(tǒng)的之外的應(yīng)用程序(請(qǐng)求方)工作。應(yīng)當(dāng)理解的是,外部的應(yīng)用程序也可以發(fā)送消息給本地的業(yè)務(wù)單元3以由所述業(yè)務(wù)單元3產(chǎn)生所述服務(wù)請(qǐng)求,或者直接發(fā)送服務(wù)請(qǐng)求給本地的業(yè)務(wù)單元,本地的業(yè)務(wù)單元3進(jìn)行轉(zhuǎn)發(fā)。
[0029]格式轉(zhuǎn)換單元22用于將調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換為WS(WebService,Web服務(wù)描述語言)格式的服務(wù)以及用于將根據(jù)調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換而來的服務(wù)(WS格式的服務(wù))和存儲(chǔ)于服務(wù)庫24的服務(wù)轉(zhuǎn)換為EJB格式。服務(wù)調(diào)用單元21從服務(wù)方1獲取到業(yè)務(wù)功能后,格式轉(zhuǎn)換單元用WS格式描述該業(yè)務(wù)功能,一般來說,該業(yè)務(wù)功能包含每個(gè)業(yè)務(wù)功能模塊分別描述為不同的服務(wù)。優(yōu)選的,存儲(chǔ)于服務(wù)庫24的服務(wù)也被WS格式所描述。因此,本發(fā)明的服務(wù)均可以看作是被WS格式所描述,服務(wù)之間通信采用EJB格式。
[0030]通用調(diào)用接口單元21用于接收請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求,根據(jù)服務(wù)請(qǐng)求中包含的服務(wù)標(biāo)識(shí)調(diào)用所述WS格式的服務(wù)和/或服務(wù)庫24中的服務(wù)以實(shí)現(xiàn)服務(wù)和該服務(wù)對(duì)應(yīng)的業(yè)務(wù)一一南方企業(yè)信息集成平臺(tái)TBI1之間的通信,以及用于根據(jù)服務(wù)請(qǐng)求中包含的服務(wù)標(biāo)識(shí)調(diào)用所述EJB格式的服務(wù)實(shí)現(xiàn)服務(wù)之間的數(shù)據(jù)通信,以根據(jù)服務(wù)請(qǐng)求中包含的請(qǐng)求數(shù)據(jù)和指定返回的請(qǐng)求數(shù)據(jù)的格式和被調(diào)用的服務(wù)給請(qǐng)求方返回?cái)?shù)據(jù),該指定返回的請(qǐng)求數(shù)據(jù)的格式為請(qǐng)求方工作的格式類型或者為Json格式類型。請(qǐng)求方發(fā)送的服務(wù)請(qǐng)求中包含服務(wù)標(biāo)識(shí)、請(qǐng)求數(shù)據(jù)以及返回類型。服務(wù)標(biāo)識(shí)代表的服務(wù)的唯一性,通過該服務(wù)標(biāo)識(shí),可以知道要調(diào)用的服務(wù)為哪個(gè)/些;請(qǐng)求數(shù)據(jù)為請(qǐng)求方想得到的數(shù)據(jù);返回類型為請(qǐng)求方想得到的請(qǐng)求數(shù)據(jù)的格式類型,該類型為請(qǐng)求方工作的所需的格式類型或者Json格式。在請(qǐng)求方未指定返回類型時(shí),可以直接返回Json格式。其中,Json(JavaScript Object Notat1n)是一種輕量級(jí)的數(shù)據(jù)交換格式,它采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣,這些特性使Json成為理想的數(shù)據(jù)交換語言,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成(網(wǎng)絡(luò)傳輸速率)。
[0031]關(guān)于該連接系統(tǒng),其主要的工作流程為:請(qǐng)求方發(fā)送服務(wù)請(qǐng)求,通用接口根據(jù)服務(wù)請(qǐng)求中的服務(wù)標(biāo)識(shí)調(diào)用與該服務(wù)標(biāo)識(shí)對(duì)應(yīng)的一個(gè)或者多個(gè)服務(wù)標(biāo)識(shí)。其中,服務(wù)的來源包含在本地的服務(wù)庫24以及服務(wù)方1的業(yè)務(wù)功能,服務(wù)方1的業(yè)務(wù)功能被調(diào)用后,采用了 WS語言進(jìn)行描述,當(dāng)采用的多個(gè)服務(wù)之間需要進(jìn)行通信時(shí),將其轉(zhuǎn)換為EJB格式進(jìn)行通信。應(yīng)當(dāng)理解的是,從服務(wù)方1的業(yè)務(wù)功能獲得的服務(wù)也可以指直接存儲(chǔ)在服務(wù)庫24中后再被使用。
[0032]優(yōu)選的,本實(shí)施例中的格式轉(zhuǎn)換單元22還用于將與服務(wù)連接系統(tǒng)工作于同一系統(tǒng)內(nèi)的業(yè)務(wù)功能轉(zhuǎn)換為特殊格式的服務(wù)。即在本實(shí)施例中,上述的生產(chǎn)系統(tǒng)還具有業(yè)務(wù)功能,本實(shí)施例可以通過特殊格式來兼容這些本地的業(yè)務(wù)功能。與上述實(shí)施例相比,本實(shí)施例中的服務(wù)還可以來源于本地的業(yè)務(wù)功能。相應(yīng)的,通用接口單元23還用于根據(jù)服務(wù)請(qǐng)求中包含的服務(wù)標(biāo)識(shí)調(diào)用所述特殊格式的服務(wù)。相應(yīng)的,格式轉(zhuǎn)換單元包含WS格式轉(zhuǎn)換模塊221、EJB格式轉(zhuǎn)換模塊222以及特殊格式轉(zhuǎn)換模塊223(如圖中所述的ECIM格式轉(zhuǎn)換模塊),WS格式轉(zhuǎn)換模塊221用于將調(diào)用的服務(wù)方所提供的業(yè)務(wù)功能轉(zhuǎn)換為WS格式的服務(wù);EJB格式轉(zhuǎn)換模塊222用于將獲取到的服務(wù)和存儲(chǔ)于服