barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком WSO2ESB hl7 proxy-service. Показать все сообщения
Показаны сообщения с ярлыком WSO2ESB hl7 proxy-service. Показать все сообщения

среда, 10 августа 2011 г.

Тестирование hl7-проксирования WSO2ESB 4.0.0

Как создать hl7-прокси-сервис, я уже писал тут: http://barbitoff.blogspot.com/2011/08/wso2esb-hl7.html. Для тестирования hl7 понадобится пробный hl7-сервер и клиент, скачать его можно здесь: http://narod.ru/disk/21364371001/hl7test.7z.html, а также Apache Ant.

Честно говоря, с протоколом hl7 я не знаком, но описанный мной пример позволяет даже не знающему протокола человеку убедиться в работоспособности hl7-транспорта WSO2ESB.

Для запуска hl7-сервера:
  • Перейти в каталог hl7test (тот, который содержит build.xml) и выполнить ant hl7acceptor -Dhl7-port=9988 - запустит сервер, слушающий порт 9988
Для запуска клиента, работающего по протоколу hl7, обращающегося на сервер напрямую:
  • Перейти в каталог hl7test (тот, который содержит build.xml) и выполнить ant hl7client -Dhl7-host=127.0.0.1 -Dhl7-port=9988 (предполагается, что hl7-сервер развернут на localhost`e) - после запуска в консоль запущенного сервера должно вывалиться принятое сообщение, сервер на это сообщение ответит, ответ придет в консоль клиента, после чего последний завершится (тоже самое должно происходить и в описанных ниже случаях).
Для запуска клиента, работающего по протоколу hl7, обращающегося на сервер через прокси-сервис ESB:
  • Перейти в каталог hl7test (тот, который содержит build.xml) и выполнить ant hl7client -Dhl7-host=127.0.0.1 -Dhl7-port=9292 (предполагается, что "transport.hl7.Port" сервиса на ESB должен быть установлен в 9292, и сама шина расположена на localhost`e)
Для запуска клиента, работающего по протоколу http и оперирующего XML-сообщениями, обращающегося на сервер через прокси-сервис ESB:
  • Перейти в каталог hl7test (тот, который содержит build.xml) и выполнить ant hl7client -Dmode=soap -Dhl7-host=127.0.0.1 -Dhl7-port=8280 -Dhl7-proxy=hl7testproxy -DmetaFile="/path/to/sample_req.xml" (предполагается, что ESB слушает http-запросы на 8280 и прокси-сервис называется hl7testproxy, /path/to/sample_req.xml - путь к файлу запроса sample_req.xml, который включен в архив).

вторник, 9 августа 2011 г.

Создание прокси-сервиса WSO2ESB для работы по hl7

Во-первых, необходимо добавить в WSO2ESB поддержку hl7-транспорта (http://barbitoff.blogspot.com/2011/08/hl7-wso2esb-400.html). После этого можно создать прокси-сервис, который не только сможет принимать hl7-подключения от клиентов и перенаправлять их дальше hl7-серверу, но и принимать xml-сообщения по http/https, и, преобразуя их в hl7, отправлять дальше, преобразую ответ на обратном пути снова в xml.
Процесс создания hl7-сервиса аналогичен созданию обычного сервиса но:
  • Необходимо указать параметр "transport.hl7.Port", значение которого будет указывать порт, который будет слушаться для приема запросов по протоколу hl7 прокси-сервисом (в противном случае ESB пометит сервис как "faulty" и отключит для него hl7-транспорт).
  •   В качестве конечной точки (endpoint) указывается Address Endpoint с адресом вида "hl7://localhost:9988", указывающим хост и порт hl7-сервера.
Вот пример hl7-прокси-сервиса, принимающего запросы по http, https и hl7, логирующего запросы и ответы и перенаправляющего запрос на hl7-сервер "localhost:9988" :

<proxy xmlns="http://ws.apache.org/ns/synapse" name="hl7testproxy" transports="https,http,hl7" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <log level="full" />
      </inSequence>
      <outSequence>
         <log level="full" />
         <send />
      </outSequence>
      <endpoint name="endpoint_urn_uuid_9CB8D06C91A1E996796270828144799-1418795938">
         <address uri="hl7://localhost:9988" />
      </endpoint>
   </target>
   <parameter name="transport.hl7.Port">9292</parameter>
</proxy>

Как протестировать проски-сервис, описано здесь: http://barbitoff.blogspot.com/2011/08/hl7-wso2esb-400_10.html.