������� �������� � ���������� Enterprise JavaBeans
��������
�������� ����, �������� � ���������� ���������� Enterprise JavaBeans -- ������� ����� �������������� ��� ���������, ����� ��� ����� �� ����� "�����������" ("plug in") � ��������� �� ��������, ��� ����� ���������� ��� ������ ���������������� �������. ���������� Enterprise JavaBeans ������ �� ���������� JavaBeans � ��� ������, ��� ��� ���������� �� �� ����� ���� (� ������, �������� ����� ���������� �� ��� ������������, ������� � ������������� ���������, ����������� RAD-��������), �� �� ���� ��������� Enterprise JavaBeans -- ���������� ���� ����������.
������� �� JavaBeans
���������� Enterprise JavaBeans ����������� �� ������������� JavaBeans Component Specification, � ������ ������ ���������� -- Enterprise JavaBeans Specification. ���� JavaBeans ����� ���� ���� � ����������� ������������ (��� �������, ��� GUI-����������, ��� ����������, � ���� ���������), �� EJB ��������� ����� ������� ������ EJB-������� ��������������� ����� ����� ������� � �������, ��� EJB-������� ��������������� � ������� ��������� � ������ ���� ��������� ��������� ���� �������.
����, ������� � ������ ���������� EJB
�������������� � ����� 1998 ���� EJB-������������ ������ 1.0 (������� ���� ������������ ������ 1.1 ������������) ���������� ��������� ����:
- ��������� ������������� �������� ����������, ������� �� �� ������������� ������������� � ���� ����� �������, ��� ���������� (transactions), ���� (threads), �������� (load balancing) � ������. ������������ ����� ������������������ �� �������� ������ ����� ����������, �������� ������ � ��������, �������� � ������������ ������ �� EJB-�������. ��� ���� ��� ����� ������� ����������� ������ �������������� � ��������� ���������� ������� ��������.
- ������� �������� ��������� EJB-�������, ������ ��� ���� ���������� �������������� (contracts) ����� �� ������������.
- EJB ���������� ���� ����� ���������� ��� ���������� ������/������ ���������� �� Java. ����� �� �������, ��� �������� JavaBeans (Delphi, ��� ������) ���������� �� ��������� �������������� ����� ���� ���������� ������ � ������� ��������������� RAD-������, ������� � ���������� ��������������� �������, ����� �� ������� ��������� ���������� EJB �� ��������� �������������� ����� ����� ���� ������������ ������. EJB-����������, ������ Java-��������, ������ ��� �������� �������� �� ����� EJB-����������� ������� ���� ��� ��������������, ��� ����������� ��������� ��� ������ ������.
- EJB ���������� � Java API, ����� ����������������� � ������� (�� ����������� Java) ������������, � ����� ���������� � CORBA.
������ ���������� EJB
��� ���� ����� ������, ��� �������� � ��� �������� EJB-�������, ������� ���������� ����������� �� �������� �����: EJB-���������� (component), EJB-��������� (container) � EJB-������ (object).
EJB-���������� (The Enterprise JavaBeans component)
��������� EJB-���������� ������������ ����� ���������� � ��� �� ������ ��� � ������������� JavaBeans "bean" ("�����"). ���������� EJB ����������� ������ EJB-����������, �������, � ���� �������, ����������� ������ EJB-�������. ����� ������, ������� � ��������� ������������ EJB-���������� � ������������� �� ����������� �������, ����� ���� EJB-�������� (�� ���� ������ �� ������������ �������� ����� ���� ������ ��������� �� ��������� Enterprise JavaBeans).
EJB-���������� ������������ �� ���� Java-�����, ������� ��������� ��������� ������-������. ��� ��������� ������ � EJB-������� ���� ��������� ��������� ������/������ �������������� ����� ������������, ���� ��������� ��������� ������� ��� ���������.
EJB-��������� (The Enterprise JavaBeans container)
EJB-��������� -- ��� �� �����, ��� "�����" EJB-���������. EJB-��������� ��������� ��� ����������� � ��� ��������� ����� ������� ��� ���������� (transaction), ���������� ���������, ���������� �������� ���������, �� ������������, ����������������, ��������� ������. ��� ��� EJB-��������� ��������� ��� ��� �������, �� ����������� EJB-��������� ����� �� ������������� �� ��������������, � ������ �������� �������������� ������ � ���������� (������� ������ ������� � ���������� ����������� � ������������). ��� �������, � ����� EJB-���������� ����� ��������� ���������� EJB-���������.
EJB-������ (EJB-object) � ��������� ��������� (remote interface)
���������� ���������� �������� ������ �� ��������� EJB-����������� ����� EJB-������ (EJB-object). EJB-������ ��������� "��������� ���������" EJB-���������� �� �������. ���� � ���, ��� ����������� �� ������� EJB-����������, ������ ������-�������, ���� ������� ��� ���� �����������, ������ ������������� ����� ��������� �������, ������������ �������������, ������� ������ ��� ``����������'' EJB-����������� �� ������� ����������. EJB-������ ��������� ���� ������-��������� ��� EJB-����������, �������, � ��������� ������, "�������������" ������ ����� �������� � EJB-�����������.
EJB-������� � EJB-���������� ������������ ����� ������ ������, ���� "�������" (��� ������� �� �� ����������), ��� �������� ���������. ��� ���������� ������, ��� ��� ��������� ���� � ��� �� ��������� (� ������, ���������, ��������� ��� EJB-����������). ������ ��� ���� ��� ��������� ���������� ������ �������. EJB-���������� ����������� �� �������, ������ EJB-���������� � ��������� ������-������, � �� ����� ��� EJB-������ ����������� � ������� � �������� �������� ������ � EJB-����������.
� �������� ����������� ������� ���������� ���������������. �����������, ��� �� �������� EJB-�����������. EJB-������, � ����� ������, �������� �������� ������ ���������� (remote control) ����� �����������. � ������ ���������� ���� ��� �� �� ������, ��� � �� �������� ������ ����������������. ������� ������ �� ������ ���������� �������� � ������ �� �������, ��� � ������� ������, ������������� �� ����� �����������, �� � ���������� ������ ����������, � �� ����� ����������, ������ ��������� �������.

��� �������� �������
������������, ������, �� ����� ������ ������������� EJB-������. ���� ����� ��������� ����������� ���������������, ������������ ������ � EJB-�����������. ��� ��� ���� �������, EJB-������ (��������� � ������� �������� ����������) � EJB-���������� (��������� �������������), ��������� ���� � ��� �� ���������. � ����������, ����� ����������-������ ����� ������� ����� � EJB-����������, �� ������� ���������� ����������� (�� �����) ����� � EJB-�������, ��� ��������� �� ������� �������, � ���, � ���� �������, ����������� � ��������� EJB-����������� � �������� � ��� ���� ����� (� ���� �� �����������).
Session � Entity beans
���������� ��� ��������� ���� "�����": session � entity. ���������� �� ����� ��������.
Session bean
Session bean ������������ ����� EJB-����������, ��������� � ����� ��������. "����" ����� ����, ��� �������, ����� ������������ ���� ����� (���� ��� � �� �����������), � ����� ��������� � �����������. � ���������, ��� ������ �� ����������������� ����� ���� �������. � �������� ������� session bean ����� ����� "���", ������� ����� � ���-������� � ����������� ������� HTML-�������� �������, ��� ���� ����� �� ���, ����� ������ �������� ��������� � �������. ����� �� ������������ �������� ���-����, ��� �� ��������� ���������� �������, session bean ������������. �������� �� ��, ��� � �������� ����� ������, session bean ��� ��������� ��������� ���������� � ���� ������, ��� ������������� ����������� ���-���� �� � ����������� ��������� ��� � ������ � "������� ���������", � ������ � ���������� ��������� ������� �� ������� ������� �� ����� ������ �������.
Entity bean
Entity bean, ��������, ������������ ����� ����������, ���������� � ���������� (persistent) �����������, ����������, ��������, � ���� ������. Entity beans ������������� � ���������� ��� ������ � ����� ���� �������� ������������ ���������� �������������. ��� ��� ���������� � ���� ������ �������� ����������, �� � entity beans ����� ���������, "�������", ��� �����, ����� ����� ������� (����� ������ ����������������� ����� ����, �� ����� ������������ "���" �� ���� ������).
��������, entity bean ����� ������������ ����� ������ �����-������ ������� �� ���� ������, ��� ���� ��������� �������� SELECT. � ��������-��������������� ����� ������, entity bean ����� ������������ ����� ��������� ������, �� ����� ��� ���������� � �������.
������ ������� �� EJB-������� ������� � �������� � ���� ��� ��, ��� ���� �� ��� ���� ��������� �������. ��� �� ������� �������� ���������� �������� -- ����������� ��� ������� ����� ���������� ������� ��� ��������� ������ � ��� ������� EJB-�������. ����������� ����� ����� ���������, ������������ � ���������� �������, � ��� �������, � ���� �������, ����������� �� �������. ����, session beans � ����������� ����� �������� � �����������, ����������� � "�������" ����� �������� � ��������, � �� ����� ��� entity beans ������������ ����� ���������� ������ � �������� � "�����������" ������� �� ��� ������.
������ ��������� "����" ����� ���� ���������� �������������. ��� entity �������� ���������� �������������, ��� �������, ��������� � (��� �����-���� ������� ���������� ��) ����������� �������������� ������, ������� �� ������������. �� ���� � ������ ������ ���������� ����� ����� ���������� ����� ��� ���� entity beans. ������������� �� session beans ����� ���� ����������� ����� -- �������� �� ����� �������� �� ����� ������� � ����� ���������� ����������, � ����� ����������� ��������� �������.
�������� ��������� ��������
����, ����������-������ ����������� � EJB-�������� � �������� ��� ������ �� �������� "����" (Enterprise JavaBean) ��� ��������� ����� ��������. ������ �������� �� ����� ������ ��������� ������� �� ������� ������� (��������� EJB-����������) � ���������� ������� ������-������ (EJB-������), ��� �������� ��������� � ����������� ��������� EJB-���������� � ��� ������ �������������� ������ ���������� ���������� ����������. ����� ����� ����������-������ �������� � EJB-�������� ��� � ��������� ��������, ���� � �� ����������, ��� ��� ������ ��������� �� EJB-������, � ��������� ���������� �� �������. ���������� ��������, ��� ��������� � ��������� EJB-��������� �� ������� ���������� EJB-���������.
Home interface
� ������ EJB-���������� ���� ��, ��� �������� "������ ���������" (home interface), ������� ����������� ������ ��������, �������������, �������� � (� ������ entity beans) ������ ����������� EJB-��������� �� ������� �������. "������ ���������", �� ����, ��������� ��������� �������������� ����� ����������� � �����������, � ��������� -- ��������� ����.
"������ ���������" ��� EJB-���������� ����������� �� ���������� javax.ejb.EJBHome, ������� ������������ ������� ���������������� ��� �������������� ����� ����������� � �����������. ��� ������ ����� ���������� ������ ���� RMI-����������. ��������� ����� ��������� ���� ��� ����� create() �������, ������� ��� ���������� �������� ������ create, �� ���� ������� ��������. ��� create ������ ���������� ������ � "�������" (remote) ��� ������ ���������� �����������.
����� ����������-������ ����� ������� "���" �� �������, ��� ������� ���������� Java naming and Directory Interface (JNDI) ��� ���������� ������� � ������� �����������. JNDI ������������ ����� ����������� ���������� Java-������ � ������������� ���������� ������ ��� ������ Java-���������, �������� Java-���������� �������� � ������������ ������������ ������� ������ �� �����, � ����� �������� ������ ��������� ���������� � ��������. ������������� EJB ��������, ����������� JNDI, ��� ��� ������������ ��� ����, ��� ���� EJB-������ -- ������ ������������� � Java API.
����� ������ ������� ������ �� ������ � "������" �����������, �� ������� � ����� ������� ����� �� ������� create ��� �������� ���������� ���������� �� �������. ��� ��������� ������ create ��������� (����������� � �������) ������ � "������" ����������� �������� �������� ����� � EJB-����������, ������� � ������� ��������� "����", ��������� ������� EJB-������. ����� ����� ����������-������ �������� � EJB-������� ������, ���������� ������� ���������������� �� ������ (������� ����������, � ����� ��� ����������). ���������, ��� ��������� ������ � ����������, ������ �������� � ��� ��������������� �����. ������������, �� ��� ������������ ��� ���� ��������� -- ��������� ��������� ������ (�����, ��������, ��� ���������� �������� ���������� ������) � ��������������� ����������� �������������� ��������.
Entity "����", ������ �������������, ����� �������������� ��������� finder, ������� ������������ ��� ������ �� ����������� ����� ���������� "����".
�, ��� ��� ����������, "������ ���������" �������� � ���� ������, ���������� ���������� � ������������� ������� ��������� ����������. � ���� ������ ������ ���������� �������� ����������, � ����� ��������� ������� ������� ����� � ��������� ���������� �������� � ������������� �������������� ��������.
����������
- Mark Johnson, A beginner's guide to Enterprise JavaBeans, JavaWorld, October 1998.
- Sun Microsystems, Enterprise JavaBeans Specification version 1.0, 1998.
- Sun Microsystems, JavaBeans Component Specification.
- Anne Thomas, Enterprise JavaBeans Server Component Model for Java (Whitepaper), 1997.
�������� ������