CORBA tutorial Boston2003
-
Upload
emmanuel-fuchs -
Category
Technology
-
view
716 -
download
0
description
Transcript of CORBA tutorial Boston2003
![Page 1: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/1.jpg)
CORBA for transportation control and command systems tutorial
������������ ���������������������������
![Page 2: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/2.jpg)
2
31/0
3/0 3
Thales Air Traffic Management
CORBA ATC use case, Note to offline reader.
� �������������������������������� ���������������������������� ������������������������������������������������ ������ ��! ����������������������"��������#�����������! ������������������������! ���������� ��������#��������������"�������#��������
$�%����#��������"����������"��! ��! ���������&�������� �'�������� (���������������� ��������)�"�������������"�����#���������#��������������"���������������
� ���%�������"���������&������! �����������������������(��������#��� ����������������#�! �����&����! �������*��)�"����"�����#����
���"��������������! ������"�����������#���������������������! ����! ��%��! �! ����! ����������! ���"�����#��� ���! ����(�����%��! ����������������������#�������������
� ���������������������"����"���'��������#������"��������������������(����(������������"���'�������������"�������������������������"�����#�������������������������#������������������"������������������"�������%��! ���#��
![Page 3: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/3.jpg)
3
31/0
3/0 3
Thales Air Traffic Management
The open issue :
����� �������������$��#���������������������+ ��������"���������� �����"��������+ ������,�
,
![Page 4: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/4.jpg)
4
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 5: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/5.jpg)
5
31/0
3/0 3
Thales Air Traffic Management
Why CORBA ?
� ��)�"����"�����#���(��"���������"������������! ������(�����������������(�����#����-������������"����������������
. ���������������������/
� 0 ��! �������������)�"��������������� �"�����#��� ���(��"���������"�����������#������������������! ������(�����������������(�����#����-������������"���������������
� �� �����(�������������������)�"��������������
![Page 6: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/6.jpg)
6
31/0
3/0 3
Thales Air Traffic Management
Practical Use Case
� 0 ������#���#����������! ��� ��������
� + ������+ �������� ���#������
� 1 ��"�����+ ���������������"������2(�������
���������! ��%�,
� 3 �! ������������! ��%�,
� 0 ���� ������������(���� ,
� 2&�������
![Page 7: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/7.jpg)
7
31/0
3/0 3
Thales Air Traffic Management
Complex system : ATC center
Flight PlanProcessingFlight Plan
Processing
SupervisoryControlSupervisory
Control
SimulatorSimulator
RecordingReplayRecording
Replay
controllerWorkingPosition
controllerWorkingPosition
Radar Data ProcessingRadar Data
Processing
Radar FrontProcessingRadar Front
Processing
LAN
AFTN/CIDINATFM
ADJACENTFIR'S/TWR'S
MET Centres
Voice control and
communicationsVoice control
and communications
• Intercom• Priority• Public• RADIO A/G
controllerWorkingPosition
controllerWorkingPosition
4�56
�����
![Page 8: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/8.jpg)
8
31/0
3/0 3
Thales Air Traffic Management
Object At system level ?
� � ���-������������"���! ����������)�"����"�����#������������������(���,
� ���! �������� ��(��"������"���������! �����������! ������������)�"��,
� � ������! ������
7 ��� ���������(����������������! ����������������#�������'�! ��������������)�"���������������#��(�����������
�� �������! �������(������������������
![Page 9: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/9.jpg)
9
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 10: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/10.jpg)
10
31/0
3/0 3
Thales Air Traffic Management
What Do We Want
� �����&�+ �������+ �������� ���#��������������������"�
� ����#������"���#��
![Page 11: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/11.jpg)
11
31/0
3/0 3
Thales Air Traffic Management
�����
��++ ��
��"�����#
What Do We Want !
Supervision
OperatorDisplaySystem
![Page 12: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/12.jpg)
12
31/0
3/0 3
Thales Air Traffic Management
���#������#�����
�����
��++ ��
��"�����#
��"�����# �����
��++ ��
What DO We Want !
Supervision
OperatorDisplaySystem
![Page 13: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/13.jpg)
13
31/0
3/0 3
Thales Air Traffic Management
���#������#�����
��"�����# �����
��++ ��
What DO We Want !
Supervision
OperatorDisplaySystem
![Page 14: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/14.jpg)
14
31/0
3/0 3
Thales Air Traffic Management
We want to Increase Integrated software quality
��������������� ��� ���� ��������� ������ ��
������� ������ ��� ���������� ������� ���������
��� � ��
![Page 15: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/15.jpg)
15
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 16: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/16.jpg)
16
31/0
3/0 3
Thales Air Traffic Management
What We expect ?
0 ��! ���������
���#������#�����
��"�����# �����
��++ ��
Supervision
OperatorDisplaySystem
![Page 17: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/17.jpg)
17
31/0
3/0 3
Thales Air Traffic Management
What We expect ?
8 ���� ����
+ ��#�����������
![Page 18: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/18.jpg)
18
31/0
3/0 3
Thales Air Traffic Management
What We May Have :
+ ��(�"���+ ��(�"��
+ ��(�"���
+ ��(�"�� �
+ ��(�"��2
![Page 19: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/19.jpg)
19
31/0
3/0 3
Thales Air Traffic Management
Spaghetti Plate Syndrome
8 ����������������
�����"���
![Page 20: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/20.jpg)
20
31/0
3/0 3
Thales Air Traffic Management
Spaghetti Plate Syndrome
+ ��#�����������
+ ��������"����"�
![Page 21: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/21.jpg)
21
31/0
3/0 3
Thales Air Traffic Management
Spaghetti Plate Syndrome
+ ��#�����������
+ ������ ���#�����
![Page 22: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/22.jpg)
22
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 23: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/23.jpg)
23
31/0
3/0 3
Thales Air Traffic Management
Why CORBA
� 0 �������������������������! ��������
� ��������(����(�������������! ����"�������������#�����������! ������
� ��)�"� + ���! ���� ���
� ��)�"����������������������"����������������������#�������
� 0 ���������)�"�'�"�������������#������������������(���(��������"�������������������������"���������
![Page 24: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/24.jpg)
24
31/0
3/0 3
Thales Air Traffic Management
Software Component Integration Bus
Software BUS
![Page 25: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/25.jpg)
25
31/0
3/0 3
Thales Air Traffic Management
Object Software Component Integration Bus
���"������
��)�"�
������#�
��
�� �99:; �(�
������! ���$��#��#�
DistributedPolymorphism
Software Components Evolution
And Replacement
![Page 26: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/26.jpg)
26
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 27: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/27.jpg)
27
31/0
3/0 3
Thales Air Traffic Management
Polymorphism
� ������������
� 1 ��<�����������'��������������� ���������������������������)�"���������"���#��������"������������������������*������
� �����������������������(��������������������! ����"���������
� 0 ��! ��������������������! ����"���������
� �� ��=�������������������������
*GoF stand for Gang of Four. It refers to the pattern seminal book of John Vlissides, Erich Gamma, Richard Helm, Ralph Johnson:
Design Patterns: Elements of Reusable Object-Oriented Software.
![Page 28: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/28.jpg)
28
31/0
3/0 3
Thales Air Traffic Management
Object Software Component Integration Bus
Object Software BUS
![Page 29: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/29.jpg)
29
31/0
3/0 3
Thales Air Traffic Management
Object Software Component Integration Bus
Object Software BUS
8 �! ���������
![Page 30: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/30.jpg)
30
31/0
3/0 3
Thales Air Traffic Management
Procedural versus Object
Procedural Design Object Design
Before Object After Object
![Page 31: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/31.jpg)
31
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 32: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/32.jpg)
32
31/0
3/0 3
Thales Air Traffic Management
Design for changes
� 0 ��"��>���(����?"���#��@
� 0 ����(������������������"���#�������������#�
� �����������������������A���(�������#�������������(��������
� 0 ������������(����������������"�����"���#�
� 0 ��"��>������A������������-�����������������(������#�����#
� ���&���������#���������"���#��
� ���#�������(�������
� � ���������������������������"���#�
![Page 33: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/33.jpg)
33
31/0
3/0 3
Thales Air Traffic Management
� ��-����������
� ������������"�(���0 ����������������0 ���������#�����������2���������(���������
� � �"�����#�
� ���������"������� �"������#�0 ����� ���
� + %���
� 0 ��$���������B ��������������������������0 �����"�(���������#���+ ���������������; ��
� + ������ ����������"
� 8 ���������
<.�����������������������! ���/
Changes Sources* During Development
![Page 34: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/34.jpg)
34
31/0
3/0 3
Thales Air Traffic Management
Object Oriented Design
� ���#�������������#���! �"������������"��#��&�����#�"����! ������! �"����
� ��)�"���������������#� .���/����"���-����.������������/�������������"��#�"�������������#�"����! �������"���#��#������&�����#�"����
� 0 �������
� ����"����"���"������! �"����! �������"���#�
� 0 ����������
� ����"����"�������"������! �"���
![Page 35: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/35.jpg)
35
31/0
3/0 3
Thales Air Traffic Management
Without OOD
Without OOD
Design for no Changes
Stationary System
![Page 36: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/36.jpg)
36
31/0
3/0 3
Thales Air Traffic Management
Change management before OOD
� �����#�(�������������������"����������������������(��������
� � ���������������������"�����#�����������"�����������
����������� �����������
Caller called
![Page 37: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/37.jpg)
37
31/0
3/0 3
Thales Air Traffic Management
Change management before OOD
� 0 �����������! ��������"������"������������"����������������������(����"���#����������"������"��������������#������������! �"������������"��������������������
������ � ����
Caller called
No changes
![Page 38: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/38.jpg)
38
31/0
3/0 3
Thales Air Traffic Management
Change management before OOD
� ������������������! ����������'�! ��������"������"�������"���#�������"������"��������������"���#�������������������������! �"����
������ � ����
� ���� ������
Caller called
Changes
![Page 39: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/39.jpg)
39
31/0
3/0 3
Thales Air Traffic Management
Change management and code reuse before OO
� ������������������! ����������'�! ��������"������"�������"���#�������"������"��������������"���#�������������������������! �"����
������ � ����
� ���� ������
������� ����
Caller called
![Page 40: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/40.jpg)
40
31/0
3/0 3
Thales Air Traffic Management
System Integration is a specific change case
� + ����������#��������������������"�����"���#��"������������"��#�����"���������! �"�����
� 0 ��������! �"����������������#���������������������������������������-��(�����
� � ����! �"��������"�����#��������"��
� � ������"������������"�������������"��
���������������
�����������
���������������
Caller Called Caller Called
![Page 41: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/41.jpg)
41
31/0
3/0 3
Thales Air Traffic Management
Integration case
� + ����������#��������������������"�����"���#��"������������"��#�����"���������! �"�����
� 0 ��������! �"����������������#���������������������������������������-��(�����
� � ����! �"��������"�����#��������"��
� � ������"������������"�������������"��
���������������
�����������
���������������
Caller Called Caller Called
New Code
Old Code
Old Code
New Code
![Page 42: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/42.jpg)
42
31/0
3/0 3
Thales Air Traffic Management
Pervasive Change
Replaced Module (Changed)
![Page 43: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/43.jpg)
43
31/0
3/0 3
Thales Air Traffic Management
Pervasive Change
![Page 44: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/44.jpg)
44
31/0
3/0 3
Thales Air Traffic Management
Pervasive Change
![Page 45: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/45.jpg)
45
31/0
3/0 3
Thales Air Traffic Management
Pervasive Change
Several Changes Replace and Reused
![Page 46: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/46.jpg)
46
31/0
3/0 3
Thales Air Traffic Management
Pervasive Change = Spaghetti Plate
+ ��#�����������
After Several Changes Replace and Reused
![Page 47: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/47.jpg)
47
31/0
3/0 3
Thales Air Traffic Management
Procedural versus Object
Without OOD With OOD
Design For Changes
Evolutionary System
Design for no Changes
Stationary System
![Page 48: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/48.jpg)
48
31/0
3/0 3
Thales Air Traffic Management
Change management with OO reuse
� 0 ������� ����%����������������� ! ��������"������"������������"��������! �"������������������������������"������
����������� �����������
Caller called
OOD
����
![Page 49: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/49.jpg)
49
31/0
3/0 3
Thales Air Traffic Management
Change management with OO reuse
� 0 ������� ����%����������������� ! ��������"������"������������"��������! �"������������������������������"������
� ���� ������
���������������������������� ����
Caller called
No changes����
OOD
![Page 50: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/50.jpg)
50
31/0
3/0 3
Thales Air Traffic Management
With OOD : Software Bus
�������������������
![Page 51: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/51.jpg)
51
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 52: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/52.jpg)
52
31/0
3/0 3
Thales Air Traffic Management
Changes example : the printer
Client Printing Server
From The CORBA BibleMichi HenningSteve VinoskiAdvanced CORBA Programming with C++
![Page 53: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/53.jpg)
53
31/0
3/0 3
Thales Air Traffic Management
Changes example : the printer
� 3 ������������"��"����&�������������#������"���#������ ��������������(�"���
� ���������#�����#�! ����������������"%�����! ������������������
� ��#�(�����������������������'��������! ������"�����#���(��(��?-��"%��@ ���������! ������"�����#��! ��"�����! ���������������! �"��������������
![Page 54: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/54.jpg)
54
31/0
3/0 3
Thales Air Traffic Management
Changes example : the printer
Client Printing Server
![Page 55: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/55.jpg)
55
31/0
3/0 3
Thales Air Traffic Management
Changes example : the printer
Old Client Printing Server
New Client
![Page 56: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/56.jpg)
56
31/0
3/0 3
Thales Air Traffic Management
Change management with OOD reuse
� ���������#�����#�! ����������������"%�����! ������������������
����������� �����������
������������� ������ ��
Client Printing Server
![Page 57: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/57.jpg)
57
31/0
3/0 3
Thales Air Traffic Management
Change management with OOD reuse
� 3 ���! ������"�����#���(��(��?-��"%��@ ���������! ������"�����#��! ��"�����! ���������������! �"��������������
� ���� ������
����������� ��
Client Printing Server
![Page 58: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/58.jpg)
58
31/0
3/0 3
Thales Air Traffic Management
Change management and code reuse before OOD
� � ����������������������������"����������������"���#�����"�����������! ������������(����������"��"���#����
� ���� ������
����������� ��
![Page 59: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/59.jpg)
59
31/0
3/0 3
Thales Air Traffic Management
Change management with OOD reuse
� ������#����?��)�"�@ �������"�������������������! ��"���"���#�����������������(����������"����������������
� ���� ������
����������� ��
�������
![Page 60: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/60.jpg)
60
31/0
3/0 3
Thales Air Traffic Management
Object properties
� ?��)�"�@ ���������������! ��#����������������������������������
� 2�"�����������
� ������"���
� ��������"��
� ��������������
� 2&"��������������#�
� ������������ ����������������"�����������"�����"�������������������! ��������#�������"���#���
![Page 61: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/61.jpg)
61
31/0
3/0 3
Thales Air Traffic Management
CORBA = Distributed Polymorphism
� ����)�"��������������#������#�����"������������#�������������������
� 0 ������ �������� �����#������������������������������
��� ����������)�"��+ ��(�"���.�+ /���������������������������������������������������������
![Page 62: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/62.jpg)
62
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 63: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/63.jpg)
63
31/0
3/0 3
Thales Air Traffic Management
CORBA Distributed Polymorphism examples
� 2&�������
� ��������! ������ ���+ �8 ����#����(�"�
� 2&������C
� ���������������#��� ���+ �$�����"�������������"����"�������������.1 ��/
� 2&������D
� ����������������������������#���������������
![Page 64: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/64.jpg)
64
31/0
3/0 3
Thales Air Traffic Management
Example UML Diagram
Strip
Strip : stringPrint()Strip : stringPrint()
Printer
Print()Print()
1
ColorPrinter
Setcolor()Setcolor()
From The CORBA BibleMichi HenningSteve VinoskiAdvanced CORBA Programming with C++
![Page 65: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/65.jpg)
65
31/0
3/0 3
Thales Air Traffic Management
Example Interface Inheritance (IDL)
���������������������������������������� ���������� ���������� ���������� ������ ���� ������ ������ ������ ������ ����
������������������������������������������������ ����������������������������������������������������������������������������������������������������
���������������� ������������������������������������ �� �� �� �������!�������!�������!�������!�� ����"�����"�����"�����"�
��������
Printer
ColorPrinter
������������������������������������ ������ ������ ������ ������ ����
���������������� #���� "�#���� "�#���� "�#���� "�
��������
![Page 66: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/66.jpg)
66
31/0
3/0 3
Thales Air Traffic Management
printer
Printer
print()
������������
Colour
set_color()
![Page 67: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/67.jpg)
67
31/0
3/0 3
Thales Air Traffic Management
printer
Printer
print()
������������
![Page 68: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/68.jpg)
68
31/0
3/0 3
Thales Air Traffic Management
������� ��
CORBA Distributed Polymorphism example 1
����� ��������������������
�������� ��
��� ��� ��
0 ���� ����� ��
-��&
8 ����#+ ��(�"�
Printer
![Page 69: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/69.jpg)
69
31/0
3/0 3
Thales Air Traffic Management
CORBA = Distributed Polymorphism
� �� ��?�����#����(�"�@ ��������������������������������������"���������"��
� ��������������������#����(�"�����#�������#�"����""���������������
� ������������8 ����#�+ ��(�"�����(���������! �"������#���! ����"������������������#����(�"��
![Page 70: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/70.jpg)
70
31/0
3/0 3
Thales Air Traffic Management
Objet Reference and Naming
Client NamingService
Server
Server exportsIOR
Client lookup for Interface IOR
Client submits request to server
![Page 71: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/71.jpg)
71
31/0
3/0 3
Thales Air Traffic Management
CORBA = Distributed Polymorphism
� ��������%���������������� �����������������������������
� � ����! ���������������(�����������"�������"���#���������������� ������������"�������
� 8 �! �"�������"����������������������! ����"����������! �������������"������ �������"�������
![Page 72: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/72.jpg)
72
31/0
3/0 3
Thales Air Traffic Management
������� ����� ��
CORBA = Distributed Polymorphism
����� �������
�������� ��
��� ��� ��
0 ���� ����� ��
-��&
8 ����#+ ��(�"�
�������������
ColorPrinter
Printer+ �"������! � "�����#
��"%�����0 ���������
![Page 73: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/73.jpg)
73
31/0
3/0 3
Thales Air Traffic Management
������� ����� ��
CORBA Distributed Polymorphism
����� �������
�������� ��
��� ��� ��
0 ���� ����� ��
-��&
8 ����#+ ��(�"�
�������������
ColorPrinter
Printer+ �"������! � "�����#
����������
![Page 74: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/74.jpg)
74
31/0
3/0 3
Thales Air Traffic Management
printer
Printer
print()
������������
Colour
set_color()
![Page 75: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/75.jpg)
75
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 76: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/76.jpg)
76
31/0
3/0 3
Thales Air Traffic Management
We need design patterns
� 0 ����(�������������� ����������������������������������������������#�����������"����������"����-������������������#���
� ����#��������������������������������������������������"����������"��! ��"���������"���#���! �������"���������������"��
� �� ����������������������! ����%��! ���������������)�"�����������������#������#�
![Page 77: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/77.jpg)
77
31/0
3/0 3
Thales Air Traffic Management
Distributed Pattern
� �������#�����#����������.1 ���/������)�"��������������+ ������
� ����#���������� ���������)�"��+ ���! ��������#� ! ��"�����(�����"���#�����������"������������������������
� 2&����� ��"���� ��������! ��"��"��������������"��)��"�����! ����+ ���� �������
� �������&��������������! ������������������"������������
� + �"�����&���������#��������������! ������������������"������������
� � ������&���������#��������������! �����������������
![Page 78: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/78.jpg)
78
31/0
3/0 3
Thales Air Traffic Management
The GOF Abstract Factory Design Pattern
*GoF stand for Gang of Four. It refers to the famous books of John Vlissides, Erich Gamma, Richard Helm, Ralph Johnson. Design Patterns: Elements of Reusable Object-Oriented Software.
![Page 79: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/79.jpg)
79
31/0
3/0 3
Thales Air Traffic Management
Polymorphism and Factory Pattern : example 2
����� ��������������������
�������� �����������"����
![Page 80: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/80.jpg)
80
31/0
3/0 3
Thales Air Traffic Management
Life cycle
Printer FactoryClient Printer
Create Printer
Create Printer
Request
Printer IOR
![Page 81: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/81.jpg)
81
31/0
3/0 3
Thales Air Traffic Management
FACTOY PATTERN (from OOC training)
� � �����"�������������"�������������������! ����(��������������������'���"�����#����������! ��#
� + �"�����
� A client is required to provide security information before the factory object will allow the client to have access to another object.
� $���*�����"��#
� The factory object manages a pool of objects, often representing some limited resource, and assigns them to clients based on some utilization algorithm.
� ������������
� A factory object enables the use of polymorphism by returning object references to different implementations depending on the criteria specified by a client.
![Page 82: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/82.jpg)
82
31/0
3/0 3
Thales Air Traffic Management
Polymorphism and Factory Pattern
����� ��������������������
�������� �����������"����
![Page 83: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/83.jpg)
83
31/0
3/0 3
Thales Air Traffic Management
Polymorphism and Factory Pattern
����� ��������������������
�������� �����������"����
![Page 84: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/84.jpg)
84
31/0
3/0 3
Thales Air Traffic Management
Factory And Code Generation
Printer
+print()
Black & White
+ print()
������������
![Page 85: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/85.jpg)
85
31/0
3/0 3
Thales Air Traffic Management
Factory And Code Generation
Printer
+print()
������������
Black & White
+ print()
Colour
+ print()
![Page 86: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/86.jpg)
86
31/0
3/0 3
Thales Air Traffic Management
Factory And Code Generation
Printer
+print()
Black & White
+ print()
������ ������
Colour
+ print()
FAX
+ print()
![Page 87: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/87.jpg)
87
31/0
3/0 3
Thales Air Traffic Management
Factory And Code Generation
Printer
+print()
Black & White
+ print()
������ ������
Colour
+ print()
FAX
+ print()
Strip
+ print()
![Page 88: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/88.jpg)
88
31/0
3/0 3
Thales Air Traffic Management
Factory And Code Generation
<<Interface>>Printer
+print()
Black & White
+ print()
������ ������
Colour
+ print()
FAX
+ print()
Strip
+ print()
![Page 89: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/89.jpg)
89
31/0
3/0 3
Thales Air Traffic Management
Factory And Code Generation
<<Interface>>Printer Factory
Black & WhiteFactory
������������
1 �������������������"�����
ColourFactory
FAXFactory
StripFactory
![Page 90: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/90.jpg)
90
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 91: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/91.jpg)
91
31/0
3/0 3
Thales Air Traffic Management
Why is procedural design expensive to change ?
� �"�������������"����������������������������"��������#����������������� ����������������������������������
� � ��������������"����������������"��������������������
� + ��! ����������������"���#�����������"�������������������"���#���
![Page 92: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/92.jpg)
92
31/0
3/0 3
Thales Air Traffic Management
Why is OOD easy to change ?
� �"����������)�"���������������#� ��������"������������������������������"���������������������
� 2�"����)�"���������������������������
� � ������������������������"���������#�����������������������)�"��
� � ������������������������������)�"��"������������ �"�����
![Page 93: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/93.jpg)
93
31/0
3/0 3
Thales Air Traffic Management
Object collaboration
![Page 94: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/94.jpg)
94
31/0
3/0 3
Thales Air Traffic Management
Why is OOD easy to change ?
� + ��! ����������������"���#���������������������������! ������)�"��"���#�� ����������������! ����������
� � ���"���������"����)�"����������������������"���#��������������������������
� ����"���#����������������"��#��������������������������������������?����@
![Page 95: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/95.jpg)
95
31/0
3/0 3
Thales Air Traffic Management
Example 3: The problem is in the User Input
Exit Coordination State
A: NIL_EXIT_STATE,B: FLIGHT_ACTIVATION_PROPOSAL,C: FLIGHT_ACTIVATION_ALARM,D: FLIGHT_ACTIVATION_CONFIRMED,E: HANDOVER_TRANSFERED,F: COORDINATION_TERMINATED,G: UNKNOWN_EXIT_STATE
Enter Exit Coordination State =>
![Page 96: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/96.jpg)
96
31/0
3/0 3
Thales Air Traffic Management
Replace case and enum by object .
enum ExitCoordinationState {
NIL_EXIT_STATE,FLIGHT_ACTIVATION_PROPOSAL,FLIGHT_ACTIVATION_ALARM,FLIGHT_ACTIVATION_CONFIRMED,HANDOVER_TRANSFERED,COORDINATION_TERMINATED,UNKNOWN_EXIT_STATE
}
![Page 97: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/97.jpg)
97
31/0
3/0 3
Thales Air Traffic Management
Example of structural fragility : the switch
� + ���"������+ ! ��"�����������������������"���#��
� 2(���������������������������"���#������"���#��"�������"������#�������������! �������������������! ��"�
� ��� �����"�������"�������! ��"� ���������������
� ��� �������������#���%�������"���#������"��E
� 2(���! ���� ������(�������"�����""�����#��������������(����'�������(������! ��"���""�����#��������������(�����
� 0 ���������������������(�����"���#���������(�����"���#���(���! ����������! ��"��"����
![Page 98: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/98.jpg)
98
31/0
3/0 3
Thales Air Traffic Management
structural switch
static void printsStatus(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
![Page 99: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/99.jpg)
99
31/0
3/0 3
Thales Air Traffic Management
structural switch
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
![Page 100: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/100.jpg)
100
31/0
3/0 3
Thales Air Traffic Management
structural switch
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(intstatus) {
switch(status) {
case NIL_EXIT_STATE: processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
SoftwareModule A
SoftwareModule B
SoftwareModule C
SoftwareModule D
SoftwareModule E
![Page 101: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/101.jpg)
101
31/0
3/0 3
Thales Air Traffic Management
The problem space and the solution space.
� �������! ��"��(����������"��������������������&������������������
� 0 ���������������-�������! �"����������(�����"���#���(���! ������������������! ��"��(�����
![Page 102: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/102.jpg)
102
31/0
3/0 3
Thales Air Traffic Management
User Imput
Exit Coordination State
A: NIL_EXIT_STATE,B: FLIGHT_ACTIVATION_PROPOSAL,C: FLIGHT_ACTIVATION_ALARM,D: FLIGHT_ACTIVATION_CONFIRMED,E: HANDOVER_TRANSFERED,F: COORDINATION_TERMINATED,G: NewStateH: UNKNOWN_EXIT_STATE
Enter Exit Coordination State =>
![Page 103: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/103.jpg)
103
31/0
3/0 3
Thales Air Traffic Management
Replace case and enum by object .
enum ExitCoordinationState {
NIL_EXIT_STATE,FLIGHT_ACTIVATION_PROPOSAL,FLIGHT_ACTIVATION_ALARM,FLIGHT_ACTIVATION_CONFIRMED,HANDOVER_TRANSFERED,COORDINATION_TERMINATED,
NewState,
UNKNOWN_EXIT_STATE
}
![Page 104: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/104.jpg)
104
31/0
3/0 3
Thales Air Traffic Management
static void printsStatus(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case New_State,processing 7
case UNKNOWN_EXIT_STATEprocessing 8
} }
structural switch
![Page 105: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/105.jpg)
105
31/0
3/0 3
Thales Air Traffic Management
structural switch
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(intstatus) {
switch(status) {
case NIL_EXIT_STATE: processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
static void flightUpdate(int status) {
switch(status) {
case NIL_EXIT_STATE : processing 1
case FLIGHT_ACTIVATION_PROPOSAL:processing 2
case FLIGHT_ACTIVATION_ALARM:processing 3
case FLIGHT_ACTIVATION_CONFIRMED:processing 4
case HANDOVER_TRANSFERED,processing 5
case COORDINATION_TERMINATED,processing 6
case UNKNOWN_EXIT_STATEprocessing 7
} }
SoftwareModule A
SoftwareModule B
SoftwareModule C
SoftwareModule D
SoftwareModule E
Changes
![Page 106: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/106.jpg)
106
31/0
3/0 3
Thales Air Traffic Management
OOD hides the problem space
� 0 ����������%�������"���#������"���������"��������������������������������)�"���
� 3 �! �����0 �����������������
� � ������������0 ���
� � �������������3 �!
![Page 107: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/107.jpg)
107
31/0
3/0 3
Thales Air Traffic Management
Polymorphism
Status
+print()
NIL_EXIT_STATE
+ print()
Print()Client
FLIGHT_ACTIVATION_PROPOSAL
+ print()
FLIGHT_ACTIVATION_ALARM
+ print()
UNKNOWN_EXIT_STATE
+ print()
![Page 108: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/108.jpg)
108
31/0
3/0 3
Thales Air Traffic Management
Factory Pattern
Status
+print()
NIL_EXIT_STATE
+ print()
������ ������
FLIGHT_ACTIVATION_PROPOSAL
+ print()
FLIGHT_ACTIVATION_ALARM
+ print()
UNKNOWN_EXIT_STATE
+ print()
StatusFactory
+ create()
![Page 109: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/109.jpg)
109
31/0
3/0 3
Thales Air Traffic Management
Factory Pattern
� � ����! ��"�������! �����������������)�"����������"�����
� � �����"�����������������! ���)�"�����������#�������(���"������������#����! ��"��"���������������������#���"����
� � ���"��������! ������������������"�������)�"�������+ ������
� 2�"����������)�"��%��! ����! ��������#��"��������(�"�������������"����
![Page 110: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/110.jpg)
110
31/0
3/0 3
Thales Air Traffic Management
Factory pseudo code
static Status create(int status) {
switch(status) {
case NIL_EXIT_STATE : return status = new nil_exit_state();break;
case FLIGHT_ACTIVATION_PROPOSAL:return status = new flight_activation_proposal();break;
case FLIGHT_ACTIVATION_ALARM:return status = new flight_activation_alarm();break;
case FLIGHT_ACTIVATION_CONFIRMED:return status = new flight_activation_confirmed();break;
case HANDOVER_TRANSFERED,return status = new handover_transfered();break;
case COORDINATION_TERMINATED,return status = new coordination_terminated();break;
case UNKNOWN_EXIT_STATEreturn status = new unknown_exit_state();
} }
New Object
![Page 111: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/111.jpg)
111
31/0
3/0 3
Thales Air Traffic Management
Polymorphism and changes
Status
+print()
NIL_EXIT_STATE
+ print()
������ ������
FLIGHT_ACTIVATION_PROPOSAL
+ print()
FLIGHT_ACTIVATION_ALARM
+ print()
UNKNOWN_EXIT_STATE
+ print()
NEW_STATE
+ print()
No Changes
![Page 112: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/112.jpg)
112
31/0
3/0 3
Thales Air Traffic Management
Polymorphism and state patterns
� ��! ����(�������)�"��! ��"��������"���"���#� �����#������������������! ����(�����������������������������������""�����#����������)�"��������! ������������������������
� ��������+ ���� �(�����! ��"���(�������������������������)�"�����"���#��#
� ��������+ ���� "�������������)�"��������"����������������������������� ����������������������"��������(�"������
![Page 113: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/113.jpg)
113
31/0
3/0 3
Thales Air Traffic Management
State Pattern (from the GoF)
GoF stand for Gang of Four. It refers to the famous books of Vlisside and Co. Design Patterns: Elements of Reusable Object-Oriented Software.
![Page 114: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/114.jpg)
114
31/0
3/0 3
Thales Air Traffic Management
Object Programming
State2
Stat1
State4
+ ��������#���
State5
�����2&�������������+ ���� F
�������������
���� ��������� ����� �� ��
���� ��������� �����
���� ��������� ���� ����� ��
�� � � ������������
�� � �� ����� ������ �����
� ���� � �����������
G
![Page 115: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/115.jpg)
115
31/0
3/0 3
Thales Air Traffic Management
State Pattern
� ������������������������"����&����)�"������� �"������! ��"����������������)�"�
� � ���������������)�"���&�������������� ����� �'��#������"������%��! ����! ����� ���#�����������'�������! �������"�����"��������(�"��������
![Page 116: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/116.jpg)
116
31/0
3/0 3
Thales Air Traffic Management
Polymorphism
Status
+print()
NIL_EXIT_STATE
+ print()
������ ������
FLIGHT_ACTIVATION_PROPOSAL
+ print()
FLIGHT_ACTIVATION_ALARM
+ print()
UNKNOWN_EXIT_STATE
+ print()
![Page 117: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/117.jpg)
117
31/0
3/0 3
Thales Air Traffic Management
Polymorphism
status
+print()
NIL_EXIT_STATE
+ print()
������ ������
FLIGHT_ACTIVATION_PROPOSAL
+ print()
FLIGHT_ACTIVATION_ALARM
+ print()
UNKNOWN_EXIT_STATE
+ print()
Status
+print()
������
Context
Concrete state
![Page 118: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/118.jpg)
118
31/0
3/0 3
Thales Air Traffic Management
Coarse Grain Examples
� � ������&�� ���������(������� ���'�����"�������������� ������������"������������#�������"�����������"�� � ���������� �
� � "������'�������������#�����(������������)�"����������#�������������������� �
� � �������&�� ���������"������#������&�� ����
� + ����� �! ����� � � ���)�"������"������#�������)�"��
![Page 119: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/119.jpg)
119
31/0
3/0 3
Thales Air Traffic Management
On line coordination with CORBA Objects
Air Traffic Control Centre
Status
Status
Status
Status
![Page 120: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/120.jpg)
120
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 121: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/121.jpg)
121
31/0
3/0 3
Thales Air Traffic Management
CORBA = Coarse Grain Object
Remote ObjectLocal Object
Operation1()
Operation2()
Operation3()
Operation4()
Fine Grain Object
NO
![Page 122: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/122.jpg)
122
31/0
3/0 3
Thales Air Traffic Management
CORBA = Coarse Grain Object
Remote ObjectLocal Object
GroupOperation()YES
![Page 123: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/123.jpg)
123
31/0
3/0 3
Thales Air Traffic Management
Distributed Object Patterns
FaçadeLocal Object
Operation1()
Operation2()
Operation3()
Remote Object
GetRemoteObject()
��H����� ���$�"����"��
![Page 124: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/124.jpg)
124
31/0
3/0 3
Thales Air Traffic Management
Object By Value
Local Object
Operation1()
Operation2()
Operation3()
Remote Object
OBV
Event Factory
new
Event Type
$�"���� �)�"��
![Page 125: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/125.jpg)
125
31/0
3/0 3
Thales Air Traffic Management
3 1/0
3/03
CORBA use case
� Can we use CORBA in Large Distributed Control System ?
� What do We want !� Complex System Seamless Integration
� Why CORBA ?� Object Software Bus
� Design for changes� Change example : Printer� CORBA distributed polymorphism example� CORBA and Distributed Design pattern example� Procedural design versus Object design � Designing Distributed Object� Normalisation processes
![Page 126: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/126.jpg)
126
31/0
3/0 3
Thales Air Traffic Management
Separation Of Concern
FaultTolerance
Printer
LoadBalancing
Printer
Transaction
Printer
Security
Printer
![Page 127: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/127.jpg)
127
31/0
3/0 3
Thales Air Traffic Management
Separation Of Concern
� ������"�����������"����������������������! ��(��#������� ��������"��������"���"�������"��
� � ������������ ��������������"���������)�"�
� � ������������ �������������������������)�"�
� � ������������ ��������"������)�"��
� � ������������ �������������"�����)�"�
� � ���"�������������������������� ��������"��������! �������������"���"��������������������������� ���)�"���������������� ����"�������
![Page 128: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/128.jpg)
128
31/0
3/0 3
Thales Air Traffic Management
Separation Of Concern
SecurityLoad
Balancing
Printer
TransactionFault
Tolerance
![Page 129: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/129.jpg)
129
31/0
3/0 3
Thales Air Traffic Management
Separation Of Concern
Security LoadBalancing
Printer
TransactionFault
Tolerance
![Page 130: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/130.jpg)
130
31/0
3/0 3
Thales Air Traffic Management
Separation Of Concern
SecurityLoad
BalancingPrinter Transaction
FaultTolerance
Domain Services
TechnicalServices
![Page 131: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/131.jpg)
131
31/0
3/0 3
Thales Air Traffic Management
Y development cycle
������� �������� ������� �������������
�� ��� ���
�������������"�$���� ����"��#���������"�� �����"������
1 �����"�� �����! ���
������!����
![Page 132: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/132.jpg)
132
31/0
3/0 3
Thales Air Traffic Management
Application Lay out
� ����"������$�#�"
����� �"���-��
![Page 133: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/133.jpg)
133
31/0
3/0 3
Thales Air Traffic Management
� ����"������$�#�"
����� �"���-��
� ����"������$�#�"
Application Lay out
� ����"������� �"���-��
![Page 134: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/134.jpg)
134
31/0
3/0 3
Thales Air Traffic Management
Application Lay out
� ����"������$�#�"
� ����"������� �"���-��
� ����"������ �"����"��
� �"���"���� �"����"��
![Page 135: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/135.jpg)
135
31/0
3/0 3
Thales Air Traffic Management
Y Standardization Process
� ������"�����������"����"����#�������! �������������� ��������#�
� � �"���"������������(�����#�����"�� �����! ��������"�������������"���"���������
� � �� ����� �������������������������"���"��������������������������� �
� 0 ����(�����! �����"%���(����� ������������ ���A���������"����
![Page 136: CORBA tutorial Boston2003](https://reader034.fdocuments.net/reader034/viewer/2022042613/54b34f814a7959a9248b457f/html5/thumbnails/136.jpg)
136
31/0
3/0 3
Thales Air Traffic Management
Y Standardization Process
������� �������� ������� �������������
Domain Logic Patterns
Domain TechnicalPatterns
Transportation DTF