1. 程式人生 > >control-m中 利用 bmc 公司提供的api 進行二次開發 介紹

control-m中 利用 bmc 公司提供的api 進行二次開發 介紹

API功能介紹

Control-M提供了使用者進行二次開發包,支援JAVA程式設計,使用者能根據自己需要通過API進行開發,該API只支援使用者編寫自己的Control-M/EM客戶端,編寫自己的介面給Control-M/EM服務端傳送各種請求。因為API只是與Control-M/EM結合使用的,所以必須要對Control-M/EM各種功能要熟悉。

API功能:

Log a user in or out of CONTROL-M/EM

Create jobs and Group Scheduling tables in the CONTROL-M Active Jobs file

Order and force jobs

Order and force Scheduling Groups

Track job execution

Add or delete Conditions

Manipulate Alerts

新版本新增功能:

Check the validity of user tokens

Create Job and Scheduling Group Definitions

Delete Job Definitions

Upload Scheduling Tables

Retrieve Jobs from CONTROL-M Active Jobs File

Perform Job Actions such as Hold, Free Rerun, Confirm, Kill and Force OK

初始化服務和連線服務:CONTROL-M/EM GUI Server the Global Alerts Server.

初始化例項

1EMXMLInvoker:在control-m api 中傳送接收xml請求,其中涉及到初始化,呼叫,方法設定和取得等方法呼叫。

2EMBasicXMLInvoker:在請求返回之前,不進行任何操作。

     開始實踐

每個請求人都有一個令牌,在執行操作之前必須要進行註冊。使用者在提交了使用者名稱稱和密碼成功之後,在session中,就有了該使用者的令牌。使用者退出的時候令牌釋放,Session 舉例如下:

程式流程:

1.使用者登入具有Control-M api

的主機;

2啟動api程式,初始化例如EMXMLInvoker中的內容;

3.連線EM,發出登入請求,使用者提出使用者名稱和密碼;

4EM返回訊息 包含使用者唯一的令牌,失敗的話,返回錯誤列表;

5客戶端,建立一個請求,建立個工作發出請求,同時api翻譯具體請求;

6EM返回來的成功與失敗的訊息;

7.客戶端i處理返回的資訊,通知使用者;

8.建立下一個工作。重複24

9.退出EM,使用者提出沒有出冊的請求;

10EM 返回錯誤資訊;

11.停止呼叫api

執行要求:

1.CONTROL-M/EM is installed on your network.

2.—Java Developer's Kit (JDK) version 1.4.x or later

—Java Runtime Environment (JRE) version 1.4.x or later

配置:

emapi-configure.bat

emapi_env.bat

ctmemapi.properties

emapi-admin.bat

NamingViewer.vbs

changePass.bat

Java程式碼:

import com.bmc.ctmem.emapi.*;//匯入包

public class EMAPISample {

public EMAPISample() {

}

/** run once before submitting requests */

public void do_init(String[] args) {

EMXMLInvoker.init(args);//初始化

}

/** run once before exiting the program */

public void do_terminate() {

EMXMLInvoker.done();

}

/** This submits the XMLRequest received as a parameter

* and returns the response */

public String submit_request(String XMLRequest) {

String XMLResponse="";

// Creates a component

ComponentType gsr_comp = new GSRComponent();//建立連線

// Creates a new EMXMLInvoker instance建立EMXMLInvoker 例項

EMXMLInvoker my_invoker = new EMXMLInvoker(gsr_comp);

try {

// Submits the request given as a parameter

XMLResponse = my_invoker.invoke(XMLRequest);

}

catch(InvokeException i) {

// must handle InvokeException

}

return XMLResponse;

}

}

編譯執行:

1.設定環境,執行emapi_env.bat

2.配置java環境

set JAVA_HOME=java_installation_location

set PATH=java_installation_location;%PATH%

3.emapi-630/ctmemapi.properties 到工程目錄中

4,設定corba引數

java.exe -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB

-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton -classpath

%CLASSPATH% projectMainClass

關於api 之間的requestreponse通訊到底如何進行的呢?

具體還要學習一下 soap 協議,SOAP意思是簡單物件訪問協議(Simple Object Access Protocol)。的確如它的名字一樣,SOAP是很簡單的。它是一個基於XML的協議,允許程式元件和應用程式彼此使用一種標準的Internet協議--HTTP來通訊。SOAP是一種獨立的平臺,它不依賴程式語言,它是簡單的,彈性的,很容易擴充套件的。目前,應用程式能夠彼此使用一種基於DCOMCORBA技術的遠端過程呼叫(RPC)來進行相互通訊,但HTTP不被設計為這個目的。RPCInternet上應用是非常困難的,它們會出現許多相容性和安全性的問題,因為防火牆和代理伺服器通常都會阻斷(block)這些型別的流量。應用程式之間最好的通訊方式是通過HTTP協議,因為HTTP是支援所有Internet瀏覽器和伺服器的。基於這個目的,SOAP協議被創建出來。

 關於後續內容。在續。。。。。