CCM IDL, CORBA Component Model IDL

Post on 12-Jan-2015

1.138 views 3 download

description

 

Transcript of CCM IDL, CORBA Component Model IDL

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

����������������������� ! ���"������������

�����������

#

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

$

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

����� !������ !�����"�%

� ����� !�&"%��"���'�

� ���������������'��

� �����������"���� !�(����� !)

� ����!������ !����&*�����������������

� ����!������ !��� ���"�������������

� ����!������ !�����"�%�

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

����� !�&"%��"���'�

�����������

+

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

����� !�&"%��"���'�

� ���"������ !����������&*���

� �������"���� !�������������� !

� �������"���� !�����"�%

� !������ !��������"��'�,'�%'���"�%������

�����������

-

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

$����� !�&"%��"���'�

� ���"������ !����������&*���

� �������"���� !�������������� !

� �������"���� !�����"�%

� !������ !��������"��'�,'�%'���"�%������

�����������

.

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

'����&*����/�����������

�����������������"���������0�&����������&*����

�����������

1

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

���������������������&*���

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

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

� ����

� ����

���� ��

����

�����������

�����������

2

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

���������������&*���

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

���� � ���� �

���� ��

����

��������

�����������

3

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

���"����� !

Component

����������

�� �

�����������

�� �

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

�����������

$4

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

$����� !�&"%��"���'�

� ���"������ !����������&*���

� �������"���� !�������������� !

� �������"���� !�����"�%

� !������ !��������"��'�,'�%'���"�%������

�����������

$$

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

/���5��"���6 "��7��������"�� � !

����������

������� ��

�����������

!�������"

������� ��

#������������!����"

�����������

$#

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

$����� !�&"%��"���'�

� ���"������ !����������&*���

� �������"���� !�������������� !

� �������"���� !�����"�%

� !������ !��������"��'�,'�%'���"�%������

�����������

$8

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

/���5��"���6 "��7��������"���� !�����"�%

����������

������� ��

�����������

!�������"

�����������

#������

������� ��

�����������

������� ��

#������������

������� ��

#������������!����"

�����������

$+

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

$����� !�&"%��"���'�

� ���"������ !����������&*���

� �������"���� !�������������� !

� �������"���� !�����"�%

� !������ !��������"��'�,'�%'���"�%������

�����������

$-

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

/���5��"���6 "��7���9�����!������ !�����"�%

����������

�����������

#������

������� ��

�����������

������� ��#���������

���

������� ��

#������������!����"

������� ��

�����������

!�������"

Server

##��$%���

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

##�&'''

�����������

$.

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

$

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

����� !������ !�����"�%

� ����� !�&"%��"���'�

� ���������������'��

� �����������"���� !�(����� !)

� ����!������ !����&*�����������������

� ����!������ !��� ���"�������������

� ����!������ !�����"�%�

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

����� !����������������'��

�����������

$2

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

����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

$3

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

#4

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

��������������'���

� ���'"&���� =�������"%�'�&����'���'�"��

� ����� =�������'������'��"���"���'������(�'�:"���)

� ����������� =���'�>�"'������'��"���"���'������(����)

� �:�������'������ =����'��������:����

� �:�����"�< =�������������:����

� ?�:"%��"�������"��'������"��������'���

!�������������##��(�������)���"

�����������

#$

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

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

Attributes

MyBusiness

Component

Component interface

Facets

Eventsources

Eventsinks

Receptacles

OFF

ER

ED R

EQ

UIR

ED

�����������

##

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

#8

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

��"��"�%���������"���"����=������&�"�%��������������������������

�����������

#+

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

#-

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

��������������� !

Name

component Name

{

/** Component features **/

};

�����������

#.

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

#1

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

������&*����� !

server

�� �

interface Display

{

void display_hello();

};

�����������

#2

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

#3

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

���������� !

server

component Server

{

/**

** The facet for Clients components.

**/

provides Display for_clients;

};

for_clients

�����������

84

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

8$

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

���������� ����� !

Client

component Client

{

/**

** The receptacle to_server to connect the Client component

** to a Display object or facet reference.

**/

uses Display to_server;

};

to_server

�����������

8#

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

88

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

�:�����&*��������� !

eventtype HelloInfo

{

void display_hello();

};

�����������

8+

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

8-

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

"�<������ !

component Server

{

/**

** The status info event consumer.

**/

consumes HelloInfo received_info;

};

received_info

server

�����������

8.

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

$����� !����������������'��� ���������������'���

� ���������������&�0

� ��������������� !

� ������&*����� !

� ���������� !

� ���������������� !

� �:����;�����/0���� !

� "�<������ !

� ��'�������� !

�����������

81

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

��'�������� !

Client

component Client

{

/**

** The status info event source.

**/

emits HelloInfo info_to_send;

};

info_to_send

�����������

82

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

$

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

����� !������ !�����"�%

� ����� !�&"%��"���'�

� ���������������'��

� �����������"���� !�(����� !)

� ����!������ !����&*�����������������

� ����!������ !��� ���"�������������

� ����!������ !�����"�%�

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

�����������"���� !�����"�%

�����������

+4

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

�����������"���� !�����"�%

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

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

�����������"���� !�����"�%

�����������

+#

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

�����������

+8

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

��"���������"�� ��9�� !�����"�%������

� �������������0�� "���������������"���'�����"���'"�"�%��'���Components::CCMObject

� ����������:�����"�<��'������������������'��"�����'��&��"�"�%���������"�����'���'����

