요약

  • RFC 1292는 FYI 11로서 1992년 1월에 발행된 Informational 메모이다. 이 문서는 상용 및 공개 이용 가능한 X.500 구현체의 기재된 가용성과 능력을 목록화했다. 인터넷 표준을 지정하거나 이름이 언급된 구현체를 인증하지는 않았다.
  • 카탈로그의 키워드 분류는 설명을 비교하기 쉽게 만들었다. 그러나 이는 어떤 명명된 DSA나 DUA가 설치되어 있고, 접근 가능하고, 안전하고, 특정 구성에서 상호운용 가능하며, 조직에 적합하거나, 디렉터리 작업을 완수할 수 있음을 증명하지 않는다.

RFC 1292의 제목은 소박하지만 실천적 야심은 컸다. X.500은 구성 요소가 여러 형태로 나타날 수 있는 디렉터리 서비스 아키텍처였다. Directory System Agent(DSA), Directory User Agent(DUA), DUA에게 대리 요청을 맡기는 클라이언트, 상용 패키지, 자유 이용 가능 패키지, 소스 배포판, 특정 전송 방식이나 기계에 묶인 제품이 그 예이다. 관리자나 연구자에게 첫 번째 어려움은 흔히 검증된 대안들 중에서 고르는 일이 아니었다. 애초에 어떤 대안이 존재한다고 주장되는지를 찾아내는 일이었다.

Directory Information Services Infrastructure Working Group(DISI)은 카탈로그로 이에 응했다. 서론에 따르면 이 문서에는 당시 이용 가능한 X.500 구현체에 대한 설명이 담겨 있으며, 상용 제품과 공개 이용 가능 제품을 모두 포함한다. 설명은 DSA, DUA, DUA 클라이언트 애플리케이션을 다루며, 독자가 자신의 기준에 맞는 구현체를 식별하도록 돕는 키워드 색인을 제공한다. 소프트웨어, 파일럿, 전송 방식이 산재해 있던 커뮤니티에게 이는 실질적인 서비스였다. 그러나 이 문서는 자신이 제공하는 서비스의 한계를 이례적으로 명확하게 그어 놓았다. 그 한계야말로 보존할 가치가 있는 역사이다.

카탈로그는 측정이 아니라 설명을 기록했다

RFC 1292는 중립적인 실험실을 보내 모든 구현체를 검사하지 않았다. 문서는 DISI가 여러 인터넷 메일링 리스트에서 X.500 커뮤니티의 의견을 요청해 카탈로그를 작성했다고 밝힌다. 더 중요하게는, 구현체 설명이 DISI 회원이 아니라 구현자와 벤더가 작성했다고 명시한다. DISI는 작성자와 함께 가독성을 다듬었지만 설명의 타당성이나 구현체의 가치에 대해 어떤 보증도 하지 않았다. 짧은 경고 —caveat emptor(구매자 주의) — 는 장식이 아니다. 이는 근본 주장을 한 사람과 그 주장을 인증하지 않기로 한 사람이 각각 누구인지 밝힌다.

이러한 출처 구조는 적어도 네 가지 서로 다른 기록을 만든다. 구현자는 패키지에 DSA, DUA, API, 전송 바인딩 또는 클라이언트 인터페이스가 있다고 진술할 수 있다. 카탈로그 편집자는 그 진술을 어떤 키워드 아래 배치하기로 결정할 수 있다. 독립 테스터는 특정 환경에서 지정된 버전을 다른 지정된 구현체와 대비해 실행할 수 있다. 마지막으로 조직은 테스트된 구성을 자기 사용자를 위해 운영할 가치가 있다고 판단할 수 있다. 이 중 어느 행위도 이전 단계의 단순한 반복이 아니다.

카탈로그의 가치는 주로 앞의 두 단계에 있다. 카탈로그는 주장과 분류에 대한 역사적 지도를 보존한다. 그 지도를 테스트 결과로 접지 않는다. 카탈로그 행을 상호운용성의 증거로 다루는 독자는 RFC 1292가 제공하지 않는 구성, 버전, 스키마, 전송, 인증, 운영 지원, 테스트 증거를 무단으로 덧붙인 것이다. 카탈로그 행을 추천으로 다루는 독자는 편집자들이 명시적으로 수행하기를 거부한 결정까지 자신이 대신 내린 것이다.

