999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Thrift的RPC中間件在航天信息系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

2018-01-05 01:01:21孔維萍蔣曉肖肖永利
計(jì)算機(jī)測(cè)量與控制 2017年12期
關(guān)鍵詞:信息化服務(wù)系統(tǒng)

楊 帆,孔維萍, 蔣曉肖, 肖永利, 虢 華

(上海航天控制技術(shù)研究所,上海 200233)

基于Thrift的RPC中間件在航天信息系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

楊 帆,孔維萍, 蔣曉肖, 肖永利, 虢 華

(上海航天控制技術(shù)研究所,上海 200233)

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,大數(shù)據(jù)存儲(chǔ)技術(shù)日趨成熟,針對(duì)系統(tǒng)應(yīng)用實(shí)施中存在的跨平臺(tái)和可擴(kuò)展性問題,分析了在航天信息系統(tǒng)中遠(yuǎn)程服務(wù)調(diào)用的幾種技術(shù)方法,提出了基于Thrift技術(shù)設(shè)的一種跨平臺(tái)可擴(kuò)展的遠(yuǎn)程調(diào)用中間件,利用Thrift框架的技術(shù)特點(diǎn),有效提高了可擴(kuò)展性和高效傳輸性能;實(shí)際應(yīng)用表明,該技術(shù)方案在跨平臺(tái)可擴(kuò)展性有顯著優(yōu)勢(shì),大數(shù)據(jù)傳輸性能優(yōu)越,較好地滿足信息化項(xiàng)目的需求。

Thrift;遠(yuǎn)程過程調(diào)用;航天信息化

0 引言

國(guó)家十三五以來,互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等信息化技術(shù)高速發(fā)展,帶動(dòng)了航天軍工系統(tǒng)的信息化應(yīng)用,多數(shù)型號(hào)設(shè)備實(shí)驗(yàn)測(cè)試軟件也逐步從單機(jī)單軟、專機(jī)專用的定制化研發(fā)模式向通用化、信息化的技術(shù)發(fā)展。劉杰等[1]介紹了航天信息化工程中云計(jì)算方面的應(yīng)用情況,胡明明等[2]探討了航天系統(tǒng)中信息化通用標(biāo)準(zhǔn)體系的構(gòu)建,馬昌超等[3]介紹了航天信息化的建設(shè)模式。本文調(diào)研了主流互聯(lián)網(wǎng)產(chǎn)品的應(yīng)用情況,根據(jù)阿里巴巴公司的實(shí)時(shí)數(shù)據(jù)傳輸平臺(tái)[4],以及Facebook的開源日志收集系統(tǒng)[5]等的信息技術(shù)研究,結(jié)合航天信息化系統(tǒng)應(yīng)用背景,提出了一種基于Thrift框架的跨平臺(tái)、跨語言的遠(yuǎn)程過程調(diào)用協(xié)議(remote procedure call protocol,RPC)方案,并在自研的信息化項(xiàng)目能源系統(tǒng)(energy mangement system,EMS)、試驗(yàn)管理系統(tǒng)(test data management system,TDM)中成功應(yīng)用,取得良好的效果。

1 基于Thrift框架的遠(yuǎn)程服務(wù)調(diào)用分析

1.1 遠(yuǎn)程服務(wù)調(diào)用應(yīng)用分析

目前,遠(yuǎn)程服務(wù)調(diào)用的技術(shù)實(shí)現(xiàn)方式大致可分為三類[6]:第一類,采用分布式對(duì)象技術(shù);第二類,基于過程的服務(wù)調(diào)用;第三類,通過WebService服務(wù)調(diào)用方式。

