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

需积分: 0 1 下载量 33 浏览量 更新于2024-08-18 收藏 832KB PPT 举报
"这篇资源主要讨论了如何在Java环境下生成stub和skeleton,以及它们在分布式系统中的作用,特别是RMI (Remote Method Invocation) 和CORBA (Common Object Request Broker Architecture) 这两种技术。 stub和skeleton是实现远程方法调用的关键组件。" 在Java分布式系统中,RMI和CORBA是两种重要的技术,用于构建跨越多个网络节点的对象交互。RMI允许Java对象在不同的Java虚拟机之间进行通信,而CORBA则是一个标准的中间件,使得不同编程语言和操作系统之间的对象能够相互通信。 生成stub和skeleton是RMI实现过程中的关键步骤。Stub(存根)可以看作是客户端的代理,它模拟了远程对象的行为,使得客户端代码可以像调用本地对象一样调用远程对象。Skeleton(骨架)则在服务器端,负责接收来自客户端的调用,并将调用转发给实际的远程对象。在给出的描述中,我们看到在命令行环境下设置classpath后,使用`rmic`命令生成了RMI的stub,如`rmic rmiEcho.RmiEchoServer`。接着,启动了RMI注册表`rmiregistry`,这是RMI系统的重要组成部分,它管理着远程对象的命名和绑定。 在早期的软件体系结构中,系统通常采用主机式或客户端/服务器模式。随着网络技术的发展,分布式系统成为了主流,其中的对象可以分布在不同的网络节点上,提供更灵活的扩展性和高可用性。基于Socket的远程连接是实现这种分布式架构的基础。Java的`java.net`包提供了Socket类,它允许应用程序通过TCP/IP进行通信。Socket连接需要目标IP地址、使用的传输协议(通常是TCP)和端口号来建立。示例代码`SocketTest.java`展示了如何创建和使用Socket进行网络通信,包括获取输入流并创建BufferedReader以读取数据。 在RMI中,虽然不需要显式地处理Socket连接,但底层的通信机制仍然依赖于Socket。RMI提供了更高的抽象层次,使得开发者可以更专注于业务逻辑,而不用关心底层网络细节。相比之下,CORBA提供了更全面的解决方案,包括接口定义语言(IDL)、ORB(Object Request Broker)和跨平台的互操作性,但它也更复杂。 Java的RMI和CORBA都是实现分布式计算的重要工具,它们通过生成stub和skeleton等手段,简化了远程对象的调用,从而促进了分布式系统的构建。在实际开发中,开发者需要根据项目需求选择适合的技术,平衡性能、复杂性和可维护性。