� ������������'���������������'��"������'��������"�%A��"��������"�%A�����%���"�%���������"�����'���'����(�)

� �:�������'����'���������������'��"������'���&��'"&"�%��������&��'"&"�%����'��������:����

�����������

++

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

�����������

+-

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

�������"���� !

Component

����������

�����������

�����������

�� �##��$%���

�����������

+.

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

�������"���� !����������"�������%�����

Component

����������

��*�������������

#��������������������

�� �##��$%���

�����$�

#�������������*�����

�����������

+1

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

�������"���� !��������"��'������

Component

�� �##��$%���

�����$�

#�������������*�����

�����������

+2

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

�������"���� !

Component

##��$%���

�����������

+3

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

�����������

-4

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

��"���������"�� ��9�� !�������&*���

� �������������0���"���������������"���'�����"���'"�"�%��'���Components::CCMObject

Component

##��$%���

�����������

-$

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

��"���������"�� ��9�� !�������&*���

� �������������0���"���������������"���'�����"���'"�"�%��'���Components::CCMObject

Component

##��$%���

CCMObject

�����������

-#

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

�������"���� !�������&*���Component

##��$%���

<component_name>

<Attributes>

<Connection_Operations>

CCMObject

�����������

-8

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

�����������

-+

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

��"���������"�� ��9�� !����&*����'���'�����

� �����������:�����"�<���'������������������'��"�����'��&��"�"�%����������"�����'���'����

� �������

provide_<facet_name>;

� "�<����

get_consumer_<event_type>;

Component<facet_name> Component

<event_type>

�����������

--

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

�����������

-.

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

��"���������"�� ��9�� !����������"���������"��

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

� �'���������������'��"������'��������"�%A��"��������"�%A�����%���"�%����������"�����'���'����(�)

connect_<receptacle_name> (facet_reference)

� �:�������'������

� �'���������������'��"������'���&��'"&"�%���������&��'"&"�%�����'��������:����

connect_<source_name> (consumer_reference)

�����������

-1

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

�����������

-2

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

�������"���� !�������&*���Component

##��$%���

<component_name>

Attribute

provide_<facet_name>get_consumer_<event_type>connect_<receptacle_name>connect_<source_name>

�����������

-3

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

�������"���� !�������&*���Component

##��$%���

<component_name>

Attribute

provide_<facet_name>get_consumer_<event_type>connect_<receptacle_name>connect_<source_name>

CCMObject

�����������

.4

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

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

����� !�����"�%������������������@�����

�����������

.#

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

����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

.8

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

��:����"��

serverClient

Component

Base ref.

Facet

Receptacle

�����������

.+

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

������������������'���

serverClient

�� �

������� ���

�����������

.-

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

$����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

..

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

���������� !

server

�� �

interface Display

{

void display_hello();

};

�����������

.1

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

$����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

.2

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

����� �':�'������ !

server

component Server

{

/**

** The facet for Clients components.

**/

provides Display for_clients;

};

for_clients

Display

�����������

.3

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

$����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

14

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

��"��������� !

Client

component Client

{

/**

** The receptacle to_server to connect the Client component

** to a Display object or facet reference.

**/

uses Display to_server;

};

to_server

Display

�����������

1$

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

$����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

1#

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

�':�'������ !�����"�%

component Server

{

provides Display for_clients;

};

interface Server :

::Components::CCMObject

{

Display provide_for_clients();

};

server

for_clients

Display�����������

�����������

18

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

$����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

1+

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

��"��������� !�����"�%

component Client

{

uses Display to_server;

};

interface Client :

::Components::CCMObject

{

void connect_to_server(in Display connexion)

raises(…);

Display disconnect_to_server()

raises(…);

Display get_connection_to_server();

}

Client

to_server

Display

�����������

�����������

1-

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

$����� !�����"�%������������������@�����

� �����������������&*����� !

� �':�'������������������ !

� ��"��������������������� !

� �':�'������������������ !�����"�%

� ��"��������������������� !�����"�%

� ���������������������&�0�

�����������

1.

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

����������������������"��

�� �

Display

�����$�

provide_for_clients();connect_to_server();

Client

to_server

Serverfor_clients

�����������

11

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

Assembly Client Server

provide_for_clients();

x

connect_to_server(x);

�������"��� ����'"���������������"��

Client Server

�����$�

to_server for_clients

�����������

12

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

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

� ����"�%������

� ��������������"�%

� �����&*���

� ����������:���� "�<�����"�%

� ����������������:���� ��'�������"�%

� �����������&*���

� �����������������@�����

� �:����� ��'��� "�<��@�����

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

����� !�����"�%� ��'��� "�<��@�����

�����������

24

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

����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

2$

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

�:����

Client

server

+����)�����

+�����)��,

Component

Base ref.

Event Source

Event Sink�������

���info_to_send

received_info

�����������

2#

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

28

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

��"��5?������"����7�� !��9�� !�����"�%������

� ����:�����0���"�����������

� ��:������0��

�"���'"�"�%��'����������������:��������

� ���������'"���'�����

�"���'"�"�%��'����������������:����������'����

�����������

2+

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

�:��������� !

Client

Server

+�����������

+��������,

Event

Type

�� �info_to_send

received_info

#����������������

�����������

2-

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

2.

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

�:�����&*��������� !

eventtype HelloInfo

{

/**

** Just contains a string.

**/

public string text;

};

�������

�����������

21

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

22

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