分布式對(duì)象技術(shù)是最早期提出的一種實(shí)現(xiàn)方式,主要技術(shù)有:RMI(remote method invocation,遠(yuǎn)程方法調(diào)用)/EJB(enterprise java bean, JavaEE服務(wù)器端組件模型),COM(component object model,組件對(duì)象模型)/DCOM(distribute component object model,分布式組件對(duì)象模型)/COM+和OMG (object management group,對(duì)象管理組織)提出的CORBA(common object request broker architecture,公用對(duì)象請(qǐng)求代理體系結(jié)構(gòu))[7]。其中比較流行的技術(shù)是微軟提出的COM/DCOM和OMG對(duì)象管理組織提出的CORBA。COM/DCOM/COM+是基于組件的對(duì)象模型,DCOM比COM技術(shù)支持更多的通信協(xié)議,而且在分布式處理性能優(yōu)于COM,COM+則在延續(xù)COM技術(shù)的基礎(chǔ)上增加了分布式網(wǎng)絡(luò)應(yīng)用程序的設(shè)計(jì)和實(shí)現(xiàn)[8]。CPRBA技術(shù)廣泛應(yīng)用在分布式產(chǎn)品中,解決了分布式環(huán)境下軟硬件系統(tǒng)的互連問題。實(shí)際應(yīng)用中,上述技術(shù)均要求客戶端和服務(wù)端應(yīng)用明確的同類型對(duì)象協(xié)議模型,在跨語言和可擴(kuò)展性方面的應(yīng)用有較高難度。

基于過程的遠(yuǎn)程服務(wù)調(diào)用主要指RPC,是基于客戶端/服務(wù)器的分布式架構(gòu)模型[9]。類似于本地API,部署在客戶端的應(yīng)用程序(Client)通過RPC的服務(wù)請(qǐng)求調(diào)用部署在在網(wǎng)絡(luò)中某節(jié)點(diǎn)的RPC服務(wù)器端(Server)的服務(wù)。目前,主流的RPC技術(shù)有Facebook在2008年開源的支持跨語言特性的服務(wù)部署框架Apache Thrift,Hadoop創(chuàng)始人Doug Cutting領(lǐng)導(dǎo)開發(fā)的數(shù)據(jù)序列化系統(tǒng)Apache Avro以及Google發(fā)布的自動(dòng)序列化、反序列化結(jié)構(gòu)化數(shù)據(jù)的機(jī)制Protocol Buffers[10]。它們提供跨語言的序列化和通信支持,不僅解決了分布式對(duì)象技術(shù)的兼容性問題,同時(shí)在高并發(fā),跨平臺(tái)語言及大數(shù)據(jù)傳輸上有明顯優(yōu)勢(shì)。

Web Service服務(wù)調(diào)用方式是通過Web訪問實(shí)現(xiàn),具有模塊自包含和自描述特性的新型Web應(yīng)用程序分支[11]。這種方式使用標(biāo)準(zhǔn)互聯(lián)網(wǎng)協(xié)議,既是一種編程組件,又是一種遠(yuǎn)程服務(wù)調(diào)用方式。其中,HTTP協(xié)議為最常用的傳輸協(xié)議,最常見的消息交換方式為JSON-RPC、XML-RPC以及SOAP(Simple Object Access Protocol)等[12]。而Web Service在傳輸過程中攜帶的冗余信息多,在編碼和解碼xml文件上處理耗時(shí)也較高,因此,在處理信息系統(tǒng)的并發(fā)應(yīng)用中對(duì)服務(wù)器的負(fù)載較高,導(dǎo)致性能較低[13]。

1.2 Thrift框架原理特點(diǎn)

經(jīng)調(diào)研分析,Apache Thrift、Apache Avro 以及 Protocol Buffers 這3種主流的新型RPC框架在大數(shù)據(jù)傳輸、大規(guī)模并發(fā)調(diào)用中性能優(yōu)異,尤其適合應(yīng)用于云計(jì)算。考慮信息化系統(tǒng)中的對(duì)可擴(kuò)展性,高并發(fā)和數(shù)據(jù)體量等方面的要求,進(jìn)一步分析比較3種RPC技術(shù)方式的特點(diǎn),得出Thrift框架最適合應(yīng)用在信息化系統(tǒng)這種大型的的數(shù)據(jù)通信中間件搭建中,本文提出采用基于Thrift的RPC框架進(jìn)行信息化系統(tǒng)中數(shù)據(jù)通信的中間件的設(shè)計(jì)方案。Thrift的框架結(jié)構(gòu)如圖1所示。

