Header

  1. View current page

    그냥 프로그래머 자드

Profile_img_60x60_01
0

1. COM(Component Object Model) History

 

 

1. COM(Component Object Model) History

Mainframe -> Client/Server -> 3 Layer Client/Server -> Component-Based Distributed Object Technology

 

1.1 Mainframe

중앙 메인 프레임 컴퓨터에서 모든 일을 맡아 처리한다. (중앙 집중 처리 방식)

 

1.2 Client/Server

중앙 메인 프레임의 중앙 집중 처리 방식의 컴퓨터 환경에서 여러 문제점들이 나타나고, 유지보수도 절약할 필요가 있었다. 또한, 급증하는 업무에 유동적으로 대처 하기 위해,  여러 서버로 나누어 처리하고자 하는 움직임이 일어 난다. 클라이언트/ 서버 구조는 서비스를 제공하는 서버와 그 서비스를 사용하는 클라이언트로 구분한다.

 

ex) DB Server(Install DBMS), FILE Server, PRINTER SERVER etc...

 

1.3 3 Layer Client/Server

Client/Server 구조에서 Client가 너무 많은 일을 수행하여 무리가 발생한다. 이 문제를 해결하기 위해, 업무 로직을 수행하는 별도의 어플리케이션 서버를 둔다.

 

1.4 Component-Based Distributed Object Technology 

어플리케이션을 어떻게 유기적으로 통합하고 커뮤니케이션 하게 할 것인가가 주요한 관심사가 되었으며 이러한 문제를 해결하기 위해 컴포넌트 기반 분산 객체 기술이 등장하게 된다. 클라이언트/서버에서 클라이언트와 서버를 연결하는 매개체를 의미 한다.

 

종류:

  • CORBA( Common Object Request Broker Architecture )
  • COM( Component Object Model)/DCOM(Distributed COM)
  • EJB( Enterprise Java Beans) / RMI(Remote Mothod Invocation) / IIOP(Internet Inter-ORB Protocol)
     

 

컴포넌트 소프트웨어의 조건

  • 언어 독립적(Language-Independent)
  • 위치 투명성(Location Transparency)
  • 컴포넌트의 버전관리
  • 표준에 따른다.

 

커뮤니케이션 방법에 대한 표준

  • ORB(Object Request Broker)
    클라이언트와 서버의 중개자 역할을 하며, 클라이언트는 서버 컴포넌트가
  • IDL(Interface Definition Language)
    클라이언트/ 서버가 통실할 수 있는 공통된 약속

 

1.5 Com History

COM/DCOM은 OLE(Object Linking and Embedding)로 부터 시작하며, 객체를 연결하고 포함하는 기술이다. 초기 OLE는 DDE(Dynamic Data Exchange, 윈도우 프로그램들 사이에 데이터 통신을 위한 메시지 프로토콜)라는 기술로 만들어 졌으며, DDE는 동적으로 실행시에 두 개의 프로그램 사이에 데이터를 교환할 수 있는 기술이다. 하지만 DDE는 속도가 느리고, 에러 발생시 디버깅의 어려움으로 OLE 2.0에서 부터는 COM으로 대체 되어 지금까지 발전 하고 있다. 3 Layer Client/Server 구조를 효율적으로 사용하기 위해 MTS(Microsoft Transaction Server)가 등장 하였고, 윈도우 운영체제와 완전히 통합된 형태로 COM+가 등장하게 된다.


OLE 자동화(Automation, OLE2.0 ) 라는 새로운 기술을 기반으로 VBX(Visual Basic custom control)를 대체하는 OLE Control 기술이 발전 하게 된다. 그리고 VB와 같이 매크로(macro)레벨의 언어에서 COM 인터페이스를 사용하기 위해 Dispatch Interface 를 정의 한다. 하지만 Dispatch Interface는 매크로 혹은 스크립트 언어에서는 좋을지 몰라도 C++ 언어와 같이 가상 함수 테이블에 직접 접근할 수 있는 언어에서 디스페치 인터페이스는 거추장 스럽고 속도 또한 느리다. 그래서 디스페치 인터페이스아 커스텀 인터페이스를 함께 제공하도록 이중 인터페이스를 권고 한다.

(MFC는 자동화 컴포넌트만 구현 가능 하다.)

History

Last edited on 03/05/2008 17:16 by lycobs

Comments (0)

You must log in to leave a comment. Please sign in.