分类:
2008-03-25 10:53:06
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/
初始化实例 :
1.EMXMLInvoker:在control-m api 中发送接收xml请求,其中涉及到初始化,调用,方法设置和取得等方法调用。
2.EMBasicXMLInvoker:在请求返回之前,不进行任何操作。
每个请求人都有一个令牌,在执行操作之前必须要进行注册。用户在提交了用户名称和密码成功之后,在session中,就有了该用户的令牌。用户退出的时候令牌释放,Session 举例如下:
程序流程:
1.用户登录具有Control-M api的主机;
2.启动api程序,初始化例如EMXMLInvoker中的内容;
3.连接EM,发出登录请求,用户提出用户名和密码;
4.EM返回消息 包含用户唯一的令牌,失败的话,返回错误列表;
5.客户端,创建一个请求,建立个工作发出请求,同时api翻译具体请求;
6.EM返回来的成功与失败的消息;
7.客户端i处理返回的信息,通知用户;
8.创建下一个工作。重复2到4;
9.退出EM,用户提出没有出册的请求;
10.EM 返回错误信息;
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 之间的request和reponse通讯 到底如何进行的呢?
具体还要学习一下 soap 协议,SOAP意思是简单对象访问协议(Simple Object Access Protocol)。的确如它的名字一样,SOAP是很简单的。它是一个基于XML的协议,允许程序组件和应用程序彼此使用一种标准的Internet协议--HTTP来通讯。SOAP是一种独立的平台,它不依赖程序语言,它是简单的,弹性的,很容易扩展的。目前,应用程序能够彼此使用一种基于DCOM和CORBA技术的远程过程调用(RPC)来进行相互通讯,但HTTP不被设计为这个目的。RPC在Internet上应用是非常困难的,它们会出现许多兼容性和安全性的问题,因为防火墙和代理服务器通常都会阻断(block)这些类型的流量。应用程序之间最好的通讯方式是通过HTTP协议,因为HTTP是支持所有Internet浏览器和服务器的。基于这个目的,SOAP协议被创建出来。
关于后续内容。在续。。。。。