圖1 Thrift框架技術(shù)結(jié)構(gòu)示意圖

如上圖所示,Thrift 框架主要由4個(gè)部分組成,從上至下分別是應(yīng)用層、框架層、協(xié)議層以及傳輸層。用戶在應(yīng)用層對(duì)業(yè)務(wù)邏輯進(jìn)行自定義。Thrift的IDL對(duì)用戶定義的應(yīng)用層數(shù)據(jù)結(jié)構(gòu)進(jìn)行編譯,生成Server/Client端代碼框架和讀寫操作,即圖中FooService.Client和Foo.Write()/Read()。TProtocol是負(fù)責(zé)管理不同類型數(shù)據(jù)編碼方案以及序列化和反序列化的協(xié)議。TTransport用于實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)膫鬏攲樱讓覫/O通信負(fù)責(zé)實(shí)際的數(shù)據(jù)傳輸。

基于Thrift框架的通信協(xié)議,是通過內(nèi)部序列化機(jī)制對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)化,將數(shù)據(jù)以對(duì)象形式進(jìn)行傳輸,本地Client端通過過程聲明來調(diào)用遠(yuǎn)程Server端的方式實(shí)現(xiàn)數(shù)據(jù)的交換,提高了傳輸效率,降低了通信成本。Thrift結(jié)合其功能強(qiáng)大的軟件堆棧和代碼生成引擎,可以構(gòu)建在C#,C++,Java,Python,PHP,Ruby,JavaScript,Perl等編程語言間實(shí)現(xiàn)高效無縫的服務(wù)[14]。Thrift軟件框架支持的數(shù)據(jù)類型如表1所示。

service對(duì)應(yīng)服務(wù)的類Thrift協(xié)議層通過數(shù)據(jù)的序列化和反序列化機(jī)制,如JSON, XML, Plain Text, Binary, Compact Binary 等,抽象數(shù)據(jù)結(jié)構(gòu)的定義。傳輸協(xié)議主要分為文本和二進(jìn)制兩大類,為提高傳輸效率,大多數(shù)傳輸協(xié)議采用二進(jìn)制類型,常用的TProtocol通信協(xié)議如表2所示。

常用Thrift框架傳輸層如表3所示幾種。

常見的服務(wù)端類型如表4所示。

表1 數(shù)據(jù)類型表

表2 通信協(xié)議類型表

表3 傳輸層定義表

表4 服務(wù)端類型表

綜合分析比較,以Thrift 框架作為信息系統(tǒng)通信中間件設(shè)計(jì)架構(gòu)的主要技術(shù)解決方案,主要有以下優(yōu)勢(shì)特點(diǎn):

1)跨平臺(tái)語言,可擴(kuò)展性強(qiáng)。Thrift框架支持包括主流的C++ 、Java 、C# 、Python 、PHP 、Ruby 、JavaScript 及Coaca 、Smalltalk、OCaml 等十余種編程語言,有效實(shí)現(xiàn)基于不同開發(fā)語言的應(yīng)用系統(tǒng)的Server端和Client端無縫連接和數(shù)據(jù)交互,大大提高信息化系統(tǒng)的可擴(kuò)展性。

2)高效性:相較于傳統(tǒng)的 XML 和 JSON 格式和一般二進(jìn)制數(shù)據(jù)編碼格式而言, Thrift 具有更高效數(shù)據(jù)傳輸方式,支持更多類型對(duì)象進(jìn)行序列化和反序列化,耗能更少。

3)易用性:Thrift框架更容易被研發(fā)人員理解并應(yīng)用。用戶使用Thrift 框架時(shí),定義好描述數(shù)據(jù)傳輸協(xié)議、數(shù)據(jù)類型和服務(wù)的接口文件后,使用Thrift提供的編譯器即可自動(dòng)生成遠(yuǎn)程過程調(diào)用中間件的Server和Client端實(shí)現(xiàn),協(xié)議層和傳輸層代碼也自動(dòng)生成。因此,用戶無需手動(dòng)編寫基于不同語言、不同系統(tǒng)結(jié)構(gòu)的通信中間件代碼文件,只需維護(hù)統(tǒng)一的接口文件即可。

