저도 attributeType 의 상속에 대해 의문을 가지고 있습니다
답변은 아니고요..그냥 제 생각입니다.. ^^
상속의 의미가 'super-class의 정보를 sub-class에게 물려준다' 는 것과
'일반적인 객체로 부터 보다 상세화, 특수화 시킨 객체' 라는 것에 비추어 볼떄..
name 이라는 일반적인 객체를 정의해 놓고, 이것을 상속받고 특수화 시켜서
cn 이나 sn 을 만든다는 의미로 저는 받아들였습니다
예를 들어 사람이름이 될 수 있다는 의미로 humanName 이라는 attributeType을
만들고, 이를 상속받아서 koreanFullName(2자에서 4글자 사이) 이라던지
koreanSurName(1자에서 2자)으로 구체화 시키는것이라던지요..
상속을 사용하는 의도는 우선 관리의 편리함이 있을테고,
둘째로는 재사용성이 증가한다는것,
셋째로는 객체들간의 관계가 인간이 이해하기 쉽게 체계적으로 들어온다는 것,
그리고 LDAP 에서 역시 지원할 지는 모르겠지만, 객체지향언어에서 자주 다뤄지는
다형성..을 가능하게 해준다는것 정도..가 있지 않을까요??
(사실 저도 잘 몰라요 ㅠ.ㅠ)
실제 서비스에 적용사례는...저 역시 아직 공부하는 처지라.. ^^;
다만 Novell NDS eDirectory 8.5 에서 SUP 를 적용해서
schema 확장을 시도해 보았지만 실패했습니다
SUP 자체가 안먹는것도 같고... 제가 잘못한것도 같고.. ㅠ.ㅠ
schema 에 관련된 노벨 문서를 몇개 뒤져 봤는데
attributeType 의 상속에 대해선 별 언급이 없는걸로 봐서는
아마도 nds 에서는 지원을 안하는 듯 합니다
rfc2252 를 정리하다 저도 'SUP' 를 보고는
"언제 이런게 있었나..??" 하고 신기해한적이 있었는데 ^^;
관련된 글들이 있어서 첨부합니다..
Servers SHOULD provide at least one of the "SUP" and "SYNTAX" fields
for each AttributeTypeDescription. (rfc2252 page 5 하단부..)
["SUP" woid ] ; derived from this other AttributeType
(rfc2252 page 5 attributeTypeDescription 중..)
제가 젤 궁금한것은..(NDS에서는 테스트 할 수가 없어서..ㅠ.ㅠ)
상속시에 "SINGLE-VALUE", "NO-USER-MODIFICATION" 같은 제약사항이나,
matchingRule 까지 같이 상속받느냐 하는겁니다..
예를들어 다음과 같은 attributeType 이 있다면,
( 1.2.3.4 NAME 'superAttribute'
DESC 'super attribute'
SINGLE-VALUE
NO-USER-MODIFICATION
SYNTAX '1.2.3.4.5.6.7.8' )
위 attributeType 을 상속받은 아래 attributeType 은
( 2.3.4.5 NAME 'subAttribute'
DESC 'sub attribute'
SUP '1.2.3.4' )
SYNTAX 외에 SINGL-VALUE, NO-USER-MODIFICATION 제약도 부모로부터 물려받는지..
이것이 지원이 안된다면 상속에 별다른 의미가 없다고 보는데..
numericoid 와 NAME, DESC 는 모든 attributeType 마다 별도로 붙는거고,
상속시 부모의 SYNTAX만 가져온다면, matchingRule 이나 기타 속성은
어차피 새로 지정해 줘야 하니까 SUP 을 사용하지 않을 때랑 별 차이게 없겠죠
이부분을 테스트 해보신 분 계시면 가르침을 부탁드립니다 +_+
덫붙여 부모가 정해놓은 제약을 자식이 상속받으면서 변경가능한지도..
ps - 어쩌면 제가 상속의 의미를 전혀 잘못 잡고 가는지도 모르겠네요
도무지가 코끼리 엉덩이 만지는 식이라..
가르쳐 주는 사람도 없고..ㅠ.ㅠ
횡설수설 더 해깔리게 해드린건 아닌지 모르겟네요
|