Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 135

Автор Π₯ьюз ΠšΠ°ΠΌΠ΅Ρ€ΠΎΠ½

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° «классной доски»

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нашС прСдставлСниС ΠΎ CORBA-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ «классной доскС», рассмотрим Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ctest Laboratories. И хотя ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ нашСй ΠΊΠ½ΠΈΠ³ΠΈ, ΠΌΡ‹ всС ΠΆΠ΅ остановимся Π½Π° самых Π²Π°ΠΆΠ½Ρ‹Ρ… аспСктах «классной доски» ΠΈ источников Π·Π½Π°Π½ΠΈΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ»Ρƒ ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. «Классная доска» Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ услуги ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚Π° ΠΏΠΎ ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ расписания ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… курсов. «Классная доска» Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ планирования ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… курсов для студСнта Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ°. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Ρ‹ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Β«Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎΒ» расписания занятий. Π’ΠΎ врСмя рСгистрации курсов всСгда сущСствуСт конкурСнция Π·Π° мСста Π² аудиториях. Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ для студСнта курсы попросту Β«Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡΒ». Π’Π΅Π΄ΡŒ Π½Π΅ зря сущСствуСт ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ дисциплинС обслуТивания ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ: Β«ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ обслуТСн». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²ΠΎ врСмя рСгистрации, ΠΊΠΎΠ³Π΄Π° дСсятки тысяч студСнтов ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство курсов, Π²Π°ΠΆΠ½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ выступаСт ΡΠ²ΠΎΠ΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ ΠΆΠ΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ курсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ°. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ эти курсы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ разнСсСны Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, студСнт Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡƒΡ‡Π΅Π±Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ свободноС врСмя для Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΈ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… занятий.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° студСнт Π³ΠΎΡ‚ΠΎΠ² Π²Π·ΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΈΠΌ курс, ΠΏΡ€ΠΈΠ΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΆΠ΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ, ΠΈ вмСсто Π½Π΅Π³ΠΎ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ курсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ Π² мСньшСй стСпСни. ΠšΡƒΡ€ΡΡ‹-Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ обучСния студСнта Π² ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅, Ρ‡Ρ‚ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния студСнта являСтся Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Но Ссли курсы-Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ «посторонним» интСрСсам студСнта (ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Ρƒ Ρ…ΠΎΠ±Π±ΠΈ ΠΈΠ»ΠΈ пСрспСктивныС Ρ†Π΅Π»ΠΈ), Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ курсы-Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ допустимыми. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт ряд Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… кусов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ для Β«Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° Π΄ΠΈΠΏΠ»ΠΎΠΌΒ». Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ курсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π΅ΠΌΡƒ Π² Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сроки (ΠΈΠ»ΠΈ досрочно) ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ ΠΏΡ€ΠΈ этом Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° с максимальной Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ участвуя Π² ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ процСссС. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ студСнт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ составлСния расписания ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… курсов, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ «классной доски».

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ «классная доска» ΠΈΠΌΠ΅Π΅Ρ‚ доступ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊ акадСмичСской характСристикС студСнта ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ курсам (с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΌ) Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° рСгистрации. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, «классная доска» ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΌΡƒ ΠΏΠ»Π°Π½Ρƒ студСнта, акадСмичСским трСбованиям для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого ΠΏΠ»Π°Π½Π°, Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ «готовности» студСнта ΠΏΠΎΡΠ΅Ρ‰Π°Ρ‚ΡŒ занятия, Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎ Π΅Π³ΠΎ цСлях ΠΈ прСдпочтСниях ΠΈ Ρ‚.Π΄. ВсС эти элСмСнты ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘++- ΠΈ CORBA-классов ΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ «классной доски». Для упрощСния нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ источника Π·Π½Π°Π½ΠΈΠΉ:

β€’Β ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚ ΠΏΠΎ ΠΎΠ±Ρ‰Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ курсам;

β€’Β ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚ ΠΏΠΎ основным курсам;

β€’Β ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚ ΠΏΠΎ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ курсам;

β€’Β ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚ ΠΏΠΎ Π½Π΅ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ курсам.

Π˜Ρ‚Π°ΠΊ, рассмотрим Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ CORBA-интСрфСйса «классной доски».

// Листинг 13.1. CORBA-объявлСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для нашСго // класса «классной доски»

typedef sequence<long> courses;

interface black_board{

//. . .

void suggestionsForMajor(in courses Major);

void suggestionsForMinor(in courses Minor);

void suggestionsForGeneral(in courses General);

void suggestionsForElectives(in courses Electives);

courses currentDegreePlan();

courses suggestedSchedule();

//. . .

};

