Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1195779
  • 博文数量: 146
  • 博客积分: 6619
  • 博客等级: 准将
  • 技术积分: 1621
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-29 14:06
文章分类

全部博文(146)

文章存档

2020年(1)

2019年(4)

2018年(3)

2017年(5)

2015年(5)

2014年(7)

2013年(5)

2012年(11)

2011年(15)

2010年(13)

2009年(14)

2008年(63)

分类:

2008-03-25 10:53:06

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协议被创建出来。

 关于后续内容。在续。。。。。

阅读(2655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~