CN103391294A - 一种基于服务描述的远程方法调用 - Google Patents

一种基于服务描述的远程方法调用 Download PDF

Info

Publication number
CN103391294A
CN103391294A CN2013103179447A CN201310317944A CN103391294A CN 103391294 A CN103391294 A CN 103391294A CN 2013103179447 A CN2013103179447 A CN 2013103179447A CN 201310317944 A CN201310317944 A CN 201310317944A CN 103391294 A CN103391294 A CN 103391294A
Authority
CN
China
Prior art keywords
service
description
java
invocation
calling
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.)
Pending
Application number
CN2013103179447A
Other languages
English (en)
Inventor
汤湛成
邓从健
宁学军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PCI Suntek Technology Co Ltd
Original Assignee
PCI Suntek Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PCI Suntek Technology Co Ltd filed Critical PCI Suntek Technology Co Ltd
Priority to CN2013103179447A priority Critical patent/CN103391294A/zh
Publication of CN103391294A publication Critical patent/CN103391294A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于服务描述的远程方法调用,利用XML对远程调用的方法进行描述,通过HTTP的调用实现对远程方法的调用。远程方法的调用过程包括:服务的注册、服务的调用、服务执行、服务调用结果的返回四部分。本发明主要解决了在一个JAVA虚拟机内或者多个虚拟机之间的远程方法调用的问题。

Description

一种基于服务描述的远程方法调用
技术领域
本发明涉及Web环境应用领域,特别是涉及一种基于HTTP协议上实现远程方法的调用,通过使用本发明在Web领域下,可以很好解决应用服务器内部模块或者应用服务器之间的模块方法调用问题。 
背景技术
目前基于WEB应用服务的应用都是基于模块化的开发方式,大部分都是基于WAR的模式进行部署,由于每个WAR模块之间的Classloader都是独立,相互之间是隔离的,所以无法直接实现模块之间的方法的调用,由于模块之间在很多应用场合中都需要实现相互之间的交互,通过HTTP的远程的方法调用是一种很好的解决相互之间调用问题的一种解决方式。 
本方法是通过服务描述的方式进行的服务注册,服务的提供由服务的注册来提供实现,除了可以解决模块之间的方法调用问题外,由于服务的监听是通过HTTP地址的方式来提供,所以服务可以分布在不同的应用服务器之间,从而实现服务的分布式的部署。 
发明内容
本发明所要解决的技术问题是在Web环境下基于HTTP协议上实现远程方法调用,本方法的实现包括:服务的描述、服务的注册、服务的监听、服务的查找、服务的调用、服务的执行、服务的结果返回六部分。 
1、服务的描述 
服务的调用过程最终转化成对JAVA的类的方法的调用过程,服务的描述格式如下: 
<Services> 
<Service 
serviceID=″服务ID″ 
serviceName=″服务名称″ 
className=″实现的类名″ 
description=″服务的描述及参数说明″ 
endpoint=″服务远程调用的URL″ 
methodName=″方法名″/> 
</Services> 
2、服务的注册 
服务端提供了基于HTTP的接口服务的注册接口,服务接口体现为一个HTTP的地址描述,通过HTTP的地址接受来之客户端的服务注册请求,并进行登记注册。HTTP的请求内容为: 
<Services> 
<Service 
serviceID=″服务ID″ 
serviceName=″服务名称″ 
className=″实现的类名″ 
description=″服务的描述及参数说明″ 
endpoint=″服务远程调用的URL″ 
methodName=″方法名″/> 
</Services> 
3、服务的监听 
服务的监听有客户端来完成,服务的监听为HTTP的地址,服务监听程序通过接收HTTP的POST请求内容,POST的内容为序列号的JAVA对象的二进制内容。 
4、服务的查找 
服务的查找通过服务ID进行查找,通过服务ID可以获取到服务地址、实现类、实现方法以及参数的描述。 
5、服务的调用 
服务的调用过程创建一个服务,如下: 
Service service=new Service(服务ID); 
服务ID为创建服务的对象的参数,服务对象通过传入的服务ID从已经注册的服务中查找服务信息,完成服务信息的查找后,通过设定服务的调用参数,如下: 
service.setParameter(参数下标,参数值); 
服务的参数由参数的下标和参数值注册,参数的下标从1开始,1代表是服务调用的第一个参数,参数值为JAVA的类型,包括:String,int,long,double,byte,float,char,Object。 
服务的调用通过把Serivce对象进行序列化,把序列化后的二进制以HTTP的POST的方式通过body发送到服务的注册的URL。 
6、服务的执行 
服务提供者接收到服务的HTTP的POST请求后,通过获取HTTP协议中的BODY的二进制数据,然后通过反序列化的操作,重新生成Service对象,然后根据Service对象的服务描述中的实现类、实现方法、参数值通过JAVA的反射进行本地方法的调用。 
7、服务的结果返回 
服务提供者完成本地的服务方法调用后,把方法执行后返回值存在在Resul t对象中,然后把Result对通过JAVA序列化成二进制内容,然后通过HTTP的响应BODY返回到调用方,调用方获取到响应BODY的内容后,通过JAVA的反序列化操作重新生成Result对象,最后获取到Result对象的返回结果值获取到最终的调用结果。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 
图1为本发明为系统原理示意图; 
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
实施例一,参见图, 
本发明提供一种基于服务描述的远程方法的实现。本专利提供了服务的目录树管理功能,服务的生产者实现了服务后,往服务目录树中注册服务信息,服务的消费者通过服务的目录树进行服务的查找,根据查找的服务信息进行服务调用的调用过程。系统的原理示意图参见图1,具体包括以下几个部分: 
图中S01表示:服务生产者的功能 
服务生产者实现了服务,服务的行为表现为JAVA的一个方法,具体的服务的处理的业务逻辑包含在JAVA类的方法中,例如:短信的发送服务、邮件的发送服务、红黑名单的判断服务等。服务的生产者根据的服务的描述方式通过HTTP接口的方式注册到服务目录树进行登记。服务的生产者同时也负责处理服务消费者发送的服务请求。 
图中S02表示:服务的消费者 
服务的消费者根据服务ID服务目录树提供的HTTP的接口方式进行服务的查找获取服务的信息 
图中S03表示:服务的调用 
服务的消费者根据服务的描述设置服务的执行参数,然后服务生产者提供的HTTP地址发起服务的调用,服务的生产者获取到服务的处理请求后进行服务的对应的JAVA类的方法的调用,然后把方法调用的结果直接在HTTP请求的响应Body中返回的给服务的消费者,服务的消费者获得服务的执行结果。 
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明是一套软件解决方案,更多地可借助软件加必需的通用硬件平台的方式集成到Web应用环境来实现。本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件服务的形式体现出来,并作为其中一部分软件服务集合到 Web应用系统应用产品中。 
对于系统实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。 
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。上面列举的将本发明集成到web系统应用中的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。 
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。 

