远程调用的几种方式

合集下载

电脑远程桌面技巧如何远程访问和控制你的电脑

电脑远程桌面技巧如何远程访问和控制你的电脑

电脑远程桌面技巧如何远程访问和控制你的电脑在日常生活和工作中,我们经常会遇到需要在不同设备间远程访问和控制电脑的需求。

无论是在办公室还是在家里,电脑远程桌面技巧都能为我们提供便利和高效性。

本文将介绍一些常见的远程访问和控制电脑的技巧,帮助读者更好地利用这些功能。

1. 远程访问桌面(Remote Desktop)远程访问桌面是一种常见而强大的远程桌面技术,允许用户通过互联网远程访问和控制另一台电脑。

以下是一些设置和操作步骤:(1)确保远程电脑开启了远程访问桌面功能,并且网络连接正常。

(2)在本地电脑上,点击开始菜单,搜索“远程桌面连接”,打开远程桌面连接应用。

(3)在远程桌面连接应用中,输入远程电脑的IP地址或计算机名,并点击“连接”。

(4)输入远程电脑的用户名和密码,点击“确定”开始远程访问。

2. 第三方远程桌面工具除了系统自带的远程桌面连接应用,还有许多第三方远程桌面工具可以提供更多高级功能和更好的用户体验。

以下是一些常见的第三方工具:(1)TeamViewer: TeamViewer是一款功能强大的远程桌面工具,支持跨平台远程访问和控制,操作简单且速度快速。

(2)AnyDesk: AnyDesk也是一款可靠的远程桌面工具,提供高性能的远程访问和低延迟的远程控制体验。

(3)Chrome 远程桌面:Chrome 远程桌面是一款基于谷歌浏览器的远程桌面工具,只需在谷歌浏览器中安装插件,便可实现远程访问和控制。

3. 云桌面服务除了使用远程桌面技术,云桌面服务也是一种方便的远程访问和控制电脑的方式。

云桌面服务将计算机的操作系统和应用程序部署在云服务器上,用户通过互联网远程连接至云桌面进行操作。

以下是一些常见的云桌面服务提供商:(1)亚马逊 AWS WorkSpaces: AWS WorkSpaces 提供强大的云桌面解决方案,用户可以根据需求选择不同配置的云桌面。

(2)微软 Azure Virtual Desktop: Azure Virtual Desktop 是微软提供的虚拟桌面解决方案,支持 Windows、Mac 和移动设备的远程访问。

python 远程执行方法

python 远程执行方法

python 远程执行方法
Python有几种远程执行的方法,可以根据具体的需求和场景选择合适的方法。

以下是一些常见的远程执行Python代码的方法:
1. SSH远程执行,通过SSH协议连接到远程主机,并在远程主机上执行Python代码。

可以使用paramiko库来实现SSH远程执行Python代码,也可以使用Fabric等工具来简化远程执行的过程。

2. 使用RPC框架,可以使用像Pyro4、XML-RPC或gRPC这样的远程过程调用框架,在远程主机上启动一个Python服务,然后在本地通过网络调用远程主机上的Python函数或方法。

3. 使用消息队列,通过消息队列(如RabbitMQ、ZeroMQ或Kafka)来实现远程执行Python代码。

可以将要执行的Python代码作为消息发送到远程主机,然后在远程主机上执行并返回结果。

4. 使用Web服务,可以在远程主机上搭建一个基于HTTP或其他协议的Web服务,然后通过HTTP请求将要执行的Python代码发送到远程主机,得到执行结果后再返回给本地。

5. 使用分布式计算框架,像Apache Spark、Dask或PyTorch 这样的分布式计算框架可以用来在集群上执行Python代码,可以将要执行的代码提交到集群上进行分布式计算。

以上是一些常见的远程执行Python代码的方法,每种方法都有其适用的场景和优缺点,可以根据具体的需求选择合适的方法来实现远程执行。

远程过程调用

远程过程调用

RPC的实现概况
17
国家信息中心 夏道藏 2013-524
RPC的实现概况
18
stub程序的功能是把这种过程调用 中所带的参数组装和拆卸成消息形 式,并进行相应的类型检查,然后 把这些消息传递给RPC runtime子 程序,后者再把它们发送到系统中 的其它场点。 事实上,程序设计者定义了过程并 写好了过程体,而系统生成了对应 的stub。
4
远程过程调用
为了实现NFS,Sun公司的工程师开
发了他们自己的RPC技术,通常称为 SunRPC或 ONC/RPC. ONC/RPC不 仅用于NFS的实现,也用于许多其它 网络应用. 存在和ONC/RPC不同的其它RPC 技术,例如DEC RPC.虽然它们都遵 从同样的概念途径,但是它们有不同 的内部结构,因此,无互操作性.
国家信息中心 夏道藏 2013-524
远程过程调用 本地过程调用 由客户程序激活。请求参量 调 用 模 块 执 行 一 个 过 程 调 被打成数据包。 用;由编译程序生成的代码 把参量写到栈中。 发送请求和在服务器程序中 跳转子过程。 的参量拆包。 在服务器上参量被拆包并且 参量从栈装载到子过程的局 传递给服务器的子过程。 部变量或寄存器。 在 服 务 器 上 执 行 请 求 ( 过 执行子过程代码。 程) 。 把结果打包和返回给客户。 结果和子过程的返回值被存 贮在寄存器中。 由客户把结果拆包,继续正 调用的过程访问数据。 常的程序遵照执行。
远程过程调用
7
远程过程调用(Remote Procedure Call)就是把过程调用的概念加以 扩允后引入分析式环境中的一种形 式。远程过程调用的形式和行为与 传统的过程调用的形式和行为类似, 主要差别在于被调用的过程实际运 行在一个与调用者所在场点不同的 场点上,见图。因此,需要设计相 应的软件来实现两者之间的连接和 信息沟通。

电脑远程控制技巧实现远程访问和协助

电脑远程控制技巧实现远程访问和协助

电脑远程控制技巧实现远程访问和协助远程控制技术是现代互联网时代不可或缺的一项技术。

通过远程控制技巧,我们可以在不同位置的电脑之间实现远程访问和协助,提高工作效率和便利性。

本文将介绍几种常见的电脑远程控制技巧,帮助读者更好地了解和运用这些技术。

一、远程桌面连接远程桌面连接是一种在局域网或互联网上实现远程控制的技术。

