CORBA (Common Object Request Broker Architecture) технологиясы.

CORBA (Common Object Request Broker Architecture) - бұл стандарт, объектті типтің аралық программалық қамтылуына (АПҚ) (middleware) арналған спецификациялар жиыны. АПҚ мақсаты деректермен алмасу үшін программалық қосымшаларда біріктіруге жүктелген. АПҚ эволюциясы – бұл нақты қосымшалар арасында ақпаратпен программалардан алмасу, деректердің импорт – экспорт құрылғылары арқылы және кейбір қосымшалардың арасында көпірлерді ұйымдастыру арқылы, SQL, RPC (Remote Procedure Call) арқылы, транзакцияларды өңдеудің TP мониторлары (Transaction Proceesing) арқылы, Groupware -түрлі құрылымсыз деректерді басқару (мәтіндер, факстар, электрондық пошта хаттары, күнтізбелер және т.б.) және MOM - Message-Oriented Middleware (клиент пен сервер арасындағы хабарламалармен синхронды алмасу), таратылған компьютерлік жүйелерді құру үшін. Бұл жүйелердің элементтері бір локальді машинада сияқты желі бойынша да бір бірімен өзара әсерлесе алады. CORBA біртұтас ақпараттық жүйені ұйымдастыруға мүмкіндік береді, оның элементтері бір-бірімен араласа алады, олардың нақты жүзеге асуына, таратылған жүйедегі «тіркелуіне» платформаға және олардың жүзеге асырылу түрлеріне тәуелсіз.

CORBA үшін негіз салушы құжаттар екі "The Common Object Request Broker: Architecture and Specification" және "CORBAservices: Common Object Services Specification" болып табылады.

Біріншісі CORBA-ның барлық негіздерін сипаттайды, сонымен қатар CORBA негізін құрайтын нақты көптеген заттарды, соның ішінде:

· IDL интерфейстерді сипаттау тілі.

· Dynamic Invocation Interface (DII) клиентке компиляция сатысында оған таныс емес және рұқсат етілмеген объектілерге қатынауға мүмкіндік береді.

· Dynamic Skeleton Interface (DSI) сервер жағындағы клиенттерден келетін сұраныстарды динамикалық түрде қайта бағыттауға мүмкіндік береді - ORB дан нақты объектіге. Динамикалық DII және DSI ерекше қажеттіліксіз қолдануға ұсынылмайды, себебі олар статикалықтардан анағұрлым баяу.

· Portable Object Adaptor (POA). Берілген спецификацияның мақсаты түрлі өңдірушілердің ORB-лері арасында оңай ауысатын қосымшаларды құру.

· Interface Repository - IDL мәтіндерімен берілген объектілер спецификацияларының қоймасы.

· В CORBA 2.0-да үлкен назар интеграция сұрақтарына аударылған. General Inter-ORB Protocol (GIOP) спецификациясы CORBA-ның жойылған шақыруының жалпы принциптерін береді, деректерді берудің форматын (CDR) және қызметтік хабарламалар форматын сипаттайды. Жиі айтылатын Internet Inter-ORB Protocol (IIOP) - TCP/IP желілері үшін GIOP мамандануы болып табылады. GIOP-тың басқа жеке жағдайы және Environment Specific Inter-ORB Protocol жеке жағдайы DCE CIOP «орайтын» DCE/RPC болып табылады.

· Сонымен қатар құжат IDL-дан бастапқы мәтіндерді C, C++, Smalltalk, Cobol және Java программалау тілдері үшін қалай генерирлеу керектігін сипаттайды.

· және CORBA-ны COM және OLE Automation бірге қалай интегрирлеуге.

· Interceptors қосымша агенттерді шақырушы мен шақырылатынның арасында енгізу стандартын сипаттайды.

"CORBAservices" құжат сервистердің (интерфейстердің) базалық жиының атап өтеді, оларды қолданбалы сервистерді баптау үшін иеленген дұрыс. Берілген құжатта сипатталған 15 сервисті білу өте пайдалы, себебі абстрактты «CORBA қолдауы» артында белгілері бір өндірушілермен мүлдем әртүрлі заттар жасырылуы мүмкін. Сервистер бұл әртүрлі дәрежелі маңыздылықтар, олар мыналар:

1. Naming – атулардың базалық қызметі. Желіде қатынауға болатын сервистердің иерархилық түрдегі каталогы. Мұнда ұқыпты болу керек - CORBA-ның кейбір жабдықтаушылары берілген қызметті жүзеге асыру үшін DCE/CDS каталогын қолданады. Егізінен стандарт Naming Service-ті жүзеге асыру үшін кез-келген каталогтар жүйесін қолдануға рұқсат береді.

2. Event Service асинхронды әсерлердің, соның ішінде «белсенді» сервердің мүмкіндіктерін сипаттайды.

3. Persistent Object Service - қандай түрде объект күйі сақталатындығын, ал кейін қайта қалпына келтірілетіндігін сипаттайды.

4. Life Cycle Service. Объект өзінің өмір сүру циклінің ішінде компьютерлер ішінде ауыса алатынымен тудырылған сәттерді ескереді.

5. Concurrency Control Service. Бәсекелестік режимінде объектіге қатынауды баптауды спецификациялайды. Механизм - блоктардың түрлі типтері.

6. Externalization Service объект күйін деректер ағыны түрінде беру әдісін сипаттайды. Бұл файлға сақталған кезде немесе жады аймақтары арасында көшу кезінде қолданылады.

7. Relationship Service. Түрі және Ченмоделінің ER тәріздес классикалық моделі бойынша объектілер арасындағы қатынастардың тікелей берілу мүмкіндігі.

8. Transaction Service. Өте маңызды сервис. Оның бар болуы және жоқ болуы CORBA-ның жүзеге асырылуында транзакциялардың объектілі-бағытталған мониторы мен сұраныстардың жай объектті брокер арасындағы шек болып табылады. Object Transaction Service транзакциялардың демаркациясына, көптеген объектілердің координациясына жауап береді, олар транзакцияға енгізілуі мүмкін, соның ішінде желі түйіндері бойынша таратылған объектілерді.

9. Query Service. Объектілер коллекцияларымен жұмыс стандартпен қарастырылған! Сұраныстардың қандай тілі қолданылатыны көрсетілмеген, бірақ SQL-дің объекті кеңейтілулері туралы айтылған.

10. Licensing Service - заңды түрде басқару.

11. Property Service - объект атрибуттары болып табылмайтын қасиеттер объектілерімен ассоцирлеу мүмкіндігі.

12. Time Service - уақыт қызметі.

13. Security Service - сервистің маңызды түрі.

14. Trading Object Service – атаулар қызметінің өте қызық кеңеймесі. Naming Service бойынша сервистің нақты атын қолданудың орнына клиент өзіне ыңғайлы объект типін белгілейді, ал trader өзі сәйкес келетінін табады.

15. Object Collection. Объектілер коллекцияларына базалық операцияларды көрсетеді.

Жоғарыда айтылған құжаттардан басқа тағы "Common Facilities" бар, сонымен қатар қағаздардың түрлі дәрежелі маңыздылығы бар үлкен саны. Ең негізгілердің арасында CORBA немесе CORBA-үйлесімді серверлер өндірушілерімен барлығы дерлік жүзеге асырылмайтындығы жеткілікті.

Объектті Сұраныстар Брокері (Object Request Broker).

Нақыт архитектураны анықтағанда Объектті Сұраныстар Брокерін бір компонет түрінде болуы міндетті емес, бірақ әрбір жүзеге асыру операциялардың үш категориясы жүзеге асыруы керек:

· ORB-дің барлық жүзеге асырулары үшін бірдей операциялар.

· Нақты объектті тип үшін спецификалы операциялар.

· Объектілерлің жүзеге асырылуының бөлек түрлері үшін спецификалы операциялар.