Claims (4)

1.一种基于服务描述的远程方法调用,特征在于通过服务的描述实现一个或者多个JAVA虚拟机之间的远程方法调用,解决同一个JAVA虚拟机或者多个虚拟机之间的不同Classloader的方法调用的问题,通过服务的描述,把服务分布在不同的JAVA虚拟机中以达到基于服务的负载的目标;本方法的实现包括:服务的描述、服务的注册、服务的监听、服务的查找、服务的调用、服务的处理、服务的结果返回六部分。
2.根据权利要求1所述的服务的描述基于XML格式,格式定义如下:
<Services>
<Service
serviceID=″服务ID″
serviceName=″服务名称″
className=″实现的类名″
description=″服务的描述及参数说明″
endpoint=″服务远程调用的URL″
methodName=″方法名″/>
</Services>。
3.根据权利要求1所述的方法,其特征在于,还包括:服务的调用和返回都是基于对象的序列化来实现,传输过程基于HTTP的协议上进行传输。
4.根据权利要求2所述的方法,其特征在于,还包括:服务的执行是基于服务描述中的JAVA实现类、实现方法以及方法的参数值的基础上通过JAVA的反射机制然后完成远程方法的调用。
CN2013103179447A 2013-07-24 2013-07-24 一种基于服务描述的远程方法调用 Pending CN103391294A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013103179447A CN103391294A (zh) 2013-07-24 2013-07-24 一种基于服务描述的远程方法调用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013103179447A CN103391294A (zh) 2013-07-24 2013-07-24 一种基于服务描述的远程方法调用

Publications (1)

Publication Number Publication Date
CN103391294A true CN103391294A (zh) 2013-11-13

Family

ID=49535451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013103179447A Pending CN103391294A (zh) 2013-07-24 2013-07-24 一种基于服务描述的远程方法调用

Country Status (1)

