實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法和裝置制造方法
【專利摘要】本發(fā)明提供一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法和裝置,有助于在采用thrift進(jìn)行SOA組件封裝時提高效率。本發(fā)明的這種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法,基于thrift協(xié)議和spring框架實(shí)現(xiàn),該方法包括:服務(wù)端在所要發(fā)布應(yīng)用服務(wù)的服務(wù)系統(tǒng)中進(jìn)行服務(wù)注冊;服務(wù)端根據(jù)與客戶端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息;服務(wù)端在啟動應(yīng)用服務(wù)時,獲取所述配置信息并發(fā)布所述應(yīng)用服務(wù);在所述客戶端啟動的情況下,服務(wù)端接受所述客戶端對所述服務(wù)系統(tǒng)的接口的調(diào)用。
【專利說明】實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,特別地涉及一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法和裝置。
【背景技術(shù)】
[0002]近年來,隨著企業(yè)發(fā)展的需要,企業(yè)的業(yè)務(wù)需要變得更加敏捷,軟件系統(tǒng)變得更有彈性,使企業(yè)能快速響應(yīng)需求的變化。因此面向服務(wù)架構(gòu)SOA(Service-OrientedArchitecture)思想被提出來,它是一種支持面向服務(wù)的架構(gòu)樣式,主要解決信息孤島問題,使系統(tǒng)具有更大的彈性。目前流行的SOA組件也非常多,比較流行的有jboss組件webservice組件和rest組件,這些組件各有特色如jboss組件安全性更好,web service組件安全性也相對較好,rest組件形式通訊效率會更好一些。對于海量用戶在大并發(fā)下SOA交互的情況下,這幾個組件效率不夠理想。
[0003]Thrift最早是Facebook的項目,后來Facebook提供給Apache作為開源項目,它主要實(shí)現(xiàn)跨語言通訊,使各系統(tǒng)用戶不再為編程語言發(fā)愁,從而選擇最拿手或項目規(guī)定的編程語言。采用thrift進(jìn)行二次開發(fā)的原因是該組件在事件響應(yīng)和傳輸通信效率上要好于其他組件。
[0004]Thrift的應(yīng)用流程可參考圖1,圖1是根據(jù)現(xiàn)有技術(shù)的Thrift應(yīng)用流程的示意圖。如圖1所示,將.thrift文件和編程語言編寫的程序代碼輸入Thrift代碼生成器,輸出若干服務(wù)端和客戶端代碼文件,該代碼文件在thrift應(yīng)用框架(或框架庫)以及在需要的情況下的其他第三方支持庫的支撐下進(jìn)行編譯就可以得到服務(wù)端和客戶端的可執(zhí)行程序。這里的服務(wù)端和客戶端通過互聯(lián)網(wǎng)連接。
[0005]采用Thrift進(jìn)行二次開發(fā),封裝SOA組件的實(shí)現(xiàn)的過程主要包括定義通訊服務(wù)接口、在服務(wù)端和客戶端分別實(shí)現(xiàn)接口類、在業(yè)務(wù)實(shí)現(xiàn)類中注冊服務(wù),以及在傳輸協(xié)議上綁定端口、設(shè)置傳輸類型等步驟。
[0006]首先通過通信接口定義文件IDL即接口定義語言,主要是用來定義接口數(shù)據(jù)格式,通過該文件生成指定語言的接口類,在服務(wù)端和客戶端分別實(shí)現(xiàn)該接口。
[0007]接下來在服務(wù)端業(yè)務(wù)實(shí)現(xiàn)類中需要先創(chuàng)建TPiOcessor處理器實(shí)現(xiàn)類,如TSimpleServer> TThreadedServer 和 TThreadPoolServer 類,再設(shè)置服務(wù)傳輸類型實(shí)現(xiàn)類TServerTransport,如 TBufferedTransport 和 TFramedTransport 類,再設(shè)置服務(wù)傳輸協(xié)議類 TProtocol,如 TBinaryProtocol 和 TCompactProtocol 類,最后啟動 Server 類。
[0008]對于客戶端來說,客戶端根據(jù)服務(wù)端配置情況設(shè)置對應(yīng)的Transport和TProtocol傳輸協(xié)議,再根據(jù)定義好的業(yè)務(wù)接口,編寫業(yè)務(wù)實(shí)現(xiàn)類,再配置到client服務(wù)類中,啟動服務(wù)類。
[0009]按上述的組件封裝方式,開發(fā)者必須了解thrift協(xié)議,開發(fā)過程也較為繁瑣,影響開發(fā)效率。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本發(fā)明提供一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法和裝置,有助于在采用thrift進(jìn)行SOA組件封裝時提高效率。
[0011]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法。
[0012]本發(fā)明的這種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法,基于thrift協(xié)議和spring框架實(shí)現(xiàn),該方法包括:服務(wù)端在所要發(fā)布應(yīng)用服務(wù)的服務(wù)系統(tǒng)中進(jìn)行服務(wù)注冊;服務(wù)端根據(jù)與客戶端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息;服務(wù)端在啟動應(yīng)用服務(wù)時,獲取所述配置信息并發(fā)布所述應(yīng)用服務(wù);在所述客戶端啟動的情況下,月艮務(wù)端接受所述客戶端對所述服務(wù)系統(tǒng)的接口的調(diào)用。
[0013]可選地,所述進(jìn)行服務(wù)注冊的步驟包括保存以XML方式配置的配置信息;所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以XML方式配置的配置信息。
[0014]可選地,所述進(jìn)行服務(wù)注冊的步驟包括保存以在業(yè)務(wù)實(shí)現(xiàn)類中添加@ThriftService注解的方式配置的配置信息;所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息。
[0015]可選地,在所述服務(wù)端啟動應(yīng)用服務(wù)前,還包括:保存報警方式配置信息;在所述服務(wù)端啟動應(yīng)用服務(wù)后,還包括:服務(wù)端按預(yù)設(shè)的間隔時間調(diào)用所述應(yīng)用服務(wù),在該應(yīng)用服務(wù)調(diào)用失敗的情況下根據(jù)所述報警方式配置信息輸出報警信息。
[0016]根據(jù)本發(fā)明的另一方面,提供了另一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法。
[0017]本發(fā)明的這種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法基于thrift協(xié)議和spring框架實(shí)現(xiàn),該方法包括:客戶端在所要調(diào)用的服務(wù)系統(tǒng)中進(jìn)行注冊;客戶端根據(jù)與服務(wù)端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息;客戶端在啟動服務(wù)時,獲取所述配置信息;然后根據(jù)所述配置信息調(diào)用所述服務(wù)系統(tǒng)的接口。
[0018]可選地,所述進(jìn)行注冊的步驟包括保存以XML方式配置的配置信息;所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以XML方式配置的配置信息。
[0019]可選地,所述進(jìn)行注冊的步驟包括保存以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息;所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息。
[0020]根據(jù)本發(fā)明的又一方面,提供了 一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的裝置。
[0021]本發(fā)明的這種實(shí)現(xiàn)服務(wù)端與客戶端通訊的裝置基于thrift協(xié)議和spring框架實(shí)現(xiàn),其中包括thrift組件,該裝置還包括:XML解析模塊,用于解析以XML方式配置的配置信息;注解解析模塊,用于解析以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息;服務(wù)注冊解析模塊,用于解析以XML方式配置的配置信息以及以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息。
[0022]根據(jù)本發(fā)明的又一方面,提供了另一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的裝置。
[0023]本發(fā)明的這種實(shí)現(xiàn)服務(wù)端與客戶端通訊的裝置基于thrift協(xié)議和spring框架實(shí)現(xiàn),其中包括thrift組件,該裝置還包括:XML解析模塊,用于解析以XML方式配置的配置信息;注解解析模塊,用于解析以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息;服務(wù)注冊解析模塊,用于解析以XML方式配置的配置信息以及以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息。
[0024]根據(jù)本發(fā)明的技術(shù)方案,通過采用spring框架,在服務(wù)端和客戶端進(jìn)行相應(yīng)的配置;在封裝的SOA組件中,以thrift模塊為基礎(chǔ)添加用于解析上述配置的模塊,使開發(fā)者不必關(guān)心thrift組件中的傳輸、協(xié)議、組件模塊的原理構(gòu)成和相互之間的關(guān)系,提高了開發(fā)效率。并且,根據(jù)本實(shí)施例的方案,通過設(shè)置多組配置文件,能夠增加對統(tǒng)一接口不同服務(wù)的版本和組的配置,使統(tǒng)一接口可以由多個服務(wù)使用。另外可以通過對報警方式的配置,實(shí)現(xiàn)在服務(wù)的后續(xù)擴(kuò)展中增加對服務(wù)穩(wěn)定性和存活性進(jìn)行管理和監(jiān)控。
【專利附圖】
【附圖說明】
[0025]附圖用于更好地理解本發(fā)明,不構(gòu)成對本發(fā)明的不當(dāng)限定。其中:
[0026]圖1是根據(jù)現(xiàn)有技術(shù)的Thrift應(yīng)用流程的示意圖;
[0027]圖2是根據(jù)本發(fā)明實(shí)施例的設(shè)置在服務(wù)端的SOA組件的基本結(jié)構(gòu)的示意圖;
[0028]圖3是根據(jù)本發(fā)明實(shí)施例的設(shè)置在客戶端的SOA組件的基本結(jié)構(gòu)的示意圖;
[0029]圖4是根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法的主要步驟的示意圖。
【具體實(shí)施方式】
[0030]以下結(jié)合附圖對本發(fā)明的示范性實(shí)施例做出說明,其中包括本發(fā)明實(shí)施例的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識至IJ,可以對這里描述的實(shí)施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結(jié)構(gòu)的描述。
[0031]本實(shí)施例中利用spring框架的AOP和IOC功能,可以針對thrift框架進(jìn)行XML(可擴(kuò)展標(biāo)記語言)方式的各項配置,還可以在spring中使用的thrift注解來讓thrift組件配置更加靈活。Spring是一個輕量級的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架,并且是開源框架,它由Rod Johnson創(chuàng)建。本實(shí)施例中的SOA組件的基本結(jié)構(gòu)如圖2和圖3所示。圖2是根據(jù)本發(fā)明實(shí)施例的設(shè)置在服務(wù)端的SOA組件的基本結(jié)構(gòu)的示意圖。圖3是根據(jù)本發(fā)明實(shí)施例的設(shè)置在客戶端的SOA組件的基本結(jié)構(gòu)的示意圖。
[0032]如圖2所示,在已開發(fā)完成的thrift組件21的基礎(chǔ)上,SOA組件20還包括XML解析模塊22、注解解析模塊23、以及服務(wù)注冊解析模塊24。XML解析模塊22用于解析以XML方式配置的配置信息;注解解析模塊23用于解析以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息;服務(wù)注冊解析模塊24用于解析服務(wù)端注冊模塊保存的以XML方式配置的配置信息以及以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息。
[0033]如圖3所示,在已開發(fā)完成的thrift組件31的基礎(chǔ)上,SOA組件30還包括XML解析模塊32、注解解析模塊33、以及服務(wù)注冊解析模塊34。XML解析模塊32用于解析以XML方式配置的配置信息;注解解析模塊33用于解析以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息;服務(wù)注冊解析模塊34用于解析服務(wù)端注冊模塊保存的以XML方式配置的配置信息以及以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信肩、O[0034]本實(shí)施例的SOA組件需要分別在服務(wù)端和客戶端進(jìn)行配置,可作為jar包來實(shí)現(xiàn)。以下結(jié)合圖4對本發(fā)明實(shí)施例的實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法做出說明,圖4是根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法的主要步驟的示意圖。其中的步驟S411至步驟S422是服務(wù)端與客戶端進(jìn)行配置的步驟。
[0035]步驟S411:服務(wù)端在所要發(fā)布應(yīng)用服務(wù)的服務(wù)系統(tǒng)中進(jìn)行服務(wù)注冊。具體可以采用XML方式配置,也可以采用在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式來配置。
[0036]步驟S412:服務(wù)端根據(jù)與客戶端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息。類似地,這些配置可以采用XML方式配置,也可以采用在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式來配置。這里的約定的類型由開發(fā)人員預(yù)先確定。月艮務(wù)端在啟動應(yīng)用服務(wù)時,進(jìn)入步驟S413。
[0037]步驟S413:服務(wù)端獲取配置信息并發(fā)布應(yīng)用服務(wù)。服務(wù)端在獲取配置信息時,使用SOA組件解析上述步驟S411、S412中的配置。
[0038]步驟S421:客戶端在所要調(diào)用的服務(wù)系統(tǒng)中進(jìn)行注冊。具體可以采用XML方式配置,也可以采用在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式來配置。
[0039]步驟S422:客戶端根據(jù)與服務(wù)端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息。類似地,這些配置可以采用XML方式配置,也可以采用在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式來配置。客戶端在啟動應(yīng)用服務(wù)時,進(jìn)入步驟S423。
[0040]步驟S423:客戶端調(diào)用服務(wù)系統(tǒng)的接口。
[0041]步驟S43:客戶端與服務(wù)端進(jìn)行交互通訊。
[0042]以下再對本實(shí)施例中的服務(wù)端與客戶端的配置舉例說明。
[0043]利用spring框架的AOP和IOC功能,可以針對thrift框架的傳輸方式類進(jìn)行XML 方式配置,配置傳輸方式如 TBufferedTransport、TFramedTransport、TMemoryBuffer等方式。具體可以采用〈property〉方式配置到實(shí)現(xiàn)業(yè)務(wù)接口類中。配置傳輸協(xié)議例如TBinaryProtocol、TCompactProtocol> TJSONProtocoal> TSImpleJSONProtocoal 等。對于業(yè)務(wù)類可以通過屬性適配的方式配置〈property〉來配置傳輸協(xié)議。對于傳輸服務(wù)模型如TSimpleServer > TThreadPoo I Server > TNonblockingServer 類,可以通過〈property〉來配置到業(yè)務(wù)類上作為屬性添加。通過開發(fā)適配器類并在XML文件中配置,可以在業(yè)務(wù)類配置屬性時以適配的方式配置,在具體類中開發(fā)時則不用關(guān)心具體的方式和類型。并且可以在XML配置服務(wù)模型時,自定義配置服務(wù)版本,所屬的組、接口等具體參數(shù)。
[0044]服務(wù)端配置舉例如下:
[0045]<thiftservice id = 〃mythift〃name = 〃thift〃port = 〃4260〃/>
[0046]〈property name =,,interface,,value =,,com.books, service,,>〈/property>
[0047]〈property name =,,transport,,value =,,TBufferedTransport,,>〈/property>
[0048]〈property name =,,protcol,,value =,,TCompactProtocol,,>〈/property>
[0049]〈property name =,,server,,value =,,TSimpleServer,,>〈/property>
[0050]</thiftservice>
[0051]客戶端配置舉例如下:
[0052]〈thiftclient:protocol id = 〃mythift〃name = 〃thift〃port = 〃4260〃/>
[0053]〈property name =,,interface,,value =,,com.books, service,,>〈/property>[0054]〈property name =,,transport,,value =,,TBufferedTransport,,>〈/property>
[0055]〈property name =,,protcol,,value =,,TCompactProtocol,,>〈/property>
[0056]〈property name =,,server,,value =,,TSimpleServer,,>〈/property>
[0057]</thiftclient>
[0058]通過開發(fā)在spring中使用的thrift注解來讓thrift組件配置更加靈活,方便開發(fā)人員對thrift組件的使用。具體配置方式為在業(yè)務(wù)實(shí)現(xiàn)類中配置OThriftService注解,即使用了配置服務(wù)類,在OThriftService注解中配置value參數(shù)即為配置服務(wù)模型類,配置protocol傳輸協(xié)議模式如TJSONProtocoal,配置transport參數(shù)即配置傳輸方式如TFramedTransport,同時可以配置版本號參數(shù)、組參數(shù)和超時參數(shù)。
[0059]服務(wù)端配置舉例如下:
[0060]OThriftService (value = 〃getBooksServer〃,server=,,TThreadPoolServer,,,protocol = "TJSONProtocoal", transport = "TFramedTransport〃,group = 〃1.0〃,version = 〃1.0〃,timeout = 3000)
[0061]客戶端配置舉例如下:
[0062]OThriftClient (value = ^getBooksServer ^ , server=,,TThreadPoo I Serve r,,,protoco I = "TJSONProtocoal 〃,transport =〃TFramedTransport〃,group = 〃1.0〃,versio n = 〃1.0〃,timeout = 3000)
[0063]本實(shí)施例中,還可以在服務(wù)端配置報警方式,例如采用XML方式配置如下:
[0064]<thiftservice id = 〃mythift〃name = 〃thift〃port = 〃4260〃/>
[0065]〈property name =,,interface,,value =,,com.books, service,,>〈/property>
[0066]〈property name =,,transport,,value =,,TBufferedTransport,,>〈/property>
[0067]〈property name =,,protcol,,value =,,TCompactProtocol,,>〈/property>
[0068]〈property name =,,server,,value =,,TSimpleServer,,>〈/property>
[0069]〈property name = ”alarm”value = ”**2**/,,telephone =,,***,,mail =,,***,,>〈/property)
[0070]</thiftservice>
[0071]本實(shí)施例中的這種做法的目的是利用spring框架下的SOA組件對應(yīng)用服務(wù)的接口的穩(wěn)定性進(jìn)行監(jiān)控和管理。在上述的配置信息中,通過“tel印hone =”***”mail= ”***””配置了報警時需要呼叫的電話號碼和發(fā)送郵件的地址。服務(wù)端可以間隔地調(diào)用應(yīng)用服務(wù)以檢查該服務(wù)的存活性。當(dāng)調(diào)用失敗時,按照上述報警方式的配置,可以呼叫配置的電話號碼或者向郵件地址發(fā)送郵件。
[0072]根據(jù)本發(fā)明實(shí)施例的技術(shù)方案,通過采用spring框架,在服務(wù)端和客戶端進(jìn)行相應(yīng)的配置;在封裝的SOA組件中,以thrift模塊為基礎(chǔ)添加用于解析上述配置的模塊,使開發(fā)者不必關(guān)心thrift組件中的傳輸、協(xié)議、組件模塊的原理構(gòu)成和相互之間的關(guān)系,提高了開發(fā)效率。并且,根據(jù)本實(shí)施例的方案,通過設(shè)置多組配置文件,能夠增加對統(tǒng)一接口不同服務(wù)的版本和組的配置,使統(tǒng)一接口可以由多個服務(wù)使用。另外可以通過對報警方式的配置,實(shí)現(xiàn)在服務(wù)的后續(xù)擴(kuò)展中增加對服務(wù)穩(wěn)定性和存活性進(jìn)行管理和監(jiān)控。
[0073]以上結(jié)合具體實(shí)施例描述了本發(fā)明的基本原理,但是,需要指出的是,對本領(lǐng)域的普通技術(shù)人員而言,能夠理解本發(fā)明的方法和設(shè)備的全部或者任何步驟或者部件,可以在任何計算裝置(包括處理器、存儲介質(zhì)等)或者計算裝置的網(wǎng)絡(luò)中,以硬件、固件、軟件或者它們的組合加以實(shí)現(xiàn),這是本領(lǐng)域普通技術(shù)人員在閱讀了本發(fā)明的說明的情況下運(yùn)用他們的基本編程技能就能實(shí)現(xiàn)的。
[0074]因此,本發(fā)明的目的還可以通過在任何計算裝置上運(yùn)行一個程序或者一組程序來實(shí)現(xiàn)。所述計算裝置可以是公知的通用裝置。因此,本發(fā)明的目的也可以僅僅通過提供包含實(shí)現(xiàn)所述方法或者裝置的程序代碼的程序產(chǎn)品來實(shí)現(xiàn)。也就是說,這樣的程序產(chǎn)品也構(gòu)成本發(fā)明,并且存儲有這樣的程序產(chǎn)品的存儲介質(zhì)也構(gòu)成本發(fā)明。顯然,所述存儲介質(zhì)可以是任何公知的存儲介質(zhì)或者將來開發(fā)出的任何存儲介質(zhì)。
[0075]還需要指出的是,在本發(fā)明的裝置和方法中,顯然,各部件或各步驟是可以分解和/或重新組合的。這些分解和/或重新組合應(yīng)視為本發(fā)明的等效方案。并且,執(zhí)行上述系列處理的步驟可以自然地按照說明的順序按時間順序執(zhí)行,但是并不需要一定按照時間順序執(zhí)行。某些步驟可以并行或彼此獨(dú)立地執(zhí)行。
[0076]上述【具體實(shí)施方式】,并不構(gòu)成對本發(fā)明保護(hù)范圍的限制。本領(lǐng)域技術(shù)人員應(yīng)該明白的是,取決于設(shè)計要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法,該方法基于thrift協(xié)議和spring框架實(shí)現(xiàn),其特征在于,該方法包括: 服務(wù)端在所要發(fā)布應(yīng)用服務(wù)的服務(wù)系統(tǒng)中進(jìn)行服務(wù)注冊; 服務(wù)端根據(jù)與客戶端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息; 服務(wù)端在啟動應(yīng)用服務(wù)時,獲取所述配置信息并發(fā)布所述應(yīng)用服務(wù); 在所述客戶端啟動的情 況下,服務(wù)端接受所述客戶端對所述服務(wù)系統(tǒng)的接口的調(diào)用。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述進(jìn)行服務(wù)注冊的步驟包括保存以XML方式配置的配置信息; 所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以XML方式配置的配置信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述進(jìn)行服務(wù)注冊的步驟包括保存以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息; 所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息。
4.根據(jù)權(quán)利要求1,2或3所述的方法,其特征在于, 在所述服務(wù)端啟動應(yīng)用服務(wù)前,還包括:保存報警方式配置信息; 在所述服務(wù)端啟動應(yīng)用服務(wù)后,還包括:服務(wù)端按預(yù)設(shè)的間隔時間調(diào)用所述應(yīng)用服務(wù),在該應(yīng)用服務(wù)調(diào)用失敗的情況下根據(jù)所述報警方式配置信息輸出報警信息。
5.一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的方法,該方法基于thrift協(xié)議和spring框架實(shí)現(xiàn),其特征在于,該方法包括: 客戶端在所要調(diào)用的服務(wù)系統(tǒng)中進(jìn)行注冊; 客戶端根據(jù)與服務(wù)端約定的類型,保存服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息; 客戶端在啟動服務(wù)時,獲取所述配置信息;然后根據(jù)所述配置信息調(diào)用所述服務(wù)系統(tǒng)的接口。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于, 所述進(jìn)行注冊的步驟包括保存以XML方式配置的配置信息; 所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以XML方式配置的配置信息。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于, 所述進(jìn)行注冊的步驟包括保存以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息; 所述服務(wù)類型接口、協(xié)議類型、以及傳輸類型的配置信息包括以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息。
8.一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的裝置,該裝置基于thrift協(xié)議和spring框架實(shí)現(xiàn),其中包括thrift組件,其特征在于,該裝置還包括: XML解析模塊,用于解析以XML方式配置的配置信息;注解解析模塊,用于解析以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息; 服務(wù)注冊解析模塊,用于解析以XML方式配置的配置信息以及以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftService注解的方式配置的配置信息。
9.一種實(shí)現(xiàn)服務(wù)端與客戶端通訊的裝置,該裝置基于thrift協(xié)議和spring框架實(shí)現(xiàn),其中包括thrift組件,其特征在于,該裝置還包括: XML解析模塊,用于解析以XML方式配置的配置信息; 注解解析模塊,用于解析以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解的方式配置的配置信息; 服務(wù)注冊解析模塊,用于解析以XML方式配置的配置信息以及以在業(yè)務(wù)實(shí)現(xiàn)類中添加OThriftClient注解 的方式配置的配置信息。
【文檔編號】H04L29/08GK104009994SQ201410238129
【公開日】2014年8月27日 申請日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
【發(fā)明者】呂波 申請人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司