生成方法的系统与方法

文档序号:6558598阅读:134来源:国知局
专利名称:生成方法的系统与方法
技术领域
本发明涉及用于为信息模型生成实现方法的可执行对象的方法、系统与程序。
背景技术
公共信息模型(CIM)是一种在包括来自不同厂家的设备的网络环境中允许管理信息交换的工业标准规范,其中网络可以包括异类及同类设备。CIM模式规定了一组管理程序调用以获得信息并关于网络中的设备执行管理操作的包括方法与对象的类。能够在CIM环境中接口的网络设备的每个厂家都必须提供一组实现CIM类的特定于设备的API。厂家将提供CIM提供者,它是将由工业标准CIM模型定义的CIM API或方法映射到可以对特定设备实现所定义CIM API的功能性的特定于设备的API的程序模块。在此所使用的术语“CIM API”指被调用以执行CIM管理模式中所定义操作的任何方法、接口或功能。
CIM模式有三层。首先,内核模式捕捉适用于所有管理区域的概念。其次,公共模式捕捉对特定管理区域公用但独立于特定技术或实现的概念。该公共区域是系统、设备、网络、应用程序、度量标准、数据库、物理环境、事件定义与处理、CIM基础结构的管理(互操作性模型)、用户与安全、策略与故障标签/知识交换(支撑模型)。以厂家中立(neutral)的方式,这些模型定义了寻址各管理区域的类。第三,扩展模式代表特定于机构或厂家的公共模式扩展。这些模式可以是特定于环境的,如操作系统、特定于技术的区域、及特定于产品的区域。CIM模式的正式定义在被管理对象文件(MOF)中表述,MOF是可以用作到MOF编辑器、解析器或编译器的输入以便产生可以由CIM应用程序调用的可执行代码的ASCII或UNICODE文件。
在当前技术中,为了调用CIM方法,开发人员要写包括多种CIM协议语句的CIM应用程序,以便允许CIM客户端应用程序能够与CIM提供者建立通信并实例化服务器上的对象和类以便使开发人员想包括在CIM应用程序中的方法得以执行。
图1说明了用于调用用于国际商用机器(“IBM”)EnterpriseStorage System(ESS)的扩展模式的CIM方法的代码例子。(Enterprise Storage Server是IBM的注册商标)。图1的样本代码包括客户端应用程序为调用“CreateSynchronizedSet”方法必须要包括的许多语句,这些语句包括来自CIMClient类的建立与CIM对象管理器会话的方法和来自CIMNameSpace类的实例化用于连接的CIM命名空间的方法。CIM命名空间是表示特定环境中被管理对象的CIM类和CIM实例的逻辑分组。客户端协议语句还可以包括来自CIMValue类的方法,CIMValue类是封装分配给返回到CIM客户端应用程序的属性、引用和限定词的CIM值的类。因此,CIM方法的任何调用都需要CIM客户端应用程序的开发人员必须包括CIM协议语句,以便启用与服务器的通信和服务器上由客户端所调用方法的执行。
在本领域中,需要以最小化由于需要在调用CIM方法以执行设备管理操作的应用程序中包括CIM协议语句而造成的编程复杂性的方式提供调用CIM方法的改进技术。

发明内容
提供了用于为信息模型生成实现方法的可执行对象的方法、系统和程序。接收包括定义实现信息模型中至少一种方法的类的代码的文件。该文件被翻译,以产生面向对象的编程(OOP)语言文件中该类和该至少一种方法的面向对象的实现。信息模型的协议语句添加到该OOP文件,以便使客户端应用程序能够调用服务器上的该至少一种方法。该OOP文件被编译,以产生能够由对方法调用语句的调用所调用的可执行对象,其中调用方法调用语句的客户端应用程序使协议语句和可执行对象中的该至少一种方法得以执行,以便调用服务器上的该至少一种方法。
提供了用于从客户端应用程序调用部署在服务器的方法的代码,其中代码使操作能够执行,这些操作包括执行与提供信息模型中类方法的面向对象的实现的可执行代码关联的方法调用语句和调用服务器上该方法的信息模型的协议语句;响应执行方法调用语句,执行在可执行代码中实现的协议语句,以便建立与服务器的通信;及执行在可执行代码中实现的方法,以便调用服务器上的方法。
还提供了部署计算基础结构的方法,包括将代码集成到计算系统中,其中计算系统执行调用方法语句并执行与被调用方法语句关联的可执行代码的代码。


