关于与现存系统管理产品或软件方案接口的系统与方法

文档序号:6406800阅读:249来源:国知局
专利名称:关于与现存系统管理产品或软件方案接口的系统与方法
技术领域
总体上讲,本发明所公开的内容涉及数据资源管理,具体地讲,本发明所公开的内容涉及一种提供了与现存计算机系统管理产品(product)或软件方案(solution)的一致的管理接口的系统与方法。

背景技术
计算机系统管理是企业运营的一个重要的方面,并且也是软件市场增长最快的领域之一。随着产品(例如软件和硬件)部署与购买数量的增多,由于更大的责任,压力也日趋增大。为获得所要部署的硬件和软件需要付出的巨额花费,以及表明受托方责任的越来越大的成本控制压力,导致了对更大责任的需求,从而使系统管理在企业的运营中发挥着更为关键的作用。
使用一系列不同工具的传统的系统管理途径,已经证明具有很低的成本效率比,因为与使用这些独立的管理工具相关的成本,导致了管理上的成本,而这些成本往往会超过需要加以管理的硬件和软件方面最初的投资。通常,减少工具的数量是不可行的,因为所使用的每一工具均具有不同的能力,其中许多工具需用于实现具体的管理目标。解决这一问题的其它传统的途径一直在促进接口标准定义或动议(Proposal),并且这些接口标准定义或动议最终在现存产品的新版本中得以承认和实现(例如,通常为了响应来自客户机方面对标准兼容性要求的压力)。


发明内容
本发明所公开的内容描述了一种机制,通过其可实现与现存技术进行接口的标准技术。在一个实施例中,向现存产品提供了基于标准的、一致的接口以及相关的技术,而且不需引入或开发新的通信协议、消息结构、或对这些产品或技术的其它重大更新。
因此,一种用于提供与不同产品或软件方案的一致的接口的系统与方法,可以包括一或多个其中驻留了不同系统产品或软件方案(装置)的系统单元或设备。可以向一个与某一特定的系统单元或设备相关的装置网关发送一个服务请求,这一特定的系统单元或设备包括可以服务于该请求的装置。装置网关选择与该特定装置相关的一个装置保障器(sponsor),以从该特定的装置引用所请求的服务。该装置保障器在请求者和可以完成这一服务请求的特定的装置之间提供一个面向具体产品的接口。装置保障器可以经由适当的接口和装置网关在消息有效载荷中向请求者返回服务结果。在一个示例实施例中,消息有效载荷可以包括XML(可扩展标示语言)消息。



为了更全面地理解本发明所公开的内容,请结合附图,参照以下的描述,其中 图1说明了可以用于实现一个示例实施例的示例系统;以及 图2说明了可以用于实现一个示例实施例的示例方法。

