요약

  • RFC 1431은 디렉터리 질의를 세 개의 개별 축으로 평가했습니다: 대상 항목을 찾았는지, 다른 항목을 몇 개 반환했는지, 그리고 가중치가 적용된 디렉터리 작업을 얼마나 소모했는지입니다.
  • SearchStone 단위는 숨겨진 연산을 셀 수 있게 만들었지만, 그 가중치와 결과는 하나의 트리, 하나의 복제 문화, 끊임없이 바뀌는 DSA 구현, 그리고 한 사람에게 초점을 맞춘 테스트 스위트에 의존했습니다.
  • 이 메모는 운영상의 채택과 독립적인 공개 평가를 추가 근거로 다루며, 깔끔한 점수가 배포 결과나 보편적 우월성을 대신하지 못하도록 했습니다.

화면에 나타난 안심시키는 답

1993년의 디렉터리 사용자 에이전트(Directory User Agent)를 상상해 보십시오. 사용자가 동료의 이름과 소속에 대한 불완전한 기억을 입력합니다. 잠시 후 Paul Barker의 항목이 나타납니다. 화면에 보이는 과업은 완료된 것처럼 보입니다: 그 사람을 찾았다는 것입니다.

RFC 1431은 바로 그 만족감이 분석적으로 위험해지는 지점에서 출발합니다. 질의가 Barker만 반환했는가, 아니면 그럴듯한 낯선 50명 사이의 Barker였는가? 클라이언트는 효율적인 읽기 한 번을 수행했는가, 아니면 값비싼 바인드·리스트·검색의 연쇄를 헤맸는가? 다른 서버에서, 다른 복제 구성을 통해, 디렉터리 정보 트리의 다른 분기를 상대로도 같은 경로가 존재했을까? 화면의 답은 이런 질문에 대한 답을 담고 있지 않습니다.

이 메모의 공식 주제는 "DUA Metrics"였습니다. DUA는 Directory User Agent, 즉 디렉터리 사용자 에이전트를 뜻했지만, 문서는 보다 넓게 디렉터리 사용자 인터페이스에 대해서도 이야기했습니다. 주된 설정은 화이트 페이지스, 즉 사람이 다른 사람에 대한 정보를 찾도록 돕는 것이었습니다. 이 메모는 프로토콜 기계 장치가 정상 작동한다고 가정하고, 사용자나 평가자에게 노출되는 품질에 집중했습니다. 이 경계가 중요합니다. RFC 1431은 X.500 규칙을 하나하나 다시 검증한 것이 아니라, 사람들이 디렉터리를 마주하게 되는 도구들을 어떻게 비교할지 물은 것입니다.

이 메모는 처음부터 단일한 보편적 순위도 거부했습니다. 서로 다른 인터페이스는 서로 다른 사용자와 목적에 맞설 수 있습니다. 명령줄 중심 도구, 그래픽 클라이언트, 단순화된 접속 프로토콜을 사용하는 애플리케이션이 반드시 같은 문제를 푸는 것은 아닙니다. 따라서 "더 낫다"는 목적어를 필요로 했습니다: 누구에게, 어떤 과업에서, 어느 디렉터리에 대해, 어떤 조건에서 더 나은가?

히트 하나, 군중 하나, 작업의 흔적

질의 해결과 관련해 RFC 1431은 제품 시연이 여전히 하나로 묶어 보이도록 유혹하는 세 가지 관찰을 분리했습니다.

첫째, 대상 항목을 찾았는가? 이것이 화면에 보이는 이진적 성공입니다. 둘째, 다른 항목이 몇 개 발견되었는가? 이것이 선택성입니다. 옳은 사람에 더해 군중을 반환하는 검색과 옳은 사람만을 반환하는 검색은 같은 행위를 수행한 것이 아닙니다. 셋째, 그 아래에서 어떤 디렉터리 연산이 요구되었는가? 이것이 인터페이스 밑에 숨은 작업입니다.

메모는 그 작업에 단위를 부여했습니다: SearchStone입니다. Bind는 5 SearchStone, Read는 1, List는 2, 단일 수준 검색은 3, 전체 서브트리 검색은 5로 계산되었습니다. 따라서 연산 추적을 가중치가 적용된 총계로 바꿀 수 있었습니다. 질의가 대상을 해결하지 못했을 때도 총계는 여전히 표시할 가치가 있었습니다. 실패 역시 자원을 소모하고 하나의 경로를 드러냈으므로, 그 비용을 지워버리면 가장 정보가 적은 결과에 보상을 주게 됩니다.

이것은 유용한 회계 행위였습니다. 화면이 모든 공을 가져가는 대신 분산 디렉터리가 보이지 않게 일하는 일을 막았습니다. 또한 실패한 두 클라이언트를 구별 가능하게 만들었습니다. 하나는 작고 이해 가능한 시도 후에 멈출 수 있고, 다른 하나는 크게 소모하고도 아무것도 반환하지 못할 수 있습니다.

그러나 SearchStone은 물리적 의미의 돌이 아니었습니다. 그 가중치는 자연에서 내려온 것이 아니었습니다. RFC 1431 자체가, 단일 수준 검색에 같은 가중치를 부여한 것은 부분적으로 Quipu 구현의 보편적인 형제 복제를 반영한 것이라고 설명했습니다. 한 지역의 엔지니어링 패턴이 회계 단위 안에 들어간 것입니다.

이 인정이야말로 메모의 가장 지속적인 공헌입니다. 지표는 보편적이지 않으면서도 명시적일 수 있습니다. 가중치를 문서로 적어두면 논쟁이 가능해지지만, 그 가중치를 만들어낸 전제를 없애지는 못합니다.

한 사람으로 가는 열 길

RFC 1431은 10개의 테스트 질의를 제안했습니다. 비교적 단순한 설명에서 더 어렵거나 불완전한 변형으로 옮겨갔지만, 모두 같은 사람, 즉 저자 Paul Barker를 찾는 것이었습니다. 절차는cn=Vicuna,c=GB로 식별되는 대상 DSA에 직접 연결할 것을 제안했습니다.

이 선택에는 실용적인 장점이 있었습니다. 알려진 대상은 평가자가 결과가 맞는지 확인할 수 있게 해 주었습니다. 하나의 신원에 대한 변형들은 인터페이스가 명명 단서, 조직적 맥락, 모호성을 어떻게 다루는지 분리해 보여주었습니다. 지정된 연결 지점은 반복 시행을 더 비교 가능하게 만들었습니다.

같은 선택이 결과의 경계도 정했습니다. 한 사람의 이름은 인구 집단이 아닙니다. 하나의 대상 분기는 완전한 디렉터리가 아닙니다. 명명된 DSA로의 직접 연결은 모든 사용자의 출발점을 재현하지 못합니다. 10개의 질의는 모든 이름, 문자 체계, 조직, 네트워크 경로를 조사한 것이 아니라 테스트 도구였습니다.

숫자가 실험실을 떠나면 이 구별을 잃기 쉽습니다. SearchStone 총계는 표 속에서 이식 가능해 보일 수 있습니다. 그러나 그 의미에는 여전히 선택된 인격, 질의의 표현 방식, 연결 지점, 디렉터리 데이터, 이용 가능한 복제본, 클라이언트 논리가 담겨 있습니다. 숫자는 간결하지만, 그 근원은 그렇지 않습니다.

점수가 발밑에서 움직이는 이유

RFC 1431은 SearchStone을 경과 시간의 단순한 예측 변수로 다루지 말아야 할 이유를 나열했습니다. 낮은 총계는 속도와 상관되는 경향이 있었지만, 일관적이지 않았습니다. 디렉터리 정보 트리는 균일한 깊이를 갖지 않았습니다. DSA 구현은 서로 다른 성능 특성을 가졌고, 구현의 조합은 변할 수 있었습니다. 도메인들은 서로 다른 복제 전략을 채택했으며, 그 성능적 결과는 심대했습니다. 가중치는 필터와 부울 조합의 복잡성도 무시했습니다.

각 주의 사항은 서로 다른 인과적 층위를 가리킵니다.

트리의 깊이는 검색이 얼마나 멀리 탐색해야 하는지를 바꿉니다. 구현은 같아 보이는 프로토콜 연산을 수행하는 비용에 영향을 줍니다. 복제는 데이터가 어디에서 답변될 수 있는지, 어떤 참조나 원격 접촉이 필요한지를 바꿉니다. 필터 구조는 연산 라벨이 그대로 남아 있어도 연산 내부의 계산량을 바꿉니다. 네트워크 지연은 추상적인 연산 횟수를 바꾸지 않으면서 경과 시간에 영향을 줍니다.

따라서 같은 SearchStone 총계를 가진 두 추적이 같은 시간이 걸리지 않을 수 있습니다. 총계가 다른 두 추적은 시간 순서가 뒤바뀔 수도 있습니다. 그리고 복제된 테스트베드 하나에서 효과를 보인 최적화는 토폴로지가 바뀌면 무의미해질 수 있습니다.

점수의 정직한 사용은 비교적이고 맥락적이었습니다. 그것은 선언된 조건 아래에서의 작업 부하를 기술하고, 불필요한 방황을 드러내며 클라이언트 전략의 검토를 유도할 수 있었습니다. 그러나 보편적 효율성, 인터페이스 품질, 사용자 성공을 인증할 수는 없었습니다.

배포의 질문은 양식의 다른 곳에 있었다

RFC 1431은 질의 역학으로부터 실제 세계의 사용을 추론하지 않았습니다. 설문지는 별도로, 얼마나 많은 조직이 제품을 운영적으로 사용했는지 물었습니다. 또한 제품이 개발자나 공급자 커뮤니티 바깥에서 평가되었는지, 그리고 그 평가가 공개적으로 이용 가능한지 물었습니다.

이것들이 별개의 검증인 데에는 이유가 있습니다. 클라이언트가 통제된 디렉터리에서 아름답게 작동하면서도 사용되지 않을 수 있습니다. 널리 설치된 클라이언트가 높은 디렉터리 비용을 강요할 수 있습니다. 공급자 자신의 평가는 신중하면서도 독립성이 없을 수 있습니다. 외부 평가가 존재하면서도 검토에 열려 있지 않을 수 있습니다. 이런 조건들 중 어느 것도 SearchStone 열에서 재구성할 수 없습니다.

RFC 1430의 배포 전략 문서는 이 구분을 더 선명하게 만듭니다. 그것은 글로벌 X.500 디렉터리를 상정하며, 단기적으로는 화이트 페이지스, X.509 지원, 파일럿 활동을 강조했습니다. 그러나 기존 데이터를 일관된 틀로 옮기는 일이 서버나 사용자 에이전트 소프트웨어 설치보다 더 많은 운영 노력을 요구한다고 지적했습니다. 배포는 단순히 움직이는 코드가 아니었습니다. 조직들이 정보를 분류하고, 정리하고, 위임하고, 유지하는 일을 필요로 했습니다.

RFC 1202와 RFC 1249는 사용자가 텍스트 기반 Directory Assistance Service나 DIXIE를 포함한 서로 다른 인터페이스 및 프로토콜 구성을 통해 디렉터리 서비스에 접근할 수 있었음을 보여 줍니다. RFC 1274는 파일럿을 위한 스키마 맥락을 제공했습니다. DUA 점수는 이처럼 접근 방식, 데이터 모델, 운영자, 조직적 노동으로 이루어진 더 큰 생태계 안에 있었습니다.

단 하나의 판결이 아니라 측정의 사다리

근거는, 한 단계가 다음 단계를 증명한다는 환상 없이도 순서를 매길 수 있습니다.

테스트 설계자가 신원을 선택하고 질의를 작성합니다. 클라이언트는 명시된 연결 지점에서 출발합니다. 인터페이스는 요청을 필터와 디렉터리 연산으로 바꿉니다. DSA, 복제본, 트리의 형태가 경로를 결정합니다. 대상이 발견되거나 놓칩니다. 다른 항목이 포함되거나 배제됩니다. 연산은 계수되고 가중됩니다. 경과 시간이 관찰됩니다. 평가자가 인터페이스가 유용했는지 판단합니다. 조직이 배포할지 결정합니다. 외부인이 평가할 수 있고, 그 평가는 공개될 수 있습니다.

이 사슬에서 대상을 찾았다는 사실이 증명하는 것은 하나뿐입니다: 그 시행에서 대상이 반환되었다는 것입니다. 결과가 선택적이었다는 것, 연산 경로가 저렴했다는 것, 응답이 빨랐다는 것, 인터페이스가 다른 사용자층에 적합했다는 것, 소프트웨어가 채택되었다는 것, 근거가 독립적으로 검증되었다는 것은 증명하지 않습니다.

이것은 인터넷 역사에서 반복되는 문제입니다. 체계가 논의 가능해지려면 공통 단위가 필요합니다. 단위가 존재하게 되면, 기관들은 그것을 현실 전체처럼 다루려는 유혹을 받습니다. RFC 1431이 흥미로운 이유는 이 두 움직임을 동시에 수행했기 때문입니다. 단위를 제안하면서, 동시에 그 단위의 무자격한 해석을 불신해야 할 이유를 문서화했습니다.

그래도 점수는 하나의 디렉터리에 속해 있었다

SearchStone은 책임을 국지화했습니다. 클라이언트가 "그 사람을 찾았다"고 말하게 하는 대신, 추적은 클라이언트가 공유 디렉터리에게 무엇을 하게 만들었는지 물었습니다. 점수는 주의를 표면의 세련됨에서 분산된 비용으로 옮겼습니다.

그러나 점수 역시 그것을 가능하게 한 디렉터리에 속해 있었습니다. 트리의 깊이, 복제 방식, DSA 조합, 데이터 분포는 순수한 측정을 둘러싼 잡음이 아니었습니다. 그것은 인과 체계의 일부였습니다. 평가자의 가중치와 생략도 그러했습니다. 그런 조건 없이 총계를 공개하면 관찰이 신화로 변합니다.

이것이 지표의 실패를 의미하지는 않습니다. 경계가 있는 측정은 종종 거창하지만 정의할 수 없는 품질 점수보다 유용합니다. 규율 있는 행위는 경계를 지키는 것입니다: 질의, 연결 지점, 연산 추적, 가중 방식, 실패 상태, 토폴로지를 결과와 함께 기록하십시오. 그리고 후속 평가자가 어떤 비교가 여전히 정당한지 판단하도록 하십시오.

RFC 1431은 보안을 논의하지 않았고, 승리한 제품을 보고하지도 않았으며, 이후 X.500 결과에 대한 근거도 제공하지 않았습니다. 그 역사적 가치는 더 좁고 더 강합니다. 계측이 현실에 대한 편집 행위임을 보여 주었다는 것입니다. 누군가 무엇을 세고, 무엇에 비용을 부과하고, 무엇을 프레임 밖에 두고, 맥락이 헤드라인 숫자와 함께 살아남을지를 선택한다는 것입니다.

출처