COBOL主機(jī)應(yīng)用開發(fā)架構(gòu)基礎(chǔ)PPT課件_第1頁(yè)
COBOL主機(jī)應(yīng)用開發(fā)架構(gòu)基礎(chǔ)PPT課件_第2頁(yè)
COBOL主機(jī)應(yīng)用開發(fā)架構(gòu)基礎(chǔ)PPT課件_第3頁(yè)
COBOL主機(jī)應(yīng)用開發(fā)架構(gòu)基礎(chǔ)PPT課件_第4頁(yè)
COBOL主機(jī)應(yīng)用開發(fā)架構(gòu)基礎(chǔ)PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、COBOL for Mainframe Fundamentals COBOL主機(jī)應(yīng)用開發(fā)架構(gòu)基礎(chǔ)第1頁(yè)/共37頁(yè)本節(jié)內(nèi)容nCOBOL與傳統(tǒng)系統(tǒng)nCOBOL應(yīng)用開發(fā)架構(gòu)nCOBOL與CICSnCOBOL與DB2nCOBOL與IMSn更詳盡的內(nèi)容將在相關(guān)課程中講述。第2頁(yè)/共37頁(yè)COBOL與傳統(tǒng)系統(tǒng)n傳統(tǒng)程序是用上一代技術(shù)開發(fā)的可操作計(jì)算機(jī)程序或程序組,多數(shù)已經(jīng)運(yùn)行多年,并且仍然能勝任所負(fù)責(zé)的工作的可行系統(tǒng);n上世紀(jì)70年代80年代,COBOL大量用于建設(shè)大型、復(fù)雜的商業(yè)系統(tǒng),因此用COBOL編寫的數(shù)據(jù)處理程序構(gòu)成了傳統(tǒng)程序的主體;n傳統(tǒng)系統(tǒng)通常是公司進(jìn)行關(guān)鍵商業(yè)活動(dòng)時(shí)所依賴的核心程序,當(dāng)系統(tǒng)需

2、要更新時(shí)不能中斷,從頭改寫往往是下策,其代碼的修改和改進(jìn)為現(xiàn)代的COBOL編程人員帶來(lái)了機(jī)遇和挑戰(zhàn)。第3頁(yè)/共37頁(yè)COBOL應(yīng)用開發(fā)架構(gòu)n大部分傳統(tǒng)COBOL系統(tǒng)都是用IBM硬件、操作系統(tǒng)和編譯器開發(fā)的;n近代的S/390、Z900、AS/400乃至最新的iSeries、zSeries等服務(wù)器上仍然保持了對(duì)COBOL的支持;nCOBOL應(yīng)用程序的數(shù)據(jù)可以放在文件中,也可以放在DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))中;n主機(jī)上COBOL應(yīng)用程序后臺(tái)的DBMS通常使用IMS(層次數(shù)據(jù)庫(kù))或DB2(RDBMS),事務(wù)管理的實(shí)現(xiàn)則使用CICS或者IMS TM。第4頁(yè)/共37頁(yè)COBOL與CICSnCICS簡(jiǎn)介n

3、CICSCOBOL第5頁(yè)/共37頁(yè) CICS簡(jiǎn)介nCICS是IBM的客戶信息控制系統(tǒng),是運(yùn)行終端(聯(lián)機(jī))系統(tǒng)的環(huán)境;nCICS特別適合事務(wù)性系統(tǒng),如處理機(jī)票購(gòu)買和銀行存取款等;n40多年來(lái),CICS一直活躍在全球一流公司的商業(yè)系統(tǒng)中:當(dāng)今全球一共有大約50000個(gè)CICS站點(diǎn);在500個(gè)最大的IBM客戶中,490個(gè)都是用CICS;大約有100萬(wàn)編程人員編寫和維護(hù)CICS程序,主要是COBOL程序。第6頁(yè)/共37頁(yè)CICS事務(wù)nCICS事務(wù)由一個(gè)或多個(gè)CICS程序組成,通常是用COBOL編寫,一般是用SQL命令讀寫關(guān)系數(shù)據(jù)庫(kù)或用DL/I讀寫IMS數(shù)據(jù)庫(kù),并負(fù)責(zé)與終端上的最終用戶交流信息;nCIC

