�������������� ���������������������������������������
���������� !"���������� � �#����!��$��"� %��� ����
��������&'�(�
)*("+��"*,-
. /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
6 /��������&'�(�0*("+��"*,
+����������������������������
� ����������� ���� ���*������������
� +���������������������"�������������
� *��������������������� ���7"��7���
� ����������74� ����
� 8�����*�����������
� ���*������������
� 8��������������������
� �����7" �������
� ,����� ������
� !������
9 /��������&'�(�0*("+��"*,
+�����������������������������������&������
� ����������� ��
� ��������������������::0:::;
� 4�������������
� �������������������� ������������$�����
� �������
� ��������
� �������
� ��<����� ���
� ,��������������� ��),�� -
� +��� � ��=>��.>�����0
? /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
@ /��������&'�(�0*("+��"*,
"��*����� �������
A /��������&'�(�0*("+��"*,
"��*����� ,�������������������������
� ����������������� )�������-
� 4����������������� �
� "�" )������-
� �������������) ������-
� "��&���,���������)���������-
� ���������� �����)� ������-
� �����������<� )+����-
� � �����������2��7������2��
� ����������)��������-�9>��.>>
� ���������9>��9>>
� .��6,��������"����������� ��
� =>��.>����� ���� � ��
: /��������&'�(�0*("+��"*,
���*�������������"*� �����"� %��� ����
Flight PlanProcessingFlight Plan
Processing
SupervisoryControlSupervisory
Control
SimulatorSimulator
RecordingReplayRecording
Replay
controllerWorkingPosition
controllerWorkingPosition
Radar DataProcessingRadar Data
Processing
Radar FrontProcessingRadar Front
Processing
Intranet
ATC Internet
controllerWorkingPosition
controllerWorkingPosition
����
��������� �� �
=> /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
== /��������&'�(�0*("+��"*,
��������������������
=. /��������&'�(�0*("+��"*,
��������������������
=5 /��������&'�(�0*("+��"*,
��������������������7��������������
=6 /��������&'�(�0*("+��"*,
��������������������7��������������
=9 /��������&'�(�0*("+��"*,
��������������������7�� �����������
=? /��������&'�(�0*("+��"*,
��������������������7�� �����������
=@ /��������&'�(�0*("+��"*,
���������������������%�����������
=A /��������&'�(�0*("+��"*,
���������������������%�����������
=: /��������&'�(�0*("+��"*,
�������������������� �������������������
.> /��������&'�(�0*("+��"*,
�������������������� ��������������
.= /��������&'�(�0*("+��"*,
�������������������� �������������������%����������������
��������������
.. /��������&'�(�0*("+��"*,
�������������������� �������������������%����������������
��������������
����� ����������
.5 /��������&'�(�0*("+��"*,
�������������������� �������������������%����������������
��������������
����� ���������� ����� �����������
.6 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
.9 /��������&'�(�0*("+��"*,
��������������%�����"����� %����� �0
� ��������� ��������������� %����������� �������%������� ���������0
� �� %����������� �������%� ����<�7�%���� ��������%� ���������0
� ����������� �����%��� ������������� ��������� ���������0
� *%� ���������� ������� %���������������%���%�������%��������� %����������%������������ ����%� �� ������������������%��������
� �������������� %����� ��%���%� %��������������� ����� ��������������0
� !�������������� ���������,������������� ���%������� ���������)������� ����<���� ����-0
.? /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
.@ /��������&'�(�0*("+��"*,
�������������1��� �,���������
Functional Changes Cost
Time
System Complexity
Functional Changes Code Size
Complexity
Functional upgrade Code Size
Functional upgrade Cost
Complexity avalanche effect
.A /��������&'�(�0*("+��"*,
�������������1��� �,���������
Functional Changes
Cost
System Complexity
Functional Changes Code Size
Complexity avalanche effect
Complexity
Functional upgrade Code Size
Functional upgrade Cost
Time
.: /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
5> /��������&'�(�0*("+��"*,
,������������� ���������������
System Complexity
Complexity
Code Size
5= /��������&'�(�0*("+��"*,
,������������� ���������������Complexity
Code Size
Increases Abstraction Level
DecreasesComplexity
DecreasesCode Size
System Complexity
5. /��������&'�(�0*("+��"*,
,����������� ����������������Complexity
Code Size
DecreasesCode Size
Increases Abstraction Level
DecreasesComplexity
System Complexity
55 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������
� +���������������������������)+���-
� ��������"�� *����� �������
� ����������������������
� ����������� �����������
� ������������� �����
� "����� %����� �
� �� ������������� ������"����� ����
� '�������� �,��������� �� �����������
56 /��������&'�(�0*("+��"*,
�������������������� ���%,�������
,�������
59 /��������&'�(�0*("+��"*,
�������������������� ���%�����������
����������
5? /��������&'�(�0*("+��"*,
�������������������� ���%�����������
����������
�������������������������
�������������������������
5@ /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
5A /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
5: /��������&'�(�0*("+��"*,
��� ��������� �����������
���������������������
������������������
6> /��������&'�(�0*("+��"*,
� �� ! ���
�����������
����� "�������#���
�"���������
����"����� ������ �� �����������
6= /��������&'�(�0*("+��"*,
� �� ! ���
�����������
$������%�������
� �
�
�"���������
����"����� ������ �� �����������
6. /��������&'�(�0*("+��"*,
� �� ! ���
� �&' ��()
��*������
�����������
�"���������
����"����� ������ �� �����������
65 /��������&'�(�0*("+��"*,
� �� ! ���
�
��*������
+ � ��! ���
�����������
�"���������
����"����� ������ �� �����������
66 /��������&'�(�0*("+��"*,
� �� ! ���
�
��*������
+ � ��! ���
�����������
���������
�"���������
����"����� ������ �� �����������
69 /��������&'�(�0*("+��"*,
� �� ! ���
�
��*������
+ � ��! ���
�����������
�"���������
����"����� ������ �� �����������
6? /��������&'�(�0*("+��"*,
� �� ! ���
�
��*������
+ � ��! ���
�����������
�"���������
����"����� ������ �� �����������
6@ /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
6A /��������&'�(�0*("+��"*,
��� ��������� �����������
���������������������
������������������
6: /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� �� ! ���
�����������
�"���������
����������
9> /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� �� ! ���
�
�����������
�"���������
����������
9= /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� �� ! ���
�
� ��
�����������
�"���������
����������
9. /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� �� ! ���
�
� ��
+ � ��! ���
�����������
�"���������
����������
95 /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� �� ! ���
�
� ��
+ � ��! ���
�����������
�"���������
����������
96 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
99 /��������&'�(�0*("+��"*,
,�������
"���� �����
4�����$
(������
4�����$
(������
"���� �����
��������������� ���������������
9? /��������&'�(�0*("+��"*,
,�������
����������
4�����$
(������
4�����$
(������
��������������� ���������������
"���� ����� "���� �����
9@ /��������&'�(�0*("+��"*,
,�������
"���� �����
4�����$
(������
���������������
"���� �����
4�����$
(������
���������������
"���� �����
4�����$
(������
���������������
"���� �����
4�����$
(������
���������������
9A /��������&'�(�0*("+��"*,
,�������
4�����$
(������
���������������
4�����$
(������
���������������
4�����$
(������
���������������
4�����$
(������
���������������
"���� ����� "���� ����� "���� ����� "���� �����
����������
9: /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
?> /��������&'�(�0*("+��"*,
����� "��
�����������
�"���������
����"����� ������ �� �����������
?= /��������&'�(�0*("+��"*,
����� "��
�����������
����� #���
�"���������
����"����� ������ �� �����������
?. /��������&'�(�0*("+��"*,
����� "��
����� #���
� ",���
�����������
�"���������
����"����� ������ �� �����������
?5 /��������&'�(�0*("+��"*,
����� "��
����� #���
� ",���
�������
�����������
�"���������
����"����� ������ �� �����������
?6 /��������&'�(�0*("+��"*,
����� "��
����� #���
� ",���
�������
�����������
�"���������
����"����� ������ �� �����������
+ � ��
?9 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
?? /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� ,������� ����"����� ���������
� C������
� +�����������
� �� �������������� ���������������
?@ /��������&'�(�0*("+��"*,
����"����� ������ �� �����������
� ,������� ����"����� ���������
� C������
� +�����������
� �� �������������� ���������������
� (��%+����,�������
��������������
?A /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
?: /��������&'�(�0*("+��"*,
,�����������������$
� +� �������� ����%�,��������� ��������� ���������$�
� �� ! ���
�
��*������
+ � ��! ���
�����������
@> /��������&'�(�0*("+��"*,
,�����������������$
� +� �������� ����%�,��������� ��������� ���������$�
� �� ! ���
�
��*������
$��� �! ��*
�����������
+ � ��! ���
@= /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
@. /��������&'�(�0*("+��"*,
,�����������������$�������������
� +� �������� ����%�,��������� ��������� ���������$�
� �� ! ���
�
��*������
$��� �! ��*
�����������
+ � ��! ���
���� �!������
@5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
������"����� �������%,�������
� 2%�,�������3
� *� ����"����� ����
� *� %�� ��+�����8�������� ��
� ����������� ��8��������������
� ,��������� %��� ����
� ��������������� �����
� ���� ��������
� +����������� ����������
� ���� �&�������$
� ������1������
� ���B���������
@6 /��������&'�(�0*("+��"*,
,�����������������$� ������������
� +� �������� ����%�,��������� ��������� ���������$�
� �� ! ���
�
��*������
$��� �! ��*
�����������
+ � ��! ���
���� �!������
"�������"���������
@9 /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
@? /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
@@ /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
@A /��������&'�(�0*("+��"*,
2%���������DD
@: /��������&'�(�0*("+��"*,
���������� ����������
� �� ����������
� +�������
� ������� �
����� �1������������ %��#���
A> /��������&'�(�0*("+��"*,
,�������
����������
4�����$
(������
4�����$
(������
��������������� ���������������
"���� ����� "���� �����#��������
A= /��������&'�(�0*("+��"*,
,�������
����������
4�����$
(������
4�����$
(������
��������������� ���������������
"���� ����� "���� �����
�������!# �������!#
$�������%
A. /��������&'�(�0*("+��"*,
,�������
� +����������������
� ,������1�����������%����������������
� 1�������������
� ���� ����������
� *���������������������
� *���������������
A5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
A6 /��������&'�(�0*("+��"*,
���� ��������
� �� ����������0
� ������� ��0
� ��%������ �0
� 1�������%���0)����� ������-
� �� ������%������0
A9 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
A? /��������&'�(�0*("+��"*,
����������%������������0
1 Day After
1 Week After
Initial Request
$������������� ������
!�������������� ������ ���������
����������� ����
A@ /��������&'�(�0*("+��"*,
����������%������������0
1 Week After
Few Weeks Later
1 Day After
Initial Request Evolution Request
$������������� ������
!�������������� ������
1 Day After
AA /��������&'�(�0*("+��"*,
�%��������� �������������������
� �#����������
� ������������ ����2%���%�� �����2��������������%�����������������
� *� %������
� 1�������� ��"���� �������2��%*���
� �$���
� 2�+������'��������%�1��������2���� �����%� ��%������������%�E��
� 1�����
� 4���������
A: /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
:> /��������&'�(�0*("+��"*,
1������������F�������G�����
�
�
:= /��������&'�(�0*("+��"*,
1������������F�������G�����
Point
+print()
# int x# int y
������!����&'
�
�
:. /��������&'�(�0*("+��"*,
&�����
Point
+print()
# int x# int y
������!����&'
�
�(
:5 /��������&'�(�0*("+��"*,
&�����
Point
+print()
# int x# int y
������!����&'
�
�(
:6 /��������&'�(�0*("+��"*,
1������������F&�����G�����
Point
+print()
# int x# int y
3DPoint
+ print()
# int z
������!����&'
�
�(
:9 /��������&'�(�0*("+��"*,
1������������F&�����G�����
Point
+print()
# int x# int y
3DPoint
+ print()
# int z
������!����&'
�
�
θθθθ
ρρρρ(
:? /��������&'�(�0*("+��"*,
1������������F&�����G�����
<<Interface>>Point
+print()
3DPoint
+ print()
������!����&'
�
�
θθθθ
ρρρρ(
:@ /��������&'�(�0*("+��"*,
��%������ �����������%���
Point
+print()
1DPoint
+ print()
������!����&'
:A /��������&'�(�0*("+��"*,
��%������ �����������%���
Point
+print()
1DPoint
+ print()
������!����&'
2DPoint
+ print()
:: /��������&'�(�0*("+��"*,
��%������ �����������%���
Point
+print()
1DPoint
+ print()
������!����&'
2DPoint
+ print()
3DPoint
+ print()
=>> /��������&'�(�0*("+��"*,
��%������ �����������%���
Point
+print()
1DPoint
+ print()
������!����&'
2DPoint
+ print()
3DPoint
+ print()
NDPoint
+ print()
�������������
=>= /��������&'�(�0*("+��"*,
��%������ �����������%���
<<Interface>>Point
+print()
1DPoint
+ print()
������!����&'
2DPoint
+ print()
3DPoint
+ print()
NDPoint
+ print()
�������������
=>. /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
=>5 /��������&'�(�0*("+��"*,
�� ���� �������� �����-���
�� ��.��� ����/��������-�������/�����������! ��*���0� �������*��! �����������-���
���� ��������
=>6 /��������&'�(�0*("+��"*,
�� ��.��� ����/��������-�������/�����������! ��*���0� �������*��! �����������-���
���� ��������
�� ���� �������� �����-���
=>9 /��������&'�(�0*("+��"*,
������� �.�������1
�����"#����������
�����-��������1
�����&)����������&)����&)
22
��������� �����&)�
=>? /��������&'�(�0*("+��"*,
������� ������ ������������.�������1
�����"#����������
�����-��������1
�����&)����������&)����&)
22
����"���������
=>@ /��������&'�(�0*("+��"*,
��%������ �
=>A /��������&'�(�0*("+��"*,
1�������%���
����������
=>: /��������&'�(�0*("+��"*,
������� �8�����������������%������ �
�� ���� ��������
&"� �)
�����-���
&�����-�������)
==> /��������&'�(�0*("+��"*,
������� �8�����������������%������ �
����������
����������
=== /��������&'�(�0*("+��"*,
��%������ �����������%���
Point
+print()
1DPoint
+ print()
������!����&'
2DPoint
+ print()
3DPoint
+ print()
NDPoint
+ print()
�������������
==. /��������&'�(�0*("+��"*,
��%������ �����������%���
<<Interface>>Point
+print()
1DPoint
+ print()
������!����&'
2DPoint
+ print()
3DPoint
+ print()
NDPoint
+ print()
�������������
==5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �1����������
� ������������ ����
� ���� �1����������
� 1������������� %�����
� 1�����������������������
� 1������������������
� 1������������������� �
� +�������� �� ��������� ��
� 1�������%���������� ������
==6 /��������&'�(�0*("+��"*,
�%����������������������
����������� �����������
==9 /��������&'�(�0*("+��"*,
�%����������������������
)������ �������
==? /��������&'�(�0*("+��"*,
�%����������������������
)������ �������
������� )������
==@ /��������&'�(�0*("+��"*,
�%���������������� ���������������
)������ �������
������� )������
�������������
==A /��������&'�(�0*("+��"*,
�%�����������������%�������
����������� �����������
������� )������
������������������������� �������
==: /��������&'�(�0*("+��"*,
�%�����������������%�������
����������� �����������
������� )������
������������������������� �������
$�������%
=.> /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
=.= /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=.. /��������&'�(�0*("+��"*,
���� �1����������������
A B
�����3
Stat1
State2 State4
����� ������
������������ ������
����� ������
=.5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=.6 /��������&'�(�0*("+��"*,
������ �����+��$����
Stat1
State2 State4
BA
������ �����3
���*�' ���
=.9 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=.? /��������&'�(�0*("+��"*,
4���������������$�)�%����-
Stat1
State2 State4
BA
������ �����3
Task A Task B
�� ����������
=.@ /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=.A /��������&'�(�0*("+��"*,
4��������������� ���
Stat1
State2 State4
BA
������ �����3
��������
�������3
�� ����������
=.: /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=5> /��������&'�(�0*("+��"*,
4������������+��������
Stat1
State2 State4
BA
������ �����3
��������
�������3
�� ����������
44 � �
=5= /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=5. /��������&'�(�0*("+��"*,
4������������4��)�� ���<�����-
Stat1
State2 State4
BA
������ �����3
�� ����������
��������
�������3
=55 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=56 /��������&'�(�0*("+��"*,
4������������%������
Stat1
State2 State4
BA
������ �����3
��������
�������3
�� ����������
=59 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�������������� �1����������
� ���� �1����������
� '��#�����$����
� ���� �1���������������������
� ,�����%���
� ,����1�� ���
� ,����+�������
� ,����4��
� (������������(������
� *���������� ��������� ����� �����
=5? /��������&'�(�0*("+��"*,
*���������� ��������� �����
A B
5 � ��� 5 � ��3
� �--������5 � ��� �--������� �� ! ���
� �--������� � �--����������#���
=5@ /��������&'�(�0*("+��"*,
5 � ��� 5 � ��3
*���������� ��������� �����
A B
5 � ��� 5 � ��3
=5A /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
=5: /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �,����������$���
� 1����1������
� ����������1����1������
� ',+������
� +�����������
� ���� ��������
� 1����,�������
=6> /��������&'�(�0*("+��"*,
1����1������)�����%�B�&-
GoF stand for Gang of Four. It refers to the famous books of Vlisside and Co. Design Patterns: Elements of Reusable Object-Oriented Software.
=6= /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �,����������$���
� 1����1������
� ����������1����1������
� ',+������
� +�����������
� ���� ��������
� 1����,�������
=6. /��������&'�(�0*("+��"*,
1����)',+-
����������� � � �� �*����&'
� ��� � � � �� �*����&'
� �� � � �*����&'
� � � ���
�����������
=65 /��������&'�(�0*("+��"*,
���������������)',+-
����������� � � �� �*����&'
� ��� � � � �� �*����&'
� �� � � �*����&'
� � � ���
�����������
+����#�������������
����������
����
�����#�������������
���,������
�%������
=66 /��������&'�(�0*("+��"*,
���������������)',+-
� � �� �� � �� ��
� � � � �
Request()
�� � � � � � � �
Request()
� �� ��
Request()
� �� � � �
�����������
���������� ���,������
� �����������!�����������
=69 /��������&'�(�0*("+��"*,
���������������)',+-
� � �� �� � �� ��
� � � � �
Request()
�� � � � � � � �
Request()
� �� ��
Request()
� �� � � �
�����������
���������� ���,������
5� ��35� ���
� �����������!�����������
=6? /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �,����������$���
� 1����1������
� ����������1����1������
� ',+������
� +�����������
� ���� ��������
� 1����,�������
=6@ /��������&'�(�0*("+��"*,
���������������)������-
������������� ��.����������
#�������������#��������
=6A /��������&'�(�0*("+��"*,
���������������)������-
������������� ��.����������
#�����������������
�� �& �#'
����������� ��� � �
=6: /��������&'�(�0*("+��"*,
���������������)������-
��!-#!
� �
���� �%������
������!�� ���
���,��!�� ���
=9> /��������&'�(�0*("+��"*,
���������������)������-
��!-#!
� �
���� �%������
������!�� ���
���,��!�� ���
����������
=9= /��������&'�(�0*("+��"*,
���������������)������-
��!-#!
� �
���� �%������
������!�� ���
���,��!�� ���
!�
��������������
!�. �����!������������
=9. /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �,����������$���
� 1����1������
� ����������1����1������
� ',+������
� +�����������
� ���� ��������
� 1����,�������
=95 /��������&'�(�0*("+��"*,
���� ��������)�����%�B�&-
=96 /��������&'�(�0*("+��"*,
��#��� �������
� �����������!�����������
=99 /��������&'�(�0*("+��"*,
��#��� �������
5� ��35� ���
� �����������!�����������
=9? /��������&'�(�0*("+��"*,
5� ��35� ���
��#��� �������
�%�������!����������� � ����������
������%
=9@ /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
���� �,����������$���
� 1����1������
� ����������1����1������
� ',+������
� +�����������
� ���� ��������
� 1����,�������
=9A /��������&'�(�0*("+��"*,
+��� ��8�������� �����
� 3
����� ��.��
=9: /��������&'�(�0*("+��"*,
*���������� ��������� �����
a b
=?> /��������&'�(�0*("+��"*,
*��������� ��,�������
� 3+ � ��! ���
=?= /��������&'�(�0*("+��"*,
,��������1����
� 3
����� ��.��
� "
=?. /��������&'�(�0*("+��"*,
,��������1����
� 3
����� ��.��
��.������(�
���������(�
�ServerProxy
ClientProxy "
+ � ��! ���
=?5 /��������&'�(�0*("+��"*,
,��������1����
� 3
����� ��.��
��.������(�
���������(�
�ServerProxy
ClientProxy "
+ � ��! ���
=?6 /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
=?9 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=?? /��������&'�(�0*("+��"*,
4���1��������� ��,������1������
� ������/
#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
=?@ /��������&'�(�0*("+��"*,
4���1��������� ��,������1������
� ������/
#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
=?A /��������&'�(�0*("+��"*,
4���1��������� ��,������1������
�
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
�55 6�,�
=?: /��������&'�(�0*("+��"*,
4���1��������� ��,������1������
� ������/
#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
�55 6�,�
������/#�������0�����������1��������2��������3
4
������/#�������0�����������1��������2��������3
4
7����������� ����������
010011011011001110100101011111100111...
=@> /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=@= /��������&'�(�0*("+��"*,
4���1��������� ��������
�
Point
+print()
=@. /��������&'�(�0*("+��"*,
3�
,������1��������� %����<�����)�%� 1�-
A B
Send Message ( Request )
Waiting Loop
Send Message ( Reply )
�������������������� �
��������������������
=@5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=@6 /��������&'�(�0*("+��"*,
����%����1�����������
5��� ��������"��
+ #�������
=@9 /��������&'�(�0*("+��"*,
����%����1�����������
5��� ����
����"��+ #�������
��������������
=@? /��������&'�(�0*("+��"*,
����%����1�����������
5��� ����
����"��+ #�������
��������������
���������������
=@@ /��������&'�(�0*("+��"*,
����%����1�����������
5��� ����
����"��+ #�������
��������������
��������������� ����������������
=@A /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=@: /��������&'�(�0*("+��"*,
�����1�� ��������
� 3
����� ��.��
=A> /��������&'�(�0*("+��"*,
������H���������� ��������� �����
Client : O1 Server : 02
Request
Client request server services
��.�����������.�
! �������-��������� ��6#����������������.��&�����)�����������
��6#��� ������.��
� 3
=A= /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=A. /��������&'�(�0*("+��"*,
1����� ����
��
����.�
�����
+ ����������
' �������������
7 �
7 �
��.��
8
�43�8��#�&�%3)
�%3%4
+ ���
��"����
�#��
����
�#�����#���3
�#����
+ ���
��#�&(%�)��#�&(%�)
I� )�I���������� �������������-
=A5 /��������&'�(�0*("+��"*,
1�����������������
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementation
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
Operations
DATAand
Operations Implementatio
n
ServersUnix Process
+ ���+ ���
��"������"����
����� ��.���
=A6 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=A9 /��������&'�(�0*("+��"*,
1�����
Operation 1
Operation 2
Operation 3
Operation 4
����� �#"
��.�� �#"
����� ��.��
��������������
=A? /��������&'�(�0*("+��"*,
1�������&�������$��$������
Operation 1
Operation 2
Operation 3
Operation 4
=A@ /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
+��+����,�������
� ,�,�,�������������,�������
� 4���1��������� ����
� 4���1��������� ���8����
� ����%����1�����������
� 1�� �����1�� ��������
� 1�� ���������������!���
� 1�1��� ����
� 1��������$������
� ,�,�� 1������������ �,�������
=AA /��������&'�(�0*("+��"*,
1������ $�
� 4������ ���������4�������� ���%������ �74���������%���
� 1�J������������� ����)"7!-7�����)"7!-
� �������� ������������J�KKHE"��������������
� ���LLM���)-
=A: /��������&'�(�0*("+��"*,
�� !"
� !����� 1�
� 1�K���� �������� �
� �� !""��� %���������������%��
� ",�)"��� %������,���������� �����-
� *������������� ��
=:> /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
=:= /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
=:. /��������&'�(�0*("+��"*,
�,B)=:A:-��� ��� �����������
� �����=�=::=
� ������� ������������������)��-
� �����.�=::6
� ��������������������� ��)����H����-
� '��=0>�=::@
� ���� ���������
� �����5�������=:::
� ����� ������������) �-
� .=N ������������������ %��� ����7���.0>
� 1��������������� �
=:5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
=:6 /��������&'�(�0*("+��"*,
�� � �� � �� �
���� �!��
� ",����3#�
����� � ",���
�����-���
=:9 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
=:? /��������&'�(�0*("+��"*,
������� �����������+�������
BA
������ �����3
��������
�������3
�� �
=:@ /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
=:A /��������&'�(�0*("+��"*,
1����)',+-
����������� � � �� �*����&'
� ��� � � � �� �*����&'
� �� � � �*����&'
� � � ���
�����������
=:: /��������&'�(�0*("+��"*,
�� �
���������������)',+-
����������� � �� � � � �*����&'
� � �� � � � �*����&'
� � �� � � � �*����&'
� � � ���� �
�*����&'
��������������
���,�������%������
.>> /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
.>= /��������&'�(�0*("+��"*,
�� !"���� �������� �
����� � ",���
�����-���
InterfaceName
Operation 1()Operation 2()Operation 3()
Attribut 1Attribut 2
.>. /��������&'�(�0*("+��"*,
',+�������������� �
� ,����������',+���� !"�
� ,�"�,���������"� %��� ����
� ',+1��������� !"
InterfaceName
Operation 1()Operation 2()Operation 3()
Attribut 1Attribut 2
������ ����7�+���� �.���.��������,��������������
.>5 /��������&'�(�0*("+��"*,
�� ������������+������� �
.�������1
�����"#����������
�����-��������1
�����&�����%%%)����&�����%%%)
22
��������� �����&)�
.>6 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
.>9 /��������&'�(�0*("+��"*,
�,BL��+�� ��9��#��
� �������: ���
: ���� � ���
3�����: ����
�����(�: ����
;�#� ��#�� ' ���� ����� �6#����
ShortUShort
LongUlong
Long LongUlong Long
FloatDoubleLongDouble
CharWchar
StringWString
BooleanOctet
� ",����: ����
3�����: ����
CharWchar String
WString
3�����: ����
CharWchar String
WString
3�����: ����
CharWchar String
WString
BooleanOctet
.>? /��������&'�(�0*("+��"*,
'���L������������������
����������������������������� ���������������������������� ������������ ���������������������������� ������������ ���������������������������� ������������ ���������������������������� ���
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
��������
���������������������������������������������������������������������������� ������������� ������������� ������������� ��������!�������!�������!�������!����� ���!����� ���!����� ���!����� ���!���������!���������!���������!���������!
���� ������� ����� ������� ����� ������� ����� ������� � ���"��"��������"��"��������"��"��������"��"���������������!����������!����������!����������!
�������������������� �������������������������������������������!�������!�������!�������!
���� ���� ���� ���� ���"������������"������������"������������"���������
��#�������#�������#�������#�����������������������������$��������$��������$��������$����%&'(�%&'(�%&'(�%&'(���#�������#�������#�������#��������� ����� ����� ����� �)������)������)������)������%&'(%*'(�%&'(%*'(�%&'(%*'(�%&'(%*'(�
��#�������#�������#�������#�������+�����,����-���+�����,����-���+�����,����-���+�����,����-� ��������������������������#������#������#������#���� ��+�����,��� ��&''-���+�����,��� ��&''-���+�����,��� ��&''-���+�����,��� ��&''-� .������.������.������.������
.>@ /��������&'�(�0*("+��"*,
��+�������������/����������#���
�0��#�������.��1����
���������$���������
������������!�$�����������������
���������.��1��� ���������#� �
��
���������2�#�����!�$����������������"���� ����������� �
��
���������3�� �������#������$�������� ����������"��������$������ �
��
.>A /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
.>: /��������&'�(�0*("+��"*,
� !�� %��� ����
�3�����-���
��.����3����
�",���� �����
*������
��.�������������
�3�����-���
�������3����
�#"
����������������
� < ���=����
�� �� ���� ��� �� ��-�������������������
.=> /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
.== /��������&'�(�0*("+��"*,
���� ���
���� ���� �
����� �!�
�" ���" �� � �����#��� �
" �#�$������ ��%" �#�$������
�,B���� � �#����!��$��"� %��� ����
����" ����#
�� ������-���
�!� ������� �&#��#��#���' � ()�� (����� �
�!� *��#� ����#���
����� ��.��
.=. /��������&'�(�0*("+��"*,
�� �#+������� #�
�" ���" �� � ������� #�
���� ���
���� ���� �
����� �!�
�" ���" �� � �����#��� �
" �#�$������ ��%" �#�$������
�,B���� � �#����!��$��"� %��� ����
����" ����#
�� ������-���
�!� ������� �&#��#��#���' � ()�� (����� �
�!� *��#� ����#���
����� ��.��
.=5 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
.=6 /��������&'�(�0*("+��"*,
�KK
��#"�0�������0��
���0��
���.��0�� �*���0�� �� ��0��
�� � �#���
�� ��� �����
�� �� �.������
��.��� �.������
������ �.������
�����;(��#��"��
��.��;(��#��"��
44��3#�>: �� ���"����
�
.=9 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"����������� � �#����!��$��
� ���� �,���������B����)�,B-
� ���������� �!��
� ������� �����������+�������)��+-
� 1����1������
� ���� �������� �
� ��+4�������
� ���� � �#����!��$��)� !-"� %��� ����
� � !��+��������
� �KK�������
� �KKH�����������
.=? /��������&'�(�0*("+��"*,
E����KK
��#"�0�������0�� ���.��0�� �*���0�� �� ��0��
�� � �#���
�� �>��>44�� �����
�� �� �.������
��.��� �.������
������ �.������
��.��;(��#��"��
�����;(��#��"��
44��3#�>: �� ���"����
��#"�0,�.����0,�.�
�� �>��>? �.��� �����
? �.���3#�>: �� ���"����
�
�3�� �3 3
.=@ /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
.=A /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� ������������������ � ������ �
� ���� �������� �
� �� !"4���������� �
.=: /��������&'�(�0*("+��"*,
�� !"���� � ������ �
Client : O1 Server : 02
Object Request (IOR)
� 3
���@�����������"����",�����-������
..> /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� ������������������ � ������ �
� ���� �������� �
� �� !"4���������� �
..= /��������&'�(�0*("+��"*,
$��
5 �� ��� ��.���
�� !"4�����
����� ��.��
�6#����&A �� �)
�#"������&A �� �)
#"����"���&A �� �)
������� ����
-�� 3��
A �� �
6##(
��� � B
$��
... /��������&'�(�0*("+��"*,
����� ������ ���4�����Client Naming
ServiceServer
Server exportIOR
Client lookup for Interface IOR
Client submit request to server
..5 /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
..6 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"1�������%���
� 1������'������
� ',+�������
� 1�������!�� $"�2%���1������
� &������������1������
� 4���������� �
� 1�������!�� $"�2%���1������
� &������������1������
� �� ��������������
..9 /��������&'�(�0*("+��"*,
',+������������
Strip
Strip : stringPrint()Strip : stringPrint()
Printer
Print()Print()
1
ColorPrinter
Setcolor()Setcolor()
From Advanced CORBA Programming with C++
Michi Henning
Steve Vinoski
..? /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"1�������%���
� 1������'������
� ',+�������
� 1�������!�� $"�2%���1������
� &������������1������
� 4���������� �
� 1�������!�� $"�2%���1������
� &������������1������
� �� ��������������
..@ /��������&'�(�0*("+��"*,
������� ���%������ �
Printer
���������4���� $��� #���� ���
..A /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"1�������%���
� 1������'������
� ',+�������
� 1�������!�� $"�2%���1������
� &������������1������
� 4���������� �
� 1�������!�� $"�2%���1������
� &������������1������
� �� ��������������
..: /��������&'�(�0*("+��"*,
������� ���%������ �
�������������4���� !�4����
���������/��� �5����2��6������7���������
$��� ���"���� ��������/��� ���� �
��
Printer
ColorPrinter
���������4���� $��� #���� ���
.5> /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"1�������%���
� 1������'������
� ',+�������
� 1�������!�� $"�2%���1������
� &������������1������
� 4���������� �
� 1�������!�� $"�2%���1������
� &������������1������
� �� ��������������
.5= /��������&'�(�0*("+��"*,
������� ��
1�������%���
����� ��������������0�����
����������
-�� 3�����
A �� � $�� ���
6##(
5 �� ��� ��.���
PrinterClient
.5. /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"1�������%���
� 1������'������
� ',+�������
� 1�������!�� $"�2%���1������
� &������������1������
� 4���������� �
� 1�������!�� $"�2%���1������
� &������������1������
� �� ��������������
.55 /��������&'�(�0*("+��"*,
������� �������
1�������%���
����� �������
����������
-�� 3�����
A �� � $�� ���
6##(
5 �� ��� ��.���
�������0�����
ColorPrinter
PrinterClient
.56 /��������&'�(�0*("+��"*,/ ��������&'�(�0*("+��"*,
�� !"1�������%���
� 1������'������
� ',+�������
� 1�������!�� $"�2%���1������
� &������������1������
� 4���������� �
� 1�������!�� $"�2%���1������
� &������������1������
� �� ��������������
.59 /��������&'�(�0*("+��"*,
������� �������
1�������%���
����� �������
����������
-�� 3�����
A �� � $�� ���
6##(
5 �� ��� ��.���
�������0�����
��#���� �! ���������
ColorPrinter
PrinterClient
.5? /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
.5@ /��������&'�(�0*("+��"*,
��� ������
� ��%������ �,��������
� ,��E"8"
� ��,H���,�,� ������
� ��"1���������)��������-
� �������� ������
� ������������������������ ����������0
� ���������� ����������������������
� ��,��� !"
� �E!�E���
� ��,H���,
.5A /��������&'�(�0*("+��"*,
��� ������
&������,���������"� %��� ����
� ���� �71������7,���
� 1��������������� �
� ,���*�������������
� 1����������������,���)1�,-
� 1���������� ��� ,���)1�,-
� 4��� ������� �
.5: /��������&'�(�0*("+��"*,
�������
� 1�������+���������������������������
� ��������� �� ������������2��%���� �,�������
� 2%�,�������3
� 2%����� ����������3
� 2%�������� �����������1����������3
� (���������� �,�������2��$3
� 2%��"���%�+�������,�������3
� 2%������ !"3
� ������ ����
� �� )����������������� � ������ �-��4�����) ����� ������ �-
� ����������1�������%���
� ��� ������
.6> /��������&'�(�0*("+��"*,
*%��$C��&��C���"��������
��������������� ���
����� ���
��������0�� %�O�%�������0 ��
���C�����%�4����������� �
Top Related