COM, ATL 67

분산객체 시스템(COM,COm+,DCOM,MTS) 에 대한 개념-1

분산객체 시스템(COM,COm+,DCOM,MTS) 에 대한 개념-1 MTS 2004/12/14 12:36 http://blog.naver.com/saga111/120008481340 이 포스트를 보낸곳 () 윈도우의 분산객체 기술은 지난 92년 OLE 기술이 소개된 이후 끊임없이 발전해 COM, DCOM 환경이 개발됐으며 현재의 COM+ 환경에 다달았다. COM+는 3티어 모델 기반의 분산 환경에서 비즈니스 로직 처리 부분을 완전히 분리시켜 개발, 실행할 수 있는 미들웨어(MTS, MSMQ)를 공급함으로써 보다 쉽고 편리하게 윈도우 분산 환경을 구축할 수 있는 지름길을 제시하고 았다. 김경현 아이메카 분산객체 시스템 연구실 ---------------------------------------------..

COM, ATL 2008.07.28

ClassObject(클래스 객체)란 무엇인가?

CoGetClassObject라는 함수는 클래스 팩토리 객체를 생성하고 그 인터페이스 포인터를 리턴해준다. 상기 함수는 컴포넌트 객체를 생성하는 게 아님을 주의한다. 무심히 저함수의 ClassObject이름을 보면 그냥 클래스의 객체로 생각하고 넘어간다. 그런데 객체면 객체지 왜 ClassObject라고 이름을 붙였겠는가? 정확한 의미는 클래스 역할을 하는 객체이다... 클래스 팩토리 객체는 컴포넌트 객체를 생성하므로 ...... 자주 사용하는 붕어빵틀-붕어빵 관계에서 처럼 컴포넌트 입장에서 보면 마치 자신을 생성하는 하나의 틀인 클래스로 생각되는 것이다.

COM, ATL 2008.07.27

COM인터페이스 디자인 가이드

COM인터페이스 디자인 가이드이재규 (영산정보통신)Microsoft는 표준 인터페이스를 제공함과 더불어 커스텀 인터페이스를 쉽게 정의할 수 있게 해 준다. 커스텀 인터페이스는 표준 인터페이스로는 표현할 수 없는 서비스를 구현하기 위해서 사용된다. 인터페이스는 재사용되는 경우가 많고, 원칙적으로 변경되어서는 안되기 때문에 인터페이스를 새로 만드는 일은 매우 신중해야 한다. 이 글에서는 커스텀 인터페이스를 만들때 고려해야할 디자인 요소에 대해서 살펴본다.MS의 컴포넌트 기술Microsoft의 컴포넌트 기술은 COM / OLE / ActiveX 등으로 혼돈스런 명칭이 붙어 있다. 엄밀한 의미에서 구분을 해 본다면, COM(Component Object Model)은 인터페이스, COM 클래스, COM객체등을 ..

COM, ATL 2008.07.27

분산 컴포넌트 생성 및 아파트먼트, 강력한 분산 객체 프로그래밍 모델 DCOM 개념 - 그림은 없음...ㅡㅡ;;;

강력한 분산 객체 프로그래밍 모델 DCOM(1) COM과 DCOM의 기본 개념 COM이나 DCOM이 프로그래밍에 직접적인 영향을 주는 것은 아니지만 DCOM을 이용하면 분산 객체의 강력한 기능을 다양하게 이용할 수 있다. 이번 연재를 통해 분산 객체 모델인 COM과 DCOM에서 사용되는 기본 이론에 대해 알아보고, 이러한 이론을 바탕으로 실제 구현을 살펴보도록 하겠다. 글 김성기 건국대학교 컴퓨터 공학과 IS 연구실 ditoman@chollian.net 2000/10 COM과 DCOM의 기본 개념 2000/11 DCOM을 사용한 채팅 2000/12 DCOM과 코바의 비교 사실 COM에 대해 정확하게 이해하지 않아도 프로그램 작성하는 데는 아무런 이상이 없다. 대표적으로 COM으로 구현된 DirectX 같..

COM, ATL 2008.07.27

COM 객체 생성과정 설명 및 도식화(깔끔한 설명)

COM객체, 그 탄생의 비밀 이재규 (영산정보통신) 대부분의 경우 프로그래머는 COM객체를 사용하는 클라이언트의 입장에서 코딩한다. COM객체를 사용하기 위해서는 먼저 COM객체를 생성해야 하는데, 이는 CoCreateInstance라는 함수를 이용해서 한줄로 끝낼 수 있다. 그러나 CoCreateInstance를 통해 COM객체가 생성되는 과정을 깊이 살펴본다면 그리 간단치만은 않다. 이 복잡한 과정들을 풀어헤쳐 보고자하는 것이 이글이 주제이다. COM객체 생성방법 COM객체는 COM규약을 준수하는 컴포넌트를 의미한다. COM은 많은 것을 규정하고 있지만, 그 중에서 중요한 것 중의 하나가 COM객체를 생성하는 메커니즘이다. 따라서 COM객체들은 그 객체가 단순하든, 복잡하든 동일한 방법으로 생성할 수..

COM, ATL 2008.07.27

CoInitialize 역할

HRESULT CoInitialize( LPVOID pvReserved ); [개요] COM이 초기 개발단계에서는 Single Thread Apartment(STA) 기반으로 설계가 되었다. 이런 이유로 인해서 CoInitialize 함수는 별도 쓰레드와 메모리 모델에 대한 옵션이 초기 단계에선 고려되지 않고, 다만 확장성을 위해서 LPVOID 부분을 남겨두었으나 이것 마저도 CoInitializeEx함수가 나오면서 필요가 없어졌다. 하는 역할은 COM 관련 DLL를 로딩해서 COM관련 명령어를 사용할수 있도록 해준다. 꼭 초기에 호출해주어야하는 함수다. [Return Values] -에러의 종류는 메모리 부분 에러(생성하는 과정),메모리 모델과 쓰레드 관련 에러,그외 기타 This function su..

COM, ATL 2008.07.27

Com, Atl 언어 독립성에 대한 소고

가끔 com에 대한 기본 개념 글들을 읽어보면 따라쟁이, 앵무새처럼 주절거리는 게 많다..... 위치독립성에 대해 적은 대다수 글들을 보면 "com은 바이너리형태로 이루어지면서 이를 통해 위치독립성을 가지게 된다..." 이글을 처음 보고 한참 혼란스러웠다... 당연히 그 글을 적은 사람도 더 이상의 설명은 없다. 기본원리, 개념에 대해 조금이라도 불만족스러우면 짜증나지 않는가? 나 역시 그런 사람이다. ㅡㅡ 컴파일 언어에서 모든 소스 파일은 컴파일 과정을 거치면 모두 바이너리로 변한다. 그런데 바이너리로 언어독립성을 가진다니....거 참 혼란스럽지 않을 수 없다. 한참을 생각한 결과 다음과 같은 결론을 내릴 수 있었다. 소스 제공의 측면에서 표현한 것이다. 컴포넌트에서는 로딩 모듈인 dll, exe, o..

COM, ATL 2008.07.26