4、S保證事務(wù)或者完全成功,或者根本不執(zhí)行,它與COBOL配合協(xié)調(diào),能高效地使用系統(tǒng)資源;nCOBOL程序的性質(zhì)是不可再入(reentrant)的,即一次只能有一個(gè)終端用戶執(zhí)行內(nèi)存中的COBOL程序,但CICS用偽再入(pseudo-reentrant)或準(zhǔn)再入(quasi-reentrant)技術(shù)解決了這個(gè)問(wèn)題,它對(duì)COBOL程序的每個(gè)實(shí)例保存一份工作存儲(chǔ)節(jié),但允許程序的所有實(shí)例使用過(guò)程部。第7頁(yè)/共37頁(yè)CICS程序?qū)嵗?第8頁(yè)/共37頁(yè)CICS程序?qū)嵗?第9頁(yè)/共37頁(yè)CICS程序?qū)嵗?第10頁(yè)/共37頁(yè)CICS程序?qū)嵗?第11頁(yè)/共37頁(yè)COBOL與CICS nCICS的許多特性使

5、程序員不必考慮CICS終端的結(jié)構(gòu)和它們的位置以及如何與網(wǎng)絡(luò)聯(lián)接就能編寫出高級(jí)的事務(wù)處理應(yīng)用程序;nCICSCOBOL程序是COBOL語(yǔ)句與EXEC CICS語(yǔ)句的組合,能與CICS通信,程序中的每一行是下列語(yǔ)句之一:COBOL行(例如MOVE WS-TEMP TO WS-PERMANENT)EXEC CICS語(yǔ)句(例如EXEC CICS RETURN END-EXEC)數(shù)據(jù)庫(kù)訪問(wèn)語(yǔ)句(例如EXEC SQL SELECT NAME INTO:WS-NAME FROM EMPLOYEE WHERE EMP_ID=:WS-ID END-EXEC)nCICSCOBOL程序通過(guò)EXEC CICS SEN

6、D和RECEIVE語(yǔ)句與最終用戶通信,就像其它程序使用DISPLAY和ACCEPT一樣,不過(guò)在CICSCOBOL程序中,通常是全屏顯示而不是一行顯示。第12頁(yè)/共37頁(yè)COBOL中的CICS命令n通用格式 command option(arg).n在COBOL中用EXEC CICS啟動(dòng)CICS 命令,用END EXEC.終止。第13頁(yè)/共37頁(yè)CICS命令一覽n終端控制SEND, SEND CONTROL, SEND MAP, RECEIVE, RECEIVE MAPn異常處理HANDLE CONDITION, IGNORE CONDITIONn文件控制READ, WRITE, REWRITE

7、, WRITE, UNLOCK, STARTBR, READNEXT, READPREV, ENDBR, RESETBRn程序控制LINK, XCTL, RETURNnQueue 控制WRITEQ TS|TD, READQ TS|TD, DELETEQ TS|TD第14頁(yè)/共37頁(yè)終端控制n對(duì)終端進(jìn)行 I/On命令:SENDRECEIVEn基本的mapping支持第15頁(yè)/共37頁(yè)基本的mapping支持n字符屏幕顯示( mapping )n基于應(yīng)用程序生成mappingn從終端接受數(shù)據(jù)或向終端發(fā)送數(shù)據(jù)第16頁(yè)/共37頁(yè)SEND命令n語(yǔ)法格式 EXEC CICSSENDFROM(data-ar

8、ea)LENGTH(data-value)END-EXEC.第17頁(yè)/共37頁(yè)SEND樣例WORKING-STORAGE SECTION.01MSG-LENGTHPIC S9(4) COMP.01OUTPUT-MESSAGE.05MSG-IDPIC X(4).05FILLERPIC X.05MSG-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 SENDFROM (OUTPUT-MESSAG

9、E)LENGTH (MSG-LENGTH)ERASEEND-EXEC.第18頁(yè)/共37頁(yè)SEND CONTROL命令n語(yǔ)法格式EXEC CICSSEND CONTROLCURSOR(data-value)ERASE|ERASEUPFREEKBEND-EXEC.第19頁(yè)/共37頁(yè)SEND MAP命令n語(yǔ)法格式EXEC CICS SEND MAP (name) MAPSET(name) FROM(data-area) LENGTH(data-value) DATAONLY|MAPONLY ALARM CURSOR(data-value) ERASE|ERASEUP FREEKBEND-EXEC.E

10、xception condition:MAPFAIL第20頁(yè)/共37頁(yè)符號(hào)MapnWORKING-STORAGE SECTION.COPY symbolic-map-member-namenPROCEDURE DIVISION.MOVE xxx TO xxxO.EXEC CICSSEND MAPEND-EXEC.第21頁(yè)/共37頁(yè)物理Mapn在CICS里用CEDA定義nCEDA DEF MAPSET第22頁(yè)/共37頁(yè)RECEIVE MAP命令n語(yǔ)法格式EXEC CICS RECEIVE MAP(name) MAPSET(name) LENGTH(data-area) INTO(data-are

11、a)END-EXEC.Exception condition:MAPFAIL第23頁(yè)/共37頁(yè)符號(hào)MapnWORKING-STORAGE SECTION.COPY symbolic-map-member-namenPROCEDURE DIVISION.EXEC CICSRECEIVE MAPEND-EXEC.MOVE xxI TO xxx.第24頁(yè)/共37頁(yè)CICSCOBOL程序的限制n環(huán)境部中與數(shù)據(jù)管理服務(wù)有關(guān)的項(xiàng)目不能使用;n數(shù)據(jù)部的文件節(jié)(file section)不能使用;nREPORT-WRITER, SEGMENTATION, SORT 和TRACE 等不能使用;nCOBOL RE

