Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Q_DEK14_spets1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.8 Mб
Скачать

6. Огляд технологій j2ee. Технологія Java rmi.

Java Platform, Enterprise Edition, скорочено Java EE (до версії 5.0 — Java 2 Enterprise Edition або J2EE) — обчислювальна корпоративна платформа Java. Платформа надає API та виконавче середовище для розробки і виконання корпоративного програмного забезпечення, включаючи мережеві та веб сервіси, та інші масштабовані, розподілені застосунки. Java EE розширює стандартну платформу Java (Java SE - Java Standart Edition)[1].

J2EE є промисловою технологією і в основному використовується в високопродуктивних проектах, в яких необхідна надійність, масштабованість, гнучкість.

Компанія Oracle, яка придбала Sun (фірму, що створила Java), активно просуває Java EE у зв'язці з своїми технологіями, зокрема з СУБД Oracle.

Java EE включає в себе стандарти наступних технологій:

  • Веб-сервіс

  • Сервлет (javax.servlet и javax.servlet.http)

  • Java Server Pages

  • Enterprise JavaBean (javax.ejb.*)

  • J2EE Connector

  • Java Message Service (javax.jms.*)

  • Інтерфейс для обробки XML

  • Java Authorization Contract for Containers

  • JavaServer Faces (javax.faces.component.html)

  • Java Persistence API (javax.persistence)

Сервер застосунків J2EE — це реалізація системи згідно з специфікацією J2EE, яка забезпечує роботу модулів з логікою конкретної програми. Включає в себе щонайменше такі сервіси[Джерело?]:

  • EJB-контейнер, який підтримує автоматичну синхронізацію Java об'єктів з базою даних (CMP — container managed persistence, BMP — bean managed persistence);

  • JMS — сервіс доставки повідомлень між компонентами і серверами;

  • керування ресурсами (доступ до СКБД, файлової системи і т. д.);

  • безпека і захист даних;

  • підтримка транзакцій (в том числі і розподілених). Див. Java Transaction API.

  • веб-сервер і сервлет-сервер;

  • підтримка веб-сервісів.

  • JSF

RMI (англ. Remote Method Invocation) - програмний інтерфейс виклику віддалених методів у мові Java.

Розподілена об'єктна модель, що описує, яким чином здійснюється виклик віддалених методів, що працюють на іншій віртуальній машині Java. При доступі до об'єктів на іншому комп'ютері, можна викликати методи цього об'єкту. Необхідно тільки доставити параметри методу на інший комп'ютер, повідомити об'єкт про необхідність виконання методу, а потім передати назад значення (якщо метод не void). Механізм RMI дає можливість організувати виконання всіх цих операцій.

У термінах RMI об'єкт, який викликає віддалений метод, називається клієнтським об'єктом, а віддалений об'єкт - серверним об'єктом. Комп'ютери виступають у ролі клієнта і сервера тільки для конкретного виклику. Цілком можливо, що при виконанні наступної операції ці комп'ютери поміняються ролями, тобто сервер може сам стати клієнтом при зверненні до об'єкту на іншому комп'ютері. При виклику методу віддаленого об'єкту, насправді викликається звичайний Java метод, інкапсульований у спеціальному об'єкті-заглушці (stub), який є представником серверного об'єкту. Заглушка знаходиться на клієнтському комп'ютері, а не на сервері. Вона упаковує параметри віддаленого методу у блок байтів. Кожен параметр кодується за допомогою алгоритму, що забезпечує незалежність від апаратного забезпечення. Наприклад, числа завжди передаються в порядку, при якому спочатку передається старший байт (big-endian). При цьому об'єкти піддаються серіалізації. Процес кодування параметрів називається розгортанням параметрів (parameter marshaling). Основна мета розгортання параметрів - перетворення їх у формат, придатний для передачі параметрів від однієї віртуальної машини до іншої.

7. Web-технології Java Servlet та JSP

Платформа J2EE пропонує модель багаторівневого розподіленого програми, можливість повторного використання компонентів, інтегрований обмін даними на основі XML, уніфіковану модель безпеки і гнучке управління транзакціями. Засновані на компонентах J2EE-рішення більше не прив'язані до продукції та API якого-небудь одного виробника. Виробники і користувачі мають свободу вибору продуктів і компонентів, які найбільш повно задовольняють їхні ділові та технологічні вимоги. У J2EE пропонується широкий спектр інтерфейсів API для уніфікованого доступу до сервісів (служб) та програм, реалізованих сторонніми організаціями.

  • Взаємодія з клієнтом:

    • JSP (Java Server Pages).

    • Java сервлети.

    • Web-служби.    

  • Бізнес-логіка:

    • Enterprise Java Beans (EJB). Специфікація EJB є серцевиною

