"CORBA的产生-基于JAVA的分布式系统 RMI CORBA"
在理解CORBA的产生之前,我们首先需要了解当时的软件体系结构背景。早期的软件架构是主机为基础的,用户界面、业务逻辑和数据库都集成在一个大型应用中。随着技术的发展,这种架构演变为客户端/服务器模式,数据库被移至服务器端,用户界面在客户端,而业务逻辑可能分布于客户端或服务器,或者两者兼有。
分布式系统的出现进一步推动了这一变革,它由分布在不同网络计算机上的对象组成,这些对象不仅能够利用本地应用系统的服务,还能跨应用系统调用其他对象的服务。这种需求催生了CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)的诞生。在1990年,对象管理组织(OMG,Object Management Group)提出了对象管理体系(OMA),旨在描述应用程序如何实现互操作性。CORBA作为OMA的一部分,规定了一种标准,使得应用程序片段即对象能够实现跨网络的互操作。
在Java中,分布式计算可以通过RMI(Remote Method Invocation,远程方法调用)和CORBA实现。RMI是Java提供的一种轻量级的远程调用机制,它允许一个Java对象调用另一个位于不同JVM上的对象的方法。RMI的核心在于它简化了对象间的远程通信,使得开发者无需关心底层网络细节。
然而,RMI的适用范围相对较窄,它仅限于Java环境,而CORBA则提供了一个更通用的解决方案。CORBA支持多种编程语言,包括Java,并且提供了更强大的功能,如事务处理、安全性、事件服务等。在CORBA中,对象是通过ORB(Object Request Broker,对象请求代理)进行交互的,ORB负责透明地处理对象定位、消息传递和异常处理等复杂任务。
在基于Socket的远程连接中,Java的`java.net`包提供了基础的TCP/IP通信功能。Socket是网络通信的基本单元,通过IP地址、传输层协议(通常是TCP)和端口号来标识。例如,在`SocketTest.java`示例中,展示了如何创建Socket并获取BufferedReader来读取远程服务器的数据。
总结来说,CORBA的产生是为了应对分布式系统的需求,提供跨平台、跨语言的互操作能力,而Java的RMI和基于Socket的通信则是实现分布式计算的两种重要方式。RMI简单易用,适合Java环境,而CORBA更为全面,适用于多语言环境,具有更强的扩展性和灵活性。