문제

우리의 응용 프로그램은 종종 웹 서비스, MQ, JDBC, 독점 (직접 소켓) 및 기타 종류의 운송에 대한 다른 종류의 백엔드에 연결됩니다. 우리는 이미 애플리케이션에서 이러한 백엔드에 연결할 수있는 여러 구현이 있으며 이러한 모든 구현은 공통 Java 인터페이스를 구현하지만 다른 것을 공유하지 않습니다.

우리는 이러한 특정 커넥터 구현에 공통적 인 코드의 의미가 있음을 깨달았으며 하나의 범용 커넥터를 통해 미래 커넥터의 개발을 간소화하기로 결정했습니다. 이 커넥터는 메시지를 백엔드로 예상되는 형식으로 서식하고 사용 가능한 전송 메커니즘을 사용하여 보낼 수 있습니다. 예를 들어, MQ 또는 소켓 위의 고정 길이 메시지 형식.

우리가 직면 한 딜레마 중 하나는 이러한 종류의 커넥터에 가장 적합한 기술입니다. 지금까지 우리 커넥터는 공통 Java 인터페이스를 구현하는 기본 Java 클래스였습니다. 우리는 일반적으로 일부 Java EE 애플리케이션 서버에서 응용 프로그램을 호스팅하기 때문에 Java 커넥터 아키텍처 가이 소프트웨어에 가장 적합한 기술이 될 것 같습니다. 그러나 JCA 준수 커넥터를 구현하는 것은 비교적 복잡한 것으로 보입니다. JCA를 표준으로 진행하면 촉진 가능한 이점은 무엇입니까?

도움이 되었습니까?

해결책

실제로 JCA 보인다 당신에게 가장 적합한 기술. 이미 탁월한 논쟁, 즉 휴대 성, 표준화 된 인터페이스, 연결 풀링 및 트랜잭션 지원이 이루어졌습니다. 그리고 보안을 잊지 마십시오.

WebSphere Process Server를 사용하면 어댑터가 SCA 서비스로 노출되어 중요한 경우 많은 이점을 얻을 수 있습니다.

또한 일부 개발 도구는 JCA 커넥터를 개발하고 테스트하는 데 광범위한 지원을 제공합니다.

또 다른 이점은 (경험이 풍부한) Java EE 관리자 및 Java EE 개발자 (해야) 표준을 알고 있어야 관리 및 개발이 쉽게 간소화되어야합니다.

그러나 결국 프로젝트의 범위, 프로젝트에 대한 향후 계획 또는 회사 정책 내에서 JCA를 구현 해야하는 이유를 찾아야합니다.

다른 팁

짧은 답변 : 다른 기술보다 JCA를 선택하는 데 도움이되지 않습니다. Java EE 컨테이너가 필요하기 때문에 단점으로 생각합니다.

긴 답변 :

나는이 Java EE 표준에 대해 한동안 회의적이었습니다. 나는 설득력이 없다 전문인 더 나은 오픈 소스 구현이 있기 때문에 더 이상 기능을 갖춘 Java EE 서버를 더 이상 사용해야합니다. 모든 제공된 기능. "Enterprisey Solutions"로 이동할 때 구현 비 호환성으로 여러 차례 물렸다.

JCA에 대한 아이디어는 지금 여기에서 표면화되고 있으며 시도하고 있습니다. 아파치 낙타 또는 봄 통합 대신에. 나는 당신이 어디에서나 사용할 수있는 오픈 소스 구현을위한 것입니다. 그리고 많은 일이 진행되고 있습니다. 확인하다 이 구성 요소 목록. 물론, 아마도 JCA로 이미 개발 된 것보다 작지만 모든 비트는 오픈 소스이며 모든 위치에 있습니다. 또한 문서가 더 간단하고 완전하다고 생각합니다. 통합에 대한 충동은 많은 오픈 소스, 실제 라이브 예제, 같은 방식으로 개발되었으며 같은 장소에서 찾을 수있는 강력한 SPI를 요구합니다.

나는 부정성을 싫어하지만 전체 기능이있는 응용 프로그램 서버를 좋아하지 않습니다. 예를 들어, 나는 Tomcat과 Terracota에 갈 것입니다. 모든 일 JCA의 필요성이 입증 될 때까지 JCA 전에 낙타와 함께 가려고하는 다른 "Enterprisey"제품을 통해. 나는 Java위원회의 아이디어가 내가 신청을 신뢰하지 않기 때문에 어떻게 내 자신의 신청서를 개발 해야하는지 이야기하는 것을 좋아하지 않습니다. 소프트웨어가 Java EE 환경이나 순수한 서블릿 컨테이너에서와 같이 Java SE/RCP에서 쉽게 작동 할 수있을 때 가장 관심이 있다고 생각합니다.

독점 프로토콜을 통해 통신하는 GPS 장치를위한 인바운드 리소스 어댑터를 방금 개발했습니다. 아웃 바운드를 개발하는 데 더 많은 작업이 필요할 수 있다는 인상을 받았지만 그다지 번거롭지 않았습니다. JCA의 최악은 문서가 부족하다는 것입니다. 모든 책과 기사에는 동일한 멍청한 예가있는 것 같습니다.

내가 가장 기뻐하는 것은 이식성입니다. 어댑터를 작성한 후에는 RAR (Resource Adapter Archive)을 모든 애플리케이션 서버에 연결하여 배포 된 응용 프로그램에 RA에서 지원하는 EIS와 통신 할 수있는 기능을 제공 할 수 있습니다. 또는 RAR을 전쟁/귀에 묶을 수도 있습니다.

이점은 주로 모든 앱 서버와 함께 사용하기 위해 독점적 인 백엔드 시스템에 커넥터를 판매하려는 공급 업체, 실제로 WebSphere가 아닌 Weblogic에서만 작동하는지에 대해 걱정하지 않고 커넥터를 삭제할 수있는 고객의 경우입니다. 이것이 일반적으로 Java EE의 목표입니다.

JBOSS는 JCA를 통해 JDBC 연결이 JCA에 몇 가지를 JCA에 넣기로 결정했습니다.

미래의 클라이언트 코드에는 표준화 된 인터페이스, 일부 풀링 및 트랜잭션 지원 등이 있지만 더 큰 그림을 보는 것이 중요합니다. 즉, 이점은 귀하와 귀하의 하나의 프로젝트를 구체적으로 대상이 아니라 많은 앱 서버, 많은 백엔드 시스템, 많은 커넥터 등으로 구성된 소프트웨어 에코 시스템을 대상으로합니다.

a JBI 결합 성분이있는 컨테이너. 논의 JCA 대 JBI.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top