:: 턱시도와 웹의 연계 사례 ::
J2EE 기반의 솔루션을 WTC(웹 로직 턱시도 커넥터)를 이용하여 턱시도와 연계하는 시나리오를 알아보기로 한다. J2EE 기반 아키텍처를 사용하여 신 시스템을 구축할 때 신 시스템과 기존 레거시 시스템(여기서는 턱시도의 경우를 예제로 든다)과의 연계에 필요한 요소 기술 검토가 필수적이다. 이때 가능 시나리오의 일환으로서 WTC를 이용하여 EJB에서 턱시도 서비스로의 글로벌 트랜잭션, 턱시도 서비스에서 EJB 호출 등의 시나리오를 가상해 볼 수 있다(그림 1).
먼저 WTC 그 자체에 대한 소개를 하면, WTC(웹 로직 턱시도 커넥터)는 웹 로직 서버와 턱시도와의 인티그레이션을 위하여 BEA에서 개발한 솔루션으로서 주요 기능은 ▷Outbound Transaction(WLS→Tuxedo), ▷EJB Service Invoking From Tuxedo Client(Without Transaction Support) ▷Multiple connections between WebLogic Server and Tuxedo ▷Advanced messaging services provided by Tuxedo /Q and JMS 등이 있다. 이전에 많이 쓰이던 JOLT와의 차이점은 WTC는 J2EE(EJB)와 턱시도 사이에서 ‘양방향’ 통신이 가능하다는 것이다. WTC는 EJB 안에서 트랜잭션이 시작되어 턱시도 도메인의 RM(Resource Manager)을 제어할 수 있다. 이는 글로벌 트랜잭션이 지원됨을 의미한다. 단, 현재 버전의 WTC는 반대 방향(턱시도→EJB)의 경우에는 인보킹은 되지만 트랜잭션 서포트까지는 지원되지 않는다.
WTC
는 사실 게이트웨이라고 정의할 수 있다. 풀어서 얘기하면, WTC는 웹 애플리케이션측의 게이트웨이이고, 턱시도측 게이트웨이는 턱시도에서 제공하는 GWTDOMAIN 서버이다. 이 두 게이트웨이는 애플리케이션 별로 포트를 여러 개 지정할 수 있고 관리할 수 있다. WAS의 EJB는 앞 레이어에서 일어난 트랜잭션을 WTC를 통하여 tpcall 한다. 그러면 턱시도 서비스가 인보크되고 RM에 C/R/U/D를 일으키고 다시 tpreturn 한다. 이 과정은 턱시도 입장에서 보면 일반적인 턱시도 /T Domain으로 구성된 것과 동일하다. 즉 기존의 턱시도 기반 애플리케이션에 어떠한 수정도 가할 필요가 없는 장점이 있다. 다음으로 도메인-투-도메인에 대하여 알아본다. 턱시도 클라이언트가 EJB를 인보크 시키던지 EJB 가 턱시도로 트랜잭션을 요구하던지 상관없이 기존의 턱시도 고유의 Domain to Domain 개념(그림 2)으로 처리가 가능하다. 단, 현재 버전의 WTC는 턱시도 클라이언트가 EJB를 인보크 시킬 때 트랜잭션 서포트가 지원되지 않는 단점이 있다. 이는 턱시도가 가진 여러 트랜잭션 관련 기능이 정확히 EJB 스펙에 아직 매핑되지 않았기 때문이다.
다음으로 JATMI에 대하여 알아본다. WTC에는 턱시도의 ATMI(Application to Transaction Manager Interface)와 비슷한 JATMI 라이브러리가 제공된다. EJB는 이 JATMI를 이용하여 턱시도 서비스 프로그래밍과 비슷한 방식으로 턱시도 서비스를 제어할 수 있다. 참고로 현재 버전의 WTC가 지원하는 JATMI 프리미티브를 나열해보면, tpacall, tpcall, tpconnect, tpdiscon, tpdequeue, tpenqueue, tpgetrply, tprecv, tpsend ,tpterm 등이 있다. 이들은 동기 호출, 비동기 호출, 대화형 호출(데몬성), 큐 호출 등 턱시도에서 제공되던 ATMI 프리미티브들과 동일하다.
WTC의 한 가지 아쉬운 점은 WTC는 Jolt와는 달리 ‘EJB’ to 턱시도 혹은 턱시도 to ‘EJB’ 간의 인터페이스만을 지원하기 때문에 EJB가 아닌 자바 애플리케이션에서 턱시도 서비스에 접근하기 위해서는 어쩔 수 없이 기존의 JOLT 혹은 JNI를 사용해야 한다는 점이다. 참고로 WTC의 구입에 대하여 알아보면 WTC는 웹로직 6.1 SP2 이후로는 웹로직.jar에 JATMI가 통합되었으므로 추가로 WTC 패키지를 설치할 필요가 없다. 암호화를 하지 않을 경우 WTC 라이선스 비용은 무료이다. 단, 데이터 암호화가 필요한 경우에는 라이선스 구입이 필수이다