RMI规范--十

Java远程方法调用(RMI)技术详解 Java RMI(远程方法调用)采用三层架构实现分布式通信,包含注册表服务、服务端和客户端三大核心组件。服务端通过导出远程对象并绑定到注册表,客户端通过接口契约查找并调用远程方法。RMI采用租约机制管理远程对象生命周期,通过引用计数和定期续租实现分布式垃圾回收。开发时需要严格分离服务端与客户端代码,通过模块化部署确保安全性,并注意注册表必须与服务器同机部署。RMI架构隐藏了底层网络通信细节,使远程调用语法与本地调用保持一致,同时处理了对象定位、参数序列化和异常处理等分布式环境下的复杂问题。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> RMI 通信协议 10.1 概述 RMI 协议使用另两个协议作为其在通信格式:Java 对象序列化和 HTTP。对象序 列化协议用于编组调用和返回数据。HTTP 协议用于“投寄”远程方法调用,并在 情况允许时获得返回数据。每种协议都有专门的语法文档。产品规则中的非终结 符号可能会引用其它协议(对象序列化或 HTTP)所管理的规则。在跨协议边界时 ,后续产品将使用该嵌入的协议。 关于语法符号的说明 我们使用与 Java 语言规范(参见 JLS 的第 2.3 节)中类似的符号。 流中的控制代码由十六进制形式的文字值表示。 语法中的有些非终结符号表示调用中提供的与应用程序有关的值。这种非终结符 号的定义由其 Java 类型组成。语法后面是将这些非终结字符映射到相应类型的 表。 10.2 RMI 传输协议 RMI 的通信格式由 Stream 表示。这里所采用的术语是从客户机的角度来讲的。 out 指输出消息,而 in 指输入消息。传输标题的内容并未用对象序列化进行格 式化。 Stream: Out In RMI 所用的输入和输出流是成对出现的。每个 out 流都有相应的 in 流。在语法 中,out 流映射到套接字的输出流(从客户机角度)。in 流(在语法中)将与相 应套接字的输入流配对。由于输出与输入流是成对的,所以输入流中唯一需要的 标题信息就是一个表示是否理解协议的确认;其他标题信息(例如魔数和版本号 )都将由流对的上下文所隐含。 10.2.1 输出流格式 RMI 中的输出流由传输标题信息后跟一个消息序列组成。此外,输出流也可包含 嵌入在 HTTP 协议中的调用。


Out: Header Messages HttpMessage 



Header: 0x4a 0x52 0x4d 0x49 Version Protocol 



Version: 0x00 0x01 



Protocol: StreamProtocol SingleOpProtocol MultiplexProtocol 



StreamProtocol: 0x4b 



SingleOpProtocol: 0x4c 



MultiplexProtocol: 0x4d 



Messages: Message Messages Message 



Messages 将包装在 Protocol 指定的特定协议内。对于 SingleOpProtocol,He ader 的后面可能只有一个 Message,且该 Message 没有包装其它数据。Single OpProtocol 用于 HTTP 请求中所嵌入的调用,其中请求和响应都只能为一个。 对于 StreamProtocol 和 MultiplexProtocol,服务器必须用字节 0x4e(表示支 持该协议)和 EndpointIdentifier(包含主机名和端口号,服务器可以看到它们 在被客户机使用)进行响应。如果由于安全原因而无法执行该操作,客户机即可 使用该信息来确定其主机名。随后,客户机必须用另一个包含接受连接的缺省端 点的 EndpointIdentifier 进行响应。对于MultiplexProtocol,服务器可以用它 来标识客户机。 对于 StreamProtocol,本次端点协商后,将在输出流上发送 Messages,而不对 数据进行进一步打包。对于 MultiplexProtocol,套接字将连接用作多路复用连 接的具体连接,如第 10.6 节“RMI 的多路复用协议”中所述。在该多路复用连 接上初始化的虚拟连接由一系列 Messages 组成,如下所述。 输出消息共有三种:Call、Ping 和 DgcAck。Call 将对方法调用进行编码。Pin g 是一个传输级消息,用于测试远程虚拟机的活动性。DGCAck 是一个对服务器的 分布式垃圾收集器的确认,指示客户机已经接收到服务器返回值中的远程对象。




