让程序员免于执行复杂的应用程序处理操作

当开发人员编写应用程序(特别是企业级应用程序)时,他们需要解决复杂的问题,例如安全性、数据的完整性或应用程序之间格式不兼容的数据的交换。 CICS® 提供了用于处理应用程序的服务,这些服务使各个开发人员不必了解这些服务并对其进行编码。

设置安全性
CICS 提供了一组安全功能,用于识别,认证和授权应用程序的所有用户,以及对 CICS 与用户之间流动的数据进行加密。 应用程序不需要自己实现检查,因为 CICS 为它们提供了功能。 对于标识, CICS 使用称为 SAF 的大型机工具来代表应用程序创建,更新和认证令牌。 对于授权, CICS 确保在应用程序访问资源 (例如数据库) 时,与请求关联的身份具有执行此操作的权限。 对于加密, CICS 提供了用于对进出应用程序的路由进行加密的机制。 用户与 CICS 之间流动的数据使用业界标准算法进行加密。 随着安全性需求的变化,基础结构的安全性实施可能会发生变化,通常无需更改程序源代码。 由于 CICS 与 IBM Z®上的其他应用程序共享 SAF ,因此它还为整个平台的安全性提供单点控制。
在程序之间传输执行和数据
CICS 不仅支持以多种语言托管程序,还提供了允许这些程序相互调用并在它们之间传递数据的功能。 所有语言都能通过相应的方式调用以同一种语言编写的另一个程序。 如果所有程序都是用同一种语言编写的,那么它们之间的转换就相对容易。 如果每个程序都使用不同的语言编写 (例如,从 Java™ 到 COBOL 的链接) ,那么很困难。 这里有一些选项(例如,JNI 或将每个程序单独作为应用程序公开),但是这些选项增加了编码、监视或管理的复杂性。

CICS 通过提供可供任何语言的程序用于调用任何其他程序的 API 来解决此问题。 CICS API 针对 CICS 支持的每种语言进行定制,以便应用程序开发者熟悉该 API ,但一种语言的 API 调用与另一种编程语言的相同 API 调用具有相同的功能效果。 例如, CICS LINK API 允许程序员告知 CICS 开始运行另一个程序。 然后, CICS 代表应用程序处理此混合语言调用的复杂性。

仅调用另一个程序是不够的。 不同的语言以不同的方式表示数据,并且这些方式可能彼此不兼容。 CICS 提供了一种称为 "通道和容器" 的机制,以允许程序与其他程序共享数据。 容器只是存储器的一部分,程序可以使用它来存储要传递给另一个程序的数据。 通道是这些容器的集合。

确保数据的完整性(事务性
在 CICS中,每个请求的处理都作为单独的事务进行处理。 作为该事务的一部分进行的所有更新都将保持 不确定 状态,直到 CICS 完成处理请求为止。 处理完成后,所有更新都将同时最终完成。 这种隐式的事务和工作单元处理方式不需要更改代码,并且对应用程序是透明的。 但是,如果程序想要对事务模型进行更多控制,那么它们可以使用两个 CICS API 调用: 一个称为同步点,用于完成不确定的工作单元并启动新的工作单元。 第二个是回滚,用于表示该工作单元无法再完成,应该回退。

事务不是 CICS所独有的。 其他应用程序服务器也为托管的应用程序提供事务功能。 例如, Java 事务体系结构 (JTA) 是 Java EE 完整平台规范的一部分。 与其他事务体系结构不同, CICS 可以在执行以不同语言编写的程序时维护事务。 即使通过新程序扩展了应用程序,该应用程序的事务性仍然保持不变。

访问数据库和大型机数据集中的数据
CICS 允许应用程序以与在 CICS中未运行时相同的方式访问数据库和数据集。 这更便于开发人员操作。 CICS 通过在处理异常情况时包含数据库和数据集来增加额外的值。 例如,如果系统发生故障,那么 CICS 可以撤销或回退程序对数据库所作的更改,并且无需在程序中进行特定代码更改即可使用该功能。
访问其他资源管理器
CICS 应用程序可以包含由 CICS外部的资源管理器 (例如 DB2, IMS和 IBM® MQ) 处理的命令。 CICS 使用适配器来提供应用程序与资源管理器之间的连接。
处理业务事件
可以捕获 CICS 应用程序中发生的业务事件,并将其传递到事件处理适配器以进行格式化和路由。 可以采用多种方式使用事件处理,例如,用它来检测客户趋势或检测客户行为模式中可能指示不正常或欺诈情况的异常现象。

查找更多信息

关于 CICS 应用程序 提供了有关 CICS 如何支持应用程序进度的更多详细信息。