图1说明了现有技术中已知的客户端应用程序的例子。
图2说明了其中实现实施方式的网络计算环境。
图3说明了其中实现实施方式的包括编译器的系统的实施方式。
图4说明了调用方法的调用的实施方式。
图5说明了为信息模型中至少一种方法创建可执行对象的操作的实施方式。
具体实施例方式
在以下描述中,参考构成本发明一部分并说明本发明几种实施方式的附图。应当理解其它实施方式也可以使用,而且在不背离本发明范围的情况下可以进行结构和操作的改变。
图2说明了其中实现本发明各方面的计算体系结构。多个客户端系统2a、2b、...、2n,CIM对象管理器(CIMOM)4、CIM提供者6a、6b及被管理设备8a、8b、8c在网络10上通信。每个客户端2a、2b、...、2n包括CIM应用程序10a、10b、...、10n,以生成并传送包括关于被管理设备8a、8b、8c执行管理操作的CIM API的CIM管理请求。CIMOM 4从CIM应用程序10a、10b、...、10n接收CIM请求并将它们传输到与请求所指向的被管理设备8a、8b、8c关联的CIM提供者6a、6b。每个被管理设备8a、8b、...、8n实现特定于设备的API 12a、12b、...、12n,这些API在设备8a、8b、...、8n上执行与管理相关的操作、检索信息、配置等。CIM提供者6a、6b包括用于将CIM消息中的CIM命令映射到能够在目标被管理设备8a、8b、...、8n上实现CIM命令的特定于设备的API 12a、12b、...、12n的数据字典14a、14b。CIM模型的更多细节在分布式管理任务组(DMTF)的出版物中描述,包括“Common Information Model(CIM)Infrastructure Specification”版本2.3,初级(2004年8月11日);“CIMInterop Model White Paper”,CIM版本2.7,版本0.9(2003年6月19日);及“Common Information ModelCore Model”,版本2.4(2000年8月30日)。
网络10可以包括本领域已知的任何网络,如局域网(LAN)、存储区域网(SAN)、广域网(WAN)、因特网、无线网络等。可选地,网络10可以包括总线接口。客户端2a、2b、...、2n可以包括能够运行CIM应用程序10a、10b、...、10n的任何类型计算设备,如工作站、桌面计算机、服务器、膝上型计算机、大型机、电话设备、手持式计算机等。CIMOM 4可以在与客户端2a、2b、...、2n分开的系统中实现。CIM提供者6a、6b、...6n可以在与CIMOM分开的系统上运行或者在被管理设备8a、8b、8c中运行。此外,一个CIM提供者6a、6b、...6n可以管理一个或多个被管理设备8a、8b、...8n的CIM消息。被管理设备8a、8b、...8n可以包括本领域已知的任何物理或逻辑设备,如对其可以提供独立CIM提供者的存储设备、存储介质、存储介质库、光纤通道、开关、结构、数据库等。可以有任意个数的客户端、CIMOM、CIM提供者和被管理设备,而且在网络中它们之间的关系及实现不限于图2所示组件的配置和布置。
在被管理设备8a、8b、...8n包括存储设备或其它输入/输出设备的特定实施方式中,设备厂家可以提供实现CIM类的CIM提供者,该CIM类使调用CIM方法和API的客户端2a、2b、2c能够关于被管理设备8a、8b、...8n执行与管理相关的操作,如配置存储器中的逻辑分区、配置设置、监视设备使用、配置用户设置等。
CIM应用程序10a、10b、...、10n可以本领域已知的方式,如出版物“Specification for CIM Operations Over HTTP”(版权分配管理任务组,2003年1月6日)中所描述的方式,生成包括一个或多个CIM API的CIM消息。例如,CIM消息可以包括包含CIM API的可扩展标记语言(XML)文件。包括在CIM消息中的CIM API还将包括该CIM API所指向的被管理设备8a、8b、...8n的目标设备名或其它标识符。
图3说明了开发系统50的实施方式,包括用于执行与设备管理相关的操作的CIM操作和方法的源代码52。源代码52可以包括对用被管理对象格式(MOF)语言所写的与设备管理相关的方法的调用,它定义了被管理资源的类名和属性。MOF文件的成分是面向对象类和实例定义的文本描述、元素限定词(关于类、属性、方法等的元数据)、注释、编译器指令及用于CIM模式的特定类与实例定义。CIM协议类54包括具有用于使客户端能够与CIMOM 4和CIM提供者6a、6b建立通信从而使由客户端调用的方法被CIM提供者6a执行以便执行与设备8a、8b、8c管理相关的操作的方法的那些类。
编译器能够将源公共信息模型(CIM)类定义从一个或多个MOF文件翻译成对调用方法、创建CIM类实例及导航CIMOM 4服务器上实例所需的通信机制(CIM客户端API/CIM协议)进行抽象的可重用/可执行面向对象的编程(OOP)类。编译器56还将OOP文件58编译成方法的可执行对象代码60。在一种实施方式中,由编译器56生成的可执行对象代码60为提供管理类与方法的扩展类实现管理特定设备的一种方法。在一种实施方式中,编译器56可以包括解析MOF文件并将类与实例转换成如JavaTM的OOP语言类的MOF编译器功能(Java是Sun Microsystems公司的商标)。编译器56可以将MOF文件52中定义的CIM元素映射到对应的Java元素。
由于CIM方法名是由调用方法的可执行对象代码60的CIM提供者6a、6b命名的,因此客户端应用程序10a、10b、...、10n可以通过调用CIM方法名直接调用CIM方法。这种可执行对象代码60执行协议语句并设置CIM客户端类中的值与参数,以建立与CIMOM4的通信;设置CIM对象路径类中的值与参数,以提供命名空间并引用该CIM元素;设置CIM命名空间类中的值与参数,以实例化CIM命名空间;及设置如CIM值和CIM属性类的其它协议类中的值与参数,以封装CIM值与属性,其中数据描述类的数据。
图4提供了CIM操作“SynchronizedSet”可以如何由调用方法的OOP语言语句调用的例子,该方法调用实现CIM方法的可执行对象代码60。这允许客户端应用程序10a、10b、...、10n利用单个调用来调用CIM类方法,而不需要包括在调用方法的客户端2a、2b、...、2n和CIMOM服务器4之间建立连接所需的全部CIM协议语句。因此,CIM应用程序10a、10b、...、10n的开发人员不需要在CIM协议语句上花费编码和调试的功夫,其中CIM协议语句包括在实现CIM方法与操作的可执行对象代码60中。
图5说明了在编译器56中实现的将实现CIM方法的MOF文件翻译成该方法的可执行对象代码60的操作。一旦启动将CIM方法或操作的源代码52翻译成可以从客户端CIM应用程序10a、10b、...、10n调用的可执行对象文件60的操作,控制就在块100开始。作为启动变换操作的一部分,编译器56将例如MOF文件的源代码52及类和实例解析成Java编程语言类。编译器56(在块102)接收包括定义实现信息模型中类的源代码52的文件(例如,MOF),并(在块104)翻译该方法的源代码52以便产生面向对象的编程(OOP)语言文件58中该类和方法的面向对象的实现。
编译器56(在块106)还向OOP文件56添加信息模型的协议语句,以便使客户端应用程序10a、10b、...、10n能够调用CIMOM服务器4上的方法。编译器56(在块108)可以添加来自协议类的协议语句。该协议语句启用客户端和服务器处提供者6a、6b之间的通信,以便使客户端应用程序10a、10b、...、10n能够利用提供者6a、6b调用如CIM方法的操作。在一种实施方式中,方法可以包括提供者翻译成特定于设备的命令以便实现要进行管理的设备8a、8b、8c的方法的功能性的独立于设备的命令。来自CIM客户端类的方法可以(在块108)添加,以便连接到CIMOM服务器4。编译器56还可以(在块110)向OOP文件58添加协议语句,以便实例化命名空间对象并例如从CIM命名空间为该命名空间设置参数。命名空间可以包括表示被管理对象,即表示被管理设备的对象,的类与方法的逻辑分组。所添加的协议语句还可以(在块112)包括语句,来设置到类的路径和识别服务器上的被管理对象及包括包含被调用方法,如来自CIMObjectPath类的方法,的类的命名空间。编译器56还可以(在块114)添加语句,来设置从服务器上被调用方法输出的值,其中设置值的方法可以来自CIM Value类。在用于方法和CIM协议类语句的所有MOF代码都添加到OOP语言文件58之后,编译器56(在块116)将OOP文件58翻译成对一个或多个设备管理操作实现特定的CIM方法的可执行对象60。
附加实施方式细节所述操作可以实现为利用标准编程和/或工程技术产生软件、固件、硬件或其任何组合的方法、装置或制品。在此所使用的术语“制品”指在介质中实现的代码或逻辑,其中此类介质可以包括硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或计算机可读介质,如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、光盘等)、易失和非易失存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等)。计算机可读介质中的代码可以由处理器访问并执行。代码或逻辑在其中编码的介质还可以包括通过空间或如光纤、铜线等的传输介质传播的传输信号。代码或逻辑在其中编码的传输信号还可以包括无线信号、卫星发送、无线电波、红外线信号、蓝牙等。代码或逻辑在其中编码的传输信号能够由发送站发送并由接收站接收,其中在发送信号中编码的代码或逻辑可以在接收和发送站或设备在硬件或计算机可读介质中解码并存储。此外,“制品”还可以包括代码可以在其中体现、处理和执行的硬件和软件组件的组合。当然,本领域技术人员应当认识到在不背离本发明范围的情况下可以对这种配置进行许多修改,而且制品可以包括本领域已知的任何信息承载介质。
在所描述的实施方式中,用于设备管理模式的信息模型是CIM模式。所述实施方式还可以应用到除CIM模式以外的设备管理模式。在这种可选模式中,模式的协议语句启用与实现方法的服务器或提供者的通信。
用于生成包括协议语句的CIM方法的所述实施方式可以由提供CIM方法(API)的的厂家实现,其中CIM方法可以由客户端和用户部署到CIM环境中来执行关于由厂家提供的设备的设备管理操作。以这种方式,厂家将使用所公开的编译器实施方式生成用在CIM环境中用于该厂家产品的CIM方法和API。
除非明确另外指出,否则术语“一实施方式”、“实施方式”、“该实施方式”、“一种或多种实施方式”、“一些实施方式”及“一种实施方式”意思是本发明的一种或多种(但不是全部)实施方式。
除非明确另外指出,否则术语“包括”、“包含”、“具有”及其变体意思是“包括但不限于”。
除非明确另外指出,否则列举的项目列表并不暗示任何或全部项目是相互排斥的。
除非明确另外指出,否则术语“一个”和“该”意思是“一个或多个”。
除非明确另外指出,否则彼此通信的设备不需要彼此持续通信。此外,彼此通信的设备可以通过一个或多个中间件直接或间接通信。
有几个彼此通信的组件的实施方式的描述并不暗示所有这些组件都是必需的。相反,多个可选组件的描述是为了说明本发明广泛的多种可能实施方式。
此外,尽管处理步骤、方法步骤、算法等可以顺序描述,但此类处理、方法和算法可以配置成以交替次序工作。换句话说,可描述的步骤的任何顺序或次序都不一定指示步骤要以那种次序执行的要求。在此所述的处理步骤可以以任何实际的次序执行。此外,有些步骤可以同时执行。
当在此描述单个设备或物品时,很显然多于一个设备/物品(不管它们是否合作)可以代替单个设备/物品使用。类似地,当在此描述多于一个设备或物品时(不管它们是否合作),很显然单个设备/物品(不管它们是否合作)可以代替多个设备或物品使用。
设备的功能性和/或特征可以可选地由未在此明确描述的一个或多个具有这种功能性和/或特征的设备体现。因此,本发明的其它实施方式不需要包括设备本身。
变量“n”指示元素实例的整数个数,而且当对不同的元素使用时可以取不同的值,使56n和86n可以分别指示区域信息和区域授权的相同或不同个数的实例。
在特定的实施方式中,文件集和元数据在单独的存储系统中维护,而拷贝文件集和元数据的命令由系统在网络上发送。在可选实施方式中,文件集和元数据可以在同一存储系统中维护,而拷贝命令可以由系统中的程序启动,该系统还直接管理包括要拷贝的文件集和元数据的存储设备。
图5所说明的操作示出了以特定次序发生的事件。在可选实施方式中,特定操作可以不同的次序执行、修改或除去。而且,步骤可以添加到上述逻辑并仍然遵循所描述的实施方式。此外,在此所述的操作可以顺序发生,或者特定操作可以并行处理。再次,操作可以由单个处理单元或由分布式处理单元执行。
以上本发明各种实施方式的描述是为说明和描述的目的提出的。它不打算是穷尽的或者要将本发明限定到所公开的精确形式。根据以上教义,许多修改和变体都是可能的。本发明的范围不是由具体描述限定,而是由所附权利要求限定的。以上说明书、例子和数据提供了本发明组成部分制造和使用的完整描述。由于在不背离本发明主旨与范围的情况下可以作出本发明的许多实施方式,因此本发明在于下文所附的权利要求。
权利要求
1.一种方法,包括接收包括定义实现信息模型中至少一种方法的类的代码的文件;翻译该文件,以产生面向对象的编程(OOP)语言文件中该类和该至少一种方法的面向对象的实现;向该OOP文件添加信息模型的协议语句,以便使客户端应用程序能够调用服务器上的该至少一种方法;及编译该OOP文件,以产生能够由对方法调用语句的调用来调用的可执行对象,其中调用方法调用语句的客户端应用程序使可执行对象中的该协议语句和该至少一种方法得以执行,以便调用服务器上的该至少一种方法。
2.如权利要求1所述的方法,其中信息模型包括设备管理模式,而且其中该至少一种方法关于与设备相关的设备管理操作。
3.如权利要求2所述的方法,其中协议语句启用客户端与服务器处提供者之间的通信,以便使客户端能够通过提供者调用该至少一种方法,其中该至少一种方法包括提供者翻译成特定于设备的命令以对设备实现该至少一种方法的功能性的与设备独立的命令。
4.如权利要求2所述的方法,其中设备管理模式包括公共信息模型(CIM)模式。
5.如权利要求2所述的方法,其中设备管理模式实现包括对所有设备管理区域公用的类与方法的内核模型,而且其中通过可执行对象调用的该至少一种方法是提供关于特定技术的类的扩展模式中的类成员。
6.如权利要求1所述的方法,其中添加到OOP文件的协议语句建立连接到服务器处的对象管理器的连接,以便执行该至少一种方法。
7.如权利要求1所述的方法,其中添加到OOP文件的协议语句实例化命名空间对象并设置该命名空间的参数,其中该命名空间包括表示被管理对象的类与方法的逻辑分组。
8.如权利要求7所述的方法,其中添加到OOP文件的协议语句设置到类的路径并识别服务器上的被管理对象和包括包含被调用方法的类的命名空间。
9.如权利要求7所述的方法,其中添加到OOP文件的协议语句设置从服务器上的被调用方法输出的值。
10.一种用于生成在服务器处部署并由客户端应用程序调用的方法的系统,包括处理器;存储设备,包括包含定义实现信息模型中至少一种方法的类的代码的文件;计算机可读介质,包括由处理器执行以便执行操作的代码,该操作包括翻译该文件,以产生面向对象编程(OOP)语言文件中该类和该至少一种方法的面向对象的实现;向该OOP文件添加信息模型的协议语句,以便使客户端应用程序能够调用服务器上的该至少一种方法;及编译该OOP文件,以产生能够由对方法调用语句的调用来调用的可执行对象,其中调用方法调用语句的客户端应用程序使可执行对象中的协议语句和至少一种方法执行,以便调用服务器上的该至少一种方法。
11.如权利要求10所述的系统,其中信息模型包括设备管理模式,而且其中该至少一种方法关于与设备相关的设备管理操作。
12.如权利要求11所述的系统,其中协议语句启用客户端与服务器处提供者之间的通信,以便使客户端能够通过提供者调用至少一种方法,其中该至少一种方法包括提供者翻译成特定于设备的命令以对设备实现该至少一种方法的功能性的与设备独立的命令。
13.如权利要求11所述的系统,其中设备管理模式包括公共信息模型(CIM)模式。
14.如权利要求11所述的系统,其中设备管理模式实现包括对所有设备管理区域公用的类与方法的内核模型,而且其中通过可执行对象调用的至少一种方法是提供关于特定技术的类的扩展模式中的类成员。
15.如权利要求10所述的系统,其中添加到OOP文件的协议语句建立连接到服务器处的对象管理器的连接,以便执行该至少一种方法。
16.如权利要求10所述的系统,其中添加到OOP文件的协议语句实例化命名空间对象并设置该命名空间的参数,其中该命名空间包括表示被管理对象的类与方法的逻辑分组。
17.如权利要求16所述的系统,其中添加到OOP文件的协议语句设置到类的路径并识别服务器上的被管理对象和包括包含被调用方法的类的命名空间。
18.如权利要求16所述的系统,其中添加到OOP文件的协议语句设置从服务器上的被调用方法输出的值。
19.一种包括生成在服务器处部署并由客户端应用程序调用的方法的代码的制品,其中代码使操作得以执行,该操作包括前面方法权利要求的任一方法的步骤。
20.一种包括用于从客户端应用程序调用在服务器处部署的方法的代码的制品,其中代码使操作得以执行,该操作包括执行与可执行代码关联的方法调用语句,其中可执行代码提供信息模型中的类中的方法的面向对象的实现和信息模型的协议语句,以便调用服务器上的方法;响应执行方法调用语句,执行在可执行代码中实现的协议语句,以便建立与服务器的通信;及执行在可执行代码中实现的方法,以便调用服务器上的方法。
21.如权利要求20所述的制品,其中协议语句启用客户端与服务器处提供者之间的通信,以便使客户端应用程序能够通过提供者调用至少一种方法,其中该方法包括提供者翻译成特定于设备的命令以对该设备实现该至少一种方法的功能性的与设备独立的命令。
22.如权利要求20所述的制品,其中在可执行代码中实现的协议语句建立连接到服务器处的对象管理器的连接,以便执行该至少一种方法。
23.如权利要求20所述的制品,其中在可执行代码中实现的协议语句实例化命名空间对象并设置该命名空间的参数,其中该命名空间包括表示被管理对象的类与方法的逻辑分组。
24.如权利要求23所述的制品,其中在可执行代码中实现的协议语句设置到类的路径并识别服务器上的被管理对象和包括包含被调用方法的类的命名空间。
25.如权利要求23所述的制品,其中在可执行代码中实现的协议语句设置从服务器上的被调用方法输出的值。
26.一种用于部署计算基础结构的方法,包括将权利要求20的制品中的代码集成到计算系统中,其中该计算系统执行该代码以执行方法调用并执行与被调用方法语句关联的可执行代码。
全文摘要
提供了用于为信息模型生成实现方法的可执行对象的方法、系统和程序。接收包括定义实现信息模型中至少一种方法的类的代码的文件。翻译该文件,以产生面向对象的编程(OOP)语言文件中该类和至少一种方法的面向对象的实现。将信息模型的协议语句添加到该OOP文件,以便使客户端应用程序能够调用服务器上的该至少一种方法。编译该OOP文件,以便产生能够由对方法调用语句的调用来调用的可执行对象,其中调用方法调用语句的客户端应用程序使该可执行对象中的协议语句和至少一种方法得以执行,以便调用服务器上的该至少一种方法。
文档编号G06F9/45GK1869937SQ20061008034
公开日2006年11月29日 申请日期2006年5月12日 优先权日2005年5月13日
发明者玛丽亚·S.·拉贾卡尼马里亚恩, 斯里拉姆·M.·帕拉普迪, 莱纳·沃拉夫卡 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1