2 兩種Thrift的RPC中間件實(shí)現(xiàn)

基于Thrift 框架的數(shù)據(jù)調(diào)用中間件實(shí)現(xiàn)主要分三步。首先要定義數(shù)據(jù)傳輸對(duì)象的標(biāo)準(zhǔn)格式,并定義接收或者發(fā)送數(shù)據(jù)的接口。Thrift框架支持多種類型數(shù)據(jù)傳輸,可以是原始數(shù)據(jù)字節(jié)類型數(shù)組,基于MySQL 的查詢計(jì)算結(jié)構(gòu),也可以是文件數(shù)據(jù)流。第二步,通過Thrift 代碼生成引擎為各系統(tǒng)生成數(shù)據(jù)接口的底層實(shí)現(xiàn)。第三步,實(shí)現(xiàn)具體產(chǎn)品測(cè)試數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)功能。數(shù)據(jù)標(biāo)準(zhǔn)格式和服務(wù)接口格式是通過Thrift 文件來描述的,該文件定義了數(shù)據(jù)的各項(xiàng)信息以及接口函數(shù)的原型。Thrift 根據(jù)該文件會(huì)生成特定版本的數(shù)據(jù)接口實(shí)現(xiàn),開發(fā)者只需關(guān)心數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)。Thrift 引擎也可以編譯出不同的語言版本,從而實(shí)現(xiàn)跨語言跨平臺(tái)的調(diào)用。本節(jié)分別以Java 和 C#編程語言為版本介紹基于Thrift 框架中間件部署方法實(shí)現(xiàn)。

2.1 基于 Java的實(shí)現(xiàn)

本節(jié)以Java 語言為例,介紹Thrift 軟件框架應(yīng)用實(shí)現(xiàn)。實(shí)現(xiàn)中間件 Client端和 Server端部署時(shí),需要在開發(fā)環(huán)境中引入libthrift.jar,log4j.jar 等公共jar 包,并編寫創(chuàng)建Thrift 的IDL文檔 Test.thrift ,執(zhí)行thrift-0.9.3.exe -gen java Test.thrift 命令,調(diào)用Thrift編譯器生成Test.java 公共文件,部署過程示意如圖2所示。

圖2 基于Java的Thrift框架部署圖

如圖2所示,Client端調(diào)用Server端的 TestServiceClient.java 代碼。Server端的 Process 類對(duì)象實(shí)現(xiàn)RPC請(qǐng)求處理的核心Test.Iface 接口,并啟動(dòng)TestServiceServer.java。Server 端和Client 端利用 Test.java 提供的API進(jìn)行遠(yuǎn)程服務(wù)調(diào)用。

Thrift服務(wù)器端的流程如下:

1)創(chuàng)建服務(wù)端口通道(TServerTransport);

2)確定傳輸協(xié)議(TProtocolFactory);

3)創(chuàng)建數(shù)據(jù)處理器 (Processor);

4)創(chuàng)建數(shù)據(jù)傳輸協(xié)議(Protocol);

5)基于Processor、TProtocolFactory和TServerTransport創(chuàng)建服務(wù)器模型(Server);

6)運(yùn)行Server。

此處框架的服務(wù)端采用高效密集的二進(jìn)制編碼格式 TCompactProtocol 進(jìn)行數(shù)據(jù)傳輸,Server端代碼示例如下:

public static void main(String[] args) {

try {

TServerTransport serverTransport = new TServerSocket(7911);

TProtocolFactory proFactory = new TCompactProtocol.Factory();

TMultiplexedProcessor processor = new TMultiplexedProcessor();

processor.registerProcessor("Test",new Test.Processor

(new Test.Impl()));

TServer server = new TThreadPoolServer(new Args(serverTransport).protocolFactory(proFactory).processor(processor));

System.out.println("Start server on port 7911...");

server.serve();

} catch (Exception e) {

/*異常處理*/

}

}

