CN108604278A - 具有对共享数据表的支持的自描述配置 - Google Patents

具有对共享数据表的支持的自描述配置 Download PDF

Info

Publication number
CN108604278A
CN108604278A CN201680072767.2A CN201680072767A CN108604278A CN 108604278 A CN108604278 A CN 108604278A CN 201680072767 A CN201680072767 A CN 201680072767A CN 108604278 A CN108604278 A CN 108604278A
Authority
CN
China
Prior art keywords
data
attribute
cloud
service
protected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680072767.2A
Other languages
English (en)
Other versions
CN108604278B (zh
Inventor
吴京
B·苏里万
M·W·麦格瑞斯
卢旻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN108604278A publication Critical patent/CN108604278A/zh
Application granted granted Critical
Publication of CN108604278B publication Critical patent/CN108604278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Abstract

提供了监视客户端设备和应用之间的通信的数据安全提供商的基于云的应用的自描述配置的系统和方法。可以提供允许数据安全提供商检查由基于云的应用使用的实体对象的应用编程接口(API)。数据实体可以被标记为具有受保护的字段。令牌标识符可以由数据安全提供商生成并发送到基于云的应用。基于云的应用可以在应用和客户端设备之间的通信中插入令牌标识符,从而允许数据安全提供商保护与受保护字段相关联的敏感数据。

Description

具有对共享数据表的支持的自描述配置
相关申请的交叉引用
本申请要求于2015年10月23日提交的标题为“SELF DESCRIBING CONFIGURATION”的美国临时申请No.62/245,588和于2015年10月23日提交的标题为“SUPPORT SHARING THESAME TABLE FOR ENCRYPTED AND CLEAR TEXT COLUMNS”的美国临时申请No.62/245,579的优先权和权益,这些申请的全部内容通过引用被结合于此,用于所有目的。
背景技术
存在对数据保密性进行监管的复杂的法规和政策网络。最频繁被引用的是健康保险流通与责任法案(HIPAA)和支付卡行业数据安全标准(PCI DSS)。欧洲数据保护法通常更进一步,禁止任何个人可识别信息移动到欧盟或国家边界之外。这对公共云的无限制使用造成了一些明显的限制。组织还担心执法机构或政府官员潜在地直接从它们的云服务提供商访问数据,从而完全绕过公司。
例如,欧洲数据保护法禁止可以链接到特定人员的个人数据移动到欧盟(EU)或甚至特定国家边界之外。这些法律可以禁止组织在云中存储或处理数据,因为基础设施提供商可能在多个全球位置中存储、处理或备份数据。在美国,诸如健康保险流通与责任法案(HIPAA)的法规要求维护个人健康信息(PHI)的安全性和保密性。这样做的复杂性可能会阻止医疗保健提供商使用可降低医疗保健成本上升的成本效益型基于公共云的解决方案。
解决数据安全性、驻留(residency)和保密性问题的一种方式是对进入云中的数据进行模糊(obfuscate)。两种常见的模糊方法是加密(encryption)和令牌化(tokenization)。使用这两种方法中的任何一种都确保在组织享受基于云的应用的好处时,数据对于窥探者而言保持难以破译。加密使用算法方案将纯文本信息变换为不可读的密文。需要密钥(或算法)来解密信息并将其返回到其原始纯文本格式。令牌化是用于敏感数据的保护的一种日益流行的方法。它涉及将具有令牌(或别名)的数据替换使用作为真实值的替代。与使用数学处理来变换数据的加密不同,令牌化使用随机字符来替换实际数据。不存在可以破译令牌并将其转回成真实数据的“密钥”。
在令牌化的处理中,敏感数据被发送到集中式且高度安全的被称为“保险库(vault)”的服务器,其中安全地存储该敏感数据。同时,生成一组随机唯一的字符(令牌)并将其返回以用于代替真实数据。保险库管理器维护引用数据库,该引用数据库允许当再次需要真实数据时,令牌值被交换为真实数据。同时,对窥探者无论如何没有意义的令牌值可以被用在各种基于云的应用中,作为真实数据的可靠替代。
商家经常在销售结束之后使用令牌化数据作为敏感信用卡信息的替代。这允许商家对客户的交易执行销售分析,而不会使真实卡数据置于风险之中。此外,PCI禁止将活动卡数据用于支付交易以外的任何其它用途。通过令牌化交易后数据,商家可以减少其PCI负担,因为在它们的后端系统中不存在敏感数据。
相同的方法可以应用于其它类型的敏感数据,包括患者记录、客户账户记录、人力资源信息等。将真实数据令牌化使真实数据免于伤害,并解决了对安全性、驻留和保密性的要求。令牌化数据可以在任何地方存储和使用——甚至在云中——因为如果它丢失或被盗,它不能被转回成真实数据。
发明内容
本公开的以下部分至少为了提供对主题的基本理解的目的而呈现了在本公开中找到的一个或多个创新、实施例和/或示例的简化概要。本发明内容不试图提供任何特定实施例或示例的详尽概述。此外,本发明内容不旨在识别实施例或示例的关键/决定性元素或描绘本公开的主题的范围。相应地,本发明内容的一个目的可以是以简化的形式呈现在本公开中找到的一些创新、实施例和/或示例,作为稍后呈现的具体实施方式的序言。
在示例性实施例中,提供了由计算设备执行的方法。该方法包括提供针对由基于云的应用使用的数据模型的应用编程接口(API),并且通过该API接收对数据模型的配置数据的请求。该请求由监视客户端设备和基于云的应用之间的通信的数据安全提供商生成。该方法还包括生成包括配置数据的响应。该配置数据包括使用数据模型建模的实体的可保护属性集合。该方法还包括接收该可保护属性集合中的要被保护的属性的指示,并且将可保护属性集合中的被指示的属性标记为受保护的。
在一些实施例中,配置数据还包括可以应用于可保护属性集合内的每个属性的保护类型。可选地,保护类型是可令牌化的或者是可加密的。可选地,可保护属性集合中的要被保护的属性的指示还包括要应用于该属性的保护类型的指示。
在一些实施例中,该方法还包括从客户端设备接收对利用数据模型的用户界面或部件的请求、生成包括用户界面或部件以及被标记为受保护的属性的响应、以及从客户端设备接收对利用数据模型的用户界面或部件的后续请求,其中与被标记的属性相关联的数据值被令牌化或者被加密。
在示例性实施例中,提供了一种其上存储有指令的非瞬态机器可读存储介质,所述指令当由一个或多个处理器执行时使该一个或多个处理器执行方法。该方法包括提供针对由基于云的应用使用的数据模型的应用编程接口(API),并且通过该API接收对数据模型的配置数据的请求。该请求由监视客户端设备和基于云的应用之间的通信的数据安全提供商生成。该方法还包括生成包括配置数据的响应。配置数据包括使用数据模型建模的实体的可保护属性集合。该方法还包括接收可保护属性集合中的要被保护的属性的指示,并且将可保护属性集合中的被指示的属性标记为受保护的。
在一些实施例中,配置数据还包括可以应用于可保护属性集合内的每个属性的保护类型。可选地,保护类型可以是令牌化的或者是可加密的。可选地,可保护属性集合中的要被保护的属性的指示还包括要应用于该属性的保护类型的指示。
在一些实施例中,该方法还包括从客户端设备接收对利用数据模型的用户界面或部件的请求、生成包括用户界面或部件以及被标记为受保护的属性的响应、以及从客户端设备接收对利用数据模型的用户界面或部件的后续请求,其中与被标记的属性相关联的数据值被令牌化或者被加密。
在示例性实施例中,提供了包括处理器和存储指令集合的存储器的系统,所述指令集合当由处理器执行时使处理器执行方法。该方法包括提供针对由基于云的应用使用的数据模型的应用编程接口(API),并且通过API接收对数据模型的配置数据的请求。该请求由监视客户端设备和基于云的应用之间的通信的数据安全提供商生成。该方法还包括生成包括配置数据的响应。配置数据包括使用数据模型建模的实体的可保护属性集合。该方法还包括接收可保护属性集合中的要被保护的属性的指示,并且将可保护属性集合中的被指示的属性标记为受保护的。
在一些实施例中,配置数据还包括可以应用于可保护属性集合内的每个属性的保护类型。可选地,保护类型可以是令牌化的或者是可加密的。可选地,可保护属性集合中的要被保护的属性的指示还包括要应用于该属性的保护类型的指示。
在一些实施例中,该方法还包括从客户端设备接收对利用数据模型的用户界面或部件的请求、生成包括用户界面或部件以及被标记为受保护的属性的响应、以及从客户端设备接收对利用数据模型的用户界面或部件的后续请求,其中与被标记的属性相关联的数据值被令牌化或者被加密。
在示例性实施例中,提供了由计算设备执行的方法。该方法包括接收具有支持多个数据对象的多个列的数据库表的定义、接收将该多个列中的至少一个列识别为实体区分符(discriminator)属性的信息、以及指定该多个列中的该至少一个列作为实体区分符属性。针对多个数据对象中的至少一个数据对象的查询返回具有与该至少一个数据对象相关联的实体区分符属性的行集合。该方法还包括接收将该至少一个数据对象的多个属性中的至少一个属性识别为受保护字段的信息以及将该至少属性指定为受保护字段。
在一些实施例中,接收将多个列中的至少一个列识别为实体区分符属性的信息包括接收将多个列中的至少一个列作为实体对象类型的选择。可选地,接收将多个列中的至少一个列识别为实体区分符属性的信息包括接收将多个列中的至少一个列作为索引的选择。可选地,将多个列中的至少一个列指定为实体区分符属性包括根据至少一个数据对象设置预定值。
在一些实施例中,该方法还包括从客户端设备接收对利用至少属性的用户界面或部件的请求、生成包括用户界面或部件以及受保护的至少属性的响应;以及从客户端设备接收对利用至少属性的用户界面或部件的后续请求,其中与至少属性相关联的数据值被令牌化或者被加密。
在示例性实施例中,提供了一种具有存储在其上的指令的非瞬态机器可读存储介质,所述指令当由一个或多个处理器执行时使该一个或多个处理器执行方法。该方法包括接收具有支持多个数据对象的多个列的数据库表的定义、接收将该多个列中的至少一个列识别为实体区分符属性的信息、以及指定该多个列中的该至少一个列作为实体区分符属性。针对多个数据对象中的至少一个数据对象的查询返回具有与该至少一个数据对象相关联的实体区分符属性的行集合。该方法还包括接收将至少一个数据对象的多个属性中的至少一个属性识别为受保护字段的信息以及将该至少属性指定为受保护字段。
在一些实施例中,接收将多个列中的至少一个列识别为实体区分符属性的信息包括接收将多个列中的至少一个列作为实体对象类型的选择。可选地,接收将多个列中的至少一个列识别为实体区分符属性的信息包括接收将多个列中的至少一个列作为索引的选择。可选地,将多个列中的至少一个列指定为实体区分符属性包括根据至少一个数据对象设置预定值。
在一些实施例中,该方法还包括从客户端设备接收对利用至少属性的用户界面或部件的请求;生成包括用户界面或部件以及受保护的至少属性的响应;以及从客户端设备接收对利用至少属性的用户界面或部件的后续请求,其中与该至少属性相关联的数据值被令牌化或者被加密。
在示例性实施例中,提供了包括处理器和存储指令集合的存储器的系统,所述指令集合当由处理器执行时使处理器执行方法。该方法包括接收具有支持多个数据对象的多个列的数据库表的定义、接收将该多个列中的至少一个列识别为实体区分符属性的信息、以及将多个列中的至少一个列指定为实体区分符属性。针对多个数据对象中的至少一个数据对象的查询返回具有与该至少一个数据对象相关联的实体区分符属性的行集合。该方法还包括接收将至少一个数据对象的多个属性中的至少一个属性识别为受保护字段的信息以及将该至少属性指定为受保护字段。
在一些实施例中,接收将多个列中的至少一个列识别为实体区分符属性的信息包括接收将多个列中的至少一个列作为实体对象类型的选择。可选地,接收将多个列中的至少一个列识别为实体区分符属性的信息包括接收将多个列中的至少一个列作为索引的选择。可选地,将多个列中的至少一个列指定为实体区分符属性包括根据至少一个数据对象来设置预定值。
在一些实施例中,该方法还包括从客户端设备接收对利用至少属性的用户界面或部件的请求、生成包括用户界面或部件以及受保护的至少属性的响应;以及从客户端设备接收对利用至少属性的用户界面或部件的后续请求,其中与至少属性相关联的数据值被令牌化或者被加密。
除了上述部分之外,通过参考本公开的其余部分、任何附图以及权利要求,还应当实现对本公开的主题的本质和等同物(以及所提供的任何固有的或明确的优点和改进)的进一步理解。
附图说明
为了合理地描述和图示在本公开内找到的那些创新、实施例和/或示例,可以参考一个或多个附图。用来描述一个或多个附图的附加细节或示例不应当被认为是对本公开内呈现的任何要求保护的发明、任何当前描述的实施例和/或示例或者当前理解的任何创新的最佳模式的范围的限制。
图1是根据本发明的一个实施例中用于开发基于云的应用的系统环境的框图。
图2是在根据本发明的一个实施例中利用基于云的应用提供保密性、驻留和安全性的系统的框图。
图3A是在根据本发明的一个实施例中,当使用来自企业基础设施系统内的客户端设备进行查看时与基于云的应用相关联的用户界面(UI)页面的图示。
图3B是在根据本发明的一个实施例中,当从云基础设施系统内查看时与基于云的应用相关联的UI页面的图示。
图4是图示根据本发明的一个实施例中的实体之间共享的属性的框图。
图5图示了在根据本发明的一个实施例中提供保密性、驻留和安全服务器的自描述配置的消息序列图。
图6图示了在根据本发明的一个实施例中利用自描述配置的消息序列图。
图7是描绘根据本发明的一个实施例的针对具有自描述配置的基于云的应用所使用的各个层的图示。
图8是在根据本发明的一个实施例中用于支持对加密文本列和明文文本列共享相同表的方法的流程图。
图9是在根据本发明的一个实施例中的用于受保护字段的自动操作检测的方法的流程图。
图10是在根据本发明的一个实施例中用于联合搜索(federated search)的方法的流程图。
图11描绘了用于实现实施例之一的分布式系统的简化图。
图12图示了其中可以实现本发明的各种实施例的示例性计算机系统。
具体实施方式
I.引言
在以下描述中,为了解释的目的,阐述了具体细节,以便提供对本发明的实施例的透彻理解。但是,将显而易见的是,各种实施例可以在没有这些具体细节的情况下实践。例如,电路、系统、网络、进程和其它部件可以被示为框图形式的部件,以便不以不必要的细节模糊实施例。在其它情况下,众所周知的电路、处理、算法、结构和技术可能在没有不必要的细节的情况下示出,以便避免模糊实施例。图和描述不旨在是限制性的。相反,示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的使能(enabling)描述。应当理解的是,在不背离如所附权利要求中阐述的本发明的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
而且,应当指出的是,各个实施例可以被描述为处理,该处理被描绘为流程图、流图、数据流图、结构图或框图。虽然流程图可以将操作描述为顺序处理,但是许多操作可以并行或并发执行。此外,操作的次序可以被重新布置。当其操作完成时,处理终止,但是可以具有不包括在图中的附加步骤。处理可以与方法、函数、过程、子例程,子程序等对应。当处理与函数对应时,其终止可以与函数返回到调用函数或主函数对应。
术语“机器可读介质”或“计算机可读介质”包括但不限于便携式存储设备或非便携式存储设备、光学存储设备、无线信道,以及能够存储、包含或携带(一个或多个)指令和/或数据的各种其它介质。代码段或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段(包括存储器共享、消息传递、令牌传递、网络传输等)被传递、转发或发送。
另外,实施例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段可以存储在机器可读或计算机可读介质中。一个或多个处理器可以执行这些必要的任务。
在一些图中描绘的系统可以以各种配置提供。在一些实施例中,系统可以被配置为分布式系统,其中系统的一个或多个部件跨云计算机系统中的一个或多个网络分布。在还有的实施例中,系统可以被配置为单个系统,其中系统的一个或多个部件被结合到单个结构或包中。
II.基于云的应用开发
应用是指软件程序,其在执行时执行具体的期望任务。一般而言,在包含一个或多个操作系统(“OS”)、(例如,支持JavaTM编程语言的)虚拟机、设备驱动程序等的运行时环境中执行若干应用。开发人员经常使用应用开发框架(“ADF”)(其本身是应用)来实现/开发期望的应用。ADF提供了可以直接/间接在应用开发中使用的一组预定义的代码/数据模块。ADF还可以提供诸如集成开发环境(“IDE”)、代码生成器、调试器等工具。一般而言,ADF通过提供可由应用开发人员使用以定义用户界面(“UI”)和应用逻辑的可重用部件来简化应用开发,例如,通过选择部件来执行期望的任务和定义所选择的部件的外观、行为和交互。一些ADF,诸如来自Oracle公司的“Oracle ADF”,基于模型-视图-控制器(“MVC”)设计模式,该模式促进了松散耦合以及更容易的应用开发和维护。
图1是根据本发明的一个实施例中用于开发基于云的应用的系统环境100的框图。在所示实施例中,系统环境100包括向一个或多个客户端计算设备104、106和108提供云服务的云基础设施系统102。客户端计算设备104、106和108可以由用户用来与云基础设施系统102交互。客户端计算设备104、106和108可以被配置为操作客户端应用,诸如Web浏览器、专有客户端应用(例如,Oracle Forms)或某种其它应用,其可以由客户端计算设备的用户用来与云基础设施系统102交互,以使用由云基础设施系统102提供的服务。
云基础设施系统102可以具有除所描绘的那些之外的其它部件。另外,图1所示的实施例仅仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统102可以具有比图1所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有不同的部件配置或布置。
客户端计算设备104、106和108可以是便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(“PDA”))或可穿戴设备(例如,Google头戴式显示器),运行软件(诸如Microsoft Windows)和/或各种移动OS(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等),并且启用互联网、电子邮件、短消息服务(“SMS”)、或其它通信协议。客户端计算设备104、106和108可以是通用个人计算机,例如包括运行各种版本的MicrosoftApple和/或Linux OS的个人计算机和/或膝上型计算机。客户端计算设备104、106和108可以是运行任何各种可商业获得的或类UNIX操作系统(包括但不限于各种GNU/Linux OS,诸如例如Google Chrome OS)的工作站计算机。替代地或附加地,客户端计算设备104、106和108可以是能够通过(一个或多个)网络110通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的微软Xbox游戏控制台)和/或个人消息传送设备。
虽然示出了具有三个客户端计算设备的示例性系统环境100,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与云基础设施系统102交互。
(一个或多个)网络110可以促进客户端104、106和108与云基础设施系统102之间的通信和数据交换。(一个或多个)网络110可以是本领域技术人员熟悉的任何类型的网络,其可以支持使用任何各种可商业获得的协议(包括但不限于传输控制协议/互联网协议(“TCP/IP”)、系统网络体系架构(“SNA”)、互联网分组交换(“IPX”)、AppleTalk等)的数据通信。仅仅作为示例,(一个或多个)网络110可以是局域网(“LAN”),诸如基于以太网、令牌环等的LAN。(一个或多个)网络110可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网络(“VPN”)、内联网、外联网、公共交换电话网络(“PSTN”)、红外网络、无线网络(例如,依据电气和电子协会(“IEEE”)802.11协议套件、和/或任何其它无线协议中的任何协议操作的网络);和/或这些和/或其它网络的任何组合。
云基础设施系统102可以包括一个或多个计算机和/或服务器。这些计算机系统或服务器可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括个人计算机(“PC”)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。在各种实施例中,与云基础设施系统102相关联的一个或多个计算机系统或服务器可以适于运行在前述公开中描述的一个或多个服务或软件应用。例如,与云基础设施系统102相关联的一个或多个计算机系统或服务器可以对应于根据本公开的实施例的用于执行本文描述的处理的服务器。
与云基础设施系统102相关联的一个或多个计算机系统或服务器可以运行包括以上讨论的任何一个OS的OS,以及任何可商业获得的服务器OS。与云基础设施系统102相关联的一个或多个计算机系统或服务器还可以运行各种附加的服务器应用和/或中间层应用中的任何一种,包括超文本传输协议(“HTTP”)服务器、文件传输协议(“FTP”)服务器、公共网关接口(“CGI”)服务器、服务器、数据库服务器等。
在某些实施例中,由云基础设施系统102提供的服务可以包括按需对云基础设施系统102的用户可用的一系列服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、被托管的办公室套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统102提供的服务可以动态扩展,以满足其用户的需要。由云基础设施系统102提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的本地(on-premises)服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用该应用。
在一些示例中,由云基础设施102实例化的服务实例可以包括对由云供应商向用户或者如本领域中已知的其他方式提供的存储装置、被托管的数据库、被托管的Web服务器、软件应用或的其它服务的受保护的计算机网络访问。例如,由云基础设施102实例化的服务实例可以包括通过互联网对云上的远程存储装置进行密码保护的访问。作为另一个示例,由云基础设施102实例化的服务实例可以包括基于Web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网的开发人员私人使用。作为另一个示例,由云基础设施102实例化的服务实例可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统102可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给客户的应用、中间件、开发服务和数据库服务供应的套件。如在云基础设施服务102中体现的这种云基础设施系统的示例是来自Oracle公司的“Oracle公共云”。
云基础设施系统102可以经由不同的部署模型提供云服务。例如,可以依据公共云模型提供服务,其中云基础设施系统102由销售云服务的组织拥有(例如,由Oracle公司拥有),并且服务对一般公众或不同行业的企业可用。作为另一个示例,可以依据私有云模型提供服务,其中云基础设施系统102仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。云服务还可以依据社区云模型提供,其中云基础设施系统102和由云基础设施系统102提供的服务由相关社区中的若干组织共享。云服务还可以依据混合云模型提供,该混合云模型是两个或更多个不同模型的组合。
在一些实施例中,由云基础设施系统102提供的服务可以包括在软件即服务(“SaaS”)类别、平台即服务(“PaaS”)类别、基础设施即服务(“IaaS”)类别、MBaaS类别或其它服务(包括混合服务)的类别下提供的一个或多个服务。在一些实施例中,由云基础设施系统102提供的服务可以包括但不限于应用服务、平台服务、基础设施服务、后端服务等。在一些示例中,应用服务可以由云基础设施系统102经由SaaS平台提供。SaaS平台可以被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和交付点播应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买的单独许可证和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施系统102经由PaaS平台提供。PaaS平台可以被配置为提供属于PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台提供的共享服务构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础设施系统102提供的PaaS服务,而无需客户购买单独的许可证和支持。平台服务的示例包括但不限于来自Oracle公司的“Oracle Java云服务”(“JCS”)、来自Oracle公司的“Oracle数据库云服务”(“DBCS”)等。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统102支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施系统102提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,其使得组织能够汇集数据库资源并且以数据库云的形式向客户提供数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供开发和部署各种业务应用的平台,并且Java云服务可以为客户提供部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统102中的IaaS平台提供。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制,以便客户利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施系统102可以在云基础设施系统中提供云服务(例如,SaaS、PaaS、IaaS和MBaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统102接收到的客户订阅等的能力。在各种实施例中,云基础设施系统102可以适于自动供给、管理和跟踪客户对由云基础设施系统102提供的服务的订阅。客户经由订阅订单可以订购由云基础设施系统102提供的一个或多个服务。然后云基础设施系统102执行处理,以提供客户的订阅订单中的服务。
在一个实施例中,云管理功能可以由一个或多个模块(诸如订单管理和监视模块114)提供。这些模块可以包括一个或多个计算机和/或服务器或者使用一个或多个计算机和/或服务器提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
在示例性操作中,使用客户端计算设备104、106或108的客户可以通过请求由云基础设施系统102提供的一个或多个服务来与云基础设施系统102交互。客户可以使用各种手段向云基础设施系统102发布服务请求134。服务请求134可以包括对由云基础设施系统102提供的一个或多个服务的订阅下订单、访问由云基础设施系统102提供的一个或多个服务等。在某些实施例中,客户可以访问云UI 132、134和138并且经由这些UI下订阅订单。由云基础设施系统102响应于客户下订单而接收到的订单信息可以包括识别客户和客户打算订阅的、由云基础设施系统102提供的一个或多个服务的信息。在客户下订单之后,经由云UI132、134和/或138接收订单信息。
在这个示例中,订单管理和监视模块112将从客户接收到的信息发送到订单数据库,以存储由客户下达的订单。订单数据库可以是由云基础设施系统102操作并且与其它系统元件结合操作的若干数据库中的一个。订单管理和监视模块112可以将包括存储在订单数据库中的订单信息的全部或部分的信息转发到订单管理模块。在一些情况下,订单管理模块可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,以及在验证之后预订(booking)订单。
在某些实施例中,云基础设施系统100可以包括身份管理模块114。身份管理模块114可以被配置为提供身份服务,诸如云基础设施系统102中的访问管理和授权服务。在一些实施例中,身份管理模块114可以控制关于希望利用由云基础设施系统102提供的服务的客户的信息。这种信息可以包括认证这些客户的身份的信息和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块114还可以包括关于每个客户的描述性信息以及关于如何和由谁来访问和修改这些描述性信息的管理。
在某些实施例中,云基础设施系统102还可以包括用于提供用于向云基础设施系统102的客户提供各种服务的资源的基础设施资源116。在一个实施例中,基础设施资源116可以包括预先集成和优化的硬件,诸如服务器、存储装置和网络资源,以执行由PaaS平台和SaaS平台提供的服务。
在一些实施例中,云基础设施系统102中的资源可以由多个用户共享并且根据需求动态地重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统102可以使在第一时区中的第一组用户能够利用云基础设施系统的资源达到指定的小时数,并且然后使相同资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统102的不同部件或模块以及由云基础设施系统102提供的服务共享的多个内部共享服务118。这些内部共享服务118可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些实施例中,可以提供由云基础设施系统102的不同部件或模块以及由云基础设施系统102提供的服务共享的多个外部共享服务120。这些外部共享服务120可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在各种实施例中,外部共享服务120可以包括提供对(一个或多个)企业计算机系统126的访问、数据变换、自动化等的一个或多个部件。对(一个或多个)企业计算机系统126的访问可以由云基础设施系统102的不同部件或模块以及由云基础设施系统102提供的服务共享。在一些实施例中,对(一个或多个)企业计算机系统126的访问可以由云基础设施系统102提供的、受限于一个或多个订户的服务实例共享。
在还有的实施例中,外部共享服务120可以包括由云基础设施系统102的不同部件或模块以及由云基础设施系统102提供的服务共享的外部应用编程接口(“API”)服务128。这些API服务128可以包括但不限于由其它第三方服务或实体提供的API。
各种不同的移动云服务可以由云基础设施系统102中的MCS122提供。根据本发明的一些实施例,MCS 122促进移动计算设备和企业计算机系统(例如,企业计算机系统124和126)之间的通信。MCS 122可以包括用于存储企业数据和认证信息的一个或多个存储器存储设备(“本地存储装置”)。企业数据可以从企业计算机系统126或从客户端计算设备104、106或108接收,或者可以包括由云基础设施系统102转换的企业数据,或其组合。认证信息可以从身份管理系统116接收和/或由云基础设施系统102生成。在一些实施例中,认证信息可以包括指示关于针对服务的请求的用户的安全认证的信息。
企业计算机系统(诸如企业计算机系统126)可以物理地位于云基础设施系统102的防火墙之外与云基础设施系统102不同的地理位置(例如,远程地理位置)处。在一些实施例中,企业计算机系统126可以包括一个或多个不同的计算机或服务器。在一些实施例中,企业计算机系统126可以是单个计算机系统的一部分。
在某些实施例中,企业计算机系统126可以使用一个或多个不同的协议与云基础设施系统102通信。每个企业计算机系统126可以使用不同的通信协议与云基础设施系统102通信。企业计算机系统126可以支持相同或不同的安全协议。在一些实施例中,MCS 122可以包括代理系统,以处理与企业计算机系统126的通信。
协议可以包括通信协议,诸如SPeeDY(“SPDY”)。协议可以包括应用协议,诸如基于HTTP的协议。在一些实施例中,企业计算机系统126可以使用诸如REST或简单对象访问协议(“SOAP”)之类的通信协议与云基础设施系统102通信。例如,REST协议可以支持包括统一资源标识符(“URI”)或统一资源定位符(“URL”)的格式。为了使用REST协议通信而格式化的企业数据可以容易地转换成诸如JavaScript对象符号(“JSON”)、逗号分隔值(“CSV”)和真正简单聚合(“RSS”)的数据格式。企业计算机系统126和云基础设施系统102可以使用诸如远程过程调用(“RPC”)(例如,扩展标记语言(“XML”)RPC)的其它协议来通信。
在一些实施例中,MCS 122可以包括被配置为支持与由云基础设施服务102提供的一个或多个服务的通信的适配器接口,其中一些服务可以支持用于通信的不同协议或技术。在一些实施例中,MCS122可以包括被配置为支持与企业计算机系统126的通信的适配器接口,其中一些可以支持用于通信的不同协议或技术。MCS 122可以包括一个或多个适配器,每个适配器可以被配置为根据通信协议、企业计算机系统的类型、应用的类型、服务的类型或其组合进行通信。适配器支持的通信协议可以特定于服务或一个或多个企业计算机系统126。
在某些实施例中,客户端计算设备104、106和108可以各自实现可以提供特定UI以与MCS 122通信的应用。特定UI可以被配置为使用特定通信协议进行通信。在一些实施例中,特定UI可以包括可被调用以便与MCS 122通信的可调用接口、函数、例程、方法和/或操作。特定UI可以为了与云基础设施服务102提供的服务或与企业计算机系统126通信和/或请求服务而接受企业数据,作为输入参数。在一些实施例中,通过MCS 122的通信可以被转换,以便使用定制的通信协议进行通信。在一些实施例中,特定UI可以与应用中的定制客户端对应。
MCS 122可以包括一个或多个可调用接口,例如API。与MCS122相关联的可调用接口可以使得移动计算设备上的应用能够向MCS 122传送请求。与MCS 122相关联的可调用接口可以支持公共或标准接口,其可以根据标准化协议、体系架构风格和/或格式(例如,REST协议)允许从应用接收包括其参数的请求。与MCS 122相关联的可调用接口可以由计算设备104、106或108中的任何一个的用户配置。与MCS 122相关联的可调用接口可以根据通信协议接收对服务的请求。设备应用开发人员可以连接到用于其定制应用的MCS 122。在一些实施例中,与MCS 122相关联的可调用接口可以由开发应用的同一个人配置,使得该人可以实现定制应用以与MCS122通信。
与MCS 122相关联的可调用接口还可以使企业计算机系统126能够根据标准化的协议或格式与MCS 122通信。与应用开发人员类似,管理企业计算机系统的人可以实现被配置为经由一个或多个可调用接口与MCS 122通信的代码(例如,代理系统)。与MCS 122相关联的可调用接口可以基于计算设备的类型、企业计算机系统的类型、应用、代理系统、服务、协议或其它标准来实现。在一些实施例中,与MCS 122相关联的可调用接口可以支持对服务的请求,包括认证、压缩、加密、使用游标的分页、基于客户端的节流(throttling)、不可否认(non-repudiation)、记录和度量收集。在一些实施例中,与MCS 122相关联的可调用接口可以被实现以用于与定制的商业相关的服务,诸如认证、策略实施、响应的高速缓存、对MCS122的调用的节流、在异步模式和同步模式之间变换、对底层服务的调用的记录,或其组合。在一些实施例中,与MCS 122相关联的可调用接口可以使用户能够加载用于由云基础设施系统102实现的定制代码。定制代码可以实现与用于云基础设施系统102的MCS 122相关联的一个或多个可调用接口,这可以使用户能够访问定制服务或其它企业计算机系统。
与MCS 122相关联的协议变换器可以处理消息,以确定用于消息的通信协议和/或将消息转换到用于目的地的通信协议。与MCS122相关联的协议变换器可以转换从客户端计算设备104、106或108接收到的请求。该请求可以从客户端计算设备104、106或108支持的通信协议的格式转换为由云基础设施服务102或企业计算机系统126提供的服务支持的通信协议的格式。与MCS 122相关联的协议变换器可以转换从由云基础设施服务102或企业计算机系统126提供的服务接收到的响应。响应可以从由云基础设施服务102或企业计算机系统126提供的服务支持的通信协议的格式转换成由客户端计算设备104、106或108支持的通信协议的格式。
与MCS 122相关联的安全服务可以管理从客户端计算设备104、106或108中任一个接收到的请求的安全认证。与MCS 122相关联的安全服务可以保护客户进程和企业数据的完整性。为了防止系统或数据被破坏,当从客户端计算设备104、106或108接收到请求时,可以发生安全认证。安全认证可以在分派请求以便云基础设施系统102处理之前执行。为用户确定的安全认证可以使得与移动计算设备相关联的用户能够具有经由MCS 122请求服务的授权。安全认证可以减少用户对经由MCS 122请求的不同请求和/或服务进行认证的工作。与MCS 122相关联的安全服务可以被实现为一个或多个功能块或模块,其被配置为执行认证请求的安全性的各种操作。
与MCS 122相关联的认证服务可以管理从客户端计算设备104、106或108接收到的请求的安全认证。与MCS 122相关联的认证服务可以确定与向MCS 122发送请求的计算设备相关联的用户的安全认证。安全认证可以基于时间段来确定,该时间段可以绑定到应用的操作(例如,启动应用)、请求、计算设备、企业计算机系统、与请求相关的其它标准或其组合。安全认证可以针对以下任何一个进行验证和准许,诸如个人请求、一个或多个企业计算机系统、特定服务、服务类型、用户、计算设备、用于确定安全认证的其它标准,或其组合。在一些实施例中,云基础设施系统102可以存储从企业计算机系统或支持企业计算机系统的认证系统接收到的用户的认证信息。云基础设施系统102可以通过执行查找功能以确定与请求相关联的用户的身份是否具有做出这种请求的授权来确定认证。所存储的认证信息可以包括用户可以被授权访问的诸如请求的类型、功能、企业计算机系统、企业数据等信息。在一些实施例中,基础设施系统102可以发起与发出请求的计算设备的通信,以确定认证。
在一些实施例中,安全认证可以基于与请求服务的用户相关联的角色来确定。该角色可以与请求访问MCS 122的用户相关联。在一些实施例中,用户可以作为MCS 122的订户或租户来请求服务,其可以被准许访问由MCS 122提供的资源和/或服务。认证可以对应于用户对MCS 122的订阅,使得用户可以被授权作为订户经由MCS122请求服务。在一些实施例中,该订阅可以被限制到由MCS 122提供的特定资源集合。安全认证可以基于对MCS 122的用户可访问的资源和/或服务。在一些实施例中,可以在称为“运行时环境”的执行期间为请求供给模板。运行时环境可以与为请求、用户或设备分配的资源相关联。
在一些实施例中,与MCS 122相关联的认证服务可以请求身份管理系统确定用于用户的安全认证。身份管理系统可以由云基础设施系统102或由云基础设施系统102外部的另一计算机系统实现(例如,作为身份管理114)。身份管理116可以基于用户的角色或者订阅来为访问MCS 122确定用户的安全认证。可以关于企业计算机系统、企业计算机系统提供的服务、企业计算机系统的功能或特征、用于控制对企业计算机系统的访问的其它标准或其组合向角色或订阅指派特权和/或权利。
可以在云基础设施系统102中提供各种不同的ADF 124。ADF124提供基础设施代码,以实现基于敏捷的SOA的应用。ADF 124还通过一个或多个开发工具(例如,“OracleJDeveloper 11g”开发工具)提供开发的可视性和声明性方法。由ADF 124提供的一个或多个框架可以实现MVC设计模式。这种框架提供一个集成的解决方案,其覆盖MVC体系架构的所有层,具有对这些区域的解决方案,如对象/关系映射、数据持久性、可重用控制器层、丰富的Web UI框架、数据到UI的绑定、安全性和定制。除了核心的基于Web的MVC方法之外,这种框架还与Oracle SOA和WebCenter Portal框架集成,从而简化了完整复合应用的创建。
在某些实施例中,ADF 124通过将服务接口耦合到由云基础设施系统102提供的内置业务服务,使得容易开发将数据作为服务暴露的敏捷应用。业务服务实现细节的这种分离在ADF 124中经由元数据执行。这种元数据驱动的体系架构的使用使应用开发人员能够专注于业务逻辑和用户体验,而不是服务被如何访问的细节。在某些实施例中,ADF 124在模型层中的元数据中存储服务的实现细节。这使开发人员能够在不修改UI的情况下交换服务,从而使应用非常灵活。此外,创建UI的开发人员不需要操心业务服务访问细节。相反,开发人员可以专注于开发应用接口和交互逻辑。创建用户体验可以像将期望的业务服务拖放到可视页面设计器上并指示应当由哪种类型的部件表示该数据一样简单。
在各种实施例中,开发人员与ADF 124交互,以创建形成企业应用的模块。企业应用可以在云基础设施系统102的上下文中执行。在各种实施例中,开发人员与ADF 124交互,以创建形成移动应用的模块。移动应用可以在云基础设施系统102的上下文中执行。下面描述的本发明的特征可以使用编程语言和应用开发框架的任何期望的组合来实现,如对于相关领域的技术人员通过阅读本文提供的公开内容将清楚的那样。
在一个示例中,由ADF 124提供的一个或多个框架可以体现为Oracle ADF。相应地,ADF 124中的框架可以基于MVC设计模式。MVC应用被分为:1)处理与数据源的交互并运行业务逻辑的模型层,2)处理应用UI的视图层,以及3)管理应用流程并充当模型层和视图层之间的接口的控制器。将应用分为这三个层简化了部件跨应用的维护和重用。每个层与其它层的独立性导致松散耦合的SOA。
在各种实施例中,ADF 124提供允许开发人员以多个层的形式创建应用的工具和资源,每个层包含根据预定义的规范实现期望逻辑的代码模块/文件。因此,在一个实施例中,ADF 124使应用能够被开发为四个层:包含提供应用的UI的代码模块/文件的视图层,包含控制应用的流程的代码模块的控制器层,包含为底层数据提供抽象层的数据/代码模块的模型层,以及包含提供对来自各种源的数据的访问并处理业务逻辑的代码模块的业务服务层。
在某些实施例中,ADF 124让开发人员选择当实现每一层时他们优选使用的技术。企业JavaBean(“EJB”)、Web服务、JavaBeans、JPA/EclipseLink/TopLink对象以及许多其它都可以用作用于ADF 124的业务服务。视图层可以包括利用Java Server Faces(“JSF”)、Desktop Swing应用和Microsoft Office前端实现的基于Web的界面,以及用于移动设备的界面。
在一个方面,视图层表示正在被开发的应用的UI。视图层可以包括桌面视图、移动视图和基于浏览器的视图,其中每个视图提供UI的全部或一部分,并且可以按照与视图类型对应的各种方式访问。例如,web页面可以由应用响应于接收到包含对应URL的客户端请求而被发送。web页面然后可以由浏览器显示在与发出请求的客户端系统相关联的显示单元(未示出)上,从而使得发出请求的客户端系统的用户能够与企业应用交互。ADF 124支持对业务服务的多信道访问,从而允许业务服务的重用和从Web客户端、基于客户端-服务器swing桌面的应用、Microsoft Excel电子表格、诸如智能电话的移动设备等进行访问。
可以使用超文本标记语言(“HTML”)、Java服务器页面(“JSP”)和JSF中的一种或多种来实现形成视图层(诸如web页面)的代码文件/模块。替代地,可以使用诸如Swing和/或XML之类的Java部件来实现UI。如进一步所述,UI可以充分利用用户的经验和对桌面应用(诸如Microsoft的Word和Excel)的熟悉。
如上所述,在每个层中提供相关的用户开发的代码/数据模块。但是,每一层通常包含由ADF 124提供的其它预定义的代码/数据模块。这些预定义的模块中的一些可以在开发期间使用,例如,作为用于开发web页面的模板,用于将期望的功能包括在所开发的代码中,等等。其它预定义模块(诸如URL重写模块)可以与所开发的应用一起部署,并且可以在企业应用执行期间向用户提供附加的功能(将所请求的URL映射到内部名称)。
控制器层包含控制应用的流程的代码模块/文件。每个控制器对象包含根据在视图层中呈现信息的期望方式而实现的软件指令和/或数据。期望的方式可以包括当用户点击/选择另一个web页面中的链接时要显示的特定web页面、当执行期间发生错误时要显示的页面、指示要存储/检索的特定数据,等等。
在一个方面,控制器层管理应用流程并处理用户输入。例如,当在页面上点击“搜索”按钮时,控制器确定要执行的操作(进行搜索)和导航到的位置(结果页面)。在JDeveloper中对于基于Web的应用有两个控制器选项:标准JSF控制器或扩展JSF控制器功能的ADF控制器。无论使用哪种控制器,应用流程通常都是通过在图表上布置页面和导航规则来设计的。应用的流程可以被分解为更小的、可重用的任务流程;包括非可视部件,诸如流程中的方法调用和决策点;以及创建在单个包含页面的区域内运行的“页面片段”流程。
形成控制器层的代码模块/文件常常被实现为接收客户端请求并将期望的web页面作为对应响应发送的Java servlet(小伺服程序)。控制器对象也可以被实现为例如Apache Jakarta Struts控制器,或根据JSF标准实现。
模型层包含将各种业务服务连接到在其它层中使用这些业务服务的对象(诸如连接到上面讨论的控制器对象或直接连接到桌面应用)的数据/代码模块。模型层的每个抽象数据对象提供可以用于访问在底层业务服务层中执行的任何类型的业务服务的对应接口。数据对象可以从客户端抽象服务的业务服务实现细节和/或向视图部件暴露数据控制方法/属性,从而提供视图层和数据层的分离。
在一个方面,模型层由利用元数据文件定义接口的两个部件(数据控件和数据绑定)组成。数据控件从客户端抽象业务服务实现细节。数据绑定向UI部件暴露数据控件方法和属性,从而提供视图和模型的干净分离。由于模型层的元数据体系架构,所以当将任何类型的业务服务层实现绑定到视图层和控制器层时,开发人员获得相同的开发体验。
在某些实施例中,ADF 124强调贯穿整个开发过程使用声明性编程范例,以允许用户专注于应用创建的逻辑,而不必涉及实现细节。在高级别处,用于Fusion Web应用的开发过程通常涉及创建应用工作空间。通过使用向导,由开发人员选择的技术所需的库和配置被自动添加,并将应用结构化为具有包和目录的项目。
通过对数据库对象进行建模,可以创建任何数据库的在线数据库或离线副本、编辑定义,以及更新模式。使用统一建模语言(“UML”)建模器,然后可以为应用创建用例。还可以设计应用控制和导航。图形绘制器可以被用来可视确定应用控制和导航的流程。然后,可以自动创建描述流程的底层XML文件。资源库可以被用来允许开发人员通过简单地将导入的库拖放到应用中来查看和使用导入的库。可以使用向导或对话框从数据库表创建实体对象。从这些实体对象创建视图对象以供应用中的页面使用。可以实现验证规则和其它类型的业务逻辑。
在这个示例中,业务服务层管理与数据持久化层的交互。它提供诸如数据持久性、对象/关系映射、事务管理和业务逻辑执行等服务。业务服务层可以以以下任何选项实现:作为简单的Java类、EJB、Web服务、JPA对象和Oracle ADF业务部件。此外,数据可以直接从文件(XML或CSV)以及REST中消费。因此,每个业务服务管理与对应的数据持久化层的交互,并且还提供诸如对象/关系映射、事务管理、业务逻辑执行等服务。业务服务层可以使用简单的Java类、企业Java Beans、Web服务等中的一个或多个来实现。
业务部件表示使用例如来自Oracle公司的“Oracle ADF业务部件”实现的业务服务,以提供与数据库、Web服务、遗留系统、应用服务器等的交互。在一个实施例中,业务服务层的业务部件包含应用模块、视图/查询对象和实体对象的混合,它们合作以提供业务服务实现。应用模块可以是UI客户端为了与应用/事务数据一起工作而与其通信的事务部件/代码模块。应用模块可以提供可更新的数据模型以及与用户事务相关的过程/函数(通常被称为服务方法)。
实体对象可以表示数据库表中的对应行并且简化存储在对应行中的数据的操纵(更新、删除等)。实体对象通常封装用于对应行的业务逻辑,以确保期望的业务规则始终得到实施。实体对象还可以与其它实体对象相关联,以反映存储在底层数据库中的行之间存在的关系。
III.保密性、驻留和安全性
保密性、驻留和安全性(PRS)涉及解决对进入云中的数据进行模糊的问题。两种常见的模糊方法是加密和令牌化。使用这些方法中的任一种确保在组织享受由云基础设施系统102提供的基于云的应用的好处时,数据对于窥探者而言保持难以破译。
图2是根据本公开的一些实施例的利用基于云的应用来提供保密性、驻留和安全性的系统200的框图。在图2所示的实施例中,系统200包括一个或多个客户端计算设备205、210和215,这些客户端计算设备可以被用户用来与提供云服务的云基础设施系统220(例如,关于图1所描述的云基础设施系统102)交互,云服务包括提供对可能被模糊或可能没有被模糊的数据的访问的服务。应该理解的是,系统200可以具有除所描绘的那些之外的其它部件。此外,图2所示的实施例仅是利用可以结合一些实施例的基于云的应用提供保密性、驻留和安全性的系统的一个示例。在一些其它实施例中,系统200可以具有比图中所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有不同的部件配置或布置。
在这个示例中,系统200包括企业基础设施系统225、PRS系统230和云基础设施系统220。企业基础设施系统225可以包括一个或多个客户端设备、服务器、联网设备、路由器、代理、网关,等等。如图所示,企业基础设施系统225包括与PRS系统230和云基础设施系统220通信的一个或多个客户端计算设备205、210和215。如图所示,PRS系统230包括PRS服务器235和私有数据库240,并且云基础设施系统220包括基于云的应用245和云数据库250。
客户端计算设备205、210和215可以是与以上针对图1中示出的104、106和108所描述的设备类似的设备。客户端计算设备205、210和215可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Forms)或一些其它应用,其可以由客户端计算设备的用户使用来与云基础设施系统220交互以使用由云基础设施系统220提供的服务。虽然将示例性系统环境200示出为具有三个客户端计算设备,但是可以支持任何数量的客户端计算设备。诸如具有传感器的设备等的其它设备可以与云基础设施系统220交互。
客户端计算设备205、210和215可以是便携式手持设备(例如蜂窝电话、计算平板电脑、个人数字助理(“PDA”))或可穿戴设备(例如,Google头戴式显示器),运行软件(诸如Microsoft Windows)和/或各种移动OS(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等),并且启用互联网、电子邮件、短消息服务(“SMS”)、或其它通信协议。客户端计算设备205、210和215可以是通用个人计算机,例如包括运行各种版本的MicrosoftApple和/或Linux OS的个人计算机和/或膝上型计算机。客户端计算设备205、210和215可以是运行任何各种可商业获得的或类UNIX操作系统(包括但不限于各种GNU/Linux OS,诸如例如Google Chrome OS)的工作站计算机。替代地或附加地,客户端计算设备205、210和215可以是能够通过一个或多个网络通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的微软Xbox游戏控制台)和/或个人消息传送设备。
PRS服务器235可以包括一个或多个计算机和/或服务器。这些计算机系统或服务器可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括个人计算机(“PC”)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。与PRS服务器235相关联的一个或多个计算机系统或服务器可以运行包括以上讨论的任何一个OS的OS,以及任何可商业获得的服务器OS。与PRS服务器235相关联的一个或多个计算机系统或服务器还可以运行各种附加的服务器应用和/或中间层应用中的任何一种,包括超文本传输协议(“HTTP”)服务器、文件传输协议(“FTP”)服务器、公共网关接口(“CGI”)服务器、服务器、数据库服务器、电子邮件服务器、反向代理等。
在某些实施例中,由PRS服务器235提供的服务可以包括一系列服务,诸如数据保密性、驻留和安全性等。PRS服务器235可以通过图形方式安装并且被配置为使用特定于应用的适配器来支持特定于云应用的要求。在一些示例中,PRS服务器235可以通过保护离开企业基础设施系统225的数据(例如通过使用加密或令牌化)来提供数据保密性。PRS服务器235可以无缝地截获客户端计算设备205、210和215与基于云的应用245之间的数据传输,从而用替换数据(例如,令牌或经加密的数据)代替敏感数据。如组织所定义的,不能或不应该离开企业基础设施系统225的敏感数据保留在私有数据库240中,例如在PRS系统230的防火墙后面,同时客户端计算设备205、210和215的用户体验基于云的应用245的几乎所有功能,无论敏感数据驻留在何处。PRS服务器235可以执行“即时加密”,在这种情况下,不是在本地存储和管理敏感数据,而是在敏感数据被发送到基于云的应用245之前将敏感数据加密或令牌化,并且在返回时用敏感数据来解密或替代。如果在没有PRS系统230的情况下直接访问,由基于云的应用245接收并且可选地存储在云数据库250本身中的敏感数据将仅作为值或令牌的加密列表出现。
PRS服务器235可以通过防止满足某些条件的数据(例如,敏感数据)离开企业基础设施系统225来提供数据驻留。PRS服务器235可以从数据传输中识别满足条件的特定数据片段、将该特定数据片段保存到私有数据库240、为识别出的特定数据片段的真实值生成替换值(例如,加密值或令牌)、并将生成的替换值发送给基于云的应用245。识别出的特定数据片段的真实值保持本地地驻留在私有数据库240中,私有数据库240可以由当地法规监管并且根据公司政策操作。因此,基于云的应用245针对替换数据来操作,该替换数据可以存储在云数据库250中。PRS服务器235可以诸如使用作为令牌、可排序令牌、加密值和明文的类别来对云应用数据进行分类。在一些实施例中,可以使用如本文详细讨论的模糊策略来逐字段地保护数据。
PRS服务器235可以通过管理对存储在私有数据库240中的数据的访问来提供数据保密性、驻留和安全性。PRS服务器235可以确保仅从组织发生对基于云的应用245的授权访问。PRS服务器235可以创建企业基础设施系统225和云基础设施系统220之间的安全认证链路。在一个实施例中,PRS服务器235被配置为利用加密的算法方案来将在网络传输中检测到的明文信息变换为不可读的密文。PRS服务器235可以提供允许PRS服务器235对网络传输内的数据进行加密和解密的密钥管理。该密钥管理可以包括根据需要生成、分发、存储、旋转和撤销/销毁密码密钥的能力,以保护与密码密钥相关联的敏感数据。在其它实施例中,PRS服务器235被配置为利用令牌化来保护敏感数据。PRS服务器235可以使用数据替换,其中令牌(或别名)被作为真实值的替代。在令牌化的处理中,PRS服务器235截获敏感数据并将该数据发送到私有数据库235,该敏感数据在私有数据库235中被安全地存储。同时,PRS服务器235可以生成一组随机唯一的字符(令牌)并将该令牌返回以用于代替真实数据。PRS服务器235(或私有数据库240)可以维护引用数据库,该引用数据库允许当再次需要令牌值时,令牌值被交换为真实数据。
相应地,PRS服务器235可以允许无论如何对窥探者没有意义的经加密的值或令牌值在各种基于云的应用(诸如基于云的应用245)中被用作真实数据的可靠替代。基于云的应用245可以表示使用如关于图1所讨论的ADF 124开发的一个或多个企业应用。这些企业应用可以在云基础设施系统220的上下文内执行。基于云的应用245可以包括MVC应用,该MVC应用被分成1)处理与云数据库250的交互并运行业务逻辑的模型层,2)处理递送到客户端设备205、210和215中的一个或多个客户端设备的应用UI的视图层,以及3)管理应用流程并且充当模型层和视图层之间的接口的控制器。
在一个方面,视图层表示正在被开发的应用的UI。视图层可以包括桌面视图、移动视图和基于浏览器的视图,其中每个视图提供UI的全部或一部分,并且可以按照与视图类型对应的各种方式访问。例如,web页面可以由基于云的应用245响应于从客户端设备205、210和215中的一个或多个客户端设备接收到包含对应URL的客户端请求而被发送。web页面然后可以由浏览器显示在与客户端设备205、210和215中的一个或多个客户端设备相关联的显示单元(未示出)上,从而使得一个或多个客户端设备205、210和215的用户能够与基于云的应用245交互。可以使用超文本标记语言(“HTML”)、Java服务器页面(“JSP”)和JSF中的一种或多种来实现形成视图层(诸如web页面)的代码文件/模块。替代地,可以使用诸如Swing和/或XML之类的Java部件来实现UI。如进一步所述,UI可以充分利用用户的经验和对桌面应用(诸如Microsoft的Word和Excel)的熟悉。
如上所述,PRS服务器235可以对网络流量进行监视(例如,截获)并且实施保密性、驻留和安全性策略。关于一个或多个客户端设备205、210和215与基于云的应用245之间的通信,PRS服务器235可以截获源自一个或多个客户端设备205、210和215的传输以实施保密性、驻留和安全性政策。在所示示例中,一个或多个客户端设备205、210和215可以向云基础设施系统220发送包括以下信息片段的网络传输:地址=“123MAIN”和联系人=“JOHN”。PRS服务器235可以截获该网络传输并检查其内容以确定是否任何信息片段要服从保密性、驻留和安全性策略。例如,PRS服务器235可以确定“联系人”信息片段是要服从保密性、驻留和安全性策略的敏感数据,并且不应该被发送到云基础设施系统220。PRS服务器235可以修改网络传输来如下地将信息加密或令牌化,其中“联系人”信息片段被指定为敏感或私有数据:地址=“123MAIN”[公共数据]和联系人=“JIDL45”[私有数据]。PRS服务器235可以将密码密钥和/或原始数据与令牌映射一起存储在私有数据库240中。PRS服务器235然后可以将经修改的网络传输与替换值(例如,加密值或令牌)一起转发到基于云的应用245。
关于一个或多个客户端设备205、210和215与基于云的应用245之间的通信,PRS服务器235可以在相反的处理中截获去往一个或多个客户端设备205、210和215的传输以实施保密性、驻留和安全性策略。在所示示例中,PRS服务器235可以确定“联系人”信息片段已被加密或令牌化,并且PRS服务器220可以使用与从私有数据库240中检索到的令牌映射一起的密码密钥和/或原始数据来修改该网络传输,以对信息进行解密或使信息去令牌化。PRS服务器235然后可以将经修改的网络传输转发给一个或多个客户端设备205、210和215。
图3A是当使用来自企业基础设施系统225内的一个或多个客户端设备205、210和215进行查看时与基于云的应用245相关联的UI300的图示。如图所示,“联系人”页面305被显示为具有一个或多个联系人名片310。每个联系人315的姓名与其它UI元素(诸如照片和包括地址的其它数据字段)一起是可见的。如本文详细描述的,PRS服务器235的管理员可以将UI页面300的姓名字段指定为受保护的数据。图3B是当从云基础设施系统220内查看时或者使用计算设备从企业基础设施系统225外部的位置访问基于云的应用245时与基于云的应用245相关联的UI 300’的图示。如图所示,“联系人”页面305’被显示为具有相同的联系人名片310’;但是,每个联系人315’的姓名被加密或用令牌化数据代替,而其它UI元素(诸如照片和包括地址的其它数据字段)保持为具有真实值。
IV.自描述配置
在一些实施例中,与基于云的应用245相关联的模型层包含数据/代码模块,这些数据/代码模块将各种业务服务连接到在其它层中使用这些业务服务的对象,诸如连接到以上讨论的控制器对象或直接连接到桌面应用。模型层的每个抽象数据对象提供可以用于访问在底层业务服务层中执行的任何类型的业务服务的对应接口。数据对象可以从客户端抽象服务的业务服务实现细节和/或向视图部件暴露数据控制方法/属性,从而提供视图层和数据层的分离。
在一个方面,模型层由利用元数据文件来定义UI的两个部件(数据控件和数据绑定)组成。数据控件从客户端抽象业务服务实现细节。数据绑定向UI部件暴露数据控件方法和属性,从而提供视图和模型的干净分离。通过对数据库对象建模,可以创建云数据库250以与云应用245一起使用。可以使用向导或对话框从数据库表中创建实体对象。从这些实体对象中,创建视图对象以由应用中的页面使用。可以实现验证规则和其它类型的业务逻辑。
实体对象可以表示数据库表中的对应行并且简化存储在对应行中的数据的操纵(更新、删除等)。实体对象通常封装对应行的业务逻辑,以确保期望的业务规则始终得到执行。实体对象还可以与其它实体对象相关联,以反映存储在底层数据库中的行之间存在的关系。
因此,实体对象可以是表示云数据库250中的行并且简化修改其相关联的属性的ADF业务部件。可以通过在云数据库250中指定实体对象将表示其中的行的数据库表,来定义该实体对象。然后可以创建关联来反映实体对象之间的关系。在运行时,实体行由相关的实体定义对象管理,并且每个实体行由相关的行键来识别。在与向云数据库250提供数据库事务的基于云的应用245相关联的应用模块的上下文中,检索和修改实体行。
图4是图示根据本发明的一个实施例中的实体之间共享的属性的框图。图4示出了实体对象,例如,账户对象405、联系人对象410、联系人对象415和员工对象420。图4还示出了数据库表,例如,地址表425、电话/电子邮件表430和人员表435,它们各自包括在实体之间共享的各种属性440、445和450。如图所示,账户对象405和联系人对象410的地址属性440可以存储在相同的数据库表(例如,地址表425)中。每个行可以由相关的行键来识别,以指定该行是否保持账户对象405和/或联系人对象410的地址属性440的值。类似地,账户对象405和联系人对象410的电话/电子邮件属性445可以存储在相同的数据库表(例如,电话/电子邮件表430)中。如还示出的,联系人对象415和员工对象420可以是具有存储在人员表435中的属性450的人员对象的子类型。每个行可以由行键来识别,以指定该行保持的人员对象的类型,例如,是联系人人员还是员工人员。
由于PRS服务器的一般方法是嗅探或监视有线流量并且对受保护的字段执行数据加密或令牌化,因此可能难以将该功能与如图4所示的利用对各种实体对象的部件进行共享的基于云的应用集成。常规上,用户可能必须配置每个基于云的应用的每个UI页面以标记用户期望进行保护的敏感字段。例如,即使联系人对象415和员工对象420共享相同的底层数据库表或属性,用户也可能需要为联系人对象415配置UI页面并且为员工对象420配置UI页面。对于庞大且复杂的应用来说,这变得非常具有挑战性。即使使用正则表达式来减少管理员执行的工作量,用户也可能必须遍历所有可能的UI页面并逐个配置每个UI页面。此外,由于基于云的应用可能具有被共享和重用的部件,因此可能在多个UI上使用相同的字段标识符,即使这些字段标识符不一定反映该字段的实际“含义”。使用正则表达式不仅非常痛苦,而且还会导致可能的敏感数据泄露或保护非敏感数据时不必要的性能开销。
为了克服这些问题,在一些实施例中,云基础设施系统220可以提供一个或多个服务,以用于对基于云的应用245的实体对象、UI页面等的关于PRS服务器235的配置进行自描述。云基础设施系统220可以(例如,在与企业基础设施系统225相关联的组织的请求下)提供允许PRS服务器235的管理员在基于云的应用245的数据级别或部件级别上识别敏感数据的API。例如,管理员可以在数据级别上标记实体对象的社会安全号码属性450,使得包括该社会安全号码属性450的任何和所有的联系人和员工对象415、420都使其数据受到保护,而不管敏感数据在企业基础设施系统225之外何处被使用。在另一个示例中,管理员可以在部件级别处标记仅仅某些类型的实体对象(例如,员工对象420)的名称属性450,使得只有由给定部件使用的包括该名称属性450的那些实体对象才在由企业基础设施系统225之外的给定部件使用时被保护。云基础设施系统220然后可以动态地生成由PRS服务器235识别出的UI元素与被标记的字段之间的映射。以这种方式,云基础设施系统220可以使共享部件受到保护,而不管该共享部件在何处被使用以及什么值与标识符相关联。这减少了让PRS服务器235维护多个条目的需要。
在一个实施例中,一旦使用PRS服务器235识别出敏感数据对象,管理员就可以(1)向部件的底层数据层添加提示(hint),以及(2)向部件添加protectionKey(保护键)属性。当基于云的应用245使用受保护的实体对象生成UI页面时,涉及这些受保护的部件的任何数据都在网络传输的有效载荷中连同标识符和由PRS服务器235可识别的字段之间的映射一起被发送,以执行必要的数据加密/令牌化。因此,当对部件进行配置时,可以将名称为protectionKey的新属性添加到EditableValue(可编辑值)部件,该名称为protectionKey的新属性控制部件的值是否应该受保护。该属性的值可以是PRS服务器235识别出的部件的名称。可以在基于云的应用245的数据绑定层处添加逻辑以提取包括由PRS服务器235识别出的值的保护提示。如果protectionKey不在部件级别处,则基于云的应用245可以从数据绑定层检索protectionKey属性。对于发送到基于云的应用245的请求,如果涉及受保护的数据,那么可以将构建id到protectionKey的映射放置在网络传输的有效载荷中。因此,不是直接将部件客户端标识符映射到可由PRS服务器235识别的对象/字段,而是可以基于静态配置来实时地生成映射。
图5图示了在一些实施例中提供PRS服务器235的自描述配置的消息序列图。在方框502中,云基础设施系统220提供针对基于云的应用245所使用的数据模型的API,PRS服务器235可以从该API访问配置。提供API可以包括提供应用或设计者可以用请求(通常为HTTP请求、SOAP请求、XML消息等)命中(hit)的服务器侧端点。该服务器侧端点可以使用具有良好定义的URL方案(例如,www.enterpirse.com/contacts)的HTTP端点来实现。在方框504中,PRS服务器235使用所提供的API从云基础设施系统220请求数据模型的配置数据。该配置数据可以包括使用数据模型建模的实体的可保护属性/部件的集合(例如,关于可以被配置为要服从保密性、驻留和安全性策略的属性/部件的信息)。请求506可以包括HTTP请求、SOAP请求、XML消息等。在方框508中,云基础设施系统220提供配置数据,该配置数据包括使用数据模型建模的实体的该可保护属性/部件的集合。在一些实施例中,该配置数据还包括可以应用于该可保护属性集合内的每个属性的保护类型(例如,可令牌化或可加密的)。
在一个实施例中,云基础设施系统220维护由基于云的应用245使用的可保护属性/部件的列表。云基础设施系统220可以附加地将具有可保护属性/部件的列表的提示(诸如受保护的字段的类型信息)发送给PRS服务器220。该提示可以提供关于可保护数据的参数的信息。云基础设施系统220返回具有以下格式的响应510:
在方框512中,PRS服务器235使用从云基础设施系统220接收到的关于可保护属性/部件的信息来生成用户界面。该用户界面允许PRS服务器235的管理员将所建模的实体的一个或多个可保护属性/部件配置为受保护的属性/部件。在方框514中,PRS服务器235的管理员(例如,在与企业基础设施系统225相关联的组织的请求下)将用户界面中的所建模的实体的一个或多个可保护的属性/部件(例如,对象“emp”中的字段“fname”)配置成被标记为受保护的属性/部件。在一些实施例中,将属性/部件标记为受保护的还可以包括关于要应用于该属性/部件的保护类型(例如,令牌化或加密)的指示。在方框516中,PRS服务器235通过将与用户界面一起生成的受保护的属性/部件信息发送到云基础设施系统220来向云基础设施系统220通知该受保护的属性/部件。在一个实施例中,PRS服务器220发送具有以下格式的消息518:
在方框520中,云基础设施系统220将指定的部件或实体对象属性标记为受保护的。在方框522中,云基础设施系统220可以向PRS服务器220发送针对受保护字段的确认信息。云基础设施系统210可以返回具有以下格式的响应524:
图6图示了在根据本发明的一个实施例中利用自描述配置的消息序列图。在方框602中,客户端设备205、210和215中的一个或多个从云基础设施系统220请求UI页面或客户端部件。请求604可以包括HTTP请求、SOAP请求、XML消息等。在方框608中,云基础设施系统220确定用于每个受保护属性的标识符。在一个实施例中,与基于云的应用245相关联的UI或部件运行时(例如,Oracle ADF Faces呈现)向数据模型级别询问每个受保护字段的令牌化标识符。在方框610中,云基础设施系统220生成UI或客户端部件并标记受保护的字段。云基础设施系统210可以在响应612中返回具有被标记的受保护字段的所生成的UI或客户端部件。在方框610中生成的被标记的受保护字段被包括在响应612的有效载荷中。例如,标记受保护字段可以具有以下格式:
<label class=”af_inputText_label-text"for="it3::content">Ename</label></td><tdvalign="top"nowrap class=”xve"><input id="it3::content"name="it3"style="width:auto"class="x25"size="10"maxlength="10"type="text"value="testname"protetionKey="EMP_OBJ/Ename_FLD"><Rd>
并且生成的UI或客户端部件可以具有以下格式:
AdfPage.PAGE.addComponents(newAdfRichInputText(′it3′,{′columns′:10,′maximumLength′:10,′protectionKey′:′EMP_OBJ/Ename_FLD′));
并且响应612的后续有效载荷可以包含具有以下格式的映射信息:
oracle.adf.view.rich.TOKLNIZED={′it3′:{′EMP_OBJ/Lname_FLD′}′}
在方框614中,PRS服务器235截获响应612,并且使用包括在响应612的有效载荷中的映射、利用来自私有数据库240的任何受保护数据来填充UI或客户端部件。例如,PRS服务器235使用该映射,将用于<field name=“fname”protect=“protect”tokenize=“tokenize'’/>的随机令牌化值替换为存储在私有数据库240中用于相同受保护字段:<field name=“fname”protect=“protect”tokenize=“tokenize'’/>的敏感数据值。PRS服务器235然后将经修改的响应616转发给一个或多个客户端设备205、210和215。在方框618中,一个或多个客户端设备205、210和215显示生成的Ul或客户端部件,该UI或客户端部件在受保护字段中包括来自私有数据库240的任何受保护数据。
在方框620中,一个或多个客户端设备20、210和215可以将数据发布到云基础设施系统220。发布的数据可以包括对Ul或客户端部件内的受保护字段的敏感数据的改变或更新。在一个实施例中,客户端运行时(例如,ADF Faces客户端)使用UI或客户端部件的令牌化信息利用公知的字段(例如,ProtectionKey)来将馈送映射(feed mapping)推送(spoon)给PRS服务器235。例如,PRS服务器235可以使用该公知的字段来查找其配置并找到对应的动作(例如,加密或令牌化)。在方框622中,一个或多个客户端设备205、210和215将映射插入到请求624中(例如,生成ID->protectionKey映射,如oracle.adf.view.rich.TOKENIZED={‘r1:0:foo:it1’:{‘object’:‘emp’,‘field’:‘fname’}})。一个或多个客户端设备205、210和215可以生成如下请求624以包括来自方框622的映射:
r1:0:foo:it1=SecretFirstName
r1:0:foo:it5=PublicLastName
r2:1:bar:it1=publicemail@oracle.com
javax.faces.ViewState=!-12t5t4tf7q
org.apache.myfaces.trinidad.faces.FORM=fl
Adf-Page-Id=0
event=b5
event.b5=<m xmlns=″http://oracle.com/richClient/comm″><kv=″type″><s>action</s></k></m>
oracle.adf.view.rich.PROCESS=f1,b5
oracle.adf.view.rich.TOKENIZED={′r1:0:foo:it1’:}‘object’:’emp′,‘field’:’fname′}}
在方框626中,PRS服务器235截获请求624,并且使用映射(例如,ID->protectionKey映射)将任何受保护的数据替换为经加密的值或令牌化值,并将受保护的数据存储在私有数据库225中。PRS 235然后将经修改的请求628转发到云基础设施系统220。
因此,PRS服务器235的管理员可以在数据模型/部件级别处识别敏感数据并且以自描述的方式标记它们。与基于云的应用相关联的任何生成的UI元素可以被动态地映射到由PRS服务器235识别出的对象/字段令牌。以这种方式,共享的部件将始终受到保护,而不管它在何处被使用以及它具有什么id值。而且,不需要向PRS服务器235添加多个条目。
V.支持对受保护的数据列和未受保护的数据列共享相同表
云数据库250可以包含敏感数据的加密版本或令牌化版本。如上所述,实体对象可以共享相同结构以及共享相同数据库表。一些实体对象可以受到保护,同时其它实体对象不受保护。传统上,需要不同的数据库表来服务不同的保护配置,因此对数据库表进行复制。
为了克服这些问题,在一些实施例中,当PRS服务器235的管理员在数据对象层配置部件或数据对象的保护规则时,可以定义区分标志以识别特定行属于哪个部件或数据对象。因此,共享相同结构但具有不同保护规则的所有部件或数据对象仍然可以共享相同的数据库表。这简化了维护多个类似的数据库表的管理工作,但也允许对结构上类似部件或数据对象进行操作的公共逻辑的重用,而不会引起任何安全性问题。
图7是描绘根据本发明的一个实施例的关于基于云的应用245所使用的各个层的图示。层710表示由基于云的应用245使用的、存储在云数据库250中的数据表。图示的数据库表包括被指定为用于部件或数据对象的区分标志的至少一个列,例如,实体区分符属性“TYPE”(“类型”)。图示的数据库表可以被配置为支持在由基于云的应用245使用的多个部件或数据对象之间共享的属性的超集。通过使用区分标志,可以识别特定行所属的部件或数据对象,例如,员工对象和联系人对象。应该理解的是,多个部件或数据对象可以共享相同的数据库表,同时具有不同的保护规则,例如令牌化、加密或未受保护。
可以将安全配置(即,部件或数据对象的保护规则)放置在数据库表之上的层(例如,数据模型层720)处。每个数据模型的属性,例如TYPE,可以被明确定义或暗示。因为区分标志被构建到数据对象中,因此当在基于云的应用245中使用数据对象(例如,诸如被绑定到各种UI部件)时,应当仅拾取属于该数据对象的行。例如,在“Emp”(“员工”)对象中,“A”属性受到保护,因此它在数据模型层中有两个提示:protectionState(保护状态)和protecionKey(保护键)。这些对于“Contact”(“联系人”)对象中的“A”属性不存在。此外,在“Contact”对象中,“B”属性受到保护,因此它在数据模型层中有两个提示:protectionState和protecionKey。这些对于“Emp”对象中的“B”属性不存在。因此,数据保护是在数据对象级别配置的,因此只有属于该数据对象的行才将服从加密/令牌化。
数据对象可以被绑定到UI层730中的一个或多个UI部件。典型地,数据对象被绑定到用于呈现数据对象的一个或多个属性的UI部件。例如,来自数据模型层720的数据对象可以通过诸如<af:inputText id=“FIELD1”value=“#{EMPbinding.A.inputValue}”/>的标准表达语言暴露给UI层730。在文档对象模型层740中,所呈现的UI部件可以包括指示某些文档对象模型(DOM)元素是受保护字段的标识符。如上所述,这些标识符可以包括由PRS服务器235生成的令牌标识符。
图8是在根据本发明的一个实施例中用于支持对受保护的数据列和未受保护的数据列共享相同表的方法800的流程图。在图8中绘出的方法800的实现或处理可以由软件(例如,指令或代码模块)在被逻辑机器(诸如计算机系统或信息处理设备)的中央处理单元(CPU或处理器)执行时执行、由电子设备的硬件部件或专用集成电路执行、或者由软件和硬件元件的组合执行。图8中绘出的方法800在步骤810中开始。
在步骤810中,接收支持多个数据对象的数据库表定义。数据库表可以被定义为支持多个数据对象。例如,人员表可以包括与多个数据对象之间共享的属性的超集对应的列。在步骤820中,至少一个列被指定为数据对象的区分标志。在一些实施例中,可以使用数据库表的预定列,或者可以为区分标志创建新的列。
在步骤830中,由数据库表支持的数据对象的至少属性被指定为受保护字段。如以上关于提供自描述配置所讨论的,PRS服务器235的管理员可以请求由基于云的应用245使用的数据对象的列表。管理员可以选择哪些数据对象(和/或它们的各个属性)服从安全性策略并将该信息发送到基于云的应用245。基于云的应用245然后可以对需要保护的任何数据库表、数据模型和部件进行配置。
在步骤840中,数据被存储在混合(comingling)受保护数据和未受保护数据的数据库表中。因此,当PRS服务器235的管理员在数据对象层配置部件或数据对象的保护规则时,可以定义区分标志以识别特定行属于哪个部件或数据对象。因此,共享相同结构但具有不同保护规则的所有部件或数据对象仍然可以共享相同的数据库表。这简化了维护多个类似数据库表的管理工作,但也允许重用对结构上类似部件或数据对象进行操作的公共逻辑,而不会引起任何安全性问题。
VI.对受保护字段的自动操作检测
由于不同的数据对象可能具有不同的受保护字段,因此如果对受保护字段执行由基于云的应用245执行的某些操作,那么该操作可能变得无效。在一些实施例中,基于云的应用245可以自动确定可能不被支持的操作以避免用户混淆。例如,基于云的应用245可以检查受保护数据上所有可能的运算符并且关于启用/禁用这些运算符做出智能决策。这可以极大地减少避免在对受保护数据执行某些操作时生成错误结果所需的工作量。自描述配置在这种情况下是有用的,因为当对某个字段的保护状态做出改变时,基于云的应用245意识到该改变并且可以自动启用/禁用任何相关的运算符。可以被启用/禁用的一些操作的示例包括对受保护数据的服务器端验证、对受保护数据的自动建议行为、允许在对受保护数据进行搜索时进行精确匹配、对受保护数据进行排序等。
图9是在根据本发明的一个实施例中用于受保护字段的自动操作检测的方法900的流程图。在图9中绘出的方法900的实现或处理可以由软件(例如,指令或代码模块)在被逻辑机器(诸如计算机系统或信息处理设备)的中央处理单元(CPU或处理器)执行时执行、由电子设备的硬件部件或专用集成电路执行、或者由软件和硬件元件的组合执行。图9中绘出的方法900在步骤910中开始。
在步骤910中,在数据模型层中生成数据模型层配置并在PRS服务器235处接收该数据模型层配置。例如,PRS服务器235可以利用云基础设施系统220的API来获得服从安全性策略的数据模型属性。数据模型层配置可以具有以下格式:
在步骤920中,确定一个或多个受保护字段。如以上关于提供自描述配置所讨论的,PRS服务器235的管理员可以请求由基于云的应用245使用的数据对象的列表。管理员可以选择哪些数据对象(和/或它们的各个属性)服从安全性策略并将该信息发送到基于云的应用245。基于云的应用245然后可以确定哪些字段受保护。
在步骤930中,确定可以使用受保护字段执行的操作。这可以包括确定受保护字段是否可搜索、在自动完成中使用等等。在步骤940中,基于所确定的可以对受保护字段执行的操作来配置基于云的应用245。在一个实施例中,当处理对受保护数据的验证程序(validator)时,基于云的应用245可以被配置为仅处理所需要的检查并跳过任何其它验证程序。基于云的应用245可以被配置为添加逻辑以控制受保护数据的自动建议行为。当呈现查询页面时,基于云的应用245可以被配置为仅允许精确匹配搜索运算符。当呈现表时,基于云的应用245可以被配置为禁用对来自受保护数据对象的列的排序。
VII.联合搜索
可以由基于云的应用245执行的、可能在针对受保护字段进行操作时变得无效的一项操作是搜索。当某个字段受保护时,搜索成为挑战。传统上,或者搜索功能被妥协为仅支持精确匹配,或者PRS服务器235必须具有每个单个可搜索行的完整副本,其中在云数据库250和私有数据库240之间建立数据复制。PRS服务器235然后需要执行对敏感数据和呈现逻辑的搜索以呈现最终结果。
在一些实施例中,一个或多个客户端设备205、210和215可以对从搜索私有数据库240和云数据库250中生成的搜索结果进行联合或集中。与基于云的应用245相关联的页面的呈现可能非常复杂。例如,如果PRS服务器235必须呈现基于云的应用245,那么用户将基于云的应用245与PRS服务器235集成起来可能是项巨大的任务。通过使用客户端侧的联合搜索,可以减少集成工作量,并且基于云的应用245可以完整地呈现最终结果页面,因此所有页面将具有相同的外观和感觉,并且是一致的。因此,联合搜索对受保护字段和未受保护字段做出对最终用户透明的搜索。此外,关于敏感数据不存在可搜索性上的妥协。
在各种实施例中,一个或多个客户端设备205、210和215将原始搜索分割成两个搜索。由于一个或多个客户端设备205、210和215中的每一个都知道哪些字段受保护以及哪些字段不受保护,因此,一个或多个客户端设备205、210和215基于如图6的方框610中标记的受保护字段映射来分割原始搜索。使用私有数据库240针对受保护字段执行第一搜索(例如,搜索请求有效载荷具有让PRS服务器235仅对受保护字段执行客户端侧搜索的信息),并且使用云数据库250针对包括未受保护字段的所有其它字段执行第二搜索(例如,PRS服务器235然后可以修改有效载荷信息,使得基于云的应用245知道具有保护令牌的新搜索项)。针对受保护字段的第一搜索是使用PRS服务器235执行的,并且结果集合将被传递给基于云的应用245(除了原始搜索之外)。基于云的应用245可以组装来自第一搜索和第二搜索的最终结果集合,并且呈现联合搜索结果页面。
例如,“Emp”(“员工”)对象“firstName”(“名”)属性可以用protectKey EMP_OBJ/Ename_FLD来保护,当用户确实搜索“以‘B’开头的FirstName”时,原始搜索请求包含所有必要的信息。PRS服务器235截获该请求、在私有数据库240中搜索FirstName、用所有匹配的FirstName的令牌化值更新该请求的有效载荷、并将该请求传递给基于云的应用245。基于云的应用245然后将用来自PRS服务器235的令牌化值来搜索云数据库250并生成在最终页面呈现中使用的最终结果数据集。所呈现的页面将被发送回一个或多个客户端设备205、210和215。PRS服务器235在发送到一个或多个客户端设备205、210和215之前截获该响应并将令牌化值转换为真实文本。将来自PRS服务器235的受保护字段的搜索结果和在基于云的应用245中直接完成的未受保护字段搜索结果组合在最终数据集中。
在各种实施例中,当用户发起搜索时,如果任何搜索标准是针对受保护字段的,那么PRS服务器235可以将该搜索应用于私有数据库240。PRS服务器235可以将结果集合生成为由行键识别的一组合格的行。然后该组行键被发送到用于基于云的应用245的搜索请求。当基于云的应用245处理该搜索请求时,将使用合格的一组行键来对最终搜索结果进行过滤。例如,行键被用于识别与搜索标准匹配的令牌化数据或经加密的数据,并且该令牌化数据或经加密的数据被添加到从针对云数据库250中的未受保护数据运行搜索标准所获得的搜索结果中。最终搜索结果将被呈现并发送回一个或多个客户端设备205、210和215以显示为对原始搜索请求的响应。
图10是在根据本发明的一个实施例中用于联合搜索的方法1000的流程图。在图10中绘出的方法1000的实现或处理可以由软件(例如,指令或代码模块)在被逻辑机器(诸如计算机系统或信息处理设备)的中央处理单元(CPU或处理器)执行时执行、由电子设备的硬件部件或专用集成电路执行、或者由软件和硬件元件的组合执行。图10中绘出的方法1000在步骤1010中开始。
在步骤1010中,接收到查询。例如,一个或多个客户端设备205、210和215可以根据用户提供的信息来构建查询,并且基于云的应用245可以从一个或多个客户端设备205、210和215接收该查询。查询可以包括适用于受保护字段和未受保护字段的搜索标准,例如,搜索人的名和姓,其中名是未受保护数据但姓是受保护数据。在步骤1020中,将与受保护字段相关的搜索标准发送给诸如PRS服务器235之类的数据安全提供商。在一个实施例中,一个或多个客户端设备205、210和215将整个查询发送给PRS服务器220以对受保护字段进行处理。PRS服务器235然后可以将搜索结果与原始查询一起发送给基于云的应用230。例如,在步骤1030中,将与公共字段相关的搜索标准与受保护字段搜索的结果一起发送给基于云的应用。在一些实施例中,可以独立地发送用于每个私有数据库225和云数据库235的搜索标准。
在步骤1040中,使用受保护字段结果和云搜索结果来呈现搜索的任何最终结果。在一个实施例中,当用户发起搜索时,如果任何搜索标准是针对受保护字段的,那么PRS服务器220可以将该搜索应用于私有数据库225。PRS服务器可以将结果集合生成为由行键识别的一组合格的行。然后该组行键被发送到用于基于云的应用230的搜索请求。当基于云的应用230处理该请求时,将使用合格的一组行键来对最终搜索结果进行过滤。只有最终搜索结果将被呈现并发送回客户端设备215以进行显示。
最终搜索结果包括满足针对私有数据库240的搜索标准的令牌化数据/经加密的数据与云数据的组合。在由一个或多个客户端设备205、210和215显示之前,令牌化数据/经加密的数据可以用来自私有数据库240的数据替换。相应地,来自私有数据库240和云数据库250的搜索结果可以被联合以向用户提供更加无缝的搜索体验。
VIII.硬件环境
在以下描述中,出于解释的目的,阐述了具体细节以便提供对本发明实施例的全面理解。但是,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。这些图和描述不是限制性的。
在一些图中绘出的系统可以以各种配置提供。在一些实施例中,系统可以被配置为分布式系统,其中系统的一个或多个部件跨云计算系统中的一个或多个网络分布。
图11绘出了用于实现实施例之一的分布式系统1100的简化图。在所示实施例中,分布式系统1100包括一个或多个客户端计算设备1102、1104、1106和1108,其被配置为通过一个或多个网络1110执行和操作客户端应用,诸如web浏览器、专有客户端(例如,OracleForms)等。服务器1112可以经由网络1110与远程客户端计算设备1102、1104、1106和1108通信地耦合。
在各种实施例中,服务器1112可以适于运行由系统的一个或多个部件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务被提供,或者在软件即服务(SaaS)模型下被提供给客户端计算设备1102、1104、1106和/或1108的用户。操作客户端计算设备1102、1104、1106和/或1108的用户又可以利用一个或多个客户端应用来与服务器1112交互以利用由这些部件提供的服务。
在图中绘出的配置中,系统1100的软件部件1118、1120和1122被示出为在服务器1112上实现。在其它实施例中,系统1100的一个或多个部件和/或由这些部件提供的服务也可以由客户端计算设备1102、1104、1106和/或1108中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以用硬件、固件、软件或其组合来实现。应该认识到的是,各种不同的系统配置是可能的,其可能与分布式系统1100不同。图中所示的实施例因此是用于实现实施例系统的分布式系统的一个示例,而不是要进行限制。
客户端计算设备1102、1104、1106和/或1108可以是便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)的软件,并且启用互联网、电子邮件、短消息服务(SMS)、或其它通信协议。客户端计算设备可以是通用个人计算机,作为示例,包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行任何各种可商业获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统,诸如例如Google Chrome OS)的工作站计算机。替代地或附加地,客户端计算设备1102、1104、1106和1108可以是能够通过(一个或多个)网络1110通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的微软Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性分布式系统1100被示出为具有四个客户端计算设备,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与服务器1112交互。
分布式系统1100中的(一个或多个)网络1110可以是本领域技术人员熟悉的、可以利用任何各种可商业获得的协议支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系架构)、IPX(互联网报文交换)、AppleTalk,等等。仅仅作为示例,(一个或多个)网络1110可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络1110可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电子电气学会(IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器1112可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。在各种实施例中,服务器1112可以适于运行在前述公开中所描述的一个或多个服务或软件应用。例如,服务器1112可以与用于执行以上根据本公开的实施例描述的处理的服务器对应。
服务器1112可以运行包括以上讨论的操作系统当中任意一种的操作系统,以及任何可商业获得的服务器操作系统。服务器1112还可以运行任何各种附加的服务器应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器,等等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等可商业获得的那些数据库服务器。
在一些实现中,服务器1112可以包括一个或多个应用,以分析和整合从客户端计算设备1102、1104、1106和1108的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括,但不限于,馈送、更新或者从一个或多个第三方信息源接收到的实时更新和连续数据流,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器1112还可以包括一个或多个应用,以经由客户端计算设备1102、1104、1106和1108的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统1100还可以包括一个或多个数据库1114和1116。数据库1114和1116可以驻留在各种位置中。作为示例,数据库1114和1116中的一个或多个可以驻留在服务器1112本地的(和/或驻留在服务器1112中的)非瞬态存储介质上。替代地,数据库1114和1116可以远离服务器1112,并且经由基于网络的连接或专用的连接与服务器1112通信。在一组实施例中,数据库1114和1116可以驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,用于执行服务器1112所具有的功能的任何必要的文件都可以适当地本地存储在服务器1112上和/或远程存储。在一组实施例中,数据库1114和1116可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图12示出了其中可以实现本发明的各种实施例的示例性计算机系统1200。系统1200可以用于实现上述任何计算机系统。如图所示,计算机系统1200包括经由总线子系统1202与多个外围子系统通信的处理单元1204。这些外围子系统可以包括处理加速单元1206、I/O子系统1208、存储子系统1218和通信子系统1224。存储子系统1218包括有形计算机可读存储介质1222和系统存储器1210。
总线子系统1202提供用于让计算机系统1200的各种部件和子系统按意图彼此通信的机制。虽然总线子系统1202被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统1202可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1204控制计算机系统1200的操作。一个或多个处理器可以被包括在处理单元1204中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元1204可以被实现为一个或多个独立的处理单元1232和/或1234,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元1204也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元1204可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1204中和/或存储子系统1218中。通过适当的编程,(一个或多个)处理器1204可以提供上述各种功能。计算机系统1200可以附加地包括处理加速单元1206,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统1208可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的Microsoft360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1200向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统1200可以包括包含软件元件、被示为当前位于系统存储器1210中的存储子系统1218。系统存储器1210可以存储可加载并且可在处理单元1204上执行的程序指令,以及在这些程序的执行期间所产生的数据。
取决于计算机系统1200的配置和类型,系统存储器1210可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元1204立即访问和/或目前正被处理单元1204操作和执行的数据和/或程序模块。在一些实现中,系统存储器1210可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如包含有助于在启动期间在计算机系统1200的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,系统存储器1210也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1212,程序数据1214,以及操作系统1216。作为示例,操作系统1216可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种可商业获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google操作系统等)和/或诸如iOS、Phone、OS、12 OS和OS操作系统的移动操作系统。
存储子系统1218也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1218中。这些软件模块或指令可以被处理单元1204执行。存储子系统1218也可以提供用于存储根据本发明被使用的数据的储存库。
存储子系统1200也可以包括可被进一步连接到计算机可读存储介质1222的计算机可读存储介质读取器1220。与系统存储器1210一起并且,可选地,与其相结合,计算机可读存储介质1222可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质1222也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1200访问的任何其它介质。
作为示例,计算机可读存储介质1222可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1222可以包括,但不限于,驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质1222也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM)、基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统1200提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统1224提供到其它计算机系统和网络的接口。通信子系统1224用作用于从其它系统接收数据和从计算机系统1200向其它系统发送数据的接口。例如,通信子系统1224可以使计算机系统1200能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统1224可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子系统1224可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统1224也可以代表可以使用计算机系统1200的一个或多个用户接收结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230等形式的输入通信。
作为示例,通信子系统1224可被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送1226,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1224也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流1228和/或事件更新1230。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统1224也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230,等等,这一个或多个数据库可以与耦合到计算机系统1200的一个或多个流式数据源计算机通信。
计算机系统1200可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板电脑、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1200的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
在前述的说明书中,本发明的各方面参考其具体实施例进行了描述,但本领域技术人员将认识到的是,本发明不限于此。上述发明的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。