它通过在目标电脑上启用远程桌面服务,然后在本地电脑上使用远程桌面客户端连接目标电脑,实现对目标电脑的远程操作。

这种技术适用于需要远程管理服务器或远程协助他人的场景。

要使用远程桌面连接功能,首先需要保证目标电脑上已经启用了远程桌面服务。

然后,在本地电脑上打开远程桌面客户端,输入目标电脑的IP地址或计算机名,点击连接按钮即可建立连接。

成功连接后,就可以像在本地一样操作目标电脑了。

二、远程协助工具除了远程桌面连接外,还有一些专门用于远程协助的工具,例如TeamViewer、AnyDesk等。

这些工具提供了更加便捷和安全的远程协助服务,适用于跨平台、跨网络的远程访问和协助。

使用远程协助工具,首先需要在目标电脑和本地电脑上分别安装相对应的客户端软件。

然后,在目标电脑上生成一个唯一的ID,并将该ID告知协助者。

协助者在本地电脑上打开对应的软件,输入目标电脑的ID,点击连接按钮即可建立连接。

连接建立后,协助者即可对目标电脑进行远程操作。

三、远程命令行远程命令行是一种通过命令行界面实现远程访问和操作的技术。

它适用于需要在远程服务器上执行命令或脚本的场景。

要使用远程命令行技术,首先需要在目标电脑上启用远程管理功能,然后在本地电脑上打开命令行界面,输入远程命令连接目标电脑的IP地址和相应的命令即可实现远程操作。

四、安全注意事项在使用电脑远程控制技巧时,我们也要注意安全性。

以下是几个注意事项:1. 使用强密码:设置强密码是保护远程访问安全的首要步骤。

确保密码长度足够,包含字母、数字和符号等多种字符。

2. 确定主机白名单:在远程桌面连接或远程协助工具中,设置只允许特定IP地址或ID的主机连接。

如何远程调用Access数据库方法详解

如何远程调用Access数据库方法详解
如Βιβλιοθήκη 远程调用 Access 数据库方法详解
欢迎大家在查看本栏目!以下是我们给大家整理出来的远程调用 Access 数据库方法详解。我相信,这些也肯定是很多朋友在关心的,所以我就给大 家谈谈这个! 如何远程调用 Access 数据库方法详解: 使用了 TCP/IP,ADO 及 XML(需要安装 Microsoft XML 4.0。)。分服务器 和客户端两部分,服务器可以多用户同时连接。远程连接 Access 数据库有很 多方法,我以前已经比较详细的回答过(见下面所列的 5 种方法),我现在这 个例子属于其中的第 3 种方法(不需要使用 RDS 或 Web 服务器)。 远程连接 access 数据库的几个方法: 1.建立 VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域 网无异,然后把服务器中 mdb 文件所在的 Folder 共享即可。ADO 连接如 下: 以下为引用的内容: oConn.Open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=ServerNameDatabaseFolderDatabase.mdb; Jet OLEDB:Database Password=databasepw;
“Remote Provider=Microsoft.Jet.OLEDB.4.0;” & _ “Data Source=c:somepathmydb.mdb”, _ “admin”, ““ 3.自己编写服务器程序,通过 TCP/IP,传递 Recordset。 4.使用第三方控件,如:ADO Anywhere 或 UDAParts RDB 等。 5.使用 XMLHTTP 好了,远程调用 Access 数据库方法详解的内容就给大家介绍到这里了。希 望大家学业有成,工作顺利

如何实现局域网中的远程桌面访问

如何实现局域网中的远程桌面访问

如何实现局域网中的远程桌面访问在局域网中实现远程桌面访问的方法随着信息技术的不断发展,远程办公和远程访问已经成为了一种趋势。

在局域网中实现远程桌面访问可以让用户在不同的终端设备上远程控制和访问其他计算机的桌面。

本文将介绍几种实现局域网中远程桌面访问的方法。

一、使用远程桌面协议(RDP)远程桌面协议是微软公司开发的一种用于远程控制Windows操作系统的协议。

通过使用RDP协议,用户可以在一台计算机上访问和控制另一台运行Windows操作系统的计算机。

实现局域网中的远程桌面访问,可以通过以下步骤进行操作:1. 打开被控制计算机上的远程桌面功能。

进入Windows系统设置,找到“系统”菜单,选择“远程桌面设置”选项,并勾选“允许远程连接到此计算机”。

2. 记下被控制计算机的IP地址。

在被控制计算机上按下Win+R组合键,打开运行对话框,输入“cmd”命令打开命令提示符窗口,在窗口中输入“ipconfig”命令查看本机的IP地址。

3. 在控制计算机上打开远程桌面连接工具。

按下Win+R组合键,打开运行对话框,输入“mstsc”命令打开远程桌面连接工具。

4. 在远程桌面连接工具中输入被控制计算机的IP地址,并点击“连接”按钮。

输入正确的用户名和密码后,即可实现对被控制计算机的远程桌面访问。

二、使用第三方远程桌面软件除了使用微软的远程桌面协议,还可以选择一些第三方的远程桌面软件来实现局域网中的远程桌面访问。

这些软件通常提供更多的功能和更便捷的操作方式。

以下是几个常用的第三方远程桌面软件:1. TeamViewer:TeamViewer是一种跨平台的远程控制和在线会议软件,其功能强大且易于使用。

用户只需在控制计算机和被控制计算机上分别安装TeamViewer软件,通过输入对方提供的ID和密码,即可建立远程连接并实现远程桌面访问。

2. AnyDesk:AnyDesk也是一种跨平台的远程桌面软件,其特点是速度快且流畅。

rpc调用场景

rpc调用场景

rpc调用场景
1. 远程服务调用:一个服务可以通过RPC调用另一个远程服务,以获取数据或执行操作。

例如,一个网站可以通过RPC
调用用户认证服务来验证用户登录信息,或者通过RPC调用
库存管理服务来检查产品的可用性。

2. 分布式系统通信:在一个分布式系统中,不同的服务或节点之间可以通过RPC实现通信和交互。

例如,分布式缓存系统
可以使用RPC通信来同步数据,或者分布式任务调度系统可
以使用RPC通信来协调任务的执行。

3. 微服务架构:在微服务架构中,各个服务之间可以通过
RPC进行通信。

