首页> 中国专利> 在云环境中管理复杂对象的方法及系统

在云环境中管理复杂对象的方法及系统

摘要

本发明公开了一种在云环境中管理复杂对象的方法和相应的系统。在该方法中,首先,获取复杂对象的对象模型,其中对象模型至少包括描述复杂对象的约束、属性和方法的信息。其次,分析对象模型,以确定所需的与对象模型相映射的至少一个数据存储和表示用于访问复杂对象的对象服务接口的至少一个数据服务。然后,根据所需的至少一个数据存储和至少一个数据服务,在云环境中产生用于复杂对象的至少一个数据存储和至少一个数据服务。

著录项

  • 公开/公告号CN104252345A

    专利类型发明专利

  • 公开/公告日2014-12-31

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201310261714.3

  • 申请日2013-06-27

  • 分类号G06F9/44;

  • 代理机构北京市中咨律师事务所;

  • 代理人刘薇

  • 地址 美国纽约

  • 入库时间 2023-12-17 02:39:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-18

    授权

    授权

  • 2015-01-21

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20130627

    实质审查的生效

  • 2014-12-31

    公开

    公开

说明书

技术领域

本发明涉及交互式系统(System of Engagement)应用,具体地说,涉及在 云环境中管理用于交互式系统应用的复杂对象(complex object)的方法及系统。

背景技术

在诸如微博系统、移动银行等交互式系统应用中,诸如用户、微博、评论 等的对象是复杂的。例如,对象的数据格式是变化多端的,可包括结构数据 (structure data)/非结构数据(un-structure data)、纯文本数据/多媒体数据。另 外,对象之间可具有某种关系。例如,对象“用户”可以具有对象“微博”,对象“ 微博”可以具有对象“评论”。此外,随着交互式系统应用的发展,对象的数据结 构可能会改变,并且对象的数据也将迅速地增长。

现在通过一个例子来说明交互式系统应用中的对象。例如,在移动银行这 一交互式系统应用中,用户John和基金New Energy是对象。用户John是VIP 客户,其关注了基金New Energy。对于基金New Energy定义了规则,即如果 投资回报率超过25%,则通知关注了它的VIP客户。这样,用户John和基金 New Energy之间具有“关注”关系,并且当基金New Energy的投资回报率超过 25%时,用户John将收到通知。

由于交互式系统应用中对象的上述特征,因此,如何在云环境中描述、管 理和使用这样的对象是具有挑战性的。

在现有技术中,通常由编程人员在编写交互式系统应用的程序时定义对象, 并且如果交互式系统应用的程序在云环境中执行,则还需要手动地产生具有数 据存储的虚拟机。具体地,首先定义对象的数据结构,并将与对象有关的数据 映射到不同的数据存储,然后编写程序以存储和获取数据。可以看出,由于预 先在程序中定义了对象并生成对象的数据到数据存储的映射,因此,如果对象 的数据结构发生改变,则需要修改交互式系统应用的程序。这种定义和管理对 象的方法非常不灵活。

此外,还提出了基于已有平台提供简单接口以管理交互式系统应用的对象 的方法,其可通过向用户提供例如图形用户接口来管理对象。该图形用户接口 可由用户定义对象和动作。然而,该接口必须基于已有的交互式系统应用的平 台,并且只能提供有限的能力。

发明内容

根据本发明的一个方面,提供了一种在云环境中管理复杂对象的方法,包 括:获取所述复杂对象的对象模型,所述对象模型至少包括描述所述复杂对象 的约束、属性和方法的信息;分析所述对象模型,以获得与所述对象模型相映 射的至少一个数据存储和表示用于访问所述复杂对象的对象服务接口的至少一 个数据服务;以及根据所映射的至少一个数据存储和所获得的至少一个数据服 务,在所述云环境中产生用于所述复杂对象的至少一个数据存储和至少一个数 据服务。

根据本发明的另一个方面,提供了一种在云环境中管理复杂对象的系统, 包括:获取装置,其被配置为获取所述复杂对象的对象模型,所述对象模型至 少包括描述所述复杂对象的约束、属性和方法的信息;分析装置,其被配置为 分析所述对象模型,以获得与所述对象模型相映射的至少一个数据存储和表示 用于访问所述复杂对象的对象服务接口的至少一个数据服务;以及产生装置, 其被配置为根据所映射的至少一个数据存储和所获得的至少一个数据服务,在 所述云环境中产生用于所述复杂对象的至少一个数据存储和至少一个数据服 务。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以 及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中, 相同的参考标号通常代表相同部件。

