論壇文章
Control-M幫您輕鬆管理「Web應用伺服器」上的批次作業
Control-M 能跨平台支援使得系統維運同仁可透過同一種方式來管理異質平台上的批次作業,有效解決因為跨平台,各個平台有各自的批次作業管理方式

Control-M幫您輕鬆管理「Web應用伺服器」上的批次作業
作者:黃啟益叡揚資訊

隨著Internet的技術成熟及只需瀏覽器的方便性,Web + AP + DB Server的三層式架構已成為主流,在此新架構下,AP主要是在AP Server上執行;由於Java的跨平台特性,符合J2EE標準的Java AP Server (例如:WebLogic、WebSphere及JBoss等)即廣為客戶採用。因為J2EE AP Server創造出的Web Container及EJB (Enterprise Java Bean) Container組成的新環境並非「傳統」的批次作業管理系統可「管」到,而批次作業並不會因為AP「web 化」而消失,因此相關批次作業的管理需求也應運而生。本文即簡介Control-M針對此需求推出的模組Control-M BPI (Business Process Integration) for Java 。

多年來,叡揚資訊藉助Control-M協助許多客戶有效解決上述問題以妥善管理批次作業,有興趣的讀者可參考相關成功案例以了解其細節(註一)。就產品功能面而言,其成功關鍵可簡單歸納為:

A) Control-M 由於其跨平台支援使得系統維運同仁可透過同一種方式來管理異質平台上的批次作業,有效解決因為跨平台,各個平台有各自的批次作業管理方式,造成在維運、教育訓練及職務交接上的管理不便。

B) Control-M圖型化操作介面(圖一),排程的定義以圖表方式呈現,系統人員僅需將要的資料調出來,排程之間的關連即一目了然;對流程進行臨時的變更可很輕易達成。

C) 在Control-M圖形監控介面中,透過不同的顏色顯示每個作業的執行狀態及執行的路徑,OP人員很容易掌握情況,不必半夜全程監控,加上主動告警的功能,讓OP人員能在第一時間發現並通知支援人員。也可協助系統管理人員找出批次流程中花費最多時間的執行路徑。若搭配Forecast 模組則可預測相關批次作業執行時間。

D) Control-M 集中式管理的架構(圖二),所有批次作業執行記錄都集中收集、保留以供日後稽核及問題查找之需。

如上所述,在Web + AP + DB Server的三層式架構下,相關批次作業的管理需求若缺乏一個有效的對策,之前擁抱開放系統時在批次作業管理上的問題又會出現;Control-M BPI即是針對此需求而開發。

Control-M BPI 提供AP以下3種業界標準和它介接:

  • Java class、Servlet及EJB(Enterprise Java Bean)
  • Web Service
  • Message-oriented Middleware (JMS或是IBM WebSphereMQ)

意即:Control-M 可將使用上述技術的Job納入排程管理。它可排程(schedule)在J2EE AP Server上運行的Java class、Servlet或是EJB;可排程一個標準的Web service Job;可產生一個Job送出message到另一個AP的message queue。
若批次作業可被切割成獨立AP,Control-M BPI可透過上述3種方式之一來控制它的執行;否則parent AP可透過Control-M BPI提供的API要求它控管在J2EE上運行的child AP。意即,前者可不用修改parent AP而後者則需要。在實務上,這是一個很貼心的設計。

本文即以最近叡揚資訊所建置的案例來說明Control-M BPI如何以Servlet方式控管IBM WebSphere AP server(簡稱WAS)上的批次作業。其它幾種介接方式都很類似,讀者可舉一反三。

此AP在web container及EJB container都有其各自模組,是一支很典型的J2EE AP;前者接受從瀏覽器過來的需求,處理後,呼叫後者提供的服務,若需要則到後端資料庫存取資料(如圖三所示)。

除了提供使用者即時查詢/修改資料,此AP有很多依存關係頗複雜的一串批次作業必需定時執行(例如:產生報表)而現行的批次作業管理方式則遇到類似本文開頭提到的問題,例如:

a)沒有辦法預測到Job何時可以跑

b)只能by Job做Preview,而無法by Day做Preview

c)遇到一些大日子時,因前一支Job不知何時跑完而影響後續Job的啟動,常會提心吊膽整串Job可否即時跑完。

此AP原本就是獨立運行,Control-M BPI即採取不修改它並以Servlet方式介接。介接方式非常簡單,簡述如下:

  1. 在此AP的WAR模組下的WEB-INF/web.xml加入所需的servlet block(如圖四所示)並把ctmjava.jar放到WEB-INF/lib下以便在WAS創建一個Servlet container供Control-M BPI在執行時和WAS傳遞所需的參數。
  2. 利用Control-M BPI提供的account/profile工具產生一個新的account並和上述所創建的Servlet container關聯;在此account中記載此Job可能會呼叫的class (如圖五所示)
  3. 在Control-M Job設定工具,指名要呼叫那一個method及相關的參數(如圖六所示)並設定執行時間及條件等資訊。你可根據實際需要,對同一個class中的不同method或不同class的不同class來設定所需的Job。而後,你就可order此Job,並納入監控。

簡言之,Control-M 除了支援諸如MainFrame、AS/400、Unix 及Windows等異質平台,就如本文所述,它與時俱進支援J2EE的AP Serve 上運行的批次作業、可排程一個標準的Web service Job及可產生一個Job送出message到另一個AP的message queue等,使得企業資訊系統內的各式批次作業都能以統一的管理介面及管理政策列管,以確保這些批次作業的執行正確性,提升透明度、掌控度及稽核度;因為這些支援模組是延伸現有Control-M功能,相關同仁仍可以原來熟悉的介面來擁抱這些Web 批次作業新成員。


註一:
新世紀資通成功案例:叡揚e論壇第31期
國泰人壽成功案例:叡揚e論壇第35期
日盛金控成功案例:叡揚e論壇第43期