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

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

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

CosNaming: :NamingContext_var NameContext; NameContext = CosNaming::NamingContext::_narrow

(NameService);

Π’ дСйствии 3 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ссылки NameService «суТаСтся», Ρ‚.Π΅. приводится ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ Ρ‰ Π΅ΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ получаСтс я ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Π» ссылка Π½Π° ΠΈ ΠΌ Π΅Π½Π½ΠΎΠΉ контСкст NameContext. Π‘ ΠΏΠΎ ΠΌ ΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° NameContext ΠΏΡ€ΠΎΠ³Ρ€Π° ΠΌΠΌ Π°-ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌ Π΅Ρ‚ΠΎΠ΄ resolve(). Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 24-27 ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π° ΠΌΠΌ Ρ‹8.3 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚Ρ я Π΄Π» я построСни я ΠΈ ΠΌ Π΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΠΌ Π΅Ρ‚ΠΎΠ»Ρƒ resolve ().

Name .length (1);

Name[Q].id = CORBA::string_dup (Β«InflectionΒ»); Name[C].kind = CORBA::string_dup (""); try {

ObjectReference = NameContext->resolve (Name);

}

ΠœΠ΅Ρ‚ΠΎΠ΄ resolve() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ссылку, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π·Π°Π΄Π°Π½ΠΎ имя Β«InflectionΒ». ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ имя связываСтся с ΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌ контСкстом Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅8.3 (строка28). Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ссылку, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π΅ Β«ΡΡƒΠ·ΠΈΡ‚ΡŒΒ», Π° Π·Π°Ρ‚Π΅ΠΌ с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ссылки Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²ΠΏΠΎΠ»Π½Π΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π΅Π½, ΠΈ поэтому ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π΅Π³ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ инкапсуляции ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² классС.

class object_reference{ //.. .

protected:

CORBA::Object_var NameService;

CosNaming::NamingContext_var NameContext;

CosNaming::Name Name;

CORBA::Object_var ObjectReference; public:

object_reference(char *Service,CORBA::ORB_var Orb);

CORBA::Object_var objectReference(void);

void objectName(char *FileName,CORBA::ORB_var Orb);

void objectName(char *OName); //. . . }

ΠŸΡ€ΠΎ Π³ Ρ€Π°ΠΌΠΌΠ° 8.4 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅ΠΈ ΠΌ Ρƒ Ρ‰ Сства просто Π³ ΠΎ каркасно Π³ ΠΎ ΠΊ Π» асса obj ect_reference, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌ Ρ‹ создали с этой Ρ†Π΅Π»ΡŒΡŽ.

Π’ ΠΏΡ€ΠΎ Π³ Ρ€Π° ΠΌΠΌ Π΅ 8.4 (строка 6) ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈ ΠΌ Π°Π½ΠΈΠ΅ Π½Π° созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Remote Ρ‚ΠΈΠΏΠ° object_reference. Π’ строкС 8 этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ссылки Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌ Π΅Ρ‚ΠΎΠ΄Π°:

Remote.obj ectReference();

ПослС этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Класс object_reference обСспСчиваСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… дСйствий ΠΈ Ρ‚Π΅ΠΌ самым ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-потрСбитСля. Ко Π½ структор класса object_reference (ΠΎ Π½ вызываСтся Π² строкС 6 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 8.4) Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

object_reference::object_reference(char *Service,

CORBA::ORB_var Orb)

{

NameService = Orb->resolve_initial_references (Service); NameContext = CosNaming::NamingContext::_narrow (

NameService);

}

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎ Π½ структор ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ссылку Π½Π° слуТбу ΠΈ ΠΌ Π΅Π½ ΠΈ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊ Π» асса NameContext. Π’ строкС 7 ΠΈ ΠΌ я это Π³ ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° пСрСдаСтся ΠΌ Π΅Ρ‚ΠΎΠ»Ρƒ objectName (). Π—Π°Ρ‚Π΅ΠΌ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ссылки, связанной с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ контСкст. ΠœΠ΅Ρ‚ΠΎΠ΄ objectName () Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с Π» Π΅Π΄ΡƒΡŽ Ρ‰ ΠΈ ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎ ΠΌ.

void object_reference::objectName(char *OName) {

Name.length (1);

Name[0].id = CORBA::string_dup (OName); Name[0].kind = CORBA::string_dup ("");

try {

ObjectReference = NameContext->resolve (Name);

} catch(...) {

cerr Β« " Problem resolving Name " Β« endl; throw;

}

}

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° objectName() ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ кссылкС Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ остаСтся лишь Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ objectReference() (это рСализуСтся Π² строкСв ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹8.4). Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ objectName () ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ выполняСт функция resolve (). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ 8.3 ΠΈ 8.4 ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ простоС распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ для доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ссылкам вмСсто строковой Ρ„ΠΎΡ€ΠΌΡ‹ IOR-ссылок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ слуТбу ΠΈΠΌΠ΅Π½. Π’ сСтях intranet ΠΈΠ»ΠΈ Internet ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π­Ρ‚ΠΈ ΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² качСствС ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… структурных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² контСкстС Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Web-слуТб.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°Ρ…

Помимо слуТбы ΠΈΠΌΠ΅Π½ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ контСкста, сСрвСр Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ 8.3 Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ пСрСносимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€. ВспомнитС, Ρ‡Ρ‚ΠΎ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ (см. рис. 8.6) дСйствуСт ΠΊΠ°ΠΊ своСго Ρ€ΠΎΠ΄Π° посрСдник ΠΌΠ΅ΠΆΠ΄Ρƒ ORB-Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ выполняСт Ρ€Π°Π±ΠΎΡ‚Ρƒ CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ этот ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Β«Π½Π°Π΅ΠΌΠ½Ρ‹ΠΌΒ» писатСлСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠ½ΠΈΡ‚Ρƒ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Β«ΠΏΠΎΠ΄ΡƒΡΡ‚Π°Π²ΡˆΠ΅ΠΉΒ» знамСнитости. Π‘ этой Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉ ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ Турналисты, Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΈ ΡŽΡ€ΠΈΡΡ‚Ρ‹. Π—Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΡΡ‚ΡŒ удостаиваСтся всСх почСстСй, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π° Π½Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Β«ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚Β» интСрфСйс с внСшним ΠΌΠΈΡ€ΠΎΠΌ ΠΈ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ «знамСнитости» Π² CORBA-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ) взаимодСйствуСт с интСрфСйсом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ выполняСт ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, играя Ρ€ΠΎΠ»ΡŒ Β«Π½Π°Π΅ΠΌΠ½ΠΎΠ³ΠΎΒ» писатСля. ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π‘++-интСрфСйс для связи склиСнтом. ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Java, Smalltalk, Fortran ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ обСспСчиваСт интСрфСйс с ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Он Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ этот интСрфСйс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ рСализация ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Π° для ORB-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. CORBA-рСализация Π΄ΠΎΠ»ΠΆΠ½Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ²: Basic Object Adapter (BOA) ΠΈ Portable Object Adapter (POA). Π‘Π½Π°Ρ‡Π°Π»Π° стандарт CORBA Π±Ρ‹Π» ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° использованиС Π’ΠžΠ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» достаточно Π³ΠΈΠ±ΠΊΠΈΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ РОА-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нашСл Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π’ΠžΠ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ срСдств, Π½ΠΎ Π΅Π³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая содСрТится Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ (Ρ‚Π°Π±Π». 8.4).

