Java分布式系统深入:RMI与CORBA解析

需积分: 0 1 下载量 92 浏览量 更新于2024-08-18 收藏 832KB PPT 举报
"该资源提供了一个基于JAVA的分布式系统示例,主要涉及RMI (Remote Method Invocation) 和CORBA (Common Object Request Broker Architecture) 技术。通过一个名为`calculator.idl`的IDL (Interface Definition Language) 文件展示了计算接口,用于实现远程方法调用。" 在Java分布式系统中,RMI 和 CORBA 是两种重要的技术,它们允许在不同的网络节点之间进行对象级别的通信,从而构建分布式应用。RMI 是Java平台内置的一种机制,主要用于Java对象之间的远程调用。它简化了客户端和服务器之间的通信,使得一个对象可以在一台机器上创建并执行方法,而这些方法的实际执行可以在另一台机器上。 RMI 的核心概念包括: 1. **远程接口(Remote Interface)**:定义了可以远程调用的方法。 2. **远程实现(Remote Implementation)**:实现了远程接口,并实际处理方法调用。 3. ** stubs 和 skeletons**:RMI 生成的代理类(stubs)允许客户端调用远程方法,而服务器端的骨架类(skeletons)处理实际的服务请求。 举例来说,`calculator.idl` 文件定义了一个`calculator`接口,包含一个`add`方法,接受两个`long`类型参数并返回一个`long`结果。这个接口可以被RMI用来创建远程服务,使得客户端可以通过网络调用远程服务器上的`add`方法执行加法运算。 而CORBA则是一个更为通用的标准,它允许不同语言和操作系统之间的对象交互。与RMI相比,CORBA 提供了更丰富的服务,如命名服务、事件服务、交易服务等,但它的使用通常比RMI复杂。CORBA 使用ORB(Object Request Broker)作为中间件,ORB负责对象的定位、调用的传输以及类型转换。 在分布式系统的演进过程中,从主机系统到客户端/服务器架构,再到分布式系统,通信方式也在不断演变。基于Socket的远程连接是早期常见的做法,Java的`java.net.Socket`类提供了基础的TCP/IP通信功能。`SocketTest.java`示例展示了如何创建Socket连接,读取远程服务器(如`time-a.timefreq.bldrdoc.gov`的端口13)的时间。 在Java中,通过`Socket`类建立连接后,可以获取`InputStream`来读取远程服务器的数据。`BufferedReader`用于从`InputStream`读取字符流,方便处理输入数据。这个例子虽然没有涉及RMI或CORBA,但它展示了网络通信的基础,这也是分布式系统中必不可少的部分。 总结来说,这个资源探讨了基于Java的分布式系统设计,尤其是RMI和CORBA技术,以及如何使用Socket进行基本的网络通信。理解这些概念和技术对于开发分布式应用程序至关重要。