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

文档序号:6504840阅读:186来源:国知局
在云环境中管理复杂对象的方法及系统的制作方法
【专利摘要】本发明公开了一种在云环境中管理复杂对象的方法和相应的系统。在该方法中,首先,获取复杂对象的对象模型,其中对象模型至少包括描述复杂对象的约束、属性和方法的信息。其次,分析对象模型,以确定所需的与对象模型相映射的至少一个数据存储和表示用于访问复杂对象的对象服务接口的至少一个数据服务。然后,根据所需的至少一个数据存储和至少一个数据服务,在云环境中产生用于复杂对象的至少一个数据存储和至少一个数据服务。
【专利说明】在云环境中管理复杂对象的方法及系统

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

【背景技术】
[0002] 在诸如微博系统、移动银行等交互式系统应用中,诸如用户、微博、评论等的对象 是复杂的。例如,对象的数据格式是变化多端的,可包括结构数据(Structure data)/非结 构数据(un-structure data)、纯文本数据/多媒体数据。另外,对象之间可具有某种关系。 例如,对象"用户"可以具有对象"微博",对象"微博"可以具有对象"评论"。此外,随着交 互式系统应用的发展,对象的数据结构可能会改变,并且对象的数据也将迅速地增长。
[0003] 现在通过一个例子来说明交互式系统应用中的对象。例如,在移动银行这一交互 式系统应用中,用户John和基金New Energy是对象。用户John是VIP客户,其关注了基 金New Energy。对于基金New Energy定义了规则,即如果投资回报率超过25%,则通知关 注了它的VIP客户。这样,用户John和基金New Energy之间具有"关注"关系,并且当基 金New Energy的投资回报率超过25%时,用户John将收到通知。
[0004] 由于交互式系统应用中对象的上述特征,因此,如何在云环境中描述、管理和使用 这样的对象是具有挑战性的。
[0005] 在现有技术中,通常由编程人员在编写交互式系统应用的程序时定义对象,并且 如果交互式系统应用的程序在云环境中执行,则还需要手动地产生具有数据存储的虚拟 机。具体地,首先定义对象的数据结构,并将与对象有关的数据映射到不同的数据存储,然 后编写程序以存储和获取数据。可以看出,由于预先在程序中定义了对象并生成对象的数 据到数据存储的映射,因此,如果对象的数据结构发生改变,则需要修改交互式系统应用的 程序。这种定义和管理对象的方法非常不灵活。
[0006] 此外,还提出了基于已有平台提供简单接口以管理交互式系统应用的对象的方 法,其可通过向用户提供例如图形用户接口来管理对象。该图形用户接口可由用户定义对 象和动作。然而,该接口必须基于已有的交互式系统应用的平台,并且只能提供有限的能 力。


【发明内容】

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

【专利附图】

【附图说明】
[0009] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0010]图1表不根据本发明一实施例的云计算节点;
[0011] 图2表示根据本发明一实施例的云计算环境;
[0012] 图3表示根据本发明一实施例的抽象模型层;
[0013] 图4是根据本发明的一个实施例的在云环境中管理复杂对象的方法的示意性流 程图; t〇〇14]图5示出了根据本发明的实施例的复杂对象的示例性示意图;
[0015]图6是图4所示的方法中分析复杂对象的对象模型的步骤的示意性流程图;
[0016]图7是图4所示的方法中产生数据存储和数据服务的步骤的示意性流程图;
[0017]图8是通过本发明的实施例的方法而产生的用于复杂对象的数据存储和数据服 务的虚拟机结构的示意图;
[0018]图9是根据本发明的另一个实施例的在云环境中管理复杂对象的方法的示意性 流程图;
[0019]图10是根据本发明的一个实施例的在云环境中管理复杂对象的系统的示意性方 框图;
[0020]图η是根据本发明的一个实施例的在云环境中管理复杂对象的系统的示意性方 框图。

