持久工具对象的方法和装置的制作方法

文档序号:6614795阅读:129来源:国知局

专利名称::持久工具对象的方法和装置的制作方法
技术领域
:本发明一般涉及企业计算(enterprisecomputing)。更具体而言,本发明涉及用于映射远程函数的持久对象工具(persistentobjecttool)。
背景技术
:越来越多的业务(business)转向电子商务战略以将它们的应用服务器与现有异构(heterogeneous)EIS(企业信息系统)整合。最近的发展为应用服务器中的组件提供了统一的体系结构以访问EIS中的资源。J2EE(Java2平台企业版)连接器体系结构(J2EEConnectorArchitecture,JCA)就是一个这样的例子。通常,诸如SAPJRA(JavaResourceAdaptor,Java资源适配器)这样的软件驱动器可以被插入到统一的体系结构中以支持底层的EIS服务,诸如SAPABAP(高级业务应用编程(AdvancedBusinessApplicationProgramming))函数。可以通过基于不同的软件驱动器的统一体系结构使诸如数据库、企业业务应用和消息传送等等的各种服务可用。典型地,应用服务器使用具有统一体系结构的访问对象(accessobject)以调用EIS中的远程函数,该EIS被插入到附加到应用服务器的统一体系结构中。往往是在应用服务器中执行软件代码以实现访问对象。此外,可能需要特定对象以在应用服务器与EIS之间映射远程函数参数。但是,当通过统一的体系结构从应用服务器访问EIS服务牵涉到复杂数据结构时,设计和编码任务会变得难以负担。来自远程函数调用的嵌套表结构(nestedtablestructure)便是这样的例子。在这样的情况下编码会易犯错5并且耗时。
发明内容本发明的实施例包括一种方法和装置,其执行可执行代码以将持久对象从存储体安装到应用服务器中以便访问EIS中的远程服务。该可执行代码是基于关系特性(relationalproperty)的,该关系特性用于将EIS的API(应用编程接口)函数映射到将该EIS与所述应用服务器耦接的跨平台(cross-platform)连接框架的对象。该应用服务器能够经由作为跨平台连接框架的部分的持久对象访问EIS的API函数。本发明的其它特征将从附图以及下面的详细描述中变得明显。在附图的图中作为示例而限定性地图示本发明,在附图中相似的参考标记表示类似的元素,附图中图1是示出了持久对象将应用服务器与跨平台连接框架接口连接的一个实施例的框图。图2是示出了操作持久对象工具的过程的一个实施例的流程图。图3是示出了生成与应用对象相关联的持久对象的持久对象工具的一个实施例的框图。图4是示出了通过持久工具访问API函数的服务的过程的一个实施例的时序图。图5是示出了持久对象工具的映射配置的一个实施例的样本文件。图6是示出了持久对象工具的全局配置的一个实施例的样本文件。图7A和7B是根据持久对象工具的一个实施例生成的样本可执行代码。图8A-8D是用于根据本发明的特定实施例的持久对象工具的一个实施例的用户4妻口的示例。图9示出了可以与本发明的实施例一起使用的计算机系统的一个示例。具体实施方式这里描述了用于应用服务器通过持久对象访问EIS中的API函数的持久对象工具的方法和装置。在下面的描述中,阐述了许多具体细节以提供本发明的实施例的透彻说明。但是,对本领域的技术人员来说显而易见的是,无需这些具体细节也可以实践本发明的实施例。在其它情况下,没有详细示出公知的组件、结构、和技术以免使对本说明难以理解。说明书中对"一个实施例"或"实施例"的引用是指结合该实施例所描述的具体特征、结构、或特性可以被包含在本发明的至少一个实施例中。在说明书中的不同位置处短语"在一个实施例中"的出现不一定全部是指同一实施例。通过包含硬件(例如,电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行的)、或二者的组合的处理逻辑来执行在下面的图中所描述的处理。虽然在下面根据某些顺序操作描述了处理,但是应当理解,可以以不同的次序来执行所描述的某些操作。而且,可以并行地而非顺序地执行某些操作。图1是示出了持久对象将应用服务器与跨平台连接框架接口连接(interfacing)的一个实施例的框图。在一个实施例中,通过网络103将客户端101可通信地耦接到应用服务器。客户端101可以是基于浏览器的客户端或业务应用客户端。网络103可以是互联网或者企业内部网(corporateintranet)。应用服务器105可以是能够针对客户端的请求来处理业务逻辑(businesslogic)或数据处理的服务器或者服务器群(cluster),诸如SAPNetWeaver系统。应用服务器可以是基于J2EE平台的。在一个实施例中,在应用服务器105与应用服务平台内的跨平台连接框架107之间安装一个或多个持久对象lll。持久对象可以包括具有状态的数据结构。在一个实施例中,持久对象具有在没有完成与该对象相关联的状态转移功能(statetransitionfunction)时回滚(rollback)到其先前状态的能力。持久对象可以具有持久字段(persistentfield)以存储从数据源读取的值,该数据源可以被保存在企业实体的EIS中。跨平台连接框架107可以是被用于将应用服务器平台耦接到异构EIS的软件驱动器,该异构EIS诸如SAPERP(企业资源规划)系统、主才几事务处理系统(mainframetransactionprocessingsystem)、凄U居库系统和/或遗留应用(legacyapplications)。通常,EIS的卖主(vendor)109可以通过跨平台框架107提供作为软件插件或软件驱动器的适配器113以将EIS109与应用服务器105耦接。多个适配器可以被插入到一个应用服务器中。在一个实施例中,与持久对象111相关联的属性(attribute)是基于从诸如文件或数据库这样的存储体(storage)读入到应用服务器105中的关系特性(relationalproperty)。图2是示出了操作持久对象工具的过程的一个实施例的流程图。例如,可以由图1所示的系统来执行处理逻辑。在一个实施例中,处理逻辑包括但不局限于在应用服务器内安装持久对象,并且经由该持久对象访问与应用服务器耦接的EIS的API。可以通过执行基于关系特性的可执行代码从存储体安装持久对象,该关系特性用于将EIS的API函数映射到将该EIS与应用服务器耦接的跨平台连接框架的对象。持久对象可以是跨平台连接框架的部分。根据一个实施例,处理逻辑在块201处配置映射关系以从EIS访问数据。映射关系可以定义对象的属性与函数参数的元素字段(elementfield)之间的对应关系。在一个实施例中,对象是Java兼容对象。在一个实施例中,对象是SAPJCO(Java连接器)对象。在一个实施例中,函数是由EIS提供的API函数。在一个实施例中,函数是SAPABAP(高级业务应用编程)函数。函数参数可以是相应函数的输入和/或输出参数。在一个实施例中,API函数的输入/输出参数包含表。在另一个实施例中,API函数的输入/输出参数包含数据结构。在一个实施例中,映射关系可以基于API函数的函数参数将一个对象与另一个对象连接。在块203处,根据一个实施例,处理逻辑基于在块201处配置的映射关系而生成一组持久对象、一组关系特性、和/或一组可执行代码。所生成的持久对象可以被存储在诸如文件或数据库这样的外部存储体中。在一个实施例中,所生成的持久对象是POJO(简单旧式Java对象,PlainOldJavaObject)。所生成的持久对象可以与EIS中的API函数的表或数据结构相对应。在一个实施例中,所生成的持久对象与EIS中的API函数的结构相对应。所生成的关系特性可以被存储为文本文件或二进制文件。在一个实施例中,所生成的关系特性是从Java属性到表中或结构中的字段的映射。表或结构可以表示企业后端系统(enterprisebackendsystem)的API。在一个实施例中,所生成的可执行代码是基于Java的。所生成的可执行代码可以是基于JavaDAO(数据访问对象(DataAccessObject))的。在块205处,根据一个实施例,处理逻辑在应用服务器中执行所生成的可执行代码。在块205处,处理逻辑可以在代码执行期间通过从外部存储体读取所生成的持久对象来将所生成的持久对象安装到应用服务器中。在一个实施例中,在块205处,处理逻辑在代码执行期间将关系特性读取到应用服务器中。可执行代码可以具有用以对所生成的持久对象和关系特性二者进行定位的文件路径信息。在一个实施例中,所生成的可执行代码、所生成的持久对象、和/或所生成的关系特性被存储在应用服务器中的目录下的独立的文件中。在块207处,根据一个实施例,处理逻辑通过所生成的持久对象将数据从EIS检索(retrieve)到应用服务器中。在一个实施例中,数据是基于EIS中的表的。在另一个实施例中,数据是基于EIS中的结构的。数据可以与EIS中的API函数的参数相对应。在一个实施例中,处理逻辑可以在持久对象与应用服务器中的另一个业务应用对象之间转换以检索数据。业务应用对象可以是与企业应用服务器兼容的对象。图3是示出了在应用服务器中生成与应用对象相关联的持久对象的持久对象工具的一个实施例的框图。在一个实施例中,系统301包括但不局限于代码生成服务模块305,和对象安装模块313。代码生成服务模块305可以生成可执行代码,该可执行代码被存储在存储体中。对象安装^f莫块313可以通过执行基于关系特性的可执行代码从存储体安装持久对象,该关系特性用于将EIS的API函数映射到与该EIS耦接的跨平台连接框架的对象。可以经由作为跨平台连接框架的部分的持久对象来访问EIS的API。在一个实施例中,代码生成服务模块305从用户接口模块307接收配置参数。配置参数可以是不同类型的数据之间的映射关系。在一个实施例中,配置参数包含代码输出路径名、Java包名(packetname)和函数列表。配置参数可以指定用户和系统信息,诸如用户名、密码和连^t妻设置。在一个实施例中,代码生成服务模块305基于配置参数而依赖于来自应用服务器301中的平台库317的服务。平台库可以是Java运行时库(runtimelibrary)。在一个实施例中,代码生成服务生成持久对象、可执行代码和关系特性,它们被存储在存储体311中。存储体311可以是与应用服务器301本地或远程连接的数据库或一组文件。在一个实施例中,对象安装模块313从存储体311检索可执行代码,并且运行该代码以创建应用对象303并将持久对象315安装在应用服务器301中。执行模块可以与包含脚本代码(scriptcode)的批处理文件相关联。应用对象303可以与来自存储体311的关系特性相关联。在一个实施例中,应用对象303基于平台库317将持久对象315转换为业务应用对象。在一个实施例中,应用对象303执行与EIS中的API函数相对应的、平台库317中的业务函数,该EIS通过持久对象315与应用服务器317连接。要注意的是,可以以软件、硬件、或二者的组合的形式实施图3中所示的某些或全部组件。时序图。贯穿本申请,SAP的ABAP被用作企业EIS的示例。但是,并不局限于此。可以应用其它EIS。在一个实施例中,在应用服务器中的对象操作符(actor)401基于平台库创建应用对象exampleDAO405。对象exampleDAO405可以是JavaDAO对象。在一个实施例中,exampleDAO405通过对象连接403形成到EIS的连接。可以通过用于JCOAPI的平台库在时间段409期间创建连接403。在一个实施例中,应用对象DAOHelp407在时间段415期间读取关系映射。在一个实施例中,DAOHelp407是根据由代码生成服务所生成的可执行代码而创建的应用对象。关系映射可以是从存储关系特性的文件中读取的,该关系特性由代码生成服务生成。在时间段411期间,根据一个实施例,exampleDAO405通过连接403激活EIS中的API函数。连接403可以提供与API函数相应的JCO函数。在一个实施例中,在时间段417期间,DAOHelp407将持久对象转换为JCO型对象。JCO型对象可以是JCO表或JCO结构。JCO型对象可以与API函数的输入/输出参数相关联。在通过exampleDAO405调用API函数之后,根据一个实施例,DAOHelp407在时间段419期间将JCO对象转换为持久对象。操作符401可以根据API函数检索包含来自EIS的数据的持久对象413。图5是示出了持久对象工具的映射配置的一个实施例的样本文件。在一个实施例中,映射配置定义了用于JCO表和JCO结构的一组映射关系。在一个实施例中,通过文本编辑工具来创建映射配置文件。在另一个实施例中,由用户接口自动生成映射配置。图6是示出了持久对象工具的配置的一个实施例的样本文件。在一个实施例中,全局配置包括待生成的可执行代码、关系特性、和持久对象的目标路径(destinationpath)601。在另一个实施例中,通过用户接口直接提供全局配置信息。图7A和7B是根据持久对象工具的一个实施例生成的样本可执行代码。在本实施例中,在所生成的代码中定义了2个Java类。在一个实施例中,所生成的代码包括JavaDAO类701。在另一个实施例中,所生成的代码包括Java集合类(collectionclass)703。图8A-8D是用于安装持久对象工具的一个实施例的用户接口的示例。图8A、8B、8C和8D可以基于用户接口按钮805、815、825按次序一个接一个。根据一个实施例,图8A示出了用于输入源文件夹路径801和包名803以配置持久对象工具的用户接口。包名803可以指定与EIS相关联的类。源文件夹路径801可以确定持久工具应当在哪里存储所生成的代码、对象和特性文件。现在转到图8B,根据一个实施例,通过如图8B所示的输入格式811和813来指定目标应用服务器的配置设置和关于相关联的用户账户的信息。前进到图8C,在一个实施例中,为持久对象工具配置RFC(远程函数调用)模块。与图8A中所指定的类相对应的RFC模块可以被显示在选择窗口821中以在相邻选择窗口823处被选入该工具中或从该工具中移除。根据一个实施例,在对设置进行了配置之后,可以点击"完成,,按钮835以运行图8D中所示的持久对象工具的代码生成服务。在一个实施例中,进程条(progressbar)831报告距离完成安装持久工具还有多久。由代码生成步骤的执行所产生的消息可以;波显示在文本窗口833中。在本实施例中,进程条831指示代码生成服务的当前状态对应于大约一半的持久工具安装任务。图9示出了可以被使用以实现本发明的实施例的计算机系统901的一个示例。要注意的是,尽管图9示出了计算机系统的各种组件,但是并不意在代表使组件互相连接的任何特定的体系结构或方式,因为这样的细节与本发明并非密切相关的。还应当理解,网络计算机及具有更少组件或者也许更多组件的其它数据处理系统也可以被用于本发明。如图9所示,属于一类数据处理系统的计算机系统901包括被耦接到微处理器905的总线903、ROM(只读存储器)907、易失性RAM909、和非易失性存储器1211。微处理器903可以从存储器907、909、911检索指令并且执行该指令以执行上述操作。总线903将这些不同的组件相互连接在一起,并且还使这些组件905、907、909和911互连到显示器控制器和显示器设备913以及连接到诸如输入/输出(I/O)设备这样的外围设备,所述外围设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域所公知的其它设备。典型地,输入/输出设备915被通过输入/输出控制器917耦接到系统。易失性RAM(随机存取存储器)909被典型地实施为动态RAM(DRAM),其需要被持续供电以更新或保存存储器中的数据。大容量存储器911典型地是磁性硬驱、或^F兹性光驱、或光驱、或DVDRAM、或者甚至在从系统移除电源之后还能保存数据(例如,大量数据)的其它类型的存储器系统。典型地,大容量存储器911还可以是随机存取存储器,虽然并不需要这样。尽管图9示出了大容量存储器911是被直接耦接到数据处理系统中其余组件的本地设备,但是应当理解,本发明可以利用远离系统的非易失性存储器,诸如通过诸如调制解调器或以太网接口这样的网络接口而被耦接到数据处理系统的网络存储设备。总线卯3可以包括一个或多个总线,其被通过如本领域所公知的各种桥、控制器和/或适配器而相互连接。可以利用诸如专用逻辑电路这样的逻辑电路、或者利用微控制器、或者执行程序代码指令的其它形式的处理核芯(processingcore)来实现上面所描述的一部分。从而,可以利用诸如机器可执行指令这样的程序代码来执行上面的讨论所教导的处理过程,所述机器可执行指令促使执行这些指令的机器执行特定功能。在本上下文中,"机器,,可以是这样的机器其将中间形式(或"抽象的,,)的指令转换为处理器专门指令(例如,诸如"虚拟机"(例^口,Java虚扣乂才几)、解释器、7>共^吾言运《亍环境(CommonlanguageRuntime)、高级语言虚拟机等等这样的抽象执行环境)、和/或诸如通用处理器和/或专用处理器这样的被设计用于执行指令的、布置在半导体芯片上的电子电路(例如,利用晶体管实现的"逻辑电路,,)。还可以通过(作为机器的替换或与机器相组合)被设计用于在不执行程序代码的情况下执行所述处理过程(或其一部分)的电子电路来执行上面的讨论所教导的处理过程。相信由以上讨论所教导的处理也可以用各种软件开发框架(例如,Microsoft公司的.NET、Mono、Java、Oracle公司的Fusion等)所支持的各种面向对象或非面向对象的计算机编程语言(例如,Java、C#、VB、Python、C、C++、J#、APL、Cobol、ABAP、Fortran、Pascal、Perl等)描述在源码级程序代码中。源码级的程序代码可以-故转换为抽象执行环境(例如,Java虛拟机、公共语言运行库、高级语言虚拟机、解释器等)可理解的中间形式的程序代码(诸如Java字节码、Microsoft中间语言等)、或以专用处理器为目标的更加特定形式的程序代码。可以使用制造的物品来存储程序代码。存储程序代码的制造物品可以被具体实施为、但不局限于一个或多个存储器(例如,一个或多个闪存、随机存取存储器(静态的、动态的或其它))、光盘、CD-ROM、DVDROM、EPROM、EEPROM、磁或光卡、或适用于存储电子指令的其它类型机器可读介质。也可以通过被具体实施在传播介质(例如,经由通信链接(例如,网络连接))中的数据信号将程序代码从远程计算机(例如,服务器)下载到请求计算机(例如,客户端)。按照对计算机存储器内的数据位的操作的算法和符号表示给出了前面的详细描述。这些算法描述和表示是数据处理领域的技术人员所使用的、用并且一般来说,算法被设计成导向期望结果的前后一致的操作序列。该操作是那些需要物理量的物理操纵的操作。通常,虽然并不是必须地,这些量采取能够被存储、传送、组合、比较或者其它操纵的电信号或磁信号的形式。已证明,主要是由于通用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字或类似物常常是方便的。但是,应当记住,所有这些以及类似的术语都与合适的物理量相关联,并且仅仅是施加到这些量的方便的标注。除非特别声明,否则可以从以上讨论中清楚地看出,应当理解,贯穿整个描述,利用诸如"处理"或"计算"或"确定"或"显示,,等术语的讨论来指的是计算机系统或类似的电子计算设备的动作和处理,它们将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的物理量的其它数据。此外,可以通过装置来执行上面所描述的操作。该装置可以是为了所需目的而特别构造的,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如、但不限于包括软盘、光盘、CD-ROM和磁光盘在内的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、》兹或光卡、或适于存储电子指令的任何类型的介质,并且每一个都被耦接到计算机系统总线。这里所提供处理和显示并不专门涉及任何特定的计算机或其它装置。可以利用依照这里的教导的程序使用各种通用系统,或者可以证明构造更加专用的装置来执行所描述的方法操作是方便的。用于多种这些系统的所需结构将从以下描述中清楚地看出。此外,本发明的实施例并不是参考任何特定的编程语言而描述的。应当理解,可以使用各种编程语言来实施这里所描述的本发明的教导。前述的讨论只描述了本发明的一些示范性实施例。本领域的技术人员将从这样的讨论、附图以及权利要求中容易地看出,在不脱离本发明的范围的条件下可以做出各种修改。权利要求1.一种计算机实现的方法,该方法包括通过基于关系特性的执行可执行代码,从存储器将持久对象安装到应用服务器内,所述关系特性用于将EIS的API函数映射到将该EIS与所述应用服务器耦接的跨平台连接框架的对象;以及经由作为所述跨平台连接框架的部分的持久对象,访问所述EIS的API。2.如权利要求l所述的方法,还包括为代码生成服务配置参数,该参数将所述EIS中的第一元素类型的API函数映射到第二元素类型的持久对象。3.如权利要求2所述的方法,其中,所述持久对象由所述代码生成服务生成。4.如权利要求2所述的方法,其中,所述多个关系特性由所述代码生成服务生成。5.如权利要求2所述的方法,其中,所述可执行代码由所述代码生成服务生成。6.如权利要求l所述的方法,其中,所述访问还包括激活所述API函数以在所述EIS中生成数据元素;以及通过所述持久对象将所述数据元素从所述跨平台连接框架检索到所述应用服务器。7.如权利要求6所述的方法,还包括在所述跨平台连接框架中生成所述对象。8.如权利要求6所述的方法,其中,所述数据元素包含,在所述EIS中的第一元素类型,并且其中,所述数据元素包含,在所述跨平台连接框架中的第二元素类型。9.如权利要求1所述的方法,其中,所述持久对象与所述应用服务器中的数据结构相对应。10.如权利要求8所述的方法,其中,所述数据结构是表。11.一种其中具有指令的机器可读介质,当其被机器执行时促使该机器执4f一种方法,该方法包4舌通过基于关系特性的执行可执行代码,从存储器将持久对象安装到应用服务器内,所述关系特性用于将EIS的API函数映射到将该EIS与所述应用服务器耦接的跨平台连接框架的对象;以及经由作为所述跨平台连接框架的部分的持久对象,访问所述EIS的API。12.如权利要求11所述的机器可读介质,其中,所述方法还包括为代码生成服务配置参数,该参数将所述EIS中的第一元素类型的API函数映射到第二元素类型的持久对象。13.如权利要求12所述的机器可读介质,其中,所述持久对象由所述代码生成服务生成。14.如权利要求12所述的机器可读介质,其中,所述多个关系特性由所述代码生成服务生成。15.如权利要求12所述的机器可读介质,其中,所述可执行代码由所述代码生成服务生成。16.如权利要求11所述的机器可读介质,其中,所述访问还包括激活所述API函数以在所述EIS中生成数据元素;以及通过所述持久对象将所述数据元素从所述跨平台连接框架检索到所述应用服务器。17.如权利要求16所述的机器可读介质,其中所述方法还包括在所述跨平台连接框架中生成所述对象。18.如权利要求16所述的机器可读介质,其中,所述数据元素包含,在所述EIS中的第一元素类型,并且其中,所述数据元素包含在所述跨平台连接框架中的第二元素类型。19.如权利要求11所述的机器可读介质,其中,所述持久对象与所述应用服务器中的数据结构相对应。20.如权利要求18所述的机器可读介质,其中,所述数据结构是表。21.—种数据处理系统,该系统包括代码生成服务模块,其用于生成可执行代码,该可执行代码被存储在与应用服务器相连接的存储器内;对象安装模块,其用于通过基于关系特性、执行所述可执行代码,从所述存储器将持久对象安装到所述应用服务器内,所述关系特性用于将EIS的API函数映射到将该EIS与所述应用服务器耦接的跨平台连接框架的对象,经由作为所述跨平台连接框架的部分的持久对象从所述应用服务器访问所述EIS的API。22.如权利要求21所述的数据处理系统,其中,所述持久对象由代码生成服务模块根据配置参数生成,该配置参数将EIS中的第一元素类型的API函数映射到第二元素类型的持久对象。全文摘要描述了一种方法和装置,其执行可执行代码以将持久对象从存储体安装到应用服务器中以便访问EIS中的远程服务。该可执行代码是基于关系特性的,该关系特性用于将EIS的API(应用编程接口)函数映射到将该EIS与所述应用服务器耦接的跨平台连接框架的对象。该应用服务器被使能经由作为跨平台连接框架的部分的持久对象访问EIS的API函数。文档编号G06F9/44GK101256483SQ20071019644公开日2008年9月3日申请日期2007年12月3日优先权日2006年12月4日发明者孙亚炜申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1