이 구분은 특히 유용하다. 초기 디렉터리 시스템은 하나의 불가분한 제품 경계를 제시하지 않았기 때문이다. DSA는 디렉터리 정보 트리의 일부를 저장하거나 제공했다. DUA는 사용자 대면 에이전트가 디렉터리 요청을 할 수 있는 방법을 제공했다. 경량 DUA 클라이언트는 OSI가 아닌 애플리케이션 프로토콜로 DUA에 접근할 수 있고, DUA는 다시 DSA와 통신한다. 어떤 제품이 이 형태 중 하나를 갖는다는 행은 그것이 전부를 갖고 있고, 구성 요소들이 함께 구성되어 있으며, 사용자가 전체 경로를 거쳐 유용한 디렉터리 항목에 도달할 수 있다는 말을 하지 않는다.

키워드는 명시적 주장에 대한 분류였다

카탈로그의 키워드는 "X.500을 지원한다" 같은 소급적 레이블보다 흔히 더 정밀하다. RFC 1292는 키워드가 구현체 설명에서 파생된 축약된 속성이라고 밝힌다. 구현체가 어떤 키워드 아래 색인되는 것은 설명이 능력을 암시가 아니라 명시적으로 언급했거나, 설명 작성자가 해당 입력을 제공했기 때문이다. 이는 규율 있는 색인 규칙이다. 관련 구성 요소가 있다는 이유만으로 편집자가 추론을 기능 주장으로 끌어올리는 것을 막는다.

그러나 규율 있는 색인 규칙이라도 그 대상은 좁다. 설명의 문구일 뿐이다. 기능을 실행하지는 않는다. 예를 들어 카탈로그의 가용성 섹션은 FTAM을 통한 가용성, FTP를 통한 가용성, 상용 가용성, 무료 가용성, 소스 가용성, 그리고Potentially Unavailable이라는 상태를 구분한다. 이들은 서로 바꿔 쓸 수 없다. "소스"는 소스 코드가 이용 가능하며 추가 비용이 들 수 있다는 뜻이지, 독자가 모든 환경에서 빌드할 수 있다는 뜻이 아니다. "무료"는 비용이 없지만 다른 제한이 적용될 수 있음을 경고할 뿐, 소프트웨어가 유지보수되고 이식 가능하며 주어진 작업에 적합하다는 뜻이 아니다. "상용 이용 가능"은 구현체를 구매할 수 있다는 뜻이지, 어떤 릴리스, 라이선스, 지원 채널, 통합 비용이 적용되는지는 알려주지 않는다.

Potentially Unavailable은 더욱 함축적이다. 정의에 따르면 이는 문서 작성 당시 구현체가 이용 불가능했다는 뜻이다. 그런 상태를 보존할 수 있는 카탈로그는 자신의 시간적 경계를 인정하는 것이다. 어떤 항목도 편집 시점의 상태에 대한 보고로서는 역사적으로 참일 수 있지만, 이후 접근 가능성에 대한 주장으로는 무용할 수 있다. 이 레이블은 시간이 흐른다고 거짓이 되는 것이 아니다. 새로운 질문에 충분하지 않게 될 뿐이다. 소프트웨어를 찾는 사람은 여전히 당시의 배포 지점, 조건, 버전을 직접 확인해야 한다. 역사를 재구성하는 사람도 "이용 가능"을 시간 초월적 속성으로 읽어서는 안 된다.

같은 한계가 운영 환경 목록에도 적용된다. 특정 플랫폼에서 실행된다고 기술된 패키지는 기재된 환경에 대한 이야기일 뿐이다. 독자의 하드웨어, 운영체제 개정판, 컴파일러, 전송 스택, 디렉터리 스키마, 관리 정책이 그와 일치함을 증명하지 않는다. 호환성 매트릭스는 탐색 공간을 좁힐 수 있다. 그것만으로 이후 이루어질 연결의 양쪽을 묶을 수는 없다.

전송 레이블은 연결을 수행하지 않았다

RFC 1292는 인터네트워킹 환경 범주로 CLNP, 미지정 OSI 전송, RFC 1006, X.25를 포함한다. 이 항목들은 독자가 올바른 사전 준비 질문을 던지도록 돕는다. RFC 1006을 사용한다고 기술된 패키지는 이 문서의 분류에서 TCP/IP 전송 서비스를 사용하며, CLNP 아래 기술된 패키지는 그 OSI 네트워크 프로토콜을 사용한다. 그러나 키워드는 성공한 연결의 대본이 아니다.

