2009-07-07 2 views
4

현재 클라이언트/서버 응용 프로그램을 설정하려고합니다. Swing 씬 클라이언트로 작성된 클라이언트를 가질 계획입니다. 서버 측 응용 프로그램을 어떻게 설정해야하는지 잘 모르겠습니다.Swing 씬 클라이언트가있는 Java Server 응용 프로그램 아키텍처

Java 서버 측 응용 프로그램에는 응용 프로그램 비즈니스 논리, 데이터베이스 액세스 등이 있습니다. 웹 프론트 엔드를 사용하는 Java 서버 측 응용 프로그램 설정에 대한 웹에서 많은 정보를 볼 수 있습니다. 그래서 Tomcat과 JBOSS 같은 풀 어플리케이션 서버에 대한 많은 정보를 볼 수 있습니다. 웹 프론트 엔드를 사용하지 않을 것이므로 어떻게 서버를 설치해야하는지 정확히 알지 못합니다. 저는 Spring과 Java EE를 살펴 보았습니다.

내 최선의 선택입니까? 내가 생각하지 못하는 다른 옵션이 있습니까? 나는 그것들을 함께 사용해야 하는가, 아니면 내가 따로 사용할 수있는 것인가?

Java EE 만 사용하려는 경우 JBOSS, Weblogic, Websphere 등과 같은 전체 응용 프로그램 서버가 필요합니까? 아니면이 작업이 끝났습니까? 또한 JMS를 사용하려면 응용 프로그램 서버를 사용해야합니까? 아니면 대안이 있습니까? 내 첫 번째 생각은 응용 프로그램 서버가 일종의 살인이지만 확실하지는 않다는 것입니다.

미리 감사드립니다.

+0

"스윙"과 "얇은"은 아주 어리석지 만 한 문장에 서로 가깝게 배치되지는 않습니다. :) GWT를 보았습니까? 웹 클라이언트의 진정한 의미의 얇은 특성을 지닌 고유 클라이언트의 코딩 감을 가지고 있습니다. –

답변

1

제공된 기능을 사용하지 않으면 응용 프로그램 서버가 과도하게 작동합니다. 애플리케이션에 JSP와 서블릿 만 있으면 Tomcat이 더 나은 선택입니다. EJB를 사용한다면 Jboss와 같은 어플리케이션 서버가 필요합니다.

먼저 결정해야 할 것은 스윙 클라이언트가 서버와 상호 작용하는 방법입니다. HTTP 프로토콜, EJB 조회, 간단한 RMI 등을 사용할 예정입니까?

서버 네트워크 외부에있는 사람들이 클라이언트를 사용하는 경우 HTTP 프로토콜을 사용해야 서블릿이 최상의 선택입니다. 당신은 webservice로뿐만 아니라 서버를 폭로 할 수 있습니다. 클라이언트 사용자가 서버 네트워크에 있다면 EJB 또는 소켓 프로그래밍 또는 http와 같은 것을 사용할 수 있습니다.

서버와 클라이언트에서 확실히 Spring을 사용할 수 있습니다. Spring은 큰 프레임 워크이므로 어떤 기능을 활용할 것인지 결정해야합니다. Spring은 서블릿 환경, EJB 환경 또는 다른 환경에서 사용될 수 있습니다.

+1

HTTP/HTTPS를 사용하는 것은 방화벽과 프록시에 대한 문제가 훨씬 적기 때문에 확실히 통신용으로 적합합니다. 비슷한 상황 (SWT 'thin'어플리케이션 + Tomcat)에서는 클라이언트와 서버 간의 통신을 위해 Spring httpinvoker를 사용합니다. –

0

http는 사용자가 필요로하는 것을 할 수있는 좋은 프로토콜이지만 간단합니다.

영감을 얻으려면 Jetty 서버 (Tomcat의 대안)를 사용 해보십시오. 간단한 Ajax 기반 채팅 클라이언트가 필요한 데모 애플리케이션 중 하나 일 수 있습니다. 여러분 모두가 배울 필요가 건축 라이브러리의 거대한 수를 필요가 없습니다 http://dist.codehaus.org/jetty/jetty-6.1.19/

에서

가져 오기 버전 6는 나는 그것이 단순 유지하는 것이 좋습니다.

0

어쩌면 CaptainCasa을 살펴 봐야 할 것입니다. JAX 컨퍼런스에서 이것을 한 번 보았습니다. 그들은 멋진 모양의 스윙 클라이언트를 제공하지만 백엔드의 모든 로직을 처리합니다. 나는 제품에 대한 개인적인 경험이 없지만 그들이 제시 한 바에 따르면 "바보 같은"고객에게는 상당히 흥미로운 것처럼 보였다.

3

나는 당신과 같은 상황에 처해 있다고 생각합니다. Swing + Spring + JPA를 진행할 계획입니다. Remoting은 Spring Http Invoker를 통해 이루어져야한다. 유일한 단점은 HTTP 요청을 Spring 빈으로 라우팅하기 위해 Tomcat 또는 Jetty와 같은 서블릿 컨테이너가 필요하다는 것입니다.그러나 winstone (Hudson CI 사용)과 같은 서버는 매우 가볍고 응용 프로그램에 포함될 수 있습니다.

스프링 백엔드는 응용 프로그램 서버가 필요 없다는 것을 의미합니다. 그러나 앞으로 응용 프로그램 서버가 필요하다면 Spring은이를 완벽하게 지원할 수 있습니다.

0

응용 프로그램 서버가 가장 쉬운 솔루션 일 것입니다. 서버 측에서 RESTful API를 작성하는 것을 고려해 볼 수 있는데, 이는 응용 프로그램 서버에서 스프링을 사용하여 수행 할 수 있습니다. 그런 다음 클라이언트 측에서 간단한 http 클라이언트 라이브러리를 사용할 수 있습니다.

관련 문제