Π’Π°Π±Π»ΠΈΡ†Π° 8.4. НСкоторыС элСмСнты, содСрТащиСся Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ† ΠΈ ΠΉ

Имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Β Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π Π΅ΠΆΠΈΠΌ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ  РаздСляСмый, нСраздСляСмый, постоянный, Π±ΠΈΠ±-

Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° permethod

ΠŸΡƒΡ‚ΡŒ  Имя ΠΈΠ»ΠΈ ΠΏΡƒΡ‚ΡŒ выполняСмого Ρ„Π°ΠΉΠ»Π°

Бписок ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°

Π’ΠžΠ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° изготовитСля (сСрвСра), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ записи ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠ°ΠΊ Ρ€Π΅ΠΆΠΈΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡƒΡ‚ΡŒ. И хотя Π² рядС Π±ΠΎΠ»Π΅Π΅ простых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² этой Π³Π»Π°Π²Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π’ΠžΠ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π»ΡƒΠ΅ΠΌ для ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ CORBA-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ РОА-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€. РОА-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

β€’Β ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°;

β€’Β Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹;

β€’Β Π½Π΅ я Π²Π½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽ Ρ‰ ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²;

β€’Β ΠΏΠ΅Ρ€ΠΌΠ°Π½Π΅Π½Ρ‚Π½Ρ‹Π΅ (постоянныС) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ сСрвСра.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ РОА-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° являСтся взаимодСйствиС ΡΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. CORBA-спСцификация опрСдСляСт ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ языка программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ запросы ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² контСкстС процСсса сСрвСра. Запросы Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ссылок ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ORB-Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π² качСствС ΡΠ²ΡΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π²Π΅Π½Π°, ΠΈ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ΠΎ врСмя своСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связан с нСсколькими ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄ΠΈΠ½ POA-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€. Но Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (рис. 8.10).