上一主题: 组件结构下一主题: 目录


组件集

由于可以轻松捕获组件的结构并根据需要进行实例化,CA AppLogic® 可以定义新型组件,我们称之为复合组件或组件集。 组件集是包含边界和内核的组件。 定义组件集边界的方式类似于定义虚拟组件的边界的方式,它的内核由虚拟组件结构组成。

Web 开关是很有用的组件,可接受自身 in 输入上的 HTTP 请求,并将每个请求转发到五个 HTTP 输出之一,这五个输出分别为 img、out1、out2、out3 和 out4。 它还有一个名为 log 的输出,通过此输出,它可以生成需要记录在系统日志中的消息。

Web 开关具有以下三个主要功能:

要以旧方式生成此类组件,必须在服务器上正确安装和配置至少三个软件包,然后编写一些脚本将这三个软件包粘合在一起,并测试生成的图像。 完成此过程将花费几天到两周(甚至超过两周)的时间,具体取决于软件的复杂性、您的对专用包的熟悉度以及测试的彻底性。 更糟糕的是,在每次升级一个或多个软件包时,必须重复执行其中的大部分工作。

通过 CA AppLogic®,可以有更好的解决方法。

已作为组件的组件集实施的 Web 开关

上图显示了已作为组件的组件集生成的相同 Web 开关。 更具体地说,该图以基础结构编辑器将呈现的方式显示了组件集的内核。 在组件集的边界上定义的每个终端都可以由携带各自终端名称(例如:in、img、log 等)的“终端对象”表示。

Web 开关由三个组件组成,这三个组件分别为类 urlsw 的 URL 开关 (url)、类 web_lb 的 HTTP 负载均衡器 (lb) 以及类 squid 的内容缓存组件 (cache)。

提示:为了使结构的设计更易于理解,我们建议为结构的每个实例指定一个名称,以标识实例在给定结构中的角色。

URL 开关是简单组件。 它可以最多配置有四个正则表达式,以应用于在自身 in 终端上接收到的所有传入 HTTP 请求中包含的 URL。 如果 URL 与其中一个表达式匹配,则开关会通过各自的输出 out1 到 out4 转发整个请求。 如果没有匹配,则开关会通过 aux 终端转发请求。

负载平衡器在自身的 in 输入上接受 HTTP 请求,并以负载均衡方式通过自身的 out1 到 out4 输出转发这些请求。 此外,它有一个 log 输出,通过此输出它会生成可在全系统日志中收集的日志消息。

cache 是内存中的内容缓存。 它接受 in 上传入的 HTTP 请求,并尝试从缓存满足这些请求。 如果在缓存中找不到请求的对象,则组件会通过自身 out 终端转发请求,并在请求完成时缓存对象(可选)。

在 Web 开关组件中,URL 开关被配置为识别传入的 URL 中用于静态图像的路径,并转发 out1(已连接到 cache 的输入)上的请求。 所有其他 HTTP 请求均通过 aux 输出交托 url,并被装入负载均衡器中。 Web 开关的其他行为应该相当明显。