




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
COBOL for Mainframe Fundamentals,COBOL主机应用开发架构基础,本节内容,COBOL与传统系统 COBOL应用开发架构 COBOL与CICS COBOL与DB2 COBOL与IMS 更详尽的内容将在相关课程中讲述。,COBOL与传统系统,传统程序是用上一代技术开发的可操作计算机程序或程序组,多数已经运行多年,并且仍然能胜任所负责的工作的可行系统; 上世纪70年代80年代,COBOL大量用于建设大型、复杂的商业系统,因此用COBOL编写的数据处理程序构成了传统程序的主体; 传统系统通常是公司进行关键商业活动时所依赖的核心程序,当系统需要更新时不能中断,从头改写往往是下策,其代码的修改和改进为现代的COBOL编程人员带来了机遇和挑战。,COBOL应用开发架构,大部分传统COBOL系统都是用IBM硬件、操作系统和编译器开发的; 近代的S/390、Z900、AS/400乃至最新的iSeries、zSeries等服务器上仍然保持了对COBOL的支持; COBOL应用程序的数据可以放在文件中,也可以放在DBMS(数据库管理系统)中; 主机上COBOL应用程序后台的DBMS通常使用IMS(层次数据库)或DB2(RDBMS),事务管理的实现则使用CICS或者IMS TM。,COBOL与CICS,CICS简介 CICSCOBOL,CICS简介,CICS是IBM的客户信息控制系统,是运行终端(联机)系统的环境; CICS特别适合事务性系统,如处理机票购买和银行存取款等; 40多年来,CICS一直活跃在全球一流公司的商业系统中: 当今全球一共有大约50000个CICS站点; 在500个最大的IBM客户中,490个都是用CICS; 大约有100万编程人员编写和维护CICS程序,主要是COBOL程序。,CICS事务,CICS事务由一个或多个CICS程序组成,通常是用COBOL编写,一般是用SQL命令读写关系数据库或用DL/I读写IMS数据库,并负责与终端上的最终用户交流信息; CICS保证事务或者完全成功,或者根本不执行,它与COBOL配合协调,能高效地使用系统资源; COBOL程序的性质是不可再入(reentrant)的,即一次只能有一个终端用户执行内存中的COBOL程序,但CICS用伪再入(pseudo-reentrant)或准再入(quasi-reentrant)技术解决了这个问题,它对COBOL程序的每个实例保存一份工作存储节,但允许程序的所有实例使用过程部。,CICS程序实例屏1,CICS程序实例屏2,CICS程序实例屏3,CICS程序实例屏4,COBOL与CICS,CICS的许多特性使程序员不必考虑CICS终端的结构和它们的位置以及如何与网络联接就能编写出高级的事务处理应用程序; CICSCOBOL程序是COBOL语句与EXEC CICS语句的组合,能与CICS通信,程序中的每一行是下列语句之一: COBOL行(例如MOVE WS-TEMP TO WS-PERMANENT) EXEC CICS语句(例如EXEC CICS RETURN END-EXEC) 数据库访问语句(例如EXEC SQL SELECT NAME INTO:WS-NAME FROM EMPLOYEE WHERE EMP_ID=:WS-ID END-EXEC) CICSCOBOL程序通过EXEC CICS SEND和RECEIVE语句与最终用户通信,就像其它程序使用DISPLAY和ACCEPT一样,不过在CICSCOBOL程序中,通常是全屏显示而不是一行显示。,COBOL中的CICS命令,通用格式 command option(arg) 在COBOL中用EXEC CICS启动CICS 命令,用END EXEC.终止。,CICS命令一览,终端控制 SEND, SEND CONTROL, SEND MAP, RECEIVE, RECEIVE MAP 异常处理 HANDLE CONDITION, IGNORE CONDITION 文件控制 READ, WRITE, REWRITE, WRITE, UNLOCK, STARTBR, READNEXT, READPREV, ENDBR, RESETBR 程序控制 LINK, XCTL, RETURN Queue 控制 WRITEQ TS|TD, READQ TS|TD, DELETEQ TS|TD,终端控制,对终端进行 I/O 命令: SEND RECEIVE 基本的mapping支持,基本的mapping支持,字符屏幕显示( mapping ) 基于应用程序生成mapping 从终端接受数据或向终端发送数据,SEND命令,语法格式 EXEC CICS SEND FROM(data-area) LENGTH(data-value) END-EXEC.,SEND样例,WORKING-STORAGE SECTION. 01 MSG-LENGTH PIC S9(4) COMP. 01 OUTPUT-MESSAGE. 05 MSG-ID PIC X(4). 05 FILLER PIC X. 05 MSG-TXT PIC X(35). . . PROCEDURE DIVISION. MOVE 40 TO MSG-LENGTH. MOVE INV1 TO MSG-ID. MOVE INVOICE NOW BEING PRINTED TO MSG-TXT. EXEC CICS SEND FROM (OUTPUT-MESSAGE) LENGTH (MSG-LENGTH) ERASE END-EXEC.,SEND CONTROL命令,语法格式 EXEC CICS SEND CONTROL CURSOR(data-value) ERASE|ERASEUP FREEKB END-EXEC.,SEND MAP命令,语法格式 EXEC CICS SEND MAP (name) MAPSET(name) FROM(data-area) LENGTH(data-value) DATAONLY|MAPONLY ALARM CURSOR(data-value) ERASE|ERASEUP FREEKB END-EXEC. Exception condition: MAPFAIL,符号Map,WORKING-STORAGE SECTION. COPY symbolic-map-member-name PROCEDURE DIVISION. MOVE xxx TO xxxO. EXEC CICS SEND MAP END-EXEC.,物理Map,在CICS里用CEDA定义 CEDA DEF MAPSET,RECEIVE MAP命令,语法格式 EXEC CICS RECEIVE MAP(name) MAPSET(name) LENGTH(data-area) INTO(data-area) END-EXEC. Exception condition: MAPFAIL,符号Map,WORKING-STORAGE SECTION. COPY symbolic-map-member-name PROCEDURE DIVISION. EXEC CICS RECEIVE MAP END-EXEC. MOVE xxI TO xxx.,CICSCOBOL程序的限制,环境部中与数据管理服务有关的项目不能使用; 数据部的文件节(file section)不能使用; REPORT-WRITER, SEGMENTATION, SORT 和TRACE 等不能使用; COBOL READ, WRITE, OPEN 和 CLOSE 等语句不能使用; ACCEPT, CURRENT-DATE, DATE, DAY, DISPLAY, EXHIBIT, INSPECT, SIGN IS SEPARATE, STOP RUN, TIME, UNSTRING等动词不能使用。,CICSCOBOL程序的结束,语法 EXEC CICS RETURN END-EXEC.,COBOL与DB2,DB2是大型主机上支持的大型关系数据库管理系统,COBOL应用程序通过执行SQL语句来操作和访问DB2数据库; 在COBOL中,使用SQL有所不同: SQL查询必须以EXEC SQL开始,以END-EXEC结束; SQL查询通常使用COBOL宿主变量。,宿主变量(host variable),宿主变量(host variable)在SQL语句前面带冒号(:); 宿主变量应该在COBOL中正确定义,对应于列属性; DELETE语句不需要宿主变量; SELECT语句需要宿主变量; INSERT语句通常需要宿主变量,但也可以使用VALUES从句; UPDATE语句也需要宿主变量,但只对要改变数据的列。,例子:查询员工1并改变其性别,MOVE FEMALE TO SEX OF DCLEMPLOYEE EXEC SQL UPDATE EMPLOYEE SET SEX=:DCLEMPLOYEE.SEX WHERE EMP_ID=1 END-EXEC. 注意在COBOL语法中的SEX OF DCLEMPLOYEE在SQL中变成DCLEMPLOYEE.SEX,COBOL+CICS+DB2样本程序,详见TESTMENU,COBOL与IMS,IMS是大型机上的层次数据库,已经出现大约45年; IMS是要求高性能、高可用性、高可靠性和高可管理性的公司的应用程序的首选; 全球很多行业的商业运行都依赖于IMS,1000家最大公司的90%都使用IMS; IMS支持Java、PL/1、C/C+等多种应用开发语言,对COBOL的支持更是历史悠久。,数据操作语言(DML),DML提供宿主编程语言(比如COBOL)和数据库间的接口。,宿主编程语言,database,数据语言DL/I,DL/I是IMS使用的DML,它不是独立的语言,而是一组过程性代码和数值; COBOL可以作为DL/I的宿主编程语言,通过普通子程序调用的方式调用DL/I; 数据库对于COBOL来说是个黑盒子,不能直接访问,COBOL用DL/I提供的API访问数据库;,COBOL,DL/I,IMS database,Entry语句,COBOL程序中的第一条语句是ENTRY语句 ,说明本COBOL程序使用的PCB掩模,从而建立与相应数据库的连接。 PROCEDURE DIVISl0N A000-MAIN-PROCESS ENTRY DLITCBL USING EMPLOYEE-DB-PCB-MASK DLITCBL是“DL/I to COBOL”的缩写。,COBOL中调用DL/I函数,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 爷爷与小树课件
- 疫情安全培训课件
- 白杨礼赞游戏课件
- 渤海保险销售培训大纲
- 安全示范班组培训
- 保育技能提升培训
- 广东高等数学自考试题及答案
- 篮球试卷考试题及答案
- 课件昏迷处理
- 镁精炼工三级安全教育(车间级)考核试卷及答案
- 2025年北师大版新教材数学二年级上册教学计划(含进度表)
- 2025年广东省中考语文试卷真题(含答案)
- 2024中级出版专业资格考试真题带答案分析
- 跨文化商务交际导论 课件 Unit 1 Culture
- 3.4 商品质量品级评定与质量监督
- 一年级谁比谁多练习题(比较实用)
- 油管的上扣扭矩表
- 1:10000地形图更新与建库项目专业技术设计书1
- 丹佛斯变频器modbus通讯
- (中职)氯碱PVC生产工艺及设备8项目八 PVC生产教学课件
- 115个低风险组病种目录
评论
0/150
提交评论