软考:CORBA架构

打印 上一主题 下一主题

主题 747|帖子 747|积分 2241

CORBA逾期了吗
CORBA指南
个人小结:
IPC,历程间通信,Socket应用在不同机器之间的通信
RPC是一种技能头脑而非一种规范


  • 但站在八九十年代的当口,简朴来说,就是我在当地调用了一个函数,大概对象的方法,实际上是调用了远程机器上的函数,大概远程对象的方法,但是这个通信过程对于程序员来说是透明的,即到达了一种位置上的透明性。
RPC,远程过程调用中心件。



  • 数据格式和编码不同
  • 以前没有跨平台的语言
以是背面出现了CORBA架构,但是随着Java的出现,EJB框架,自身就支持了RPC调用。
RPC可以解决背景的瓶颈问题,就是说传统的RPC,必要特定的框架来支持。
说白了,就是如何通报对象,背面利用XML通报,再厥后,利用Web Service SOAP协议来形貌,通过HTTP、TCF大概传输协议进行通报。
CORBA

客户端和服务端架构下,分布式调用的产物。
ORB 对象请求代理,处理通信过程
IDL:接口形貌语言,共享接口界说,通过编译工具可以将IDL文件编译成多种语言的客户端stub代码和服务端skeleton代码。
分布式对象解决方案,解决的问题是什么?

分布式对象解决方案重要解决的问题包括:

  • 跨平台通信:分布式对象技能允许不同硬件平台、操作系统和编程语言之间的通信。它通过中心件来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使得应用软件能够比力平滑地运行于不同平台上。
  • 对象间的方法调用:在分布式系统中,对象大概分布在不同的所在空间和网络节点上。分布式对象解决方案允许这些对象之间进行方法调用,就像它们在同一个历程中一样。
  • 数据划一性:在分布式系统中,由于数据分布在不同的节点上,保证数据的划一性是一个挑衅。分布式对象解决方案通过事务管理和锁机制来确保数据的划一性。
  • 容错性和可靠性:分布式系统大概面临节点故障的问题。分布式对象解决方案通过冗余和故障转移机制来进步系统的容错性和可靠性。
  • 扩展性:随着数据量的增长,系统必要动态扩展以顺应不断增长的需求。分布式对象解决方案支持通过添加更多的节点来扩展系统,从而进步存储容量和处理能力。
  • 安全性:分布式系统必要保护数据免受未授权访问和篡改。分布式对象解决方案提供数据加密和访问控制等安全功能来保护数据的安全性。
  • 分布式事务处理:在跨多个数据库或服务的事务操作中,必要保证事务的划一性、隔离性、长期性和原子性。分布式对象解决方案提供了如两阶段提交(2PC)、三阶段提交(3PC)和Try-Confirm-Cancel(TCC)等分布式事务解决方案。
  • 分布式锁:为了解决分布式系统中的并发问题,确保在多个节点上同时访问共享资源时的数据划一性和安全性,分布式对象解决方案提供了分布式锁机制,如基于Redis或Zookeeper的分布式锁。
  • 性能优化:分布式对象存储解决方案关注系统的性能优化,包括网络延迟、磁盘I/O、CPU利用率等方面的优化,以进步系统的整体性能和相应速度。
  • 元数据管理:在分布式对象存储中,元数据的管理至关重要,因为它包含了关于对象的信息,如名称、大小、创建时间、修改时间以及存储位置等。高效的元数据管理系统能够快速相应客户端的查询请求,并指导数据访问路径,进步数据访问的效率和正确性。
这些解决方案使得分布式系统能够更加灵活、可扩展、可靠和安全地处理大规模数据和复杂的计算使命。
Java语言本身跨平台,Java RMI只专注于一种语言的解决方案,编写简朴。无需CORBA那样为了适配各种语言而引入IDL。 这句话怎么理解?