�':�'����:�����"�<������ !

component Server

{

/**

** The status info event consumer.

**/

consumes HelloInfo received_info;

};

received_info

Event

type

server

�����������

23

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

34

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

��"�������:��������'�� ����� !

Client

component Client

{

/**

** The status info event source.

**/

emits HelloInfo info_to_send;

};

Event

Type

HelloInfo

info_to_send

�����������

3$

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

3#

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

�����:����/0�������� !����"�%�

Event

Type

�� �

�����������

#�����������������

�� �

-����(���

�����������

38

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

��"��5?������"����7�� !��9�� !�����"�%������

� ����:�����0���"�����������

� ��:������0��

�"���'"�"�%��'����������������:��������

� ���������'"���'�����

�"���'"�"�%��'����������������:����������'����

�����������

3+

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

�:�����0�������� !�����"�%���:������0��

valuetype HelloInfo : ::Components::EventBase

{public string text;

}

eventtype HelloInfo

{

public string text;

};

�����������

�����������

3-

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

�:�����0�������� !�����"�%�����������'�����'����

eventtype HelloInfo

{

public string text;

};

�����������

Interface HelloInfoConsumer :::Components::EventConsumerBase

{

void push_HelloInfo (

in HelloInfo the_HelloInfo );

};

�����������

3.

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

�:�����0�������� !����"�%��:����������'

Client

Server+�����������

+��������,

Event

Type

�� �

��>��������������������'��&*���

push_HelloInfo (the_HelloInfo)

�����������

31

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

32

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

�':�'��� "�<������ !�����"�%component Server

{

consumes HelloInfo received_info;

};

interface Server :

::Components::CCMObject

{

HelloInfoConsumer get_consumer_received_info();

}

�����������

server

�� �

.������#�������

received_info

�����������

33

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

$44

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

��"�������:�������'�������� !�����"�%

component Client

{

emits HelloInfo info_to_send;

};

Client

Info_to_sendServer

�� �

Consumer

�����������

interface Client : ::Components::CCMObject

{void connect_info_to_send(

in HelloInfoConsumer consumer):

HelloInfoConsumer disconnect_info_to_send();

};

�����������

$4$

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

$����� !�����"�%� ��'��� "�<��@�����

� �:����/0�������"�%

� �:�����&*����� !

� �':�'������������:�����"�<�� !

� ��"���������������:�������'���� !

� �:����/0�������"�%

� �':�'������������:�����"�<�� !�����"�%

� ��"���������������:�������'���� !�����"�%

� �:���������&�0

�����������

$4#

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

�����������:�����������"��

Info_to_send

Client Server

�� �

HelloInfoConsumer

�����$�

get_consumer_received_infoconnect_info_to_send

received_info

�����������

$48

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

Assembly Client Server

get_consumer_received_info();

x

connect_info_to_send(x);

�������"��� ����'"����:�����������"��

ClientServer

�����$�

info_to_send

received_info

�����������

$4+

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

$

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

����� !������ !�����"�%

� ����� !�&"%��"���'�

� ���������������'��

� �����������"���� !�(����� !)

� ����!������ !����&*�����������������

� ����!������ !��� ���"�������������

� ����!������ !�����"�%�

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

����!������ !����&*�����������������

�����������

$4.

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

����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$41

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

'����&*����/�����������

�����������������"���������0�&����������&*����

�����������

$42

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

���������������������&*���

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

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

� ����

� ����

���� ��

����

�����������

�����������

$43

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

���������������&*���

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

���� � ���� �

���� ��

����

��������

�����������

$$4

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$$$

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

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

�� �

� ����

��������

������&*���

�����������

$$#

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$$8

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

����������,'�@0�,����'�

�� �

�����������

$$+

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

����������,'�@0�,����'�

�� �

<������

�����������

$$-

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

����������,'�@0�,����'�

,'�@0

�� �

<������

�����������

$$.

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

����������,'�@0�,����'�

,'�@0

�� �

<������

�&*���������������"��

�����������

$$1

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

����������,'�@0�,����'�

,'�@0

�� �

<������

�&*���������������"��

��&

�����������

$$2

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

����������,'�@0�,����'�

,'�@0

�� �

<������

�&*���������������"��

��&#����

�����������

$$3

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

�����"��'������&*���������������"���$%������),�����#����

�� �

#�����,

�����������

$#4

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

����'"���������������&��<

<������

�� �

�����������

$#$

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

����'"���������������&��<

<������

�&*���������������"��

�� �

�����������

$##

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

����'"���������������&��<

<������

�&*���������������"��

�/�

�� �

�����������

$#8

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$#+

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

����'"���������������&��<

),�����

��������<����'��"��

��������<����'��"��

��������<����'��"��

�&*���������������"��

��������<����'��"��

��������<����'��"��

��������<����'��"��

�/�

�� �

�����������

$#-

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

����'"���������������&��<

),�����

��������<����'��"��

��������<����'��"��

��������<����'��"��

�&*���������������"��

��������<����'��"��

��������<����'��"��

��������<����'��"��

�/�

�� �

Call-back

Call-back

Call-back

�����������

$#.

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$#1

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

)���������*���0�������

�&*�������<�%"�%�����'����':�'

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

�������

Call-back

Call-back

Call-back

)�������,�����

�� �

�����������

$#2

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

�&*�������<�%"�%�����'����':�'

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

�������

Call-back

Call-back

Call-back

)�������,�����

�� �

�����������

$#3

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

