Разбор данных IBM 3270 в java

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

Связь

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

Разбор

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

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

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

So..

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


person James    schedule 05.07.2010    source источник


Ответы (2)


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

person user207421    schedule 06.07.2010
comment
Действительно, найдите клиент TN3270 с поддержкой сценариев. Внедрение TN3270 самостоятельно (включая комплекс 3270 Data Stream) — задача, достойная славы сама по себе, не говоря уже о части проекта по автоматизации экранов. Как и EJP, я сделал именно это, и это было весело и прибыльно, но это не проект выходного дня. - person Ross Patterson; 09.07.2010

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

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

person Joe Zitzelberger    schedule 19.07.2010