新四季網

遠程服務調用方法及系統的製作方法

2023-05-30 14:33:46 2

專利名稱:遠程服務調用方法及系統的製作方法
技術領域:
本發明涉及網絡及計算機技術領域,更具體的說,涉及遠程服務調用方法及系統。
背景技術:
OSGi (Open Services Gateway initiative)框架提供了一個本地服務註冊中心使得框架中安裝的bundles可以通過服務進行交互,這些服務由一個bundle註冊,被另一個bundle獲取。在這種情況下只有部署在同一個OSGi框架中的bundles之間可以通過服務進行交互。但現實的情況是,需要的服務可能是由第三方提供,並且發布服務的Bundle是部署在遠程端,根據現有的方式,無法滿足遠程服務訪問。

發明內容
有鑑於此,本發明實施例提供了遠程服務調用方法及系統,以實現遠程服務訪問。為實現上述目的,本發明提供如下技術方案一種遠程服務調用方法,用於採用OSGI框架的虛擬機上,所述方法包括預先將服務註冊為遠程服務;接收用戶提交的服務名;採用服務發現機制搜索遠程服務;當查詢到其他虛擬機提供與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。一種遠程服務調用系統,應用於採用OSGI框架的虛擬機上,所述系統包括註冊單元和遠程服務調用平臺,其中所述註冊單元,用於預先將服務註冊為遠程服務;所述遠程服務調用平臺用於,接收用戶提交的服務名,採用服務發現機制搜索遠程服務,當查詢到其他虛擬機提供與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。經由上述的技術方案可知,在將服務必須註冊成遠程服務後,遠程服務可採用服務發現機制查詢到,進行建立連接,進行遠程服務調用,從而實現了遠程服務。