�&*�������<�%"�%�����'����':�'

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

�������

Call-back

Call-back

Call-back

)�������,�����

�� �

�����������

$84

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$8$

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

�&*�������<�%"�%�����'����':�'

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

�������

Call-back

Call-back

Call-back

���

���

)�������,�����

�����������

$8#

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

�&*�������<�%"�%�����'����':�'

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

�������

Call-back

Call-back

Call-back

���

���

)�������,�����

�����������

$88

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

�&*�������<�%"�%�����'����':�'

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

�������

Call-back

Call-back

Call-back

���

���

)�������,�����

�����������

$8+

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

�&*�������<�%"�%�����'����':�'

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

�������

���

���

)�������,����� +1������

Call-back

Call-back

Call-back

�����������

$8-

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

�&*�������<�%"�%�����'����':�'

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

�������

���

���

)�������,�����

+1������

�����������

$8.

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$81

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

�&*�������<�%"�%���,�'����"���

#����� ������

�� �

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

���

�����������

$82

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

�&*�������<�%"�%���,�'����"���

#���� � ������

���)��$

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

���

�����������

$83

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

�&*�����������&���,�'����"���

#���� )�����)��������1�

�����������

$+4

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

,'�@0���������'����

,'�@0

�� �

�����������

$+$

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

,'�@0���������'����

,'�@0

��&

�� �

�����������

$+#

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

,'�@0���������'����

,'�@0

��&#����

�� �

�����������

$+8

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$++

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

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

�� �

� ������

� ������

�� �

�� �

���� �� � ���

� ����

�&*����,��<�%"�%����0&'"�� �':�'�������"�"��

�����������

$+-

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

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

�� �

� ������

� ������

�� �

�� �

���� �� � ���

� ����

�&*����������"�"���� �

�����������

$+.

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

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

� ������

� ������

���� �� � ���

� ����

�&*����������"�"��

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

!�

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

!

�����������

$+1

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$+2

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

�&*�����������&

�$%������ )������2 )������ )������2���1�

)������ ���1�

�����������

$+3

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

�����������������&��������"��'������@�

�$%������ )������2 )������ )������2���1�

)������ ���1�

#��������

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

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

3

3

�����������

$-4

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

�����������������&��������"��'������@�

�$%������ )������2 )������ #��������

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

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

#����1�

)��$

���&#���������

�����������

$-$

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$-#

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

�&*�������<�%"�%����0&'"����':�'

)�������,�����

�� � Call-back

Call-back

Call-back

� �������� �

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

������� ���

�����������

$-8

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

�&*�������<�%"�%���������"����&*���

)�������,�����

�� � Call-back

Call-back

Call-back

� ������

���)��$

���

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

������� ���

�����������

$-+

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

�&*�������<�%"�%

)�������,�����

�� � Call-back

Call-back

Call-back

� ������

���)��$���

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

������� ���

�����������

$--

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

�&*�������<�%"�%

)�������,�����

�� � Call-back

Call-back

Call-back

� ������

���)��$���

� ������

���

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

������� ���

�����������

$-.

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

�&*�������<�%"�%

)�������,�����

�� � Call-back

Call-back

Call-back

� ������

���)��$���

� ������

���

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

������� ���

�����������

$-1

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

�&*���������

)�������,�����

Call-back

Call-back

Call-back

� ������

���)��$���

� ������

������

���

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

������� ���

�����������

$-2

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

����������'���������

)�������,�����

Call-back

Call-back

Call-back

���

)��$���

���

���

���

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

������� ���

�����������

$-3

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

����������'���������

)�������,�����

Call-back

Call-back

Call-back

���

)��$���

���

���

���

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

������� ���

�����������

$.4

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

����������'���������

)�������,�����

Call-back

Call-back

Call-back

���

)��$���

���

���

���

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

������� ���

�����������

$.$

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

����������'���������

)�������,�����

Call-back

Call-back

Call-back

���

���

���

���

���

)��$

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

������� ���

�����������

$.#

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

����������'���������

)�������,��������

���

���

���

���

)��$

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

������� ���

+1������

�����������

$.8

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

���������������@�

)�������,��������

���

���

���

���

�����@�

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

������� ���

+1������

�����������

$.+

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

$����!������ !����&*�����������������

� ������&*���

� �������&*��������,'�@0�,����'�

� <�������������������<

� �&*�������<�%"�%�,�'�� �:�'

� ,�'�� �:�'�����������������������'����@�����'

� �&*�������<�%"�%�,�'����"�������������

� �&*����������"�"��

� �����"��'���'��&*����������"�"���

� ,�'����"����������������������������� "�<������@��

� ���������������'��

�����������

$.-

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

���������������'��

)�������,��������

���

���

���

���

�����@�+1������

�����������

$..

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

���������������'��

+1������ #����1�

������� ���#��������

�����������

$.1

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

$

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

����� !������ !�����"�%

� ����� !�&"%��"���'�

� ���������������'��

� �����������"���� !�(����� !)

� ����!������ !����&*�����������������

� ����!������ !��� ���"�������������

� ����!������ !�����"�%�

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

����!������ !��� ���"������������

�����������

$.3

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

����!������ !��� ���"������������

� ����������'��:"��

� ��'"B��������0�'��:"��

� �����������"����0���

� ,�'����"���

� ���<��������������'��:"��

�����������

$����!������ !��� ���"������������

� ����������'��:"��

� ��'"B��������0�'��:"��

� �����������"����0���

� ,�'����"���

