Кіріспе

Қызметке бағдарланған архитектурадағы байланыс жүйесі

Кәсіпорындық қызметтік шина (ESB) қызметке бағдарланған архитектурада (SOA) өзара әрекеттесетін бағдарламалық қолданбалар арасындағы байланыс жүйесін іске асырады. Бұл – таратылған есептеу үшін бағдарламалық архитектура, және кез келген қолданба сервер немесе клиент рөлінде әрекет ете алатын, клиент-сервер моделінің ерекше түрі. ESB қолданбалар арасындағы жоғары деңгейлі протоколдық байланыс тұрғысынан икемділік пен жылдам әрекет етуге мүмкіндік береді. Оның негізгі мақсаты – әртүрлі және күрделі қызметтер кеңістігіндегі корпоративтік қолданбаларды интеграциялау (EAI).

Сәулет

Кәсіпорындық қызметтік шина тұжырымдамасы, жоғары өнімді компьютерлік операциялық жүйелердің модулдік және параллель дизайнымен үйлесімде, компьютерлік аппараттық архитектурадағы шина тұжырымдамасына ұқсас. Бұл архитектураны дамытуға түрткі болған нәрсе – желіде тәуелсіз түрде орнатылып, жұмыс істейтін, әртүрлі және шашыраңқы болатын бос байланысты бағдарламалық компоненттерді (қызметтер деп аталады) жүзеге асыруды сипаттау үшін стандартты, құрылымды және жалпы мақсатты тұжырымдаманы табу болды. ESB – сервистік бағдарланған архитектура үшін кең таралған іске асыру үлгісі, соның ішінде Әлемдік желінің (World Wide Web) ішкі желілік дизайнын да қамтиды. Кәсіпорындық қызметтік шина тұжырымдамалары мен іске асырулары үшін жаһандық стандарттар жоқ. Хабарға бағдарланған делдалдық бағдарламалық жасақтаманың көптеген жеткізушілері сервистік бағдарланған архитектура үшін де-факто стандарт ретінде кәсіпорындық қызметтік шина тұжырымдамасын қабылдады. ESB-нің іске асырылуы оқиғаларға негізделген және стандарттарға сүйенген хабарға бағдарланған делдалдық бағдарламалық жасақтаманы, хабар кезектерімен бірге технологиялық платформа ретінде пайдаланады. Дегенмен, кейбір бағдарламалық жасақтама өндірушілері қолданыстағы делдалдық және байланыс шешімдерін автобус тұжырымдамасының маңызды аспектісін қабылдамай, ESB ретінде қайта атап жатады.

ESB бағдарламалық жасақтама ретінде

ESB бизнес-қолданбалар арасында жұмыс істейтін бағдарламалық жасақтамада іске асырылады және олардың өзара байланысын қамтамасыз етеді. Идеалды жағдайда, ESB автобустағы қосымшалармен тікелей байланыстың барлығын алмастыруға тиіс, сонда барлық байланыс ESB арқылы жүзеге асырылады. Осы мақсатқа жету үшін ESB өзінің құрамындағы қолданбалар ұсынатын мүмкіндіктерді мағыналы түрде қамтуы керек. Бұл әдетте кәсіпорындық хабарламалар моделін пайдалану арқылы жүзеге асырылады. Хабарламалар моделі ESB жіберіп және қабылдайтын хабарламалардың стандартты жиынтығын анықтайды. ESB хабарлама алғанда, оны тиісті қолданбаға бағыттайды. Көбінесе, бұл қолданба сол хабарламалар моделімен дамылмағандықтан, ESB хабарламаны қолданба түсіне алатын форматқа түрлендіруі қажет. Бағдарламалық адаптер физикалық адаптер сияқты, осы түрлендірулерді жүзеге асыру міндетін орындайды. ESB кәсіпорындық хабарламалар моделін дәл құрастыруға және қолданбалар ұсынатын мүмкіндіктерді дұрыс жобалауға тәуелді. Егер хабарламалар моделі қолданбаның мүмкіндіктерін толық қамтымаса, онда сол мүмкіндікті қалайтын басқа қолданбалар автобусты айналып өтуге және үйлесімсіз қолданбаларды тікелей шақыруға мәжбүр болуы мүмкін. Бұл ESB моделінің қағидаларын бұзады және осы архитектураны пайдаланудың көптеген артықшылықтарын жоққа шығарады. ESB-нің артықшылығы – оның платформаға тәуелді болмауы және кез келген жағдайда кез келген нәрсемен интеграциялана алуы. Қолданбаның өмірлік циклын басқаруды қамтамасыз ететін жеткізушілердің SOA-ны қабылдағанда интеграциялық өнімдерінде ESB мүмкіндіктерін толыққанды қолдануы маңызды. Сондықтан EAI жеткізушілері үшін қиындықтар мен мүмкіндіктер – төмен құнмен, оңай конфигурацияланатын, интуитивті, пайдаланушыға ыңғайлы және клиенттер таңдайтын кез келген құралдармен үйлесімді интеграциялық шешім ұсыну.

Сипаттамалары

