[e테크]닷넷(.NET)-컴포넌트 객체모델(COM)

컴포넌트객체모델(COM:Component Object Model)은 아이언노운(IUnknown)을 기본 인터페이스로 하는 인터페이스 계층에 기반을 둔 2진법의 표준인 동시에 구조적 선택이다. 많은 기업체들은 COM을 전략적으로 사용하기로 결정했으나 이러한 결정은 아이언노운 인터페이스와 같은 COM의 공유 소스 인터페이스가 시스템을 설치하는 데 필요한 인프라의 다른 부분이 되고 있기 때문에 점차 부적절한 것이 되고 있다.

 COM은 다음과 같은 두가지 목표를 갖고 있다.

 △사용된 언어에 관계없이 여러 개의 컴포넌트들이 상호작용할 수 있는 표준방식을 제공한다.

 △컴포넌트를 배치하고 이들 컴포넌트를 사용, 객체를 만든다.

 COM은 개발자들에 있어서 점차 전략적인 선택의 대상이라기보다는 인프라의 대상이 되고 있다. 그리고 이것은 마이크로소프트의 최신 전략제품인 닷넷의 그늘에 지나치게 많이 가려지고 있다. 그럼에도 COM의 2진법 표준과 구조적 선택 등 두가지 기능은 아직 유효하며 이들은 각각 나름대로의 전략적 영향력을 갖고 있다. 2진법 표준으로의 COM은 분명 인프라며 이것은 윈도가 전략적 선택으로 돼 있는 대부분의 솔루션을 지원하도록 돼 있다.

 닷넷 플랫폼의 발표로 대부분의 윈도 솔루션이 결국 닷넷 프레임워크를 사용하게 될 것이므로 COM은 중요하지 않은 제품이 돼 버렸다. 그러나 중심부에 컴포넌트를 사용하는 다층배치구조를 개발하려는 업체들은 아직 COM+를 사용하고 있다. 마이크로소프트의 COM은 닷넷으로 인해 퇴색되고 있다. 따라서 COM이 아닌 닷넷 프레임워크가 마이크로소프트 지향 프로젝트의 최고 수준의 전략기술이 되고 있다. 그것은 차세대 사업 응용 프로그램의 구축, 설치에 필요한 마이크로소프트 인프라를 설치하기 위한 프레임워크다. 많은 IT전문인은 자신들을 COM 개발자 또는 COM 기반 전략 사용자로 생각하고 있다.

 COM을 하나의 인프라 기술로 사용하는 것과 시스템을 지원하는 기술로 암묵적으로 사용하는 것은 구분되어야 한다. COM을 인프라로 명시적으로 사용하려면 개발자들은 아이언노운과 다른 인터페이스로 부호화해야 하는 반면 암묵적으로 사용하는 데는 이러한 인터페이스가 있는지 조차도 알 필요가 없다. 대부분의 C++ 프로그래머들은 항상 COM 인터페이스를 알고 있어야 했지만 마이크로소프트의 툴

을 사용하는 다른 개발자들은 그럴 필요가 없었다.

 COM 기반의 부호를 더 높은 수준의 모델로 구축하는 과정에서 OLE, 액티브X, DNA로 그 다음에는 닷넷라이브러리로 전환됐다. 가장 최근에는 닷넷 프레임워크가 COM의 추출계층이 됐다. 닷넷 프레임워크는 COM 위에 구축되지는 않았지만 아이언노운과 다른 COM 인터페이스를 자동적으로 방출함으로써 COM을 실행할 수 있다. 닷넷 프레임워크가 윈도의 차기 버전(코드명 휘슬러)과 통합되면 COM+와 닷넷 프레임워크가 더 밀접하게 통합돼 코드를 새로 작성하지 않아도 기존 COM 응용 프로그램을 웹서비스 컴포넌트로 전환할 수 있을 것이다.

 닷넷 프레임워크의 발표로 많은 기업체들이 닷넷 전략을 지원하기 위한 COM의 명시적 사용을 재고하게 됐다. COM 기반 솔루션을 구축하는 기업체는 이들 솔루션을 순수 닷넷 프레임워크로 이전하든가 아니면 닷넷 프레임워크의 COM 상호운용계층을 통해 그 솔루션을 계속 사용하지 않으면 안된다. 오는 2004년까지 마이크로소프트 중심 사용자 프로젝트의 90%와 독립 소프트웨어업체 프로젝트의 60%가 COM의 명시적 사용을 하지 않는 반면, 더 높은 수준의 닷넷 프레임워크와 그 인프라를 사용할 것으로 보인다. 따라서 기업체들은 COM을 전략적 기술보다 윈도

를 위한 인프라로 사용해야 한다.


브랜드 뉴스룸