idl与java
㈠ 计算机二级java第一章辅导:简谈JavaAPI分类
学精Java,必须得学精API。在这儿给出精简的Java API 分类:
JavaBeans API
为了应付微软公司ActiveX的威胁,JavaSoft开发了JavaBeans,一种平台中立的创建软件组件的规范。JavaBeans规范的粗此唤一部分实际上解决了与ActiveX组件的接口问题。
Java Commerce API
Java Commerce API是一种基于Internet的API,可在不可靠的网络上进行可靠的经济事务。这种API包括了客户端信用卡、借贷卡和电子现金等事务的框架-----Java Wallet。
Java 核心API
Java核心API包括JDK 装载的库,其中有java.applet、java.awt、java.io、java.lang、java.net和java.util包,并提供了用Java建立小应用程序和简单应用程序所必需的核心级函数。
Java Embedded API
Java Embedded API能够工作在蜂窝电话和微波炉这些不能支持整套Java核心函数的设备上,提供了Java核心的一个子集。
Java Enterprise API
Java Enterprise API实际上包括三个分别提供组织资源与应用程序访问的库。
1、Java数据库连接(JDBC)API提供了数据库连接。利用JDBC,一个应用程序就可以独立于数据存贮的实际数据库引擎,实现对数据库的访问。同样的应用程序只需要写一次、编译一次,就可以运行在装有JDBC驱动程序的任何数据库引擎上。
2、IDL(接口定义语言,Interface Definition Language)使Java应用程序在Java对象和网络定扒凳位对象之间提供一个对语言中立的接口,它遵循对象岩凯管理组(OMG,Object Management Group)的IDL规范。
3、远程方法调用(RMI)是一种允许对象在网络定位对象上调用方法的特殊API,与IDL不同的是,它仅在Java中应用。不需要利用套接字(Socket)来写复杂的通信协议,一个应用程序只需要通过简单的Java方法调用就与远程目标进行通信。
Java Management API
Java Management API使应用程序具有网络管理的功能。
Java Media API
Java Media API创建一个单独的API,使开发人员可以利用各种各样的多媒体硬件设备的接口编写内容丰富的多媒体应用程序。媒体框架(Media Frameworks)可以为音频、视频和MIDI提供同步的时钟。2D和3D库提供了增强的图像类,动画API可以使应用程序对2D图像进行转换。Telephony提供了利用单独的APi访问电话设备的应用程序。
Java Security API
Java Security API用一个单独的API来加强应用程序的安全性,包括加密、解密和身份鉴定的能力。
Java Server API
Java Server API是对CGI的应答,这个API允许开发人员用小服务程序或用户上载到网络或服务器上的可执行程序,来与Internet服务器进行交互或增强功能。
㈡ JAVA 调用 IDL Attempt to call undefined procere/function
Compiling Your Program
Before a procere or function can be executed, it must be compiled. When a system routine (a function or procere built into IDL, such as iPLOT) is called, either from the command line or from another procere, IDL already knows about this routine and compiles it automatically. When a user-defined function or procere is called, IDL must find the routine and then compile it. Compilation can be either automatic or manual, as described below.
Warning
User-written functions must be defined before they are referenced, unless they:
1) Exist in the IDL !PATH.
2) Exist in a .pro file named the same as the function.
3) Are reserved using the FORWARD_FUNCTION statement.
This restriction is necessary in order to distinguish between function calls and subscripted variable references. See About Calling and Compiling Functions for details.
Automatic Compilation
When you enter the name of an uncompiled user-defined routine at the command line or call the routine from another routine, IDL searches the current directory for filename.pro, thenfilename.sav, where filename is the name of the specified routine. If no file is found in the current directory, IDL searches each directory specified by !PATH. (For more on the IDL path, see!PATH.)
If no file matching the routine name is found, IDL issues an error:
% Attempt to call undefined procere/function: 'routine'
where routine is the name of the routine you specified.
If a file is found, IDL automatically compiles the contents of the file up to the routine whose name matches the name of the file (excluding the suffix), and then executes the routine. If the file does not contain the definition of a routine whose name matches the name of the file, IDL issues the same error as when the no file with the correct name is found.
For example, suppose a file named proc1.pro contains the following procere definitions:
PRO proc1 PRINT, 'This is proc1' END PRO proc2 PRINT, 'This is proc2' END PRO proc3 PRINT, 'This is proc3' END
If you enter proc1 at the IDL command line, only the proc1 procere will be compiled and executed. If you enter proc2 or proc3 at the command line, you will get an error informing you that you attempted to call an undefined procere.
In general, the name of the IDL program file should be the same as the name of the last routine within the file. This last routine is usually the main routine, which calls all the other routines within the IDL program file (or, in the case of object classes, the class definition). Using this convention for your IDL program files ensures that all the related routines within the file are compiled before being called by the last main routine.
Program files within the IDL distribution use this formatting style. For example, open the program file for the XLOADCT procere, xloadct.pro, in the IDL Editor. This file is in the lib/utilitiessubdirectory of the IDL distribution. This file contains several routines. The main routine (XLOADCT) is at the bottom of the file. When this file is compiled, the IDL Output Log notes all the routines within this file that are compiled:
IDL> .COMPILE XLOADCT % Compiled mole: XLCT_PSAVE. % Compiled mole: XLCT_ALERT_CALLER. % Compiled mole: XLCT_SHOW. % Compiled mole: XLCT_DRAW_CPS. % Compiled mole: XLCT_TRANSFER. % Compiled mole: XLOADCT_EVENT. % Compiled mole: XLOADCT.
Note that the main XLOADCT procere is compiled last.
Tip
When editing a program file containing multiple functions and/or proceres in the IDL Editor, you can easily move to the desired function or procere by selecting its name from the Functions/Proceres Menu. See Navigating Among Proceres and Functions for more information.
Manual Compilation
There are several ways to manually compile a procere or function.
Use the .COMPILE executive command at the IDL command line:
.COMPILE myFile
where myFile is the name of a .pro file located either in IDL's current working directory or in one of the directories specified by !PATH. All the routines included in the specified file will be compiled, but none will be executed automatically. If you are using the IDL Development Environment, the .pro file will also be opened in the IDL Editor.
If the file is open in the IDL Editor, select Run Compile or click the Compile button on the toolbar. All routines within the file will be compiled, but none will be executed automatically.
Use the .RUN or .RNEW executive command at the IDL command line:
.RUN myFile
where myFile is the name of a .pro file located either in IDL's current working directory or in one of the directories specified by !PATH. All the routines included in the specified file will be compiled, and any $MAIN$ level programs will be executed automatically. If you are using the IDL Development Environment, the .pro file will also be opened in the IDL Editor.
Use the .RUN, .RNEW, or .COMPILE executive command with no filename argument. Invoking any of these executive commands with no filename allows you to interactively create and compile a $MAIN$ level program. See Creating $MAIN$ Programs for additional details.
Note
Only .pro files can be compiled using the manual compilation mechanisms. Attempting to compile a SAVE (.sav) file using one of these mechanisms will result in an error.
In the "Hello World" example shown in Compiling Your Program, we have a user-defined procere that contains a call to a user-defined function. If you enter the name of the user-defined procere, hello_main, at the command line, IDL will compile and execute the hello_main procere. After you provide the requested input, a call to the hello_who function is made. IDL searches forhello_who.pro, and compiles and executes the function.
Compilation Errors
If an error occurs ring compilation, the error is reported in the Output Log of the IDLDE. For example, because the END statement is commented out, the following user-defined procere will result in a compilation error:
PRO procere_without_END PRINT, 'Hello World' ;END
When trying to compile this procere (after saving it into a file namedprocere_without_END.pro), you will receive the following error in the IDL Output Log:
IDL> .COMPILE procere_without_END % End of file encountered before end of program. % 1 Compilation errors in mole PROCEDURE_WITHOUT_END.
Note
Under Microsoft Windows, the IDL Editor window displays a red dot to the left of each line that contains an error.
Setting Compilation Options
The COMPILE_OPT statement allows you to give the IDL compiler information that changes some of the default rules for compiling the function or procere within which the COMPILE_OPT statement appears. The syntax of COMPILE_OPT is as follows:
COMPILE_OPT opt1 [,opt2, ..., optn]
where optn is any of the available options documented in COMPILE_OPT. These options allow you to change default values of true and false, hide routines from HELP, and reserve the use of parentheses for functions. See COMPILE_OPT for complete details.
㈢ Java 中的IDL是什么啊
Java IDL(Interface Definition Language,接口定义语言)为 JavaTM 平台添加了 CORBA(Common Object Request Broker Architecture,公用对象请求代理体系结构)功能,从而可提供基于标准的互操作性和连接性。Java IDL 使分布式、支持 Web 的 Java 应用程序可利用 Object Management Group 定义的行业标准 OMG IDL(Object Management Group Interface Definition Language,对象管理组接口定义语言)及 IIOP(Internet Inter-ORB Protocol,Internet对象请求代理间协议)来透明地调用远程网络服务。运行时组件包括一个全兼容的 Java ORB,用于通过 IIOP 通讯进行分布式计算。要使用 Java IDL,用户必须具有 idltojava 编译器。
㈣ Java的核心技术有哪些
java学习中的13个核心技术分享给你
1. JDBC(Java Database Connectivity):
JDBC API为访问不同的数据库提供了一种统一的途径象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外JDCB对数据库的访问也具有平台无关性。
2. JNDI(Java Name and Directory Interface):
JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统或应用服务器中的对象。
3. EJB(Enterprise JavaBean):
J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显着地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
4. RMI(Remote Method Invoke):
正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。
5. Java IDL/CORBA:
在Java IDL的支持下开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径通过它Java可以被用于将你的新的应用和旧的系统相集成。
6. JSP(Java Server Pages):
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
7. Java Servlet:
Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
8. XML(Extensible Markup Language):
XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。
XML的发展和Java是相互独立的,但是它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
9. JMS(Java Message Service):
MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。
10. JTA(Java Transaction Architecture):
JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
11. JTS(Java Transaction Service):
JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
12. JavaMail:
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
13. JAF(JavaBeans Activation Framework):
JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
㈤ Java的3个平台有什么区别
平台的区别和关系如下:
一、定义和应用范围:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类 。
1、j2se是java的桌面应用平台,用于开发桌面应用程序,比如qq,暴风影音都是桌面应用程序,其中s表示standard,标准的意思。
2、j2ee,其中的e表示enterprise,即企业是意思,即java企业应用平台,用于大型的分布式的开发程序。
3、j2me,m表示mobile,即移动平台,用于开发手机,嵌入cpu机器的开发平台。
二、应用领域:
1、针对企业网应用的J2EE(Java 2Enterprise Edition);
2、针对普通PC应用的J2SE(Java 2 StandardEdition);
3、针对嵌入式设备及消费类电器的J2ME(Java 2 MicroEdition)。
三、做出来的东西即java程序:
1、 源文件扩展名.java;
2、对应文件编译后扩展名为.class;
3、打包后扩展名为.jar。
(5)idl与java扩展阅读:
Java的三大核心机制:
1、虚拟机机制:利用虚拟机解释字节码执行java程序实现跨平台。
2、垃圾收集机制:自动内存回收。
3、代码安全性机制:加载代码后校验代码后再执行代码。
㈥ IDL语言的用途
由于其强大的功能和独特的特点,IDL语言可以应用于任何领域的三维数据可视化、数
值计算、三维图形建模、科学数据读取等功能中。
概括说来,在地球科学(包括历雀气象、水文、海洋、土壤、地质、地下水等)、医学影
像、图像谈和处理、GIS系统、软件开发,大学教学,实验室,测试技术,天文,航空航天、信
号处理,防御工程,数学统计及分析,环境工程等很肢侍早多领域,IDL语言都可以得到广泛而又
深远的应用。
㈦ java相关的技术有哪些
那多了。
1、JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口,作为数据源,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。
2、EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
3、Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。
4、Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无缝的互操作性。这使得Java能集成异构的商务信息资源。
5、JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无缝的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。
6、JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。
7、JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。
8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。
9、JMF(Java Media Framework API), 她可以帮助开发者把音频、视频和其他一些基于时间的媒体放到Java应用程序或applet小程序中去,为多媒体开发者提供了捕捉、回放、编解码等工具,是一个弹性的、跨平台的多媒体解决方案。
10、Annotation(Java Annotation),在已经发布的JDK1.5(tiger)中增加新的特色叫 Annotation。Annotation提供一种机制,将程序的元素如:类,方法,属性,参数,本地变量,包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。
在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。通常,在一个支持JavaBeans规范的开发环境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。现在,EJB (Enterprise JavaBeans) 将JavaBean概念扩展到Java服务端组件体系结构,这个模型支持多层的分布式对象应用。除了JavaBeans,典型的组件体系结构还有DCOM和CORBA,关于这些组件体系结构的深入讨论超出了本书的范围。
11、javaFXSun刚刚发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语言开发富互联网应用程序(RIA)。JavaFX Script编程语言(以下称为JavaFX)是Sun微系统公司开发的一种declarative, staticallytyped(声明性的、静态类型)脚本语言。JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。因为 JavaFXScript是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用Java技术创建和管理大型程序变为可能。
12、JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入
管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝[1][2][3][4][5][6]
集成的系统、网络和服务管理应用。
13、JPA (Java Persistence API), JPA通过JDK 5.0注解[7]或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
㈧ Java语言的12大特色
1.Java是简单的
Java与C++极为相似,但却简单得多。高级编程语言的所有特性中,不是绝对需要的都已删去了。例如,Java没有算符过载、标题文件、预处理、指针运算、结构、联合、多维数组、模板及隐式类型变换。如果你知道一点C、C++或Pascal,你很快就会驾驭Java.这里是一个简单的 JavaHelloWorld程序:
publicclassHelloInternet{publicstaticvoidmain(Stringargv[]){System.out.println(“HelloIn-ternet!”)}}
2.Java是面向对象的
Java是一种面向对象的编程语言。除了简单的类型,如雹缓数字和布尔算子之外,Java中的大部分都是对象。
正如任何面向对象的语言一样,Java代码也按类组织。每个类定义一组规定对象行为的方法。一个类可以继承另一个类的行为。在类的根层次上,通常是类对象。
Java支持单继承类层次结构。这就是说,每个类一次只能继承一个别的类。有些语言允许扰升多继承性,但这可能造成混乱,使语言不必要地复杂化。例如,难以想象,一个对象会继承两个完全不同的类的行为。
Java还支持摘要类的接口。这允许编程人员先定义接口的方法,而不必急于马上确定方法的实现。一个类可以施行多个接口,从而具有真正多继承性的许多优点。一个对象也可实施任意数量的接口。Java接口与IDL接口极其相似。很容易建立IDLJ编译器。这就是说,Java可用于CORBA对象系统来建立分布式对象系统。鉴于在许多计算机系统中都采用IDL接口和CORBA对象系统,这种兼容性是重要的。
3.Java是静态类型的
在一个Java程序中,必须定义所用对象(数字、字符、数组等)的类型。这有助于编程人员很快发现问题,因为当程序编译时可以检测类型错误。
不过,Java系统中的对象也有动态类型。要求一个对象为动态类型往往是可能的,所以编程人员写的程序可以对不同类型的对象做不同的事。
4.Java是编译型的
当运行Java程序时,它首先被编译成字节代码。字节代码非常类似于机器指令,所以Java程序非常高效。然而,字节代码并不专对一种特定的机器,所以Java程序无需重新编译便可在众多不同的计算机上执行。
Java源程序被编译成类文件,它相当于程序的字节代码表现。在一个Java类文件中,所有对方法及实例变量的参照均按名进行,并在第一次执行代码时加以分辨。这使得代码更通用,更不易受修改的影响,而仍具高效。
5.Java是体系结构中立的
Java语言对每种计算机都一样。比如,简单的类型都是不变的:整数总是32位,长整数总是64位。令人奇怪的是,诸如C及C++等时髦的编程语言却不是这样。由于这些语言定义如此自由,每种编译器及开发环境便各有不同了,这使程序的移植成为讨厌的问题。Java程序的移植却很容易,而且不源李模需要进行重新编译。
6.Java是健全的
Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。
不过,即使Java程序也可能有错误。如果出现某种出乎意料之事,程序不会崩溃,而把该例外抛弃。程序会发现这类例外,并加以处理。
传统的程序可以访问计算机的全部内存。程序可能(无意识地)修改内存中的任何值,这就会造成问题。Java程序只能访问内存中允许它们访问的那些部分,所以Java程序不可能修改不拟修改的值。
7.Java是小巧的
由于Java的设计是要在小的计算机上运行,作为一种编程语言来说其系统是相对较小的。它能有效地在4MB以上RAM的PC机上运行。Java翻译器只占用几百KB.这种翻译器对Java的平台无关性和可移植性是可靠的。
由于Java很小,它对内存很小的计算机,如基于Java的PC机,以及电视机、烤箱、电话机及家用计算机等,是很理想的。
8.Java是多线程的
Java程序可以执行一个以上的线程。比如,它可以在一个线程中完成某一耗时的计算,而其它线程与用户进行交互对话。所以用户不必停止工作,等待Java程序完成耗时的计算。
在多线程环境中的编程通常是困难的,因为许多东西可能同时出现。但是,Java提供了易于使用的同步特性,使编程更为方便。
Java线程通常被映射为实际的操作系统线程,只要底层操作系统支持这种映射。因此,用Java写的应用程序可说是“MP热”。这就是说,如果它们在多处理器机器上运行,它们更将表现不凡。
9.Java是可收集无用的存储单元的
用C及C++写软件的编程人员必须仔细跟踪所用的内存块。当一个块不再使用时,他们务必让程序释放它,从而方可再用。在大的项目中,这可能很困难,并往往成为出错和内存不足的根源。
在Java的情况下,编程人员不必为内存管理操心。Java系统有一个叫做“无用单元收集器”的内置程序,它扫描内存,并自动释放那些不再使用的内存块。
10.Java是快速的
Java比典型的脚本语言大为有效,但它比C慢20倍。这对大多数应用是可接受的。
不久的将来,代码生成器就可供利用了,这将使Java程序几近于用C或C++编写的程序那么快。
11.Java是安全的
Java程序没有指针,而且象这样的字节代码程序强在类型上,所以在执行之前它可能验证Java程序。被验证的Java程序得以保证不突破Java语言的任何限制,而且可以安全地执行。Java字节代码验证被Web浏览器用来确保小程序不含病毒。
12.Java是可扩展的
Java程序可与用其它语言编写的现存程序库连接。由于Java数据结构与C的数据结构的类型极为相似,这是相当方便的。的问题在于,现有多线程程序库为数不多。
Java程序可以声明某些方法是内部的,然后,把这些内部方法映射成软件库所定义的功能,从而动态地链接到虚拟机。
㈨ JAVA IDL 服务器工具 是什么
Java
IDL即idltojava编译器就是一个ORB,兆基可用来在Java语言中定义、实现和访问CORBA对象。Java
IDL支持的是一个瞬间的CORBA对象,即在对象服务器处理过程中有效。实际上,Java
IDL的ORB是一个类库而已,并不是一个完整的平台软件,但它对Java
IDL应用游顷系统和其他CORBA应用系统之间提供了很好的底层通信支持,实现了OMG定义的神猜陆ORB基本功能。
㈩ IDL的简介
IDL是用来描述软件组件接口的一种计算机语言。IDL通过一种中立的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流;比如,一个组件用C++写成,另一个组件用Java写成。
IDL通常用于远程调用软件。 在这种情况下,一般是由远程客户终端调用不同操作系统上的对象组件,并且这些对象组件可能是由不同计算机语言编写的。IDL建立起了两个不同操作系统间通信的桥梁。
从本质上讲,OMG IDL接口定义语言不是作为程序设计语言体现在CORBA体系结构中的,而是用来描述产生对象调用请求的客户对象和服务对象之间的接口的语言。OMG IDL文件描述数据类型和方法框架,而服务对象则为一个指定的对象实现提供上述数据和方法。
OMG IDL文件描述了服务器提供的服务功能,客户机可以根据该接口文件描述的方法向服务器提出业务请求。在大多数CORBA产品中都提供IDL到相关编程语言的编译器。程序设计人员只需将定义的接口文件输入编译器,设定编译选项后,就可以得到与程序设计语言相关的接口框架文件和辅助文件。IDL文件应用过程如图1所示 。