작동하는 디렉터리 요청에는 더 많은 조건이 작용할 수 있다. 어떤 프로토콜 프로파일이 활성화되어 있었는지, 이름이 어떻게 표현되었는지, 어떤 스키마 속성과 객체 클래스가 인식되었는지, 피어들이 서로를 신뢰했는지, 경로가 존재했는지, 어떤 버전이 설치되어 있었는지, 참조(referral)나 오류가 어떻게 처리되었는지, 어떤 정책이 접근을 허용했는지 등이다. RFC 1292는 이런 조건들을 부정하지 않는다. 단지 해결한다고 주장하지 않을 뿐이다. 카탈로그의 범주는 호환되어 보이는 재료와 관찰된 종단 간 교환 사이의 차이를 보존한다.

바로 여기서 카탈로그는 나중 독자를 과장으로 유혹할 수 있다. 한 행에 "RFC-1006", DSA/DUA 형태, 운영체제가 표시될 수 있다. 그 행을 "이 구현체는 TCP/IP를 통해 X.500에 연결했다"고 서술하고 싶어진다. 문서가 뒷받침하는 더 좁은 진술은 다르다. 어떤 작성자가 구현체를 그 속성들로 기술했고, 카탈로그가 그 설명을 그 키워드 분류에 배치했다는 것. 연결은 사건이다. 참여자, 시점, 구성, 결과가 필요하다. 색인은 그 사건이 아니다.

파일럿 연결성에는 방향과 범위가 있었다

파일럿 연결성 정의에도 같은 주의가 나타난다. DUA 연결성 항목은 DUA를 파일럿에 연결할 수 있고 파일럿 항목의 정보를 조회할 수 있다는 뜻으로, 표준 속성과 객체 클래스는 물론 COSINE과 Internet 에 정의된 것도 표시할 수 있다는 뜻이다. DSA 연결성 항목은 DSA가 디렉터리 정보 트리에 연결되어 있고, 그 DSA의 정보가 어떤 파일럿 DUA에서든 접근 가능하다는 뜻이다. 두 레이블은 단순히 "파일럿에 있다"의 두 가지 표기가 아니다. 서로 다른 역할과 접근 방향을 기술한다.

이 정의조차 문서의 작성 시점과 주장 출처 안에서 읽어야 한다. 이는 구현체 설명이 주장한 연결성의 종류를 식별할 뿐이다. 특정 원격 DSA를 지목하지 않고, 경로를 인증하지 않고, 파일럿이 계속 접근 가능했음을 입증하지 않고, 모든 객체 클래스가 같게 작동했음을 증명하지 않으며, 독자의 질의가 무엇을 반환했는지 보여주지 않는다. DUA가 속성을 표시할 수 있다는 것은 그 속성이 최신이라는 증거가 아니다. DSA가 광고한 접근 가능성은 장애 상황이나 이후 정책 하에서 모든 파일럿 DUA가 그에 도달했다는 증거가 아니다.

이것이 중요한 이유는 디렉터리 시스템이 "디렉터리에 대해 안다"가 "디렉터리가 작동한다"로 얼마나 빨리 변할 수 있는지 보여주는 좋은 사례이기 때문이다. 클라이언트 소프트웨어를 갖는 것부터 전송을 구성하고, 에이전트에 도달하고, 이름을 해석하고, 항목을 수신하고, 스키마를 해석하고, 최신성을 판단하고, 이에 의존하기까지 매우 넓은 간격이 있다. RFC 1292는 그 간격의 시작점에 있다. 후보를 식별하는 데 도움이 된다. 나머지를 인증하지는 않는다.

추천하지 않음은 실질적인 설계 선택이었다

범위 섹션은 명시적으로 이 메모가 나열된 구현체의 설치, 실행, 관리 방법에 대한 지침을 제공하지 않는다고 말한다. 조직들의 요구와 컴퓨팅 환경이 크게 다르므로 어떤 추천도 하지 않는다. 이는 유용성의 회피가 아니다. 카탈로그 권한이 어디서 끝나는지에 대한 선언이다.

추천에는 기준과 책임이 필요하다. 어느 조직을 위한 추천은 기존 전송, 인력 역량, 디렉터리 스키마, 보안 요구사항, 라이선스, 지원 체계, 마이그레이션 비용, 사용자 규모, 운영 리스크 수용도에 따라 달라질 수 있다. 카탈로그는 독자가 그런 비교를 구성할 수 있는 어휘를 제공한다. 독자 대신 가중치를 선택하지 않고, 가중치가 적용된 뒤 어떤 패키지가 적절하다고 약속하지도 않는다.