платформи J2EE).

  • Базові служби (інтерфейси API):

JNDI

JTS

JPA

JTA

JDBC

RMI

та інші

Більшість програмних систем - це інструментальні засоби, які використовуються у виробничій діяльності. Розробники ПС повинні бути переконані, що їх продукт дійсно допоможе людям, а не буде “баластом”, що тільки нав'язується начальством. Тому розробнику перш ніж безпосередньо братись за реалізацію ПС, треба спочатку зрозуміти ділову сферу. Реальним кроком для цього є ділове моделювання (або бізнес-моделювання, моделювання виробничої діяльності організації чи підприємства).

  • Користувач уводить URL у браузері. Згідно з даними у конфігурацій-ному файлі (на сервері) за URL визначається відповідний сервлет (його керуванням опікується серверний контейнер сервлетів).

  • Контейнер завантажує клас сервлета, створює екземпляр об'єкта-сервлета (створюється максимум один екземпляр у програмному додатку – singleton) та ініціалізує сервлет шляхом виклику метода init().

  • Контейнером створюються об'єкти HttpServletRequest (у ньому інкап-сулюється запит, що надійшов від Web-клієнта) та HttpServletResponse (“інкапсульва-

  • на форма” відповіді).

  • Контейнером викликається метод service() сервлету з параметрами-об'єктами HttpServletRequest і HttpServletResponse. Звичайно, реалізація цього методу може містити звернення до інших об'єктів, у тому числі таких, що надають доступ до БД.  

Розробка java-класів сервлетів здійснюється за рахонок успадкування від одного з двох Java-класів :

  • GenericServlet (підтримка універсальних сервлетів);

  • HttpServlet (підтримка Http-сервлетів; цей клас, зокрема, містить додаткові методи doGet, doPost, doPut тощо для обробки Http-запитів Get, Post, Put тощо).

Деякі переваги Web-технології сервлетів:

  • незалежність від платформи (бо в основі Java-код);

  • повний доступ до всіх API Java, включаючи API доступу до БД, зокрема, JDBC;

  • наявність потужної промислово-інструментальної підтримки технології сервлетів, зокрема, наявність контейнерів сервлетів у найбільш розповсюджених Web-серверах чи серверах додатків.

Елементи JSP:

    • директиви: include, page, taglib;

    • елементи скриптів них міститься java-код, який вставлятиметься у сервлет, створюваний з JSP-сторінки): декларації, вирази, скриптлети;

    • дії: jsp:useBean, jsp:getProperty, jsp:setProperty, jsp:forward, jsp:include, jsp:plugin.

Заздалегідь визначені змінні (вони створюються контейнером та можуть істотно полегшувати розробку проектів):

  • request, response, out, session, application, config, pageContext, page.  

Основні підходи до реалізації Web-проектів на основі JSP

1. Створення проекту як набору HTML-дескрипторів і JSP-скриптлетів.

  • Іноді, особливо для великих проектів, важко у таких сторінках відокремити бізнес-логіку від “візуальної логіки” (представлення – View), а отже суттєво ускладнюється супровід та можлива модифікація проекту.

2. Делегування функцій компонентам bean (на основі використання тегу jsp:useBean). (Архітектура Model 1.)

  • Значна частина Java-коду переміщується з JSP-документів у компоненти bean , тому проекти, створені за таким принципом, стають більш життєздатними.

  • Компоненти bean виступають посередниками у взаємодії JSP з бізнес-об'єктами, а отже зміни в останніх менше впливають на сторінки JSP.

  • Усе ж файли JSP не тільки представляють уміст web-сторінок (View), але, як і раніше, відповідають за їх динамічну генерацію – залишається формула

  • JSP = представлення (View) + логіка.

  • (Не завжди можна відокремити задачі

  • для дизайнера від задач для програміста).

3. Використання сервлетів, JSP і компонентів bean для реалізації архітектури "модель- представлення-контролер" (MVC — Model -View -Controller). (Архітектура Model 2.)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]