Country Link
CN (1) CN103391294A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376225A (zh) * 2015-11-02 2016-03-02 亚信科技(南京)有限公司 一种软件服务化的方法及装置
CN103780679B (zh) * 2014-01-03 2016-10-19 电子科技大学 基于http协议的长延时远程调用方法
CN106503103A (zh) * 2016-10-17 2017-03-15 济南浪潮高新科技投资发展有限公司 一种轻量级rest服务框架实现方法
CN107908565A (zh) * 2017-11-27 2018-04-13 中国银行股份有限公司 一种测试方法及设备
CN109298954A (zh) * 2018-09-14 2019-02-01 北京数聚鑫云信息技术有限公司 一种智能调用Dubbo远程服务的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1608248A (zh) * 2002-01-15 2005-04-20 国际商业机器公司 在分布式计算环境中供应聚合服务
CN1620041A (zh) * 2003-11-19 2005-05-25 阿尔卡特公司 用户定义策略的内容交换
CN102377796A (zh) * 2010-08-05 2012-03-14 中国人民解放军国防科学技术大学 基于OSGi的异构服务集成系统及方法
US20120066236A1 (en) * 2009-05-07 2012-03-15 Zhejiang University Method for semantic service registration and query based on wordnet

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1608248A (zh) * 2002-01-15 2005-04-20 国际商业机器公司 在分布式计算环境中供应聚合服务
CN1620041A (zh) * 2003-11-19 2005-05-25 阿尔卡特公司 用户定义策略的内容交换
US20120066236A1 (en) * 2009-05-07 2012-03-15 Zhejiang University Method for semantic service registration and query based on wordnet
CN102377796A (zh) * 2010-08-05 2012-03-14 中国人民解放军国防科学技术大学 基于OSGi的异构服务集成系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103780679B (zh) * 2014-01-03 2016-10-19 电子科技大学 基于http协议的长延时远程调用方法
CN105376225A (zh) * 2015-11-02 2016-03-02 亚信科技(南京)有限公司 一种软件服务化的方法及装置
CN106503103A (zh) * 2016-10-17 2017-03-15 济南浪潮高新科技投资发展有限公司 一种轻量级rest服务框架实现方法
CN107908565A (zh) * 2017-11-27 2018-04-13 中国银行股份有限公司 一种测试方法及设备
CN109298954A (zh) * 2018-09-14 2019-02-01 北京数聚鑫云信息技术有限公司 一种智能调用Dubbo远程服务的方法及装置

Similar Documents

Publication Publication Date Title
CN109284197B (zh) 基于智能合约的分布式应用平台及实现方法
Baumer et al. Grasshopper—A universal agent platform based on OMG MASIF and FIPA standards
CN106663033B (zh) 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法
US8788580B2 (en) Event broker for an improved application server platform for telecom-based applications
EP2561656B1 (en) Servlet api and method for xmpp protocol
CN101207568B (zh) 多协议适配器及其对多种业务实现适配处理的方法
CN112448856B (zh) 一种内网kubernetes对外提供公网访问的方法和系统
CN111290865A (zh) 一种服务调用方法、装置、电子设备和存储介质
CN103391294A (zh) 一种基于服务描述的远程方法调用
EP3837604A1 (en) In situ triggered function as a service within a service mesh
US10033790B2 (en) Method for a connector providing transactional interoperability to multiple messaging providers to multiple application servers using the same implementation
CN105183452A (zh) 一种用于配电设备监测基于Spring AOP的远程规约服务中间件
JP2003520533A (ja) 通信網
CN103944902B (zh) 实现业务聚合Mashup业务的方法、装置和设备
US8990286B2 (en) Integration of web services with a clustered actor based model
CN112966833B (zh) 基于Kubernetes集群的机器学习模型平台
WO2008095369A1 (fr) Système de communication à couche d&#39;adaptation, procédé et dispositif d&#39;obtention d&#39;informations sur un élément de réseau
Butterfield Fog computing with Go: A comparative study
CN110022332B (zh) 一种超文本传输安全协议代理方法、装置、设备及介质
Muhler Extending an open source enterprise service bus for multi-tenancy support focusing on administration and management
US9537931B2 (en) Dynamic object oriented remote instantiation
Fayçal et al. Integrating legacy systems in a SOA using an agent based approach for information system agility
Song et al. Dynamic weaving of security aspects in service composition
Puppin et al. Using web services to run distributed numerical applications
Hsiung et al. How to design a global SOA infrastructure: Coping with challenges in a global context

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131113