� ���<��������������'��:"��

�����������

$1$

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

/��������"��'��'��"�����'�

Container

ORB

SecurityTransaction NotificationPersistency

CORBAComponent

HomeP

OA

Client

ExtendedOMG IDLexternal

API

InternalAPI

CallbackAPI

�����������

$����!������ !��� ���"������������

� ����������'��:"��

� ��'"B��������0�'��:"��

� �����������"����0���

� ,�'����"���

� ���<��������������'��:"��

�����������

$18

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

���������������'��

+1������ #����1�

������� ���#��������

�����������

$1+

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

!������ !����@�����'

Component

+1������

�����������

$1-

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

!������ !����@�����'������������"��

Component+1������

�����������

$1.

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

Component

!������ !����@�����'������������"��

+1������

�����������

$11

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

Component+1������

!������ !�����"���@�����'�"���'����

�����+1������

�����������

$����!������ !��� ���"������������

� ����������'��:"��

� ��'"B��������0�'��:"��

� �����������"����0���

� ,�'����"���

� ���<��������������'��:"��

�����������

$13

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

�����������������"�%'��

�������

������

#����1�

������

)��&�������&�����1�!"

##�&���������!"

##�&��������!"

##�&��������!"

##�&������!" ##�&������!"

�����������

$24

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

Component

+1������

!������ !��� ���"������������

)�������#��������

�����+1������

�����������

$2$

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

!������ !��� ���"������������

)������#��������

���&�������&�����1�!"

���&��������!"

���&���������!"

���&������!"

#��������&���

�����������

$2#

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

Component

+1������

!������ !��� ���"������������

)�������#��������

�����+1������

��������4���

#������������

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

���

�����������

$28

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

Component

+1������

!������ !��� ���"��������@�

)�������#��������

�����+1������

)�������#����1�

�����������

$����!������ !��� ���"������������

� ����������'��:"��

� ��'"B��������0�'��:"��

� �����������"����0���

� ,�'����"���

� ���<��������������'��:"��

�����������

$2-

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

Component

+1������

!������ !�����'����':�'

)�������#��������

�����+1������

�����������

$2.

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

Component

+1������

!������ !�����'����':�'

)�������#��������

�����+1������

#����1�

�����������

$21

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

����������!�����"���'����

Component

ContextExecutor

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

������� ���Component

�����������

$����!������ !��� ���"������������

� ����������'��:"��

� ��'"B��������0�'��:"��

� �����������"����0���

� ,�'����"���

� ���<��������������'��:"��

�����������

$23

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

/��������"��'��'��"�����'�

Container

ORB

SecurityTransaction NotificationPersistency

CORBAComponent

HomeP

OA

Client

ExtendedOMG IDLexternal

API

InternalAPI

CallbackAPI

�����������

$34

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

Component

+1������

!������ !��������"��'��'��"�����'�

)�������#��������

�����+1������

)�������#����1�

ExtendedOMG IDLexternal

API

ExtendedOMG IDLexternal

API

Extended OMG IDL external API

InternalAPI

Call back API

�����������

$3$

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

/��������"��'��'��"�����'�

Container

ORB

SecurityTransaction NotificationPersistency

CORBAComponent

HomeP

OA

Client

ExtendedOMG IDLexternal

API

InternalAPI

CallbackAPI

�����������

$3#

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

$

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

����� !������ !�����"�%

� ����� !�&"%��"���'�

� ���������������'��

� �����������"���� !�(����� !)

� ����!������ !����&*�����������������

� ����!������ !��� ���"�������������

� ����!������ !�����"�%�

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

����!������ !�����"�%

�����������

$3+

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

����!������ !

� �@�����'

� �����@�

� ���"������������

�����������

$����!������ !

� �@�����'

� �����@�

� ���"������������

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

�����@�����'

�����������

$31

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

�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

$33

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

����������!�����"���'����

Component

ContextExecutor

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

������� ���

�����������

#44

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

����������!����������&��<�"���'���������':�'

Component

Executor

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

�������

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

#4#

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

������@�����'

������� ���

+1������

�����������

#48

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

������@�����'

� �'���������6�&��'�����������6������"���'�����

� ���������������@�����'�"���'�����"��%���'������

� /�"���������@�����'�"���'������

� ��������������������������'"%"����"���'���� �"�����5##�&6�'��"@A�

� ����"���'"��������'"%"����"���'������

� �'����"���'�������������C"���'���� ����DA������������@�����'�"���'�������������������"�%���'��

local interface CCM_<interface name> :

<interface name> { };

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

#4-

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

�������'��@�����'

+1������

������� ���

+1������

�����������

#4.

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

�:����0�������������'��@�����'

� �'�������:����0���

� ���������������'��@�����'"���'���� "��%���'������

� �'�����:����0�� C�:����0�� ����D�

� ��������"���'������"����������������A�&����"�����5���E7��'��"@������������"@����5�������'7�"��%���'������

� /�"��"���'������������"�%�����������'��"����"������'�����A���������:����0�� ������"�%���"����'�����'�

local interface CCM_<eventtype name>Consumer{

void push (in <eventtype name> ev);};

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

#42

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

�����������������@�����'

+1������

+1������

�����������

#43

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

����5��':�'��"��7�������"���'����

� �������������0���"��������������'���������"���'�������

� �@�����'�������6&��<

� /�����"�������������@�����'"���'����

� ����'"�"�%��'���Components::EnterpriseComponent

� /��������"��"�������������@�����'"���'����

� �����@����"�:����"��

� /�����������������"�"�������@��"���'����

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

#$$

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

������������"���@�����'�����'����

� /�����"���@�����'�����&��<�"���'�������������&0�����������'����'�����"�����"����&0�����������"�%�'�����

� �'����������������C�������������DA�����������"���@�����'�"���'������"���������������������������������A�&����"������'��"@���5���E7������������"@����5E�@�����'7�"�����"����

� /�����"���@�����'�"���'����������"����������'"&����������'���&0���������������

�����������

#$#

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

�':�'�������"���'����������"���@�����'

local interface CCM_Server_Executor :::Components::EnterpriseComponent

// Main executor

{};

�����������

#$8

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

�@��'�������������������&��<�"���'�����

#��������

4����

)��,

#��������

4����

)��,

�������

�������1������

���,��1������

������1������

�����������

#$+

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

�����"��'��'��"�����'�����@�����'!�����'

������1������

#���������������

)��,

)��,

4����

4����

�@�����'!�����'

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

#$.

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

���������������"��"���@�����'�����'����

� /��������"��"���@�����'�����&��<�"���'�����"�����"����&0�����������"�%�'�����

� �'����������������C�������������DA��������������"��"��@�����'�"���'������"�����������������������������������������'��"@����5���E7�"�����"����

� /��������"��"���@�����'�������������"@����5E�@�����'7�

� ���������"��"���@�����'�"���'�����"���'"�����������������'�'"������������

� ���"�"��������'��"�����'��������������������"��"��"���'�������'�������������:�����"�<��

� �&�:��'���������&�����"��"���&0�"���'"�"�%�������"���@�����'�"���'������������"�%����'��"������'�������������:�����"�<���

� /�"��"��������"��������"%�����"���&0����������"��'�"����������"��

�����������

#$1

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

�':�'�������"���'���������@�����'

local interface CCM_Server_Executor :::Components::EnterpriseComponent

// Main executor

{};

local interface CCM_Server : ::CCM_Server_Executor

// monolithic executor

{};

�����������

#$2

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

����������"�<������"��"���@�����'

� /��������"��"���@�����'����&��<�"���'���������������"������'��"������'���>�"'"�%�'���'��������������A�������'�������"�%��:����

� "������������'����'����A�"��"�����"�����&0�����������'�

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

##4

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

���������������"��"���@�����'

� �'�����������A�����>�":���������'��"���"�����"����"�����������"��"���@�����'�"���'������

� �'�����������������C����D������0���C�0��DA�������'��"����"������������������������������&����"�����5%��E7��'��"@�"��%���'������

� /�"�����'��"��������������0���'�����'��"���������'���'�����������"���'����F��������@�����'��0������'���'��:�����

CCM_<type> get_<name> ();

�����������

##$

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

�':�'�������"���'�������������"��"���@�����'

local interface CCM_Server_Executor :::Components::EnterpriseComponent

// Main executor

{};

local interface CCM_Server : ::CCM_Server_Executor

// monolithic executor

{

CCM_Display get_for_clients();

};

�����������

###

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

�':�'�������"���'�������������"��"���@�����'

local interface CCM_Server_Executor :::Components::EnterpriseComponent

{};

local interface CCM_Server:::CCM_Server_Executor

{

CCM_Display get_for_clients();

};

local interface CCM_Server_Context :

::Components::CCMContext

{};

�����������

##8

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

�����"��'��'��"�����'���������"��"���@�����'

������7���1������

#���������������

4����

4����

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

##-

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

�':�'� "�<����������"��"���@�����'

� �'�����������"����������"����������������������"��"��@�����'���'���%0A����������"��'�"�:�<����"�<��@�����'���'��"��������:�'�����"��������������:���������"���"�<�

local interface CCM_Server : CCM_Server_Executor

{

void push_received_Info(in HelloInfo event);

}

Executor

push_received_info(in HelloInfo event)

�����������

##.

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

�':�'�������"���'���������@�����'

local interface CCM_Server_Executor :::Components::EnterpriseComponent

// Main executor

{};

local interface CCM_Server : ::CCM_Server_Executor

// monolithic executor

{

void push_received_info_(in HelloInfo event);

};

�����������

##1

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

�':�'�!�����"���'�����

local interface CCM_Server_Executor :::Components::EnterpriseComponent

{};

local interface CCM_Server:::CCM_Server_Executor

{

void push_received_info(in HelloInfo event);

};

local interface CCM_Server_Context :

::Components::CCMContext

{};

�����������

##2

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

�����"��'��'��"�����'���������"��"���@�����'

������1������

#���������������

)��,

)��,

�����������

$�@�����'

� ������@�����'

� �������'��@�����'

� �����������@�����'

� ��"���@�����'

� �����"��"���@�����'

� ����

� �������'

� ,�'�� �':�'

�����������

#84

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

�@�����'����,�'�� �':�'#��������

4����

)��,

#����������1������

�������1������

�������

���,��1������

�����������

#8$

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

�@�����'����,�'�� �':�'#��������

4����

)��,

#����������1������

�������1������

�������

���,��1������

4����

)��,

���

���

�����������

#8#

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

�@�����'����,�'�� �':�'

#��������

4����

)��,

#��������

4����

)��,

�������

�����������

#88

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

�@�����'����,�'�� �':�'

#��������

4����

)��,

#��������

4����

)��,

�������

�������1������

���,��1������

�����������

#8+

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

�@�����'����,�'�� �':�'��������"��"���@�����'

������1������

#���������������

)��,

4����

)��,4����

�����������

$����!������ !

� �@�����'

� �����@�

� ���"������������

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

���������@�

�����������

#81

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

�����@�

� �����@�

� ������������������"��

� ��"���'�����,�&�"���'��������"��

� ,�'����"���

�����������

$�����@�

� �����@�

� ������������������"��

� ��"���'�����,�&�"���'��������"��

� ,�'����"���

�����������

#83

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

����������!������"'����"���'�������,�'����"���

Component

Context

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

���

�����������

#+4

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

���������������'�����'����������������@�

)��$

#����1�

���

/��������

�����������

#+$

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

���������������'�������"���'���&�"���'������@�

)��$

#����1�

���

�������

�����������

$�����@�

� �����@�

� ������������������"��

� ��"���'�����,�&�"���'��������"��

� ,�'����"���

�����������

#+8

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

�����������������&��������"��'������@�

�$%������ )������2 )������ #��������

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

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

#����1�

)��$

���&#���������

�����������

#++

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

����5��':�'��"��7�������"���'����

� �������������0���"��������������'���������"���'�������

� �@�����'�������6&��<

� /�����"�������������@�����'"���'����

� ����'"�"�%��'���Components::EnterpriseComponent

� /��������"��"�������������@�����'"���'����

� �����@����"�:����"��

� /�����������������"�"�������@��"���'����

� ���'��"������������������������'����������������:�������'���

�����������

#+-

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

���������������@������'����

� /��������@��"���'����"���'�����"�����"����&0�����������"�%�'�����

� �'����������������C�������������DA��������������@�"���'������"���������������������������������A�&����"������'��"@����5���E7������������"@����5E�����@�7�"�����"����

� ���������@��"���'�����"���'"�����������������������@��

� ���"�"��������'��"�����'�������������������@��"���'�������'�'����������������:�������'����

�����������

#+.

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

���������������@������'����

�����������

#+1

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

"���'���������@�

� �������@��"���'�����"�����"������'�����������������

� /��������@��"���'����������"������������6����"�"��'���"���"���'���"����

� ��'�"�:�<"�%����'��"�������'����������

� ��'�����"�%��:�����"�����:�������'�����'���

� ���"��"�����������&0����������"��'������������������������������������"��������@��(?������E�����@�)��

� /�������"��������@��"��������������������������&0����E����"��E�����@����'��"����������"��E���������

�����������

#+2

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

�����������

� �'������'���������A�����>�":���������'��"���"�����"����"�����������@��"���'�����

� /����"%����'�������"�����'��"��������������������'�����'����������"���"����@��'�����"���@�

� �'����"����@�'������������������C����D������0���C�0��DA�������'��"���������������������������'����������&����"�����5%��E�������"��E7��'��"@�"��%���'�����

� /������'��"��������������0���'�����'��"��A���������&*����'���'���� �������"���'����F���0�� ���'���'��:�����

� ������'��"������������"��A���"�����'��"���'���'������"��'���'�����

<type> get_connection_<name> ();

�����������

#+3

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

����"���@�'����������

� �'�������"���@�'������������������C����D�����0���C�0��DA������'��"���������������������������'����������&����"�����5%��E�������"���E7��'��"@�"��%���'������

� /������'��"��������������0���'�����'��"�����������>����������0���C����D�������"������'���'��:�����(��"���0���"�����"����&0�������"���6�"����>�":������� !)�

<name>Connections get_connections_<name> ();

�����������

#-4

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

�������������"����������"���'�������������@�

local interface CCM_Client_Context : ::Components::CCMContext

{

Display get_connection_to_server();

};

�����������

$�����@�

� �����@�

� ������������������"��

� ��"���'�����,�&�"���'��������"��

� ,�'����"���

�����������

#-#

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

,�&�"���'�������"���'��"���������@�

� �'��������&�"���'�������"���'���'�A�����>�":���������'��"���"�����"����"�����������@��"���'������

� �'���&�"���'��'���"���'���'����������C����D������0���C�0��D��

� ������'��"�����������������������������'��&����"�����5����E7��'��"@�"��%���'������

� /�"�����'��"����������'���'��:������������"�%���"����'�����'������"�"�%������:����

� �������7&8����9�!���8����9���":

� /���������������0��������"�����'��"���"���'��'�������������:������������������'�(��'���"���'���'��)��'����������&��'"&�'��(��'���&�"���'���'��)�

Info_to_send

Client void push_info_to_send(in HelloInfo event);

�����������

#-8

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

��"���'���"���������@�

local interface CCM_Client_Context :

::Components::CCMContext

{

void push_info_to_send(in HelloInfo event);

}

Context

void push_info_to_send(in HelloInfo event);

�����������

$�����@�

� �����@�

� ������������������"��

� ��"���'�����,�&�"���'��������"��

� ,�'����"���

�����������

#--

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

,�'����"���

Component

Context

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

������� ���

�����������

#-.

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

,�'����"���

#��������

#��������

#����1�

���

/��������

�������

�����������

#-1

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

�0&'"�����������

Component

ContextExecutor

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

������� ���

�����������

#-2

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

�@��'�������������������&��<������"'����"���'�����

#��������

4����

)��,

#��������

4����

)��,

�������

#����1�

���

/��������

�������

�����������

$����!������ !

� �@�����'

� �����@�

� ���"������������

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

���"������������

�����������

#.$

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

���"������������

