2008-09-23 6 views
10

모두 같은 회사에서 Java로 작성된 분산 응용 프로그램을 개발할 때 웹 서비스 또는 RMI를 선택 하시겠습니까? 성능, 느슨한 커플 링, 사용 편의성 측면에서 장단점은 무엇입니까? 누구든지 WS를 선택하겠습니까? RMI를 사용하여 서비스 지향 아키텍처를 구축 할 수 있습니까?Java 전용 환경에서 웹 서비스와 RMI의 장단점은 무엇입니까?

답변

9

나는 그것에 대해 이런 식으로 생각하려고 것 :

당신은 서로 아래에 실행되는 독립적 인 서비스 건가요, 그 서비스는 비 Java 응용 프로그램에서 미래의 어떤 시간을 액세스 할 수 있습니다? 그런 다음 웹 서비스로 이동하십시오.

응용 프로그램의 일부를 여러 서버에 분산시키고 싶습니까? 그런 다음 RMI를 사용하면 Java 세계를 떠나지 않아도 모든 작업을 긴밀하게 결합 할 수 있습니다.

+0

그것에 대해 생각하는 좋은 접근 방식. 또한 서비스를 찾기 위해 RMI 레지스트리를 실행해야하는 것과 관련된 추가 복잡성과 번거 로움을 잊지 마십시오. 최소한 추가 포트가 열려 있어야하고 레지스트리를 호스팅하는 데 최악의 문제가 있습니다. –

6

WS를 선택합니다.

  • WS/RMI가 병목 현상을 일으킬 가능성은 거의 없습니다.
  • 앞으로 다른 가능한 기술에 대한 문호를 닫아야하는 이유는 무엇입니까?
  • 클라이언트/서버의 클래스 버전이 동기화되지 않으면 RMI에 문제가있을 수 있습니다.

그리고 ... 나는 아마도 REST 서비스를 선택할 것입니다.

+1

실제로 측정 할 때까지는 가능하지 않다고 말할 수는 없습니다. –

1

내 선택 사항은 다음과 같습니다

표준 자바 직렬화 - 장점 : 이럴 (I 원격 하나 로컬 인터페이스를 노출 스프링 사용하고 있습니다) 구현, 간단한 가장 성능을 제공합니다; 단점 : 직렬화는 다른 JVM 버전

사이에 작동하지 않습니다

바이너리 직렬화 (부두에서 예를 들어, 헤센 용) - 장점 :

는 WS 자바 직렬화와 같은 성능과 다른 JVM 버전

사이에 작동합니다가있는 경우에만 서로 다른 플랫폼 java + .net 사이의 상호 운용성이 필요합니다. 그렇지 않으면 너무 비만합니다.

1

RMI는 매우 빠른 개발 전송이지만, 프로덕션 환경에서 사용하는 것이 좋습니다. 직렬화 호환성 문제로 인해 어색한 일이 생길 수 있으므로 배포를 매우 조심스럽게 조정해야합니다.

웹 서비스는 비효율적입니다. 그렇지만 하드웨어를 통해서만 가능합니다. 또는 전체 fat SOAP/WSDL보다는 평범하고 가벼운 XML-over-HTTP를 사용하십시오.

2

만약 당신이 필요하지 않다면 (자바와 상호 작용하지 않는다면) RMI가 더 좋을 것입니다; 적은 코드, 적은 구성, 적은 대역폭 오버 헤드.

당신이 무서워하는 경우에 옵션이 필요합니다. EJB3를 사용하는 것입니다. RMI를 사용하고, 설치 및 배포가 매우 쉽습니다. 필요할 경우 전화를 웹 서비스로 쉽게 전환 할 수 있습니다.

무엇을 하든지간에 은 아니요 자신 만의 것을 만드십시오. 표준에 충실하십시오.

+0

응용 프로그램이 EJB를 지원하는 환경에서 실행되지 않을 수 있습니다. –