CICS

客户信息控制系统

CICS其全称是 Customer Information Control System,即客户信息控制系统。是一系列为应用提供联机事务处理和事务管理的产品,其功能是为商业应用提供一个事务处理环境,帮助客户建立三层次结构的联机事务处理应用,CICS 有效地区分应用系统中的表述逻辑层、业务逻辑层和数据逻辑层,从而使应用系统结构清晰,维护简单易行。

简介
CICS其全称是 Customer Information Control System,即客户信息控制系统。是一系列为应用提供联机事务处理和事务管理的产品,其功能是为商业应用提供一个事务处理环境,帮助客户建立三层次结构的联机事务处理应用,CICS 有效地区分应用系统中的表述逻辑层、业务逻辑层和数据逻辑层,从而使应用系统结构清晰,维护简单易行。
CICS 是IBM 公司的强大主机交易服务器、集成平台,在全球C、C++、COBOL等交易中间件市场上占有绝大多数客户。CICS有超过30年的历史,开发于在IBM英国的赫思里(Hursley)研发中心。CICS英国式发音是“kiks”。在AIX、HP等分布平台上的CICS叫Txseries。交易服务器也叫交易处理中间件。支持联机交易服务(OLTP),提供用户实时的交易请求与响应,支持分布式交易服务、多个数据源、异种数据源、和分布式协同应用,支持两阶段提交。
历史
CICS之前是一个较早的单线程事务处理系统IBM MTCS。后来开发了“MTCS-CICS”,允许这些事务在CICS下执行,而不改变原始的应用程序。
CICS最初是在美国伊利诺伊州Des Plaines的IBM开发中心在1966年开发的,旨在满足公共事业行业的要求。第一个CICS产品于1968年发布,名为公用事业客户信息控制系统或PU-CICS。很明显,它已经适用于许多其他行业,所以公共事业的前缀被删除,引入了CICS 计划产品的第一个版本在1969年7月8日,不久之后的IMS 数据库管理系统。
1970年初,许多原始开发人员,包括早期版本的首席架构师本·里金斯(Ben Riggins)搬到加利福尼亚州,并继续在IBM的帕洛阿尔托发展中心进行CICS开发。直到联邦法律要求软件分拆之后,IBM高管才将软件中的价值视为创收产品。在1980年,IBM的高管们没有听从Ben Riggins强烈的建议,即IBM应该提供自己的基于EBCDIC的操作系统和集成电路微处理器芯片,用于IBM个人计算机作为CICS 智能终端(而不是不兼容的英特尔芯片,由于该时代甚至大型处理器的容量有限,每个CICS安装都需要在完成类似于系统生成(sysgen)(称为CICSGEN)的过程之后组装所有CICS系统模块的源代码,以建立条件汇编的值语言陈述。此过程允许每个客户从CICS本身排除其不想使用的任何功能的支持,例如未使用终端类型的设备支持。当硬件价格非常昂贵时,CICS的早期受欢迎程度相对较高,其多线程处理架构,开发基于终端的实时交易应用程序的相对简单性以及许多开源客户贡献,包括调试和功能增强。
1974年,CICS的发展责任转移到英国的IBM Hursley网站,随着印度,中国,俄罗斯,澳大利亚和美国的实验室,开发工作继续进行。
1986年,IBM宣布CICS支持由分布式数据管理架构(DDM)定义的面向记录的文件服务。这使得远程网络连接的计算机上的程序能够创建,管理和访问以前仅在CICS/MVS和CICS/VSE事务处理环境中可用的文件。
原理
CICS是一个联机事务处理平台软件,它帮助客户建立三层次结构的联机事务处理应用。一般的操作系统设计会首先考虑对硬件如内存,硬盘等资源的控制和利用,对进程和线程的管理,以及其它一些基本设施和功能。操作系统一般对批处理作业有相当好的支持,而对于大量的随机性的,对响应时间要求甚高的联机事务处理,客户则通常寻求专门的联机事务处理平台软件的支持,CICS则是此行中的佼佼者。
事务处理的通俗称法为交易处理,常有人将事务处理和数据处理混淆起来,但事实上事务处理和数据处理有本质的区别,事务是指在某一事件中,参与事件的各主体均发生了状态的变化,而所有状态的变化集合起来,称为一个事务。关系型数据库软件如DB2、Oracle等服务的对象是数据,而CICS软件服务的对象是事务。
在事务过程的模式中,如订票系统,最终用户需要的是能否卖票,能否退票,并不关心在卖票或退票事务中改变了哪些数据,由于数据库服务软件提供的是数据服务,所以仅基于数据库服务软件的事务处理系统需要客户完成相当多的工作,实际上相当于客户自己来完成一个事务处理软件,或者客户只能构建一个两层次结构的处理模式,因此客户或者发现其应用的开发维护的难度增大了,或发现其开发的进度拖延了,或发现其应用和数据的安全性不尽如意,要解决这些问题其实容易,客户需要的是一个象CICS这样的事务处理软件,建立一个三层次结构的应用系统。
应用服务
CICS的以下组件支持应用程序开发。
1、基本映射支持(BMS),提供与设备无关的终端输入和输出。
2、数据交换计划(DIP),为IBM 3770和IBM 3790可编程器件提供支持。
3、2260兼容性,允许为IBM 2260显示设备编写的程序在3270显示器上运行。
4、EXEC接口程序 -,将EXEC CICS命令生成的调用转换为CICS函数的存根程序。
5、内置函数 ,包括表搜索,语音转换,字段验证,字段编辑,位检查,输入格式化,加权检索等。
命令
1、 启动CICS域。
cicscp -v start region regionname StartType=cold
其中 -v 表示显示启动过程信息,StartType=cold 表示使用冷启方式,需要特别注意的S和T必须大写,如果是热启,则不需要加上此参数。
2、启动SFS服务器。
cicscp -v start sfs_server /.:/cics/sfs/SFS服务器名 StartType=cold
其中/.:/cics/sfs/主机名 为SFS服务器的缺省名字,也可以是客户自己选择的名字。同样 StartType=cold 表示使用冷启方式。冷启SFS_SERVER 一定要慎重,因为它将清空所有SFS服务器上的文件,临时存储队列,临时数据队列。
3、如何查看CICS 和SFS服务器状态。
cicslssrc -a | grep cics
此命令只适用于unix 平台,对于NT平台,只需用Txseries administration utility 图形界面即可。
4、即时查看CICS系统信息,此信息来自于console.nnnnnn 和CSMT.out 的信息。
cicstail -r
5、停止CICS 域
cicscp -v stop region regionname
6、停止 SFS服务器。
cicscp -v stop sfs_server SFS 服务器名
7、增加,显示,删除,修改cics 资源定义。这里以程序为例。
下例是将向REGIONA中加入一个名为PROGRAM1的程序定义。
cicsadd -c pd -r REGIONA PROGRAM1 PathName=prog1 RSLKey=public
其中 PathName=prog1 表示可执行的CICS服务器程序位于/var/cics_regions/REGIONA 目录下,RSLKey=public 表示任何用户都可访问。
下例是显示刚才加入的程序定义:
cicsget -c pd -r REGIONA PROGRAM1
下例是修改此PROGRAM1 程序定义的属性RSLKey,
cicsupdate -c pd -r REGIONA PROGRAM1 RSLKey=2
RSLKey=2 表示 程序的资源安全键修改为2。
下例表示删除此程序定义。
cicsdelete -c pd -r REGIONA PROGRAM1
详细的命令参数含义请参考CICS文档 《CICS Administration reference》。
8、停止CICS 域
cicscp -v start region
9、 停止 SFS服务器。
cicscp -v start region
举例
结构
在金融业省域或全国数据大集中的背景下,银行业务处理系统要求既能实现高并发度的联机交易,又能完成大量的批处理:既有稳定、高可用、不间断的交易服务,又需灵活多变的高扩展性;既要保证系统安全,又要兼顾操作简便,对联机业务的数据处理要求高并发度且响应时间短,但数据量小,数据访问的频度分布不均,高频度访问的数据分布空间小,低频度访问的数据分布空间大,所以,在联机交易设计中引入CICS中间件,可以构造一个由界面层、业务逻辑层、数据服务层组成的3层软件体系结构来满足系统需求。3层Client/Server结构如图1所示。
界面层分为柜员终端界面和自助设各界面,均采用TCP/IP通讯协议与运行中心连接,利用CICS构成Client/Server结构,与业务逻辑层的接口是交易输入区和交易输出区。业务逻辑层也称为应用服务器层,分为系统控制层和业务处理层。系统控制层负责系统控制、重要核算工具管理和交易调度,利用CICS统一进行联机交易的事务管理;业务处理层完成各应用系统的交易处理。业务逻辑层与界面层通过TIA和TOA实现数据交换,而业务逻辑层中各模块间通过CICS的交易工作区(TWA)实现数据交换。数据服务层负责数据资源的管理,它与业务逻辑层的操作接口是ESQL/C。业务逻辑层与数据服务层在CICS的控制下协同完成事务管理功能。
客户端编程
客户端通过外部调用接口(ECI)使客户机上运行的非CICS应用程序能同步或异步地调用服务器中的CICS应用程序,将数据块传递到服务器中的CICS区域,无需任何特殊的通信代码,CICS的一个完整交易包括:客户端发起交易请求,把需要调用的服务器程序名和数据通过通讯存储区传给服务器程序,CICS则在服务端唤起相应的服务程序并在第一个可用的应用服务器(As)进程的缓存中运行,最后把结果通过通讯存储区返回到客户端。当交易运行失败时,CICS对数据的修改会自动回滚,而无论数据分布在何地,这就保证了数据的一致性。一个金融交易对应CICS的一个交易,编程时一般使用ECI的同步调用方式,等待CICS的服务端执行完成以后,程序控制权才交还给客户端程序。SCOUNIX的客户端一般是用C语言编程。
CICS的客户端编程还可使用外部显示接口(EPI),它使客户机上运行的应用程序能调用服务器上的CICS事务如同从3270终端启动,返回的数据流可在图形用户界面(GUI)显示。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市