ORB-дің түрлі жүзеге асырулары жүзеге асырудың әртүрлі түрлерін қолдауы мүмкін, ал объектілердің түрлі адаптерлері клиент пен жүзеге асырулар үшін түрлі сервистер жиынын қамтамасыз етуі мүмкін.

Объектті Сұраныстар Брокерінің ядросы объектілерді еркінше қолдану және сұраныстарды орындау үшін негізгі механизмдермен қамтамасыз етеді. CORBA спецификациясы объектілердің түрлі механизмдерін қолдану үшін арналады, сондықтан ядро құрылымы анықталмайды. Оның орнына интерфейсті функциялар жиынын береді, олар әрбір ORB жүзеге асырылуында болу керек және сол арқылы Объектті Сұраныстардың Брокерлерінің түрлі жүзеге асырулары арасындағы айырмашылықтарды жасырады.

Объектілер жүйесі клиентті сервистер жиынымен қамтамасыз етіледі. Клиент белгілі бір сервисті сұраныс бере алады. Объект - бұл клиент сұраныс беретін бір немесе одан да көп сервистермен қамтитын белігілі бір зат.

Нақты ORB-ды жүзеге асырудың көптеген әдістері рұқсат етілген. Нақты ORB бірнеше әдістермен бір мезгілде жүзеге асырылатынын ескерген жөн.

Клиенттік және серверлік қосымшаларға қосылатын ORB.

Егер коммуникациялардың чәйкес механизмі бар болса, онда ORB-дің клиент жағынан сияқты объектті жүзеге асыру жағынан да бағыңынқы бағдарламалар жиыны түрінде жүзеге асрылуы мүмкін. Әдістердің шақырулары процестердің өзара әсерлесу құрылғыларымен жұмысқа трансляциялануы мүмкін (Inter Process Communication - IPC).

Сервер түрінде орындалған ORB.

Орталықтандырылған жиын мен мүмкін ақпаратпен басқаруды қамтамасыз ету мақсатында ORB бөлек қосымша түрінде жүзеге асырылуы мүмкін. Өзара әсерлесетін қосымшалар ORB-мен IPC қалыпты механизмдер көмегімен байланысты орнатады.

Жүйе бөлігі ретіндегі ORB.

Сенімділікті жоғарылату үшін, деректер қорғанысын және жоғары өнімділікке жету үшін ORB операционды жүйенің бөлігі ретінде жүзеге асырылуы мүмкін. Бұл кезде объектке жасалатын сілтемелер тұрақты болып жасалуы мүмкін, сөйтіп әрбір сұранысты өңдеуге арналған әрбір сұранысқа қажет уақытты азайта отырып ORB-ді операционды жүйенің бөлігі ретінде жүзеге асырған кезде кодтауды өтеу және деректердің декодтауы сияқты оңтайландырудың барлық мүмкін мәндері мүмкін болады, егер клиентпен сервер бір машинада орналасатын болса.

Объектілердің жүзеге асырылуы.

Объектінің жүзеге асырылуы объект түсінігін қамтамасыз етеді, әдетте объекттің нақты данасы үшін деректерді және объект әдістерін орындау үшін кодты бере отырып. Жүзеге асыру жиі түрде басқа объектілерді немесе объектілер жұмысын қамтамасыз ету үшін көмекші программаларды қолданады. Кейбір жағдайларда объектке операция орындау объектке әсерін тигізбейтін кейбір кері әрекеттерді тудырады.

Нақты ORB объектті жүзеге асырудың кең жиының қолдайды: бөлек серверлер, кітапханалар, деректер қорларын басқарудың объектті-бағытталған жүйелері және т.б. Қосымша объект Адаптерлерін қолдану теориялық түрде кез-келген объекттің жүзеге асырылуын қолдайды.

Объектілердің адаптерлері.