Главная Ρ†Π΅Π»ΡŒ интСрфСйса black_board β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ доступ для чтСния ΠΈ записи со стороны источников Π·Π½Π°Π½ΠΈΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ «классной доски» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сСгмСнты для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ источника Π·Π½Π°Π½ΠΈΠΉ. [23] Π­Ρ‚ΠΎ позволяСт источникам Π·Π½Π°Π½ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ «классной доскС» посрСдством CRCW-стратСгии. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, нСсколько Ρ‚ΠΈΠΏΠΎΠ² источников Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ «классной доскС» ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ источники Π·Π½Π°Π½ΠΈΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ CREW-стратСгии. Π›ΡŽΠ±ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ функция-Ρ‡Π»Π΅Π½, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ источники Π·Π½Π°Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ к»классной доскС», Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² интСрфСйсном классС black_board. Класс courses ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с использованиСм Ρ‚ΠΈΠΏΠ° CORBA, ΠΈ поэтому Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΏΡ€ΠΈ взаимодСйствии ΠΌΠ΅ΠΆΠ΄Ρƒ источниками Π·Π½Π°Π½ΠΈΠΉ ΠΈ «классной доской». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ эти объявлСния класса black_board

courses Minor; courses Major;

Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для прСдставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π»ΠΈΠ±ΠΎ записываСтся Π½Π° Β«ΠΊΠ»Π°ΡΡΠ½ΡƒΡŽ доску», Π»ΠΈΠ±ΠΎ считываСтся с Π½Π΅Π΅. Π’ΠΈΠΏ courses β€” это синоним для CORBA-Ρ‚ΠΈΠΏΠ° sequence<long>, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ использования typedef-объявлСния. Π’ΠΈΠΏ sequence<long> Π² CORBA прСдставляСт собой Π²Π΅ΠΊΡ‚ΠΎΡ€ (массив) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° courses ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния массива элСмСнтов Ρ‚ΠΈΠΏΠ° long. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ long-элСмСнт ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния ΠΊΠΎΠ΄Π° курса. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ΄ курса прСдставляСт курс обучСния, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π² ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π‘++ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏΠ° sequence, Ρ‚ΠΎ объявлСниС sequence<long> прСобразуСтся Π² Π‘++-класс. Π­Ρ‚ΠΎΡ‚ класс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ имя, ΠΊΠ°ΠΊ sequence<long> typedef: courses. ΠŸΡ€ΠΎΡ†Π΅ΡΡ прСобразования ΠΈΠ· CORBA-Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ‚ΠΈΠΏΡ‹ Π‘++ происходит Π²ΠΎ врСмя IDL-компиляции ΠΏΡ€ΠΈ построСнии CORBA-прилоТСния. IDL-компилятор Π΄ΠΎΠ»ΠΆΠ΅Π½ пСрСвСсти объявлСниС sequence<long> Π² Π‘++-ΠΊΠΎΠ΄, Π‘++-класс courses Π΄ΠΎΠ»ΠΆΠ΅Π½ автоматичСски Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ пСрСчислСнныС Π½ΠΈΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

allocbuf() freebuf() get_buffer() length() operator[] release() replace() maximum ()

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с «классной доской» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ОбъявлСниС sequence<long> Β«Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΒ» для источников Π·Π½Π°Π½ΠΈΠΉ; ΠΎΠ½ΠΈ «видят» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ класс courses. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ CORBA ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ структуры (struct), классы, массивы ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, источники Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ с «классной доской» высокоорганизованными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ позволяСт программисту ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с «классной доской». ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прСдставлСния (Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ) являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ пониТСния уровня слоТности ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ просто ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ с «классной доски» ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π΅ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… прилоТСниях. НСт нСобходимости Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½ слоТными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

РСализация интСрфСйсного класса black_board

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² интСрфСйсном классС (см. листинг 13.1) Π½Π΅Ρ‚ объявлСний ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ВспомнитС, Ρ‡Ρ‚ΠΎ интСрфСйсный класс Π² CORBA-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ объявлСниСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ интСрфСйсном классС Π½Π΅ сущСствуСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. CORBA-классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ тСсно ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π‘++-рСализациями Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вносятся Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс (Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· этого интСрфСйсного класса). ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· интСрфСйсного класса black_board, прСдставлСн Π² листингС 13.2.

// Листинг 13.2. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ класса Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для

// интСрфСйсного класса black_board

#include Β«black_board.hΒ»

#include <set.h>

class blackboard : virtual public POA_black_board{

protected:

//. . .

set<long> SuggestionForMajor;

set<long> SuggestionForMinor;

set<long> SuggestionForGeneral;