� ���������������@��

� �������������":��"����!"����0���

� ���"��������@��������"��'�"���'"�����

� ��'��@�����'

�����������

#.#

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

$ ���"������������

� ���������������@��

� �������������":��"��

� ���"��������@��������"��'�"���'"�����

� ��'��@�����'

�����������

#.8

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

����������!�����"���'����

Component

ContextExecutor

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

������� ���Component

�����������

#.+

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

���������������'��

+1������ #����1�

������� ���#��������

�����������

#.-

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

���������������'������'����':�'

+1������

�������#��������

�����������

#..

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

���������������'�������'����"���

+1������ #����1�

������� ���#��������

�����������

#.1

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

�����������������&��������"��'������@�

�$%������ )������2 )������ #��������

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

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

#����1�

)��$

���&#���������

33

�����������

#.2

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

$ ���"������������

� ���������������@��

� �������������":��"��

� ���"��������@��������"��'�"���'"�����

� ��'��@�����'

�����������

#.3

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

��������������"��

+1������ #����1�

���

#��������

�����������

#14

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

��������������"��

+1������ #����1�

���

#��������

#����������������

�����������

#1$

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

��������������"��

+1������ #����1�

���

#��������

#����������������

�����������

#1#

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

��������������"��

+1������ #����1�

������� ���

#��������

#����������������

�����������

#18

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

�@�����'���������"�������������#��������

4����

)��,

#����������1������

�������1������

�������

���,��1������

�����������

#1+

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

�@�����'���������"������������

#��������

4����

)��,

#����������1������

�������1������

�������

���,��1������

�����������

#1-

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

���"������������

� /��� ���"�����������"��������&��<�"���'�����"�����������&0�������"��������������������

� ����'�:"�������'��"������'��"������"��"�%��������@���"����������������������������%����':�����"���"������'�������"��������������

� ���������"������������A��������'���0����"�����0�"���'"������������������ ���"�����������"���'������

� �����"��'����"�"���"�����'��������������"����0���������������������":��"�����������":��"���

�����������

#1.

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

���"������������

�����������

#11

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

���"������������

� ���E����"��E�����@�

� /������E����"��E�����@�����'��"���"������������������ ���"�������@�������������������/��������"��'���������"�����'��"�������'�������������"������������&�����'�������

� ���E���":���

� /������E���":�������'��"���"���������&0����������"��'�������"�0������"������������������"������&������������":���/�������������"�����������������'��'����0�"�"�"��"B��"�� '�>�"'����'"�'�������'��"���"�:����"����

� ���E����":���

� /������E����":��� ���'��"���"���������&0����������"��'�������"�0������"������������������"������&���������"����":���/�������������"���������������'������ ��0�'����'����"����>�"'���������":��"����"����

� ���E'���:�

� /������E'���:�����'��"���"���������&0����������"��'������������':����"��&�������&������'�0�������"���'����������������������"��"���&�������&������'�0����

�����������

#12

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

���"������������

// Container callback implemented by the component

local interface SessionComponent :

::Components::EnterpriseComponent

{

// The context is fixed by the container.

void set_session_context(SessionContext ctx)

raises(CCMException);

// Called when component is activated.

void ccm_activate() raises(CCMException);

// Called when component is deactivated.

void ccm_passivate() raises(CCMException);

// Called when component is removed.

void ccm_remove() raises(CCMException);

};

�����������

#13

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

$ ���"������������

� ���������������@��

� �������������":��"��

� ���"��������@��������"��'�"���'"�����

� ��'��@�����'

�����������

#24

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

���"������������

// Container callback implemented by the component

local interface SessionComponent :

::Components::EnterpriseComponent

{

// The context is fixed by the container.

void set_session_context(SessionContext ctx)

raises(CCMException);

// Called when component is activated.

void ccm_activate() raises(CCMException);

// Called when component is deactivated.

void ccm_passivate() raises(CCMException);

// Called when component is removed.

void ccm_remove() raises(CCMException);

};

SessionContext

�����������

#2$

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

�����@�������"��'�"���'���

�����������

#2#

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

�����"��'������@����''��"�%

� /��������"��'��"������������"���'����������"���'"���&�����������EC�������������DE�����@�"���'��������������������� ���"�������@�

� /�������������"����������"������''������������������� ���"�������@�'���'����������"��'���":�������������EC�������������DE�����@�

�����������

#28

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

�����������������&��������"��'������@�

�$%������ )������2 )������ #��������

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

#����1�

)��$

���&#���������

CCM_Client_Context::_narrow();

�����������

#2+

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

��������������"��

+1������ #����1�

������� ���

#��������

#����������������

�����������

#2-

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

$ ���"������������

� ���������������@��

� �������������":��"��

� ���"��������@��������"��'�"���'"�����

� ��'��@�����'

�����������

#2.

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

���"���������������������"��"���@�����'

� /��&�����"�"���&0����������"��'����������"��"���@�����'��������"�������������"���'"���������������� ���"�����������"���'�����

�����������

#21

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

?�������'���������'��@�����'

�����"��"���@�����'

�����������

#22

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

��'��@�����'

local interface User_CCM_Client :

CCM_Client,

Components::SessionComponent

{};

�����������

#23

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

����������������'��@�����'�������6&��<#��������

4����

)��,

������7����1������

�������1������

�������

���,��1������

�����������

#34

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

����������������'��@�����'�������6&��<

#��������

4����

)��,

������7����1������

�������1������

�������

���,��1������