distributed object computing

240
!" #! $" % &’( )*("+"*,-

Upload: emmanuel-fuchs

Post on 15-Aug-2015

35 views

Category:

Software


1 download

TRANSCRIPT

�������������� ���������������������������������������

���������� !"���������� � �#����!��$��"� %��� ����

��������&'�(�

)*("+��"*,-

. /��������&'�(�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()

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����������� �