Message: Call Ping DgcAck 



Call: 0x50 CallData 



Ping: 0x52 



DgcAck: 0x54 UniqueIdentifier 

10.2.2 输入流格式 当前输入信息共有三种:ReturnData、HttpReturn 和 PingAck。ReturnData 是 “正常”RMI 调用的结果。HttpReturn 是 HTTP 协议中嵌入调用的返回结果。P ingAck 是对 Ping 消息的确认。


In: ProtocolAck Returns ProtocolNotSupported HttpReturn 



ProtocolAck: 0x4e 



ProtocolNotSupported: 0x4f 



Returns: Return Returns Return 



Return: ReturnData PingAck 



ReturnData: 0x51 ReturnValue 



PingAck: 0x53 

10.3 RMI 对对象序列化协议的使用 RMI 调用中的调用和返回数据将使用 Java 对象序列化协议进行格式化。每个方 法调用的 CallData 表示为 ObjectIdentifier(调用的目标)、Operation(代 表要调用方法的数字)、Hash(检验客户机 stub 与远程对象 skeleton 是否使 用同一 stub 协议的数字),后跟该调用的零个或多个参数列表。 在 JDK1.1 stub 协议中,Operation 代表方法号(由 rmic 分配),而 Hash 是 stub/skeleton 散列,它是该 stub 的接口散列。在 JDK1.2 stub 协议(利用 带 -v1.2 选项的 rmic 生成 JDK1.2 stub)中,Operation 的值为 -1 且 Hash 代表了所要调用方法的散列。散列将在“ RemoteRef 接口”一节中介绍。


CallData: ObjectIdentifier Operation Hash Argumentsopt 



ObjectIdentifier: ObjectNumber UniqueIdentifier 



UniqueIdentifier: Number Time Count 



Arguments: Value Arguments Value 



Value: Object Primitive 

RMI 调用的 ReturnValue 由指示正常或异常返回的返回代码、标记返回值的 Un iqueIdentifier(用于在必要时发送 DGCAck)后跟以下返回结果组成:返回的值 或抛出的异常。 ReturnValue: 0x01 UniqueIdentifier Valueopt 0x02 UniqueIdentifier Exc eption ---------------------------------------------------------------------- ---------- 注意 - ObjectIdentifier、UniqueIdentifier 和 EndpointIdentifier 并不是 用缺省序列化编写的,而是各自使用自己的 write 方法(但不是对象序列化所用 的 writeObject 方法);每种标识符的 write 方法都将其组件数据连续添加到 输出流中。 ---------------------------------------------------------------------- ---------- 10.3.1 类注解和类加载 RMI 分别覆盖了 ObjectOutputStream 和 ObjectInputStream 的 annotateClas s 和 resolveClass 方法。每个类都用 codebase URL(加载该类的位置)进行注 解。annotateClass 方法中将查询加载该类的类加载器以得到其 codebase URL。 如果类加载器非空且其 codebase 也为非空,则将使用 ObjectOutputStream.wr iteObject 方法将该 codebase 写入流中;否则将使用 writeObject 方法将空值 写入流中。注意:最好不要注解“java”包中的类,因为它们对于接收者来说总 是可用的。 类注解是在序列化恢复期间用 ObjectInputStream.resolveClass 方法解析的。 resolveClass 方法首先用 ObjectInputStream.readObject 方法读取注解。如果 注解(codebase URL)非空,它就获得该 URL 的类加载器并试图加载该类。利用 java.net.URLConnection 获取类字节,即可对该类进行加载(与 web 浏览器的 applet 类加载器所用的机制相同)。 10.4 RMI 对 HTTP POST 协议的使用 为了通过防火墙调用远程方法,有些 RMI 调用使用了 HTTP 协议,尤其是 HTTP POST。在传递标题中指定的 URL 可以为下列内容之一: http://:/ http://:80/cgi-bin/java-rmi?forward= 第一个 URL 用于与特定 host 和 port 上的 RMI 服务器直接通信。第二种形式 的 URL 用于调用服务器上的“cgi”脚本,后者将把调用转发给指定 port 上的 服务器。 HttpPostHeader 是 POST 请求的标准 HTTP 标题。HttpResponseHeader 是对传 递过程的标准 HTTP 响应。如果响应状态代码不是 200,则认为没有返回值。注 意一个 HTTP POST 请求中只能嵌入一个 RMI 调用。 HttpMessage: HttpPostHeader Header Message HttpReturn: HttpResponseHeader Return ---------------------------------------------------------------------- ---------- 注意 - 只有 SingleOpProtocol 出现在 HttpMessage 的标题中。HttpReturn 不 包含用于确认协议的字节。 ---------------------------------------------------------------------- ---------- 10.5 RMI 的与应用程序有关的值 本表列表出 RMI 所用的代表与应用程序有关的值的非终结符号。该表将每个符号 映射为相应的类型。每个符号都分别使用它所嵌入在其中的协议进行格式化。


