需要管理和保护的服务。策略由一组规则构成,每一个规则都适用于运行时行为的某一方面。例如,服务可能会有多个接口;可以设置适用于整个服务的规则,也可以设置仅适用于一个或多个服务接口的规则。
本页内容
![]() | 策略简介 |
![]() | 协定 |
![]() | 在组织中使用策略 |
![]() | 策略小结 |
策略简介
在组织中,不仅不同的部门承担不同业务逻辑部分责任,进而承担不同服务责任,而且不同的部门或角色通常还要管理各项服务。所有这些组都具有不同的责任: 可能一个组负责定义安全规则,而另一个组需要保证系统的正常运行时间和响应。通常,需要在项目的设计阶段考虑这些管理规则,不过,这些解决方案通常都不够灵活,不能适应日后的更改。策略用于设置控制通信和服务行为的运行时规则。在设计过程中加入策略,可以提高灵活性从而更易于管理。
协定
消息流是在解决方案设计阶段的早期设计的;在项目的详细设计和实现阶段,将对消息流进行完善和优化。将详细定义消息格式并设置服务质量规则;例如,可以决定使用可靠的事务性消息处理。通过这种方式,得以在设计过程中考虑服务之间的协定,而后在实现阶段对其进行优化和完善。
在部署解决方案时,将为服务分配实际地址,并已定义了信任规则以及为所有与外界的通信指定了身份验证机制。为了达到理想的可靠性和性能目的,将建立故障转移机制和负载平衡机制。在此阶段,将对协定进行扩展。
在解决方案的使用过程中,可能会获得新的领悟从而可能需要加强安全规则。 业务关系将改变,信任规则也将改变;二者都会影响服务间的协定。将替换服务器并重新部署服务。由于所有这些原因,导致协定可能更改。
在组织中使用策略
服务在其他服务中具有不同的信任级别。 这些服务将会由于特定的原因而转向特定的服务,并信任该服务执行此功能。不过,它们不会信任所有执行该功能的服务。例如,它们信任某个域控制器提供域用户列表,但它们不会信任其他服务器提供这一信息。相对于外部服务,这些服务将更信任本地(同一组织内)的服务。这些服务是如何了解所有这一切的呢?
• | Fire and forget(发后不理)。 使用这种形式时,只发送一个消息,并且不期望得到(或者不愿意接受)响应。这种形式通常用于发送状态更新,如温度读数。 |
• | Monolog(独白)。使用这种形式时,消息流被推向服务端口,没有应答。独白通常用于音频 /可视内容,经常使用多播或广播将内容推向一个以上的接收者。 |
• | “请求/响应”(请求/响应)。这是一种我们很熟悉的形式,此时,客户端期望立即得到对信息请求的响应。 这是 HTTP在 Web 上使用的主要消息交换形式。 |
• | “对话框”(对话)。 这是一种与多个由认可的协议绑定的相关交换建立的点到点连接。 简单邮件传输协议 (SMTP) 就采用这种形式。 |
• | Conversations(会话)。虽然所有前面的形式都可以视为 “会话 ”形式,但该术语在这里用于描述一种可能涉及许多服务的灵活的交换。利用会话形式,可以进行支持实际业务功能所必不可少的复杂交换。 |
答案在于,组织可以定义规则,而规则使用策略控制软件任一部分的行为。可以设置策略来调整服务或服务器的运行时行为;可以设置策略来调整组件、通信和服务接口;事实上,可以为任何要在运行时观察和管理的事物定义策略。策略由一组规则构成,每一个规则都适用于运行时行为的某一方面。例如,服务可能会有多个接口;可以设置适用于整个服务的规则,也可以设置仅适用于一个或多个服务接口的规则。可以决定设置服务的优先级以及该服务的访问权限,也可以决定设置接口的通信协议以及该接口的访问权限。为服务接口设置策略仅实施了协定的一个方面;策略通常设置在组织内的服务目录中。
许多服务提供商都为其服务用户提供服务等级协议即 SLA)。这些协议经常采用法律协定的形式,定义提供商提供什么服务并且常常定义其提供的服务质量即 (QoS)。 由于 SLA 的正式特性,需要以可度量的术语来指定服务质量,例如,保证的服务正常运行时间、保证的服务并行用户数以及保证的服务最长响应时间和平均响应时间。在不太正式的方法中,可以在组织的部门之间定义SLA 或针对单个服务定义 SLA。 为了保证达到承诺的质量,需要纳入负载平衡、故障转移和许多其他机制。然后,将使用策略中定义的规则来控制这些机制。
消息处理基础体系结构可以采用针对特定服务接口定义的策略并启用和实施这些规则。通过这样的策略,组织可以指定与其他服务的信任关系和通信、其他服务的安全等级以及如何确保服务等级协议的规则。
基础体系结构可以解释这些策略并提供正确的行为;它可以支持并实施所有通信的正确身份验证机制、达成一致的协议和编码、设计时协定、审核,等等。基础体系结构还可以提供搜索机制并显示影响外部行为的策略部分。例如,搜索机制无需显示其正在审核通信;但是,它应该显示二进制编码的简单对象访问协议 (SOAP)是一种选择。
在大多数组织中,由不同的组或不同的角色负责基础体系结构的不同方面。一个组可能负责服务的安全,而另一个组可能负责服务的响应时间和正常运行时间;不同的服务可能处于不同的责任范围内。当由两个不同的组织管理的两项服务需要通信时,这两个组织必须协商协定。由于可能会影响到双方的不同组,这将以这种协定的不同方面而结束。基础协定将涉及设计时或功能方面,如消息格式、消息排序以及是否使用队列;其他方面可能会涉及安全协议,再有其他方面可能会涉及服务等级协议。这些协定层将与双方的策略相对应;可以根据组织内的责任和所协商协定的各层来将这些策略分组。有些策略是所有协定都反映不出来的;但也可以根据责任来对其进行分组。这种分组方法将支持组织的内部责任划分。
图 1 演示了协定的不同方面与不同策略的关系。
![bdadotnetarch08_03](https://i-blog.csdnimg.cn/blog_migrate/e04c754b43238e45b2e9b0f00db9208f.png)
图 1. 协定和策略
策略小结
策略用于定义与服务的运行时行为有关的规则。 它可以包括:服务间的通信、安全权限、审核策略,等等。在项目的设计阶段加入这些方面,可以使服务更加灵活且更易于管理。
使用策略不但可以定义对自己重要的任务,而且还可以提供在日后更改具体细节的灵活性。例如,可以设置策略,使内部雇员能够访问特定服务,而在日后,还可以将主要的供应商添加到该服务的用户中。