ВУЗ:
Составители:
ȼɜɟɞɟɧɢɟ
ɉɵɬɚɹɫɶ ɪɚɫɲɢɪɢɬɶ ɜɨɡɦɨɠɧɨɫɬɢ Windows, ɤɨɦɩɚɧɢɹ Microsoft
ɫɬɨɥɤɧɭɥɚɫɶ ɫ ɧɟɨɛɯɨɞɢɦɨɫɬɶɸ ɫɨɡɞɚɧɢɹ ɬɟɯɧɨɥɨɝɢɢ, ɤɨɬɨɪɚɹ ɨɛɟɫɩɟɱɢ-
ɜɚɥɚ ɛɵ ɞɨɫɬɭɩ ɩɪɢɥɨɠɟɧɢɣ ɤ ɨɛɴɟɤɬɚɦ, ɪɚɫɩɨɥɨɠɟɧɧɵɦ ɜɧɟ ɩɪɢɥɨɠɟɧɢɹ.
Ⱦɪɭɝɢɦɢ ɫɥɨɜɚɦɢ, ɩɪɢɥɨɠɟɧɢɹ ɞɨɥɠɧɵ ɪɚɛɨɬɚɬɶ ɫ ɜɧɟɲɧɢɦɢ ɨɛɴɟɤɬɚɦɢ ɫ
ɩɨɦɨɳɶɸ ɦɟɬɨɞɨɜ, ɤɨɬɨɪɵɟ ɢɫɩɨɥɶɡɭɸɬɫɹ ɞɥɹ ɪɚɛɨɬɵ ɫ ɜɧɭɬɪɟɧɧɢɦɢ
ɨɛɴɟɤɬɚɦɢ. Ʉɪɨɦɟ ɬɨɝɨ, ɨɛɴɟɤɬɵ ɧɟ ɞɨɥɠɧɵ ɡɚɜɢɫɟɬɶ ɨɬ ɹɡɵɤɚ ɩɪɨɝɪɚɦ-
ɦɢɪɨɜɚɧɢɹ, ɤ ɧɢɦ ɞɨɥɠɟɧ ɛɵɬɶ ɨɬɤɪɵɬ ɞɨɫɬɭɩ ɫɨ ɫɬɨɪɨɧɵ ɩɪɢɥɨɠɟɧɢɣ ɧɟ
ɬɨɥɶɤɨ ɥɨɤɚɥɶɧɨɝɨ, ɧɨ ɢ ɭɞɚɥɟɧɧɨɝɨ ɤɨɦɩɶɸɬɟɪɚ.
ȼ ɤɚɱɟɫɬɜɟ ɪɟɲɟɧɢɹ ɩɪɨɛɥɟɦɵ, ɫɜɹɡɚɧɧɨɣ ɫ ɞɨɫɬɭɩɨɦ ɤ ɨɛɴɟɤɬɚɦ ɜ
ɩɪɟɞɟɥɚɯ ɨɬɞɟɥɶɧɨɝɨ ɤɨɦɩɶɸɬɟɪɚ (ɩɪɢɥɨɠɟɧɢɟ—ɩɪɢɥɨɠɟɧɢɟ) ɢ ɥɨɤɚɥɶ-
ɧɨɣ ɫɟɬɢ (ɤɨɦɩɶɸɬɟɪ—ɤɨɦɩɶɸɬɟɪ), ɤɨɦɩɚɧɢɹ Microsoft ɪɚɡɪɚɛɨɬɚɥɚ ɦɨ-
ɞɟɥɢ ɫɨɫɬɚɜɧɵɯ ɨɛɴɟɤɬɨɜ, ɤɨɬɨɪɵɟ ɧɚɡɵɜɚɸɬɫɹ ɋɈɆ
1
(Component Object
Model) ɢ DCOM (Distributed ɋɈɆ).
ȼ ɞɚɧɧɨɦ ɦɟɬɨɞɢɱɟɫɤɨɦ ɩɨɫɨɛɢɢ ɢɡɥɨɠɟɧɵ ɨɫɧɨɜɵ ɷɬɨɣ ɬɟɯɧɨɥɨɝɢɢ
ɢ ɩɪɨɞɟɦɨɧɫɬɪɢɪɨɜɚɧɵ ɩɪɢɦɟɪɵ ɫɨɡɞɚɧɢɹ ɢ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɩɪɢɥɨɠɟɧɢɣ,
ɨɫɧɨɜɚɧɧɵɯ ɧɚ ɬɟɯɧɨɥɨɝɢɢ COM.
I. Ɉɫɧɨɜɧɵɟ ɩɨɧɹɬɢɹ ɢ ɨɩɪɟɞɟɥɟɧɢɹ
1.1. ɑɬɨ ɬɚɤɨɟ COM. Ɉɫɧɨɜɧɵɟ ɫɜɨɣɫɬɜɚ, ɨɬɥɢɱɚɸɳɢɟ
COM ɨɬ ɈɈɉ
Ɍɟɯɧɨɥɨɝɢɹ ɨɛɴɟɤɬɧɨ-ɨɪɢɟɧɬɢɪɨɜɚɧɧɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɨɫɧɨɜɚ-
ɧɚ ɧɚ ɬɨɦ, ɱɬɨ ɩɪɢɥɨɠɟɧɢɟ ɪɚɡɛɢɜɚɟɬɫɹ ɧɚ ɨɛɴɟɤɬɵ, ɤɨɬɨɪɵɟ ɜɡɚɢɦɨɞɟɣ-
ɫɬɜɭɸɬ ɞɪɭɝ ɫ ɞɪɭɝɨɦ ɜɧɭɬɪɢ ɩɪɨɝɪɚɦɦɵ (ɪɢɫ. 1.1).
Ɋɢɫ. 1.1. ɉɪɨɝɪɚɦɦɚ, ɫɤɨɧɫɬɪɭɢɪɨɜɚɧɧɚɹ ɜ ɈɈɉ
1
ɇɚɱɢɧɚɹ ɫ Windows 2000 ɜɜɨɞɢɬɫɹ ɧɨɜɚɹ ɬɟɯɧɨɥɨɝɢɹ, ɤɨɬɨɪɚɹ ɧɚɡɵɜɚɟɬɫɹ COM+. ɗɬɨ
ɪɚɫɲɢɪɟɧɧɵɟ ɜɨɡɦɨɠɧɨɫɬɢ ɬɟɯɧɨɥɨɝɢɢ COM, ɩɨɞɞɟɪɠɢɜɚɸɳɚɹ ɚɪɯɢɬɟɤɬɭɪɭ Windows
DNA (Distributed interNet Application) [5].
5
ɗɬɨ ɞɚɟɬ ɜɨɡɦɨɠɧɨɫɬɶ ɛɵɫɬɪɨɣ ɪɚɡɪɚɛɨɬɤɢ ɢ ɦɨɞɢɮɢɤɚɰɢɢ ɩɪɨ-
ɝɪɚɦɦɧɵɯ ɩɪɨɞɭɤɬɨɜ ɫ ɢɡɛɟɠɚɧɢɟɦ ɨɲɢɛɨɤ, ɬɚɤ ɤɚɤ ɩɪɨɝɪɚɦɦɧɵɣ ɤɨɞ
ɪɚɡɛɢɜɚɟɬɫɹ ɧɚ ɨɬɞɟɥɶɧɵɟ ɛɥɨɤɢ (ɨɛɴɟɤɬɵ), ɫɜɹɡɶ ɦɟɠɞɭ ɤɨɬɨɪɵɦɢ ɨɫɭ-
ɳɟɫɬɜɥɹɟɬɫɹ ɩɨ ɭɫɬɚɧɨɜɥɟɧɧɵɦ ɩɪɚɜɢɥɚɦ (ɫɜɨɣɫɬɜɚ ɢ ɦɟɬɨɞɵ).
ȼ COM-ɬɟɯɧɨɥɨɝɢɢ ɨɛɴɟɤɬɵ ɩɨɦɟɳɚɸɬɫɹ ɜ ɨɬɞɟɥɶɧɵɟ ɢɫɩɨɥɧɹɟɦɵɟ
ɛɥɨɤɢ (ɪɢɫ. 1.2), ɤɨɬɨɪɵɦɢ ɦɨɝɭɬ ɹɜɥɹɬɶɫɹ ɞɢɧɚɦɢɱɟɫɤɢ ɤɨɦɩɨɧɭɟɦɵɟ
ɛɢɛɥɢɨɬɟɤɢ (DLL) ɢɥɢ ɩɪɢɥɨɠɟɧɢɟ (EXE).
Ɋɢɫ. 1.2. ɉɪɨɝɪɚɦɦɚ, ɫɤɨɧɫɬɪɭɢɪɨɜɚɧɧɚɹ ɩɨ ɚɪɯɢɬɟɤɬɭɪɟ COM
Ɇɨɞɟɥɶ COM ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɢɧɫɬɪɭɤɰɢɸ ɩɨ ɫɨɡɞɚɧɢɸ ɫɨɜɦɟɫ-
ɬɢɦɵɯ ɤɨɦɩɨɧɟɧɬɨɜ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ ɢ ɧɟ ɹɜɥɹɟɬɫɹ ɹɡɵɤɨɦ
ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɛɢɛɥɢɨɬɟɤɨɣ ɩɪɨɝɪɚɦɦɧɨɝɨ ɤɨɞɚ ɢɥɢ ɤɨɦɩɢɥɹɬɨɪɨɦ.
Ɍɟɯɧɨɥɨɝɢɹ COM ɨɫɧɨɜɚɧɚ ɧɚ ɫɥɟɞɭɸɳɢɯ ɨɫɧɨɜɧɵɯ ɤɨɧɰɟɩɰɢɹɯ.
1. ɍɧɢɤɚɥɶɧɨɫɬɶ ɢ ɤɨɧɬɟɤɫɬɧɚɹ ɧɟɡɚɜɢɫɢɦɨɫɬɶ ɤɨɦɩɨɧɟɧɬ. ȼɫɢɫ-
ɬɟɦɟ ɧɟ ɞɨɥɠɧɨ ɛɵɬɶ ɤɨɦɩɨɧɟɧɬɨɜ ɫ ɨɞɢɧɚɤɨɜɵɦ ɫɩɨɫɨɛɨɦ ɨɛɪɚ-
ɳɟɧɢɹ ɢ ɪɚɡɧɵɦɢ ɫɦɵɫɥɨɜɵɦɢ ɧɚɡɧɚɱɟɧɢɹɦɢ.
2. ɂɧɤɚɩɫɭɥɹɰɢɹ. Ɋɟɚɥɢɡɚɰɢɹ ɤɨɦɩɨɧɟɧɬɨɜ COM ɞɨɥɠɧɚ ɛɵɬɶ ɫɤɪɵ-
ɬɚ. ɗɬɨ ɧɟɨɛɯɨɞɢɦɨ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɛɵɥɚ ɧɟɡɚɜɢɫɢɦɨɫɬɶ ɨɬ ɹɡɵɤɨɜ
ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.
3. ɉɨɪɬɚɬɢɜɧɨɫɬɶ ɢ ɤɨɦɦɭɧɢɤɚɛɟɥɶɧɨɫɬɶ. ɇɭɠɧɵɣ ɤɨɦɩɨɧɟɧɬ
ɦɨɠɧɨ ɛɵɫɬɪɨ ɧɚɣɬɢ ɞɢɧɚɦɢɱɟɫɤɢ, ɝɞɟ ɛɵ ɨɧ ɧɢ ɧɚɯɨɞɢɥɫɹ.
ɉɪɟɢɦɭɳɟɫɬɜɨ ɋɈɆ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɬɨɦ, ɱɬɨ ɷɬɨ ɩɨɡɜɨɥɹɟɬ ɤɚɠɞɨɦɭ
ɪɚɡɪɚɛɨɬɱɢɤɭ ɫɤɨɧɰɟɧɬɪɢɪɨɜɚɬɶɫɹ ɧɚ ɪɚɡɪɚɛɨɬɤɟ ɫɜɨɢɯ ɤɨɦɩɨɧɟɧɬ, ɤɨɬɨ-
ɪɵɟ ɦɨɝɭɬ ɨɛɦɟɧɢɜɚɬɶɫɹ ɢɧɮɨɪɦɚɰɢɟɣ ɧɟɡɚɜɢɫɢɦɨ ɨɬ ɹɡɵɤɚ ɩɪɨɝɪɚɦɦɢ-
ɪɨɜɚɧɢɹ ɢɥɢ ɢɧɫɬɪɭɦɟɧɬɚɥɶɧɵɯ ɫɪɟɞɫɬɜ ɪɟɚɥɢɡɚɰɢɢ. Ȼɨɥɟɟ ɬɨɝɨ, ɬɟɯɧɨɥɨ-
ɝɢɹ COM ɞɚɟɬ ɝɢɛɤɢɟ ɜɨɡɦɨɠɧɨɫɬɢ ɞɢɧɚɦɢɱɟɫɤɨɣ ɧɚɫɬɪɨɣɤɢ ɢ ɦɨɞɢɮɢ-
ɤɚɰɢɢ ɩɪɨɝɪɚɦɦɧɨɝɨ ɩɪɨɞɭɤɬɚ ɫ ɭɱɟɬɨɦ ɠɟɥɚɧɢɣ ɩɨɥɶɡɨɜɚɬɟɥɹ ɢ ɨɫɨɛɟɧ-
ɧɨɫɬɟɣ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ.
6
�������� ��� ���� ����������� ������� ���������� � ����������� ���-
�������� ��������� � ���������� ������, ��� ��� ����������� ���
������� ��������� ����������� Windows, �������� Microsoft ����������� �� ��������� ����� (�������), ����� ����� �������� ���-
����������� � �������������� �������� ����������, ������� ��������- ����������� �� ������������� �������� (�������� � ������).
���� �� ������ ���������� � ��������, ������������� ��� ����������. � COM-���������� ������� ���������� � ��������� �����������
������� �������, ���������� ������ �������� � �������� ��������� � ����� (���. 1.2), �������� ����� �������� ����������� �����������
������� �������, ������� ������������ ��� ������ � ����������� ���������� (DLL) ��� ���������� (EXE).
���������. ����� ����, ������� �� ������ �������� �� ����� �������-
���������, � ��� ������ ���� ������ ������ �� ������� ���������� ��
������ ����������, �� � ���������� ����������.
� �������� ������� ��������, ��������� � �������� � �������� �
�������� ���������� ���������� (����������—����������) � ������-
��� ���� (���������—���������), �������� Microsoft ����������� ��-
���� ��������� ��������, ������� ���������� ��� 1 (Component Object
Model) � DCOM (Distributed ���).
� ������ ������������ ������� �������� ������ ���� ����������
� ������������������ ������� �������� � ������������� ����������,
���������� �� ���������� COM.
I. �������� ������� � ����������� ���. 1.2. ���������, ����������������� �� ����������� COM
������ COM ������������ ����� ���������� �� �������� ������-
1.1. ��� ����� COM. �������� ��������, ���������� ����� ����������� ������������ ����������� � �� �������� ������
COM �� ��� ����������������, ����������� ������������ ���� ��� ������������.
���������� COM �������� �� ��������� �������� ����������.
���������� ��������-���������������� ���������������� ������-
�� �� ���, ��� ���������� ����������� �� �������, ������� ���������- 1. ������������ � ����������� ������������� ���������. � ���-
������ ���� � ������ ������ ��������� (���. 1.1). ���� �� ������ ���� ����������� � ���������� �������� ����-
����� � ������� ���������� ������������.
2. ������������. ���������� ����������� COM ������ ���� ����-
��. ��� ���������� ��� ����, ����� ���� ������������� �� ������
����������������.
3. ������������� � ������������������. ������ ���������
����� ������ ����� �����������, ��� �� �� �� ���������.
������������ ��� ����������� � ���, ��� ��� ��������� �������
������������ ������������������ �� ���������� ����� ���������, ����-
��� ����� ������������ ����������� ���������� �� ����� ���������-
������� ��� ���������������� ������� ����������. ����� ����, �������-
��� COM ���� ������ ����������� ������������ ��������� � ������-
���. 1.1. ���������, ����������������� � ��� ����� ������������ �������� � ������ ������� ������������ � ������-
������ ������������ �������.
1
������� � Windows 2000 �������� ����� ����������, ������� ���������� COM+. ���
����������� ����������� ���������� COM, �������������� ����������� Windows
DNA (Distributed interNet Application) [5].
5 6
