Разбор данных IBM 3270 в Java - PullRequest
3 голосов
/ 05 июля 2010

Мне было интересно, имел ли кто-нибудь опыт извлечения данных по протоколу 3270.Насколько я понимаю, пока:

Соединение

Мне нужно подключиться к серверу SNA с помощью telnet, выполнить команду и затем некоторые данные будут возвращены.Я не уверен, как это соединение сделано, так как я прочитал, что стандартное соединение Telnet не будет работать.Я также читал, что у IBM есть библиотека, чтобы помочь, но не дошел до того, чтобы больше об этом узнать.

Синтаксический анализ

Я предполагал, что возвращаемые данные будут строкой1920 символов, начиная с экрана 3278, было 80x24 символа.Мне просто нужно разобрать эти символы в соответствующие поля.Чем больше я читаю о протоколе 3270, тем меньше это происходит - я прочитал в документации, прилагаемой к пробной версии Java-библиотеки Jagacy 3270 , что атрибуты были помечены в протоколе символом 'AДо того, как этот атрибут и мое понимание заключаются в том, что есть и другие символы, обозначающие другие факторы, такие как возможность редактирования полей.

Я вполне уверен, что мое мышление было слишком упрощенным.Возьмите пример, например, экран со списком элементов - нажатие специальной клавиши на одной из 24 видимых строк приводит к более подробной информации об этой строке.

Также мне было предложено, чтобы команды печати могли бытьвыпущен.Это имеет некоторые положительные последствия - если формат возвращаемой строки не 1920, так как он содержит такие символы, как «А», обозначающие, как пользователи взаимодействуют с терминалом, печать уничтожит их.Также это прекратило бы пролистывать много данных.С другой стороны, я не знаю, как получить данные из команды печати обратно в Java.

Итак ..

В настоящее время у меня нет доступа к серверу SNA, но естьнекоторые скриншоты того, как будет выглядеть терминал, когда я получу соединение и, следовательно, собираюсь начать работу по синтаксическому анализу.С таким большим количеством предположений и отсутствием большого количества идей о том, как будут выглядеть данные, я чувствую себя действительно озадаченным.Кто-нибудь знает об этих системах, которые могут помочь мне вернуться на правильный путь?

Ответы [ 2 ]

6 голосов
/ 06 июля 2010

Вы выбрали для себя проблему. 3270 действительно очень сложный протокол. Я не буду беспокоиться о том, чтобы попытаться осуществить это, это глупое поручение, и я говорю из болезненного личного опыта. Попробуйте найти клиентский API TN3270 (Telnet 3270).

1 голос
/ 20 июля 2010

Это может не совсем ответить на ваш вопрос, но ...

Если вы используете Rational Developer для z / OS, ваш Java-код должен иметь возможность использовать интегрированный продукт HATS для работы с потоком 3270. Возможно, он не подходит вашему проекту, но я подумал, что упомяну об этом, если все, что вы пытаетесь сделать, - это просто очистить экран, это очень просто.

...