當(dāng)服務(wù)需要處理大量數(shù)據(jù)更新時(shí),Server 端使用 TThreadPoolServer 線程池服務(wù)模型,采用標(biāo)準(zhǔn)的阻塞式 I/O,預(yù)先創(chuàng)建一組線程處理請(qǐng)求,當(dāng)有客戶端連接過來時(shí),從線程池里分配可用的連接處理客戶端請(qǐng)求。

客戶端通過調(diào)用服務(wù)端的方法傳輸定義好的 Test 對(duì)象。具體的步驟為:

1)創(chuàng)建數(shù)據(jù)傳輸方式(Transport);

2)創(chuàng)建數(shù)據(jù)傳輸協(xié) 議(Protocol);

3)創(chuàng)建客戶模型(Client);

4)調(diào)用 Client 的相應(yīng)方法。 核心代碼如下:

public static void main(String[] args) {

try {

TTransport transport=new TSocket(ip, port);

Transport.open();

TProtocol protocol = new TMultiplexedProtocol(new TCompactPortocol(transport),"Test");

ProductTestInformationService.Client client = new Test.Client(protocol);

/* 服務(wù)端提供的接口方法*/

transport.close();

server.serve();

} catch (TException e) {

/*異常處理*/

}

}

2.2 基于C#的實(shí)現(xiàn)

基于C#語言實(shí)現(xiàn)信息系統(tǒng)中間件搭建時(shí),需要在工程中引用Thrift開源框架編譯生成的Thrift.dll,根據(jù)用戶定義的Thrift 的IDL文檔 Test.thrift ,執(zhí)行thrift-0.9.3.exe -gen csharp Test.thrift 命令,調(diào)用Thrift編譯器生成 Test.cs 公共文件,部署過程示意如圖3所示。

圖3 基于C#的Thrift框架部署圖

Client端調(diào)用Server端的 TestServiceClient.cs 代碼。Server端的實(shí)現(xiàn)Test.Iface 接口,并啟動(dòng)TestServiceServer.cs服務(wù)。Server 端和Client 端利用 Test.cs 提供的API 進(jìn)行遠(yuǎn)程服務(wù)調(diào)用。由于C#語言的限制無法使用非阻塞的多線程服務(wù)端,此處使用 TThreadPoolServer 線程池服務(wù)模型,采用標(biāo)準(zhǔn)的阻塞式 I/O。工程中Server 端核心代碼如下:

public void Start()

{

try

{

TServerSocket serverTransport = new TServerSocket(9090, 0, false);

//一個(gè)端口注冊(cè)多個(gè)服務(wù)

TMultiplexedProcessor processors = new TMultiplexedProcessor();

Test.Processor testProcessor = new Test.Processor(new Test Impl());

processors.RegisterProcessor("Test", testProcessor);

//多線程服務(wù)器

TServer server = new TThreadPoolServer(processors, serverTransport);

server.Serve();

}

catch (Exception x)

{

/*異常處理*/

}

}

Server 端使用 TThreadPoolServer 線程池服務(wù)模型,創(chuàng)建一組線程處理請(qǐng)求,當(dāng)有Client端連接請(qǐng)求時(shí),為其分配可用的連接處理線程。

客戶端通過調(diào)用服務(wù)端的方法傳輸定義好的 Test 對(duì)象。具體的步驟為:

1)創(chuàng)建數(shù)據(jù)傳輸方式(Transport);

2)創(chuàng)建數(shù)據(jù)傳輸協(xié) 議(Protocol);

3)創(chuàng)建客戶模型(Client);

客戶端核心代碼如下:

static void Main(string[] args)

{

try

{

TTransport transport = new TSocket("localhost", 9090);

TProtocol protocol = new TBinaryProtocol(transport);

Test.Client testClient = new Client.Client(protocol);

transport.Open();

Console.WriteLine("Test Client Calls");

transport.Close();

}

catch (Exception x)

{

/*異常處理*/

}

}