Count short 



Exception java.lang.Exception 



Hash long 



Hostname UTF 



Number int 



Object java.lang.Object 



ObjectNumber long 



Operation int 



PortNumber int 



Primitive byte, int, short, long... 



Time long 



10.6 RMI 的多路复用协议 多路复用的目的是提供一种模型,其中两个端点都可打开多个到另一端点的全双 工连接,而在相同环境下,使用其他工具(例如 TCP 连接)时,只有一个端点能 打开这样的双向连接。利用这种简单的多路复用协议,RMI 即可允许客户在某些 其他协议无能为力的情况下,连接到 RMI 的服务器对象上。例如,有些 applet 环境的安全管理器不允许创建服务器套接字监听到来的连接,以防止这种 appl et 从直接套接字连接上导出 RMI 对象及提供远程调用服务。但是,如果该 app let 可以打开到其 codebase 主机的正常套接字连接,它就可以在该连接上使用 多路复用协议,从而允许 codebase 主机调用该 applet 所导出的 RMI 对象的方 法。本节介绍了多路复用协议的格式和规则。 10.6.1 定义 本节定义一些将在协议其余部分使用的术语。 端点是用多路复用协议连接的两个用户之一。 多路复用协议必须位于已有的双向可靠字节流之上,假设由一个端点向另一个端 点进行初始化。在当前的 RMI 用法中,它通常是 TCP 连接,由 java.net.Sock et 对象建立。该连接称为具体连接。 多路复用协议有助于虚拟连接的使用。虚拟连接本身就是双向的可靠字节流,代 表两个端点之间的特定会话。一个连接上两个端点之间的虚拟连接集组成一个多 路复用连接。使用多路复用协议,虚拟连接可以由任一端点打开和关闭。虚拟连 接相对给定端点的状态由在具体连接上发送和接收的多路复用协议元素定义。该 状态涉及连接是打开还是关闭、传送的实际数据及相关的流控制机制。如果没有 特别说明,本节中其余部分将使用术语连接表示虚拟连接。 给定多路复用连接内的虚拟连接由一个 16 位整数标识,称为连接标识符。因而 ,一个多路复用连接中可能存在 65,536 个虚拟连接。实现可能会限制能同时使 用的虚拟连接数。 10.6.2 连接状态和流控制 连接由用多路复用协议定义的各种操作来控制。下面是协议所定义的操作名:OP EN、CLOSE、CLOSEACK、REQUEST 和 TRANSMIT。所有操作的准确格式和规则将在 第 10.6.3 节 “协议格式”中详细介绍。 OPEN、CLOSE 和 CLOSEACK 操作控制连接的打开和关闭,而 REQUEST 和 TRANSM IT 操作用于在流控制机制的限制内在打开的连接上传输数据。 连接状态 如果端点发送连接的 OPEN 操作或接收到连接的 OPEN 操作(且随后没有关闭它 ),则该虚拟连接相对于该端点即为打开的。下面介绍不同的协议操作。 如果端点发送连接的 CLOSE 操作,但随后没有接收到该连接的 CLOSE 或 CLOSE ACK 操作,则该虚拟连接相对于该端点是等待关闭的。 如果端点从来没有打开过连接或接收到连接的 CLOSE 或 CLOSEACK 操作(且随后 没有打开),则该虚拟连接相对于该端点是关闭的。 流控制 多路复用协议使用简单的包流控制机制允许多个虚拟连接并存于同一具体连接上 。流控制机制的高级要求是所有虚拟连接的状态都是独立的;一个连接的状态不 会影响其他连接。例如,如果处理来自某个连接的数据的数据缓冲区已满,应不 会防碍其他连接的数据传输和处理。如果连接的继续依赖于另一个连接的结束( 例如递归 RMI 调用时),则这一点将至关重要。因而,它的实际意义是实现必须 总能消耗和处理在具体连接上(假定它遵循该规范)准备输入的所有多路复用协 议数据。 每个端点具有两个与各连接相关联的状态值:该端点已经请求但尚未接收到的数 据字节数(输入请求数)和另一端点请求但该端点尚未提供的数据字节数(输出 请求数)。 端点的输出请求数在从其他端点接收到 REQUEST 操作时将增大,而在它发送 TR ANSMIT 操作时将减小。端点的输入请求数在它发送 REQUEST 操作时将增大,而 在它接收到 TRANSMIT 操作时将减小。这些值如果为负就将违反协议。 如果端点发送 REQUEST 操作而导致其输入请求数增大并超过其当前可以无阻塞处 理的字节数,则违反协议。但如果连接的用户在等待读取数据,则应确保其输入 请求数大于零。 如果端点发送的 TRANSMIT 操作包含有比其输出请求数更多的字节,则违反协议 。它可以缓冲外流的数据,直到连接用户请求显式刷新写入到连接中的数据。但 如果因为显式的刷新或实现的输入缓冲区满而必须在连接上发送数据,则连接用 户可能被阻塞,直到有足够 TRANSMIT 操作。 在满足上述规则的前提下,实现可以相对自由地发送 REQUEST 和 TRANSMIT 操作 。例如,如果其输入缓冲区不空,则端点可以请求连接的更多数据。 10.6.3 协议格式 多路复用协议的字节流格式由连续的可变长度记录序列组成。记录的第一个字节 是一个操作码,它可以识别记录的操作并可确定其内容其余部分的格式。我们定 义了下列合法的操作码: 值 名称 0xE1 OPEN 0xE2 CLOSE 0xE3 CLOSEACK 0xE4 REQUEST 0xE5 TRANSMIT 如果记录的第一个字节不是所定义的操作码,则违反协议。下面各节介绍了每种 操作码的记录格式。 OPEN 操作 下面是 OPEN 操作的记录格式: 大小(字节) 名字 描述 1 opcode 操作码 (OPEN) 2 ID 连接标识符 端点将发送 OPEN 操作以打开指定的连接。如果ID 指向对发送端点当前已打开或 即将关闭的连接,则违反协议。打开连接后,连接的输入和请求数状态在两个端 点上都为零。 接收到 OPEN 操作表示另一端点正在打开指定的连接。打开连接后,连接的输出 和请求数状态在两个端点处都为零。 为防止两端点间的标识符冲突,有效连接标识符空间将根据最高位的值分为两半 。每个端点仅允许打开高位为某一特定值的连接。启动具体连接的端点必须只打 开高位为标识符中的连接,另一端点必须只打开高位为零的连接。例如,如果不 能创建服务器套接字的 RMI applet 启动了与其 codebase 主机的多路复用连接 ,则该 applet 可以打开标识符范围为 0x8000-7FFF 的虚拟连接,而服务器可以 打开标识符范围为 0-0x7FFF 的虚拟连接。 CLOSE 操作 以下是 CLOSE 操作的记录格式: 大小(字节) 名字 描述 1 opcode 操作代码 (OPEN) 2 ID 连接标识符 端点发送 CLOSE 操作以关闭指定的连接。如果 ID 指向对发送端点当前已关闭或 即将关闭的连接(如果它已发送过此连接的 CLOSE 操作,也可能是对接收端点即 将关闭的连接),则违反协议。 发送 CLOSE 后,连接就成为对发送端点即将关 闭的连接。因此,该端点将不能重新打开该连接,直到它从另一端点接收到 CLO SE 或 CLOSEACK 为止。 接收到 CLOSE 操作表示另一端点已关闭指定的连接,因此该连接已在接收端点上 被关闭。虽然接收端点可能不再为此连接发送其它操作(直到被再次打开),但 它仍应为此连接的读者提供实现的输入缓冲区中的数据。如果连接已经被打开( 而不是即将关闭),则接收端点必须用 CLOSEACK 操作作为响应。 CLOSEACK 操作 以下是 CLOSEACK 操作的记录格式: 大小(字节) 名字 描述 1 opcode 操作代码 (OPEN) 2 ID 连接标识符 端点发送 CLOSEACK 操作以表明已收到来自接收端点的 CLOSE 操作。如果收到操 作时 ID 指向的连接不是对接收端点将要关闭的连接,则违反协议。 接收到 CLOSEACK 操作可将指定连接的状态从即将关闭改为已关闭,因此以后还 可重新打开连接。 REQUEST 操作 以下是 REQUEST 操作的记录格式: 大小(字节) 名字 描述 1 opcode 操作代码 (OPEN) 2 ID 连接标识符 4 count 请求的额外字节数 端点发送 REQUEST 操作以增大指定连接的输入请求数。如果 ID 未指向发送端点 打开的连接,则违反协议。端点的输入请求数按值 count 递增。count 的值是 32 位有符号整数。如果为负数或零,则违反协议。 接收到 REQUEST 操作将使指定连接的输出请求数按 count 增加。如果接收端点 即将关闭连接,则将忽略 REQUEST 操作。 TRANSMIT 操作 以下是 TRANSMIT 操作的记录格式。 大小(字节) 名字 描述 1 opcode 操作码 (OPEN) 2 ID 连接标识符 4 count 传输的字节数 count data 传输数据 端点发送 TRANSMIT 操作后,才真正在指定连接上传输数据。如果 ID 未指向对 发送端点打开的连接,则违反协议。端点的输出请求按值 count 递减。count 的 值是 32 位有符号整数。如果为负数或零,则违反协议。如果 TRANSMIT 操作导 致输出请求数成为负数,则也违反协议。 接收到 TRANSMIT 操作时从连接中可读到的字节队列将增加 count 字节的数据。 接收端点的输入请求数按值 count 递减。如果这会使输入请求数成为零,而该连 接的用户却试图读取更多数据,则该端点应用另一个 REQUEST 操作作为响应。如 果接收端点即将关闭连接,则将忽略 TRANSMIT 操作。 违反协议 如果出现上述违反协议的现象,或者在具体连接中检测到通讯错误,则多路复用 连接即被关闭。实际连接将被终止,而所有虚拟连接也被立即关闭。连接的用户 可以读取虚拟连接中已经可以读取的数据。 RMI规范--二 RMI规范--三 RMI规范--四 RMI规范--五 RMI规范--六 RMI规范--七 RMI规范--八 RMI规范--九
java RMI规范 这个是 RMI规范 ,讲解得比较清楚,大家来看看 立即下载

