이미 소장하고 있다면 판매해 보세요.
|
1. 분산 컴퓨팅
더미 터미널 클라이언트/서버 컴퓨팅 RPC를 사용한 분산 컴퓨팅 분산 객체 분산 컴포넌트 2. DCOM 개관 COM DCOM COM이 제공하는 편의 기능과 서비스 COM 적용하기 3. 객체 인터페이스 객체 클래스 팩토리 4. 컴포넌트 서버 클라이언트 객체지향 5. COM 내부 구조 메모리 위치 투명성 병행성 보안 6. ATL을 이용한 컴포넌트 생성 컴포넌트 생성 객체 추가 생성된 코드 공통적인 책임 마무리 7. COM 객체 사용 단순 클라이언트 COleDispatchDriver 기법 #import 기법 수작업 기법 재사용 기법 마무리 8. 사이버공간에서의 COM ATL 액티브X 컨트롤 웹 클라이언트 MFC 복합 컨트롤 ATL 복합 컨트롤 액티브X 컨트롤 특성 9. 보안 서버측 COM 보안 액세스 토큰 감사 기록 관리 경고 클라이언트측 보안 10. 객체간 연결 객체 참조 중계자 연결점 이벤트 소스 이벤트 싱크 연결점 성능 OBJREF의 보안 부록 A. 디버깅 기법들 부록 B. 성능 부록 C. 새로운 COM 기능들과 COM+ 부록 D. 분산 시스템 구현 예제 - Hello. Universe |
|
COM에서는 전통적인 캡슐화(Encapsulation) 기능 뿐만 아니라 더욱 향상된 캡슐화 기능을 지원한다. COM의 가장 기초적인 원리는 구현과 인터페이스를 완전히 분리하는 데에 있다. 모든 COM 객체들은 인터페이스를 기본 요소로 하여 구축되므로 객체 내의 모든 인터페이스들은 명확하게 정의되어야 한다. 인터페이스는 각 메소드의 사양을 담고 있어야 하지만 구현 내용이나 상태 정보 같은 내부적인 사양은 담고 있지 않다. 다시 말해 인터페이스는 COM객체가 지원하는 여러 메소드들을 한데 묶어 놓은 것에 불과할 뿐 구현에 관한 자세한 내용이나 객체의 상태 정보를 지정하지는 않는다. 인터페이스는 어떠한 구현 사항도 갖고 있지 않다는 점 이외에도 한번 공개되고 나면 그 사양이 절대 바뀌어서는 안 된다는 특징을 갖는다. 즉, 객체가 공개된 인터페이스를 어떻게 내부적으로 구현하는지를 인터페이스 사양과는 전혀 별개의 문제인 것이다. 이같은 측면에서 볼 때 객체의 구현 사항들은 그 객체가 공개한 인터페이스에 의해 가려진다고도 할 수 있으며 또는 구현 사항이 인터페이스에 의해 캡슐화된다고도 말할 수 있다.
COM 객체는 마치 막대 사탕이 잔뜩 들어있는 블랙 박스와 같다. 원하는 사탕을 먹으려면 객체에에게 그 사탕이 있는지 물어봐야 한다. COM객체는 매우 세심하게 캡슐화되어 있기 때문에 원하는 인터페이스를 지원하는지 객체에게 물어본 이후에 지원된다고 답변이 오는 경우에 한해 그 인터페이스를 사용할 수 있다. 이러한 특징은 일반적인 캡슐화 개념을 확장한 것이며 클라이언트는 객체가 제공하는 서비스를동적, 자동적으로 검색할 수 있도록 한다. 만약 객체가 지원하지 않는 인터페이스를 요청할 경우는 문제될 것이 없다. 객체는 그런 서비스는 제공하지 않는다는 답변을 주면 되고 클라이언트는 이 답변을 받고 나서 스스로 복구하는 절차를 수행하면 되기 때문이다. --- p.177 |
|
컴포넌트를 사이버공간에 제공할 때 방화벽의 존재와 이것이 COM 요소에 가져올 복잡성을 고려해야 한다. 보안상의 공격을 막고 내부 정보를 보호하기 위해 많은 회사들은 방화벽을 사용한다. 방화벽은 외부에서 들어오는 트래픽을 조사하여 보안에 문제가 없을 경우 내부의 적당한 목적지 노드로 보내준다. 또한 외부로 나가는 모든 패킷들은 사이버공간으로 내보내기 전에 방화벽을 통과한다. 이를 위해 방화벽은 내부 인터넷 내의 모든 IP주소들을 방화벽 자체의 IP주소로 변환하여 외부 클라이언트들은 오직 방화벽의 IP 주소만 보게 한다. 그러나 위와 같은 주소 변경은 DCOM의 동작을 방해한다.
이는 실제 목적지의 IP 주소가 마샬링을 위한 인터페이스 참조 내에 코딩되어 있기 때문이다. 따라서 IP주소를 바꾸는 방화벽에서는 COM을 사용할 수 없다. 물론 IP주소를 바꾸는 방법이 아닌 다름 방법을 사용하는 방화벽에서는 레지스트리에 몇 가지 설정을 하면 DCOM을 사용할 수 있다. 두 컴포넌트가 네트워크 경계를 넘어 통신을 해야 한다면 COM은 서버에게 클라이언트와 호환 가능한 특정 네트워크 프로토콜을 로드하라고 통보한다. 그리고 COM은 서버 컴포넌트의 포트 번호나 종단점을 자동으로 할당해 준다. 자동 할당은 서버 컴포넌트가 필요할 때마다 가능한 포트 번호를 동적으로 할당할 수 있게 해주며 따라서, 관리 측면에서, 미리 특정 포트들을 설정해 놓을 필요가 없기 때문에 편리하다. 그러나 이와 같은 동적 포트 할당 방식은 방화벽 같은 환경에서는 받아들이기가 어렵다. 예를 들어, 특정 IP주소에 5000개 정도의 포트 번호를 요청하면 방화벽 관리자가 어떤 반응을 보일지 상상해 보라, 만일 우리가 COM이 동적으로 할당할 수 있는 포트 번호의 범위를 잘 제어하고 제한하지 않는다면 방화벽 관리자는 우리의 요청을 받아들이기 어려울 것이다. 다행히도 DCOM에는 서버 컴포넌트에게 할당할 포트 번호의 범위를 제어할 수 있는 방법이 존재한다. 윈도우 NT 4.0 서비스 팩 4에 포함되어 있는 DCOM 설정 도구는 우리가 쉽게 포트 번호를 제어할 수 있도록 해준다. Default Protocols 특성 다이얼로그 박스를 사용하면 시스템 전체적인 포트 번호를 구성할 수 있으며, Endpoints 특성 다이얼로그 박스는 각 응용에 대한 포트 번호를 구성할 수 있도록 해준다. 또한 Default Protocols 특성 다이얼로그 박스는 프로토콜 사용 순서를 설정할 수 있도록 해주며, 만일 우리가 콜백을 사용하려면 Connection-oriented TCP/IP를 가장 먼저 사용할 프로토콜로 설정해야 한다. 부록 C에는 Endpoints 특성 다이얼로그 박스에 대한 상세 설명이 있다. --- p.393~394 |