用于实现到web服务的公用数据接口的方法和系统的制作方法

文档序号:6533314阅读:161来源:国知局
用于实现到web服务的公用数据接口的方法和系统的制作方法
【专利摘要】公开了用于为使用多个web服务规范语言的多个平台开发web服务的方法和系统。使用公用数据层来将不同web服务规范语言的类映射到公用类层次结构。这允许创建独立于每个单独的web服务规范语言的数据层,降低了针对每个web服务规范语言的实现重复的数据控件的要求。
【专利说明】用于实现到web服务的公用数据接口的方法和系统

【背景技术】
[0001] 开发平台常常是由计算系统的制造商所提供的,以允许第三方开发与计算系统相 接口的应用。例如,Oracle Corporation提供叫做"应用开发框架"("ADF")的开发平台 以便利于访问Oracle应用服务器的应用的开发。Oracle ADF包括一组带有内嵌的Ajax功 能性的基于标准的Java Server Faces(JSF)组件。利用这些组件,可以用以前为胖客户端 应用预留的一定水平的功能性和交互性来开发web部署的用户界面。组件在一组易于使用 的组件中提供数据交互、数据可视化、以及封装的浏览器侧操作,这些组件提供非常有效的 并且高效的客户端应用开发。
[0002] 这样的开发平台常常使用web服务规范语言,诸如web服务描述语言(WSDL),来实 现应用的web服务。web服务的WSDL描述(也被称为WSDL文件)提供如何调用服务、它预 期什么参数、以及它返回什么数据结构的机器可读的描述。因此,连接到web服务的客户端 程序可以读取WSDL文件来确定什么操作在服务器上可用。
[0003] 当消耗web服务时,一般有两种方式来消耗服务:
[0004] ?基于web服务WSDL生成web服务代理,然后基于代理类构建数据控件。
[0005] ?直接基于WSDL生成数据控件。
[0006] 在自底向上开发的服务的情况下,WSDL可以在不同的应用服务器上不同。在这种 类型的开发中,首先编写Java类,然后基于这些类生成WSDL。生成是在服务将被部署到的 平台上完成的(利用不同的生成工具),如此,所产生的WSDL可以不同。例如,相同消息可 以对应于不同的WSDL中的元件的不同的名称。在某些情况下,消息的整个结构也不同。
[0007] 对于这些不同的WSDL(实际表示相同或类似的服务)中的每一个,生成不同的代 理或生成不同的数据控件。如果将直接使用这些WSDL,则它可以导致重复的数据控件以及 潜在地重复的表单。这是不利的,因为不希望管理相同数据控件的多个版本。此外,如果引 入新平台,则应用将要求用于新WSDL的再一个数据控件和使用该数据控件的新表单。另 夕卜,当将数据控件直接基于WSDL时,数据控件属性被限制于仅该WSDL的字段和方法。
[0008] 因此,需要解决现有方法的这些问题的改善的方法、系统以及计算机程序产品。


【发明内容】