相关推荐

Java RMI中文规范

这是本人搜集整理的Java RMI规范,中文版,经过排版 共包括10个章节,2个附录

RMI规范(10)

RMI 通信协议 10.1 概述 RMI 协议使用另两个协议作为其在通信格式:Java 对象序列化和 HTTP。对象序 列化协议用于编组调用和返回数据。HTTP 协议用于“投寄”远程方法调用,并在 情况允许时获得返回数据。每种协议都有专门的语法文档。产品规则中的非终结 符号可能会引用其它协议(对象序列化或 HTTP)所管理的规则。在跨协议边界时 ,后续产品将使用该嵌入的协议。 关于语法符号

morningbird的专栏 1024

关于RMI方面的规范知识

RMI的基础规范,关于RMI方面的规范知识

【Dongle】【Java】规范之RMI

RMI(Remote Method Invoke):remote(遥远的) invoke(调用),RMI是一种被EJB使用的更底层的协议,能够让在某个Java虚拟机上的对象像调用本地对象一样调用另一个java 虚拟机中的对象上的方法。

郑晓东 廊坊师范学院信息技术提高班 十二期 657

保姆级教程:用OpenCV的calibrateHandEye()搞定机器人手眼标定(附Python代码)

本文详细介绍了如何使用OpenCV的calibrateHandEye()函数完成机器人手眼标定,解决机械臂与相机坐标系对齐问题。教程涵盖从基础原理、数据采集到Python代码实现的完整流程,特别适合需要精确视觉引导的机器人应用开发。通过手眼标定,可确保机械臂准确抓取相机检测到的目标物体。