3 應(yīng)用實(shí)例

近年來信息化技術(shù)迅速發(fā)展,航天應(yīng)用系統(tǒng)緊跟時(shí)代步伐,所內(nèi)自主研發(fā)了能源管理系統(tǒng)(energy mangement system,簡(jiǎn)稱EMS)、試驗(yàn)管理系統(tǒng)(test data management system,簡(jiǎn)稱TDM)等多個(gè)信息化項(xiàng)目。針對(duì)信息化平臺(tái)特點(diǎn),本文基于Thrift 框架設(shè)計(jì)了靈活的跨語言數(shù)據(jù)通信遠(yuǎn)程服務(wù)調(diào)用中間件方案,有效解決信息化項(xiàng)目中各個(gè)系統(tǒng)技術(shù)架構(gòu)迥異,協(xié)議開發(fā)難度大等問題。本文以EMS系統(tǒng)為例,將此方案在各信息化系統(tǒng)中進(jìn)行廣泛推廣和應(yīng)用。

能源管理系統(tǒng)是響應(yīng)國(guó)家 “十三五”號(hào)召,全方面為實(shí)現(xiàn)“指標(biāo)能分解、責(zé)任能落實(shí)、監(jiān)管能有效、考核有實(shí)效”目標(biāo),踐行人人參與的節(jié)能減排,以信息化技術(shù),科學(xué)實(shí)現(xiàn)能耗減排而自主研制的信息化系統(tǒng)。能源管理系統(tǒng)為航天研發(fā),產(chǎn)品生產(chǎn)的節(jié)能用能管控提供良好的信息化管控手段,改變既有的人工干預(yù)管理的方式,采用硬件與軟件結(jié)合,通過實(shí)時(shí)高效的采集電、水等計(jì)量?jī)x表設(shè)備的數(shù)據(jù),進(jìn)行數(shù)據(jù)整理和統(tǒng)計(jì)分析,通過數(shù)據(jù)建模和圖表繪制,以信息化手段進(jìn)行數(shù)據(jù)管理,為能源的監(jiān)控和管理提供強(qiáng)有力的數(shù)據(jù)支撐,及監(jiān)管條件,有效實(shí)現(xiàn)精細(xì)化管理,提高工作效率。系統(tǒng)提供數(shù)據(jù)預(yù)警及設(shè)備報(bào)警功能,能隨時(shí)發(fā)現(xiàn)跑、冒、滴、漏,有效地保證工業(yè)生產(chǎn)中的能源的高效利用,杜絕能源浪費(fèi)。EMS系統(tǒng)組成結(jié)構(gòu)如圖4所示。

圖4 基于Thrift的EMS框架示意圖

能源管理系統(tǒng)中數(shù)據(jù)存儲(chǔ)層是采用C#語言實(shí)現(xiàn),前臺(tái)B/S端采用Java語言實(shí)現(xiàn),本文提出的基于Thrift框架設(shè)計(jì)的遠(yuǎn)程調(diào)用中間件,有效的解決此類異構(gòu)系統(tǒng)的接口服務(wù)調(diào)用問題,設(shè)計(jì)人員只需定義好數(shù)據(jù)傳輸對(duì)象格式,無需針對(duì)編程語言的差異額外開發(fā)協(xié)議轉(zhuǎn)換模塊,大大降低系統(tǒng)開發(fā)時(shí)間,提高開發(fā)效率。

能源管理系統(tǒng)中使用Thrift 框架技術(shù)作為B/S應(yīng)用層、數(shù)據(jù)采集提取層與數(shù)據(jù)存儲(chǔ)中心的服務(wù)調(diào)用中間件,根據(jù)系統(tǒng)數(shù)據(jù)通信協(xié)議定義的對(duì)象服務(wù)IDL文件,通過Thrift提供的編譯器生成接口代碼。當(dāng)前臺(tái)用戶在界面上通過Client端發(fā)起服務(wù)請(qǐng)求時(shí),服務(wù)注冊(cè)組件尋找業(yè)務(wù)的綁定信息并獲取指定鏈接,調(diào)用Server端的服務(wù),繼而Server端返回調(diào)用結(jié)果,展現(xiàn)給用戶。Thrift技術(shù)是整個(gè)業(yè)務(wù)調(diào)用的關(guān)鍵橋梁,為遠(yuǎn)程服務(wù)調(diào)用提供可靠性能保障。