Claims (20)

1.一种方法,包括:
由计算设备提供针对由基于云的应用所使用的数据模型的应用编程接口(API);
由所述计算设备通过所述API接收对所述数据模型的配置数据的请求,其中所述请求是由监视客户端设备和所述基于云的应用之间的通信的数据安全提供商生成的;
由所述计算设备生成包括所述配置数据的响应,其中所述配置数据包括使用所述数据模型建模的实体的可保护属性集合;
由所述计算设备接收所述可保护属性集合中的要被保护的属性的指示;以及
由所述计算设备将所述可保护属性集合中的被指示的属性标记为受保护的。
2.如权利要求1所述的方法,其中所述配置数据还包括能够应用于所述可保护属性集合内的每个属性的保护类型。
3.如权利要求2所述的方法,其中所述保护类型是可令牌化的或者是可加密的。
4.如权利要求2所述的方法,其中所述可保护属性集合中的要被保护的属性的指示还包括要应用于该属性的保护类型的指示。
5.如权利要求1所述的方法,其中所述计算设备对使用由所述基于云的应用所使用的所述数据模型而建模的实体的所述可保护属性集合进行维护。
6.如权利要求1所述的方法,还包括:
由所述计算设备从所述客户端设备接收对利用所述数据模型的用户界面或部件的请求;以及
由所述计算设备生成响应,该响应包括所述用户界面或部件以及被标记为受保护的属性。
7.如权利要求6所述的方法,还包括由所述计算设备从所述客户端设备接收对利用所述数据模型的所述用户界面或部件的后续请求,其中与被标记的属性相关联的数据值被令牌化或者被加密。
8.一种其上存储有指令的非瞬态机器可读存储介质,所述指令当由一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的方法:
提供针对由基于云的应用使用的数据模型的应用编程接口(API);
通过所述API接收对所述数据模型的配置数据的请求,其中所述请求是由监视客户端设备和所述基于云的应用之间的通信的数据安全提供商生成的;
生成包括所述配置数据的响应,其中所述配置数据包括使用所述数据模型建模的实体的可保护属性集合;
接收所述可保护属性集合中的要被保护的属性的指示;以及
将所述可保护属性集合中的被指示的属性标记为受保护的。
9.如权利要求8所述的非瞬态机器可读存储介质,其中所述方法还包括:
从所述客户端设备接收对利用所述数据模型的用户界面或部件的请求;
生成包括所述用户界面或部件以及被标记为受保护的属性的响应;以及
从所述客户端设备接收对利用所述数据模型的所述用户界面或部件的后续请求,其中与被标记的属性相关联的数据值被令牌化或者被加密。
10.一种系统,包括:
处理器;以及
存储指令集合的存储器,所述指令集合当由所述处理器执行时使所述处理器:
提供针对由基于云的应用使用的数据模型的应用编程接口(API);
通过所述API接收对所述数据模型的配置数据的请求,其中所述请求是由监视客户端设备和所述基于云的应用之间的通信的数据安全提供商生成的;
生成包括所述配置数据的响应,其中所述配置数据包括使用所述数据模型建模的实体的可保护属性集合;
接收所述可保护属性集合中的要被保护的属性的指示;以及
将所述可保护属性集合中的被指示的属性标记为受保护的。
11.如权利要求10所述的系统,其中所述配置数据还包括能够应用于所述可保护属性集合内的每个属性的保护类型。
12.如权利要求11所述的系统,其中所述保护类型是可令牌化的或者是可加密的。
13.如权利要求10所述的系统,其中所述可保护属性集合中的要被保护的属性的指示还包括要应用于该属性的保护类型的指示。
14.如权利要求10所述的系统,其中所述计算设备对使用由所述基于云的应用所使用的所述数据模型而建模的实体的所述可保护属性集合进行维护。
15.如权利要求10所述的系统,其中所述指令集合当由所述处理器执行时还使得所述处理器:
从所述客户端设备接收对利用所述数据模型的用户界面或部件的请求;
生成包括所述用户界面或部件以及被标记为受保护的属性的响应;以及
从所述客户端设备接收对利用所述数据模型的所述用户界面或部件的后续请求,其中与被标记的属性相关联的数据值被令牌化或者被加密。
16.一种方法,包括:
由计算设备接收具有多个列的数据库表的定义,所述多个列支持多个数据对象;
由所述计算设备接收将所述多个列中的至少一个列识别为实体区分符属性的信息;
由所述计算设备将所述多个列中的所述至少一个列指定为实体区分符属性,其中针对所述多个数据对象中的至少一个数据对象的查询返回具有与所述至少一个数据对象相关联的实体区分符属性的行集合;
由所述计算设备接收将所述至少一个数据对象的多个属性中的至少一个属性识别为受保护字段的信息;以及
由所述计算设备将所述至少属性指定为受保护字段。
17.如权利要求16所述的方法,其中接收将所述多个列中的所述至少一个列识别为实体区分符属性的信息包括:接收将所述多个列中的所述至少一个列作为实体对象类型的选择。
18.如权利要求16所述的方法,其中接收将所述多个列中的所述至少一个列识别为实体区分符属性的信息包括:接收将所述多个列中的所述至少一个列作为索引的选择。
19.如权利要求16所述的方法,还包括:
由所述计算设备从客户端设备接收对利用所述至少属性的用户界面或部件的请求;以及
由所述计算设备生成包括所述用户界面或部件以及受保护的所述至少属性的响应。
20.如权利要求19所述的方法,还包括由所述计算设备从所述客户端设备接收对利用所述至少属性的所述用户界面或部件的后续请求,其中与所述至少属性相关联的数据值被令牌化或者被加密。
CN201680072767.2A 2015-10-23 2016-10-21 具有对共享数据表的支持的自描述配置 Active CN108604278B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562245588P 2015-10-23 2015-10-23
US201562245579P 2015-10-23 2015-10-23
US62/245,579 2015-10-23
US62/245,588 2015-10-23
PCT/US2016/058270 WO2017070575A1 (en) 2015-10-23 2016-10-21 Self describing configuration with support for sharing data tables

