Loading AI tools
来自维基百科,自由的百科全书
CORBA(Common Object Request Broker Architecture)又叫通用物件請求代理架構,是軟體構建的一个標準。
此條目需要擴充。 (2018年7月22日) |
此條目没有列出任何参考或来源。 (2018年7月22日) |
CORBA標準由物件管理組織(OMG)設立並進行控制,CORBA定義了一系列API,通信協議,和物件/服務信息模型用於使得異質應用程序能夠互相操作,這些應用程序用不同的程式語言編寫,運行在不同的平台上。CORBA因此為定義明確的物件提供了平臺和位置的透明性,這些物件是分布式計算平臺的基礎。
通常來說,CORBA把用其他語言開發的程序代码和關於該程序代码能力和如何調用該程序代码的信息包到一個开发包(package)中,开发包中的物件則可以在網络上被其他程序(或CORBA物件)調用。在這個意義上來講,CORBA可以被看作是一個機器可讀的文件檔格式,類似於头文件(header),但是具有相當多的信息。
CORBA使用一種接口描述语言(Interface description language)用於刻畫物件將呈現出來的介面。CORBA又規定了從IDL到特定程式語言,如C++或Java,實現的映射。這個映射精確的描述了CORBA資料類型是如何被用戶端和伺服器端實現的。標準映射的有Ada、C、C++、Smalltalk、Java、以及Python。還有一些非標準的映射,為Perl和Tcl的映射由這些語言寫的ORB實現。
CORBA的IDL只是IDL的一個例子。
在提供用戶語言和平臺中性的遠端程序呼叫規範的同時,CORBA也定義了通常需要的服務,例如事務和安全。
对象的引用可以通过以下几种方式获得:通过URI直接指定对象位置、通过类似于DNS的名称服务查找、调用时通过参数传递。
对象引用是指向真实对象(本地或远程)的轻量级方式。调用对象引用(通常就是指针)的方法,实际上是通过ORB调用了实际对象的方法,调用会阻塞当前线程直到远端返回结果。参数和返回结果以及抛出的异常都会被ORB集中传递。
CORBA的数据(整数、浮点数、结构、枚举等)是通过值传递。
GIOP是用于ORB间数据传输的抽象协议,通用ORB间协议(GIOP)用来为这个由不同计算机及其各种体系结构组成的世界中传送消息定义结构和格式。如果使用GIOP的结构和格式,并将它们应用于TCP/IP,那么就得到IIOP。GIOP有两个版本:1.0和1.1。相关协议标准由Object Management Group(OMG)管理. GIOP架构提供了如下具体协议:
Corba对象位置(CorbaLoc)是指一个由字符串构成的对象引用,看起来就像一个URL。
CORBA产品需要支持两种OMG定义的URL:"corbaloc:"和"corbaname:"。Corba对象位置的目的是提供一个便于人阅读和修改的方式指定何处可以获得某个可互操作对象(IOR)。
corbaloc的例子: