2013-02-08 4 views
1

아마도 UDDI이 무엇인지 완전히 이해하지 못하지만, 한 서버에서 제공되는 모든 서비스를 게시하는 기술을 생각하고 있습니까? "서버"으로NuSOAP은 UDDI를 지원합니까?

나는 는 실제 주소 (같은 www.example.com) 또는 (예를 들어, NuSOAP에 대해 nusoap.php 포함 PHP 파일을 말하기) 단지 프로그램 된 도구 이해 하는가?

서버가 PHP 파일 일 경우 ?wsdl을 파일에 추가하면 등록 된 모든 기능 목록이 나에게 표시됩니다. 이것이 UDDI라고 불리는 것입니까?

마지막으로 은 NuSOAP에서 UDDI를 지원합니까?

답변

2

혼란스러운 점이있는 것 같아서 혼란을 없애 보려고합니다. 우선 몇 가지 정의!

web service은 기계와 기계 간의 통신을 허용하는 방법입니다. 네트워크를 통해 일부 작업을 노출하면 웹 서비스가 만들어집니다. 다른 컴퓨터는 이러한 작업을 사용하여 컴퓨터와 "대화"하고 웹 서비스의 클라이언트가됩니다. 클라이언트는 웹 서비스에서 정보를 요청하며 웹 서비스를 "소비"한다고합니다. 물론 공급자가없는 소비자를 가질 수 없으므로 웹 서비스 "공급자"가 있습니다.

하지만 기계가 서로 어떻게 대화하는지 어떻게 알 수 있습니까?

SOAP은 정보를 교환하기위한 프로토콜입니다. 이것은 표준 봉투 + 헤더 + 본문 요청으로 메시지를 래핑하여 공통 논의의 토대 (기계가 동일한 언어로 말함)를 정의합니다.

하지만 메시지 자체는 어떻습니까? 어떻게 정의됩니까? 웹 서비스를 노출하면 다른 사람들에게 클라이언트를 구현하는 방법을 알려야합니다 (즉, 작업을 문서화하고 보내거나 기대하는 메시지). 예를 들어 작업, 메시지 형식, 매개 변수 유형 등을 자세히 설명하는 PDF를 사용하면이 작업을 수행 할 수 있습니다. 그러나 더 좋은 방법은 즉석에서 클라이언트를 생성 할 수있는 방법입니다. WSDL (규칙에 따라 액세스 할 수 있음 웹 서비스 엔드 포인트 주소에 ?wsdl 추가).

WSDL

가 서비스를 호출 할 수있는 방법의 기계 판독 설명을 제공, 그것은 무엇을 기대 매개 변수, 그리고 반환 무엇을 (기본적으로 어떤 계약은 존중해야하는 것은 전화를 할 수 있도록). WSDL을 읽고 웹 서비스 클라이언트 용 코드를 작성하거나 메시지의 저수준 조작을 사용하지 않고도 웹 서비스를 쉽게 호출 할 수있는 유틸리티 기능을 제공하는 도구가 있습니다.

NuSOAP은 그러한 도구입니다. SOAP 웹 서비스를 사용할 수있게 해주는 일련의 PHP 클래스입니다.

하지만 전화를 걸기 위해 필요한 모든 것이 있으면 웹 서비스 주소로 전화를 걸 수있는 곳을 어떻게 알 수 있습니까?

힌트로 WSDL but that can't always be reliable에서 찾을 수 있으므로 웹 서비스 공급자에게 문의해야합니다. 그런 다음이 주소를 사용하여 웹 서비스를 몇 번이고 다시 호출합니다.

그러나 공급자가 인프라를 일부 변경하고 이제 웹 서비스가 다른 주소로 노출되면 어떻게됩니까? 귀하의 클라이언트는 이전 주소로 연결되기 때문에 더 이상 작동하지 않습니다. 다시 공급자로부터 주소를 얻어야합니다. 런타임시 어떻게이 주소를 발견하고 웹 서비스에 연결할 수 있다면 더 쉽지 않을까요?

공급자가 동일한 주소로 여러 번 다른 주소로 노출 된 경우 (백업과 같은 경우) 어떻게됩니까? 하나에 연결할 수 있고 무언가 잘못되었을 경우 동일한 계약을 노출하는 다른 웹 서비스를 검색 할 수 있습니다.

하지만 계약에 대해 이야기하는 경우 왜 한 공급 업체로 제한됩니까? 공급자와 상관없이 특정 계약을 제공하는 서비스를 검색하는 것이 어떻습니까? .... 그리고 일들은 사람들이 웹 서비스의 노란색 (three colors actually) 페이지 역할을하는 레지스트리를 사용하여 서비스가 자발적으로 서로 연결될 세계를 상상하면서이 시점에서 다소 어려움을 겪었습니다.

UDDI

소비자가 특정 계약 웹 서비스를 발견하고 나중에 그들이 뭘 찾았는지에 연결하기 위해 레지스트리를 조회하면서 생산자가 자신의 웹 서비스를 등록 레지스트리입니다. 상호 작용은 다음과 같이이다 :

enter image description here
http://juddi.apache.org/docs/3.x/userguide/html/chap-UDDI_Registry.html

이 아이디어는 계약을 정의하고 구현 및 모든 웹 서비스가 알려진 품질과 기능을 생성하는 기업 내부에서 잘 작동합니다. 그러나 온라인으로 작동하지 않습니다.

적절한 예비 테스트 및 확인 및 웹 서비스가 원치 않는 방향으로 진화하지 않거나 전혀 진화하지 않을 것이라는 보장이 없으면 서비스가 실제로 무엇을하는지 확인하는 적절한 방법이 없습니다. 그것은 그것을 광고합니다.

결과적으로 (공개) UDDI는 실제로 야생에서 사용되지 않지만 엔터프라이즈는 (개인) UDDI에서 얻은 혜택을 보장하는 규칙을 정의하는 계약에 서명하기 때문에 기업에서 다소 사용됩니다 진짜 야.

결론적으로 UDDI는 제공자가 웹 서비스에 관한 정보를 게시하는 장소입니다. 여기에는 사양, 인터페이스 등이 포함되며 엔드 포인트 주소도 포함됩니다. 웹 서비스에 관한 정보 일 뿐이므로 웹 서비스 자체가 아닙니다. 따라서 nusoap.php은 레지스트리에 게시되지 않습니다.

UDDI를 지원하는 NuSOAP에 대해서는 사용자가 그로 인해 이해할 수있는 것이 명확하지 않습니다. UDDI is accessible with a SOAP API 그래서 NuSOAP을 사용하여 간단하게 액세스 할 수 있습니다 ( ).