정보와 추천 사이의 경계는 카탈로그가 잘 정리되어 있을 때 쉽게 흐려진다. 교차 참조는 순위를 의도하지 않았어도 대안들이 순위가 매겨진 것처럼 보이게 만들 수 있다. 목록은 편집자가 단지 설명을 받지 못했을 뿐인데 누락이 부정적 평가처럼 보이게 만들 수 있다. 성숙한 독자는 따라서 원문의 동사를 그대로 유지한다. 카탈로그화하고, 기술하고, 색인하고, 선택지를 알리는 것. 설치하고, 운영하고, 보증하고, 보장하지는 않는다.

카탈로그 갱신 자체가 거버넌스 절차였다

RFC 1292는 새로운 설명이나 갱신된 설명을 환영하며, 충분한 수의 변경이 도착하면 DISI가 새 버전을 발행한다고 밝힌다. 그 수가 충분한지 여부는 DISI 의장이 주관적으로 결정한다. 이 문장은 유지보수를 가시화한다. 카탈로그는 세계가 변했다고 해서 갱신되지 않는다. 누군가 보고를 받아, 발행할 가치가 있다고 판단하고, 개정판을 준비하고, 배포해야 한다.

결과는 실질적이다. 판 사이에 새로 이용 가능해진 제품이 누락될 수 있다. 철회된 제품이 계속 실려 있을 수 있다. 변경된 능력이 옛 표현으로 기술될 수 있다. 구현자가 명확하지만 불완전한 주장을 제출할 수 있다. 카탈로그의 유용성은 구현자에서 메일링 리스트로, 편집자로, 새 버전으로 이어지는 사회적 경로에 의존한다. 그 어느 인계 단계도 소프트웨어에 대한 실시간 점검이 아니다.

이는 문서를 약하게 만들지 않는다. 판독 가능하게 만든다. 카탈로그는 1992년 커뮤니티가 X.500을 둘러싼 정보 부족 장벽을 어떻게 줄이려 했는지에 대한 스냅샷을 보존한다. 그 면책 조항, 명시적 키워드 규칙, 갱신 정책은 여백에 부끄러운 경고가 아니라 정보 아키텍처의 일부이다. 독자가 어떤 종류의 문서를 들고 있는지 — 자기 기술적 선택지의 유지 관리되는 색인이지, 디렉터리 서비스에 대한 판정이 아니라는 것 — 알려준다.

RFC는 보안과 결과를 다른 곳에 남겨 두었다

RFC 1292는 가용성과 능력에 대해 이야기하며 보증 프로그램에 대해 이야기하지 않는다. 나열된 구현체에 대한 인증 속성, 기밀성, 무결성, 취약점 상태, 운영자 관행을 확립하지 않는다. 파일럿 연결이 승인되었음, 디렉터리 항목이 정확했음, 조직이 패키지 선택 후 유용한 서비스 결과를 달성했음을 증명하지도 않는다.

이 증거 경계는 역사적 작업에서 중요하다. 1992년 카탈로그는 특정 종류의 선택이 기여자들에게 가시적이었고, 기여자들이 그 선택을 논의 가능하게 만들기 위해 특정 범주를 사용했다는 것을 확립할 수 있다. 현재의 제품 조언, 보안 인증, 배포 통계, 상호운용성 테스트로 변환될 수는 없다. 카탈로그가 카탈로그로 남을 때 역사 기록은 정밀해진다.

출처와 증거 한계

이 글은RFC 1292 —A Catalog of Available X.500 Implementations을 사용한다. 이 출처는 1992년 1월의 FYI/Informational 지위, DISI의 카탈로그 목적, DSA/DUA/클라이언트 구분, 메일링 리스트 의견 요청, 구현자가 직접 작성한 설명, 타당성·가치 보증의 부재, 명시적 주장에 기반한 키워드화, 가용성·전송·파일럿 범주, 설치·추천 미제공 범위, 주관적 개정 기준을 뒷받침한다. 설치, 발행 이후의 가용성, 현재 지원, 라이선스, 성공적 빌드, 접근 가능한 호스트, 파일럿 접근, 상호운용성, 보안, 적합성, 추천, 완료된 조회, 조직적 결과를 증명하지는 않는다.