标题：互操作性
词条简介
互操作性，互用性 Interoperability 
互操作性分为不同的级别，这是因为两个系统连接并共享信息，不能简单地认为用户也能从自己的应用程序中访问这些信息。例如，一台UNIX工作站能用TCP/IP通信协议与一台Novell NetWare服务器相连。但是，UNIX工作站的用户除非使用兼容的文件协议，否则不能访问服务器上的文件。在这个例子中，加载到NetWare文件服务器上的Novell NetWare NFS将允许UNIX用户和NetWare客户一样以一种集成化无缝的方式访问文件及其它的网络资源。
但是即使是这种级别的互操作性也不能保证UNIx用户有可能打开和编辑他在NetWare服务器上所访问的文件。用户访问非兼容的文件格式，将需要翻译器和转换器。在某些情况下，应用程序自身就能访问操作在其它环境中的应用程序所生成的文件格式。主要的软件供应商如Microsoft，通过生成工作在多个环境中的应用程序，部分地缓解了这种差异性。例如，Microsoft Excel电子表格程序能工作在Windows环境和Macintosh环境。如果一个Windows用户传输一个文件到一个Macintosh用户，则这个Macintosh用户能打开这个文件并使用这个文件所提供的格式化代码。
解决办法
术语“开放式系统”意指通过遵循彼此认可的标准设计的能协同工作的产品，如由国际标准化组织(ISO)推出的开放系统互连(OSI)模型OSI模型由七层组成，其中的每层都描述了系统之间是如何连接和通信的。0SI模型是通用全球的设计和建造可互操作系统的一个参考点。协议栈的底层定义了联网硬件，以及系统是怎样实际相互传送数据的，而上层定义了应用程序间的互操作。大多数供应商生产的产品都是松散地遵守这个标准的，这意味着某些层按OSI定义实现了而另一些层则没有。由于不是严格地遵守该标准，所以互操作性仍为网络管理者所关注。
开放软件基金会(OSF)正致力于在表示层和应用层上支持互操作性的工作。它的分布式计算环境(DCE)提供给程序设计人员一些工具，程序设计人员能用这些工具生成互操作性的应用程序，从而把他们从用低层协议工作的复杂性中解脱出来。所生成的应用程序能运行在分布式异构网络环境中。由OSFDCE提供的远程过程调用(RPC)具有传输独立性和传输透明性。传输独立性意指RPC能运行在任何一个广域网或局域网上，而传输透明性指不管应用程序在哪种网络环境中运行，分布式应用程序代码均以同样的方式运行。
电子函件和消息传递系统提供了一种唯一的方法解决了互操作问题。一个企业E-mail系统用E-mail系统作为一个信关或交换系统来向不同系统上的用户提供一种交换消息、文件和其它信息的办法。消息传递系统也实现在应用程序中以提供应用程序间通信或用户和应用程序之间的非实时消息交换。例如，一个用户可能为得到一份报告而向数据库发一个请求，第二天就从他/她的邮箱中收到这份报告。比电子函件更优秀的是群件和工作流软件应用程序，它们允许用户协调他们的调度和工程。
在企业计算环境中，互操作性是主要关注的问题。企业网中聚集了以前属于各个部门和分部的计算资源，目的是允许整个网上的用户访问各个系统上的数据。运行在Windows、Macintosh、DOS和其它环境中的前端应用程序需要访问各种后端系统上的数据，这些数据以各种格式出现并能用结构化查询语言(SQL)访问。但由于各个供应商的SQL都存在微小的差异，因此前端应用程序必须知晓每种差异，或靠后端服务器翻译发送给他们的命令。转换功能来屏蔽这种差异，另一种解决方法是“中间件”。它在前端和后端应用程序之间提供了一个互操作性的层。下面列出部分中间件，并将在本书的其它章节中加以讨论。
Microsoft开放数据库连接(ODBC)ODBC提供一些由大多数后端数据库系统所执行的公用功能。
然后，前端应用程序被编写并进入ODBC利用ODBC的这些功能。
独立数据库API(IDAPI)IDAPI在功能上类似于ODBC，且也是根据调用级接口设计的。
分布式关系数据库体系结构(DRDA)DRDA是在遵循SQL标准的IBM和非IBM平台上访问数据库信息的一个IBM标准。它是IBM信息仓库框架的一个关键部件。
苹果公司的数据访问语言(DAL)Apple开发出DAL以向Macintosh用户提供访问多个后端数据库产品的能力，后端数据库包括IBM大型计算机和中型机数据库。DAL与SQL相关。
Oracle′s Glue Glue是一个API，包括一系列访问后端数据库服务器的命令。据报道，与ODBC相比Glue将花较少的步骤访问数据。
在一个面向对象的系统中，一个对象请求代管者(ORB)提供关键通信工具，以在系统的应用程序、服务和工具之间分发消息。你可把ORB想象成为一种软件总线，或主干网，提供一个公用的消息传递接口，通过这个接口许多不同种类的系统能互相通讯。一个对象向ORB提交一个请求，然后ORB就找到能为这个请求服务的对象、格式化请求并把它发送给服务对象。接收对象这时响应这个请求并向ORB返回一个响应，ORB格式化和转发响应给请求者。在这种模型中，对象简单地指定一个要执行的任务，它们不需要知道服务任务的对象的任何细节及其地址。ORB处理查找对象、格式化消息以及传输消息的所有细节。对分布式环境中的所有对象而言，ORB是一个通用接口。
STREAMS是一个允许在一个网络上使用多个通信协议的开发和操作环境。它应用在UNIX和Novell NetWare环境中，同时也适用于其它一些环境。运行在STREAMS环境中的应用程序能非常容易地使用它所支持的任何一个通信协议。STREAMS是一个模块化系统，在这个系统中协议栈能按需求增加或删除，它以模块的形式向开发者们提供一组实现通信协议的工具。
在低层上，互操作性提供多协议支持，所以用户能访问许多不同类型的系统。例如，如果TCP/IP和SPX/IPX协议栈安装在一台计算机上，则这台计算机上的用户能访问一台NetWare服务器以及一台UNIX服务器。Nove11的开放数据链路接口(ODI)和Microsoft的网络驱动程序接口规范(NDIS)提供了装载多协议栈并在单个网络接口卡上操作这些协议的能力。
相关条目
Compound Documents复合文档；Distributed Computing Environment，OSF OSF的分布式计算环境；Document Interchange Standards文档交换标准；Electroic Mail电子函件；Groupware群件；Messaging API，Inter-Application应用程序间的消息传递API；Middleware 中间件；Object Linkingand Embedding对象链接和嵌入；Object Request Broker对象请求代管者；Open System Interconnection Model开放系统互连模型；Remote Procedure Calls远程过程调用；Windows Open System Architecture Windows开放系统体系结构。 
相关定义
语法互操作性对于深入推进互操作性的任何工作而言，语法互操作性都不可或缺。如果一个系统能够进行通讯和交换数据，那么，它就具备语法协同工作能力。就数据的通讯而言，基本的要素包括规定的数据格式、通讯协议以及接口描述等等。一般而言，XML或SQL标准提供的就是语法互操作性。语义互操作性数据交换至少要涉及到两个计算机系统参与方：即发送方计算机系统和接受方计算机系统。数据交换旨在为所有的参与方计算机系统，或者交换双方或其中之一带来有用的结果。不过，这些参与方计算机系统的所有用户事先已经就有关何谓有用结果的规定达成了一致意见。只有当参与方计算机系统之间所交换的数据能够得到对方正确处理和使用的情况下，才能称为实现了语义协同工作能力。[1]