【具体实施方式】
[0021]、下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整的传达给本领域的技术人员。
[0012]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案 的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环 境而实现。
[0023]、、云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能 快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟 机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0024] 特征包括:
[0025] 按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单 方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0026] 广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进 了通过不同种类的痩客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助 理PDA)对云的使用。
[0027] 资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服 务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况 下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上 指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0028] 迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
[0029] 可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户 帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资 源使用情况,为服务提供者和消费者双方提供透明度。
[0030] 服务模型如下:
[0031] 软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的 应用。可以通过诸如网络浏览器的痩客户机接口(例如基于网络的电子邮件)从各种客户机 设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括 网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0032]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或 获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不 控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制 权,对应用托管环境配置可能也具有控制权。
[0033]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包 括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也 不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网 络组件(例如主机防火墙)可能具有有限的控制权。
[0034] 部署模型如下:
[0035]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管 理并且可以存在于该组织内部或外部。
[0036]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安 全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管 理并且可以存在于该共同体内部或外部。
[0037]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0038] j昆合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组 成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于石之间的负载平衡的z?突发流量分担技术)绑定在一起。
[0039] 一云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操 作性。云计算的核心是包含互连节点网络的基础架构。
[0040]现在参考图L其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅 是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。 总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0041]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系 统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 一起操作的计算系统、 环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚 客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电 脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等 等。
[0042]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如 程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽 象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以 在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计 算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0043]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式 表现。计算机系统/服务器I2的组件可以包括但不限于:一个或者多个处理器或者处理单 元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。 [0044]总线I 8表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0045] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可 移动的和不可移动的介质。
[0046] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管图 1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器,以及对 可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些 情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以 包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被 配置以执行本发明各实施例的功能。
[0047] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中, 这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程 序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执 行本发明所描述的实施例中的功能和/或方法。
[0048]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设 备通信,和/或与使得该计算机系统/服务器 12能与一个或多个其它计算设备进行通信的 任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出( 1/〇)接口 22 进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如 局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器 2〇 通过总线I8与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它 硬件和^或软件模块可以与计算机系统/服务器 12 -起操作,包括但不限于:微代码、设备 驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统 等。
[0049]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包 括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点1〇,本地 计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和 /或汽车计算机系统54N。云计算节点1〇之间可以相互通信。可以在包括但不限于如上所 述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算 节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护 资源就能请求云计算环境50提供的基础架构即服务(l aas)、平台即服务(paaS)和/或软 件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点 10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算^ 备(例如使用网络浏览器)通信。
[0050]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应 当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图 3所示,提供下列层和对应功能:
[0051]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如 IBM? zSeries?,系统;基于Rise (精简指令集计算机)体系结构的服务器,例如 IBM pSeries?系统;IBM邊eries?;系统;IBM BfedeC_:er?系统;存储设备;网络 和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM MSplffife:?应用服 务器软件;数据库软件,例如IBM DM?,数据库软件。(IBM,zSeries,pSeries,xSeries, BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0052]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚 拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0053]在一个示例中,管理层Μ可以提供下述功能:资源供应功能:提供用于在云计算 环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对 资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软 件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户 门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云 计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为 根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0054]工作负载层册提供云计算环境可能实现的功能的示例。在该层中,可提供的工作 负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提 供;数据分析处理;交易处理;以及根据本发明的实施例的复杂对象的管理。
[0055]图4示出了根据本发明的一个实施例的在云环境中管理复杂对象的方法的示意 性流程图。下面结合附图对本实施例进行详细描述。
[0056]在以下的实施例中,使用"复杂对象,,表示描述交互式系统应用中的实体的对象。 在描述复杂对象时,除了使用传统的属性和方法以外,还可使用约束。在此,约束是指对复 杂对象的属性、方法或复杂对象本身的限制或修饰。此外,在描述复杂对象时,还可以使用 关系和/或条件-动作,其中,关系描述了复杂对象相对其它复杂对象的关系,条件-动作 描述了在一定条件下的复杂对象的操作。在交互式系统应用中,复杂对象可以持续发展,表 现在增长的数据和变化的结构。
[0057]如图4所示,在步骤S401,获取用于交互式系统应用的复杂对象的对象模型。在复 杂对象的对象模型中,可包括描述复杂对象的约束、属性和方法的信息。可选地,在对象模 型中还可以包括描述复杂对象的关系和条件-动作中的至少一个的信息。
[0058] 在本实施例中,复杂对象可以使用声明性编程语言来描述,例如,具有注释的面 向对象的语言,从而建立复杂对象的对象模型。例如,可以使用"类"描述复杂对象,使用 "属性"和"方法"描述复杂对象的属性和方法,使用"注释"描述复杂对象的约束、关系、条 件-动作。
[0059] 复杂对象的属性用于描述复杂对象的性质,其可以使用诸如整型(int )、字符串型 (string)、字符型(char)、日期/时间、浮点型(float)、参考型(reference)的简单类型的 数据,也可以使用诸如XML (可扩展标记语言)、JSON (JavaScriptObjectNotation,一种轻 量级的数据交换格式)、视频/音频、图像的复杂类型的数据,还可以使用诸如空间数据、列 表、表、结构的组合类型的数据。
[0060] 复杂对象的方法用于描述复杂对象的行为,其可以是任何可编程逻辑的描述。在 复杂对象的模型中,必须提供方法以操作使用复杂类型或组合类型的数据的属性。
[0061] 复杂对象的约束用于描述对复杂对象的属性、方法或复杂对象本身的限制或 修饰。约束可包括复杂对象的属性的可搜索性(Sear ch-ab le)、复杂对象的可关注性 (follow-able)、复杂对象的可标签性(tag-able)、复杂对象的可评论性(comment-able) 和复杂对象的可定位性(locatab 1 e )。
[0062] 如果复杂对象的某一属性具有可搜索性的约束,则表明复杂对象可基于该属性而 被搜索。在这种情况下,该属性将被建立索引。
[0063] 如果复杂对象具有可关注性的约束,则表明复杂对象可被其它对象关注,并与作 为关注者的对象之间存在关系。在这种情况下,复杂对象可具有特定属性以存储关注者列 表,并可具有访问和/或通知关注者的方法。
[0064] 如果复杂对象具有可标签性的约束,则表明复杂对象可被标记标签,在这种情况 下,复杂对象可具有处理标签(例如添加、删除标签)的属性和方法,并具有通过标签被添 力口、访问和搜索的方法。
[0065] 如果复杂对象具有可评论性的约束,则表明复杂对象可被评论,在这种情况下,复 杂对象可具有处理评论(例如,添加、删除评论)的方法和/或属性。
[0066]如果复杂对象具有可定位性的约束,则表明复杂对象可被确定位置,在这种情况 下,复杂对象可具有存储位置的属性,并可具有访问位置的方法。
[0067]复杂对象的关系用于描述与其它对象之间的关系,可通过使用参考型数据的属性 来描述。
[0068]复杂对象的条件-动作用于描述在一定条件下的复杂对象的操作,其可使用例如 "如果〈条件〉,则〈动作〉"的格式来描述,其中"〈条件〉"可以是布尔表达式,"〈动作>" 可以是脚本或复杂对象的方法的调用。
[0069]图5示出了根据本发明的实施例的复杂对象的示例性示意图。在该例子中,以 移动银行为例,有两个复杂对象"人John"和"基金New Energy"。如图5所示,复杂对象 "人John"具有属性"姓名"、"出生日期"和"图像"、方法"上传图像"、约束"可搜索性[姓 名]"和关系"关注基金New Energy"。复杂对象"基金New Energy"具有属性"名称"、"价 格"和"投资回报率R0I"、方法"添加关注"、"投资回报率变化ROIChange,,、约束"可搜索性
[名称]"、"可关注性"、关系"关注者:人John"、条件-动作"如果R0I变化,则调用方法 "ROIChange""。
[0070]如前所述,可以使用声明性语言来建立复杂对象的对象模型。下面给出用于定义 上述的复杂对象"基金"的代码的例子,其中,在属性中定义了使用字符串型数据的"名称"、 使用双精度型(doub 1 e )数据的"投资回报率R0I "、使用文本的"描述"、记录关注了复杂对 象"基金"的其它复杂对象的"关注者"、使用视频数据的"简报(briefing),,;在约束中定义 了针对属性"名称"和"描述"的"可搜索性"、可标签性、可评论性和可关注性;此外,在条 件-动作中定义了 "如果R0I超过25%且用户在关注者中且用户类别是VIP,则通知用户"。
[0071] Model DO FundDO(f //Attributes name: String, ROI: Double, description: Text, briefing: Video, followers: UserDO[], locations: LocationDO, //Constraints: social, location, tfansaeSicffi search-able: [name, deseoption], tag-able: yes, comment-able: yes, follow-able: yes, //Events, conditions and actions notifyROIChange: ECA(| event: ROIChanged, condition: "if ROI>25°/〇 AND User in. followers AND User.class.=='VIP'", action: User.notify(ROI), })
[0072] 因此,通过复杂对象"人John"和"基金New Energy"的对象模型,描述了人(用 户)John可登录到移动银行的门户网页,浏览基金并关注了基金New Energy。当基金New Energy的投资回报率超过25%时,人John可接收到通知。
[0073] 返回到图4,在获取了复杂对象的对象模型后,在步骤S410,分析在步骤S401中获 取的对象模型,以确定所需的与对象模型相映射的至少一个数据存储和表示用于访问复杂 对象的对象服务接口的至少一个数据服务。
[0074]图6示出了分析步骤S410的示意性流程图。如图6所示,在步骤S601,从对象模 型中提取元数据,元数据是描述对象模型的结构的数据。这样,可以获得对象模型中作为元 数据的属性的名称及其数据类型以及约束。
[0075] 接着,在步骤S605,根据所提取的元数据,建立对象模型的属性到相应的数据存储 的映射。通过该映射,可以确定将要用于复杂对象的数据存储。
[0076] 在该映射步骤中,首先,在步骤S6051,根据所提取的元数据,确定属性是结构化数 据、半结构化数据、非结构化数据、空间数据和需检索的文本数据中的任意一种。如上所述, 元数据中包含属性的数据类型,则可以根据数据类型,确定属性是结构化数据、半结构化数 据、非结构化数据、空间属性数据和需检索的文本数据中的哪一种。例如,整型数据、浮点型 数据、双精度型数据、参考型数据等属于结构化数据,XML数据、HTML文档等属于半结构化 数据,文本数据、音频数据、视频数据、图像数据等属于非结构化数据。此外,当复杂对象具 有"可定位性"约束时,相应的关于位置的属性是空间数据。当复杂对象的某个属性具有"可 搜索性"约束时,该属性是需检索的文本数据。
[0077] 然后,在确定属性是结构化数据的情况下,则在步骤S6052,响应于属性被确定为 是结构化数据,该属性被映射到关系型数据库。因此,关系型数据库,例如RDBMS数据库,成 为复杂对象的数据存储之一。
[0078] 在确定属性是半结构化数据的情况下,则在步骤S6053,响应于属性被确定为是半 结构化数据,该属性被映射到非关系型数据库。因此,非关系型数据库,例如NoSQL数据库, 成为复杂对象的数据存储之一。
[0079] 在确定属性是非结构化数据的情况下,则在步骤S6054,响应于属性被确定为是非 结构化数据,该属性被映射到对象存储系统。因此,对象存储系统成为复杂对象的数据存储 之一。
[0080] 在确定属性是空间数据的情况下,则在步骤S6055,响应于属性被确定为是空间数 据,该属性被映射到空间数据库。因此,空间数据库成为复杂对象的数据存储之一。
[0081] 在确定属性是需检索的文本数据的情况下,则在步骤S6056,响应于属性被确定为 是需检索的文本数据,该属性被映射到索引数据库系统。因此,索引数据库系统成为复杂对 象的数据存储之一。
[0082] 然后,在步骤S610,根据对象模型中的信息,确定至少一个对象服务接口,作为复 杂对象的数据服务。在一个实施例中,响应于描述复杂对象的属性的信息,确定用于添加、 删除、修改和查询属性的接口。接着,响应于描述复杂对象的方法的信息,确定用于暴露开 放函数(public method)的接口。然后,响应于描述复杂对象的约束的信息,确定用于添 力口、获取和删除约束的接口。例如,对于"可评论性"约束,可以确定诸如addComment ()、 getComraentsO、deleteComraentO的接口函数;对于"可标签性"约束,可以确定诸如 addTagO、getTagO、deleteTagO 的接口 函数。
[0083] 返回到图4,在步骤S420,根据通过步骤S410确定的所需的至少一个数据存储和 至少一个数据服务,在云环境中产生用于复杂对象的至少一个数据存储和至少一个数据服 务。图7示出了步骤S420的示意性流程图。
[0084] 在一个实施例中,如图7所示,首先,在步骤S701,根据所确定的所需的至少一个 数据存储,在云环境中选择相应的可用的数据存储。通常,在云环境中注册了所有被支持的 数据存储和数据服务,并建立了数据存储和数据服务的目录。这样,可以根据目录选择与所 需的至少一个数据存储响应的可用的数据存储。例如,如果所需的数据存储是关系型数据 库、非关系型数据库、对象存储系统、索引数据库系统,则在云环境中选择可用的关系型数 据库、非关系型数据库、对象存储系统、索引数据库系统,作为复杂对象的数据存储。
[0085] 可选地,在选择了可用的数据存储后,可以在步骤S703,对所选择的可用的数据存 储中的至少一个,执行关于高可用性的优化。通过高可用性的优化,确保数据存储的高度可 用性。在一个实施例中,可以对数据存储建立多个备份数据存储,从而提高数据存储的高可 用性。该实施例尤其适用于对象存储系统。在另一个实施例中,对于MySQL数据库,可以使 用MySQL集群技术以提供高可用性。
[0086]接着,在步骤S7〇5,对于所选择的可用的数据存储,生成各数据存储的存储结构。 例如,对于SQL数据库,其存储结构包括数据库连接、表名称。对于NoSOL数据库,其存储结 构包括连接信息和连接名称。对于本领域的普通技术人员来说,云环境中的各种类型的数 据存储的存储结构的生成是已知的,在此省略相应的说明。
[0087]然后,在步骤S710,根据所需的至少一个数据服务,产生相应的对象服务接口。如 前所述,对象服务接口可包括针对属性的接口、针对方法的接口以及针对约束的接口。通过 所产生的对象服务接口,可以访问所产生的数据存储以对所存储的数据进行操作。
[0088] 所产生的数据存储和数据服务可采用虚拟机的方式呈现,从而对复杂对象产生具 有数据存储和数据服务的虚拟机结构。图8示出了这种虚拟机结构的一个例子的示意图。 在该例子中,如图8所示,虚拟机VM1、VM2、VM3代表三种数据存储,虚拟机VMX表示数据服 务,VM A和VM B代表对某种类型的复杂对象提供的数据服务。对于不同的复杂对象,数据 服务可采用数据服务联合的方式来提供。
[0089] 本领域的普通技术人员能够理解,图8仅仅是虚拟机结构的一个例子的示意图, 也可以采用其它的虚拟机结构。例如,VM A和VM B上的数据服务可以位于同一个虚拟机 上。
[0090] 通过以上描述可以看出,本实施例的管理复杂对象的方法扩展了用于交互式系统 应用的复杂对象的对象模型,并且能够简单且灵活地对复杂对象产生数据存储和数据服 务。
[0091] 图9示出了根据本发明的另一个实施例的在云环境中管理复杂对象的方法的示 意性流程图。下面结合附图,对本实施例进行详细描述,其中,对于与前面实施例相同的部 分,付与相同的附图标记并适当省略其说明。
[0092] 图9所示的实施例的方法在图4所示的实施例的方法的基础上,增加了在对象模 型发生变化时对数据存储和数据服务的更新的操作。
[0093] 如图9所示,在步骤S901,监控复杂对象的对象模型是否发生变化^在此,假定对 象模型的变化是与原对象模型兼容的。在本实施例中,对象模型的变化可包括:增加新的信 息(例如,描述新的属性的信息、描述新的约束的信息等)、删除当前信息中的至少一个(例 如,删除了描述某个属性的信息)或者修改了当前信息中的至少一个(例如,修改了某个属 性的数据类型等)。
[0094] 接着,在步骤S905,响应于对象模型的变化,更新用于复杂对象的原数据存储和原 数据服务。在一个实施例中,首先,在步骤S9051,分析变化后的对象模型,以确定所需的与 对象模型的变化变化相映射的数据存储和新的数据服务。该分析步骤与前面所述的分析步 骤S410相同,在此省略其说明。接着,在步骤S9052,根据在步骤S9051确定的所需的数据 存储,产生新的数据存储。该产生步骤与前面所述的步骤S420相同,在此省略其说明。然 后,在步骤S9053,将原数据存储中与所产生的新的数据存储是相同类型的数据存储中的数 据迁移到新的数据存储中。例如,如果对象模型的变化导致增加了新的属性(其数据类型例 如是整型),则针对该变化将产生新的数据存储,例如,新的关系型数据库,然后,原数据存 储中的关系型数据库中的数据被迁移到新的关系型数据库中。接着,在步骤S9054,将原数 据服务修改成新的数据服务,即用新的数据服务替换原数据服务,并在步骤S9055,移除原 数据存储中的所存储的数据被迁移的数据存储和原数据服务。
[0095]通过以上描述可以看出,本实施例的管理复杂对象的方法能够进一步在复杂对象 的对象模型发生变化时自动更新相应的数据存储和数据服务,而无需修改交互式系统应用 的程序。
[0096] 在相同的发明构思下,图10示出了根据本发明的一个实施例的在云环境中管理 复杂对象的系统1000的示意性方框图。下面结合附图,对本实施例进行详细描述,其中对 于与前面实施例相同的部分,适当省略其说明。
[0097] 如图10所示,本实施例的系统1000包括:获取装置1001,其获取用于交互式系统 应用的复杂对象的对象模型,其中对象模型至少包括描述复杂对象的约束、属性和方法的 信息;分析装置1002,其分析所获取的对象模型,以确定所需的与对象模型相映射的至少 一个数据存储和表示用于访问复杂对象的对象服务接口的至少一个数据服务;以及产生装 置1003,其根据所需的至少一个数据存储和至少一个数据服务,在云环境中产生用于复杂 对象的至少一个数据存储和至少一个数据服务。
[0098] 可选地,复杂对象的对象模型还可包括描述复杂对象的关系和条件-动作中的至 少一个的信息。
[0099] 在本实施例中,复杂对象的约束可包括属性的可搜索性、复杂对象的可关注性、复 杂对象的可标签性、复杂对象的可评论性、复杂对象的可定位性中的至少一个。关于复杂对 象的约束,在前面已经详细描述过,此处省略其说明。
[0100] 在本实施例的系统1000中,在获取装置1001获取了复杂对象的对象模型之后,分 析装置1002对所获取的对象模型进行分析。
[0101] 在一个实施例中,在分析装置1002中,提取模块10021从对象模型中提取元数据, 接着,映射建立模块10022根据所提取的元数据,建立对象模型中的属性到相应的数据存 储的映射,并且确定模块10023根据对象模型中的信息,确定至少一个对象服务接口。
[0102] 在一个实施例中,映射建立模块10022可包括:确定单元,其为根据所提取的元数 据,确定属性是结构化数据、半结构化数据、非结构化数据、空间属性数据和需检索的文本 数据中的任意一种;以及映射单元,其响应于属性被确定为是结构化数据,将属性映射到关 系型数据库;响应于属性被确定为是半结构化数据,将属性映射到非关系型数据库;响应 于属性被确定为是非结构化数据,将属性映射到对象存储系统;响应于属性被确定为是空 间数据,将属性映射到空间数据库;以及响应于属性被确定为是需检索的文本数据,将属性 映射到索引数据库系统。
[0103] 在一个实施例中,确定模块10023可被配置为响应于描述复杂对象的属性的信 息,确定用于添加、删除、修改和查询所述属性的接口,响应于描述复杂对象的方法的信息, 确定用于暴露开放函数的接口,以及响应于描述复杂对象的约束的信息,确定用于添加、获 取和删除所述约束的接口。
[0104] 然后,产生装置1〇〇3根据通过分析装置1002获得的至少一个数据存储和至少一 个数据服务,产生用于复杂对象的至少一个数据存储和至少一个数据服务。
[0105] 在一个实施例中,在产生装置1003中,选择模块10031在云环境中选择与所需的 至少一个数据存储相应的可用的数据存储,并且生成模块10032对于所选择的可用的数据 存储,生成各自的存储结构,然后,产生模块10033根据所需的至少一个数据服务,产生相 应的对象服务接口。
[0106] 可选地,产生装置1003还可包括优化模块,其对所选择的可用的数据存储中的至 少一个,执行关于高可用性的优化。
[0107] 应当注意,本实施例的系统1000能够在操作上实现图4、图6和图7所示的在云环 境中管理复杂对象的方法。
[0108] 图11示出了根据本发明的另一个实施例的在云环境中管理复杂对象的系统1100 的示意性方框图。下面结合附图,对本实施例进行详细描述,其中对于与前面实施例相同的 部分,付与相同的附图标记并适当省略其说明。
[0109]图11所示的系统1100在图10所示的系统1000的基础上,增加了监控装置 1101 和更新装置1102,其中,监控装置1101监控对象模型是否发生变化,更新装置11〇2响应于 对象模型的变化,更新用于复杂对象的至少一个数据存储和至少一个数据服务。
[0110]在一个实施例中,监控装置11〇1被配置为监控对象模型是否被增加了新的信息、 删除了原信息中的至少一个或者修改了原信息中的至少一个。
[0111] 在一个实施例中,当对象模型发生了变化时,分析装置1002进一步分析变化后的 对象模型,以确定所需的与变化相映射的数据存储和新的至少一个数据服务,然后,产生装 置1003进一步根据所需的数据存储,产生新的数据存储。接着,更新装置11〇2中的迁移模 块11021将原数据存储中与新的数据存储是相同类型的数据存储中的数据迁移到新的数 据存储中,并且修改模块11022将原数据服务修改成新的数据服务,然后移除模块11〇23移 除原数据存储中所存储的数据被迁移的数据存储和原数据服务。
[0112] 应当注意,本实施例的系统1100能够在操作上实现图9所示的在云环境中管理复 杂对象的方法。
[0113] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以 基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行 规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
[0114] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也 不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技 术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨 在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领 域的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1. 一种在云环境中管理复杂对象的方法,包括: 获取所述复杂对象的对象模型,所述对象模型至少包括描述所述复杂对象的约束、属 性和方法的信息; 分析所述对象模型,以确定所需的与所述对象模型相映射的至少一个数据存储和表示 用于访问所述复杂对象的对象服务接口的至少一个数据服务;以及 根据所需的至少一个数据存储和至少一个数据服务,在所述云环境中产生用于所述复 杂对象的至少一个数据存储和至少一个数据服务。
2. 根据权利要求1所述的方法,其中,所述约束包括以下的至少一个:所述属性的可搜 索性、所述复杂对象的可关注性、所述复杂对象的可标签性、所述复杂对象的可评论性、所 述复杂对象的可定位性。
3. 根据权利要求1所述的方法,其中,所述对象模型还包括描述所述复杂对象的关系 和条件-动作中的至少一个的信息。
4. 根据权利要求1至3任意一项所述的方法,其中,分析所述对象模型,以确定所需的 与所述对象模型相映射的至少一个数据存储和表示用于访问所述复杂对象的对象服务接 口的至少一个数据服务包括: 从所述对象模型中提取元数据; 根据所提取的元数据,建立所述属性到相应的数据存储的映射;以及 根据所述信息,确定至少一个所述对象服务接口。
5. 根据权利要求4所述的方法,其中,根据所提取的元数据,建立所述属性到相应的数 据存储的映射包括: 根据所提取的元数据,确定所述属性是结构化数据、半结构化数据、非结构化数据、空 间数据和需检索的文本数据中的任意一种; 响应于所述属性被确定为是结构化数据,将所述属性映射到关系型数据库; 响应于所述属性被确定为是半结构化数据,将所述属性映射到非关系型数据库; 响应于所述属性被确定为是非结构化数据,将所述属性映射到对象存储系统; 响应于所述属性被确定为是空间数据,将所述属性映射到空间数据库;以及 响应于所述属性被确定为是需检索的文本数据,将所述属性映射到索引数据库系统。
6. 根据权利要求4所述的方法,其中,根据所述信息,确定至少一个所述对象服务接口 包括: 响应于描述所述复杂对象的属性的信息,确定用于添加、删除、修改和查询所述属性的 接口; 响应于描述所述复杂对象的方法的信息,确定用于暴露开放函数的接口;以及 响应于描述所述复杂对象的约束的信息,确定用于添加、获取和删除所述约束的接口。
7. 根据权利要求1至3任意一项所述的方法,其中,根据所需的至少一个数据存储和至 少一个数据服务,在所述云环境中产生用于所述复杂对象的至少一个数据存储和至少一个 数据服务包括: 在所述云环境中选择与所需的至少一个数据存储相应的可用的数据存储; 对于所选择的可用的数据存储,生成各自的存储结构;以及 根据所需的至少一个数据服务,产生相应的对象服务接口。
8. 根据权利要求7所述的方法,根据所需的至少一个数据存储和至少一个数据服务, 在所述云环境中产生用于所述复杂对象的至少一个数据存储和至少一个数据服务还包 括: 对所选择的可用的数据存储中的至少一个,执行关于高可用性的优化。
9. 根据权利要求1至3任意一项所述的方法,还包括: 监控所述对象模型是否发生变化;以及 响应于所述对象模型的变化,更新用于所述复杂对象的所述至少一个数据存储和所述 至少一个数据服务。
10. 根据权利要求9所述的方法,其中,监控所述对象模型是否发生变化包括: 监控所述对象模型是否被增加了新的所述信息、删除了所述信息中的至少一个或者修 改了所述信息中的至少一个。
11. 根据权利要求9所述的方法,其中,响应于所述对象模型的变化,更新用于所述复 杂对象的所述至少一个数据存储和所述至少一个数据服务包括: 分析变化后的对象模型,以确定所需的与所述变化相映射的数据存储和新的至少一个 数据服务; 根据所需的数据存储,产生新的数据存储; 将所述至少一个数据存储中与所述新的数据存储相同类型的数据存储中的数据迁移 到所述新的数据存储中; 将所述至少一个数据服务修改成所述新的至少一个数据服务;以及 移除所存储的数据被迁移的数据存储和所述至少一个数据服务。
12. -种在云环境中管理复杂对象的系统,包括: 获取装置,其被配置为获取所述复杂对象的对象模型,所述对象模型至少包括描述所 述复杂对象的约束、属性和方法的信息; 分析装置,其被配置为分析所述对象模型,以确定所需的与所述对象模型相映射的至 少一个数据存储和表示用于访问所述复杂对象的对象服务接口的至少一个数据服务;以及 产生装置,其被配置为根据所需的至少一个数据存储和至少一个数据服务,在所述云 环境中产生用于所述复杂对象的至少一个数据存储和至少一个数据服务。
13. 根据权利要求12所述的系统,其中,所述约束包括以下的至少一个:所述属性的可 搜索性、所述复杂对象的可关注性、所述复杂对象的可标签性、所述复杂对象的可评论性、 所述复杂对象的可定位性。
14. 根据权利要求12所述的系统,其中,所述对象模型还包括描述所述复杂对象的关 系和条件-动作中的至少一个的信息。
15. 根据权利要求12至14任意一项所述的系统,其中,所述分析装置包括: 提取模块,其被配置为从所述对象模型中提取元数据; 映射建立模块,其被配置为根据所提取的元数据,建立所述属性到相应的数据存储的 映射;以及 确定模块,其被配置为根据所述信息,确定至少一个所述对象服务接口。
16. 根据权利要求15所述的系统,其中,所述映射建立模块包括: 确定单元,其被配置为根据所提取的元数据,确定所述属性是结构化数据、半结构化数 据、非结构化数据、空间属性数据和需检索的文本数据中的任意一种;以及 映射单元,其被配置为响应于所述属性被确定为是结构化数据,将所述属性映射到关 系型数据库;响应于所述属性被确定为是半结构化数据,将所述属性映射到非关系型数据 库;响应于所述属性被确定为是非结构化数据,将所述属性映射到对象存储系统;响应于 所述属性被确定为是空间数据,将所述属性映射到空间数据库;以及响应于所述属性被确 定为是需检索的文本数据,将所述属性映射到索引数据库系统。
17. 根据权利要求15所述的系统,其中,所述确定模块被配置为响应于描述所述复杂 对象的属性的信息,确定用于添加、删除、修改和查询所述属性的接口,响应于描述所述复 杂对象的方法的信息,确定用于暴露开放函数的接口,以及响应于描述所述复杂对象的约 束的信息,确定用于添加、获取和删除所述约束的接口。
18. 根据权利要求12至14任意一项所述的系统,其中,所述产生装置包括: 选择模块,其被配置为在所述云环境中选择与所需的至少一个数据存储相应的可用的 数据存储; 生成模块,其被配置为对于所选择的可用的数据存储,生成各自的存储结构;以及 产生模块,其被配置为根据所需的至少一个数据服务,产生相应的对象服务接口。
19. 根据权利要求18所述的系统,其中,所述产生装置还包括: 优化模块,其被配置为对所选择的可用的数据存储中的至少一个,执行关于高可用性 的优化。
20. 根据权利要求12至14任意一项所述的系统,还包括: 监控装置,其被配置为监控所述对象模型是否发生变化;以及 更新装置,其被配置为响应于所述对象模型的变化,更新用于所述复杂对象的至少一 个数据存储和至少一个数据服务。
21. 根据权利要求20所述的系统,其中,所述监控装置被配置为监控所述对象模型是 否被增加了新的所述信息、删除了所述信息中的至少一个或者修改了所述信息中的至少一 个。
22. 根据权利要求20所述的系统,其中,所述分析装置进一步被配置为分析变化后的 对象模型,以确定所需的与所述变化相映射的数据存储和新的至少一个数据服务,所述产 生装置进一步被配置为根据所需的数据存储,产生新的数据存储; 所述更新装置包括: 迁移模块,其被配置为将所述至少一个数据存储中与所述新的数据存储相同类型的数 据存储中的数据迁移到所述新的数据存储中; 修改模块,其被配置为将所述至少一个数据服务修改成所述新的至少一个数据服务; 以及 移除模块,其被配置为移除所存储的数据被迁移的数据存储和所述至少一个数据服 务。
【文档编号】G06F9/44GK104252345SQ201310261714
【公开日】2014年12月31日 申请日期:2013年6月27日 优先权日:2013年6月27日
【发明者】郭迎春, 毛新生, 杨博, 陈丽如, 张华
申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1