複製鏈接
請複製以下鏈接發送給好友

CICS

鎖定
CICS其全稱是 Customer Information Control System,即客户信息控制系統。是一系列為應用提供聯機事務處理和事務管理的產品,其功能是為商業應用提供一個事務處理環境,幫助客户建立三層次結構的聯機事務處理應用,CICS 有效地區分應用系統中的表述邏輯層、業務邏輯層和數據邏輯層,從而使應用系統結構清晰,維護簡單易行。
中文名
CICS
外文名
Customer Information Control System
分    類
計算機 數據庫
公    司
IBM
翻    譯
客户信息控制系統
發佈時間
1968年

CICS簡介

CICS其全稱是 Customer Information Control System,即客户信息控制系統。是一系列為應用提供聯機事務處理和事務管理的產品,其功能是為商業應用提供一個事務處理環境,幫助客户建立三層次結構的聯機事務處理應用,CICS 有效地區分應用系統中的表述邏輯層、業務邏輯層和數據邏輯層,從而使應用系統結構清晰,維護簡單易行。
CICS 是IBM 公司的強大主機交易服務器、集成平台,在全球C、C++、COBOL等交易中間件市場上佔有絕大多數客户。CICS有超過30年的歷史,開發於在IBM英國的赫思裏(Hursley)研發中心。CICS英國式發音是“kiks”。在AIX、HP等分佈平台上的CICS叫Txseries。交易服務器也叫交易處理中間件。支持聯機交易服務(OLTP),提供用户實時的交易請求與響應,支持分佈式交易服務、多個數據源、異種數據源、和分佈式協同應用,支持兩階段提交。

CICS歷史

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是一個聯機事務處理平台軟件,它幫助客户建立三層次結構的聯機事務處理應用。一般的操作系統設計會首先考慮對硬件如內存,硬盤等資源的控制和利用,對進程和線程的管理,以及其它一些基本設施和功能。操作系統一般對批處理作業有相當好的支持,而對於大量的隨機性的,對響應時間要求甚高的聯機事務處理,客户則通常尋求專門的聯機事務處理平台軟件的支持,CICS則是此行中的佼佼者。
事務處理的通俗稱法為交易處理,常有人將事務處理和數據處理混淆起來,但事實上事務處理和數據處理有本質的區別,事務是指在某一事件中,參與事件的各主體均發生了狀態的變化,而所有狀態的變化集合起來,稱為一個事務。關係型數據庫軟件如DB2、Oracle等服務的對象是數據,而CICS軟件服務的對象是事務。
在事務過程的模式中,如訂票系統,最終用户需要的是能否賣票,能否退票,並不關心在賣票或退票事務中改變了哪些數據,由於數據庫服務軟件提供的是數據服務,所以僅基於數據庫服務軟件的事務處理系統需要客户完成相當多的工作,實際上相當於客户自己來完成一個事務處理軟件,或者客户只能構建一個兩層次結構的處理模式,因此客户或者發現其應用的開發維護的難度增大了,或發現其開發的進度拖延了,或發現其應用和數據的安全性不盡如意,要解決這些問題其實容易,客户需要的是一個象CICS這樣的事務處理軟件,建立一個三層次結構的應用系統。

CICS應用服務

CICS的以下組件支持應用程序開發。
1、基本映射支持(BMS),提供與設備無關的終端輸入和輸出。
2、數據交換計劃(DIP),為IBM 3770和IBM 3790可編程器件提供支持。
3、2260兼容性,允許為IBM 2260顯示設備編寫的程序在3270顯示器上運行。
4、EXEC接口程序 -,將EXEC CICS命令生成的調用轉換為CICS函數的存根程序。
5、內置函數 ,包括表搜索,語音轉換,字段驗證,字段編輯,位檢查,輸入格式化,加權檢索等。

CICS命令

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舉例

CICS結構

在金融業省域或全國數據大集中的背景下,銀行業務處理系統要求既能實現高併發度的聯機交易,又能完成大量的批處理:既有穩定、高可用、不間斷的交易服務,又需靈活多變的高擴展性;既要保證系統安全,又要兼顧操作簡便,對聯機業務的數據處理要求高併發度且響應時間短,但數據量小,數據訪問的頻度分佈不均,高頻度訪問的數據分佈空間小,低頻度訪問的數據分佈空間大,所以,在聯機交易設計中引入CICS中間件,可以構造一個由界面層、業務邏輯層、數據服務層組成的3層軟件體系結構來滿足系統需求。3層Client/Server結構如圖1所示。
圖1 圖1
界面層分為櫃員終端界面和自助設各界面,均採用TCP/IP通訊協議與運行中心連接,利用CICS構成Client/Server結構,與業務邏輯層的接口是交易輸入區和交易輸出區。業務邏輯層也稱為應用服務器層,分為系統控制層和業務處理層。系統控制層負責系統控制、重要核算工具管理和交易調度,利用CICS統一進行聯機交易的事務管理;業務處理層完成各應用系統的交易處理。業務邏輯層與界面層通過TIA和TOA實現數據交換,而業務邏輯層中各模塊間通過CICS的交易工作區(TWA)實現數據交換。數據服務層負責數據資源的管理,它與業務邏輯層的操作接口是ESQL/C。業務邏輯層與數據服務層在CICS的控制下協同完成事務管理功能。

CICS客户端編程

客户端通過外部調用接口(ECI)使客户機上運行的非CICS應用程序能同步或異步地調用服務器中的CICS應用程序,將數據塊傳遞到服務器中的CICS區域,無需任何特殊的通信代碼,CICS的一個完整交易包括:客户端發起交易請求,把需要調用的服務器程序名和數據通過通訊存儲區傳給服務器程序,CICS則在服務端喚起相應的服務程序並在第一個可用的應用服務器(As)進程的緩存中運行,最後把結果通過通訊存儲區返回到客户端。當交易運行失敗時,CICS對數據的修改會自動回滾,而無論數據分佈在何地,這就保證了數據的一致性。一個金融交易對應CICS的一個交易,編程時一般使用ECI的同步調用方式,等待CICS的服務端執行完成以後,程序控制權才交還給客户端程序。SCOUNIX的客户端一般是用C語言編程。
CICS的客户端編程還可使用外部顯示接口(EPI),它使客户機上運行的應用程序能調用服務器上的CICS事務如同從3270終端啓動,返回的數據流可在圖形用户界面(GUI)顯示 [1] 
參考資料