摘要:為了減少IBM大型數據服務器的操作復雜性,該文提供了一個基于J2EE的軟件系統的實現,用于對IBM大型數據服務器的管理和操作,從而大大提高了IBM大型數據服務器的易用性和可維護性。
關鍵詞:地址空間;J2EE;作業控制語言
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)31-0769-03
The Design and Realization of IBM Mainframe Management System
LV Chao, XU Yan-ling
(School of Soft Engineering,Tongji University,Shanghai 201804,China)
Abstract: In order to reduce the complexity of operation on IBM mainframe,this article provides the reality of a software system based on J2EE architecture.This software system is designed for managing and operating the IBM mainframe and also for increasing the maintainability and availability ofIBM mainframe.
Key words: address space; J2EE; JCL
1 引言
IBM大型數據服務器(IBM Mainframe)是計算機中的頂級產品,以其RAS特性而聞名。其擁有的安全性(R),高可用性(A),優秀的服務性(S),以及無與倫比的I/O性能,使其在鋼鐵,航空,金融等行業被廣泛采用。
隨著IBM大型數據服務器應用技術的推廣,越來越多的企業都采用IBM主機處理大量的并發交易信息以及批處理作業。而與此同時,由于大型機操作系統的復雜性以及安全管理、數據管理的門檻高、用戶界面不夠友好的原因,只有具備多年大型機管理經驗的人員才能夠勝任大型機的日常操作和管理工作以及相關安全管理的工作。為了方便管理大型機,需要一個軟件系統來簡化大型服務器的管理和操作。
文章給出了基于J2EE的大型機系統管理軟件系統的實現原理,通過FTP協議來實現Windows文件和大型服務器文件類型的轉換,并且進行數據交換。并根據該原理給出了該軟件系統的具體實現流程。
2 J2EE的特點與工作原理
J2EE[1] (JAVA 2 Enterprise Edition)是建立在JAVA平臺上的企業級應用解決方案,其本質上是為企業提供了一個分布式的服務器應用程序設計環境。它兼容J2SE平臺的所有功能,而且也對諸如HTML,Servlet/JSP,EJB,XML,WEB Service等流行技術的全力支持。J2EE為企業級應用程序提供了一系列標準,是一套編程規范,遵循這套規范開發出來的系統具有可移植性,安全性,可伸縮性,負載均衡等特點。
J2EE架構圖如圖1所示。
MVC[2](Model/View/Control)架構這個架構體系的主體。Model/View/Control是WEB應用軟件系統設計的經典結構。這種設計結構的思想就是把一個應用分為三個部分:Model、View和Controller,每個部分負責不同的功能。Model是指對業務數據/信息的處理模塊,主要包括對業務數據的存取、加工、綜合、分析、調度等;View是指用戶接口,也就是如何把業務數據反饋給用戶;Controller則負責View模塊和Model模塊之間的流程控制,主要由以下流程組成:1) 將用戶界面(View)的一系列操作結果映射到具體的Model模塊,以完成具體的業務邏輯;2) 將通過Model處理完的業務數據及時反饋給用戶。
MVC架構模式使得應用程序的結構更加清晰,通過將代碼按照層次劃分為業務邏輯/數據、用戶界面和應用流程控制這三個層次,增強代碼穩定性。對于Model、View、Controller這三部分功能來講,View的實現一般是由界面設計人員和界面程序員來完成,Model則是由業務邏輯程序員來完成,Controller則一般由負責整體控制的程序員來完成。Controller部分的代碼比較穩定,一般會實現一個通用的架構;而Model則跟隨商務流程的變化而變化;View的更改則是隨著用戶需求的更改而更改。這種模塊功能的劃分有利于在代碼修改過程中進行模塊的隔離,而不需要把具有不同功能的代碼混雜在一起造成混亂。對于項目開發而言,有利于在項目小組內按照小組成員各自的擅長進行分工,有利于三個部分并行開發、加快項目進度。
3 IBM大型數據服務器的主要地址空間與子系統介紹
IBM大型數據服務器的子系統結構如下圖2所示。
Address Space[3]是IBM大型數據服務器中的專用術語。Address Space是指大型數據服務器的操作系統(此操作系統簡稱為Z/OS)為每個用戶分配的用于運行程序的可尋址范圍。Address Space是一個連續的虛擬地址空間,用于運行用戶的指令和存儲用戶的數據。虛擬地址的尋址范圍從0開始,上限由操作系統的體系結構來決定。
Z/OS為每個用戶提供一個獨立的地址空間并且是用戶的程序與數據彼此隔離。在每個地址空間內部,用戶可以啟動多個任務。
大型數據服務器的子系統(Subsystem) [4]是運行在Z/OS之上的系統組件,與操作系統相互配合,共同管理系統的硬軟件資源。子系統有自管理能力,有自己的控制程序,可以在操作系統的支持下,獨立完成相應功能。
VTAM[3] (Virtual Telecommunications Access Method)是IBM使用的一種API,用于用戶連接通信設備。VTAM是IBM的第一個產品,允許程序員把設備看做邏輯設備來處理,而不用了解設備和協議的具體實現。VTAM接口由所謂的宏指令組成,這套指令實現了對設備的同步或者異步讀取。程序員可以使用COBOL,PL/1,匯編語言來訪問VTAM,從而實現對設備的控制。
JES2[3] (Job Entry Subsystem)是Z/OS的一個子系統,用于接收作業(job)到操作系統,調度作業,并且控制作業的輸出信息處理。JES2作為操作系統的一個組件,提供必要的作業控制功能,負責作業的輸入,調度,輸出,信息處理等。
TSO[3] (Time Sharing Option)是Z/OS操作系統的一個基本組件,允許用戶通過交互的方式來操作系統。通過使用TSO這個工具,可以和其他用戶交互,可以開發并維護用戶程序,處理數據,訪問Z/OS操作系統。
4 IBM大型數據服務器管理系統的設計與實現
4.1 管理系統的結構
管理系統的結構圖如圖3。
圖3是IBM大型數據服務器管理系統的結構圖。由于大型機使用的是Z/OS操作系統,與當前流行的網絡服務器所使用的操作系統有很大的區別。因為Z/OS為了保證系統的安全,與外界交換數據時做了許多限制。所以要將Z/OS上的東西搬到如今普通PC機的桌面上是有困難的,特別在既要保證系統安全,又要保證數據交換的效率的條件下,將大型機數據連接到WEB前臺是不容易的。所以在連接J2EE和IBM大型數據服務器系統時,采用了FTP協議來實現,因為FTP協議傳輸的是文件,是字符組成的文件,所以在傳輸時,不考慮文件結構和系統結構的差異,把windows端的輸入以字符的形式傳送到大型服務器端,然后再對其進行重新格式化,讓其成為大型服務器能夠認識的類型,對其進行處理。當處理完成后,再字符化,通過FTP傳到windows端,在重新格式化為windows認識的格式,反饋給用戶。
J2EE的經典架構是MVC架構,J2EE的應用主要體現在對于功能模塊的封裝以及規范的應用。在本系統中,主要是采用JSP+SERVLET+JAVABEAN的架構來實現的,前臺用戶界面主要是由JSP+CSS來實現的,JSP主要控制對用戶請求的相應,頁面之間的跳轉,以及用戶界面的顯示。在后臺,用SERVLET實現和大型數據服務器的連接,JCL的生成,JCL的提交以及作業返回碼的分析,主要是用來實現MVC中的Control功能。用戶可以使用JavaBean將功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,并且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變。
4.2 IBM大型數據服務器管理系統的功能模塊實現
模塊設計流程圖如圖4。
基于WEB的IBM大型數據服務器管理系統的用戶類型可分為用戶和管理員兩種類型。用戶是IBM大型數據服務器管理系統的日常使用者,即大型數據服務器的管理員,所以他們主要關心的是他們對于大型數據服務器操作的權限,大型數據服務器的日常運行狀態,以及如何管理大型數據服務器的資源。因此對于用戶來講,主要的工作包括作業提交,作業管理以及返回碼分析。而系統管理員是對本軟件系統進行維護和管理的人員,需要對用戶的注冊,軟件的維護以及軟件資源進行有效管理,因此對于管理員,應該提供用戶管理和應用軟件管理兩個模塊。下面對這五個模塊進行詳細介紹:
4.2.1 作業提交模塊
在IBM Mainframe中,對于作業的定義與普通操作系統略有區別。在IBM Mainframe中,作業是用戶在完成某任務時要求計算機所做工作的集合。當用戶需要使用計算機完成某項任務時,用戶必須準備一個作業流(Job Stream),作業流中包含一個或多個作業。用戶使用一種叫做JCL(Job Control Language)的語言,來控制與系統交互的過程,JCL是用戶與操作系統交互的接口用戶通過JCL的相應語句與操作系統通訊,獲得作業所需的資源,并按自己的意圖來控制作業的執行。
由以上的介紹可以看出,JCL是系統管理員與系統交互,管理系統資源的重要工具。本系統提供JCL的模板供用戶填寫。本系統的所有用戶界面以及界面之間的跳轉都用JSP來實現,通過給用戶提供HTML表單,使用戶可以對所要填寫的JCL的框架有一個概要了解,然后把重要參數利用HTML的文本輸入框的形式呈現給用戶,真正實現了View的功能。用戶根據不同的功能,對于JCL模板進行選擇,然后填寫必要參數。然后把填寫完畢的JCL通過FTP協議,以文本字符流的方式發送到后臺,再對這些字符流進行重新格式化,使其變為IBM大型數據服務器能夠識別的文件格式,對其進行處理。由于模板是管理員選擇的,參數是管理員填寫的,所以管理員對于自己提交的作業可以進行方便,有效的管理,從而能夠高效,快速,準確的對大型數據服務器進行管理和控制。
4.2.2 作業管理模塊
作業管理模塊是本系統的一個重要組成模塊。它的主要作用是對管理員提交的作業進行控制管理。比如查看已提交作業的狀態,刪除作業信息,刪除掛起作業,查詢作業執行結果,分析作業執行狀況等等。如果讓管理員還是通過傳統的命令行方式管理的話,不但大大增加了管理的復雜性和難度,而且由于沒有了相應的統計信息,使得管理存在一定的隨機性和盲目性。而采用WEB方式,就可以方便有效的避免上述狀況。
在作業管理模塊的WEB界面中,采用分類列表的形式,來對不同的作業進行管理。同樣是使用HTML表單的方式對作業的狀態進行格式化顯示,同時在服務器端使用servlet來控制作業的生成和作業的提交,并且使用servlet來控制不同jsp頁面之間的調用轉換。然后根據作業當前狀態分為已提交作業列表,已刪除作業列表,已執行作業列表,掛起作業列表等等。當作業的讓管理員對于當前自己提交的作業能夠一目了然,根據不同的作業狀態來對不同的作業進行處理,這樣的話極大的方便了管理員對于系統資源使用狀況的監控,使管理員可以把更多精力放到更重要的事情上面。
4.2.3 返回碼分析模塊
每當系統管理員提交了一個作業以后,系統都要反饋給管理員這個作業的執行結果,比如這個作業是成功了還是失敗了,這個作業的提交時間,執行時間,使用系統的資源,作業的執行流程,作業中的每一個作業步的執行狀況。如果作業失敗了還要提供相應的返回碼以及解釋,幫助系統管理員來分析作業執行結果,判斷錯誤出現的位置與原因。所以要在本地的數據庫中把系統的返回碼以及相應的解釋保存下來,并根據嚴重等級分類,方便管理和查找。此時,就需要與前臺的數據庫相連接。本系統采用J2EE提供的JDBC標準來連接數據庫,即在程序中加載對應數據庫的驅動程序,然后定位數據庫的位置,輸入用戶名和密碼,然后使用標準的SQL語句來操作數據庫,從其中把作業的返回碼讀出來。當作業執行成功時,把作業的基本信息和返回碼反饋給系統管理員即可,當作業執行錯誤時,根據作業的返回碼,到本地數據庫中找到對應返回碼的解釋以及解決方法,反饋給系統管理員,輔助系統管理員做出決策。
4.2.4 用戶管理模塊
管理員可以通過WEB的方式進行用戶的管理。通過用戶的管理,一方面簡化了管理員對用戶信息的管理工作,使其可以專注于軟件系統更重要的問題上;另外一方面通過對用戶的基于數據庫的管理,不僅使用戶管理更加規范,而且使得用戶之間彼此隔離開,使得每個用戶感覺自己是在獨占系統。
對于用戶的管理,使用列表的方式來顯示所有注冊用戶的信息,管理員具有添加,刪除,修改用戶注冊信息的權限。并且管理員可以通過修改用戶帳號狀態來修改用戶的訪問權限。
4.2.5 應用軟件管理模塊
管理員可以通過WEB方式對前臺數據庫中的數據進行管理。將數據庫中的信息與用戶的系統身份相互關聯,當用戶登錄系統以后,可以使用戶只看到跟自己身份相關的系統資源,對于其他用戶的權限和資源是透明的。
在軟件系統的WEB界面中,同樣是用列表的形式顯示出系統中的用戶所擁有的權限和可以使用的資源,管理員可以對這些權限和資源進行動態添加和管理。
4.2.6 軟件演示
下面是軟件的運行界面:
1) 登錄界面
在界面上輸入用戶名,密碼,以及大型機磁盤的型號,還有大型機地址,即可登入主界面。如圖5。
2) 主界面
當用戶名與密碼正確時,就會進入軟件系統,此時顯示的界面如圖6所示。如圖6。
3) 新建數據集
圖7為新建數據集。DSN必須是完整有效的數據集名,以賬號名為HLQ,若出現重命名等現象,會有錯誤提示信息必須輸入的參數:
DSNAME(dsn),SPACE=(trk,(num,num[,num(for PDS)])),
VOL=SER=volser,,DISP=(new,delete,delete)
可選的參數:
RECFM=fb,LRECL=80,BLKSIZE=240
4) 為數據集添加新的member
PDS Name: 必須是完整有效的數據集名,以賬號名為HLQ,若出現重命名等現象,會有錯誤提示信息必須輸入的參數。
Member Name:必須是英文字母A-Z,數字1-9,以及三個特殊字符:@,#,$。并且第一位不允許是數字,名字長度不能超過8位。
圖8所示是為PDS添加新的member。
5) 編輯數據集
如圖9所示,用戶可以通過填寫數據集的名稱來修改并編輯對應的數據集。編輯數據集的過程類似于在windows中使用寫字板一樣,可以直接使用字符來進行編輯。
5 結束語
一個功能完善,簡單易用,易于管理的IBM大型數據服務器管理系統不僅簡化了數據服務
器系統管理員對于服務器的管理,而且簡化了軟件系統管理員對于此軟件系統的管理,在很大程度上提高了資源使用率和節省了管理員的大量時間,可以使他們把更多的精力投入到解決更重要的問題上。本文討論了當下非常流行的J2EE的軟件架構模式,IBM大型服務器的特點,以及如何基于J2EE,實現與IBM大型數據服務器的通信。通過使用本系統,大大降低了IBM大型數據服務器管理員的日常管理難度和復雜度,同時也降低了軟件系統管理員的日常工作,并且降低了學習大型服務器的起點,使得即使沒有大型數據服務器的用戶也可以使用和管理大型服務器。
參考文獻:
[1] Johnson R.J2EE設計開發編程指南[M].北京:電子工業出版社,2003:1-24.
[2] Reenskaug T,Wold P,Lehne O A.Working with Objects:The OOram Software Engineering Method[M].Manning Publications Company,1996:318-328.
[3] Ebbers M,O’Brien W,Ogden B.Introduction to the New Mainframe:z/OS Basics[M].IBM Redbooks,2006:75-119,127-159.231-247,555-562.
[4] Rogers P,Gelinski M,Oliveira J N,et al.ABCs of z/OS System Programming Volume 1:[M].IBM Redbooks,2003:77-78.