НОУ ІНТУІТ, Лекція, Основні платформи та технології
Технологія SOAP
За функціональними можливостями технологіяSOAPдуже подібна з першими версіямиCORBA.Однак у неї є одна безперечна перевага: простота. На рівні передачі в глобальних мережах, між підприємствами, де великої складності взаємодія не передбачається - це оптимальне рішення щодо час розробки/функциональность. Існують численні мости(CORBA/SOAP, C++/SOAP, Java/SOAP).
Технології COM/DCOM та .NET
COM (Component Object Model)- це стандартMicrosoft, що визначає структуру та взаємодію компонентів програмного забезпечення в сучасних операційних системахMS Windows.Архітектура сучасних Windows -додатків заснована наCOM:світ цих додатків - це світ COM-компонент. КомпонентиCOMмають унікальність і надають іншим компонентамCOMстандартним чином описані інтерфейси, що дозволяють отримати доступ до методів цих компонентів.COMвизначає механізм зв'язку тільки між локальними (тобто перебувають у тому комп'ютері) компонентами.
DCOM (Distributed Component Object Model)- це розподілена версія COM, що забезпечує механізм зв'язку між віддаленим COM-компонентами (тобто, що знаходяться на різних комп'ютерах, але в середовищіMS Windows). ФактичноDCOMцеCOMз доданим до останнього механізмомRPC (remote procedure call).Подібну функціональність взаємодії віддалених Windows -додатків можна отримати з використанням активно розвивається останнім часом фірмоюMicrosoftтехнології.NET.Важливо підкреслити, що згадані у цьому розділі технології відносяться виключно до операційних системMicrosoft.
Технологія Enterprise Java Beans
АрхітектураEJB- це компонентна архітектура, призначена для розробки та розгортання розподілених бізнес-додатків, що базуються на компонентах. Програми, створені за допомогою архітектуриEJB, є масштабованими, орієнтованими на транзакції та безпечними при роботі в розрахованому на багато користувачів режимі. Ці програми, одного разу написані, можуть бути розгорнуті на будь-якій серверній платформі, що підтримує специфікаціюEJB.Це визначення можна трохи спростити за допомогою описаних раніше понять.Enterprise Java Beans- це стандартна модель серверних компонентів для моніторів компонентних транзакцій.EnterpriseBean -компоненти єJava (J2EE)об'єктами, що реалізують технологіюEnterprise Java Beans (EJB).Кожен такий компонент виконується під керуванням сервера додатків, який повинен відповідати про специфікаціїEJB-контейнера, тобто. підтримувати відповіднийAPI-EJB Container API(зазвичай сервер додатків у такому разі називають EJB-контейнером). EJB-контейнер надає компонентам(Enterprise Beans)сервіси системного рівня (наприклад, багатопоточність, механізм транзакцій), залишаючись при цьому прозорим для розробника додатків. Ці системні сервіси дозволяють розробнику швидко створювати та розгортатиEnterpriseBean -компоненти: контейнер як би "закриває" від розробникаEJBвсі складнощі системного характеру (наприклад, вже згадані багатопоточність або механізм транзакцій), дозволяючи йому зосередитися виключно на бізнес-логіці програми.EnterpriseBean -компонент - це об'єкт необхідного класу, описаного мовою програмуванняJava,розташований на сторонісервера додатків та виконує частину бізнес-логіки додатка (цим займається власне код компонента, що здійснює завдання додатку). Наприклад, у додатку контролю інвентарю,EnterpriseBean -компоненти можуть реалізовувати бізнес-логіку програми у методахcheckInventoryLevel()таorderProduct(). Викликаючи ці методи, віддалені клієнти можуть отримувати доступ до інвентарних послуг програми.
Існує кілька причин, через які використанняEnterpriseBean-компонентів спрощує розробку великих розподілених корпоративних додатків.
Слід задуматися про використанняEnterpriseBean -компонент, якщо ваша програма відповідає хоча б якимось вимогам з наведених нижче.
- Додаток має бути масштабованим. Щоб підлаштуватись до зростаючої кількості користувачів, розробникам, можливо, доведеться розподілити компоненти програми між кількома серверами. Незалежно від компонування компонентів на серверах, їх розташування залишається прозорим для клієнтів.
- Потрібен механізм транзакції для забезпечення цілісності даних.EnterpriseBean -компоненти підтримують транзакції - механізм, що управляє одночасним доступом до об'єктів, що розділяються.
- У додатку буде багато клієнтів. Потрібно лише кілька рядків коду в клієнтських програмах для знаходженняEnterpriseBean-компонент. Клієнтські програми можуть бути невеликими, численними і різними.
На сьогоднішній день корпорацієюSun Microsystemsбуло випущено п'ять специфікаційEJB-EJB 1.0, EJB 1.1, EJB 2.0, EJB 2.1 та EJB 3.0. У специфікаціїEJB 1.0були вперше описані сеансові(session bean)та об'єктні(entity bean)компоненти. СпецифікаціяEJB 1.1розширює специфікаціюEJB 1.0.ВEJB 2.0були додані компоненти, керовані асинхронними повідомленнямиJMS (Java Messaging Service),а такожEJB Query Language (EQL)- мова запитів. УEJB 2.1був модифікований і покращений EQL , додана можливість виклику об'єктних компонент черезHTTP/SOAP>,але з інших протоколам. Остання на даний момент версіяEJB-EJB 3.0.В ній модифіковані механізми опису компонентів (замість XML-файлу - метадані), а сам процес розробки переведений наJAVA 5.0.
Технологія JINI
Jiniє технологією створення розподілених систем, орієнтовану виключно на використанняJava.В даний моментJiniє торговою маркоюSun Microsystems.
ТехнологіяJiniскладається з трьох основних компонентів:
- Інфраструктура.Включає розподілену систему захисту, яка інтегрована вRMI (Remote Method Invocation), що є механізмом для знаходження, активації та захоплення об'єктівсервісів.Інфраструктура складається з об'єктів, які використовують протоколи передачі інформації під час транзакцій. На рівні транзакцій відбуваються запити та передача інформації. Для пошуку об'єктів і передачі між ними використовується менеджер транзакцій(transaction manager).Обязанности менеджера транзакцій цим обмежуються. Крім цього, він зобов'язаний координувати роботу системи під час виконання запитів та передавати знайдену за цими запитами інформацію;
- Модель програмуваннявикористовує мову програмуванняJavaта компонентиJavaBeansдля організації інтерфейсів транзакцій та написання додатків, які використовують модель розподілених обчислень;
- Сервісимають певний уніфікований інтерфейс та набір методів, за допомогою яких можливе спілкування з ними. Реалізація сервісів не вимагає використання програмної моделіJini, проте ця модель необхідна при взаємодії сервісів між собою. Причому сервіси в цьому випадку чимось подібні до процесів уUnix.Кожен сервіс може використовувати інші сервіси для виконання своїх завдань, а також породжувати нові сервіси, що спеціалізуються на вирішенні певних питань.
На відміну відEJB,технологіяJINIне вимагає наявності спеціальних серверів додатків. Крім того, якщо модель використанняEJBпринципово дво- або триланка (існує клієнт, що запитує методиEJB, що працює під керуванням контейнера, і, як правило, сервер, наприклад, СУБД, до якого звертається в процесі роботиEJB, причому ієрархія запитів у цій схемі суворо задана), то в моделіJINIвсі сервіси абсолютно рівноправні між собою (кожен з них може бути як сервером, так і клієнтом до будь-якого). Така "рівноправна" архітектура взаємозв'язків називаєтьсяодноранговою (peer-to-peer). сервіс друку), які спілкуються між собою за стандартизованими правилами, мають стандартизовані імена, загальну модель безпеки тощо. Такий універсум сервісів-"інтелектуальних пристроїв"JINIприйнято називатиJINI Federation."Інтелектуальні пристрої" можуть самі додавати себе в цей універсум (наприклад, сервіс друку при включенні принтера) або, навпаки, виходитиз нього (сервіс друку при вимкненні принтера), без необхідності будь-якого "зовнішнього" впливу (диспетчера, оператора тощо)
Пошук сервісу, який може виконати певне завдання, відбувається приблизно за таким сценарієм.
- Об'єкт клієнта за допомогою провайдера сервісів(Service Provider) -об'єкта, що "спеціалізується" на пошуку об'єктів-сервісів, знаходить необхідний сервіс.
- При знаходженні необхідного об'єкта клієнт досліджує його, виходячи з параметрів відповідного запиту. Це вивчення знайденого сервісу відбувається за допомогою перевірки його якостей.
- Після цього відповідний сервіс копіюєтьсяна локальний диск комп'ютера клієнта.Наступні дії з ним відбуваються, як з локальним об'єктом, за допомогою виклику його методів, що певною мірою розвантажує трафік.
ТехнологіяJiniрозроблялася з метою створення системи, яка б вимагала мало уваги при обслуговуванні, встигала за постійною зміною і нарощуванням системи і забезпечувала постійну доступність сервісів за допомогою Інтернету. Безпека системи та конфіденційність інформації, що передається в мережі, досягається за рахунок розподіленої системи безпеки. Нарощування систем можливе за рахунок додавання нових, успадкування та зміни старих сервісів, доступних за допомогою інтернет. Постійна доступність стає можливою за рахунок розосередження системи, в якій можна змінювати програми безперервно, так що сервіс буде доступний з Інтернету постійно.