4 結(jié)束語

本文通過分析常用的幾種遠(yuǎn)程服務(wù)調(diào)用方法,提出基于Thrift 實(shí)現(xiàn)的RPC 中間件方案,并應(yīng)用在航天信息化系統(tǒng)建設(shè)中,并以C# 和Java 兩種語言構(gòu)建典型的Server/Client應(yīng)用,展示了Thrift 框架的使用。信息化系統(tǒng)架構(gòu)中數(shù)據(jù)通信中間件通過Thrift 框架的跨平臺(tái)跨語言以及數(shù)據(jù)高效傳輸?shù)忍攸c(diǎn),提高信息化系統(tǒng)的可擴(kuò)展性,大大降低系統(tǒng)的研發(fā)成本。相較于基于傳統(tǒng)的WebService 的解決方案,實(shí)施難度更低,研發(fā)成本更小,且具有更高的傳輸效率,尤其在大數(shù)據(jù)交換和存儲(chǔ)方面表現(xiàn)優(yōu)異,在信息化系統(tǒng)的實(shí)施中具有良好的應(yīng)用前景。

[1] 劉 杰, 丁向峰, 柴旭東,等. 云計(jì)算在航天信息化工程中的應(yīng)用與探討[J]. 軍民兩用技術(shù)與產(chǎn)品, 2011(10):12-14.

[2] 胡明明, 楊前進(jìn), 段 曉. 航天器信息化標(biāo)準(zhǔn)體系構(gòu)建初探[J]. 航天標(biāo)準(zhǔn)化, 2015(1):18-22.

[3] 馬昌超, 陳金蘭. 航天信息化建設(shè)模式探討[A].中國(guó)宇航學(xué)會(huì)計(jì)算機(jī)應(yīng)用專業(yè)委員會(huì)2004年學(xué)術(shù)交流會(huì),2004.

[4] 周 豪. 大數(shù)據(jù)量下的實(shí)時(shí)數(shù)據(jù)報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué), 2016.

[5] 李 俊. 基于塊聚集的MapReduce性能研究與優(yōu)化[D]. 北京:北京交通大學(xué), 2014.

[6] 李 洋. 云計(jì)算中可擴(kuò)展的遠(yuǎn)程服務(wù)調(diào)用機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué), 2012.

[7] 胡 珉,許占文,張 宇. 用 Java RMI 實(shí)現(xiàn) JDBC 遠(yuǎn)程調(diào)用的介紹[J]. 沈陽工業(yè)大學(xué)學(xué)報(bào),2003,25(1):65-68.

[8] David S. Platt. Understanding COM+ [M] :55-79.

[9] 孫統(tǒng)風(fēng),孟現(xiàn)飛,姜利群. 基于RPC 的Agent 通信模型及其實(shí)現(xiàn)[J]. 現(xiàn)代計(jì)算機(jī),2003 (7):10-13.

[10] 史棟杰. 5種快速序列化框架的性能比較[J]. 電腦知識(shí)與技術(shù),2010(34):9710-971.

[11] 程曉飛. 基于 REST 架構(gòu)的 Web Services 的研究與設(shè)計(jì)[D]. 武漢:武漢理工大學(xué), 2010(5):15-23.

[12] 許卓明,栗 明,董逸生. 基于 RPC 和基于 REST 的 Web 服務(wù)交互模型比較分析[J]. 計(jì)算機(jī)工程,1003,29(20):6-8.

[13] 袁 赟. Java 與 Restful Web Service.電腦知識(shí)與技術(shù)(學(xué)術(shù)交流)[J].2007,4(21):780-782.