图1表示根据本发明一实施例的云计算节点;

图2表示根据本发明一实施例的云计算环境;

图3表示根据本发明一实施例的抽象模型层;

图4是根据本发明的一个实施例的在云环境中管理复杂对象的方法的示意 性流程图;

图5示出了根据本发明的实施例的复杂对象的示例性示意图;

图6是图4所示的方法中分析复杂对象的对象模型的步骤的示意性流程图;

图7是图4所示的方法中产生数据存储和数据服务的步骤的示意性流程图;

图8是通过本发明的实施例的方法而产生的用于复杂对象的数据存储和数 据服务的虚拟机结构的示意图;

图9是根据本发明的另一个实施例的在云环境中管理复杂对象的方法的示 意性流程图;

图10是根据本发明的一个实施例的在云环境中管理复杂对象的系统的示意 性方框图;

图11是根据本发明的一个实施例的在云环境中管理复杂对象的系统的示意 性方框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了 本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被 这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透 彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技 术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何 其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、 按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进 行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务 器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个 特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下 能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机 制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上 型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模 式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再 分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置, 但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置 无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现 快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算 能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和 活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可 以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运 行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮 件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外, 消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用 能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创 建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费 者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构, 但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并 运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。 消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署 的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控 制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第 三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务 使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内 的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共 云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准 化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定 在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意 的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点 10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范 围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的 任何功能。

