2011-01-26 2 views
2

여기 내 가장 기본적인 질문은 다음과 같습니다. Java EE 응용 프로그램에 TCP 인터페이스를 구축하는 방법? 레거시 EIS와 상호 작용하는 대신 TCP/IP 포트 블록과 상호 작용해야합니다. 이상적으로는, 메시지 구동 빈이 들어오는 TCP 요청에 의해 호출 된 onMessage 메소드를 가지며 동일한 연결을 통해 다시 응답 할 수있게하고 싶습니다.Java 커넥터 아키텍처 및 TCP/IP

JCA는 Java EE 환경에서 이와 비슷한 기능을 수행 할 수있을 정도로 일반적으로 보입니다. 맞춤형 커넥터를 개발하는 것이 Java 엔터프라이즈 환경에서 인바운드/아웃 바운드 TCP 인터페이스를 통합하는 데 적합한 기술일까요?


지금까지 내가 지금까지 시도한 것과 우리가 현재 TCP 리스너의 수를 발로로 시작하는 라이프 사이클 모듈을 사용하고 있습니다; 이것은 비즈니스 메소드를 호출하는 메시지 구동 Bean을 호출하고, 모두 동일한 TCP 스트림을 통해 리턴합니다. 이것은 실제로 올바르게 작동하지만 응용 프로그램 서버 (Glassfish)의 수명주기 지원은 추가 고려 사항으로 추가 된 것처럼 느낍니다. 따라서 JCA는 이런 종류의 문제에 대한 최우선 솔루션 인 것처럼 보이며 TCP를 통해 통신 할 수있게 해줍니다.

그러나 초기 연구에서 커넥터 아키텍처가 일반화 된 TCP 통신이 아닌 레거시 정보 시스템을 목표로하는 것처럼 보입니다. 그래서, 내 질문이 렌더링 될 수 있습니다 : 커스텀 JCA를 사용하여 TCP/IP를 Java EE 애플리케이션에 통합하는 사람들입니까? 아니면 EJB에서 TCP 연결을 받아들이는 더 나은 기술이 있습니까?

+0

감사합니다. 우리의 현재 솔루션과 우리 연구가 JCA에 관한 것을 보여 주려고 노력했습니다. 내가 분명히 할 수 있으면 알려줘. –

+1

JMS 솔루션은 어떻습니까? 선택할 수있는 많은 JMS 구현이 있으며 그 중 일부는 연결할 추가 프로토콜을 제공합니다. – qrtt1

+0

정말 흥미로운 아이디어입니다. 그러나 우리의 상황에서 들어오는 TCP 요청은 많은 언어와 플랫폼에서 발생합니다. 특히 우리는 C로 작성된 일부 임베디드 애플 리케이션을 가지고 있으며, 알고있는 한 환경에서 JMS 클라이언트를 구현하는 것이 쉽지는 않을 것입니다. –

답변

2

MXBeans와 JCA (MXBeans가 더 쉽고, 둘 다 구현되었습니다.)하지만 기본적으로 필요한 MXBeans/JCA/JNDI를 사용하여 필요한 프록시를 생성하는 AppServer를 사용하여 시작/중지 및 가능한 두 가지 작업 만 수행하면됩니다 너를 위해서.

실제 응용 프로그램 : 80 + 443 포트에서 연결을 트랩 할 수 있고 정상적으로 웹 서버를 사용할 수있는 해킹 된 톰캣. 세션/메시지 및 모든 재즈를 관리하기위한 전체 플랫폼 (자체 (배포자 포함) 포함)이 계속됩니다.

+0

감사합니다. upvoted - 저는 MXBeans를 살펴 보겠습니다. –

+0

구체적인 AppServer를 염두에두고 있습니까? – bestsss

+0

현재 Glassfish를 선호합니다 ... –