2012-07-05 2 views
1

우리 팀은 기존 SOAP 기반 웹 서비스보다 REST 서비스 래퍼를 개발 중입니다. SOAP 서비스 내부를 정확히 알지 못하고 WSDL 파일에 액세스 할 수 있습니다. 우리의 REST 서비스 래퍼는 일대일 매핑 일뿐입니다.기존 SOAP 웹 서비스에 대한 REST 래퍼 빌드

나는 그것이 REST 서비스라고 부를 수는 있지만 실제로 REST 철학을 따르지 않는다는 것을 알고있다. 이 REST 서비스는 Tomcat에 배포되며 많은 클라이언트가 동시에 액세스하게됩니다.

현재 구현은 각 클라이언트에 대해 (SOAP WSDL 프록시 클래스를 사용하여) 프록시 객체를 생성 할 것입니다. 이 프록시 객체는 SOAP API를 호출하는 데 사용됩니다. SOAP은 인증 세부 사항을 프록시 객체에 바인딩해야하기 때문에 세션을 설정하기 위해 첫 번째 REST 호출을하는 동안 런타임시 메모리에 각 클라이언트에 대한 객체를 저장합니다.

저장된 개체는 런타임에 SessionID 식별자를 사용하여 가져옵니다. 이제 문제는 이러한 프록시 객체가 대용량 메모리 덩어리를 차지하고 소수의 REST 클라이언트 만 지원된다는 것입니다. (기본적으로 64MB 만 19 개의 REST 클라이언트 만 실행할 수 있음). 이것은 우리가 접근법을 바꾸고 싶고 당신의 제안을 요구하는 문제입니다.

더 나은 해결책이 있는지 알고 싶습니다. 우리는 DB가 객체를 저장하는 것을 원하지 않습니다.

답변

0

HTTP/SOAP 서비스를 호출하고 코드에 액세스 할 수 없다면 적절한 REST 규칙을 사용하여 REST 서비스를 만든 다음 SOAP 서비스 호출로 변환을 구현하십시오. SOAP 클라이언트 클래스는 WSDL에서 자동으로 생성되므로 시간을 절약 할 수 있습니다.

하지만 맞춤 번역 레이어를 작성해야하며 해킹 된 REST 서비스 집합을 만들어 SOAP 모델에 적용하려고하지 마십시오. 휴식을 취하고 번역 레이어를 더욱 복잡하게 만들어보십시오. 그만한 가치가 있습니다.

+0

의견을 보내 주셔서 감사합니다. 따라서이 문제는 단일 프록시 개체를 처리하거나 프록시 개체를 가질 필요가없는 변환 계층을 작성하여 해결할 수 있음을 의미합니다. – sakura

관련 문제