Publications (2)

Publication Number Publication Date
CN108604278A true CN108604278A (zh) 2018-09-28
CN108604278B CN108604278B (zh) 2022-03-18

Family

ID=57223794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680072767.2A Active CN108604278B (zh) 2015-10-23 2016-10-21 具有对共享数据表的支持的自描述配置

Country Status (4)

Country Link
EP (1) EP3365832B1 (zh)
JP (1) JP6775013B2 (zh)
CN (1) CN108604278B (zh)
WO (1) WO2017070575A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297813A (zh) * 2019-05-22 2019-10-01 平安银行股份有限公司 数据迁移方法、装置、计算机设备及存储介质
CN111917872A (zh) * 2020-07-31 2020-11-10 阮兆明 一种结构化消息流的数据服务架构方法
CN114286988A (zh) * 2019-09-24 2022-04-05 国际商业机器公司 处理数据库系统的数据
CN114945020A (zh) * 2022-05-17 2022-08-26 宝信软件(武汉)有限公司 一种基于云平台的云边协同数据接入方法以及系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10586061B2 (en) 2015-10-23 2020-03-10 Oracle International Corporation Federated search
US10193953B2 (en) 2015-10-23 2019-01-29 Oracle International Corporation Self describing configuration
US10592684B2 (en) 2015-10-23 2020-03-17 Oracle International Corporation Automatic operation detection on protected field
US10496837B2 (en) 2015-10-23 2019-12-03 Oracle International Corporation Support sharing the same table for protected and non-protected data columns
JP6756914B2 (ja) 2018-11-27 2020-09-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム
US11366928B2 (en) * 2020-01-29 2022-06-21 Collibra Nv Systems and method of contextual data masking for private and secure data linkage

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法
CN101094199A (zh) * 2007-03-02 2007-12-26 李沫南 为基于浏览器的应用提供即时通信功能的方法与系统
US20080208918A1 (en) * 2007-02-26 2008-08-28 Microsoft Corporation Efficient data handling representations
US20090094193A1 (en) * 2007-10-09 2009-04-09 Oracle International Corporation Secure normal forms
CN101938515A (zh) * 2010-08-31 2011-01-05 北京世纪互联工程技术服务有限公司 实现互联网电视用户间信息共享的方法
CN102096697A (zh) * 2009-12-09 2011-06-15 东芝泰格有限公司 数据库系统、服务器装置、终端装置以及数据出示方法
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
US20120278621A1 (en) * 2011-04-27 2012-11-01 Terrence Peter Woloszyn System and method of data interception and conversion in a proxy
US20130054650A1 (en) * 2011-08-23 2013-02-28 John O'Byrne Automatic detection of columns to be obfuscated in database schemas
CN103279509A (zh) * 2013-05-17 2013-09-04 北京首钢自动化信息技术有限公司 一种采用动态查询语言的快速查询方法
CN104346426A (zh) * 2013-07-29 2015-02-11 Sap欧洲公司 共享数据去重复的方法和系统
CN104717307A (zh) * 2015-04-07 2015-06-17 常熟理工学院 一种车载云通信的实现方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011145802A (ja) * 2010-01-13 2011-07-28 Nec Corp メッセージ仲介装置及びその制御方法
JP5790471B2 (ja) * 2011-12-13 2015-10-07 富士通株式会社 暗号処理方法、復号処理方法、装置及びプログラム
US10803976B2 (en) * 2012-06-22 2020-10-13 Oracle International Corporation Collaboration networking tool
JP6089881B2 (ja) * 2013-03-28 2017-03-08 富士通株式会社 データ検索方法、データ追加更新方法、データ検索プログラムおよび中継装置
JP2014238642A (ja) * 2013-06-06 2014-12-18 沖電気工業株式会社 個人情報保護装置および個人情報保護システム並びに個人情報保護方法およびプログラム
US9231946B2 (en) * 2014-02-07 2016-01-05 Oracle International Corporation Mobile cloud service architecture

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080208918A1 (en) * 2007-02-26 2008-08-28 Microsoft Corporation Efficient data handling representations
CN101094199A (zh) * 2007-03-02 2007-12-26 李沫南 为基于浏览器的应用提供即时通信功能的方法与系统
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法
US20090094193A1 (en) * 2007-10-09 2009-04-09 Oracle International Corporation Secure normal forms
CN102096697A (zh) * 2009-12-09 2011-06-15 东芝泰格有限公司 数据库系统、服务器装置、终端装置以及数据出示方法
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
CN101938515A (zh) * 2010-08-31 2011-01-05 北京世纪互联工程技术服务有限公司 实现互联网电视用户间信息共享的方法
US20120278621A1 (en) * 2011-04-27 2012-11-01 Terrence Peter Woloszyn System and method of data interception and conversion in a proxy
US20130054650A1 (en) * 2011-08-23 2013-02-28 John O'Byrne Automatic detection of columns to be obfuscated in database schemas
CN103279509A (zh) * 2013-05-17 2013-09-04 北京首钢自动化信息技术有限公司 一种采用动态查询语言的快速查询方法
CN104346426A (zh) * 2013-07-29 2015-02-11 Sap欧洲公司 共享数据去重复的方法和系统
CN104717307A (zh) * 2015-04-07 2015-06-17 常熟理工学院 一种车载云通信的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
段琳琳: "共享平台数据属性重合下的LDAP多身份认证", 《科技通报》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297813A (zh) * 2019-05-22 2019-10-01 平安银行股份有限公司 数据迁移方法、装置、计算机设备及存储介质
CN110297813B (zh) * 2019-05-22 2022-09-02 平安银行股份有限公司 数据迁移方法、装置、计算机设备及存储介质
CN114286988A (zh) * 2019-09-24 2022-04-05 国际商业机器公司 处理数据库系统的数据
CN111917872A (zh) * 2020-07-31 2020-11-10 阮兆明 一种结构化消息流的数据服务架构方法
CN111917872B (zh) * 2020-07-31 2023-01-31 阮兆明 一种结构化消息流的数据服务架构方法
CN114945020A (zh) * 2022-05-17 2022-08-26 宝信软件(武汉)有限公司 一种基于云平台的云边协同数据接入方法以及系统
CN114945020B (zh) * 2022-05-17 2023-08-08 宝信软件(武汉)有限公司 一种基于云平台的云边协同数据接入方法以及系统