这句话重要在比力Java RMI(Remote Method Invocation)和CORBA(Common Object Request Broker Architecture)两种分布式计算技能,夸大了Java RMI在特定场景下的优势。下面是对这句话的详细解释:
Java语言本身跨平台:
Java语言设计之初就提出了“一次编写,随处运行”(Write Once, Run Anywhere,简称WORA)的理念。这意味着用Java编写的程序可以在不同的操作系统上运行,而无需修改代码。这是因为Java程序在运行时会被编译成字节码(.class文件),这些字节码可以在任何安装了Java虚拟机(JVM)的平台上执行。
Java RMI专注于Java语言:
Java RMI是一种Java特有的技能,它允许Java程序调用运行在其他Java虚拟机上的Java对象的方法。由于RMI是为Java语言设计的,因此它不必要像CORBA那样支持多种编程语言。
编写简朴:
Java RMI的API相对简朴,Java开发者可以比力直观地利用它来实现远程方法调用。开发者只必要继承java.rmi.Remote接口并实现相应的远程接口,然后利用java.rmi.server.UnicastRemoteObject类来导出远程对象,就可以进行远程调用了。
无需CORBA那样的IDL:
CORBA是一种更为通用的分布式计算框架,它支持多种编程语言。为了实现不同语言之间的互操作性,CORBA引入了接口界说语言(Interface Definition Language,简称IDL)。IDL是一种独立于编程语言的接口形貌语言,它界说了远程对象的接口。开发者必要利用IDL来界说接口,然后利用IDL编译器生成不同语言的存根代码(Stubs和Skeletons),以实现不同语言之间的通信。
相比之下,Java RMI不必要IDL,因为它只关注Java语言。Java RMI在编译时主动生成远程对象的存根代码,这简化了开发过程,淘汰了开发者必要编写的代码量。
总结来说,这句话夸大了Java RMI在Java语言环境下的优势:它利用了Java的跨平台特性,提供了一种简朴直观的方式来实现Java程序之间的远程方法调用,而无需像CORBA那样为了支持多种语言而引入复杂的IDL机制。这使得Java RMI在纯Java环境中的分布式计算变得更加容易和高效。
RPC和目前的Web Rest关系对比

RPC(Remote Procedure Call,远程过程调用)是一种允许一个程序(客户端)通过网络向另一个程序(服务器)请求服务的协议。它使得开发者可以像调用当地函数一样调用远程服务器上的函数或方法,而无需关心底层网络通信的细节

HTTP + JSON + REST是一种常见的Web服务实现方式。HTTP是一种应用层通信协议,JSON(JavaScript Object Notation)是一种轻量级的数据互换格式,而REST(Representational State Transfer)是一种软件架构风格,用于设计网络服务。RESTful API通常利用HTTP动词(如GET、POST、PUT、DELETE)来操作资源,并通过URI(Uniform Resource Identifier)来标识资源的位置

RPC和HTTP + JSON + REST的关系和区别重要体如今以下几个方面:
通信协议:
RPC可以利用多种传输协议,如TCP、UDP、HTTP等,而HTTP + JSON + REST重要基于HTTP协议。
RPC的通信协议可以自界说,而HTTP是一种标准化的协议。
数据格式:
RPC可以利用多种数据格式,如XML、JSON、Protocol Buffers等,而HTTP + JSON + REST通常利用JSON作为数据互换格式。
JSON因其轻量级和易于利用,成为RESTful API最常用的数据格式。
服务左券:
RPC通常必要一个接口界说语言(IDL)来界说服务接口,而RESTful API的服务左券是通过HTTP方法和URL来界说的。
RESTful API的接口设计遵照REST原则,夸大资源的概念,而RPC更侧重于函数或操作的调用。
跨语言能力:
RPC框架如gRPC支持多种语言,可以实现跨语言的服务调用,而RESTful API由于基于HTTP和JSON,也具有很好的跨语言能力。
开发和利用:
RPC框架通常提供了客户端存根和服务器端骨架的生成,简化了远程调用的开发。例如,gRPC利用Protocol Buffers作为其接口界说语言,并能生成多种语言的存根代码

RESTful API的开发通常更直观,因为它基于HTTP方法和资源的概念,易于理解和利用。
实用场景:
RPC得当于必要高度抽象和封装的分布式系统内部通信,可以提供更丰富的远程调用功能。
RESTful API得当于构建面向公众的Web服务,因为它简朴、易于理解和利用,且易于与HTTP缓存、代理等Web底子设施集成。
总的来说,RPC和HTTP + JSON + REST都是实现分布式系统和服务导向架构的有效本领,选择利用哪种技能取决于详细的应用场景和需求。RPC提供了更多的控制和灵活性,而HTTP + JSON + REST则以其简朴性和广泛的实用性而流行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表