weixin_33712987的博客 518

【高清照片】深圳光博会看PCIe Over Fibre 实现方案

本文分析了PCIe over Fibre技术及其在数据中心的应用前景。该技术通过光纤延伸PCIe总线,解决了传统铜缆距离限制问题,支持跨机架资源池化。目前主要有两种实现方式:CDFP混合光缆方案和Retimer转接卡方案,各有优缺点。文章还探讨了CDFP接口的现状、低速信号传输解决方案,以及PCIe速率与光通信发展的对应关系。最后对比了PCIe光缆与以太网光缆的关键差异,指出PCIe光互连在协议透明度和边带信号处理上的特殊要求。随着标准推进,PCIe over Fibre将成为数据中心扩展高带宽、低时延互连

Saniffer的博客 1393

Java——RMI详解

RMI 是 Java 提供的一个完善的简单易用的远程方法调用框架,采用客户/服务器通信方式,在服务器上部署了提供各种服务的远程对象,客户端请求访问服务器上远程对象的方法,它要求客户端与服务器端都是 Java 程序。RMI 框架采用代理来负责客户与远程对象之间通过 Socket 进行通信的细节。RMI 框架为远程对象分别生成了客户端代理和服务器端代理。位于客户端的代理必被称为存根(Stub),位于服务器端的代理类被称为骨架(Skeleton)。

