ВУЗ:
Составители:
ȼɜɟɞɟɧɢɟ
ɉɵɬɚɹɫɶ ɪɚɫɲɢɪɢɬɶ ɜɨɡɦɨɠɧɨɫɬɢ 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