Объектілердің адаптерлері - бұл объектінің нақты жүзеге асырылу сервисін қамтамасыз етуге арналған алғашқы жол. Объектілердің бірнеше адаптерлері бар екендігі тұжырымдалады, олардың әрбіреуі белгілі бір түрдің объектілеріне қатынауды қамтамасыз етеді. Объект адаптерлері арқылы ORB – мен қамтылатын сервистерге мыналар кіреді: объектілерге жасалатын сілтемелер генерациясы мен интерпретациясы, әдістерді шақыру, объекттерді жүзеге асыру активациясы мен деактивациясы, сонымен қатар нақты жүзеге асырулардың көрінісі.

Әрбір қоймадағы ақпарат ORB жүзеге асыруымен қамтылатын әдістер көмегімен кез-келген уақытта еркін өзгертіледі. Бірақ жұмыс кезінде жасалған байқаусыз өзгеріс әрбір қоймадағы ақпараттың бүтіндігінің бұзылуына және ORB-дің кейінгі жұмысын мүмкінсіз ету мүмкін.

Жүзеге асырылу қаңқасы.

Қолданылатын объект адаптерінің нақты көрінісі үшін әр объекттің әдісін шақырудың өз тізбегі анықталынады. Бұл интерфейс жалпы жағдайда кері шақырулардың интефейсі болып табылады. Қажет болғанда ORB қажет процедураларды шақырады.

22.4 Сұраныстардың динамикалық өңделуі.

Интерфейс келетін сұраныстардың динамикалық өңделуі үшін де рұқсат етілген. Бұл жағдайда объектіні жүзеге асырудың берілген интерфейсімен өзара әсерлеседі.

Сұраныстардың динамикалық өңделуінің бағыныңқы программалары динамикалық шақырулар интерфейстер көмегімен сияқты тұйықтауыш-процедуралар көмегімен де шақырылуы мүмкін, әрбір әдіс бірдей нәтиже береді.

Сұраныстар.

Клиент сервистерді сұраныстарды инициирлеу арқылы сұрайды. Сұраныс - бұл оқиға, яғни нақты кезде орындалатын әрекет. Сұраныспен ноль немесе одан да нақты шақыру параметрлерінің сервисі және сұраныстың міндетті емес контексті сұралатын объект, операциялардан тұратын ақпарат байланысты. Сұраныс формасы - бұл саны еркін түрде орындалатын іс-әрекет. Сұраныс формасы нақты программалау тіліне арналған көрініспен анықталады. Сұраныстың альтернативті формасы Динамикалық Шақырулар Интерфейсін қолдану болып табылады, ал сұранысты құруға аргументтерді қосуға және сұранысты орындауға мүмкіндік береді. Мән сұраныстың рұқсат етілген параметрі болып табылады. Объектті анықтайтын мән объекттің нақты данасымен байланысқан объектке сілтеме деп аталады. Сұранысты орындау сәйкес сервистің орындалуын шақырады. Сұраныс аяқталған соң клиентке сұраныс нәтижесі қайтарылады (егер ол бар болса). Сұраныс дұрыс аяқталмаған кезде клиентке ерекшелік қайтарылады. Ерекшелік құрамына спецификациялық параметрлер енуі мүмкін, берілген ерекшеліктер типі еркін спецификалы

Параметрлер.

Параметр беру режимімен және өз типімен сипатталады. Параметр мәні клиентпен серверге (in), серверден клиентке (out) немесе екі бағытта да (inout) берілу керек немесе жоқ екендігін анықтайды.

· Қайтарылтан мән.

· Егер қайтарылатын мәне болса, онда оны out типінің параметрі ретінде қарастырамыз.

· Ерекшеліктер.

· Ерекшелік операция сәтті орындалмағандығын дәлелдейді. Ерекшеліктің құрамына қосымша ақпарат енеді, нақты ерекшелік үшін спецификалы.

· Контекст.

· Сұраныс контексті ақпарат операциясы үшін спецификалы қосымшаны беруді қамтамысз етеді, ал сұраныстың орындалуына әсер етуі мүмкін.

Сұраныстың параметрлері олардың позицияларымен анықталынады. Параметрлер кіріс, шығыс болуы мүмкін, кез-келген шығыс параметрлер сияқты. Ерекшелік туындағанда барлық шығыс параметрлер мәндері анықталмаған болады.