為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。圖1為本發明實施例提供的遠程服務調用方法流程圖;圖2為本發明實施例提供的遠程服務調用方法實現原理示意圖3為本發明實施例提供的遠程服務調用方法另一流程圖;圖4為本發明實施例提供的事件監聽過程示意圖;圖5為本發明實施例提供的R-OSGi的整體流程圖;圖6為本發明實施例提供的遠程服務調用方法又一流程圖。
具體實施例方式為了引用和清楚起見,下文中使用的技術名詞的說明、簡寫或縮寫總結如下OSGI =Open Services Gateway initiative,開放服務網關發起者;TCP =Transmission Control Protocol,傳輸控制協議;SLP =Service Location Protocol,服務定位協議;URI =Uniform Resource Identifier,資源標識符。URI是用於標識某一網際網路資源名稱的字符串。該種標識允許用戶對網絡中(一般指全球資訊網)的資源通過特定的協議進行交互操作;URL =Uniform Resource Locator,統一資源定位符。也被稱為網頁地址,是網際網路上標準的資源的地址。URL是URI的一個下種。URI確定一個資源,而URL不但確定一個資源,而且還表示出它在哪裡。下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。OSGI是一個開放並且提供統一接口標準的插件體系框架,基於這個體系框架,服務提供商、程序開發人員、軟體提供商、服務網管運營商和設備提供商能夠協調地聯合起來開發、部署以及管理向用戶提供的各種服務。OSGI服務平臺是一個基於Java的平臺,OSGI 的提出和誕生之初,其目的主要是能夠靈活方便並遠程管理互聯的網絡嵌入設備。大部分的路由器都支持模塊的熱插拔,這就意味著可以在路由器運行的狀況下, 動態的增加或卻載具有某種功能的功能模塊,硬體界的這種熱插拔技術一直就是軟體界所追求的,而OSGI則使得熱插拔技術在軟體界成為現實。OSGI為動態擴充、修改系統功能和改變系統行為提供了支撐,在OSGI服務平臺上可以部署許多OSGI的組件(Bundle)。OSGI有一整套完整的機制去實現動態改變系統行為, 基於OSGI的系統運行時就可通過安裝新的Bundle、更新或停止現有的Bundle來實現系統功能的插拔。可插拔、可動態改變行為從根本上保證了系統在運行期足夠的靈活性和擴展性。在OSGI中所有模塊的部署都必須以Bundle的方式進行,Bundle是一 jar文件, 該jar文件和普通的jar文件的不同之處在於Meta_inf目錄下的MArTIFEST. MF文件的內容,關於Bundle的所有信息都在MANIFEST. MF中進行描述,可以稱它為bundle的元數據,這些信息中包含有例如Bundle的名稱、描述、開發商、路徑(classpath),需要導入的包 (Package)以及輸出的包(Package)等。OSGi框架提供了一個本地服務註冊中心,使得框架中安裝的bundle可以通過服務進行交互,這些服務由一個bundle註冊,被另一個bundle獲取。在這種情況下只有部署
5在同一個OSGi框架中的bundles之間可以通過服務進行交互。但現實的情況是,需要的服務可能是由第三方提供,並且發布服務的Bundle是部署在遠程端,根據現有的方式,無法滿足遠程服務訪問。有鑑於此,本發明實施例提供一種遠程服務調用方法來解決上述問題,此種方法可應用於採用OSGI框架的虛擬機上。參見圖1,該方法至少包括如下步驟Si、預先將服務註冊為遠程服務;S2、接收用戶提交的服務名;S3、採用服務發現機制(SLP)搜索遠程服務;S4、當查詢到與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。可見,在將服務必須註冊成遠程服務後,遠程服務可採用服務發現機制查詢到,進行建立連接,進行遠程服務調用,從而實現了遠程服務。可將上述方法稱為R-0SGI,其中R指的是Remote-service。在本發明中,上述方法可使用R-OSGI bundle (也可視為R-OSGI方面)加以實現, R-OSGI相當於分布式提供者。需要注意的是,本發明將提供服務的一端稱為服務端,將調用服務的一端稱為客戶端。服務端與客戶端只是相對概念,對於虛擬機A和B來說,如果虛擬機A發布天氣預報服務,而虛擬機B調用天氣預報服務,針對天氣預報這一服務,虛擬機A是虛擬機B的服務端,而虛擬機B是虛擬機A的客戶端;如果虛擬機A發布某一服務,而虛擬機B調用虛擬機A 發布該服務,那麼同時,相對於該服務,虛擬機B是虛擬機A的服務端,而虛擬機A是虛擬機 B的客戶端。另外,虛擬機A某一 bundle發布的服務,還可被虛擬機A自身的另一 bundle 調用,此時,客戶端和服務端在同一端。參見圖2,R-OSGI的實現原理為各虛擬機中部署的OSGi框架為bundle通過服務對象的通信提供了一個本地服務註冊,使得OSGi框架中安裝的bundles可以通過服務進行交互,這些服務由一個bundle註冊,被另一個bundle獲取。在圖2中,服務提供者(Service Producer)相當於服務端,服務消費者(Service Consumer)相當於客戶端,分布式提供者(Distribution Provider)根據服務提供者的聲明式服務文件發布/創建遠程服務,分布式提供者還能創建一個proxy (代理),這個代理與服務端交互數據,最終完成遠程服務的調用。當然,從客戶端來看,可把客戶端和服務端分別視為一個終端(endpoint)的話, 分布式提供者為兩個終端提供服務交互,從而令每一虛擬機可獨立導入和導出服務。另外, 在現有技術中,只可在一個OSGI框架(一個虛擬機上部署一個OSGI框架)中調用服務,而本實施例的方法可令某一虛擬機調用其他虛擬機所提供的服務,可實現多框架之間的服務交互,使服務由集中式變為分布式。在具體實現時,可在各個虛擬機上部署遠程服務調用平臺來實現本發明的遠程服務調用。為區分起見,將服務消費者側的虛擬機稱為客戶端虛擬機,在客戶端虛擬機上部署的遠程服務調用平臺可稱為第一遠程服務調用平臺,而將服務端側的虛擬機上部署的遠程服務調用平臺稱為第二遠程服務調用平臺。則參見圖3:上述步驟S2的具體實現方式包括
S21、第一遠程服務調用平臺接收用戶提交的服務名;步驟S21是通過服務發現監聽的方式來接收服務名,執行remote service的連
接,其代碼如下
context.registerService(ServiceDiscoveryListener.class.getName, new ServiceDiscoveryListenerQ {
public void announceService(String servicelnterface, URI uri) {
try { remote. connect(uri) ; }。上述步驟S3的具體實現方式包括S31、第一遠程服務調用平臺採用服務發現機制搜索遠程服務,從而發現與上述服務名匹配的遠程服務,獲取到發布該遠程服務的虛擬機的具體地址;S32、第一遠程服務調用平臺建立與第二遠程服務調用平臺的TCP連接;可通過在OSGI框架中部署服務發現Bundle來執行步驟S3。而上述步驟S4具體實現方式包括S41、所述第一遠程服務調用平臺生成代理Bundle ;S42、上述代理Bundle將針對上述服務名的服務方法調用重定向到發布上述遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機。下面將對上述方法進行細節描述。一,服務註冊服務端在本地OSGi框架中創建服務Bundle發布服務,為該服務分配唯一的服務標識和身份標識,並將這個服務註冊成遠程服務,上述服務標識可用於實現服務的定位及管理。另外,對提供遠程服務的Bundle分配管理標識,該標識表示此Bundle接受服務端 (也即本地的)R-OSGI平臺的管理。將服務註冊成遠程服務的具體實現方式是在註冊服務屬性時添加指定的屬性。如下properties. put(RemoteOSGiService. R_0SGi_REGISTRATI0N,Boolean. TRUE);將這個服務屬性添加到本地服務註冊中心就將這個服務註冊成遠程服務。比如註冊registration =context.registerService (SurrogateRegistration. class, getName ,this, properties);對服務端沒有侵入性。隨後,服務端的OSGi框架使用服務跟蹤來跟蹤上述遠程服務。在服務端的OSGi框架的RemoteOSGKervicelmpl中使用了服務跟蹤,並創建了 ServiceTrackerCustomizer 進行相應的操作。可以理解為使用服務跟蹤過濾器來跟蹤上述服務標識。服務跟蹤過濾器的功能可由兩種方式實現,其代碼分別為a) :context. createFilterC (0(" +Constants. OBJECTCLASS+「=「+EventHandler. class. getName + " )(1 (〃+R_0SGi_INTERNAL+〃 =*)))〃 )b) :context. createFilterC (〃 +· R_0SGi_REGISTRATI0N+〃 = *) 〃 )另外還有跟蹤了服務發現和服務監聽,這樣,當註冊成遠程服務時候,就對其進行相應的處理(例如截獲符合上述兩種過濾字符形式的服務,將其註冊成遠程服務,進入 ROSGi 的方面),進入 RemoteServiceRegistration。需要說明是的,由於任一虛擬機都可能需要調用其他虛擬機上的服務,因此,上述註冊遠程服務並不僅局限於服務端,而是所有虛擬機都可以預先進行遠程服務註冊。二,服務發現協議SLP本發明採用SLP來自動搜索匹配遠程服務,查詢到匹配的遠程服務後,自動建立連接,完成遠程服務的調用。SLP中的基本操作是客戶機試圖發現服務的位置。在小型系統中,每個服務被配置為獨立響應每個客戶機;而在大型系統中,每個服務都會在一個甚至更多的目錄代理中進行登記,客戶機連接目錄代理完成服務定位請求。這與URL規範類似,並且它充分利用了 URL技術方案SLP對於本發明的R-OSGi有幾個強制的特徵它的適應性,固有的分布式查詢過程,以及與OSGi在服務命名的相似性。本發明利用了 SLP的多播功能,向多個非本地R-OSGI進行廣播,通過這一技術實現,R-OSGi實現一個分布式SLP層。在命名方面,無論是OSGi和SLP都由一個字符串標識服務。在OSGi中,可使用接口的的完全限定名稱作為其相應服務的身份標識。在SLP中,使用提供服務的虛擬機的 URL作為所搜尋到的服務的標識,形如service :serviceType ://URL。這裡的服務類型是 abstractType :concreteType0本發明將SLP搜索到的URL與該服務的身份標識建立雙向映射關係。三、事件監聽 OSGI的事件監聽過程如圖4所示事件發布者使用Event Admin服務發送基於主題(Topic)的事件,任何對某一主題感興趣的事件訂閱者都會收到該事件,並且做出相應的反應。其中事件發布可用於獲得實現了 org. osgi. service, event. EventAdmin 接口的 Event Admin 月艮務弓|用。擬定事件的主題。指定事件所攜帶的key/value屬性集。本發明中使用Event Admin提供的postEvent或者sendEvent方法發布事件。其中,postEvent使用同步的方式發布事件,即等到所有的事件訂閱者響應該事件,方法調用返回,而sendEvent使用異步的方式發布事件。而事件訂閱可用於確定你想要訂閱那些主題事件,支持通配符。如果需要,根據事件的屬性確定事件的過濾原則。發布實現了 org. osgi. service, event. EventHandler 接口的你的事件訂閱服務, 以便當你感興趣的事件發生後,Event Admin能通知到你。在R-OSGi中,也是按照上述的事件的發布和訂閱,提供了專門的事件消息用於遠程的傳輸。
圖5為R-OSGi的整體流程。其中分割線左右分別為兩個Java虛擬機A和B,JVM-A 為客戶端側,JVM-B為服務端側。客戶端和服務端分別部署在兩個OSGi框架中。客戶端通過krviceDiscoveryListener來連接URI,自動發現區域網中發布的遠程服務。當然服務端的服務必須發布成遠程服務才能通過客戶端的服務發現Bundle查詢到。查詢到後,JVM-A的遠程服務調用平臺與JVM-B的遠程服務調用平臺建立TCP連接。然後開始構建代理bundle。代理bundle生成後自動部署到客戶端所在的OSGi框架中。生成的bundle是通過ASM庫(ASM庫提供類文件與字節流的轉換)來分析需要的服務,並添加需要的導入導出包。生成的代理Bundle中,將對每一個要執行的接口方法以回調的方式和遠端的真實實現方法建立通信。產生的返回值通過通信返回,以完成一個方法的調用的過程。方法的真正的執行過程還是在服務端。在本發明其他實施例中,參見圖6,上述方法的具體實現包括S601、在本地OSGi框架中創建服務Bundle發布服務,為該服務分配唯一的服務標識(Service PID),並將這個服務註冊成遠程服務,對提供遠程服務的Bundle分配管理標識,以便R-OSGI平臺對該Bundle進行管理對提供遠程服務的Bundle分配管理標識,以便 R-OSGI平臺對該Bundle進行管理;S602、第一遠程服務調用平臺接收用戶提交的服務名;S603、第一遠程服務調用平臺採用服務發現機制向其他遠程服務調用平臺發送具有上述服務名的消息;S604、其他遠程服務調用平臺根據所管理的Bundle對應的krvice PID來確認本地Bundle是否提供與上述服務名相對應的遠程服務,並在確認提供後,返回所屬虛擬機的 URL與上述遠程服務的身份標識之間的雙向映射關係(上述身份標識符合R-OSGi中SLP定義的服務的標識的要求);此時,上述遠程服務的虛擬機中的遠程服務調用平臺即為上文提及的第二遠程服務調用平臺。具體的,可根據krvic PID獲取服務對應的服務名,當該服務名與第一遠程服務平臺接收的服務名相匹配時,認為可提供與之匹配的遠程服務。S605、第一遠程服務調用平臺根據上述URL與第二遠程服務調用平臺建立TCP連接,以便兩臺虛擬機進行數據交互。S606、第一遠程服務調用平臺生成代理Bundle ;S607、上述代理Bimdle通過上述URL將針對上述服務名的服務方法調用重定向到發布上述遠程服務的虛擬機,並根據上述身份標識調用與之對應的接口執行接口方法,並且將執行所述接口方法產生的返回值傳送至客戶端虛擬機。與之相對應,本發明還提供了一種遠程服務調用系統,上述系統可包括註冊單元和遠程服務調用平臺,其中註冊單元,用於預先將服務註冊為遠程服務;而遠程服務調用平臺用於,接收用戶提交的服務名,採用服務發現機制搜索遠程服務,當查詢到其他虛擬機提供與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。在本發明其他實施例中,上述遠程服務調用平臺可包括接收單元,用於接收用戶提交的服務名
服務發現單元,用於採用服務發現機制搜索與遠程服務;建立連接單元,用於其他發布與所述服務名匹配的遠程服務的虛擬機建立TCP連接;代理生成單元,用於生成代理,所述代理將針對所述服務名的服務方法調用重定向到發布所述與所述服務名匹配的遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機。其中,上述將服務註冊為遠程服務的具體實現方式包括使用服務跟蹤來創建遠程服務,並為所述遠程服務分配服務標識和身份標識,對提供所述遠程服務的的Bundle分配管理標識,所述管理標識表示所述Bundle接受本地虛擬機的遠程服務平臺的管理。上述採用服務發現機制搜索遠程服務的具體實現包括採用服務發現機制向其他遠程服務調用平臺發送具有上述服務名的消息,以便其他遠程服務平臺根據所管理的Bundle對應的服務標識,來確認所管理的Bundle是否提供與所述服務名相對應的遠程服務,並在確認提供後,返回所屬虛擬機的URL與所述遠程服務的身份標識之間的雙向映射關係;上述建立TCP連接的具體實現包括根據所述URL建立與其他發布與所述服務名匹配的遠程服務的虛擬機TCP連接。上述代理將針對所述服務名的服務方法調用重定向到發布與所述服務名匹配的遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機的具體實現包括所述代理通過上述URL將針對所述服務名的服務方法調用重定向到發布所述遠程服務的虛擬機,並根據所述雙向映射關係中的身份標識,調用與之對應的接口執行接口方法,並將執行所述接口方法產生的返回值傳送至客戶端虛擬機。由於任一虛擬機都可能作為客戶端或服務端,因此,上述遠程服務調用平臺還可包括確認單元,用於根據所管理的Bundle對應的服務標識,來確認所管理的Bundle是否提供與客戶端提供的服務名相對應的遠程服務,並在確認提供後,返回所屬虛擬機的URL與所述遠程服務的身份標識之間的雙向映射關係。本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬碟、可移動磁碟、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。 對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。
權利要求
1.一種遠程服務調用方法,其特徵在於,應用於採用OSGI框架的虛擬機上,所述方法包括預先將服務註冊為遠程服務; 接收用戶提交的服務名; 採用服務發現機制搜索遠程服務;當查詢到其他虛擬機提供與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。
2.如權利要求1所述的方法,其特徵在於, 接收用戶提交的服務名的具體實現包括客戶端虛擬機中的第一遠程服務調用平臺接收用戶提交的服務名; 所述採用服務發現機制搜索遠程服務的具體實現包括 所述第一遠程服務調用平臺採用服務發現機制搜索遠程服務; 所述建立連接的具體實現包括所述第一遠程服務調用平臺建立與第二遠程服務調用平臺的TCP連接,所述第二遠程服務調用平臺部署於發布與所述服務名匹配的遠程服務的虛擬機中; 所述進行遠程服務調用的具體實現包括 所述第一遠程服務調用平臺生成代理;所述代理將針對所述服務名的服務方法調用重定向到發布所述與所述服務名匹配的遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機。
3.如權利要求2所述的方法,其特徵在於,所述將服務註冊為遠程服務的具體實現方式包括使用服務跟蹤來創建遠程服務,並為所述遠程服務分配服務標識和身份標識,對提供所述遠程服務的Bundle分配管理標識,所述管理標識表示所述Bundle接受本地虛擬機的遠程服務平臺的管理。
4.如權利要求3所述的方法,其特徵在於,所述第一遠程服務調用平臺採用服務發現機制搜索遠程服務的具體實現包括 採用服務發現機制向其他遠程服務調用平臺發送具有上述服務名的消息,以便其他遠程服務平臺根據所管理的Bundle對應的服務標識,來確認所管理的Bundle是否提供與所述服務名相對應的遠程服務,並在確認提供後,返回所屬虛擬機的URL與所述遠程服務的身份標識之間的雙向映射關係;所述第一遠程服務調用平臺建立與第二遠程服務調用平臺的TCP連接的具體實現包括所述第一遠程服務調用平臺根據所述URL與所述第二遠程服務調用平臺建立TCP連接。
5.如權利要求4所述的方法,其特徵在於,所述代理將針對所述服務名的服務方法調用重定向到發布所述與所述服務名匹配的遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機的具體實現包括所述代理通過所述URL將針對所述服務名的服務方法調用重定向到發布所述遠程服務的虛擬機,並根據所述雙向映射關係中的身份標識調用與之對應的接口執行接口方法,並且將執行所述接口方法產生的返回值傳送至客戶端虛擬機。
6.一種遠程服務調用系統,其特徵在於,應用於採用OSGI框架的虛擬機上,所述系統包括註冊單元和遠程服務調用平臺,其中所述註冊單元,用於預先將服務註冊為遠程服務;所述遠程服務調用平臺用於,接收用戶提交的服務名,採用服務發現機制搜索遠程服務,當查詢到其他虛擬機提供與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。
7.如權利要求6所述的系統,其特徵在於,所述遠程服務調用平臺包括接收單元,用於接收用戶提交的服務名服務發現單元,用於採用服務發現機制搜索與遠程服務;建立連接單元,用於其他發布與所述服務名匹配的遠程服務的虛擬機建立TCP連接;代理生成單元,用於生成代理,所述代理將針對所述服務名的服務方法調用重定向到發布所述與所述服務名匹配的遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機。
8.如權利要求7所述的系統,其特徵在於,所述將服務註冊為遠程服務的具體實現方式包括使用服務跟蹤來創建遠程服務,並為所述遠程服務分配服務標識和身份標識,對提供所述遠程服務的的Bundle分配管理標識,所述管理標識表示所述Bundle接受本地虛擬機的遠程服務平臺的管理。
9.如權利要求8所述的系統,其特徵在於,所述採用服務發現機制搜索遠程服務的具體實現包括採用服務發現機制向其他遠程服務調用平臺發送具有上述服務名的消息,以便其他遠程服務平臺根據所管理的Bundle對應的服務標識,來確認所管理的Bundle是否提供與所述服務名相對應的遠程服務,並在確認提供後,返回所屬虛擬機的URL與所述遠程服務的身份標識之間的雙向映射關係;所述建立TCP連接的具體實現包括根據所述URL與其他發布與所述服務名匹配的遠程服務的虛擬機建立TCP連接。
10.如權利要求9所述的系統,其特徵在於,所述代理將針對所述服務名的服務方法調用重定向到發布與所述服務名匹配的遠程服務的虛擬機,並且傳送方法回調的結果至到客戶端虛擬機的具體實現包括所述代理通過所述URL將針對所述服務名的服務方法調用重定向到發布所述遠程服務的虛擬機,並根據所述雙向映射關係中的身份標識,調用與之對應的接口執行接口方法, 並將執行所述接口方法產生的返回值傳送至客戶端虛擬機。
全文摘要
本發明實施例提供了一種遠程服務調用方法及系統,以實現遠程服務訪問。上述方法可用於採用OSGI框架的虛擬機上,包括預先將服務註冊為遠程服務;接收用戶提交的服務名;採用服務發現機制搜索遠程服務;當查詢到其他虛擬機提供與所述服務名匹配的遠程服務時,建立連接,並進行遠程服務調用。可知,在將服務必須註冊成遠程服務後,遠程服務可採用服務發現機制查詢到,進行建立連接,進行遠程服務調用,從而實現了遠程服務。
文檔編號H04L29/08GK102325186SQ20111027173
公開日2012年1月18日 申請日期2011年9月14日 優先權日2011年9月14日
發明者劉民, 劉耀, 王恩彬 申請人:山東中創軟體商用中間件股份有限公司, 山東中創軟體工程股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