云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算 系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作 的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计 算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机 顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系 统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令 (诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任 务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据 结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行 任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于 包括存储设备的本地或远程计算系统存储介质上。

如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的 形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处 理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器 28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控 制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线 结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构 (ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标 准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以 是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易 失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随 机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可 以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。 仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1 未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移 动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光 盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些 情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储 器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序 模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器 28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、 其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络 环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设 备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服 务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个 其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种 通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还 可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网 (WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过 总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出, 其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于: 微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带 驱动器以及数据备份存储系统等。

现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境 50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云 计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A, 台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之 间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云 或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或 虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就 能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/ 或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示 意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可 寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。 首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实 施例不限于此。如图3所示,提供下列层和对应功能:

硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如 系统;基于RISC(精简指令集计算机)体系结构的服务器,例 如系统;系统;系统;存储设备; 网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM 应用服务器软件;数据库软件,例如数据库软件。(IBM, zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司 在全世界各地的注册商标)。

虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务 器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚 拟客户端。

在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在 云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能: 在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个 例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供 身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理 员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管 理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据 SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供 的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理; 虚拟教室的教学提供;数据分析处理;交易处理;以及根据本发明的实施例的 复杂对象的管理。

图4示出了根据本发明的一个实施例的在云环境中管理复杂对象的方法的 示意性流程图。下面结合附图对本实施例进行详细描述。

在以下的实施例中,使用“复杂对象”表示描述交互式系统应用中的实体的 对象。在描述复杂对象时,除了使用传统的属性和方法以外,还可使用约束。 在此,约束是指对复杂对象的属性、方法或复杂对象本身的限制或修饰。此外, 在描述复杂对象时,还可以使用关系和/或条件-动作,其中,关系描述了复杂 对象相对其它复杂对象的关系,条件-动作描述了在一定条件下的复杂对象的操 作。在交互式系统应用中,复杂对象可以持续发展,表现在增长的数据和变化 的结构。

如图4所示,在步骤S401,获取用于交互式系统应用的复杂对象的对象模 型。在复杂对象的对象模型中,可包括描述复杂对象的约束、属性和方法的信 息。可选地,在对象模型中还可以包括描述复杂对象的关系和条件-动作中的至 少一个的信息。

在本实施例中,复杂对象可以使用声明性编程语言来描述,例如,具有注 释的面向对象的语言,从而建立复杂对象的对象模型。例如,可以使用“类”描 述复杂对象,使用“属性”和“方法”描述复杂对象的属性和方法,使用“注释”描 述复杂对象的约束、关系、条件-动作。

复杂对象的属性用于描述复杂对象的性质,其可以使用诸如整型(int)、字 符串型(string)、字符型(char)、日期/时间、浮点型(float)、参考型(reference) 的简单类型的数据,也可以使用诸如XML(可扩展标记语言)、JSON (JavaScriptObjectNotation,一种轻量级的数据交换格式)、视频/音频、图像的 复杂类型的数据,还可以使用诸如空间数据、列表、表、结构的组合类型的数 据。

复杂对象的方法用于描述复杂对象的行为,其可以是任何可编程逻辑的描 述。在复杂对象的模型中,必须提供方法以操作使用复杂类型或组合类型的数 据的属性。

复杂对象的约束用于描述对复杂对象的属性、方法或复杂对象本身的限制 或修饰。约束可包括复杂对象的属性的可搜索性(Search-able)、复杂对象的可 关注性(follow-able)、复杂对象的可标签性(tag-able)、复杂对象的可评论性 (comment-able)和复杂对象的可定位性(locatable)。

如果复杂对象的某一属性具有可搜索性的约束,则表明复杂对象可基于该 属性而被搜索。在这种情况下,该属性将被建立索引。

如果复杂对象具有可关注性的约束,则表明复杂对象可被其它对象关注, 并与作为关注者的对象之间存在关系。在这种情况下,复杂对象可具有特定属 性以存储关注者列表,并可具有访问和/或通知关注者的方法。

如果复杂对象具有可标签性的约束,则表明复杂对象可被标记标签,在这 种情况下,复杂对象可具有处理标签(例如添加、删除标签)的属性和方法, 并具有通过标签被添加、访问和搜索的方法。

如果复杂对象具有可评论性的约束,则表明复杂对象可被评论,在这种情 况下,复杂对象可具有处理评论(例如,添加、删除评论)的方法和/或属性。

如果复杂对象具有可定位性的约束,则表明复杂对象可被确定位置,在这 种情况下,复杂对象可具有存储位置的属性,并可具有访问位置的方法。

复杂对象的关系用于描述与其它对象之间的关系,可通过使用参考型数据 的属性来描述。

复杂对象的条件-动作用于描述在一定条件下的复杂对象的操作,其可使用 例如“如果<条件>,则<动作>”的格式来描述,其中“<条件>”可以是布尔表达 式,“<动作>”可以是脚本或复杂对象的方法的调用。

图5示出了根据本发明的实施例的复杂对象的示例性示意图。在该例子中, 以移动银行为例,有两个复杂对象“人John”和“基金New Energy”。如图5所 示,复杂对象“人John”具有属性“姓名”、“出生日期”和“图像”、方法“上传图 像”、约束“可搜索性[姓名]”和关系“关注基金New Energy”。复杂对象“基金 New Energy”具有属性“名称”、“价格”和“投资回报率ROI”、方法“添加关注”、 “投资回报率变化ROIChange”、约束“可搜索性[名称]”、“可关注性”、关系“ 关注者:人John”、条件-动作“如果ROI变化,则调用方法“ROIChange””。

如前所述,可以使用声明性语言来建立复杂对象的对象模型。下面给出用 于定义上述的复杂对象“基金”的代码的例子,其中,在属性中定义了使用字符 串型数据的“名称”、使用双精度型(double)数据的“投资回报率ROI”、使用 文本的“描述”、记录关注了复杂对象“基金”的其它复杂对象的“关注者”、使用 视频数据的“简报(briefing)”;在约束中定义了针对属性“名称”和“描述”的“可 搜索性”、可标签性、可评论性和可关注性;此外,在条件-动作中定义了“如果 ROI超过25%且用户在关注者中且用户类别是VIP,则通知用户”。

因此,通过复杂对象“人John”和“基金New Energy”的对象模型,描述了 人(用户)John可登录到移动银行的门户网页,浏览基金并关注了基金New  Energy。当基金New Energy的投资回报率超过25%时,人John可接收到通知。

返回到图4,在获取了复杂对象的对象模型后,在步骤S410,分析在步骤 S401中获取的对象模型,以确定所需的与对象模型相映射的至少一个数据存储 和表示用于访问复杂对象的对象服务接口的至少一个数据服务。

图6示出了分析步骤S410的示意性流程图。如图6所示,在步骤S601, 从对象模型中提取元数据,元数据是描述对象模型的结构的数据。这样,可以 获得对象模型中作为元数据的属性的名称及其数据类型以及约束。

接着,在步骤S605,根据所提取的元数据,建立对象模型的属性到相应的 数据存储的映射。通过该映射,可以确定将要用于复杂对象的数据存储。

在该映射步骤中,首先,在步骤S6051,根据所提取的元数据,确定属性 是结构化数据、半结构化数据、非结构化数据、空间数据和需检索的文本数据 中的任意一种。如上所述,元数据中包含属性的数据类型,则可以根据数据类 型,确定属性是结构化数据、半结构化数据、非结构化数据、空间属性数据和 需检索的文本数据中的哪一种。例如,整型数据、浮点型数据、双精度型数据、 参考型数据等属于结构化数据,XML数据、HTML文档等属于半结构化数据, 文本数据、音频数据、视频数据、图像数据等属于非结构化数据。此外,当复 杂对象具有“可定位性”约束时,相应的关于位置的属性是空间数据。当复杂对 象的某个属性具有“可搜索性”约束时,该属性是需检索的文本数据。

然后,在确定属性是结构化数据的情况下,则在步骤S6052,响应于属性 被确定为是结构化数据,该属性被映射到关系型数据库。因此,关系型数据库, 例如RDBMS数据库,成为复杂对象的数据存储之一。

在确定属性是半结构化数据的情况下,则在步骤S6053,响应于属性被确 定为是半结构化数据,该属性被映射到非关系型数据库。因此,非关系型数据 库,例如NoSQL数据库,成为复杂对象的数据存储之一。

在确定属性是非结构化数据的情况下,则在步骤S6054,响应于属性被确 定为是非结构化数据,该属性被映射到对象存储系统。因此,对象存储系统成 为复杂对象的数据存储之一。

在确定属性是空间数据的情况下,则在步骤S6055,响应于属性被确定为 是空间数据,该属性被映射到空间数据库。因此,空间数据库成为复杂对象的 数据存储之一。

在确定属性是需检索的文本数据的情况下,则在步骤S6056,响应于属性 被确定为是需检索的文本数据,该属性被映射到索引数据库系统。因此,索引 数据库系统成为复杂对象的数据存储之一。

然后,在步骤S610,根据对象模型中的信息,确定至少一个对象服务接口, 作为复杂对象的数据服务。在一个实施例中,响应于描述复杂对象的属性的信 息,确定用于添加、删除、修改和查询属性的接口。接着,响应于描述复杂对 象的方法的信息,确定用于暴露开放函数(public method)的接口。然后,响 应于描述复杂对象的约束的信息,确定用于添加、获取和删除约束的接口。例 如,对于“可评论性”约束,可以确定诸如addComment()、getComments()、 deleteComment()的接口函数;对于“可标签性”约束,可以确定诸如addTag()、 getTag()、deleteTag()的接口函数。

返回到图4,在步骤S420,根据通过步骤S410确定的所需的至少一个数 据存储和至少一个数据服务,在云环境中产生用于复杂对象的至少一个数据存 储和至少一个数据服务。图7示出了步骤S420的示意性流程图。

在一个实施例中,如图7所示,首先,在步骤S701,根据所确定的所需的 至少一个数据存储,在云环境中选择相应的可用的数据存储。通常,在云环境 中注册了所有被支持的数据存储和数据服务,并建立了数据存储和数据服务的 目录。这样,可以根据目录选择与所需的至少一个数据存储响应的可用的数据 存储。例如,如果所需的数据存储是关系型数据库、非关系型数据库、对象存 储系统、索引数据库系统,则在云环境中选择可用的关系型数据库、非关系型 数据库、对象存储系统、索引数据库系统,作为复杂对象的数据存储。

可选地,在选择了可用的数据存储后,可以在步骤S703,对所选择的可用 的数据存储中的至少一个,执行关于高可用性的优化。通过高可用性的优化, 确保数据存储的高度可用性。在一个实施例中,可以对数据存储建立多个备份 数据存储,从而提高数据存储的高可用性。该实施例尤其适用于对象存储系统。 在另一个实施例中,对于MySQL数据库,可以使用MySQL集群技术以提供高 可用性。

接着,在步骤S705,对于所选择的可用的数据存储,生成各数据存储的存 储结构。例如,对于SQL数据库,其存储结构包括数据库连接、表名称。对于 NoSOL数据库,其存储结构包括连接信息和连接名称。对于本领域的普通技术 人员来说,云环境中的各种类型的数据存储的存储结构的生成是已知的,在此 省略相应的说明。

然后,在步骤S710,根据所需的至少一个数据服务,产生相应的对象服务 接口。如前所述,对象服务接口可包括针对属性的接口、针对方法的接口以及 针对约束的接口。通过所产生的对象服务接口,可以访问所产生的数据存储以 对所存储的数据进行操作。

所产生的数据存储和数据服务可采用虚拟机的方式呈现,从而对复杂对象 产生具有数据存储和数据服务的虚拟机结构。图8示出了这种虚拟机结构的一 个例子的示意图。在该例子中,如图8所示,虚拟机VM1、VM2、VM3代表 三种数据存储,虚拟机VMX表示数据服务,VM A和VM B代表对某种类型 的复杂对象提供的数据服务。对于不同的复杂对象,数据服务可采用数据服务 联合的方式来提供。

本领域的普通技术人员能够理解,图8仅仅是虚拟机结构的一个例子的示 意图,也可以采用其它的虚拟机结构。例如,VM A和VM B上的数据服务可 以位于同一个虚拟机上。

通过以上描述可以看出,本实施例的管理复杂对象的方法扩展了用于交互 式系统应用的复杂对象的对象模型,并且能够简单且灵活地对复杂对象产生数 据存储和数据服务。

图9示出了根据本发明的另一个实施例的在云环境中管理复杂对象的方法 的示意性流程图。下面结合附图,对本实施例进行详细描述,其中,对于与前 面实施例相同的部分,付与相同的附图标记并适当省略其说明。

图9所示的实施例的方法在图4所示的实施例的方法的基础上,增加了在 对象模型发生变化时对数据存储和数据服务的更新的操作。

如图9所示,在步骤S901,监控复杂对象的对象模型是否发生变化。在此, 假定对象模型的变化是与原对象模型兼容的。在本实施例中,对象模型的变化 可包括:增加新的信息(例如,描述新的属性的信息、描述新的约束的信息等)、 删除当前信息中的至少一个(例如,删除了描述某个属性的信息)或者修改了 当前信息中的至少一个(例如,修改了某个属性的数据类型等)。

接着,在步骤S905,响应于对象模型的变化,更新用于复杂对象的原数据 存储和原数据服务。在一个实施例中,首先,在步骤S9051,分析变化后的对 象模型,以确定所需的与对象模型的变化变化相映射的数据存储和新的数据服 务。该分析步骤与前面所述的分析步骤S410相同,在此省略其说明。接着,在 步骤S9052,根据在步骤S9051确定的所需的数据存储,产生新的数据存储。 该产生步骤与前面所述的步骤S420相同,在此省略其说明。然后,在步骤S9053, 将原数据存储中与所产生的新的数据存储是相同类型的数据存储中的数据迁移 到新的数据存储中。例如,如果对象模型的变化导致增加了新的属性(其数据 类型例如是整型),则针对该变化将产生新的数据存储,例如,新的关系型数据 库,然后,原数据存储中的关系型数据库中的数据被迁移到新的关系型数据库 中。接着,在步骤S9054,将原数据服务修改成新的数据服务,即用新的数据 服务替换原数据服务,并在步骤S9055,移除原数据存储中的所存储的数据被 迁移的数据存储和原数据服务。

通过以上描述可以看出,本实施例的管理复杂对象的方法能够进一步在复 杂对象的对象模型发生变化时自动更新相应的数据存储和数据服务,而无需修 改交互式系统应用的程序。

在相同的发明构思下,图10示出了根据本发明的一个实施例的在云环境中 管理复杂对象的系统1000的示意性方框图。下面结合附图,对本实施例进行详 细描述,其中对于与前面实施例相同的部分,适当省略其说明。

如图10所示,本实施例的系统1000包括:获取装置1001,其获取用于交 互式系统应用的复杂对象的对象模型,其中对象模型至少包括描述复杂对象的 约束、属性和方法的信息;分析装置1002,其分析所获取的对象模型,以确定 所需的与对象模型相映射的至少一个数据存储和表示用于访问复杂对象的对象 服务接口的至少一个数据服务;以及产生装置1003,其根据所需的至少一个数 据存储和至少一个数据服务,在云环境中产生用于复杂对象的至少一个数据存 储和至少一个数据服务。

可选地,复杂对象的对象模型还可包括描述复杂对象的关系和条件-动作中 的至少一个的信息。

在本实施例中,复杂对象的约束可包括属性的可搜索性、复杂对象的可关 注性、复杂对象的可标签性、复杂对象的可评论性、复杂对象的可定位性中的 至少一个。关于复杂对象的约束,在前面已经详细描述过,此处省略其说明。

在本实施例的系统1000中,在获取装置1001获取了复杂对象的对象模型 之后,分析装置1002对所获取的对象模型进行分析。

在一个实施例中,在分析装置1002中,提取模块10021从对象模型中提取 元数据,接着,映射建立模块10022根据所提取的元数据,建立对象模型中的 属性到相应的数据存储的映射,并且确定模块10023根据对象模型中的信息, 确定至少一个对象服务接口。

在一个实施例中,映射建立模块10022可包括:确定单元,其为根据所提 取的元数据,确定属性是结构化数据、半结构化数据、非结构化数据、空间属 性数据和需检索的文本数据中的任意一种;以及映射单元,其响应于属性被确 定为是结构化数据,将属性映射到关系型数据库;响应于属性被确定为是半结 构化数据,将属性映射到非关系型数据库;响应于属性被确定为是非结构化数 据,将属性映射到对象存储系统;响应于属性被确定为是空间数据,将属性映 射到空间数据库;以及响应于属性被确定为是需检索的文本数据,将属性映射 到索引数据库系统。

在一个实施例中,确定模块10023可被配置为响应于描述复杂对象的属性 的信息,确定用于添加、删除、修改和查询所述属性的接口,响应于描述复杂 对象的方法的信息,确定用于暴露开放函数的接口,以及响应于描述复杂对象 的约束的信息,确定用于添加、获取和删除所述约束的接口。

然后,产生装置1003根据通过分析装置1002获得的至少一个数据存储和 至少一个数据服务,产生用于复杂对象的至少一个数据存储和至少一个数据服 务。

在一个实施例中,在产生装置1003中,选择模块10031在云环境中选择与 所需的至少一个数据存储相应的可用的数据存储,并且生成模块10032对于所 选择的可用的数据存储,生成各自的存储结构,然后,产生模块10033根据所 需的至少一个数据服务,产生相应的对象服务接口。

可选地,产生装置1003还可包括优化模块,其对所选择的可用的数据存储 中的至少一个,执行关于高可用性的优化。

应当注意,本实施例的系统1000能够在操作上实现图4、图6和图7所示 的在云环境中管理复杂对象的方法。

图11示出了根据本发明的另一个实施例的在云环境中管理复杂对象的系 统1100的示意性方框图。下面结合附图,对本实施例进行详细描述,其中对于 与前面实施例相同的部分,付与相同的附图标记并适当省略其说明。

图11所示的系统1100在图10所示的系统1000的基础上,增加了监控装 置1101和更新装置1102,其中,监控装置1101监控对象模型是否发生变化, 更新装置1102响应于对象模型的变化,更新用于复杂对象的至少一个数据存储 和至少一个数据服务。

在一个实施例中,监控装置1101被配置为监控对象模型是否被增加了新的 信息、删除了原信息中的至少一个或者修改了原信息中的至少一个。

在一个实施例中,当对象模型发生了变化时,分析装置1002进一步分析变 化后的对象模型,以确定所需的与变化相映射的数据存储和新的至少一个数据 服务,然后,产生装置1003进一步根据所需的数据存储,产生新的数据存储。 接着,更新装置1102中的迁移模块11021将原数据存储中与新的数据存储是相 同类型的数据存储中的数据迁移到新的数据存储中,并且修改模块11022将原 数据服务修改成新的数据服务,然后移除模块11023移除原数据存储中所存储 的数据被迁移的数据存储和原数据服务。

应当注意,本实施例的系统1100能够在操作上实现图9所示的在云环境中 管理复杂对象的方法。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计 算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图 中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段 或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应 当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图 中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它 们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框 图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执 行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与 计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的, 并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的 情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。 本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场 中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露 的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号