具体实施例方式 图1说明了可以用于实现一个示例实施例的示例系统10。系统10包括多个系统单元或设备12a~12n。为了便于举例,仅描述了4个这样的系统单元12a~12n,但实际上可以使用任何适当数量的系统单元12。对于此例,可以类似地配置系统单元12a~12n,然而,提供在每一系统单元12a~12n上的系统产品、软件或装置可能为不同的产品或方案,例如数据存储设备等。
每一个系统单元12a~12n可以包括一个装置网关14。装置网关14主要用作调度器(dispatcher)(例如对象请求居间器(broker)),可以提供对给定系统单元或设备12a~12n上所有装置保障器16a~16n的访问。实质上,装置网关14用作中央管道,通过其可获得的对装置保障器16a~16n的访问。尽管仅示出了3个这样的装置保障器16a~16n,但本发明所公开的内容并无意如此加以限制,而是实际上可以使用任何适当数量的装置保障器16。每一个装置保障器16a~16n可以用作一给定系统单元或设备12a~12n上的装置网关14的次级代理器(agent)。装置保障器16a~16n主要用于把标准接口暴露于装置网关14,通过这一标准接口,可以获得对特定系统产品和软件方案的功能的访问,其中针对这些特定的系统产品或软件方案来对装置保障器进行设计,以进行工作。每一装置保障器16a~16n可以用作一知识(knowledge)提供器(provider)的可执行的示例,并且能够使现存系统产品与客户机接口。因此,每一装置保障器可以用作一个实际的知识生成器或服务提供器。
知识提供器为这样的一种应用能够从门户服务器对其加以引用,以提供对某些系统管理器门窗(portlet)所需的信息与服务的访问。门窗为能够使门户的用户访问各种与系统管理相关的任务的门户窗口。门户服务器可以为能够在其上执行门户服务器应用的设备。
基本知识提供器为这样的一种知识提供器通过对装置层18a~18n中一个单一的应用所提供的一或多个适当接口的直接引用,提供对服务的访问(例如,一个基本知识提供器可以调用一个单一的装置保障器16a~16n)。复合知识提供器为这样的一种知识提供器通过对装置层18a~18n中多个单一的应用所提供的一或多个适当接口的直接引用,提供对服务的访问(例如,一个复合知识提供器可以调用多个装置保障器16a~16n)。
每一个装置层18a~18n可以用作客户机应用20可以与其接口的一个现存系统产品或软件方案(例如,通过装置保障器16a~16n)。从而,可以通过门窗调用装置层18a~18n中的该系统产品或软件方案的程序(function),以执行所涉及的产品、软件或装置的实际的任务。为了完成客户机的服务请求,装置保障器可以引用适当的装置层或产品18a~18n。
在操作中,用户或客户机应用20试图与一或多个系统单元12a~12n上的现存系统产品、软件方案或相关的技术进行接口。对于一个示例实施例,可以把系统10视为这样的一个基于万维网(Web)的门户该门户可以向系统管理员提供针对多种不同的系统技术(存储、安全、网络控制等)、并跨越不同平台来观察、实现、报告、分析、监视、及自动操作系统管理过程的公共接口。应用20可以创建一条标准的消息,该消息描述对与所涉及产品配套的服务的请求的性质。例如,应用20可以创建一条描述所做请求的可扩展标示语言(XML)消息。通常,可以把这一消息称为一个消息有效载荷(或者,对于XML消息,可以将其称为一个“XML消息有效载荷”)。XML消息有效载荷的内容可以包括XML标签(tag)与值,XML标签与值共同构成了相关于与所涉及系统产品、软件方案或装置进行的事务处理、或者对所涉及系统产品、软件方案或装置的服务的请求的查询和格式化准则。能够把可以包括针对某一产品的事务处理或服务请求的消息有效载荷传送到系统单元12a~12n,在该系统单元12a~12n,该产品将被接口,且该产品处于活跃(active)状态。例如,可以经由因特网(例如,网络19),使用一种标准的消息传送协议,例如针对标准类型消息的HTTP(超文本传送协议)1.1、或针对比通常情况要求更安全处理的消息有效载荷的HTTPS(安全套接层上的HTTP)1.1把消息有效载荷从应用20传送到系统单元(或设备)12a~12n上的一个端口。可以把从应用20接收所传送的消息有效载荷的系统单元12a~12n上的端口耦合于装置网关14,并且由装置网关14提供服务。
网络19可以包括公共与/或专用网络的任何适当的组合,而且这些公共与/或专用网络可以把用户(例如20)耦合于一或多个系统单元或设备12a~12n。在一个示例实施例中,网络19包括Internet和任何把用户20耦合于系统单元或设备12a~12n的适当的局域网(LAN)、城域网(MAN)或广域网(WAN)。
装置网关14可以检查流入(inbound)的消息有效载荷,以确定可以选择和引用哪一装置保障器16a~16n,以对来自应用20的消息有效载荷中的请求提供服务。较佳的做法是,可以把每一装置保障器16a~16n与能够加以引用以执行一或多个所请求任务的某一特定的系统产品、软件方案或装置层18a~18n的装置相关联。然后,所选择的装置保障器16a~16n可以引用适当的系统产品、软件方案或设备,以执行所请求的一或多个任务。应该加以注意的是,可以对所选择的装置保障器16a~16n加以构造,以使其能够提供执行所请求的一或多个任务所要求的任何一或多个面向具体产品的接口。
如以上所描述的,装置网关14可以选择和引用一个适当的装置保障器16a~16n,以服务于来自客户机应用20的请求。对于一个示例实施例,每一个装置保障器16a~16n可以为可执行的软件,并作为一个进程外应用或进程内应用加以运行,而且具有至少下列格式之一动态连接库(DLL)、组件对象模型(COM)对象(例如可视化Basic(VB)、对象链接与嵌入(OLE)、OLE定制控制(OCX)、ActiveX等)、Java类、以及VBScript。可以把关于每一装置保障器16a~16n的功能和特性的相关信息存储在一个可集中访问的登记管理机构(未示出)中。这一登记管理机构可以用作把关于装置保障器16a~16n的登记信息提供于统一描述、发现和集成(UDDI)目录或其它基于Web的服务目录的一个接触点。
登记信息可以包括针对每一装置保障器16a~16n的数字签字。一个给定平台或系统单元12a~12n上的装置网关14可以使用数字签字(例如,作为一个选项),以确保装置网关14所加载或引用的具体装置保障器16a~16n不被篡改。因此,对于一个示例实施例,可以把微软签字代码机制用于数字签字DLL、COM对象、Java类等,以支持装置保障器16a~16n。
当装置网关14向所选择的装置保障器16a~16n发送消息有效载荷,以引用装置层18a~18n的一个适当的系统产品或软件方案时,装置网关14可以把相关的消息信息以多种方式中的至少一种方式加载到所选择的装置保障器中。因此,装置网关14所使用的加载方法可能会随所涉及的装置保障器16a~16n的平台和处理类型的改变而改变。例如,如果把所选择的装置保障器16a~16n用于基于视窗(Windows)的平台的进程外的方法,则装置网关14可通过例示一个适当的COM对象(例如COM可以建立一个隐式的NT创建过程),加载具有相关消息信息的所选择的装置保障器,其中该COM对象包括该信息。作为另一个例子,如果把所选择的装置保障器16a~16n用于基于UNIX的平台的进程外的方法,则装置网关14可以经由共享库与/或创建新进程(Fork)或执行(Exec)命令,加载具有相关消息信息的所选择的装置保障器。
然而,如果把所选择的装置保障器16a~16n用于基于Windows的平台或基于UNIX的平台的进程内的方法,则装置网关14可以通过创建一个线程,并例示该线程,来加载具有相关消息信息的所选择的装置保障器,其中所创建的线程包括该信息,使得所选择的装置保障器16a~16n可以在装置网关14的控制下作为该线程(例如,一个程序的可以独立于其它部分执行的部分)执行。
如以上所描述的,每一个装置保障器16a~16n可以经由识别用户(例如客户机应用20)所请求的系统或软件程序的装置网关14,接收一个进入的消息有效载荷(例如,XML消息有效载荷)。另外,每一个装置保障器16a~16n还可以经由装置网关14向请求者(例如,应用20)输出一条消息(例如XML消息缓冲器)。特别是,用于在装置网关14和装置保障器16a~16n之间传送消息的机制可能随所使用的装置保障器的平台和处理类型的改变而改变。例如,如果把装置保障器16a~16n用于基于Windows的平台的进程外的方法,则可以使用COM远程过程调用(RPC)机制把消息发送至由装置网关14所启动的进程,但在其它方面,与主代理器的(例如,装置网关的)服务相分离地运行。使用COM RPC,客户机程序可以以适当的变元(argument)把消息发送至服务器,而该服务器可以返回包括程序执行的结果的消息。作为另一个例子,如果把装置保障器16a~16n用于基于UNIX的平台的进程外的方法,则可以经由“Fork”或“Exec”命令引用装置保障器。因此,装置保障器可以从“stdin”字段读进入的消息(例如XML消息),并通过写“stdout”字段来输出响应消息。然而,如果把装置保障器16a~16n用于进程内的方法(例如在基于Windows的平台或基于UNIX的平台上),最初,可以把一个句柄或指针传送给一个流入缓冲器(例如char*inbuff),并且把另一个指针传送给一个流出(outbound)缓冲器(例如char*outbuff)。
以下是可由装置网关14用于引用装置保障器16a~16n的基于UNIX的代码的一个例子 Loadlib(bebSubAjent.dll) Beb.InvokeSub(“INIT”) wait for inbound data if for bebAgent beb.InvokeSub(“INVOKE”,ib,ob); sendRply(ob); beb.InvokeSub(“FREE”,ob); continue; 以下是可由装置保障器16a~16n用于接收来自装置网关14的一条消息,并加以响应的代码的一个例子   fnbebSubAject.dll  long_declspec(dllexport)_cdeclInvokeSub(  PCHAR szFunction,  ...  )  {  va_list argptr;  if(stricmp(szFunction,“INITIALIZE”)==0){  retum(ss.Initialize());  }  else if(stricmp(szFunction,“TERMINATE”)==0){<!-- SIPO <DP n="6"> --><dp n="d6"/>  return(ss.Terminate());  }  else if(stricmp(sxFunction,”INVOKE”)==0){  char*ibXml;  char**obXml;  va_start(argptr,szFunction);  ibXml=va_arg(argptr,char*);  obXml=va_arg(atgptr,char**);  va_end(argptr);  return(ss.Invoke(idXml,obXml))  }  else if(stricmp(szFunction,“FREE”))==0){  char*obj;  va_start(argptr,szFunction);  obj=va_arg(argptr,char*);  va_end(argptr);  return(ss.Free(obj));  }  return 400;  } 每一个装置保障器16a~16n可以执行多个可以经由来自装置网关14的一或多个消息有效载荷(例如XML消息有效载荷)引用的程序和方法。例如一个装置保障器16a~16n至少可以执行下列方法 可以把“描述(Describe)”方法用于要求代理器提供关于它自身的信息。例如,如果把“Describe”方法发送给装置网关14,则该装置网关能够用一条描述其自身的消息响应与在其上运行装置网关的设备(系统单元12a~12n)上的该装置网关相关的所有当前所安装的装置保障器、以及在其上运行装置网关的设备上该装置网关可以检测的所有产品或软件方案。如果把“Describe”方法发送给装置保障器,则该装置保障器可以描述其自身。以下是这样的Describe方法的代码的一个例子   accepts<!-- SIPO <DP n="7"> --><dp n="d7"/>  <Method=describe/>  returns  <Version=string/>  <ProdInterfaceInfo=(ProdInterface Type*)  <PlatformInfo=string/>  <CanIssueAsyncNotify=string/> (y,n)  <ReqDTDVersionID=(Version*)Version of Request  DTD this instrument sponsor supports  <RespDTDVersionID=(Versi*)Version of  Response DTD this instrument sponsor supports  ProdInterfaceType(ProdName,Release,SubStat,  Active)  Name CDATA Required  ReleaseCDATA Required  SubStatNumber(1,0)(1=instrument  sponsor installed,0=instrument sponsor  not installed)  Active Number(1,0)(1=Active,  0=Inactive)   Version(VersionInfo)  VersionInfo CDATA 可以把“异步通知设置目的地(AsyncNotifySetDestination)”方法用于告知装置保障器16a~16n它可以向何处发送异步通知。以下是可用于AsyncNotifySetDestination方法的代码的例子   accepts<Method=AsyncNotitySetDestination>  <AsyncNotifySetDestinationType=string/>  (trap,http)  <AsyncNotifySetDestinationTargets=string/>   (machine namelip addr,port;machine   namelip addr,port;etc.)  <AsyncNotifySetDestinationPort=string/>(port)<!-- SIPO <DP n="8"> --><dp n="d8"/>  returns<AsyncNotifySetDestinationStatus=string/>  (success,failure)   <AsyncNotifySetDestinationReason=string/>  (explanation for failure) 可以把“显示语法(ShowGrammar)”方法用于要求代理器提供关于如何与其自身进行接口的信息。以下是可用于ShowGrammar方法的代码的一个例子。
accepts <Method=ShowGrammar/> returns <ResponseType=string/> (URL,DTD,SCHEMA) <ResponseGrammar=string/> 可以把“启始(Init)”方法用于指示代理器启动。通常,可以通过装置网关把这一方法发送至装置保障器,即在其把一个消息有效载荷加载到该装置保障器中时进行这一发送。以下是可用于Init方法的代码的一个例子 accepts <Method=Term/> returns <InitStatus=string/> 可以把“终止(Term)”方法用于指示代理器关闭。通常,装置网关可以把这一消息发送给装置保障器,即当指示该装置网关(例如,通过一个客户机应用或系统管理员)关闭一个装置保障器时进行这一发送。以下是可用于Term方法的代码的一个例子 accepts <Method=Term/> returns <InitStatus=string/> 可以把“配置(Configure)”方法用于设置或查询装置保障器的可配置的设置。当针对装置保障器设置原始配置值时,在所涉及的平台上的那一装置保障器的随后的重新启动中配置这些值。应该加以注意的是,如果试图在一条单一的消息中放入多个配置设置,则要求所涉及的装置保障器使这些配置设置立即全部生效。如果设置新配置值的任何尝试均失败,则可以把所有值退回到引用该Configure方法之前配置值。以下是使用Configure方法的代码的一个例子   accepts   <Method=ConfigureSub/>   <ConfigurePolarity=(ConfigPolarity*)   <ConfigureSetting=(ConfigureVariable*)  returns   <ConfigureStatus=String/> (success,   failure)   <ConfigureStatusReason=string/> (explanation   for failure)  ConfigurePolarity(Polarity)   Polarity Number(1,0)(0=Get,1=Set)  Polarity CDATA(Valid values are get or set)  ConfigureVariable(VarName,VarValue)  Varname CDATA  VarValue CDATA 可以把“引用(Invoke)”方法用于请求装置保障器16a~16n可以代表用户加以执行的一个服务(例如,信息检索、策略管理、动作引用等)。以下是可用于Invoke方法的代码的一个例子 accepts <Method=InvokeSub,InstallProd,DeinstallProd, InitProd,TermProd,CallProd> <method specific grammar> returns <InvokeStatus=string/> 可以把“验证(Authenticate)”方法用于向装置保障器16a~16n发送授权书,该装置保障器可以验证该授权书(credential),以确定是否把用户(例如客户机应用20)所发送的随后的服务请求授予该装置保障器。较佳的做法是,取代对装置网关14的验证,这一Authenticate方法可以验证哪个服务请求者的请求经由装置网关被提交到装置保障器。一旦该请求者得到验证,则可以由所涉及的装置保障器局部地超高速缓存或存储MAC Addr(网络适配器地址)或IP Addr(因特网协议地址)(或其它可以识别该请求者的记号)。接下来,装置保障器可以从局部超高速缓存器中检索授权书,并根据所检索的授权书信息做出访问决策。因此,装置网关14和所有数字签字的代理器能够确认装置保障器16a~16n的签字。以下是可用于Authenticate方法的代码的一个例子。
accepts <Method=Authenticate/> <UserID=userid string/> <Password=password/> returns <AuthenticateStatus=string/> 图2说明了可用于实现一个示例实施例的示例方法100。在步骤102,一个客户机或用户(例如20)创建一个包括针对某一特定系统产品或软件方案的服务请求的消息有效载荷(例如XML消息有效载荷)。在步骤104,客户机或用户把消息有效载荷发送到与一个针对一或多个系统单元或设备12a~12n的门户相关的地址。例如,可以由用户指定这一地址,或根据所做出的请求的类型加以确定。
在步骤106,响应于对包括一个服务请求在内的消息有效载荷的接收,一或多个装置网关14(例如,每一个与某一特定系统单元或设备12a~12n相关的装置网关14)向与该装置网关相关的装置保障器12a~12n发送一个“Describe”方法请求。响应于所做出的决策服务于该请求的适当的系统产品或软件方案(装置)经由装置保障器12a~12n是可得的,则在步骤108,装置网关14选择该装置保障器以服务于该请求。在步骤110,所选择的装置保障器12a~12n经由一个针对将引用的系统产品或软件方案的面向具体产品的接口,从装置层18a~18n引用该相关的系统产品或软件方案(装置)。例如,如果某一适当的系统产品或软件方案作为装置18a驻留在装置层,则装置网关14可以选择装置保障器16a(例如,与装置18a直接相关的),以经由一个为该装置而设计的适当的接口引用该装置,以完成所做出的服务请求。在步骤112,所选择的装置保障器16a~16n可以向请求者发送一个包括服务结果的消息有效载荷(例如,经由装置网关14)。
尽管附图中已示意了并且在以上的详细描述中已经说明了一个优选实施例,但应该意识到,所公开的内容并不局限于所公开的这一实施例,在不背离权利要求所说明和所定义的本发明的精神的情况下,可以对本发明进行多种重新安排、修改以及替换。
权利要求
1.一种用于提供与多个装置的一致的接口的系统,包括
至少一个系统单元;
装置网关,该装置网关耦合于一或多个所述系统单元;
多个装置保障器,该多个装置保障器中的每一个装置保障器耦合于一个装置网关;以及
多个装置,该多个装置中的每一个装置耦合于所述多个装置保障器之一。
2.根据权利要求1所述的系统,其中,通过相应的接口,把该多个装置中的每一个装置耦合于该多个装置保障器之一。
3.根据权利要求1所述的系统,其中,该系统单元之一包括数据存储设备。
4.根据权利要求1所述的系统,其中,该多个装置包括多个系统产品。
5.根据权利要求1所述的系统,其中,该多个装置包括多个软件方案。
6.一种用于提供与多个装置的一致的接口的系统,包括
用于创建服务请求消息的部件;
用于向与至少一个系统单元相关的网关发送该服务请求消息的部件;
用于判断是否多个装置之一可用于完成包含在该服务请求消息中的服务请求的部件;
用于如果所述装置可用,则选择与该装置相关的保障器的部件;以及
用于以该装置引用所述服务的部件。
7.根据权利要求6所述的系统,还包括经由接口,把该多个装置中的装置耦合于该保障器的部件。
8.根据权利要求6所述的系统,其中,该多个装置包括多个系统产品。
9.根据权利要求6所述的系统,其中,该多个装置包括多个软件方案。
10.一种用于提供与多个装置的一致的接口的方法,该方法包括下列步骤
在与至少一个系统单元相关的网关接收服务请求消息;
判断是否多个装置中有一个装置可用于完成包含在该服务请求消息中的服务请求;
如果有上述装置可用,则选择包括与该装置相关的接口的保障器;以及
通过该接口以该装置引用所述服务。
11.根据权利要求10所述的方法,其中,创建该服务请求消息包括创建XML消息。
12.根据权利要求10所述的方法,还包括把所引用的服务的结果返回给使用XML消息的服务请求者。
13.根据权利要求10所述的方法,其中,由用户创建服务请求消息。
14.根据权利要求10所述的方法,其中,判断是否该多个装置中的装置可用于完成包含在该服务请求消息中的服务请求,包括把描述消息发送到与该网关相关的多个装置保障器。
15.根据权利要求10所述的方法,其中,该接口包括针对该装置的面向具体产品的接口。
16.根据权利要求10所述的方法,其中,由该网关执行所述选择步骤。
17.根据权利要求10所述的方法,其中,由该保障器执行所述引用步骤。
18.根据权利要求10所述的方法,至少一个系统单元包括数据存储设备。
19.根据权利要求10所述的方法,该网关包括装置网关。
20.根据权利要求10所述的方法,该保障器包括装置保障器。
21.根据权利要求10所述的方法,该多个装置包括多个系统产品。
22.根据权利要求10所述的方法,该多个装置包括多个软件方案。
23.用于提供与多个装置的一致的接口的软件,该软件包含于计算机可读的媒体中,当执行时,可操作下列步骤
在与至少一个系统单元相关的网关接收服务请求消息;
判断是否多个装置中有一个装置可用于完成包含在该服务请求消息中的服务请求;
如果有上述装置可用,则选择包括与该装置相关的接口的保障器;以及
以该装置引用所述服务。
24.根据权利要求23所述的软件,还可操作经由该接口把该多个装置之一耦合于该保障器。
25.根据权利要求23所述的软件,该多个装置包括多个系统产品。
26.根据权利要求23所述的软件,该多个装置包括多个软件方案。
全文摘要
一种用于提供与不同系统产品或软件方案的一致的接口的系统与方法,包括一或多个其中驻留了不同系统产品或软件方案(装置)的系统单元或设备。可以向与某一特定的系统单元或设备相关的装置网关做出一个服务请求,这一特定的系统单元或设备包括一个可以服务于该请求的装置。装置网关选择与该特定装置相关的一个装置保障器,以从该特定的装置引用所请求的服务。
文档编号G06F13/00GK1647036SQ03808790
公开日2005年7月27日 申请日期2003年4月18日 优先权日2002年4月19日
发明者格雷戈里·L·博丁, 安德鲁·J·安德森, 约翰·P·凯恩 申请人:电脑联合想象公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1