[0009] 本发明提供了方法、系统以及计算机程序产品,用于实现为使用多个web服务规 范语言的多个平台开发web服务的方法。
[0010] 本发明的一些实施例通过提供降低实现重复的数据控件的要求的公用数据层来 解决上述问题。在一些实施例中,公用数据层包括充当应用的数据模型的公用类层次结构。 公用类层次结构包括表示每一 web服务的数据输入和输出的类,其可以是Java类。这些类 可以独立于任何特定web服务规范语言或业务服务代理。
[0011] 公用数据层可以将多个web服务规范语言中的每一个的类映射到公用类层次结 构。在一些实施例中,可以有多个基于每一 web服务规范语言生成的web服务代理,其中, 公用数据层将每一代理的类映射到公用类层次结构。
[0012] 可以在公用类层次结构的类之上创建数据控件,其中,数据控件使用通过公用数 据层从web服务规范语言接收到的数据来生成页面。然后创建与数据控件进行交互的页面 和表单。在其中web服务被移动应用消耗的一些实施例中,这些页面可以是移动应用页面。
[0013] 代理的类和公用数据层之间的映射在两个对象之间传输数据。如此,公用数据层 提供全部数据控件都基于其的公用数据接口。通过调用基于不同代理的配置,处理web服 务规范语言和公用类之间的技术差异。对于可以由多个web服务规范语言所定义的应用, 数据控件和移动表单和页面流可以是相同的,无论后端业务服务正在运行哪个应用服务 器。
[0014] 在一些实施例中,每一 web服务创建其自己的公用数据层。在一些实施例中,具有 类似的数据和行为的web服务可以共享单个公用数据层。
[0015] 在一些实施例中,可以通过用另外的映射修改公用数据层来添加使用新web服务 规范语言的新平台。
[0016] 可选地,此方法还为另外的数据和方法提供位置,所述另外的数据和方法可能被 需要以支持应用,但是不必定由web服务提供。
[0017] 在一些实施例中,使用公用数据层以生成与将启用web服务的页面相关联的类的 实例、并标识将被使用的web服务规范语言和服务而开始。通过通过代理向其中部署了 web 服务的服务器发送有效负载,可以在服务和公用类对象之间传输数据。然后,服务器接收、 处理有效负载并对其进行响应,其通过代理被发送回去并映射回到公用数据层。可以使用 数据控件和传输的数据来创建页面。
[0018] 下面将在详细描述、附图以及权利要求中描述本发明的各方面、目标以及优点的 进一步的细节。前面的一般性描述和下面的详细描述只是示例性和说明性的,并非旨在对 本发明的范围形成限制。

【专利附图】

【附图说明】
[0019] 图1A示出了用于为使用多个web服务规范语言的多个平台实现web服务的一个 可能的方法的示例。
[0020] 图1B示出了本发明的一些实施例。
[0021] 图2示出了根据本发明的实施例的用于实现公用数据层的系统。
[0022] 图3示出了根据本发明的实施例的用于实现公用数据层的方法的流程图。
[0023] 图4示出了根据本发明的实施例的用于使用公用数据层的方法的流程图。
[0024] 图5描绘了在其上可以实现本发明的实施例的计算机化系统。

