다음을 통해 공유


이름 서비스 애플리케이션 지침

분산 애플리케이션을 개발할 때 애플리케이션 사용자에게 이름 서비스 데이터베이스에 애플리케이션을 등록할 수 있는 이름을 지정하는 방법을 제공해야 합니다. 이 메서드는 데이터 파일, 명령줄 입력 또는 대화 상자로 구성 될 수 있습니다.

RPC 이름 서비스 아키텍처는 애플리케이션의 서버 항목을 구성하는 다양한 방법을 지원하지만 조회에 최적화되어 있습니다. 따라서 자주 업데이트하면 이름 서비스와 애플리케이션의 성능이 저하될 수 있습니다. 불필요하게 정보를 내보내지 않으려면 서버에서 해당 정보가 이름 서비스 데이터베이스에 있는지 여부를 확인할 수 있는 디자인을 선택합니다. 또한 각 서버 instance 고유한 항목 이름으로 내보내야 합니다. 그렇지 않으면 다른 instance 정보를 방해하지 않고 instance 지원되는 개체 UUID 또는 프로토콜 시퀀스를 변경하기가 어렵습니다.

다음 방법은 네트워크에서 사용하는 이름 서비스에 관계없이 이러한 문제를 방지하고 우수한 성능을 제공합니다.

먼저 지정된 서버 instance 시작할 때 고유한 서버 항목 이름을 선택하고 애플리케이션의 다른 구성 정보와 함께 레지스트리에 이 이름을 저장하도록 애플리케이션을 디자인합니다. 그런 다음 바인딩 핸들 및 개체 UUID(있는 경우)를 이름 서비스 항목으로 내보내도록 합니다.

이후 서버 instance 호출은 이름 서비스 항목이 있고 올바른 개체 UUID 및 바인딩 핸들 집합을 포함하는지 검사 합니다. 누락된 항목은 관리자가 항목을 제거했거나 정전으로 인해 이름 서비스 정보가 손실되었음을 의미할 수 있습니다. 항목의 바인딩 핸들이 올바른지 확인하는 것이 중요합니다. 예를 들어 관리자가 컴퓨터에 TCP/IP 지원을 추가하는 경우 RPC 서버는 RpcServerUseAllProtseqs를 호출할 때 해당 프로토콜 시퀀스에서 수신 대기합니다. 그러나 서버에서 이름 서비스 항목을 업데이트하지 않으면 TCP가 지원된다는 알림이 클라이언트에 표시되지 않습니다.

클라이언트가 가져올 때 NULL 을 항목 이름으로 지정해야 합니다. NULL을 지정하면 Microsoft RPC 라이브러리 함수가 클라이언트 컴퓨터의 도메인 또는 작업 그룹에 있는 모든 이름 서비스 항목에서 인터페이스를 검색하여 모든 instance 대한 정보를 찾습니다.

개체 UUID를 사용하여 프린터와 같은 잘 알려진 개체를 나타내는 경우 이 메서드의 변형을 사용할 수 있습니다. 바인딩을 하나의 항목으로 내보내는 대신 각 instance 지원되는 각 개체에 대한 항목(예: "/.:/)을 만들도록 애플리케이션을 디자인합니다. printers/Laser1" 및 "/.:/ printers/Laser2." 그런 다음 서버가 해당 항목과 관련된 개체 UUID와 함께 각 서버 항목에 바인딩 핸들을 내보내도록 합니다.

이 경우 클라이언트는 관련 서버 항목에서 가져와서 이름으로 리소스를 조회할 수 있습니다. 리소스의 개체 UUID가 필요하지 않습니다. 리소스 UUID가 있지만 이름이 아닌 경우 null 항목에서 가져올 수 있습니다.