简介

From Apache OpenOffice Wiki
Jump to: navigation, search



UNO(通用网络对象)的目标是为跨编程语言和跨平台边界的网络对象提供环境。UNO 对象可在任何地方运行和通信。UNO 通过提供以下基础框架达到此目标:

  • UNO 对象在一种称为 UNOIDL(UNO 接口定义语言)的抽象元语言中指定,这种语言与CORBA IDL 或 MIDL 类似。利用 UNOIDL 规范,可以生成与语言有关的头文件和程序库,用于在目标语言中实现 UNO 对象。在 UNO 对象中,经过编译和绑定程序库的那些对象称为组件。组件必须支持某些基接口才能够在 UNO 环境中运行。


  • 为了在目标环境中实例化组件,UNO 使用了工厂概念。该工厂称为服务管理器。它维护一个注册组件数据库,这些组件可通过名称识别,并可按名称创建。服务管理器可能会要求 Linux 加载和实例化用 C++ 编写的共享对象,也可能会调用本地 Java VM 以实例化 Java 类。这对于开发者来说是透明的,无需考虑组件的实现语言。通信是以独占方式通过 UNOIDL 中指定的接口调用来进行的。


  • UNO 提供桥,用于在用不同实现语言编写的进程之间以及对象之间发送方法调用和接收返回值。为此,远程桥使用一种特殊的 UNO 远程协议 (URP) 来支持套接字和管道。桥的两端都必须是 UNO 环境,因此,需要一种特定于语言的 UNO 运行时环境来连接任何受支持语言中的另一个 UNO 进程。这些运行时环境是作为语言绑定提供的。


  • OpenOffice.org 的大多数对象都能够在 UNO 环境中进行通信。OpenOffice.org 的可编程功能规范称为 OpenOffice.org API。
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages