Enterprise JavaBeans

Каква е EJB (Enterprise JavaBeans) и за какво е? Мога ли да направя без EJB в разработването на уеб приложения? Това, което прави EJB програмисти?

В Java Web-приложение, можете да използвате JSP (JavaServer Pages), JavaServer Faces (JSF), Struts, GWT. За да работите с база данни, можете да използвате JDBC (Java Database Connectivity) или Съвместната парламентарна асамблея (JBoss хибернация). Приложение в servlet'a WEB-приложението прихваща се хареса на сървъра и да изпълняват определени действия, т.е. за филтриране на съобщенията. Къде и как можете да използвате EJB WEB приложения?

Опитът показва, че общите задачи са типични решения. Той също така предоставя EJB. който е набор от "фиксирани" образцови решения на проблемите в развитието на сървърните приложения, както и изпитани във времето схема на компонентите на сървъра. Тези фиксирани решения, или услуги, предоставяни от «EJB контейнер." За достъп до тези услуги, трябва да създадете потребителски компоненти посредством декларативен и програмен EJB API и ги поставяме на сървъра на приложения.

Java EE сървър на приложения (Enterprise Edition) включва два основни компонента. WEB контейнер (за JSP, JSF. Struts и т.н.), и EJB контейнер. Първият компонент се използва за създаване на потребителския интерфейс и е малко подходящ за описание на бизнес логика WEB-приложението. За да направите това, използвайте EJB контейнер.

Enterprise JavaBeans писане спецификация и има подкрепата на сървърни компоненти, които съдържат бизнес логика. Тази технология се използва, като правило, в случай, че бизнес логиката изисква един или повече от следните услуги.

  • подкрепа разпределени транзакции;
  • услуги за сигурност на данни (постоянство);
  • Услуги за управление на данни;
  • обслужване на събития;
  • именуване и справочни услуги (JNDI);
  • Служба за сигурност и ограничаване на достъпа до данни.

EJB технологията може да се разглежда в два аспекта: рамка и компонент. От гледна точка на рамката на EJB - е технология, която се предвижда от страна на сървъра приложения WEB-набор от готови решения (за управление на транзакциите, за сигурност, за съхранение на данни и др.) От гледна точка на EJB - е добавка за клас POJO. описано с помощта пояснения.

Основните видове EJB компоненти

В EJB компонент се отнася до езика за зърнени растения (Бийн) и означава "корпоративен" в предприятието. Разделя EJB компоненти (зърна) в няколко вида, на базата на тяхната цел:

  • сесия (Session Beans), който може да бъде
    • динамична защитна - при запазване на текущото състояние;
    • без гражданство - без гражданство;
    • Сингълтън - един обект за всички приложения (от EJB 3.1).
  • успя съобщения (съобщения задвижване фасул) - логиката им е реакция на събитията в системата;
  • обект (Entity Bean) - дефинирани в описанието JPA (Java Устойчивост API) образувания, и се използват за съхраняване на данни.

Фасул Сесия боб сесия. известен също като на сесия, наречена от клиент (браузър) да изпълнява добре дефинирани операции като, например, проверка на кредитната история на клиента. Думата "сесия" предполага, че случаят на компонента е достъпна само за продължителността на определен сървър задача и безвъзвратно унищожени в случай на авария или спиране на сървъра. За да осъществите достъп до приложението от страна на сървъра, клиентът извиква методи на боб сесия, изпълнява специфични бизнес задачи вътре в сървъра.

Сесия боб запазване EJB динамична защитна състояние автоматично запазва своето състояние между повиквания към него от един и същ клиент, и да завърши своето съществуване или на изчакване или по изрично искане. Типичен пример за компонент е динамична защитна с количка за пазаруване от онлайн магазина.

Сесия боб без гражданство EJB без гражданство не съхранява никаква информация за състоянието му и са приложни услуги, които извършват всички необходими действия в рамките на искането. EJB без гражданство може да се използва за операции, като например прехвърляне на средства към кредитна карта или проверка на кредитната история на клиента. Въз основа на лица без гражданство, боб, предназначени за услуги в мрежата.

Компоненти единствен EJB Сингълтън, споделяни от всички клиенти, които имат достъп до тях, както и да продължат да съществуват в рамките на подаване на заявлението. Информация за състоянието му EJB Сингълтън запазва. Компонент сам може да се използва, например, онлайн магазина за прилагане на отстъпки, защото правилата за предоставяне на отстъпки са фиксирани и се прилага за всички клиенти.

компоненти сесия могат да бъдат използвани локално или отдалечено, чрез Java RMI. Компоненти на единични компоненти и без гражданство също могат да бъдат изнесени като SOAP уеб услуга (Протокол изчислителна среда) и REST (представителна държавна Transfer).

Съобщение задвижване боб MDB (Message-Driven Bean) като сесия боб изпълнение логиката на приложението, а някои имат една важна разлика: клиентите никога не предизвикват пряко методи MDB. Вместо това, компонентите MDB призвани да се справят съобщения, изпратени до сървъра, който ви позволява да организирате асинхронни съобщения между частите на системата. Типични примери за такива съобщения сървъри могат да служат като IBM WebSphere MQ, Oracle Advanced Queuing и TIBCO. MDB компоненти. като правило, се използва, за да се подобри надеждността на системи за интеграция и асинхронни данни. Пример за съобщение MDB може да бъде искане за доставка на запаси от автоматизираната система за търговия на дребно, за да предоставят на системата за контрол.

Entity Bean и Java Persistence API

EJB е тясно свързана с две спецификации. с JPA. което е стандарт за съхранение на данни, Java EE и CDI (контексти и зависимостта Injection), който дава възможност на зависимостта инжекция и предоставя услуги за управление на контекст за всички компоненти на Java EE, включително EJB.

Възможност за автоматично спаси обектите в релационна база данни с помощта на обектно-релационни картографиране технологии (ORM) - т.нар постоянство механизъм, който да работи с обекти е една от основните предимства EJB. В контекста на EJB постоянство доставчик - е ORM-рамка, която поддържа на СПА, определя стандарти за:

  • Entity Bean конфигурация картографиране и ще го покаже в базата данни;
  • EntityManager API - стандарт API за CRUD (създават, четат, актуализиране, заличаване) операции на лица;
  • Java Persistence Query Language (JPQL) - за търсене и извличане на данните от приложенията.

EntityManager API - интерфейс, който свързва клас характер на прилагането (Entity Bean) и неговото представяне в базата данни. EntityManager знае как да добавите същност на база данни, актуализиране и изтриване на тях, а също така осигурява механизми за настройка на работата, кеширане, сделки и т.н. Той използва езикови искания JPQL. много подобен на SQL.

Контейнери EJB контейнер

Java приложения, захранван работа се нуждае от виртуална машина JVM (Java Virtual Machine). Сесия боб и MDB компоненти да работят точно както се изисква EJB контейнер. Може да се предположи EJB контейнер JVM развитие на основната идея. Точно както JVM прозрачно управлява паметта, EJB контейнер, EJB компоненти предоставят услуги като обработка на транзакции, сигурност, подкрепа, отдалечен достъп, както и уеб услуги.

Според контейнера за спецификация EJB3 предоставя услуги, които са приложими само за сесия боб и MDB. Операция EJB3 добавяне компонент в контейнер нарича разгръщане (разполагане). След EJB-компонент безопасно разположени в контейнера, той е готов за използване приложения.

технологични контейнери Java не се ограничават до EJB3. Java EE контейнера - сървър на приложения с поддръжка EJB3, уеб контейнери (сървлети, JSP, JSF, Struts, GWT) и други Java EE на API и услуги. Примери за приложения на Java EE контейнери са следните сървъри на приложения. Oracle WebLogic, GlassFish, IBM WebSphere, JBoss и Caucho смола.

Определяне на името на EJB компоненти

формат EJB компоненти именуване е както следва:

  • работно пространство - пространство от имена;
  • ап-име - името на заявлението;
  • модул име - името на модула;
  • EJB-име - името на компонента;
  • обектно-име - пълното наименование на обекта.

