2010-05-04 4 views
0

고객이 자신의 앱에서 우리 시스템 중 하나에 연결할 수 있도록 일련의 웹 서비스를 설계하고 있습니다. 우리의 고객은 모든 종류의 프레임 워크 (.NET, Java, PHP, Python 및 때때로 모든 JS 응용 프로그램)에서 개발 된 응용 프로그램을 보유하고 있으므로 분명히 WS가 필요합니다.상호 운용 가능한 웹 서비스 설계

진정한 interop WS에 대해 조금 살펴보면 WSDL과 XSD를 먼저 설계하고 거기에서 구현을 파생시키는 방법을 발견했습니다.

내가 정말로 찾고있는 것은 정말로 이것이 갈 길이라는 지침입니다. 나는 WCF가 상호 운용 가능한 WS를 생성한다는 것을 읽었지만 나는 뭔가 표준을 만드는 MS의 팬이 아니다.

WCF를 사용해야합니까, 아니면 예상치 못한 고통없이 WSDL 및 XSD를 디자인 할 수있는 훌륭한 도구가 있어야합니까? 사전

답변

1

JavaScript와 상호 운용하려면 REST 스타일 API를 더 많이 사용하는 것이 가장 좋습니다. 기본적으로 표준 HTTP 호출이므로 get-go에서 상호 운용성을 보장받을 수 있습니다. 그러나 SOAP을 사용하기를 원한다는 것을 알았 으면 ...

SOAP/WSDL을 사용한다면 분명히 서버 플랫폼을 사용하여 옹호 할 수 있습니다. WSDL을 사용한다면, 사용하고있는 옵션이 상호 작용이 가능한 좋은 WSDL을 생성하는지 확인하기 만하면됩니다.

저는 PHP & Perl의 역사가있는 Java 개발자이며, 동전의 양쪽면 (서버 및 클라이언트)에서 여러 WS 프로젝트에 대해 .Net과 상호 운용했습니다. 더 큰 문제는 일반적으로 없습니다 - 단지 몇 가지주의해야 : MS 는 개방형 표준에 혼합

  • 특정 독점 요소. 예를 들어 NTLM 형식의 인증을 제공 할 수 있습니다. 실제로는 인증서를 사용할 때 인증서를 사용할 때 , 특히 이 대부분의 사용 예에서 필요하지 않습니다.
  • SOAP은/RPC로, 당신은 아마 당신이 걱정 필요하지 않습니다 찾을 수 년 (문서/리터럴, RPC/인코딩, ...) 을 통해 몇 다른 형태를 취한 인코딩있다 기존 프레임 워크와 함께 죽고, 가장 현대적인 프레임 워크 문서쪽으로 경향이/리터럴
  • SOAP 몇 볼트에 대한 기준을 제공합니다 (첨부 파일에 대한 예를 들어, MTOM & DIME , 그리고 SOAP-WS 인증). 서로 다른 플랫폼 볼트 - 온을 피하십시오. 다른 서브 세트를 구현하십시오.
  • 는 보안을 위해, 나는 다음 중 HTTP 기본 인증 또는 비누 요청 정의에서 간단하게 사용자 정의 문자열 토큰을 신뢰 & 비밀 유지를 위해 SSL을 사용하도록 조언하고 싶습니다.

그냥 아주 초기 과정에서 상호 시도 가능한 한 최소한의 WSDL을 유지하고, 당신은 당신은 WCF 계약 첫 개발을 사용할 수 있습니다 너무 많은 문제

0

WSDL 및 XSD에서

덕분에 당신은 단지 다른 언어를 사용하여 통신하는 몇 가지 메커니즘을 가지고 있고, 언어 독립적이다. IMHO 핵심 데이터 디자인이 좋을 것이므로 같은 데이터 엔티티에 대해 너무 많은 XSD가 필요하지는 않습니다.

1

가 없어야합니다.

상호 운용성이 주요 관심사 인 경우 WCF를 사용하여 서비스 구현을 제공하는 대신 WCF를 사용하여 계약 기반 개발을 사용하여 인터페이스를 모델링하는 서비스 인터페이스를 생성하는 것이 좋습니다.

이 방법을 개발하는 방법에 대한 정말 좋은 기사는 Schema-based Development with Windows Communication Foundation입니다.

자신 만의 WSDL과 스키마를 사용하려면 XmlSpy 나 LiquidXml과 같은 편집기를 사용하고 싶을 것입니다. LiquidXML (무료!)의 가격이 마음에 들지만 웹 서비스 기능에 대해 비용을 지불해야 하는지를 기억하지 못합니다.

Visual Studio 및 WCF를 통한 계약 개발의 또 다른 흥미로운 도구는 WSCF.blue입니다. 나는 이것을 사용하지 않았지만 WCSF.blue roadmap을 기반으로 적극적으로 개발 된 것 같습니다.

0

"WCF를 사용해야합니까?"라는 질문에 무슨 뜻인지 확실하지 않습니다. WCF는 .NET에서 웹 서비스 (및 다른 종류의 통신 서비스)를 개발하기위한 현재 메커니즘입니다. 다른 현재 메커니즘은 없습니다. 나머지는 더 이상 사용되지 않거나 "기존 기술"로 간주됩니다.

+0

WCF 또는 ASP.NET 웹 서비스를 사용할 수 있습니다. ASP .NET 웹 서비스는 쓸모 없지만 잘못된 것일 수 있습니다. –

+0

@Zyd : 틀렸어. http://johnwsaundersiii.spaces.live.com/blog/cns!600A2BE4A82EA0A6!860.entry –

+0

oh my! 그것의 재미를 위해, 나는 asmx 웹 서비스 온라인 문서를 봤는데 나는 그 레거시 기술 경고를 찾을 수 없었습니다. 하지만 나는 이미 개발 된 코드를 가지고 있기 때문에 나는 지금 당장 그것에 충실 할 것이라고 생각한다. –

관련 문제