Санаты Функциялар Синхронды және асинхронды тасымалдау протоколдарын шақыру, қызметтерді іздеу және байланыстыру Маршрутизация адрестеу, статикалық/детерминистік маршрутизация, мазмұнға негізделген маршрутизация, ережелерге негізделген маршрутизация, саясатқа негізделген маршрутизация Медиация адаптерлер, протокол түрлендіру, қызметтерді іздеу және байланыстыру Хабарламаларды өңдеу, хабарламаларды түрлендіру және жақсарту Процесс хореографиясы¹ күрделі бизнес-процестерді іске асыру Қызмет оркестрациясы² бірнеше іске асыру қызметтерін үйлестіру, бірыңғай, жиынтық қызмет ретінде ұсынылу Оқиғаларды өңдеу оқиғаларды түсіндіру, корреляция, үлгілерді анықтау Қызмет сапасы қауіпсіздік (шифрлау және қол қою), сенімді жеткізу, транзакцияларды басқару Басқару мониторинг, аудит, журналдау, есептеу, әкімшілік консолі, BAM (BAM басқару мүмкіндігі емес, яғни ESB белгілі бір шекке реакция жазбайды. Бұл соңғы пайдаланушыларға ұсынылатын бизнес-қызметтер мүмкіндігі) Агностицизм операциялық жүйелер мен бағдарламалау тілдеріне қатысты агностицизм; мысалы, Java және .NET қолданбаларының өзара әрекеттесуін қамтамасыз ету Протокол түрлендіру қазіргі коммуникациялық протоколдарды толық қолдау, қызмет стандарттары Хат алмасу үлгілері әртүрлі ХМҮ-лерді (хат алмасу үлгілерін) қолдау (мысалы: синхронды сұрау/жауап, асинхронды сұрау/жауап, жіберу және ұмыту, жариялау/жазылу) Адаптерлер Ескі жүйелермен интеграцияны қолдау үшін адаптерлер, мүмкін JCA сияқты стандарттарға негізделген Қауіпсіздік ESB-ны пайдалануды рұқсат ету, аутентификациялау және аудиттеу үшін стандартталған қауіпсіздік моделі Түрлендіру деректер форматтары мен мәндерін түрлендіруді жеңілдету, соның ішінде түрлендіру қызметтерін (көбінесе XSLT немесе XQuery арқылы) жіберуші және қабылдаушы қолданба форматтары арасында Валидация схемаларға сәйкес жіберу және қабылдау хабарламаларын тексеру, бизнес-ережелерді біркелкі қолдану мүмкіндігі Байыту басқа көздерден хабарламаларды толықтыру Бөлу және біріктіру бірнеше хабарламаларды бөлу және біріктіру, сондай-ақ қателерді өңдеу Абстракция көп деңгейде біртұтас абстракцияны ұсыну Шартты маршрутизация және түрлендіру орталық ережелер жұмыс індірмейтін (орталық ережелер механизмі қажет емес) саясатқа негізделген маршрутизация және түрлендіру Қосымша қызметтер жиі қолданылатын функционалдықты ортақ қызметтер ретінде ұсыну, контекстке байланысты

¹ Кейбір мамандар процесс хореографиясын ESB функциясы деп санамайды. Мысалы, М. Ричардсты қараңыз. ² Процесс хореографиясы көптеген бизнес-қызметтерін үйлестіруді қажет ететін күрделі бизнес-процестерді іске асыруды қолдайды (әдетте BPEL пайдаланылады), ал қызмет оркестрациясы жеке сұраныстарды өңдеу үшін бірнеше іске асыру қызметтерін үйлестіруге мүмкіндік береді (ең қолайлысы жиынтық қызмет ретінде ұсынылады). Бұл шешімдер көбінесе ESB-ның төменгі деңгейдегі функцияларына, мысалы, қосылу, маршрутизация және түрлендіруге назар аударады және оркестрацияны іске асыру үшін кодтау немесе скрипттеуді қажет етеді. Жобалық немесе тактикалық деңгейде жұмыс істейтін әзірлеушілер көбінесе жеңіл сервистік автобус технологияларын пайдаланады, бірақ мұндай бастамалар мен кәсіпорын архитектурасы арасында шиеленіс туындауы мүмкін, оның мақсаты бірнеше жобаларда инфрақұрылымды оңтайландыру. Егер хабарлама брокері, ESB бағдарламалық жасақтамасы, хабарламаны бір форматтан екінші форматқа аударса, онда кез келген аударма сияқты, хабарламаның семантикасы туралы мәселе туындайды. Мысалы, жазбаны JSON-нан XML-ге аударуға болады, бірақ бірдей өрістер жиынтығы әртүрлі қолданбалар тарапынан әртүрлі түсіндірілуі мүмкін, әсіресе ESB-ге қосылған қолданбамен кең тәжірибесі бар әзірлеушілерге ғана белгілі ерекше жағдайларда. Белгілі ерекше жағдайлар үшін ESB-ге қосылған әрбір қолданбамен салыстыру қажеттігінен сынақтардың саны экспоненциалды түрде өседі.