吴声子夜歌的博客 9040

使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换

随着文档处理需求的增加,格式转换成为了一个重要的需求点。由于PDF格式具有跨平台、不易被篡改的特性,将Word格式(.docx)转换为PDF格式(.pdf)的需求尤为强烈。ONLYOFFICE作为一个强大的办公套件,提供了这样的转换功能,使得用户可以轻松地在Word和PDF之间进行转换。

ONLYOFFICE的官方博客 4571

RMI 规范

RMI(基本概念) Java Remote Method Invocation ( RMI -- Java 远程方法调用)允许您使用Java 编写分布式对象,不同的Java 虚拟机(JVM)之间进行对象间的通讯。这些JVM 可以在一台者多台计算机上,使得应用程序(Application) 可以远程调用方法,共享各个系统的资源和处理能力。  RMI 的主要优点 面向对象: RMI 可将完整的

忧郁王子的专栏 2667

超声波探伤技术在风电叶片检测中的实战应用(含设备选型指南)

本文深入探讨了超声波探伤技术在风电叶片高空检测中的实战应用,重点分析了相控阵超声、激光超声等技术的选择与挑战。文章提供了详细的设备选型指南,对比了奥林巴斯、GE及国产品牌的优劣,并解读了典型缺陷的超声图谱特征,旨在帮助风电运维工程师安全、高效地完成叶片内部损伤的无损检测与预防性维护。

desk3的博客 886

docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

m0_55333789的博客 1559

java RMI原理详解

定义 RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。 Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里

xinghun_4的专栏 3万+

torchsparse安装

torchsparse安装以及安装失败原因分析和解决

AI_BING_的博客 1万+

RMI规范(4)

RMI规范--第四章 客户机接口 程序员在编写使用远程对象的 applet 或应用程序时,需要注意 java.rmi 包 中可用的 RMI 系统客户机可视接口。 4.1 远程接口 package java.rmi; public interface Remote {} java.rmi.Remote 接口用来识别所有远程接口;所有远程对象必须直接或间接 实现此接口。 实现类可以

morningbird的专栏 1257

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py)

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py) 题目描述 学校组织活动,将学生排成一个矩形方阵 请在矩形方阵中找到最大的位置相连的男生数量 这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的 注:学生个数不会超过10000