[14] 周 康, 李 覬, 董科軍,等. 一種基于Thrift的日志收集分析系統(tǒng)[J]. 科研信息化技術(shù)與應(yīng)用, 2015(2).

Design and Implement of RPC Middle Ware Based on Thrift Frame in Aerospace Information System

Yang Fan, Kong Weiping, Jiang Xiaoxiao, Xiao Yongli, Guo Hua

(Shanghai Aerospace Control Technology Institute, Shanghai 200233,China)

With the rapid development of internet, big data storage technology is gradually maturing. This paper analyze and compare several popular remote service invocation mechanisms in aerospace information application, then proposed a remote service invocation middleware based on the Thrift framework, which has a better transmission performance and expandability. The application indicates that, based on these techniques, the middleware is effective and flexible to expand, satisfying the needs of the projects.

Thrift; RPC; aerospace information

2017-04-12;

2017-05-10。

楊 帆(1988-),女,碩士研究生,主要從事衛(wèi)星地面測(cè)試系統(tǒng)以及信息化軟件,大數(shù)據(jù)存儲(chǔ)方向的研究。

1671-4598(2017)12-0279-04

10.16526/j.cnki.11-4762/tp.2017.12.072

TP391

A

猜你喜歡
信息化服務(wù)系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
月“睹”教育信息化
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
幼兒教育信息化策略初探
甘肅教育(2020年18期)2020-10-28 09:06:02
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 亚洲第一成网站| 国产成人精品18| 婷婷久久综合九色综合88| 91在线播放免费不卡无毒| 欧美日本不卡| 99久久99视频| 99在线观看免费视频| 亚洲国产天堂久久综合| 天堂在线视频精品| 最新午夜男女福利片视频| 手机精品福利在线观看| 久久国产精品嫖妓| 国产精品私拍在线爆乳| 日韩毛片在线播放| 亚洲精品男人天堂| 亚洲最大福利网站| 无码在线激情片| 国产女人水多毛片18| 亚洲日韩精品欧美中文字幕| 国产在线欧美| 欧美成人二区| 手机精品视频在线观看免费| 国产女人18毛片水真多1| 尤物午夜福利视频| 一级毛片免费观看久| 亚洲欧洲免费视频| 99这里只有精品免费视频| 国产 在线视频无码| 亚洲av无码成人专区| 亚洲日韩精品综合在线一区二区| 手机在线看片不卡中文字幕| 国产第八页| swag国产精品| 8090午夜无码专区| 精品少妇人妻av无码久久| 国产成人亚洲欧美激情| 精品一區二區久久久久久久網站| 国产无码网站在线观看| 中文字幕va| 伊人天堂网| 日韩无码白| 亚洲女同一区二区| 国产精品亚洲αv天堂无码| 四虎永久在线精品国产免费| 99一级毛片| 97综合久久| 欧美 亚洲 日韩 国产| 丁香婷婷在线视频| 久久夜色撩人精品国产| 欧美色伊人| 谁有在线观看日韩亚洲最新视频| 欧美成人怡春院在线激情| 91在线国内在线播放老师| 国产精品亚欧美一区二区| 亚洲视频影院| 无码中文AⅤ在线观看| 国产偷国产偷在线高清| 538国产视频| 国产麻豆精品在线观看| 亚洲第一成年人网站| 91麻豆国产在线| 久久夜色精品| 亚洲最大情网站在线观看| 中文字幕免费在线视频| 又黄又爽视频好爽视频| a毛片基地免费大全| 欧美成人免费午夜全| 少妇露出福利视频| 精品人妻一区二区三区蜜桃AⅤ| 亚洲成人福利网站| 91最新精品视频发布页| 国产中文在线亚洲精品官网| 久久婷婷六月| AV色爱天堂网| 亚洲成A人V欧美综合| 国产精品国产主播在线观看| 亚洲色图欧美激情| 日本久久久久久免费网络| 综合色88| 曰韩人妻一区二区三区| 国产成人毛片| 国产高清色视频免费看的网址|