Java分布式系统实践:RMI与CORBA

需积分: 0 1 下载量 187 浏览量 更新于2024-08-18 收藏 832KB PPT 举报
"启动Java分布式系统,如RMI (Remote Method Invocation) 和CORBA (Common Object Request Broker Architecture),通常涉及到服务器和客户端的交互。RmiEchoServer和RmiEchoClient是示例应用,用于演示如何启动这两个组件。" 在Java中,分布式系统是指跨越多个网络节点的软件系统,它们通过网络进行通信和协作。RMI和CORBA是两种常见的Java实现分布式计算的技术。 RMI是Java平台内置的一种远程调用机制,允许Java对象在不同的JVM(Java虚拟机)之间进行通信。在上述描述中,`start java rmiEcho.RmiEchoServer localhost 1099 rose` 是启动RMI服务器的命令,其中 `localhost` 指定了服务器运行的主机地址,`1099` 是默认的RMI注册表端口,`rose` 可能是服务器实例的名称或特定参数。而 `java rmiEcho.RmiEchoClient` 是启动RMI客户端的命令,客户端会连接到服务器并执行远程方法。 CORBA,全称为Common Object Request Broker Architecture,是一种更通用的跨语言和平台的分布式对象模型。它定义了一种标准接口,使得不同编程语言和操作系统上的对象能够相互通信。虽然RMI通常用于Java环境,而CORBA支持多种语言,但两者都旨在解决分布式系统的复杂性问题。 软件体系结构从主机基础架构(Host-based)演进到客户端/服务器(Client/Server),再到分布式系统。在客户端/服务器架构中,数据库和业务逻辑可能分别位于服务器和客户端,而分布式系统进一步扩展了这种模式,使得对象可以分布在不同的计算机上,跨越网络进行交互。 Java提供了基于Socket的低级别网络通信机制。`java.net.Socket` 类是实现TCP/IP连接的基础,它允许两个应用程序通过网络进行双向通信。示例代码展示了如何创建一个Socket,连接到指定的IP地址和端口,并获取一个`BufferedReader`来读取从服务器接收到的数据。 SocketTest.java中的方法 `getBufferedReader(Socket socket)` 创建了一个从Socket读取数据的BufferedReader,这是处理输入流的常见做法。在主方法中,程序尝试连接到特定的域名和端口,获取Socket,然后创建BufferedReader以准备读取时间服务器的响应。 Java的RMI和CORBA提供了强大的工具,用于构建复杂的分布式应用程序,而Socket则提供了底层的网络通信能力,允许开发者构建自定义的网络协议和服务。理解并熟练掌握这些技术对于构建可扩展、可靠的分布式系统至关重要。