CN1251079C - 实现不同系统之间数据交互的方法 - Google Patents
实现不同系统之间数据交互的方法 Download PDFInfo
- Publication number
- CN1251079C CN1251079C CN 02123580 CN02123580A CN1251079C CN 1251079 C CN1251079 C CN 1251079C CN 02123580 CN02123580 CN 02123580 CN 02123580 A CN02123580 A CN 02123580A CN 1251079 C CN1251079 C CN 1251079C
- Authority
- CN
- China
- Prior art keywords
- interface
- client process
- command line
- result data
- interface proxy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
一种实现不同系统之间数据交互的方法,将需要服务的客户进程与提供服务的服务进程通过接口代理进行交互,该接口代理接收命令行参数并独立运行;命令行参数包括:指定存放参数输入的文件信息、指定存放返回结果数据的文件信息;或为用于传递参数和结果数据的输入输出重定向操作符;本发明实现了多个独立分布子系统间的通讯,简化了各子系统开发人员之间的交流,协调和统一工作,简化了远程方法的调用过程;由于接口代理对客户进程屏蔽了通讯和交互的实现,子系统的变动不会影响到客户进程,增加了各系统的独立性,增强了整个系统的灵活性,提高了整个系统的整体开发效率和质量。
Description
技术领域:
本发明涉及一种实现不同系统之间数据交互的方法,特别是指一种方便客户进程调用服务进程的方法和数据,简化程序员在实现多进程之间进行通讯中的工作量,提高松散连接的分布式软件系统的开发效率和质量的接口代理方法。
背景技术:
现有软件系统之间实现进程间通讯的方法主要有以下几种:
1、通用对象请求代理体系结构(Common Object Request BrokerArchitecture,简称CORBA)/远程方法调用(Remote Method Invocation,简称RMI)/远程过程调用(Remote Procedure Calls,简称RPC);
2、自行建立通讯连接(管道或网络通讯协议(Transmission ControlProtocol/Internet Protocol,简称TCP/IP)),使用自行定义的应用协议;
3、共享存储信息;
4、进行消息传递;
在CORBA/RMI/RPC等高抽象层次的进程间通讯方式出现之前,软件系统之间实现进程间通讯的手段主要是前述2、3、4几种。使用这几种方式需要对进程之间的交互协议和通讯协议有深刻、详细的理解。在此基础上程序员必须编写大量的代码来实现这些协议。如果在两个独立的复杂系统之间建立这样的通讯就意味着需要建立非常多的约定;这样,在两个系统的相关部分之间就会出现冲突和妥协,系统的独立性、自主性和自我完整性也因此会受到影响。对于大型系统中多个异构的子系统(采用不同语言实现,运行于不同的平台的多个系统)而言,意味着各子系统程序员之间需要更多的交流,这些无疑会造成一些不利于系统稳定的因素。
具有高度抽象的进程之间通讯的CORBA/RMI/RPC对程序员屏蔽了通讯协议和交互协议代码,并且提供多种语言和平台的实现方法,简化了程序员的工作,提高了开发的效率。但是,同时,这类方法也导致在编程过程中需要引入其它实现代码;例如:对于CORBA而言,就必须用接口定义语言(Interface Definition Language,简称IDL)编写模版,同时在程序中还要加入大量相关的管理和初始化的工作;此外,程序员学习和理解CORBA的机制则是不可避免的,各系统程序员之间的交流、协调和统一工作依然不能有效地减少。因此,对于一些应用领域,这些高抽象层次的进程之间的通讯方法还是显得过于繁琐。
发明内容:
本发明的目的在于提供一种实现不同系统之间数据交互的方法,方便客户进程调用服务进程的方法和数据,简化程序员在实现多进程之间进行通讯中的工作量,提高松散连接的分布式软件系统的开发效率和质量。
本发明的目的是这样实现的:
一种实现不同系统之间数据交互的方法,将需要服务的客户进程与提供服务的服务进程通过接口代理进行交互,该接口代理接收命令行参数并独立运行。
所述的命令行参数至少包括:指定存放参数输入的文件信息、指定存放返回结果数据的文件信息。
所述的命令行参数可利用输入输出重定向操作符来传递参数和结果数据。
所述的接口代理至少设有:命令行参数处理模块、接口参数和结果数据处理模块和接口代理通讯交互模块;
该命令行参数处理模块用于接收和处理客户进程与其进行交互时的命令行参数信息;
接口参数和结果数据处理模块用于处理接口参数和结果数据;
接口代理通讯交互模块用于与服务进程的通讯交互模块进行交互。
客户进程通过接口代理与服务进程进行交互的具体方法为:
步骤1:客户进程远程启动或本地启动该接口代理,加入命令行参数,同时将接口参数写入指定的文件中;
步骤2:接口代理读入命令行参数,同时按指定方式获取接口参数;
步骤3:接口代理与服务进程通讯获取结果数据;
步骤4:接口代理将结果数据按指定方式返回给客户进程并终止;
步骤5:客户进程得知接口代理运行结束,根据返回值判断状态;
步骤6:客户进程根据该状态按事先指定的方式读取结果数据;
步骤7:客户进程进入下一步工作。
本发明实现了大型系统多个独立分布子系统间的通讯,可以简化各子系统开发人员之间的交流,协调和统一工作,简化了远程方法的调用过程。由于接口代理对客户进程屏蔽了通讯和交互的实现,子系统的变动不会影响到客户进程,因此增加了各系统的独立性,增强了整个系统的灵活性,对于具有异构子系统的系统,这一优点尤为突出,提高了整个系统的整体开发效率和质量。
附图说明:
图1为本发明一实施例的结构原理示意图;
图2为本发明一实施例的运行系统的结构示意图。
具体实施方式:
以下结合附图和具体的实施例对本发明做进一步的详细说明:
参见图1,本发明将需要服务的进程做为客户进程1,提供服务的进程做为服务进程3。服务进程3根据客户进程1所需要的各个接口提供相应的接口代理2。
接口代理2设有:命令行参数处理模块、接口参数和结果数据处理模块和接口代理通讯交互模块;命令行参数处理模块用于接收和处理客户进程与其进行交互时的命令行参数信息;接口参数和结果数据处理模块用于处理接口参数和结果数据;接口代理通讯交互模块用于与服务进程的通讯交互模块进行交互。
接口代理2可独立执行,它接收命令行参数。该命令行参数指定存放参数输入的文件,同时指定存放返回结果数据的文件。此外,命令行参数还可利用输入输出重定向操作符来传递参数和结果数据,从而避免磁盘访问。
接口代理2除了一致的命令行参数处理、接口参数输入处理和接口结果输出处理外,其它部分由于对于客户进程是完全透明的,因此,可依据服务进程方系统的特点和需要,随意定制通讯协议和交互方法,达到紧密结合,高效安全,自成系统的目的。例如,服务进程方系统采用JAVA语言编写,则接口代理也可以用JAVA编写,并可以采用RMI实现通讯和交互,这些对于客户进程则是完全屏蔽的。
客户进程1使用接口代理2非常方便。客户进程1可在程序中远程启动或本地启动该接口代理2,并加入命令行参数,同时将接口参数按约定写入指定的文件中。接口代理2进程读入命令行参数,同时按指定方式获取接口参数,然后与服务进程3通讯获取结果数据,将结果数据按指定方式返回给客户进程1并终止。客户进程1得知接口代理2运行结束,根据返回值判断状态,成功或失败。根据该状态按事先自己指定的方式读取结果数据,然后进入下一步工作,从而完成整个接口调用。
参见图2,例如:在一大型信息管理系统中,各子系统向集中管理系统提供管理信息和手段,可视为服务提供者,即服务进程。而集中管理系统利用各子系统的服务实现其集中管理的功能。由于实现上的原因,例如,由于硬件需求,硬件监控管理子系统用C语言实现,而集中管理系统由于多平台目标的需要,用JAVA语言实现。为了加快进度和效率,减少集中管理系统的复杂度,可以采用本发明的接口代理。
以硬件监控管理子系统为例,由集中管理系统开发小组提交接口需求和数据规范,硬件监控管理子系统与服务进程的交互可以仅开发各接口需求对应的接口代理。
例如:在硬件信息获取接口中:
接口代理与硬件监控管理子系统采用简单网络管理协议(SimpleNetwork Management Protocol简称SNMP通讯协议),硬件监控管理子系统为SNMP代理(Agent)。接口代理采用C语言实现,运行平台为WINDOWS。
使用过程如下:
集中管理系统在程序中本地调用该接口代理(该接口代理为一可执行的程序GetHardwareInfo.exe),其调用命令行为:
GetHardwareInfo.exe-in=all-out=2345.xml;
其中:-in=all和-out=2345.xml均为命令行参数;
接口代理(GetHardwareInfo.exe)启动后,读取命令行参数-in=all和-out=2345.xml,得悉需要获取所有硬件信息;
接口代理(GetHardwareInfo.exe)通过SNMP协议获取硬件监控管理子系统中管理信息库(Management Information Base,简称:MIB)中的硬件信息;
接口代理(GetHardwareInfo.exe)将结果数据存入文件2345.xml并返回退出状态;
集中管理系统检查接口代理(Get HardwareInfo.exe)的退出状态;
如果该退出状态为正常,则读取文件2345.xml,获取相应的硬件信息;
接口调用结束。
最后所应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同地替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1、一种实现不同系统之间数据交互的方法,该方法是通过接口代理实现需要服务的客户进程与提供服务的服务进程的交互;所述接口代理设有:命令行参数处理模块、接口参数和结果数据处理模块和接口代理通讯交互模块;所述命令行参数处理模块用于接收和处理客户进程与其进行交互时的命令行参数信息;所述接口参数和结果数据处理模块用于处理接口参数和结果数据;所述接口代理通讯交互模块用于与服务进程的通讯交互模块进行交互,其特征在于:所述客户进程与服务进程的交互过程具体包括以下步骤:
步骤1:客户进程远程启动或本地启动该接口代理,加入命令行参数,同时将接口参数写入指定的文件中;
步骤2:接口代理读入命令行参数,同时按指定方式获取接口参数;
步骤3:接口代理与服务进程通讯获取结果数据,
步骤4:接口代理将结果数据按指定方式返回给客户进程并终止;
步骤5:客户进程得知接口代理运行结束,根据返回值判断状态;
步骤6:客户进程根据该状态按事先指定的方式读取结果数据;
步骤7:客户进程进入下一步工作。
2、根据权利要求1所述的实现不同系统之间数据交互的方法,其特征在于:所述的命令行参数包括:指定存放参数输入的文件信息、指定存放返回结果数据的文件信息。
3、根据权利要求1所述的实现不同系统之间数据交互的方法,其特征在于:所述的命令行参数利用输入输出重定向操作符传递参数和结果数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02123580 CN1251079C (zh) | 2002-07-03 | 2002-07-03 | 实现不同系统之间数据交互的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02123580 CN1251079C (zh) | 2002-07-03 | 2002-07-03 | 实现不同系统之间数据交互的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1466051A CN1466051A (zh) | 2004-01-07 |
CN1251079C true CN1251079C (zh) | 2006-04-12 |
Family
ID=34142384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02123580 Expired - Fee Related CN1251079C (zh) | 2002-07-03 | 2002-07-03 | 实现不同系统之间数据交互的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1251079C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4717426B2 (ja) * | 2004-12-07 | 2011-07-06 | キヤノン株式会社 | 情報処理装置及びその方法 |
CN101360060B (zh) * | 2008-09-18 | 2011-05-11 | 中兴通讯股份有限公司 | 实现系统间数据交互的处理单元、数据发送/接收方法 |
CN101739300A (zh) * | 2008-11-18 | 2010-06-16 | 中兴通讯股份有限公司 | 一种多媒体终端进程间通讯的方法和系统 |
CN101655806B (zh) * | 2009-09-25 | 2012-05-23 | 马丰文 | 一种软件系统内部组件数据交互方法及数据交互系统 |
CN101706901B (zh) * | 2009-12-01 | 2012-07-25 | 中国建设银行股份有限公司 | 实现屏蔽不同工作流产品的装置及方法 |
CN103365715A (zh) * | 2013-06-17 | 2013-10-23 | 广东电网公司电力调度控制中心 | 一种快速调用bpa暂态计算程序的方法和系统 |
CN107301137A (zh) * | 2017-07-04 | 2017-10-27 | 福建中金在线信息科技有限公司 | Rset接口实现方法和装置及电子设备和计算机可读存储介质 |
CN109426571B (zh) * | 2017-08-28 | 2022-05-13 | 阿里巴巴集团控股有限公司 | 函数调用和数据访问的方法、系统、存储介质、处理器和装置 |
-
2002
- 2002-07-03 CN CN 02123580 patent/CN1251079C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1466051A (zh) | 2004-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100253930B1 (ko) | 고성능 사용자 레벨 네트워크 프로토콜 서버 시스템에 대한 동적 실행 유닛 관리 | |
Brodie | The promise of distributed computing and the challenges of legacy information systems | |
US7428728B2 (en) | Interface definition language compiler | |
US5724512A (en) | Methods and apparatus for storage and retrieval of name space information in a distributed computing system | |
CN1108569C (zh) | 具有无数据端点机的可伸缩和可扩充系统管理结构 | |
US6542920B1 (en) | Mechanism for implementing multiple thread pools in a computer system to optimize system performance | |
US8849892B2 (en) | Method and system for brokering messages in a distributed system | |
US6978447B1 (en) | Method and system for efficiently interpreting a computer program | |
EP1204259A2 (en) | Data management framework for policy management | |
CN1306430C (zh) | 基于构件的用户自定义事件方法 | |
CN1159631A (zh) | 客户/服务器计算机系统中处理不同协议方法调用的方法和装置 | |
CN1270229C (zh) | 基于动态内核实现跨地址空间创建构件对象的方法 | |
CN1251079C (zh) | 实现不同系统之间数据交互的方法 | |
CN1577277A (zh) | 管理程序应用 | |
US6516354B2 (en) | Method and apparatus for efficient representation of variable length identifiers in a distributed object system | |
CN1208481A (zh) | 分布式处理 | |
CN1929463A (zh) | 对象请求代理、用于提供资源高效传送的方法和装置 | |
CN1317849C (zh) | 一种网络管理系统和方法 | |
CN1592887A (zh) | 一种移动通信设备应用程序处理系统 | |
CN1744594A (zh) | Web服务传输协议适配器及其生成方法 | |
CN1266604C (zh) | 大规模异构机群的管理系统及传递数据和分发命令方法 | |
CN1271541C (zh) | 一种机群管理系统及其信息处理方法 | |
CN1275148C (zh) | 构件化软件中非功能特征组装方法 | |
CN1471018A (zh) | 通用接口机系统及其实现方法 | |
CN1932760A (zh) | 开发和执行平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060412 Termination date: 20200703 |