在通用交互层顶部提供开放数据协议服务的制作方法与工艺

文档序号:12041800阅读:168来源:国知局
在通用交互层顶部提供开放数据协议服务的制作方法与工艺
本发明涉及允许在GenIL层顶部提供ODdata服务的计算机实施的方法、软件和系统。

背景技术:
通常,通过定制的图形用户界面来提供提供对业务套件系统(businesssuitesystem)的访问,该定制的图形用户界面通过使用关联的通用交互层(GenIL)的业务对象层与后端业务对象和数据连接。随着移动计算和其他计算平台(诸如智能电话和平板计算机)使用的增加,开放数据协议(opendataprotocol,OData)的使用变得更加普遍。允许设备使用OData访问业务套件系统需要开发定制的OData-GenIL接口。定制的OData-GenIL接口的开发已经导致针对每个OData-GenIL接口的更高的开发和维护成本、以及整体较高的业务套件系统的总拥有成本。

技术实现要素:
本公开涉及允许在GenIL层顶部提供OData服务的计算机实施的方法、软件和系统。一种计算机实施的方法包括:接收对数据的OData兼容请求,确定用于接收对数据的OData兼容请求的GenIL数据提供者,确定该数据的存储器位置,从所确定的存储器位置请求数据,从所确定的存储器位置接收所请求的数据,使用至少一台计算机将接收到的数据转换为OData兼容格式,呈现OData兼容响应,以及发送该OData兼容响应。这个方面的其他实施包括相应的计算机系统、装置、以及记录在一个或多个计算机存储设备上的计算机程序,每一个都被配置以执行该方法的动作。一个或多个计算机的系统能够被配置以通过安装在系统上的、操作将导致执行动作或导致系统执行动作的软件、固件、硬件或者软件、固件或硬件的组合来执行特定操作或动作。一个或多个计算机程序能够被配置以通过包括指令来执行特定操作或动作,当该指令由数据处理装置运行时将导致装置执行动作。上述和其他实施每个都可以选择地、以单独或组合的方式包括一个或多个以下特征。特别地,一个实施可以包括以下特征:在第一方面,可以与一般实施组合,数据的OData兼容请求针对对象模型或对象模型相关联的运行时数据中的至少一个。在第二方面,可以与任意前述方面组合,数据的OData兼容请求是运行前生成的。在第三方面,可以与任意前述方面组合,对象模型相关联的运行时数据与从GenIL兼容格式映射到OData兼容格式的对象模型相关联。在第四方面,可以与任意前述方面组合,GenIL数据提供者为对象模型或运行时数据中的至少一个提供GenIL兼容数据。在第五方面,可以与任意前述方面组合,对所确定的存储器位置的数据的请求是GenIL兼容格式的。在第六方面,可以与任意前述方面组合,包括根据接收到的数据构造OData对象模型。本说明书中描述的主题可以在特定实施中实现,以便实现以下优点中的一个或多个。首先,可以实现通用适配器以方便OData服务和GenIL接口(其与后端存储器通信)之间的通信。其次,不需要在后端存储器上部署适配器的任何部分。第三,通用适配器对现有应用是透明的。第四,通过使用各种可定制的OData兼容工具,通用适配器支持对象模型定制灵活性。其他优势对本领域技术人员将是明显的。在附图和以下描述中阐明本说明书的主题的一个或多个实施的细节。根据说明书、附图和权利要求书,该主题的其他特征、方面和优点将变得明显。附图说明图1示出了允许在GenIL层顶部提供ODdata服务的示例系统的框图;图2是示出客户端GUI多层架构的框图;图3A-3B示出了从GenIL兼容格式到OData兼容格式的对象模型的映射的示例;图4是示出具有并入网关服务器的OData-GenIL适配器的、更新的客户端GUI多层架构的框图;图5是示出包括OData-GenIL适配器的网关服务器的架构的框图;图6是利用并入网关服务器的GenIL-OData适配器将请求的对象模型从GenIL兼容格式映射到OData兼容格式的流程图;图7是利用并入网关服务器的GenIL-OData适配器对与从GenIL兼容格式映射到OData兼容格式的对象模型相关联的运行时数据进行转换的流程图;图8是示出具有并入业务套件服务器的OData-GenIL适配器的、更新的客户端GUI多层架构的框图;图9是示出业务套件服务器和并入业务套件服务器内的OData-GenIL适配器的架构的框图;图10是利用并入业务套件服务器的GenIL-OData适配器将请求的对象模型从GenIL兼容格式映射到OData兼容格式的流程图;以及图11是利用并入业务套件服务器的GenIL-OData适配器对与从GenIL兼容格式映射到OData兼容格式的对象模型相关联的运行时数据进行转换的流程图。在不同附图中,相同的参考标记和标志指示相同的元素。具体实施方式本公开一般描述了允许在GenIL层顶部提供ODdata服务的计算机实施的方法、软件和系统。对于本公开的该目的,业务套件是业务应用的捆绑,其提供了一体化的信息和过程、协作工具、特定行业的功能、以及可扩展性。业务套件提供了端到端的业务过程的传递,其跨越了诸如业务部门和位置的组织界限,集成了诸如客户、供应者和服务提供者的业务伙伴,并且允许组织调整业务计划、预算和运作报告(operationalreport)。只利用网络浏览器,当业务套件的用户已经通过验证、提供对信息、功能和服务的单一访问点时,它们就可以开始工作。业务套件可以以统一且结构化的方式呈现来自不同源的信息,并提供附加的服务,诸如仪表板、内部搜索引擎、电子邮件、新闻、导航工具、以及其他各种功能。业务套件通常由企业使用,以便向其员工、客户和可能的其他用户提供一致的外观和体验、访问控制和处置(procedure)多个应用,否则多个应用将是完全独立的实体。一般地,通过图形用户界面(GUI)向业务套件用户提供有效和用户友好的数据呈现,该数据由系统提供或者在系统内通信。术语“图形用户界面”或GUI可以用于单数或复数来描述一个或多个图形用户界面以及特定图形用户界面的每个显示。因此,GUI可以代表任何图形用户界面,包括但不限于网络浏览器、触摸屏、或处理信息并有效地向用户呈现信息结果的命令行界面(CLI)。一般情况下,GUI可以包括多个用户界面(UI)元素,该UI元素的一部分或全部与网络浏览器相关联,诸如业务套件用户可操作的交互字段、下拉列表和按钮。这些和其他UI元素可以与网络浏览器的功能有关或者代表网络浏览器的功能。图1示出了可操作以允许在GenIL层顶部提供ODdata服务的示例分布式计算系统100。具体来说,所示出的示例分布式计算系统100包括或与通信方式耦接在网络130上通信的业务套件服务器102和客户端140。一般情况下,业务套件服务器102是存储一个或多个业务应用108的服务器,其中至少一部分业务应用108经由向示例分布式计算系统100内的或者以通信方式与示例分布式计算系统100耦接的用户或客户端发送请求和响应来运行。在一些实施中,业务套件服务器102可以存储多个不同的业务应用108。在其他实施中,业务套件服务器102可以是用于存储和执行仅单一业务应用108的专用服务器。在一些实施中,业务套件服务器102可以包括网络服务器,其中业务应用108代表由客户端140经由网络130访问和运行的、或者在业务套件服务器102处直接访问和运行以便执行业务应用108已编程的任务或操作的一个或多个基于网络的应用。在高层次上,业务套件服务器102包括可操作以接收、发送、处理、存储、或管理与示例分布式计算系统100相关联的数据和信息的电子计算设备。具体来说,图1所示的业务套件服务器102负责从与示例分布式计算系统100的客户端140相关联的一个或多个客户端应用接收应用请求(例如业务套件导航请求)并且通过在相关联的业务应用108中处理所述请求来响应接收到的请求,并且将来自业务应用108的适当响应发回发出请求的客户端应用146。除了来自客户端140的请求,也可以发送来自内部用户、外部或第三方客户、其他自动化应用、以及任何其他适当实体、个人、系统或计算机的与业务应用108相关联的请求。如本公开中所使用的那样,术语“计算机”旨在包括任何合适的处理设备。例如,虽然图1示出了单一业务套件服务器102,但是可以使用两个或更多个服务器102以及除了服务器的计算机(包括服务器池)来实现环境100。事实上,业务套件服务器102可以是任何计算机或处理设备,例如,刀片服务器、通用个人计算机(PC)、麦金托什机(Macintosh)、工作站、基于UNIX的工作站、或任何其他合适的设备。换句话说,本公开预期(contemplate)除了通用计算机的其他计算机、以及不使用传统操作系统的计算机。此外,所示出的业务套件服务器102可以适于运行任何操作系统,包括Linux、UNIX、Windows、MacOS、或任何其他合适的操作系统。根据一个实施,业务套件服务器102也可以包括或以通信方式耦接电子邮件服务器、网络服务器、缓存服务器、流数据服务器、和/或其他合适的服务器。业务套件服务器102还包括接口104、处理器106、和存储器107。业务套件服务器102使用接口104与连接到网络130的分布式环境(包括在环境100内)中的其他系统通信,例如客户端140以及以通信方式耦接到网络130的其他系统(未示出)。一般地,接口104包括在软件和/或硬件中以合适的组合编码的逻辑,并且可操作以与网络130通信。更具体地,接口104可以包括支持与通信相关联的一个或多个通信协议的软件,从而网络130或者接口的硬件可操作以在所示的示例分布式计算系统100的内部和外部传递物理信号。如图1所示,业务套件服务器102包括处理器106。虽然在图1中示出为单一处理器106,但是根据环境100的特定需要、期望、或特定实施,可以使用两个或更多个处理器。每个处理器106可以是中央处理单元(CPU)、刀片处理器(blade)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他合适的组件。一般地,处理器106运行指令并处理数据以执行业务套件服务器102的操作。具体地,处理器106运行要求接收并响应来自客户端140的请求的功能,和/或允许在GenIL层顶部提供ODdata服务的功能。与特定实施无关,“软件”可以包括当运行软件时可操作以至少执行这里所描述的过程和操作的、在有形介质(根据需要,临时性或非临时性)上的计算机可读指令、固件、有线或程序化硬件、或其任意组合。事实上,每个软件组件可以完全或部分地由包括C、C++、ObjectiveC、JAVA、VisualBasic、汇编(assembler)、Perl、任何合适的版本的4GL、以及其他语言的任何合适的计算机语言编写或描述。虽然图1中所描述的软件部分表示为通过不同对象、方法、或其他过程实施各种特征和功能的单独模块,但是软件可以根据需要替代地包括许多子模块、第三方服务、组件、库等。相反,各个组件的特征和功能可以根据需要合并成单一组件。业务套件服务器102还包括存储器107或多个存储器107。存储器107可以包括任何存储器或数据库模块,并且可以采用易失性或非易失性存储器的形式,包括但不限于磁介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、可删除介质、或任何其他合适的本地或远程存储器组件。存储器107可以存储各种对象或数据,包括缓存、类、框架(framework)、应用、备份数据、作业(job)、网页、网页模板、数据库表、存储业务和/或动态信息的存储库、以及任何其他适当的信息(包括与业务套件服务器102的用途相关联的任何参数、变量、算法、指令、规则、约束、或引用)。此外,存储器107可以包括任何其他适当的数据,诸如VPN应用、固件日志和策略、防火墙策略、安全或访问日志、打印或其他报告文件、以及其他数据。虽然将存储器107示出为业务套件服务器102的整体组件,但是在可替换的实施中,存储器107可以在业务套件服务器102和/或示例分布式计算系统100的外部。业务套件服务器102还包括应用编程接口(API)111。该API111可以包括例程、数据结构和对象类的规范。API111可以与计算机语言无关、或者依赖于计算机语言,并且指代完整的接口、单一的功能、甚至一组API。在某些实施中,API111可以用于在硬件和软件两方面连接业务应用108和/或业务套件服务器的一个或多个组件或者示例分布式计算系统100的其他组件。例如,在一个实施中,业务应用108可以利用API111与客户端140通信。虽然API111示出为业务套件服务器102内的独立组件,但是在示例分布式计算系统100中可能存在在硬件和软件两方面并入单独组件或者可由单独组件访问的多个其他API。服务层112向示例分布式计算系统100提供软件服务。业务套件系统的功能可以经由这个服务层对所有服务使用者(consumer)可访问。诸如业务套件导航的软件服务通过定义的接口提供可重复使用的、定义的业务功能。定义的接口可以是以可扩展标记语言(XML)或其他合适的语言编写的软件。虽然示出为示例分布式计算系统100中的业务套件服务器102的集成组件,但是可替换的实施可以将服务层112示出为与示例分布式计算系统100的其他组件有关的独立组件。此外,服务层112的任何或所有组件可以实施为其他软件模块或企业应用(未示出)或其他硬件模块(未示出)的子段(child)或子模块而不偏离本公开的范围。存储器107(即,后端数据系统)保存业务套件服务器102的数据。在一些实施中,存储器107包括业务对象114、业务对象模型115和业务对象模型数据116。虽然示出为单一实例,但是可以存在一个以上的业务对象114、业务对象模型115和业务对象模型数据116的实例。业务对象114可以考虑为表示可理解的(intelligible)业务/非业务实体,诸如帐户、订单、员工、发票、财务报表等。业务对象114可以包括两种功能,例如以方法和诸如一个或多个属性的数据的形式。例如,帐户业务对象114可以具有诸如名称(Name)、优先级(priority)、值(Value)等的属性。业务对象114可以通过将系统降低为更小的单元来降低系统的复杂性。业务对象114的实施细节通常对非开发用户隐藏,并且可以通过定义的功能和封装的数据访问。业务对象114还形成了系统的功能和数据的入口点,并且使得系统能够方便地共享、通信、显示、或以其他方式操作系统。业务对象114也可以认为是特定业务套件中例如通过网页请求数据的目标,并且可以包含访问业务对象114时将要显示的视图。在某些实施中,业务对象114可以控制选定视图、为特定业务套件用户个性化的视图、以及动态视图的位置。虽然示出为与示例分布式计算系统100中的业务套件服务器102的存储器107结合,但是在可替换的实施中,业务对象114可以存储在业务套件服务器102的外部。业务对象模型115是代表适于组织的业务对象114的关系、联系(association)、作用等的结构化方式。例如,业务对象模型可以通过使用实体关系图(entity-relationshipdiagram,ERD)或其他合适图或描述方法来表示。产品销售者(ProductSeller)的示例业务对象模型115可以包括诸如账户和订单的根业务对象114,其中每个可以包含它们自己的方法、属性、以及与业务对象模型115中其他相关对象之间的关系。根业务对象114还可以与其他相关业务对象114有联系。账户根业务对象114的相关对象的示例可以包括AccountAddressUS。订单根业务对象114的示例相关对象可以包括订单合作伙伴(OrderPartner)和订单内容出货数据(OrderItemShipmentData)。虽然示出为与示例分布式计算系统100中的业务套件服务器102的存储器107结合,但是在可替换的实施中,业务对象模型115可以存储在业务套件服务器102的外部。业务对象模型数据116是与业务对象114的具体实例相关联的数据。例如,对于以上示例AccountAddressUS相关对象,可能是属性名称、标题、地址1、地址2、市、州和邮政编码。业务对象数据116将是与每个属性相关联的数据,例如,名称=“XYZ公司”、地址1=“任何街道12345”、地址2=“房间ABC”、市=“某城市”等。在某些实施中,业务对象模型数据116可以包括其他内容:文字、图像、声音、视频和动画,等等。虽然示出为与示例分布式计算系统100中的业务套件服务器102的存储器107结合,但是在可替换的实施中,业务对象模型数据116可以存储在业务套件服务器102的外部。现在转向图2,图2是示出客户端GUI多层架构200的框图200。通过客户端140(以下描述)提供对虚线202内表示的业务套件服务器102的访问,例如,网络浏览器或其他合适的GUI应用与用户界面(UI)表示层109连接,该UI表示层109进一步与由业务对象层(BOL)110提供的应用编程接口(API)(未示出)连接。从这个角度上,表示层109和业务对象层110将被共同称为BOL110。BOL110API为GUI应用提供一致的界面,以便访问与业务应用108相关联的业务对象114。通用交互层(GenIL)113与BOL110相关联,该GenIL113为BOL110提供一致的界面以便通过API111访问业务应用108业务对象114,并且为业务应用108提供一致的界面以便将数据返回到客户端140。在高层次上,GenIL113用作客户端140和业务应用108之间的桥路。因为在这种架构中,只要BO110/GenIL113/API111的接口不改变,客户端140就不受下层业务应用108业务对象114的变化的影响。这种架构通常也确保特定层、API等的变化还能够不影响其他层、API等。开放数据协议(OData)是用于查询和更新数据的网络协议,并且允许用户通过超文本传输协议从数据源请求数据并以诸如Atom发布协议(AtomPublishingProtocol,Atom)、JavaScript对象表示法(JavaScriptObjectNotation,JSON)、可扩展标记语言(XML)等格式接收从数据源返回的结果。在一些实施中,请求可以被划分为多个段。在一些实施中,可以同时和/或并行生成和/或接收多个请求段。诸如智能电话和平板计算机的移动计算和其他计算平台可以使用OData,并且是访问业务套件信息的越来越重要的方法。为了提供使用OData兼容的计算平台来访问业务套件服务器102,将OData-GenIL适配器(OGA)用于至少提供运行前(pre-runtime)的对象模型映射以及与映射的对象模型相关联的数据的运行时(runtime)转换在一些实施中,OGA可以实施为软件和/或硬件,并且可以包括一个或多个软件和/或硬件模块,以便提供运行前对象模型映射和数据服务的运行时转换。模型映射现在转向图3A-3B,图3A-3B示出了由OGA进行的从GenIL兼容格式302(这里,以先进的业务应用程序(ABAP)语言)到OData兼容模型304(这里,以如由头标“<?xmlversion=“1.0”encoding=“utf-8”?>”所示的XML)的对象模型(例如,上述的对象模型ProductSeller)的运行前映射的示例300。例如,如果在运行特定客户端140之前请求查看和/或编辑ProductSeller业务对象模型115,则OGA将把从存储器107检索到的GenIL兼容模型302转换为OData兼容模型304以便发送到特定客户端140。在示例转换中,将GenIL兼容模型302“根(Root)”对象映射到OData兼容XML“实体类型(EntityType)”306b。同样,将GenIL兼容“聚合(Aggregation)”关系308a映射到OData兼容XML“联合(Association)”308b。对普通技术人员明显的将是,除了所示的示例外,存在多个可能的映射。在一些实施中,映射是自动完成的,而在其他实施中,客户端140可以通过GUI的输入来要求完成映射。在一些实施中,映射可以是双向的。在一些实施中,GenIL兼容模型302和/或OData兼容模型304可以预处理和/或后处理模型格式之间的映射的一部分。运行时数据转换一旦已经由OGA完成对象模型映射,在高层次上,客户端104对与所映射的对象模型相关联的运行时数据的请求将从存储器107中请求,由OGA将该数据从GenIL格式(例如,ABAP)转换为OData兼容格式(例如,XML)并返回到客户端140。例如,如果特定客户端140请求名称=“XYZ公司”的账户在1月1日至3月31日之间的所有订单,则由OGA向存储器107生成请求以检索与映射的数据模型304相对应的适用的运行时数据。如果存在,则将返回的运行时数据从GenIL兼容格式转换为OData兼容格式并返回到客户端140。在一些实施中,转换是自动完成的,而在其他实施中,客户端140可以通过GUI的输入来要求完成转换。在一些实施中,转换可以是双向的。在一些实施中,GenIL兼容运行时数据和/或OData兼容运行时数据可以预处理和/或后处理转换的一部分。在一些实施中,可以在数据模型映射之前或者在没有数据模型映射的情况下请求并转换运行时数据。在一些实施中,根据运行时数据是否与根对象或相关对象相关联和/或是否请求了单个或多个数据集,运行时数据的请求和/或处理可以是不同的。在一些实施中,取决于特定客户端140GUI动作(例如,按压GUI按钮、选择菜单项、生成导航请求等)和/或客户端140GUI动作是否调用方法和/或生成查询/动态查询,由客户端140的GUI动作生成的运行时数据的OData请求和/或处理可以是不同的。在示例分布式计算系统100内OGA可以以各种方式实施。在一个实施中,OGA可以并入网关服务器160。在另一个实施中,OGA可以并入业务套件服务器102。并入网关服务器的OData-GenIL适配器移动计算平台可以通过网关服务器160访问业务套件服务器102。网关服务器160提供了定义的API并且用作客户端140和业务套件服务器102之间的接口/网关。在一些实施中,网关服务器160可以通过超文本传输协议(HTTP)或超文本传输协议安全(HTTPS)请求与客户端140通信。在一些实施中,网关服务器可以使用远程函数调用(RFC)接口与ABAP和/或非ABAP程序通信。在一些实施中,网关服务器160可以是独立的。在一些实施中,网关服务器160可以并入示例分布式计算系统100的任何组件。在一些实施中,网关服务器可以是硬件服务器、软件服务器、和/或虚拟服务器。在一些实施中,网关服务器160可以是网络服务器、流媒体服务器、RSS服务器、或其他合适的服务器的一部分。现在转向图4,图4是示出具有并入网关服务器160的OGA402的、更新的客户端GUI多层架构的框图400。在高层次上,网关服务器160从客户端140接收OData兼容请求,并且网关服务器160使用OGA402将OData兼容请求转换为GenIL兼容请求并且使用GenIL113将请求传递给BOL110。BOL110响应于来自GenIL113的OData请求而接收数据并且发送到OGA402。OGA402将接收到的数据转换为OData兼容数据。网关服务器160将转换后的OData兼容数据发送到客户端140。虽然图4示出OGA402与网关服务器160整合,但是在可替换的实施中,OGA402的全部或部分可以实施在示例分布式计算系统100的其他组件中,或者OGA402可以与用作独立组件的网关服务器106连接。现在转向图5,图5是示出网关服务器160和并入网关服务器160内的OGA402的架构的框图500。网关服务器160包括元数据组件502、运行时组件504、以及OGA402。运行时组件504还确定使用哪个业务内联附加件(busineadd-in,BADI)来从BOL110加载请求的对象模型。在一些实施中,BADI由客户端提供。在其他实施中,BADI由网关服务器自己提供。元数据组件502管理网关服务器160内的元数据502a。元数据502a描述了OData模型,其展示(expose)为OData服务文档和OData元数据文档。元数据502可以包含对象模型的引用。元数据基础结构502b基于元数据502a来管理对网关服务器160内容的访问、通过汇集来自内部源和外部源的OData服务文档和元数据文档来展示OData服务的标准描述。服务注册(serviceregistry)502c是存储特定OData服务和特定OData服务的实际实施之间的联系的数据存储。运行时组件504分析并处理来自客户端140的请求。在一些实施中,运行时组件504嵌入了诸如自动记录和追踪、基于配置的路由、事务处理等功能。在一些实施中,使用由OData运行时(ODataruntime)504a重用(reuse)的API,可以提供一些公共服务504c。公共服务504c的示例可以包括使得能够基于使用收费和推送服务通知的计量服务。OData运行时504a包含请求展示OData服务的功能。通用运行时(genericruntime)504b处理协议不可知的网关服务器160内容。通用运行时504b保持单独请求之间的无状态(stateless)并访问后端存储器。OGA402包括GenIL506的模型提供者和GenIL508的业务数据提供者。通用GenIL模型提供者506将GenIL兼容模型变换为OData兼容模型,反之亦然。通用GenIL数据提供者508与GenIL113连接,并读取/处理与对象模型相关联的数据。现在转向图6,图6是利用并入网关服务器的GenIL-OData适配器将请求的对象模型从GenIL兼容格式映射到OData兼容格式的流程图600。为了清晰表达,以下说明通常在图1、4和5的上下文中描述方法600。然而,将会理解的是,根据需要,方法600例如可以通过任何其他合适的系统、环境、软件、硬件、或系统、环境、软件、硬件的结合来执行。例如,一个或多个业务套件服务器、客户端、或其他计算设备(未示出)可以用于执行方法600,并从客户端、业务套件服务器、或其他计算设备(未示出)的存储器获得任何数据。在602,由客户端向网关服务器做出请求对象模型的OData兼容请求。方法600从602前进到604。在604,网关服务器的元数据组件接收客户端发起的OData兼容请求。元数据组件确定GenIL的适当模型数据提供者,并且并将请求委托(delegate)给该模型数据提供者。在一些实施中,GenIL的模型数据提供者可以是BADI。所确定的BADI从OGA请求客户端所请求的对象模型。方法600从604前进到606。在606,OGA接收BADI发起的、对客户端所请求的对象模型的请求。OGA确定客户端所请求的对象模型并确定业务套件后端存储器处的客户端所请求的对象模型的位置。OGA利用GenIL兼容请求从GenIL请求客户端所请求的对象模型。方法600从606前进到608。在608,GenIL接收OGA发起的、对客户端所请求的对象模型的请求。GenIL从业务套件服务器后端存储器加载对象模型。GenIL将所加载的对象模型发送到OGA。方法600从608前进到610。在610,OGA从GenIL接收GenIL加载的对象模型。OGA将接收到的对象模型转换为OData并且将该OData发送到网关服务器的元数据组件。方法600从610前进到612。在612,网关服务器的元数据组件从OGA接收OGA所转换的OData。网关服务器的元数据组件根据所接收到的OData构造OData兼容模型。方法600从612前进到614。在614,网关服务器的元数据组件利用所构造的OData兼容模型来呈现OData兼容响应。元数据组件将所呈现的OData兼容响应发送到客户端。方法600从614前进到616。在616,客户端接收元数据组件所呈现的OData响应,其包含所构造的OData对象模型。客户端处理所接收到的OData响应。在616之后,方法600停止。现在参照图7,图7是利用并入网关服务器的GenIL-OData适配器对与从GenIL兼容格式映射到OData兼容格式的对象模型相关联的运行时数据进行转换的流程图700。为了清晰表达,以下说明通常在图1、4和5的上下文中描述方法700。然而,将理解的是,根据需要,方法700例如可以通过任何其他合适的系统、环境、软件、硬件、或系统、环境、软件、硬件的结合来执行。例如,一个或多个业务套件服务器、客户端、或其他计算设备(未示出)可以用于执行方法700,并从客户端、业务套件服务器、或其他计算设备(未示出)的存储器获得任何数据。在702,由客户端向网关服务器做出请求与对象模型相关联的运行时数据的OData兼容请求。方法700从702前进到704。在704,网关服务器的运行时组件接收客户端发起的OData兼容请求。运行时组件确定GenIL的适当运行时数据提供者,并且并将请求委托给该运行时数据提供者。在一些实施中,GenIL的运行时数据提供者可以是BADI。所确定的运行时数据提供者从OGA请求客户端所请求的运行时数据。方法700从704前进到706。在706,OGA接收BADI所发起的、对客户端所请求的运行时数据的请求。OGA确定客户端所请求的运行时数据并确定业务套件后端存储器处的客户端所请求的运行时数据的位置。OGA利用GenIL兼容请求从GenIL请求客户端所请求的运行时数据。方法700从706前进到708。在708,GenIL接收OGA发起的、对客户端所请求的运行时数据的请求。GenIL从业务套件服务器后端存储器加载运行时数据。GenIL将所加载的运行时数据发送到OGA。方法700从708前进到710。在710,OGA从GenIL接收GenIL所加载的运行时数据。OGA将接收到的运行时数据转换为OData并且将该OData发送到网关服务器的运行时组件。方法700从710前进到712。在712,网关服务器的运行时组件利用所构造的OData兼容模型来呈现OData兼容响应。运行时组件将所呈现的OData兼容响应发送到客户端。方法700从712前进到714。在714,客户端接收运行时组件所呈现的OData响应,其包含OData运行时数据。客户端处理接收到的OData响应。在714之后,方法700停止。并入业务套件服务器的OData-GenIL适配器现在转向图8,图8是示出具有并入业务套件服务器102的OGA402的、更新的客户端GUI多层架构的框图800。在高层次上,网关服务器160从客户端140接收OData兼容请求,并且将OData兼容请求发送到BOL110。OGA402将OData兼容请求转换为GenIL兼容请求并且将该请求传递给BOL110。BOL110响应于来自GenIL113的OData请求而接收数据并且将接收到的数据发送到OGA402。OGA402将接收到的数据转换为OData兼容数据。将OData兼容数据发送到网关服务器160,并且从网关服务器160发送到客户端140。虽然图8示出了OGA402与业务套件服务器102整合,但是在可替换的实施中,OGA402的全部或部分可以实施在示例分布式计算系统100的其他组件中,或者OGA402可以与用作独立组件的业务套件服务器102连接。现在转向图9,图9是示出业务套件服务器102和并入业务套件服务器102内的、如虚线202内所示的OGA402的架构的框图900。OGA402包括网关服务器启动工具902、网关GenIL模型分析器904、GenIL模型提供者906、以及通用GenIL数据提供者908。网关服务器启动工具902读取GenIL兼容/OData兼容模型信息、使用网关GenIL模型分析器904来分析所读取的信息、并分别生成相应的OData兼容/GenIL兼容模型。GenIL模型提供者906将GenIL兼容模型变换为OData兼容模型,反之亦然。通用GenIL数据提供者908与GenIL113连接,并且读取/处理与对象模型相关联的数据。OData信道外加附加件(add-on)910是网关服务器160外加附加件,其用于启动后端存储器并提供允许OData信道开发。现在转向图10,图10是利用并入业务套件服务器的GenIL-OData适配器将请求的对象模型从GenIL兼容格式映射到OData兼容格式的流程图1000。为了清晰表达,以下说明通常在图1、8和9的上下文中描述方法1000。然而,将理解的是,根据需要,方法1000例如可以通过任何其他合适的系统、环境、软件、硬件、或系统、环境、软件、硬件的结合来执行。例如,一个或多个业务套件服务器、客户端、或其他计算设备(未示出)可以用于执行方法1000,并从客户端、业务套件服务器、或其他计算设备(未示出)的存储器获得任何数据。在1002,由客户端向网关服务器做出请求对象模型的OData兼容请求。方法1000从1002前进到1004。在1004,网关服务器的元数据组件接收客户端发起的OData兼容请求。元数据组件确定GenIL的适当模型数据提供者,并且并将请求委托给该模型数据提供者。在一些实施中,GenIL的模型数据提供者可以是BADI。确定的BADI从OData信道外加附加件请求客户端所请求的对象模型。方法1000从1004前进到1006。在1006,OData信道外加附加件接收BADI发起的、对客户端所请求的对象模型的请求并将该请求转发到OGA。方法1000从1006前进到1008。在1008,OGA确定客户端所请求的对象模型并确定业务套件后端存储器处的客户端所请求的对象模型的位置。OGA利用GenIL兼容请求从GenIL请求客户端所请求的对象模型。方法1000从1008前进到1010。在1010,GenIL接收OGA发起的、对客户端所请求的对象模型的请求。GenIL从业务套件服务器后端存储器加载对象模型。GenIL将所加载的对象模型发送到OGA。方法1000从1010前进到1012。在1012,OGA从GenIL接收GenIL所加载的对象模型。OGA将接收到的对象模型转换为OData并且将该OData发送到OData信道外加附加件。方法1000从1012前进到1014。在1014,OData信道外加附加件将OData发送到网关服务器的元数据组件。方法1000从1014前进到1016。在1016,网关服务器的元数据组件从OData信道外加附加件接收OGA所转换的OData。网关服务器的元数据组件根据接收到的OData构造OData兼容模型。客户端处理接收到的OData响应。方法1000从1016前进到1018。在1018,网关服务器的元数据组件利用所构造的OData兼容模型来呈现OData兼容响应。元数据组件将所呈现的OData兼容响应发送到客户端。方法1000从1018前进到1020。在1020,客户端接收元数据组件所呈现的OData响应,其包含所构造的OData对象模型。客户端处理接收到的OData响应。在1016之后,方法1000停止。现在参照图11,图11是利用并入业务套件服务器的GenIL-OData适配器对与从GenIL兼容格式映射到OData兼容格式的对象模型相关联的运行时数据进行转换的流程图1100。为了清晰表达,以下说明通常在图1、8和9的上下文中描述方法1100。然而,将理解的是,根据需要,方法1100例如可以通过任何其他合适的系统、环境、软件、硬件、或系统、环境、软件、硬件的结合来执行。例如,一个或多个业务套件服务器、客户端、或其他计算设备(未示出)可以用于执行方法1100,并从客户端、业务套件服务器、或其他计算设备(未示出)的存储器获得任何数据。在1102,由客户端向网关服务器做出请求与对象模型相关联的运行时数据的OData兼容请求。方法1100从1102前进到1104。在1104,网关服务器的运行时组件接收客户端所发起的OData兼容请求。运行时组件确定GenIL的适当运行时数据提供者,并且并将请求委托给该运行时数据提供者。在一些实施中,GenIL的运行时数据提供者可以是BADI。所确定的运行时数据提供者从OData信道外加附加件请求客户端所请求的运行时数据。方法1100从1104前进到1106。在1106,OData信道外加附加件从网关服务器运行时组件接收BADI所发起的、对客户端所请求的运行时数据的请求。OData信道外加附加件将该请求委托给OGA。方法1100从1106前进到1108。在1108,OGA确定客户端所请求的运行时数据并确定业务套件后端存储器处的客户端所请求的运行时数据的位置。OGA利用GenIL兼容请求从GenIL请求客户端所请求的运行时数据。方法1100从1108前进到1110。在1110,GenIL接收OGA所发起的、对客户端所请求的运行时数据的请求。GenIL从业务套件服务器后端存储器加载该运行时数据。GenIL将所加载的运行时数据发送到OGA。方法1100从1110前进到1112。在1112,OGA从GenIL接收GenIL所加载的运行时数据。OGA将接收到的运行时数据转换为OData并且将该OData发送到OData信道外加附加件。方法1100从1112前进到1114。在1114,OData信道外加附加件将OData返回到网关服务器的运行时组件。方法1100从1114前进到1116。在1116,网关服务器的运行时组件利用所构造的OData兼容模型来呈现OData兼容响应。运行时组件将所呈现的OData兼容响应发送到客户端。方法1100从1116前进到1118。在1118,客户端接收运行时组件所呈现的OData响应,其包含OData运行时数据。客户端处理接收到的OData响应。在1118之后,方法1100停止。返回图1,所示出的示例分布式计算系统100还包括客户端140、或多个客户端140。客户端140可以是可操作以使用有线或无线连接经由网络130连接到或者与至少业务套件服务器120通信的任何计算设备。一般情况下,客户端140包括可操作以接收、发送、处理、和存储与示例分布式计算系统100相关联的任何适当数据的电子计算机设备。所示出的客户端140还包括客户端应用146。客户端应用146是允许客户端140请求并查看客户端140上的内容的任何类型的应用。在一些实施中,客户端应用146可以是和/或包括网络浏览器。在一些实施中,客户端应用146可以使用在启动(launch)时接收到的参数、元数据和其他信息从服务器102访问特定的一组数据。当启动特定客户端应用146时,用户可以交互式地处理与业务套件服务器102相关联的任务、事件或其他信息。此外,虽然示出为单一客户端应用146,但是客户端应用146可以实施为客户端140中的多个客户端应用。所示出的客户端140还包括接口152、处理器144、和存储器148。客户端140使用接口152与连接到网络130的分布式环境(包括在示例分布式计算系统100内)中的其他系统通信;例如,业务套件服务器102、以及以通信方式耦接到网络130的其他系统(未示出)。一般地,接口152包括在软件和/或硬件中以合适的组合编码的逻辑,并且可操作以与网络130通信。更具体地,接口152可以包括支持与通信相关联的一个或多个通信协议的软件,从而网络130或者接口的硬件可操作以在示例分布式计算系统100的内部和外部传递物理信号。如图1所示,客户端140包括处理器144。虽然在图1中示出为单一处理器144,但是根据示例分布式计算系统100的特定需要、期望、或特定实施,可以使用两个或更多个处理器。每个处理器144可以是中央处理单元(CPU)、刀片处理器(blade)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他合适的组件。一般地,处理器144运行指令并处理数据以执行客户端140的操作。具体地,处理器144运行要求向业务套件服务器102发送请求、以及接收并处理来自业务套件服务器102的响应的功能。此外,所示出的客户端140包括GUI142。出于任何合适的目的(包括生成网络浏览器的可视化表示),GUI142连接示例分布式计算系统100的至少一部分。特别地,GUI142可以用于查看和浏览位于业务套件服务器102内部和外部的各种网页。所示出的客户端140还包括存储器148或多个存储器148。存储器148可以包括任何存储器或数据库模块,并且可以采用易失性或非易失性存储器的形式,包括但不限于磁介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、可删除介质、或任何其他合适的本地或远程存储器组件。存储器148可以存储各种对象或数据,包括缓存、类、框架、应用、备份数据、作业、网页、网页模板、数据库表、存储业务和/或动态信息的存储库、以及任何其他适当的信息(包括与客户端140的用途相关联的任何参数、变量、算法、指令、规则、约束、或引用)。此外,存储器148可以包括任何其他适当的数据,诸如VPN应用、固件日志和策略、防火墙策略、安全或访问日志、打印或其他报告文件、以及其他数据。可以存在与示例分布式计算系统100相关联或在示例分布式计算系统100外部的任意数量的客户端140。例如,虽然所示出的示例分布式计算系统100包括一个客户端140,但是示例分布式计算系统100的可替换的实施可以包括以通信方式耦接到业务套件服务器102和/或网络130的多个客户端140,或者适合于示例分布式计算系统100的用途的任何其他数量的客户端140。此外,还可以存在位于示例分布式计算系统100所示出的部分的外部、能够经由网络130与示例分布式计算系统100连接的一个或多个附加客户端140。此外,术语“客户端”和“用户”可以适当地交换使用而不偏离本公开的范围。此外,虽然按照客户端140由单一用户使用来描述客户端140,但是本公开预期,很多用户可以使用一台计算机或者一个用户可以使用多台计算机。客户端140旨在包括任何接收设备,诸如台式计算机、触摸屏终端、工作站、网络计算机、信息亭、无线数据端口、膝上型计算机/笔记本计算机、无线数据端口、智能电话、个人数据助理(PDA)、平板计算设备、这些设备中的一个或多个处理器、或任何其他合适的处理设备。例如,客户端140可以包括计算机,该计算机包括输入设备和输出设备,输入设备诸如键盘、触摸屏、或者可以接受用户信息的其他设备,输出设备传达与业务套件服务器102或客户端140本身的操作相关联的信息,该信息包括如关于客户端142所示的数字数据、可视化信息、或GUI142。虽然本公开论述了在OData和GenIL之间提供接口的适配器,但是本领域普通技术人员将理解,该适配器可以适于在任何合适的通信协议和/或数据格式之间提供接口而不偏离本公开的精神。前面的附图和伴随的描述示出了示例过程和计算机可实施的技术。但是示例分布式计算系统100(或它的软件或其他组件)考虑使用、实施或运行用于执行这些和其他任务的任何合适的技术。可以理解的是,这些过程仅用于说明性目的,而且所描述的或类似技术可以在任何适当时间执行,包括并发地、单独地、并行地或以组合方式。此外,这些过程中的许多步骤可以同时地、并发地、并行地和/或与所示的顺序不同的顺序发生。此外,示例分布式计算系统100可以使用具有额外的步骤、更少的步骤、和/或不同的步骤的过程,只要该方法保持适当。过程步骤也可以在示例分布式计算系统100的各个组件上运行,而且所描述的软件/服务也可以在示例分布式计算系统100的各个组件上运行,只要该方法保持适当。换句话说,虽然已经根据某些实施和一般关联的方法描述了本公开,但是这些实施和方法的改变和置换对本领域普通技术人员将是明显的。因此,示例实施的以上描述不限定或限制本公开。在不偏离本公开的精神和范围的情况下,其他变化、替换和改变也是可能的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1