В настоящия формат на EJB компоненти именуване редица елементи (работно пространство, модул имена, EJB-име) е винаги присъства в името и е задължителен. И елементите на [ап-име] и [! Object-име] не могат да бъдат на разположение и се считат за задължителни.

Java EE сървър може да включва четири пространство за работно пространство имена, всеки от които отговаря на неговия обхват.

ОБЛАСТ компонент видимост. Всички EJB компоненти на войната-файл попадат в името едно общо пространство Java: комп. Шансовете са, рядко се наложи да използвате този пространство от имена, тъй като основната му цел - да се запази обратната съвместимост с версии на Java EE 6 и по-долу, където Java: Състезанието беше единственият стандарт пространство от имена.

Област на видимост на модула. Всички компоненти модул попадат в името едно пространство Java: модул. За обратна съвместимост, Java: съединение и Java: модул тълкува в уеб модули като единична именно пространство. Когато е възможно, вместо Java: комп за използване на Java: модул.

Обхватът на приложение. Компонентите на едно приложение на всички модули са подредени в една обща пространство от имена, Java: ап. Един пример за прилагането може да служи като архив EAR. Всички военновременни и EJB-компоненти, които са внедрени от ушите архивите попадат в тази пространство от имена.

Глобалното пространство. В Java: глобалното поставени всички компоненти на всички модули и всички приложения.

Значение заявление тук [ап-име] е по избор и е налице само в имената на компонентите на EJB. за разполагане на сървъра за прилагане на ушите архивите. Ако не се използва файла EAR, тогава [ап-име] липсва в преносими компоненти имена JNDI EJB. По подразбиране, стойността на [ап-име] е избрано име EAR-файл без .ear разширение. Заменяте, може да бъде в досието application.xml.

модул име

модул име Стойност винаги присъства и в името на ресурса е задължително. Това зависи от начина, по който разгърне модули, съдържащи EJB компоненти. Ако компонентите са разположени от един EJB-JAR файл (JAR-файлове са разположени директно), като стойността на модул-име, избрано име EJB-JAR файл, без .jar разширението. Това по подразбиране може да се замени с елемент на модул-име в конфигурационния файл META-INF / EJB-jar.xml.

Ако е избрана разположени компоненти, които са част от уеб модул (WAR-файл) като стойността по подразбиране на модул-име, името на войната файл, без .war разширение. Това по подразбиране може да се замени с елемент на модул-име в конфигурационния файл WEB-INF / web.xml. Ако разположени компоненти, които са част от приложенията (EAR-файл), модул-името по подразбиране се определя в зависимост от това дали компонентите на EJB са част от EJB-буркан или войната в ухото. Когато разполагане на компоненти от селекция стойност модул име на войната-файл се извършва в съответствие с правилото за Web-модули, които могат да се пренебрегнат в ЕВРОВОК WEB-INF / web.xml. Когато разполагане на компоненти от файловете на EJB-JAR, стойност модул име се превръща в пълния път до директорията, където файла с EJB-JAR в EAR, плюс име EJB-JAR файла, без .jar разширение, което може да бъде преодоляно в META-INF / ejb- файл jar.xml.

Стойността тук EJB-име компонент е по избор и винаги присъства в името на ресурса. За EJB компоненти, белязан пояснения @Stateless, @Stateful или @Singleton, по подразбиране EJB име името на класа избран компонент. Тази стойност може да се замени с име на атрибут () пояснения. За EJB компоненти, обявени в EJB-jar.xml файл, EJB-име стойност се определя, като боб-име на елемент.

обектно-име

Стойността на пълното име на обект [! Обектно-име] е необходимо, както и имената на EJB компоненти, извършени с елемент винаги ще присъстват в JNDI. Но EE сървър изисква също така, че в момента име JNDI без тази стойност. Такава "отрязан" име може да бъде полезен при достъп до компонента чрез единен интерфейс (или ако компонентът не е интерфейс).