Also Published As

Publication number Publication date
WO2017070575A1 (en) 2017-04-27
JP6775013B2 (ja) 2020-10-28
JP2019501438A (ja) 2019-01-17
CN108604278B (zh) 2022-03-18
EP3365832B1 (en) 2021-11-03
EP3365832A1 (en) 2018-08-29

Similar Documents

Publication Publication Date Title
US10193953B2 (en) Self describing configuration
US10372936B2 (en) Shared identity management (IDM) integration in a multi-tenant computing environment
CN108604278A (zh) 具有对共享数据表的支持的自描述配置
US10586061B2 (en) Federated search
US10496837B2 (en) Support sharing the same table for protected and non-protected data columns
US10592684B2 (en) Automatic operation detection on protected field
CN105659557B (zh) 用于单点登录的基于网络的接口集成的方法和系统
CN105659558B (zh) 计算机实现的方法、授权服务器以及计算机可读存储器
CN104737175B (zh) 计算机实施的方法及系统、计算机可读媒体
JP7165715B2 (ja) 統合検索のためのサポートを伴う保護されたフィールド上の自動動作検出
CN109792439A (zh) 用于威胁检测的动态策略注入和访问可视化
CN105493049B (zh) 针对基于云的调试
CN107924411A (zh) 事务系统中ui状态的恢复
CN106796526A (zh) Json样式表语言变换
CN107113302A (zh) 多租户计算系统中的安全性和许可架构
CN105900396A (zh) 移动云服务体系架构
JP2017533503A (ja) モバイルアプリケーションのための効率的および直観的なデータ・バインディング
CN109074265A (zh) 移动云服务的预先形成的指令
US10104086B2 (en) Techniques for fine grained protection of resources in an access management environment
US20150199535A1 (en) Organization-based policies
US10380218B2 (en) Server-side access filters for web content
US20220043917A1 (en) Proof of information notice in client-server settings

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant