用于作为服务基础设施的平台中透明注入策略的系统和方法_5

文档序号:9602827阅读:来源:国知局
语义管线可以仅在发送方侧、接收方侧或者作为中间组件来使用。
[0044]建立策略还确定语义管线级。语义管线能够通过策略来改变或扩大。策略可内部控制和/或由外部实体来控制。在一个变化中,设置策略直接影响语义管线级。在另一个变化中,语义管线级可作为例如响应新组件的分级而应用于新的或者已更新组件的策略的结果来配置或确定。例如,语义管线可基于新应用的分级管线结果来确定。语义管线优选地是任何组件通信信道的中间服务。语义管线可绑定到通信信道的任何部分,如图16所示。作为可如何为平台中的任何组件来定义语义管线的说明性示例,甚至语义管线的操作中使用的组件、例如远程授权钩子也可具有语义管线。类似地,认证服务器、分级管线和任何适当组件可具有语义管线。如上所述,该方法可用于PaaS系统中,其中外部客户(即,用户)使用平台来运行其各种计算解决方案。在这个变化中,一些组件是用户组件,而其他组件是平台的操作中使用的内部平台组件。可对用户隐藏平台组件,但是语义管线也能够在内部平台组件上使用。
[0045]语义管线优选地如图17所示绑定到组件的出局通信一由组件所发起的动作、工作和通信在被传递到目的地之前将经过绑定语义管线。备选地,语义管线可绑定到组件的入局通信一在组件所定向的动作、工作和通信在由组件接收之前将在语义管线中处理。在一个变化中,可使用入局和出局语义管线,使得通信将经过至少两个语义管线。绑定语义管线优选地对特定组件来定制。语义管线备选地可以是通用语义管线。语义管线和/或语义管线的单独级可绑定到通信模式。语义管线的使用优选地在计算平台中是基本上普遍的。在一个变化中,各用户/客户分级组件通过语义管线进行通信。在备选变化中,语义管线被建立并且用于具有主动策略规则或配置语义管线级的任何组件。例如,可为所有HTTP业务或者到数据库的所有通信来定义语义管线。
[0046]包括隔离平台的组件的框320用来提供与外部组件的组件无关性。虽然组件可采用相关组件的假设来实现(例如配置数据库和包含库),但是优选地隔离组件,使得所有相关性能够被控制并且适合在语义管线中执行策略。优选地,各组件或者组件的至少大部分在隔离容器中实现。隔离容器优选地是操作系统级虚拟化实现(例如Linux容器)。隔离容器备选地可以是用于隔离或包含组件的任何适当机制。任何适当组件可放置在隔离容器中,例如应用、数据库、操作系统、服务器、服务或者任何适当组件。隔离组件优选地使任何适当实现能够使用。由于组件被隔离并且其他相关组件通过透明信道(例如语义管线)来访问,所以能够使用大量开发工具,同时仍然符合平台的策略。这能够向可具有不同编程语言和框架的各种偏好的开发人员、IT部门和平台管理员提供灵活性。隔离组件还能够使企业级平台适合开发工具的快速发展前景。
[0047]包括通过语义管线来信道传递组件的通信的框S330用来通过平台定义过程来定向组件的通信。通信优选地是一种形式的操作请求,例如请求信息、响应请求、传递指令或者至少两个组件之间的任何适当操作消息。信道传递组件的出局通信优选地包括开放组件的网络防火墙,以便在通信进行到目的地之前通过语义管线来定向组件的业务。从始发组件的角度来看,通信定向在预计目的地。但是,实际目的地可能不符合发起组件的预计。如上所述,应用可预计和假定它与MySQL数据库进行通信,但是实际数据库可能是PostgreSQL 数据库。
[0048]在语义管线绑定到组件的入局通信的变化中,组件的网络防火墙优选地配置成接收来自绑定语义管线的通信。从组件的角度来看,通信能够看来好像从始发组件直接通信。那个始发组件可以是实际始发组件,或者始发组件可以是作为语义管线的人工制品的合成始发组件。在一个示例中,数据库的用户可以是语义管线所创建的人工制品用户。应用可尝试使用数据库凭证的第一集合与数据库进行交互。语义管线在检验数据库凭证时则可使用数据库凭证的独立集合来访问数据库。在入局和出局通信情形中,语义管线的存在和操作对组件是透明的。
[0049]包括通过语义管线级逐渐处理通信的框S340用来在语义管线的每级来处理通信。语义管线优选地具有至少一级。语义管线还可具有多级,如图15所示。级优选地通过策略来控制。如上所述,由实体所定义的策略可直接影响语义管线级。备选地,作为策略的结果,可配置级。通信优选地由语义管线级依次处理。级优选地具有配置顺序。备选地,级可以是可交换的(即,两级能够按照任何依次顺序来处理,并且具有相同结果)、基于操作来排序或者按照任何适当方式来排序。在一个变化中,语义管线可以不是各个级的依次过程。通信可基于条件逻辑通过级进行。例如,级可基于进行级的结果有选择地处理。通过语义管线级来处理通信优选地包括产生作为处理结果的经处理的通信。结果能够是通信的扩大或修改版本、通信的转化版本、未修改版本、通信的多个版本(例如,如果传递给多个不同目标组件)或者具有任何适当形式。
[0050]语义管线级可由多个各种实体来定义。级的操作或工作可以是检查作用的准许或容许行为、变换或扩大通信、向外部服务分派通信的变换、触发外部服务、记录数据或者执行任何适当任务。级可以是有条件的,其中它们仅对匹配特定模式的通信来激活。优选地,策略规则能够使用名称空间寻址语法来定义语义管线的处理级。如上所述,令牌化通信能够用来在上下文之间传递上下文,以及在一些情况下,甚至在操作请求中传递发起方或所涉及组件。操作请求的内容、数据或性质还能够经过语义处理。模式匹配可基于针对命令的常规表达。例如,钩子可通过对SQL语句的常规表达匹配来调用。级备选地可应用于所有通信。级或外部钩子可考虑帧内部的各命令,并且聚合结果以将帧作为整体传递。
[0051]一种类型的语义管线级是同步级(S卩,内联级)。同步级可在允许通信在该级之后继续进行之前完成处理。更优选地,同步级完成充分处理量,以在允许通信继续进行到下一级之前进行判定。同步级能够用来改变、变换或扩大通信。同步处理级优选地处理原始通信或者从另一级所提供的通信(其可经过扩大),并且然后同步输出通信的扩大形式。在一种示范使用情况中,级可定义成变换特定类型的HTTP API请求。当级识别对特定API资源(例如URI)进行HTTP时,级可改变HTTP请求的主体。
[0052]一种特定类型的同步级可以是授权钩子,其用来检验是否允许通信。一个变化中的授权钩子是远程授权钩子。远程授权钩子优选地是外部组件(例如平台中的脚本或组件或者甚至PaaS平台外部的服务)。在一个变化中,语义管线通过HTTP与远程授权钩子进行通信,但是备选地可使用任何适当协议。在授权钩子是脚本的变化中,提供作用策略的脚本能够易于由负责那个策略的实体来保持和更新。脚本能够通过诸如Python、Perl、Ruby或者任何适当语言之类的语言来编写,其用来进一步向采用该平台进行工作的团队给予灵活性。授权钩子备选地可以是内联过程,其不要求调用远程组件。远程授权钩子能够基于通信参数、事务或工作来处理通信。在一个示例中,授权钩子查找请求组件是否具有执行那个动作的准许。如果允许通信,则授权钩子进行响应而确认允许通信。如果禁止通信,则授权钩子进行响应而拒绝通信,以及语义管线优选地向始发组件传送指示错误的响应。作为另一个示例,可检查和转换授权凭证,以使用内部凭证。例如,应用可提供访问数据库的凭证,但是,由于组件的隔离,如应用所查看的数据库可能不存在(至少不在与应用所预计的相同装备中)。在语义管线级中,检查凭证对应用是真实的,并且然后置换实际凭证以访问实际数据库。
[0053]另一种类型的同步级可以是等待时间钩子,其用来跟踪等待时间,如图18A所示。等待时间跟踪可用来实现、补充或促进应用性能管理。等待时间钩子优选地记录通信中明显的等待时间测量。另外,等待时间钩子可用来扰动等待时间,其可以可适用于测试和/或开发环境,如图18B所示。扰动等待时间优选地包括延迟通信,以模拟等待时间效果。等待时间的扰动能够对开发环境是有益的。扰动等待时间能够对通信添加固定时间延迟,添加时间延迟以满足等待时间范围,有条件地添加等待时间,或者对通信的等待时间进行任何适当变更。
[0054]另外,该方法可包括通过万维网钩子来触发动作。可对万维网钩子发布请求,其然后能够基于请求来触发任何适当/任意动作。处理万维网钩子级优选地包括传递通信的信息的全部或者一部分。将信息传递给所指定或预定义万维网钩子组件。定义万维网钩子级的策略能够定义定向与通信有关的信息的端点。在一个变化中,端点是URL,以及当处理万维网钩子级时,与通信有关的信息通过HTTP发送给URI。万维网钩子组件能够是外部应用服务器资源、内部组件、脚本或者任何适当的可触发端点。在一个变化中,万维网钩子组件能够使用与通信有关的信息来执行与通信的持续处理异步的外部动作。在另一个变化中,万维网钩子组件能够使用信息来执行某个定制逻辑,并且然后向语义管线返回结果,以同步改变通信。例如,万维网钩子组件可配置成执行对通信的定制转化或修改。万维网钩子组件优选地从外部实体、例如客户或第三方来操作或提供。
[0055]另一种类型的语义管线级可以是异步级,其用来允许处理在无需阻塞通信的情况下发生。异步级优选地触发外部服务或脚本以执行某个任务。异步级优选地用于不是通信的完成所需的操作,并且能够在传递通信之后的时间完成。审计和/或记录是异步级的示范使用情况。通信优选地在记录级中读取,并且然后输出到下一个处理级,或者如果没有更多级存在,则输出到语义管线的输出。
[0056]另外,通过语义管线级来处理通信能够包括在语义上解释通信,其用来将内容分析用于处理通信中。语义解释能够使用常规表达、自然语言处理、机器学习或者任何适当形式的语义解释来分析通信的内容。语义解释包括检测通信参数的字符串性质值。在一个变化中,将语义解释应用于清洁、编辑或审查通信。例如,语义管线级能够设置成识别社保号模式,并且修改通信的内容,以便使社保号匿名化,如图19所示。通过将策略配置成实现社保号级清洁级,环境可确保来自一个组件的社保号不会泄漏给其他组件,而与组件的动作无关。与审计级相组合,可执行审计,以检验社保号清洁。
[0057]与发送方的令牌化检验相结合,语义管线还能够按照通信的有关方来实施级中的策略。通信或者更具体来说是操作请求可具有比通信的直接发送方要多的所涉及组件。能够存在其中一个或多个组件可以是间接激励方或者以其他方式涉及到通信。令牌能够嵌入有关方的上下文信息,使得所涉及组件的完整链是语义管线可用的。级和对应处理能够取决于
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1