본 장에서는 WebtAsync에 대해 설명하고 WebtAsync library를 이용한 Outbound/Inbound 구조에 대해 기술한다.
WebTAsync란 Tmax의 Async Java 게이트웨이와 In/Out 통신을 Asynchronous로 하기 위한 Java 라이브러리이다. 사용자(개발자)는 라이브러리를 이용하여 Tmax로 서비스 요청을 하거나 Tmax에서 요청된 서비스를 처리하고 결과를 다시 Tmax로 전송할 수 있다. WebTAsync로 이용하여 기존 JEUS 이외에 타 벤더의 웹 애플리케이션 서버와 Tmax 서버간 양방향 통신이 가능하다.
이 라이브러리는 Tmax 4.0 SP3 Fix#8 이상에서만 동작한다.
Tmax에서 Async Java 게이트웨이를 통하여 JTmaxNServer로 서비스를 요청하는 것을 Inbound라고 정의한다.
WebTAsync 라이브러리를 이용하여 작성된 애플리케이션(JTmaxNServer)을 기동하면 Tmax의 Async Java 게이트웨이에서 들어오는 요청을 기다린다. 서비스 요청은 워커 스레드(woker thread)가 처리를 하며 이 처리는 사용자가 사전에 등록한 callback interface를 호출한다. 기존의 JTmax는 ejb를 호출하였으나 WebtAsync는 callback interface를 호출하는 것이 차이점이다.
WebtAsync 라이브러리를 이용하여 Tmax로 서비스를 요청하는 것을 Outbound라고 정의한다.
WebtAsync 라이브러리를 이용하여 작성한 애플리케이션에서 Tmax의 Async Java 게이트웨이와 연결을 여러 개 맺을 수 있다. 기존의 WebT는 애플리케이션 내에서 Connection Pool로부터 Connection을 얻어와서 서비스를 요청하는 형태였다면 WebtAsync는 내부적으로 사용할 회선을 결정하여 서비스 Connection Pool를 요청하는 것이 차이점이다. 이는 같은 한 회선으로 다른 트랜잭션이라도 요청할 수 있는 것을 의미한다.
사용자는 요청에 대한 응답을 기다리지 않고 다음 일을 수행할 수 있고 결과는 새로운 스레드로 사전에 등록된 callback method를 호출하여 사용자에게 알린다. 즉 사용자는 결과에 대한 callback interface를 등록하고 요청을 하면 새로운 스레드로 callback method가 호출되는 형태이다.