2013-11-28 5 views
0

는 서버 측 글래스 피시 3.1.2입니다, 우리는 클라이언트 - 서버 응용 프로그램이 클라이언트

문제에 자바 EE 6 서버에서 데이터를 전송합니다. 이 앱에는 많은 사용자와 많은 모듈 (예 : 거래보기, 은행 조회 등)이 있습니다. 서버에서 실행되는 클라이언트가 호출하는 일부 장기 실행 프로세스가 있습니다. 현재 우리는 사용자에게 서버 측에서 어떤 일이 벌어지고 있는지를 보여주는 멋진 솔루션을 찾지 못했습니다. 사용자가 주어진 빈도로 서버에서 업데이트 된 메시지를 받길 원합니다. 사용할 것을 제안 하시겠습니까?

우리가 무슨 짓을/우리는 (독립적) Singleton 빈과 접근 방법을 사용

  1. 시도하고 this 유사 클라이언트 ID의 Map, 그것은 물론 작동합니다. 그러나 서버 측에서는 모든 메소드 doSomething(Object... vars)doSomething(Object... vars, String clientID) 또는 어떤 유형의 ID로 변환해야합니다. 클라이언트는 서버에서 데이터를 초당 한 번씩 가져옵니다. 나는 서버와 클라이언트 사이에 facades를 추가하는 것을 피하고자한다.

  2. 나는 JAX-WS 또는 JAX-RS에 대해 생각하고 있었지만,이 기술에 대해 깊이 알지 못하고 자신이 할 수있는 일에 대해 확신하지 못했습니다.

  3. 소켓

I는 서버 측에서 점에 유의해야한다 우리는 비 저장 콩 (그 이유가있다), 즉 I 인 (상태 저장 빈의 사용을 언급하지 않았다 이유가 내가 생각하는 아주 좋은 후보자).

감사합니다, 올렉

+0

클라이언트가 웹 응용 프로그램입니까? 서버 측 클라이언트 세션을 관리합니까? – remigio

+0

아니요, @remigio, 클라이언트가 웹이 아니며 스윙하고 있습니다. 예, 우리는 서버 측도 관리합니다. – Oleg

답변

0

웹 소켓은 적합한 선택이 될 수있다,이 서버는 더 강한 결합으로 고객에게 원치 않는 데이터를 보낼 수 있습니다, 당신은 작업을 실행하는 클라이언트 연결을 매핑 할 수있는 클라이언트 ID를 저장해야 올바른 연결로 업데이트를 푸시 할 수 있습니다. 클라이언트 ID/소켓 연결 매핑은 확장 성을 목적으로 또는 강력한 솔루션이 필요한 경우에는 메모리 구조, 즉 해시 맵 또는 영구 데이터 저장소를 사용하여 단일 톤 Bean에서 유지 관리 할 수 ​​있습니다. WebSocket 기술을 더 잘 이해할 수있는 유용한 링크는 thisthis입니다.

+0

감사합니다. @remigio! 네가 제안한 것을 시도 할게. – Oleg