例如,一个电子商务网站可能有多个微服务,如用户服务、订单服务、支付服务等,它们通过RPC调用来
进行数据交互和业务逻辑处理。

4. 异步通信:RPC调用也可以被用来进行异步通信。

例如,
一个应用可以通过RPC调用发送消息到消息队列,然后另一
个应用通过RPC调用从消息队列中接收和处理消息。

5. 移动应用后台服务:移动应用可以通过RPC调用后台服务
来获取数据或执行操作。

例如,一个社交网络应用可以通过RPC调用服务器端的用户信息服务来获取好友列表或更新用
户信息。

总之,RPC调用可以在各种场景中使用,用于实现不同系统、服务或节点之间的通信和交互。

httpClient远程调用webService

httpClient远程调用webService

我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种:1、通过浏览器HTTP调用,返回规范的XML文件内容2、通过客户端程序调用,返回结果可自定义格式接下来,我利用Eclipse作为开发工具,演示一个Httpclient调用WebService的简单示例步骤如下:准备工作:用到的jar包有:下载链接(/detail/lanxuezaipiao/5354480)第一步:新建Java Project,项目名称为HttpCallWebService第二步:将所需jar包导入到库中第三步:编写调用class,这里有两种方式调用,即GET方式和POST方式,由于POST 方式较安全,故这里采用POST方式调用;请求数据的构造也有两种方式:静态和动态构造,下面分别介绍这两种方式:注:这里以E邮宝开放的webservice接口为例调用其中一个API函数,而E邮宝的webservice基于SOAP,故请求数据为SOAP格式,大家可根据自己情况进行修改。

