Общий интерфейс клиента - Common Client Interface (CCI)

С помощью общего интерфейса клиента (CCI) можно создать приложение для использования адаптера ресурсов IMS TM, взаимодействующего с IMS.

Для доступа к транзакциям IMS через адаптер ресурсов IMS TM исходный текст для приложений можно написать самостоятельно, не пользуясь текстом приложений, создаваемым средой разработки. В этом заключается отличие от использования такой среды разработки, как, например, Rational Application Developer, создающей приложения для пользователей таким образом, что самостоятельно создавать тексты не требуется.

Интерфейс программирования Common Client Interface (CCI) необходим для самостоятельного написания текстов приложений. Интерфейс CCI API обеспечивает доступ клиентов J2EE,например, объектов EJB, технологии JavaServer Pages (JSP)и сервлетов, к базовым информационным системам предприятий (EIS), таким как IMS.

Независимо от того, какая информационная система предприятия (EIS) используется, приложения, соответствующие модели интерфейса программирования CCI, имеют общую структуру. Согласно спецификации архитектуры коннекторов J2EE (JCA), определены два необходимых для приложения объекта: Эти объекты позволяют серверу приложений управлять безопасностью, контекстом транзакций и пулами соединений, что необходимо для адаптера ресурсов. Приложение на основе интерфейса CCI адаптера ресурсов IMS TM начинает работу с получения объекта фабрики соединения IMSConnectionFactory. Объект IMSConnectionFactory можно получить двумя способами:

Соединения IMS

После этого из объекта IMSConnectionFactory можно создать объект соединения IMSConnection. Свойства объекта IMSConnection можно либо указать в объекте IMSConnectionSpec, передаваемом в качестве параметра метода getConnection, либо использовать значения, определенные по умолчанию в фабрике соединений IMSConnectionFactory. После получения IMSConnection, из него можно создать взаимодействие IMSInteraction. IMSInteraction представляет собой взаимодействие, которое будет выполнено в этом соединении. Как и в случае с соединением, взаимодействия могут обладать пользовательскими свойствами, взятыми из класса IMSInteractionSpec.

Ввод и вывод

Для выполнения взаимодействия приложение направляет вызов методу выполнения () объекта IMSInteraction, передавая ему объекты ввода и вывода для хранения данных. Во входном сообщении в IMS должен быть создан входной массив байтов, содержащий значения каждого поля. Аналогичным образом, необходимо создать выходной массив байтов для хранения ответного сообщения, возвращаемого IMS. Значение каждого поля в выходном сообщении извлекается из выходного массива байтов.

Массивы байтов можно либо создать самостоятельно, либо воспользоваться опциями J2C в Rational Application Developer (RAD)и создать связки данных Java для входных и выходных сообщений приложения CCI, даже если вы не планируете использоватьRAD для разработки своего приложения.

Требования к приложениям для извлечения данных из системы IMS:
  • Использование объекта IMSConnectionFactory для создания объекта IMSConnection.
  • Использование объекта IMSConnection для создания объекта IMSInteraction
  • Использование объекта IMSInteraction для выполнения транзакций в базовой системе IMS.
  • Закрытие объектов IMSInteraction и IMSConnection.

Пример текста приложения CCI

В следующем примере показано применение интерфейсов J2EE CCI для выполнения команды в системе EIS:
public void execute() {
try {
   ConnectionFactory cf = null;
   if (isManaged) {
//Использование поиска JNDI для получения экземпляра ConnectionFactory - допустим, имя JNDI фабрики соединений - MyIMS
      Context ic = new InitialContext();
      cf = (ConnectionFactory) ic.lookup("MyIMS");
   } else {
//Создание и установка значений ManagedConnectionFactory
      IMSManagedConnectionFactory mcf = new IMSManagedConnectionFactory();
      mcf.setDataStoreName("MyDSName");
      mcf.setHostName("myHostNm");
      mcf.setPortNumber(new Integer(1234));
//Создание фабрики соединений из ManagedConnectionFactory
      cf = (IMSConnectionFactory) mcf.createConnectionFactory();
   }
   Connection connection = cf.getConnection();

//Создание взаимодействия с IMS для проведения транзакции IVTNO
   IMSInteraction interaction = (IMSInteraction) connection.createInteraction();
   IMSInteractionSpec ixnSpec = new IMSInteractionSpec();
   ixnSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND_RECEIVE);

//Создание новой входной записи
   input = new PhoneBookInputRecordField("cp037");
   input.setIn__ll((short)59);
   input.setIn__zz((short) 0);
   input.setIn__trcd("IVTNO");
   input.setTranCodeLength(10);
   input.setIn__command("DISPLAY");
   input.setIn__name1("LAST3");
   input.setIn__name2("");
   input.setAllFieldsGiven(false);
   PhoneBookOutputRecordField

//Создание новой выходной записи
   output = new PhoneBookOutputRecordField("cp037");

//Выполнение взаимодействия
   interaction.execute(ixnSpec, input, output);

//Вывод на дисплей
   System.out.println ("Output is: ");
   System.out.println("\nMessage: "
      + output.getOut__mesg()
      + "\nName:"
      + output.getOut__name1()
      + " "
      + output.getOut__name2()
      + "\nExtension: "
      + output.getOut__extn()
      + "\nZipcode: "
      + output.getOut__zip());

} catch (Exception e) {
   e.printStackTrace();
} finally {
//Закрытие взаимодействия и соединения
   interaction.close();
   connection.close();
}
}

Комментарии