문제

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

도움이 되었습니까?

해결책

이런 식으로 생각하려고 노력할 것입니다.

서로 아래에서 실행되는 독립적 인 서비스를 받으러 가고 있으며, 이러한 서비스는 미래에 언젠가 비 자바 애플리케이션에서 액세스 할 수 있습니까? 그런 다음 웹 서비스를 찾으십시오.

여러 서버에 애플리케이션의 일부 (단수형)를 전파하고 싶습니까? 그런 다음 RMI로 가면 모든 것이 협력하기 위해 Java 우주를 떠나지 않아도됩니다.

다른 팁

나는 ws를 선택할 것이다.

  • WS/RMI가 병목 현상이 될 것 같지 않습니다.
  • 미래에 다른 가능한 기술을위한 문을 닫는 이유는 무엇입니까?
  • 클라이언트/서버의 클래스 버전이 동기화되지 않으면 RMI가 문제가있을 수 있습니다.

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

필요하지 않으면 (자바와의 인터 로프), 아마도 그렇지 않을 것입니다. RMI가 더 나아질 것입니다. 코드가 적고 구성이 적고 대역폭 오버 헤드가 적습니다.

당신이 필요로하는 것을 두려워한다면 옵션은 ejb3를 사용하는 것입니다. RMI를 사용하고 설정 및 배포가 매우 쉽지만 필요한 경우 웹 서비스로 쉽게 통화를 전환 할 수 있습니다.

당신이 무엇을 하든지 ~ 아니다 나만의 것을 창조하십시오. 표준을 고수하십시오.

내 선택은 다음과 같습니다.

Standard Java Serialization -Pros : IMHO는 가장 성능이 가장 크고 구현 간단합니다 (Spring을 사용하여 로컬 인터페이스를 원격 인터페이스로 노출시킵니다); 단점 : 직렬화는 다른 JVM 버전간에 작동하지 않습니다

이진 직렬화 (예 : Jetty의 Hessian) - 프로 : Java 직렬화와 동일한 성능 및 다른 JVM 버전간에 작동합니다.

WS : 다른 플랫폼 Java + .NET간에 상호 운용성이 필요한 경우에만, 그렇지 않으면 너무 중력입니다.

RMI는 급격한 개발 운송이지만 생산 환경에서이를 사용하는 것에 대해 조언 할 것입니다. 직렬화 호환성 문제는 상황을 어색하게 만들 수 있으며 배포를 매우 신중하게 조정해야합니다.

웹 서비스는 비효율적이지만 하드웨어를 통해서만 비효율적입니다. 또는 전체 지방 비누/WSDL 대신 평범한 가벼운 XML-Over-HTTP를 사용하십시오.

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