KJ.JK 2493

OpenGL 进阶系列10 - 光线跟踪实现简介(Ray Tracing)

OpenGL 实现光线跟踪(Ray Tracing)是一个相对复杂但有趣的挑战,通常用于生成高度逼真的图像效果,如反射、折射、阴影等。OpenGL 本身并不是为光线跟踪设计的,但可以通过结合计算着色器和现代 OpenGL 功能实现光线跟踪。光线跟踪的基本思路是从相机(或视点)出发,发射光线并计算这些光线与场景中物体的交点。光线与场景中物体相交的计算。计算交点的光照(基于表面法线、光源位置、材质等)。反射和折射的处理(如果物体是透明或反射的)。

GPU全栈博主 1534

RMI规范(6) --(10)

RMI规范(6) 注册服务程序接口 ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- 第 6 章 RMI 系统使用 java.

bluevoyage的专栏 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

RMI规范(3)

RMI规范--第三章 主题: Stub 与 skeleton 远程方法调用中的线程使用 远程对象的垃圾收集 动态类的加载 通过代理服务器透过防火墙的 RMI 3.1 Stub 与 skeleton 在与远程对象的通信过程中,RMI 将使用标准机制(用于 RPC 系统):stub 与 skeleton。远程对象的 stub 担当远程对象的客户本地代表或代理人角色。 调用程序将调用本地 s

morningbird的专栏 1183

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

RMI规范(2)

RMI规范--第二章 Java 分布式对象模型 2.1 分布式对象应用程序 RMI 应用程序通常包括两个独立的程序:服务器程序和客户机程序。典型的服务 器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机 调用那些远程对象上的方法。而典型的客户机程序则从服务器中得到一个或多个 远程对象的引用,然后调用远程对象的方法。RMI 为服务器和客户机进行通讯 和信息传递提供了一种机

morningbird的专栏 1989

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RMI规范(5)

RMI规范--第五章 服务器接口 java.rmi.server 包包含通常用于实现远程对象的接口与类。 主题: RemoteObject 类 RemoteServer 类 UnicastRemoteObject 类 Unreferenced 接口 RMISecurityManager 类 RMIClassLoader 类 LoaderHandler 接口 RMI 套接字工厂 RMIFai

morningbird的专栏 1167

RMI介绍

      其实我近日有想法要请总坛主开设Java分布式应用版块,专门讨论Java分布式应用。如Jini,CORBA,RMI,RMI-IIOP等。更进一步,还包括各种技术之间的通讯等问题。比如RMI-IIOP和CORBA通讯,Jini访问CORBA对象,EJB到CORBA映射等高级问题。不过暂时还没有实现。所以姑且在此先讨论一下这些东西好了。RMI是Sun基于Java技术推出的一种分布式应用方案。

天高任鸟飞,海阔凭鱼跃 2751

RMI规范--第二 -- 五章

?RMI规范--第二章 Java 分布式对象模型 。。RMI规范--第三章 主题: Stub 与 skeleton;; 远程方法调用中的线程使用 ;;远程对象的垃圾收集;;动态类的加载;;通过代理服务器透过防火墙的 RMI ;;。。RMI规范--第四章 客户机接口;; 程序员在编写使用远程对象的 applet 或应用程序时,需要注意 java.rmi 包中可用的 RMI 系统客户机可视

bluevoyage的专栏 1694

RMI规范–第十章 RMI 通信协议

RMI规范–第十章 RMI 通信协议 (转贴) 10.1 概述RMI 协议使用另两个协议作为其在通信格式:Java 对象序列化和 HTTP。对象序列化协议用于编组调用和返回数据。HTTP 协议用于“投寄”远程方法调用,并在情况允许时获得返回数据。 每种协议都有专门的语法文档。产品规则中的非终结符号可能会引用其它协议(对象序列化或 HTTP)所管理的规则。在跨协议边界时,后续产品将使用该...

jybzjf的专栏 1434

RMI规范--五

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 442

RMI规范--四

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 262
上一篇: SOAP--新一轮竞争的三八线?(二)
下一篇: RMI规范--九
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值