静态构造请求数据:package com.http;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import mons.httpclient.HttpClient;import mons.httpclient.HttpException;import mons.httpclient.methods.InputStreamRequestEntity;import mons.httpclient.methods.PostMethod;import mons.httpclient.methods.RequestEntity;public class StaticHttpclientCall {/*** @param args* @throws IOException* @throws HttpException*/public static void main(String[] args) throws HttpException, IOException {// TODO Auto-generated method stubString soapRequestData = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+ "<soap12:Envelopexmlns:xsi=\"/2001/XMLSchema-instance\""+ " xmlns:xsd=\"/2001/XMLSchema\""+ " xmlns:soap12=\"/2003/05/soap-envelope\">"+ " <soap12:Body>"+ " <GetAPACShippingPackage xmlns=\"/\">"+ " <GetAPACShippingPackageRequest>"+ " <TrackCode>123</TrackCode>"+ " <Version>123</Version>"+ " <APIDevUserID>123</APIDevUserID>"+ " <APIPassword>123</APIPassword>"+ " <APISellerUserID>123</APISellerUserID>"+ " <MessageID>123</MessageID>"+ " </GetAPACShippingPackageRequest>"+ " </GetAPACShippingPackage>" + "</soap12:Body>"+ " </soap12:Envelope>";System.out.println(soapRequestData);PostMethod postMethod = new PostMethod("/v3/orderservice.asmx?wsdl");// 然后把Soap请求数据添加到PostMethod中byte[] b = soapRequestData.getBytes("utf-8");InputStream is = new ByteArrayInputStream(b, 0, b.length);RequestEntity re = new InputStreamRequestEntity(is, b.length,"application/soap+xml; charset=utf-8");postMethod.setRequestEntity(re);// 最后生成一个HttpClient对象,并发出postMethod请求HttpClient httpClient = new HttpClient();int statusCode = httpClient.executeMethod(postMethod);if(statusCode == 200) {System.out.println("调用成功!");String soapResponseData = postMethod.getResponseBodyAsString();System.out.println(soapResponseData);}else {System.out.println("调用失败!错误码:" + statusCode);}}}动态构造数据:package com.http;import java.io.ByteArrayInputStream;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import java.util.Set;import mons.httpclient.HttpClient;import mons.httpclient.methods.InputStreamRequestEntity;import mons.httpclient.methods.PostMethod;import mons.httpclient.methods.RequestEntity;// 动态构造调用串,灵活性更大public class DynamicHttpclientCall {private String namespace;private String methodName;private String wsdlLocation;private String soapResponseData;public DynamicHttpclientCall(String namespace, String methodName,String wsdlLocation) {space = namespace;this.methodName = methodName;this.wsdlLocation = wsdlLocation;}private int invoke(Map<String, String> patameterMap) throws Exception { PostMethod postMethod = new PostMethod(wsdlLocation);String soapRequestData = buildRequestData(patameterMap);byte[] bytes = soapRequestData.getBytes("utf-8");InputStream inputStream = new ByteArrayInputStream(bytes, 0,bytes.length);RequestEntity requestEntity = new InputStreamRequestEntity(inputStream, bytes.length, "application/soap+xml; charset=utf-8");postMethod.setRequestEntity(requestEntity);HttpClient httpClient = new HttpClient();int statusCode = httpClient.executeMethod(postMethod);soapResponseData = postMethod.getResponseBodyAsString();return statusCode;}private String buildRequestData(Map<String, String> patameterMap) {StringBuffer soapRequestData = new StringBuffer();soapRequestData.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");soapRequestData.append("<soap12:Envelopexmlns:xsi=\"/2001/XMLSchema-instance\""+ " xmlns:xsd=\"/2001/XMLSchema\""+ "xmlns:soap12=\"/2003/05/soap-envelope\">");soapRequestData.append("<soap12:Body>");soapRequestData.append("<" + methodName + " xmlns=\"" + namespace+ "\">");soapRequestData.append("<" + methodName + "Request>");Set<String> nameSet = patameterMap.keySet();for (String name : nameSet) {soapRequestData.append("<" + name + ">" + patameterMap.get(name)+ "</" + name + ">");}soapRequestData.append("</" + methodName + "Request>");soapRequestData.append("</" + methodName + ">");soapRequestData.append("</soap12:Body>");soapRequestData.append("</soap12:Envelope>");return soapRequestData.toString();}/*** @param args* @throws Exception*/public static void main(String[] args) throws Exception {// TODO Auto-generated method stubDynamicHttpclientCall dynamicHttpclientCall = new DynamicHttpclientCall("/", "GetAPACShippingPackage","/v3/orderservice.asmx?wsdl");Map<String, String> patameterMap = new HashMap<String, String>();patameterMap.put("TrackCode", "123");patameterMap.put("Version", "123");patameterMap.put("APIDevUserID", "123");patameterMap.put("APIPassword", "123");patameterMap.put("APISellerUserID", "123");patameterMap.put("MessageID", "123");patameterMap.put("TrackCode", "123");String soapRequestData = dynamicHttpclientCall.buildRequestData(patameterMap);System.out.println(soapRequestData);int statusCode = dynamicHttpclientCall.invoke(patameterMap);if(statusCode == 200) {System.out.println("调用成功!");System.out.println(dynamicHttpclientCall.soapResponseData);}else {System.out.println("调用失败!错误码:" + statusCode);}}}最终运行结果:可见最终返回的也是xml格式的数据,这里数据未进行格式化显示和处理。

什么是远程过程调用

什么是远程过程调用

什么是远程过程调⽤什么是远程过程调⽤我们经常需要设计⼀个分布式系统,并通过分布式系统,实现程序跨计算机运⾏。

例如,为了建⽴⼀个⼤型的事务处理系统,需要⼀个专门服务器负责事务逻辑对象,另外专门设计⼀个服务器展⽰逻辑对象,诸如此类。

所有这些服务器相互之间都需要通信(见图14-1)。

为了这样的⼀个模型能正常⼯作,⼀台计算机的代码需要访问另⼀台计算机。

例如,位于服务器的程序需要在⼀个Web页⾯上显⽰⼀个订单列表,在这种情形下,它需要访问业务对象服务器上的程序,通过它读取订单列表,业务对象服务器⼜要访问数据库服务器。

当⼀台计算机上的程序调⽤另⼀台计算机的程序时,就称之为⼀次远程过程调⽤(Remote Procedure Call,RPC)。

为了执⾏⼀个远程过程调⽤,需要掌握以下内容:●被调⽤的代码驻留在哪⾥?当需要执⾏某个代码时,⾸先需要知道该代码在哪⾥?●调⽤这些代码需要参数吗?如果需要,参数的类型是什么?例如,如果我们想调⽤⼀个远程过程执⾏两个数的加法运算,则必须要把这两个数传递给这个过程。

●调⽤过程需要返回运算结果吗?如果需要,则返回值的类型是什么?例如,两个数相加的过程要返回第三个数,即它们的和。

图 14‑1此外,我们还需要解决⼤量的⽹络问题,把需要从⼀台计算机传送给另⼀台计算机的数据进⾏打包,以及其他很多问题。

正是由于这个原因,⼈们开发了许多RPC协议。

协议就是⼀组规则,有了这组规则,不同的应⽤程序甚⾄不同的计算机都可以相互通信。

例如,Internet上的计算机就是⽤TCP(传输控制协议)和IP(⽹际协议)两个协议进⾏通信的,因为它们规定了Internet上的数据传输过程和计算机寻址⽅法。

这些协议规定如何为远程计算机提供地址,如何把需要传送给远程过程的数据打包,如何读取响应信号,如何启动远程调⽤,如何进⾏纠错处理,以及处理所有与多个计算机之间通信有关的细节问题(这样的RPC协议通常都是建⽴在其他协议的基础上,例如,RPC协议规定在⽹络传输中必须使⽤TCP/IP协议)。

不同服务 接口之间的调用方式

不同服务 接口之间的调用方式

不同服务接口之间的调用方式不同服务接口之间的调用方式在软件开发中,不同的服务接口之间需要进行调用和通信,以实现各种功能和业务逻辑。

下面将介绍几种常见的服务接口调用方式。

1. 同步调用:同步调用是指调用方发送请求后,一直等待服务方的响应,直到接收到响应后再继续执行后续代码。

这种调用方式简单直接,适用于需要实时返回结果的场景。

例如,前端页面通过调用后端接口获取数据,然后将数据展示给用户。

2. 异步调用:异步调用是指调用方发送请求后,不需要等待服务方的响应,而是继续执行后续代码。

服务方在处理完请求后,将结果返回给调用方。

这种调用方式适用于耗时较长的操作,可以提高系统的并发处理能力。

例如,发送邮件或短信通知时,可以将发送任务交给后台异步处理,不需要等待发送完成。

3. 批量调用:批量调用是指一次性发送多个请求给服务方,并等待所有请求的响应后再进行处理。

这种调用方式适用于需要同时处理多个相关请求的场景,可以提高系统的效率和性能。

例如,批量删除多个文件或多个记录时,可以一次性发送删除请求,等待所有删除操作完成后再返回结果。

4. 广播调用:广播调用是指将请求发送给多个服务方,并等待所有服务方的响应后再进行处理。

这种调用方式适用于需要同时通知多个服务方的场景,可以实现消息的广播和发布订阅模式。

例如,发布系统通知或广告时,可以将消息广播给所有订阅者,等待所有订阅者的响应后再进行下一步操作。

5. 远程过程调用(RPC):远程过程调用是指调用方通过网络调用远程的服务接口,实现跨进程或跨服务器的调用。

调用方可以像调用本地接口一样调用远程接口,无需关心网络通信的细节。

这种调用方式适用于分布式系统或微服务架构中的接口调用。

例如,前端通过RPC调用后端的服务接口,完成数据查询或业务处理。

6. 消息队列调用:消息队列调用是指将请求发送到消息队列中,然后由消费者异步地从消息队列中获取请求并进行处理。

这种调用方式适用于异步处理和解耦系统组件的场景,可以提高系统的可扩展性和稳定性。

路由器远程访问技巧

路由器远程访问技巧

路由器远程访问技巧路由器远程访问是一种方便的技术,它允许用户通过互联网远程管理和配置路由器设备。

在这篇文章中,我们将介绍一些路由器远程访问的技巧,帮助您更好地利用这一功能。

一、什么是路由器远程访问路由器远程访问是指通过互联网远程连接到路由器,并进行管理和配置的过程。

通过路由器远程访问,用户可以在任何地方通过网络连接到自己的路由器,无需身处同一局域网内,更加灵活和便捷。

二、设置路由器远程访问要实现路由器远程访问,首先需要进行一些基本的设置。

以下是一些设置路由器远程访问的技巧:1. 确保路由器支持远程访问功能:不是所有的路由器都支持远程访问功能,需确认您的路由器型号和厂商是否支持。

通常,在路由器的管理界面中可以找到远程访问设置。

2. 配置端口转发:路由器的远程访问需要将互联网上的请求转发到路由器的管理界面。

您需要在路由器的设置中配置端口转发,将远程访问所需的端口映射到路由器的IP地址。

3. 设置动态DNS(DDNS):由于用户的公网IP地址可能会变化,使用动态DNS服务可以让您通过固定的域名访问到路由器。

配置动态DNS服务,将您的公网IP地址映射到一个固定的域名上。

4. 设置登录凭证:为了保护路由器远程访问的安全性,您需要设置登录凭证,包括用户名和密码。

确保设置一个强密码,并定期更换密码,以防止不法分子入侵。

三、使用路由器远程访问一旦完成了路由器的设置,您就可以开始使用路由器远程访问了。

以下是一些使用路由器远程访问的技巧:1. 连接到路由器:在任何有网络连接的设备上,打开一个浏览器并输入您设置的动态DNS域名,或者直接输入路由器的公网IP地址。

输入正确的用户名和密码,您将能够远程连接到路由器的管理界面。

2. 远程管理路由器:通过路由器的远程访问,您可以执行与本地连接相同的管理操作,如更改WiFi密码、配置端口转发、更新路由器固件等。

确保在进行任何更改之前,先备份路由器的设置,以避免不可逆的错误。

3. 远程监控网络:通过路由器远程访问,您可以实时监控和管理您的网络设备。

remote函数

remote函数

remote函数简介在计算机编程中,remote函数是一种用于实现远程调用的方法。

它允许程序在分布式系统中的不同节点之间进行通信和交互。

通过remote函数,程序可以在不同的计算机或服务器上调用并执行远程的函数或方法。

原理在分布式系统中,各节点之间通常通过网络进行通信。

而remote函数的实现就是通过网络传输数据和代码,使得程序在不同的节点上进行协同工作。

下面是remote函数的基本原理:1.连接建立:首先,客户端程序需要与远程服务器建立连接。

这可以通过socket或者HTTP等网络协议来完成。

2.执行调用:一旦连接建立,客户端程序就可以向服务器发送调用请求。

这个调用请求包括函数名、参数和相关的数据。

3.传输代码:在执行调用之前,服务器需要知道要执行的函数或方法的代码。

因此,客户端需要将函数的代码传输给服务器。

这可以通过将函数的源代码或字节码发送给服务器来实现。

4.执行和返回:服务器接收到调用请求和相关代码后,就可以在自己的环境中执行函数。

然后,服务器将函数的执行结果返回给客户端。

5.断开连接:一旦函数执行完成并返回结果,客户端和服务器可以断开连接。

这可以释放资源并终止通信。

优势和应用场景remote函数具有很多优势,使得它在分布式系统中得到广泛应用。

以下是一些常见的应用场景和remote函数的优势:1. 分布式计算分布式计算是remote函数最典型的应用场景之一。

在大规模计算任务中,可以将计算任务分发给多个节点来并行执行。

通过remote函数,可以方便地将函数或方法发送到各个节点上执行,并收集和整合执行结果。

2. 服务调用分布式系统中的各个节点通常提供不同的服务。

通过remote函数,可以在不同的节点上调用和使用这些服务。

例如,一个节点可能提供用户认证服务,而另一个节点可能提供数据存储服务。

通过remote函数,可以在任意节点上调用这些服务,实现节点之间的协同工作。

3. 物联网设备控制随着物联网技术的发展,越来越多的设备可以通过网络进行控制和操作。

远程调用的原理

远程调用的原理

远程调用的原理远程调用是一种在分布式系统环境下,通过网络进行进程之间通信的技术手段。

它的原理是通过一定的网络协议和通信方式,使得一个进程(客户端)能够调用另一个进程(服务端)上的方法,从而实现跨网络的方法调用。

远程调用的原理可以分为以下几个步骤:1. 客户端发起方法调用:客户端通过网络向服务端发起方法调用请求。

请求通常包括要调用的方法名、参数等信息。

2. 网络传输:客户端将方法调用请求通过网络发送给服务端。

网络传输可以使用各种协议,如HTTP、TCP/IP等。

3. 服务端接收请求:服务端接收来自客户端的方法调用请求。

4. 方法执行:服务端根据请求中的方法名和参数等信息,找到相应的方法并执行。

5. 返回结果:服务端将方法执行的结果返回给客户端。

6. 客户端接收结果:客户端接收到服务端返回的方法执行结果。

远程调用的实现有多种方式,常见的有:RPC(Remote Procedure Call)和RESTful API(Representational State Transfer)。

RPC是一种比较传统的远程调用方式,它使用了类似于本地方法调用的语义,客户端调用代理对象的方法,代理对象负责将方法调用序列化成网络可以传输的格式,并发送给服务端,服务端接收到请求后将调用结果反序列化并返回给客户端。

RESTful API是一种基于HTTP协议的远程调用方式,它通过HTTP的不同方法(GET、POST、PUT、DELETE等)和不同的URL路径来表示不同的资源和操作。

客户端可以通过发送HTTP请求来调用服务端的方法,服务器端返回HTTP响应来传递结果。

总的来说,远程调用通过网络实现了进程之间的方法调用,可以跨越物理位置和不同的系统平台。

它是分布式系统中实现通信和协作的重要手段之一。

远程调试的类型和方法

远程调试的类型和方法

远程调试的类型和方法远程调试是一种在不同的计算机之间进行软件调试的方法。

它可以帮助开发人员迅速识别和解决故障,并提高开发效率。

下面是关于远程调试的类型和方法的详细介绍。

一、远程调试的类型1. 基于网络的远程调试基于网络的远程调试是指通过网络连接不同的设备进行调试。

这种调试方式主要适用于多台设备之间的调试和故障排除。

2. 基于本地网络的远程调试基于本地网络的远程调试是指在同一局域网内的计算机之间进行远程调试。

这种调试方式常常需要进行端口映射和防火墙设置。

3. 跨平台远程调试跨平台远程调试是指在不同平台上的计算机之间进行调试。

开发人员可以在任何一种操作系统上进行调试,无需关注目标设备的操作系统。

二、远程调试的方法1. 远程控制远程控制指的是通过远程连接对目标设备进行控制。

开发人员可以远程运行,停止,重启等操作,并且可以通过远程桌面获取目标设备的屏幕信息。

2. 远程调试器远程调试器可以允许开发人员在本地计算机上进行调试,并将调试信息传输到远程设备上。

这种方式可以极大地提高开发人员的工作效率。

3. 远程记录器远程记录器是一种将目标设备上的所有日志信息传输到本地计算机上的工具。

这种方式可以帮助开发人员更好地了解目标设备上的问题。

三、远程调试的注意事项1. 安全性远程调试需要建立安全的连接,并确保传输的调试数据不会被黑客等入侵者窃取。

2. 稳定性远程调试需要保证网络的稳定性,以确保调试数据的正常传输。

3. 熟练掌握远程调试工具开发人员需要熟练掌握远程调试工具,并了解其使用方法及注意事项。

总结远程调试是一种高效的调试方式,主要包括基于网络的远程调试,基于本地网络的远程调试和跨平台远程调试。

常用的远程调试方式有远程控制,远程调试器和远程记录器。

开发人员在使用远程调试时需要保证安全性和稳定性,并熟练掌握远程调试工具。

远程调用方法

远程调用方法

远程调⽤⽅法调⽤⽅式介绍⽆论是微服务还是SOA,都⾯临着服务间的远程调⽤。

常见的远程调⽤⽅式有以下⼏种:RPC:Remote Produce Call远程过程调⽤,类似的还有RMI(Remote Method Invocation,远程⽅法调⽤)。

⾃定义数据格式,基于原⽣TCP通信,速度快,效率⾼。

早期的webservice,现在热门的dubbo,都是RPC的典型Http:http其实是⼀种⽹络传输协议,基于TCP,规定了数据传输的格式。

现在客户端浏览器与服务端通信基本都是采⽤Http协议。

也可以⽤来进⾏远程服务调⽤。

缺点是消息封装臃肿。

现在热门的Rest风格,就可以通过http协议来实现。

认识RPC概念解释RPC,即 Remote Procedure Call(远程过程调⽤),是⼀个计算机通信协议。

该协议允许运⾏于⼀台计算机的程序调⽤另⼀台计算机的⼦程序,⽽程序员⽆需额外地为这个交互作⽤编程。

说得通俗⼀点就是:A计算机提供⼀个服务,B计算机可以像调⽤本地服务那样调⽤A计算机的服务。

作⽤实现远程调⽤其他计算机的服务像调⽤本地服务⼀样调⽤远程服务问题总结要实现远程调⽤,肯定是通过⽹络传输数据。

A程序提供服务,B程序通过⽹络将请求参数传递给A,A程序接收参数调⽤本地服务执⾏后得到结果,再将结果返回给B程序。

采⽤何种⽹络通讯协议?现在⽐较流⾏的RPC框架,都会采⽤TCP作为底层传输协议数据传输的格式怎样?两个程序进⾏通讯,必须约定好数据传输格式。

就好⽐两个⼈聊天,要⽤同⼀种语⾔,否则⽆法沟通。

所以,必须定义好请求和响应的格式。

另外,数据在⽹路中传输需要进⾏序列化,所以还需要约定统⼀的序列化的⽅式。

如果仅仅是远程调⽤,还不算是RPC,因为RPC强调的是过程调⽤,调⽤的过程对⽤户⽽⾔是应该是透明的,⽤户不应该关⼼调⽤的细节,可以像调⽤本地服务⼀样调⽤远程服务。

所以RPC⼀定要对调⽤的过程进⾏封装认识http概念解释Http协议:超⽂本传输协议,是⼀种应⽤层协议。

java内调用远程接口的方法

java内调用远程接口的方法

java内调用远程接口的方法Java内调用远程接口的方法主要有两种方式:使用Java RMI(远程方法调用)和使用Web服务。

1. 使用Java RMI:- 在远程接口所在的项目中定义接口和实现类,并继承java.rmi.Remote接口。

- 将接口和实现类编译打包成JAR文件,并将JAR文件发布到远程服务器上。

- 在调用方项目中,使用java.rmi.Naming类的lookup()方法获取远程接口的实例。

- 通过远程接口实例调用接口中定义的方法。

示例代码:```java// 远程接口定义public interface RemoteService extends java.rmi.Remote {public String sayHello() throws java.rmi.RemoteException;}// 远程接口实现类public class RemoteServiceImpl extends java.rmi.server.UnicastRemoteObject implementsRemoteService {public RemoteServiceImpl() throws java.rmi.RemoteException {super();}public String sayHello() throws java.rmi.RemoteException {return "Hello, World!";}}// 调用方代码public class Client {public static void main(String[] args) {try {// 获取远程接口实例RemoteService remoteService = (RemoteService) java.rmi.Naming.lookup("rmi://localhost/RemoteService");// 调用远程接口方法String result = remoteService.sayHello();System.out.println(result);} catch (Exception e) {e.printStackTrace();}}}```2. 使用Web服务:- 在远程接口所在的项目中定义接口和实现类,并使用@WebService注解标记接口和实现类。

中间件_远程过程调用

中间件_远程过程调用
– clnt, 远程调用句柄 – square,服务函数 – xdr_int,输入参数编码例程 – argp,输入参数地址 – xdr_int,输出参数编码例程 – clnt_res,输出参数地址
31
/* square_svr.c*/ static void squareprog_1(rqstp, transp)//服务守护过程
23
RPC编程方法
xxx.idl
rpcgen
客户应用程序
xxx_clnt.c
客户stub接口
xxx.h
C编译器
客户
xxx_xdr.c xxx_svr.c
C编译器
服务器
服务器stub接口 远程过程
24
RPC编程(步骤1)
/*square.c*/ void main() {
int ret; ret = square(3); printf(“%d”,ret); } int square(int x) { return x*x; }
22
RPC编程(续)
5、为客户端和服务器端编写stub接口例程;
6、编译并链接客户程序。它由四个主要文件组 成:去掉了远程过程的程序、客户端的stub( rpc生成)、客户端的stub接口以及XDR过程( rpc生成)。
7、编译并链接服务器程序。它由四个主要文件 组成:远程过程组成的程序、服务器的stub( rpc生成)、服务器端的stub接口以及XDR过程 ( rpc生成)。 8、在远程机器上启动服务器,接着在本机上启 动客户。
25
RPC编程(步骤2)
/*square.c*/ void main() {
int ret; ret = square(3); printf(“%d”,ret); }

第18章 远程数据调用

第18章  远程数据调用

18.2.2
访问WebService的类库
在纯粹的ActionScript 3.0开发环境下是无法进行WebService 的访问的。为了进行这种访问一般都会借助于Flex的SDK 。 Flex访问WebService的类库集中在mx.rpc.soap包下。一般情 况下最常用的类就是WebService类。
18.3
一个访问WebService的Flex应用
一个访问WebService的Flex项目,既要有访问Flex的内容, 也要有处理返回数据的方式。
18.4
LCDS简介
LiveCycle Data Service是Flex与服务端交互的组件。 LiveCycle Data Service目前只有访问J2EE服务器的版本 ,还没有访问.Net服务器的版本。
通过创建一个调用服务端Java类的Flex应用说明Remoting服 务的使用。
18.7常见面试题本章中常见的面试问题主要集中如何使用ActionScript 3.0进 行WebService调用和如何进行Remoting调用两个方面, 具体问题如下。 1.在使用ActionScript 3.0进行针对WebService的访问时设 置<mx:WebService>标签当中useProxy="false"表是什么 含义? 2.LCDS支持几种与服务端的通信方式,都是那几种?
18.4.1
LCDS的安装
下面以Windows系统为例说明如何安装LiveCycle Data Service。
18.4.2
LCDS介绍
LCDS提供了三种与服务端的基本通信方式,通过这三种通 信方式Flex可以与J2EE客户端实现非常强大数据交互功 能。

电脑远程控制与协助的方法

电脑远程控制与协助的方法

电脑远程控制与协助的方法现代科技的快速发展使得电脑远程控制与协助成为可能。

通过远程操作,我们可以方便地帮助他人解决电脑问题,或者远程控制其他设备。

本文将介绍几种常见的电脑远程控制与协助的方法,包括远程桌面、远程协助工具和远程控制软件,并谈论它们的优缺点及应用场景。

一、远程桌面远程桌面是一种通过网络连接远程计算机并在本地电脑上进行操作的方法。

它可以实现在远程计算机上看到同一个桌面,并且能够操作远程计算机中的应用程序和文件。

常见的远程桌面应用程序包括Windows自带的远程桌面连接和VNC(Virtual Network Computing)。

远程桌面的优点是操作简单、易于使用,特别是对于需要长时间远程控制电脑的情况下。

同时,远程桌面支持跨平台操作,不同操作系统的计算机之间也可以进行远程控制与协助。

然而,远程桌面的缺点是对于网络要求较高,尤其是在网络速度较慢或者信号不稳定的情况下,用户可能会遇到延迟和卡顿的问题。

此外,使用远程桌面需要提前获得被控制端用户的许可。

二、远程协助工具远程协助工具是一种基于网络协议的软件,通过授权和验证来连接两台计算机进行远程控制与协助。

常见的远程协助工具包括TeamViewer、AnyDesk等。

远程协助工具的优点是操作简单、安全可靠,而且支持高质量的音频和视频通讯,方便进行实时的沟通与指导。

此外,远程协助工具还可以在不同操作系统之间进行远程控制与协助。

然而,远程协助工具也有一些限制。

尽管它们提供了高质量的音视频通讯,但在网络质量较差或者带宽受限的环境下,可能会出现连接不稳定或者视频画面延迟的问题。

此外,使用远程协助工具需要保护个人隐私和数据安全,确保被控制端的同意和权限。

三、远程控制软件远程控制软件是一种通过网络连接远程设备并实现对其进行操作的工具。

相对于远程桌面和远程协助工具,远程控制软件通常拥有更强大的功能和更高的灵活性。

常见的远程控制软件有Splashtop、LogMeIn等。

Android远程Service调用(RPC)实现步骤详解

Android远程Service调用(RPC)实现步骤详解

开始介绍之前,先看一下本例的界面:Android远程Service调用简介:远程Service调用,是Android系统为了提供进程间通信而提供的轻量级实现方式,这种方式采用一种称为远程进程调用技术来实现,英文名全称是Remote Procedure Call,即RPC。

RPC简介:远程进程调用是指在一个进程里,调用另外一个进程里的服务。

Android通过接口定义语言来生成两个进程间的访问代码。

接口定义语言(Android Interface Definition Language,即AIDL)是Android系统的一种接口描述语言,Android编译器可以将AIDL文件编译成一段JA V A代码,生成相对的接口。

下面来详细介绍下如何通过RPC机制来达到远程进程调用的目的和步骤。

第一,我们要先弄清楚这是怎么样的一个流程。

用通俗点语言来说,打个例子:比如公司A提供A服务,并且这种服务是对外开放的,也就是其他公司或者个人都可以通过某种方式来使用这种服务,公司B想要使用A公司的A服务,就以通过公司A编制的一种形式来使用它。

用图来表示就是:公司B通过公司A的某种形式来使用公司A提供的服务A现在,我们可以说,进程B可以通过进程A提供的某种形式来使用进程A的服务A。

这个过程就是RPC。

了解基本概念之后,我们可以开始进行RPC的实现步骤。

下面我们分点来说明实现RPC 的步骤。

第一、创建AIDL文件。

这个文件和普通的JA V A文件差不多,只不过后缀名是.aidl。

这个文件相当于一个接口,里面要声明一些你想对外提供服务的方法,也就是你要对外暴露的方法。

注意,这个文件里,除了JA V A基本类型和String,List,Map和Charquene类型不需要引入相应的包外,其他的都要引入包。

例如我们创建一个IPerson.aidl文件,里面只声明了一个方法display():package com.test.service;interface IPersonaidl {String display();//该接口里面所有的方法都应该是你想对外暴露的}第二、创建完AIDL文件后,刷新项目,会发现在gen目录对应的目录下会生成一个IPerson.java接口文件,打开该文件,会发现你在aidl文件里面定义的display()方法,不过没有实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

远程调用的几种方式
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB 和JMS 等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。

基本原理
要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO 来实现,其中传输协议有tcp、udp等等,tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。

应用级协议
远程服务通讯,需要达到的目标是在一台计算机发起请求,另外一台机器在接收到请求后进行相应的处理并将结果返回给请求端,这其中又会有诸如one way request、同步请求、异步请求等等请求方式,按照网络通信原理,需要实现这个需要做的就是将请求转换成流,通过传输协议传输至远端,远端计算机在接收到请求的流后进行处理,处理完毕后将结果转化为流,并通过传输协议返回给调用端。

原理是这样的,但为了应用的方便,业界推出了很多基于此原理之上的应用级的协议,使得大家可以不用去直接操作这么底层的东西,通常应用级的远程通信协议会提供:
1. 为了避免直接做流操作这么麻烦,提供一种更加易用或贴合语言的标准传输格式;
2. 网络通信机制的实现,就是替你完成了将传输格式转化为流,通过某种传输协议传输至远端计算机,远端计算机在接收到流后转化为传输格式,并进行存储或以某种方式通知远端计算机。

所以在学习应用级的远程通信协议时,我们可以带着这几个问题进行学习:
1. 传输的标准格式是什么?
2. 怎么样将请求转化为传输的流?
3. 怎么接收和处理流?
4. 传输协议是?
不过应用级的远程通信协议并不会在传输协议上做什么多大的改进,主要是在流操作方面,让应用层生成流和处理流的这个过程更加的贴合所使用的语言或标准,至于传输协议则通常都是可选的,在java领域中知名的有:RMI、XML-RPC、Binary-RPC、SOAP、CORBA、JMS,来具体的看看这些远程通信的应用级协议:
RMI
RMI是个典型的为java定制的远程通信协议,我们都知道,在single vm中,我们可以通过直接调用java object instance来实现通信,那么在远程通信时,如果也能按照这种方式当然是最好了,这种远程通信的机制成为RPC(Remote Procedure Call),RMI正是朝着这个目标而诞生的。

来看下基于RMI的一次完整的远程通信过程的原理:
1. 客户端发起请求,请求转交至RMI客户端的stub类;
2. stub类将请求的接口、方法、参数等信息进行序列化;
3. 基于socket将序列化后的流传输至服务器端;
4. 服务器端接收到流后转发至相应的skelton类;
5. skelton类将请求的信息反序列化后调用实际的处理类;
6. 处理类处理完毕后将结果返回给skelton类;
7. Skelton类将结果序列化,通过socket将流传送给客户端的stub;
8. stub在接收到流后反序列化,将反序列化后的Java Object返回给调用者。

根据原理来回答下之前学习应用级协议带着的几个问题:
1. 传输的标准格式是什么?
是Java ObjectStream。

2. 怎么样将请求转化为传输的流?
基于Java串行化机制将请求的java object信息转化为流。

3. 怎么接收和处理流?
根据采用的协议启动相应的监听端口,当有流进入后基于Java串行化机制将流进行反序列化,并根据RMI协议获取到相应的处理对象信息,进行调用并处理,处理完毕后的结果同样基于java串行化机制进行返回。

4. 传输协议是?
Socket。

XML-RPC
XML-RPC也是一种和RMI类似的远程调用的协议,它和RMI的不同之处在于它以标准的xml格式来定义请求的信息(请求的对象、方法、参数等),这样的好处是什么呢,就是在跨语言通讯的时候也可以使用。

来看下XML-RPC协议的一次远程通信过程:
1. 客户端发起请求,按照XML-RPC协议将请求信息进行填充;
2. 填充完毕后将xml转化为流,通过传输协议进行传输;
3. 接收到在接收到流后转换为xml,按照XML-RPC协议获取请求的信息并进行处理;
4. 处理完毕后将结果按照XML-RPC协议写入xml中并返回。

同样来回答问题:
1. 传输的标准格式是?
标准格式的XML。

2. 怎么样将请求转化为传输的流?
将XML转化为流。

3. 怎么接收和处理流?
通过监听的端口获取到请求的流,转化为XML,并根据协议获取请求的信息,进行处理并将结果写入XML中返回。

4. 传输协议是?
Http。

Binary-RPC
Binary-RPC看名字就知道和XML-RPC是差不多的了,不同之处仅在于传输的标准格式由XML转为了二进制的格式。

同样来回答问题:
1. 传输的标准格式是?
标准格式的二进制文件。

2. 怎么样将请求转化为传输的流?
将二进制格式文件转化为流。

3. 怎么接收和处理流?
通过监听的端口获取到请求的流,转化为二进制文件,根据协议获取请求的信息,进行处理并将结果写入XML中返回。

4. 传输协议是?
Http。

SOAP
SOAP原意为Simple Object Access Protocol,是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议,可以认为SOAP是XML RPC的高级版,两者的原理完全相同,都是http+XML,不同的仅在于两者定义的XML规范不同,SOAP也是Webservice 采用的服务调用协议标准,因此在此就不多加阐述了。

CORBA
Common Object Request Broker Architecture(公用对象请求代理[调度]程序体系结构),是一组用来定义“分布式对象系统”的标准,由OMG(Object Menagement Group)作为发起和标准制定单位。

CORBA的目的是定义一套协议,符合这个协议的对象可以互相交互,不论它们是用什么样的语言写的,不论它们运行于什么样的机器和操作系统。

CORBA在我看来是个类似于SOA的体系架构,涵盖可选的远程通信协议,但其本身不能列入通信协议这里来讲,而且CORBA基本淘汰,再加上对CORBA也不怎么懂,在此就不进行阐述了。

JMS
JMS呢,是实现java领域远程通信的一种手段和方法,基于JMS实现远程通信时和RPC 是不同的,虽然可以做到RPC的效果,但因为不是从协议级别定义的,因此我们不认为JMS是个RPC协议,但它确实是个远程通信协议,在其他的语言体系中也存在着类似JMS 的东西,可以统一的将这类机制称为消息机制,而消息机制呢,通常是高并发、分布式领域推荐的一种通信机制,这里的主要一个问题是容错(详细见ErLang论文)。

来看JMS中的一次远程通信的过程:
1. 客户端将请求转化为符合JMS规定的Message;
2. 通过JMS API将Message放入JMS Queue或Topic中;
3. 如为JMS Queue,则发送中相应的目标Queue中,如为Topic,则发送给订阅了此Topic 的JMS Queue。

4. 处理端则通过轮训JMS Queue,来获取消息,接收到消息后根据JMS协议来解析Message并处理。

回答问题:
1. 传输的标准格式是?
JMS规定的Message。

2. 怎么样将请求转化为传输的流?
将参数信息放入Message中即可。

3. 怎么接收和处理流?
轮训JMS Queue来接收Message,接收到后进行处理,处理完毕后仍然是以Message的方式放入Queue中发送或Multicast。

4. 传输协议是?
不限。

基于JMS也是常用的实现远程异步调用的方法之一。

相关文档
最新文档