12、AD, WRITE, OPEN 和 CLOSE 等語(yǔ)句不能使用;nACCEPT, CURRENT-DATE, DATE, DAY, DISPLAY, EXHIBIT, INSPECT, SIGN IS SEPARATE, STOP RUN, TIME, UNSTRING等動(dòng)詞不能使用。第25頁(yè)/共37頁(yè)CICSCOBOL程序的結(jié)束n語(yǔ)法 EXEC CICSRETURNEND-EXEC.第26頁(yè)/共37頁(yè)COBOL與DB2nDB2是大型主機(jī)上支持的大型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),COBOL應(yīng)用程序通過(guò)執(zhí)行SQL語(yǔ)句來(lái)操作和訪問(wèn)DB2數(shù)據(jù)庫(kù);n在COBOL中,使用SQL有所不同:SQL查詢必須以EXEC

13、SQL開始,以END-EXEC結(jié)束;SQL查詢通常使用COBOL宿主變量。第27頁(yè)/共37頁(yè)宿主變量(host variable)n宿主變量(host variable)在SQL語(yǔ)句前面帶冒號(hào)(:);n宿主變量應(yīng)該在COBOL中正確定義,對(duì)應(yīng)于列屬性;nDELETE語(yǔ)句不需要宿主變量;nSELECT語(yǔ)句需要宿主變量;nINSERT語(yǔ)句通常需要宿主變量,但也可以使用VALUES從句;nUPDATE語(yǔ)句也需要宿主變量,但只對(duì)要改變數(shù)據(jù)的列。第28頁(yè)/共37頁(yè)例子:查詢員工1并改變其性別MOVE FEMALE TO SEX OF DCLEMPLOYEEEXEC SQL UPDATE EMPLOYEE

14、 WHERE EMP_ID=1 END-EXEC.注意在COBOL語(yǔ)法中的SEX OF DCLEMPLOYEE在SQL中變成第29頁(yè)/共37頁(yè)COBOL+CICS+DB2樣本程序詳見TESTMENU第30頁(yè)/共37頁(yè)COBOL與IMSnIMS是大型機(jī)上的層次數(shù)據(jù)庫(kù),已經(jīng)出現(xiàn)大約45年;nIMS是要求高性能、高可用性、高可靠性和高可管理性的公司的應(yīng)用程序的首選;n全球很多行業(yè)的商業(yè)運(yùn)行都依賴于IMS,1000家最大公司的90%都使用IMS;nIMS支持Java、PL/1、C/C+等多種應(yīng)用開發(fā)語(yǔ)言,對(duì)COBOL的支持更是歷史悠久。第31頁(yè)/共37頁(yè)數(shù)據(jù)操作語(yǔ)言(DML)nDML提供宿主編程語(yǔ)言(

15、比如COBOL)和數(shù)據(jù)庫(kù)間的接口。宿主編程語(yǔ)言database第32頁(yè)/共37頁(yè)數(shù)據(jù)語(yǔ)言DL/InDL/I是IMS使用的DML,它不是獨(dú)立的語(yǔ)言,而是一組過(guò)程性代碼和數(shù)值;nCOBOL可以作為DL/I的宿主編程語(yǔ)言,通過(guò)普通子程序調(diào)用的方式調(diào)用DL/I;n數(shù)據(jù)庫(kù)對(duì)于COBOL來(lái)說(shuō)是個(gè)黑盒子,不能直接訪問(wèn),COBOL用DL/I提供的API訪問(wèn)數(shù)據(jù)庫(kù);COBOLDL/IIMS database第33頁(yè)/共37頁(yè)Entry語(yǔ)句nCOBOL程序中的第一條語(yǔ)句是ENTRY語(yǔ)句 ,說(shuō)明本COBOL程序使用的PCB掩模,從而建立與相應(yīng)數(shù)據(jù)庫(kù)的連接。PROCEDURE DIVISl0NA000-MAIN-PROCESSENTRY DLITCBL USING EMPLOYEE-DB-PCB-MASKDLITCBL是“DL/I to COBOL”的縮寫。 第34頁(yè)/共37頁(yè)COBOL中調(diào)用DL/I函數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論