【具体实施方式】
[0025] 下面参考附图来描述各实施例。应当指出的是,附图不是按比例绘制的,类似的结 构或功能的元件在各附图中通过相同参考编号来表示。应当指出的是,附图只旨在便利于 对实施例的描述。它们不旨在作为对本发明的详尽描述或作为对本发明范围的限制。另 夕卜,所示出的实施例不必具有所示出的全部方面或优点。结合特定实施例描述的方面或优 点不必定仅限于该实施例,并可以在任何其他实施例中实施,即使没有如此示出。而且,在 本说明书中对"一些实施例"或"其他实施例"的引用意味着,结合实施例所描述的特定特 征、结构、材料或特性包括在至少一个实施例中。如此,在整个说明书中的不同位置出现的 短语"在一些实施例中"或"在其他实施例中"不必定都是指相同的实施例。另外,为了说 明和解释,以在ADF应用的上下文中的各实施例描述了本公开内容。然而,应当注意,本发 明的范围不仅限于ADF应用,实际上,还可以应用于其他类型的应用。
[0026] 如上文所指出的,即使在业务服务的行为和数据模型相同的情况下,在不同的 Java 2平台企业版(J2EE)应用服务器上运行的业务服务也可以产生不同的WSDL文件。 WSDL是业务服务和其消费者之间的技术性合同。取决于消费者的系统,需要应用(例如ADF 移动应用)消耗在不同的业务服务服务器上运行的业务服务。在一些实施例中,这些平台 可以是WebLogic服务器(WLS)或WebSphere应用服务器(WAS)。由于不同的WSDL文件,支 持ADF移动应用中的多个业务服务服务器在技术上是有挑战的。
[0027] 图1A示出了用于为使用多个web服务规范语言的多个平台实现web服务的一个 可能的方法的示例。图1A示出了在多个应用服务器上运行的web服务,其中应用服务器使 用多个不同的WSDL 101A和101B。可以基于WSLD 101A和101B中的每一个生成web服务 代理102A和102B。
[0028] 生成数据控件103A和103B,以便消耗web服务。数据控件103A和103B可以基 于代理类102A和102B。在其他实施例中,可以直接基于WSDL 101A和101B生成数据控件 103A和103B。然后,可以创建与数据控件103A和103B进行交互的移动应用页面和表单 104A 和 104B。
[0029] 在此方法中,对于每一不同的WSDL,需要完全不同的代理和数据控件,尽管事实是 WSDL的基础服务可以是类似的或者甚至完全相同。这样的系统有许多缺点。直接使用WSDL 导致不得不创建重复的数据控件和潜在地重复的表单。当需要修改服务时,这导致困难。 例如,如果修改数据控件103A,则还需要修改数据控件103B,以便页面104A和104B保持一 致。
[0030] 系统还使添加新平台变得困难,因为添加带有新WSDL的新平台需要创建新的数 据控件。例如,如果将添加使用WSDL 101C和代理类102C的新平台,则需要创建全新的数 据控件103C和页面104C,即使页面104A、104B以及104C都旨在表示来自相同web服务的 相同或非常类似的数据。另外,此系统将每一数据控件的属性限制到数据控件所对应于的 特定WSDL的字段和方法。例如,数据控件103A限于WSDL 101A的字段和方法,并且不可以 利用可能存在于WSDL 101B和101C中的任何不同的字段和方法。
[0031] 本发明的一些实施例通过提供降低实现重复的数据控件的要求的公用数据层,在 不同的层/组件之间创建松散耦合的体系结构以最小化层/组件之间的依赖关系,来解决 上述问题。例如,对创建与在特定应用服务器上运行的特定WSDL文件紧耦合的表单进行代 替地,提供抽象层。抽象层是屏蔽不同的WSDL文件之间的技术差异的一般数据模型。页面 和表单构建于此数据模型之上。基于一些配置,数据模型调用不同的业务服务代理,以调用 要么在WLS上要么在WAS上运行的业务服务。
[0032] 图1B示出了使用公用数据层105的本发明的实施例。公用数据层105包括表示 每一 web服务的数据输入和输出的简单类,诸如Java类。然后,基于这些类创建数据控件 103。
[0033] -般而言,创建公用类层次结构(例如一组Java类)用于每一特定移动应用,充 当移动应用的数据模型。这些类独立于任何特定的WSDL 101或业务服务代理102。然后, 在这些类之上创建数据控件103。然后,创建与数据控件103进行交互的移动页面和表单 104。
[0034] 代理102A-C的类和公用数据层105之间的映射在两个对象之间传输数据。如此, 公用数据层105提供全部数据控件均基于其的公用数据接口。通过调用基于不同代理的配 置,处理WSDL 101A-C和公用类之间的技术差异。这意味着,数据控件103和ADF移动表单 和页面流104相同,无论后端业务服务正在运行哪个应用服务器。
[0035] 此方法基本上对正在被处理到web服务中和/或从web服务中出来的数据的内容 进行匹配,形成在WSDL 101A-C和数据控件103之间的抽象层。在一些实施例中,每一移动 应用都创建其自己的抽象数据模型,因为数据和行为对于每一移动应用都是不同的。在一 些实施例中,带有类似的数据和行为的移动应用可以共享单个抽象数据模型。例如,用于处 理费用报告的两个不同的移动应用可以使用相同数据映射中的许多,如此,两者都能够使 用单个公用数据层。
[0036] 此方法提供显著的优点,因为不再需要构建单独的代理和数据控件用于每个 WSDL。此方法的另一好处是,由于它基于松散耦合的体系结构构建,因此它使得当将来需要 更改时的影响最小化。应用现在对可以具有不同WSDL表示的新平台是绝缘的。添加使用新 WSDL的新平台只要求用新映射修改公用数据层,而不是需要创建全新的代理和数据控件以 用于为新WSDL生成新页面。另外,此方法还提供位置用于另外的数据和方法106,另外的数 据和方法106可以被需要以支持应用,但是不必定由web服务来提供。这些可以包括计算 出的值、总计和用户输入,以及可以从其他服务接收到的另外的数据或属性。不直接从WSDL 或代理构建数据控件允许此绝缘,并提供具有有用的属性以及能力的层。
[0037] 图2示出了根据本发明的一些实施例的用于实现公用数据层的系统的体系结构。 系统可以包括在一个或多个用户站201A处、一个或多个平板设备201B处或一个或多个移 动电话设备201C处的一个或多个用户。用户对系统进行操作以使用应用来访问在应用服 务器202上的业务服务207,应用服务器202可以访问数据库203来实现业务服务207。业 务服务207可以由多个不同的WSDL 206来表示。
[0038] 在此系统中,用户站201A包括可以被用来与服务器操作或与其相接口的任何类 型的计算站。这样的用户站的示例包括例如工作站、个人计算机、膝上型计算机或远程计算 终端。平板设备201B包括任何类型的便携式平板设备,包括例如平板电脑、便携式阅读器 等等。移动电话设备201C包括可以适当地访问应用服务器上的应用的任何移动设备,诸如 智能电话和可编程移动手持终端。值得注意的是,本发明在其应用方面不限于仅这些类型 的设备。
[0039] 在服务器202处提供公用数据接口 204,以生成应用页面205 (例如移动应用页 面)用于在用户站、平板或移动设备201A-C处显示。公用数据接口 204包括公用数据层和 数据控件。多个WSDL A、B和C(206)可以与公用数据接口 204的公用数据层和数据控件 结合使用,以生成移动应用页面205,而并非要求单独的代理和数据控件用于每个WSDL A、 B和C。
[0040] 用户站、平板设备和移动电话201A-C包括诸如显示监视器或显示屏之类的显示 设备。用户站、平板设备和/或移动设备201A-C还可以包括一个或多个输入设备,诸如鼠 标、触摸屏、小键盘或键盘,以供用户提供对系统的活动提供操作性控制。用户站、平板设备 和/或移动设备的用户对应于使用系统来远程访问应用服务器上的应用的任何个人、机构 或其他实体。
[0041] 数据库203对应于任何类型的计算机可读介质或存储设备。计算机可读存储设备 包括允许对数据库内的数据的现成访问的硬件和软件的任何组合。例如,计算机可读存储 设备可被实现为由操作系统操作地管理的计算机存储器或盘驱动器。
[0042] 图3示出了实现公用数据层的方法的流程图。通过首先在301处创建公用类层次 结构(例如Java类层次结构)用于移动应用以充当数据模型,来执行过程。这些类将基于 希望在移动表单和页面上使用、并独立于任何特定的WSDL或业务服务代理的字段和数据。
[0043] 接下来,在302处创建数据控件用于公用类。然后,创建与数据控件进行交互的移 动表单。因此,在303处创建映射,该映射将代理类映射到公用类,其中新公用数据层提供 公用数据接口,数据控件将基于该公用数据接口。通过调用基于不同代理的配置,处理WSDL 和公用类之间的技术差异。这意味着,数据控件和移动表单和页面流相同,不管后端业务服 务正在哪个应用服务器上运行。
[0044] 图4示出了使用公用数据层的方法的流程图。过程在401处开始,生成与将启用 web服务的页面相关联的类的实例,并基于配置标识将被使用的服务和WSDL。
[0045] 接下来,在402处,基于以前配置的映射,在服务和公用类对象之间传输数据。为 此,通过代理向其中部署了 web服务的服务器发送有效负载。在一些实施例中,有效负载是 XML文档的形式。然后,服务器接收、处理有效负载并对其进行响应,其通过代理发送回去并 映射回到公用数据层。此时,在项目403处可以使用数据控件和所传输的数据来创建页面。
[0046] 因此,所描述的是解决从应用消耗web服务的改善的方法,其中提供了降低实现 重复的数据控件的要求的公用数据层。
[0047] 系统体系结构总览
[0048] 图5是适用于实现本发明的实施例的说明性计算系统1400的框图。计算机系统 1400包括总线1406或用于传递信息的其他通信机制,它们互连子系统和设备,诸如处理器 1407、系统存储器1408 (例如RAM)、静态存储设备1409 (例如ROM)、盘驱动器1410 (例如磁 或光的)、通信接口 1414 (例如调制解调器或以太网网卡)、显示器1411 (例如CRT或IXD)、 输入设备1412 (例如键盘)、以及光标控制。
[0049] 根据本发明的一个实施例,计算机系统1400通过处理器1407执行包含在系统存 储器1408中的一个或多个指令的一个或多个序列,来执行特定的操作。这样的指令可以从 另一计算机可读/可用介质(诸如静态存储设备1409或盘驱动器1410)读取到系统存储 器1408中。在另选实施例中,可以使用硬连线(hard-wired)的电路系统来代替软件指令 或与软件指令相组合来实现本发明。如此,本发明的实施例不限于硬件电路系统和/或软 件的任何特定的组合。在一个实施例中,术语"逻辑"应该表示用于实现本发明的全部或一 部分的软件或硬件的任何组合。
[0050] 此处所使用的术语"计算机可读介质"或"计算机可用介质"是指参与向处理器 1407提供指令以用于执行的任何介质。这样的介质可以采取许多形式,包括但不仅限于非 易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,诸如盘驱动器1410。易失 性介质包括动态存储器,诸如系统存储器1408。
[0051] 计算机可读介质的常见形式包括例如软盘、软磁盘、硬盘、磁带、或任何其他磁介 质、CD-ROM、任何其他光学介质、穿孔卡片、纸带、具有孔的图案的任何其他物理介质、RAM、 PROM、EPROM、FLASH-EPR0M、任何其他存储器芯片或盒式磁盘、或计算机可以从其中读取的 任何其他介质。
[0052] 在本发明的实施例中,实施本发明的指令序列的执行是由单个计算机系统1400 执行的。根据本发明的其他实施例,由通信链路1415(例如LAN、PTSN或无线网络)耦合的 两个或更多计算机系统1400可以彼此协调地执行实施本发明所需的指令序列。
[0053] 计算机系统1400可以通过通信链路1415和通信接口 1414来传送和接收消息、数 据和指令,包括程序(即应用代码)。接收到的程序代码可以在其被接收时由处理器1407 执行,以及/或者存储在盘驱动器1410或其他非易失性存储器中用于以后执行。
[0054] 在前述的说明书中,参考其特定的实施例描述了本发明。然而,明显的是,在不偏 离本发明的较广泛的精神和范围的情况下,可以作出各种修改和变型。例如,参考过程动作 的特定顺序描述了上文所描述的过程流程。然而,在不影响本发明的范围或操作的情况下, 可以更改许多所描述的过程动作的顺序。相应地,说明书和附图被视为说明性的而不是限 制性的。
【权利要求】
1. 一种用于为使用多个web服务规范语言的多个平台开发web服务的方法,包括下列 步骤: 创建公用数据层,其中,所述公用数据层将所述多个web服务规范语言中的每一个的 类映射到公用类层次结构; 至少部分地基于所述公用类层次结构来创建多个数据控件,其中,所述数据控件使用 通过所述公用数据层从所述web服务规范语言接收到的数据以生成页面;以及 使用所述数据控件来生成多个页面。
2. 如权利要求1所述的方法,其中,所述多个web服务规范语言是Web服务描述语言 (WSDL)。
3. 如权利要求1所述的方法,其中,所述多个web服务规范语言中的每一个都定义相同 的web服务。
4. 如权利要求1所述的方法,包括下列另外的步骤: 基于每个web服务规范语言,生成web服务代理;以及 其中,所述公用数据层将每个代理的类映射到所述公用类层次结构。
5. 如权利要求1所述的方法,其中,所述公用类层次结构包括一组Java类。
6. 如权利要求1所述的方法,包括下列另外的步骤: 通过用另外的映射修改所述公用数据层,来添加使用不同的web服务规范语言的新平 台。
7. 如权利要求1所述的方法,其中,所述多个页面是移动应用页面。
8. 如权利要求1-7所述的方法,实现为系统,所述系统具有用于实现所述方法的步骤 的装置。
9. 如权利要求1-7所述的方法,实现为计算机程序产品,所述计算机程序产品包括具 有执行所述方法的步骤的可执行代码的计算机可用存储介质。
【文档编号】G06F15/16GK104221002SQ201380014488
【公开日】2014年12月17日 申请日期:2013年1月30日 优先权日:2012年1月31日
【发明者】N·J·劳伦特, D·W·诺瓦科沃斯基, M·埃德 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1