Enterprise JavaBeans

Enterprise JavaBeans (EJB) とは、JavaBeans仕様と同様のものを、ネットワーク分散型ビジネスアプリケーションのサーバサイドで実現した仕様のこと。セキュリティ機能などを備える。サン・マイクロシステムズ(サン)がJava EE(現・Jakarta EE)仕様の中でビジネスロジックをモデル化およびデータの永続化のために作成した。データベースアプリケーションサーバなどで実装されている。

歴史

EJBは元々、OMGCORBAやサンのRMIといった分散オブジェクトに由来する技術であり、RMIをベースにビジネスロジックを実装するコンポーネントとして誕生した。最初の実装はJavaの誕生から3年後の1998年頃に登場している。こうした経緯から、当初策定されたEJBはリモートアクセスを想定した複雑な実装が必須となっており、デプロイメント記述子と呼ばれるXMLの設定ファイルもかかせないものだった。また、EJB 1.0では主要な要素としてセッションBeanのみが定義されており、エンティティBeanはオプションという扱いであった。2003年のJ2EE 1.4で定義されたEJB 2.0では、EJBが分散オブジェクトとして使われることは稀であるという実情を踏まえ、ローカルインタフェースの追加が行われている。またメッセージ駆動型Beanが仕様に組み込まれた。[1]

しかしEJBの仕様は依然複雑なものであり、EJBに代わってより軽量なSpring FrameworkPOJOといった考え方を用いる動きが活発化する。こうした流れを受け、2007年のJava EE 5で定義されたEJB 3.0では、DIやPOJOといった考え方を取り入れる形で仕様の全面的な見直しが行われる。EJBの各クラスは単なるPOJOとなり、J2SE 5.0で導入されたアノテーションによりEJBとしての宣言を行う形式とされた。設定ファイルも不要となり、エンティティBeanは独立した永続化フレームワークであるJava Persistence APIに置き換えられた。[1]

その後も改良は続けられており、2009年のJava EE 6で定義されたEJB 3.1では、シングルトンセッションBeanの追加や、セッションBeanを中心とするコンポーネントのみを抽出したEJB Liteと呼ばれるサブセットの定義が行われており[2]2013年のJava EE 7で定義されたEJB 3.2では、非同期処理のEJB Liteへの導入や不要となったエンティティBeanが仕様から取り除かれるなどしている[3]

EJBの種類

EJBは、大きく以下の三つの種類のBeansに分けられる。

セッションBean (Session Bean)
セッションを保持し、一時的なロジックを保存するオブジェクト。以下のような種類がある。
  • ステートフルセッションBean (Stateful Session Bean) : クライアントごとの状態 (State) を保持するセッションBean。
  • ステートレスセッションBean (Stateless Session Bean) : クライアントごとの状態を保持しないセッションBean。
  • シングルトンセッションBean (Singleton Session Bean) : 常に同じインスタンスへのアクセスが保証されているシングルトンなセッションBean。[2]
メッセージ駆動型Bean (Message Driven Bean)
非同期処理の記述など。
エンティティBean (Entity Bean)
永続的なデータを保存するオブジェクト。EJB 3.2で廃止。

EJBの簡単な例を以下に示す。

@Stateless 
public class CustomerService { 
  
  @PersistenceContext 
  private EntityManager entityManager; 
    
  public void addCustomer(Customer customer) { 
    entityManager.persist(customer); 
  } 
}

上記のコードは、O/Rマッピングを使用して顧客 (Customer) オブジェクトを永続化DBに保存)するサービスクラス(セッションBean)である。EJBが永続コンテキスト (Persistence context) の管理を行うため、実際にデータを登録するaddCustomer()メソッドは、デフォルトトランザクション管理されたスレッドセーフなメソッドとなる。上記のコードは、EJBのビジネスロジックと永続化に焦点を当てたもので、EJBの特徴的な機能の数々は使用していない。

こうしたEJBのセッションBeanは、以下のように他のクラスから呼び出して使用することができる。以下はWeb層からの呼び出し例である。

@Named	
@RequestScoped
public class CustomerBacking {
   @EJB 
   private CustomerService customerService;

   public String addCustomer(Customer customer) {
      customerService.addCustomer(customer);
      context.addMessage(...); // (省略)メッセージ出力など
      return "customer_overview";
   }
}

上記のコードは、EJBのセッションBeanを@EJBアノテーションにより注入した、JavaServer Faces (JSF) の管理Bean (Managed Bean) である。今度のaddCustomer()メソッドは、UIコンポーネントにおけるボタン操作などを表現している。EJBのセッションBeanとは逆に、この管理Beanにはビジネスロジックに関するコードも永続化に関するコードも含まれていないが、EJBのコードを呼び出すことでそうした処理を実現している。EJBはプレゼンテーション層に依存せず、それらの役割は管理Beanが担う。

EJBコンテナ

EJBを管理し、動作させるための実行環境はEJBコンテナと呼ばれる。EJBコンポーネントが動作するときに利用するデータベースへのコネクションやトランザクションの管理も同時に行う。

EJBコンテナの代表例としてJBossなどが挙げられる。またJavaEEサーバーはEJBコンテナを含んでいる。

脚注

  1. ^ a b 第1回 EJBのすべてを知る”. EJB 3を再考する. Think IT (2007年9月12日). 2014年2月19日閲覧。
  2. ^ a b Java EE6:EJB3.1は、すばらしい進化だ”. infoQ (2010年2月25日). 2014年2月19日閲覧。
  3. ^ What's new in EJB 3.2 ? - Java EE 7 chugging along!” (英語). Oracle (2012年11月26日). 2014年2月19日閲覧。

関連項目

外部リンク

Read other articles:

كارل فيليب موريتس (بالألمانية: Karl Philipp Moritz)‏  معلومات شخصية الميلاد 15 سبتمبر 1756(1756-09-15)هاملن الوفاة 26 يونيو 1793 (36 سنة)برلين مواطنة ألمانيا  عضو في الأكاديمية البروسية للعلوم  الحياة العملية المهنة كاتب،  وكاتب مقالات،  وناشر  اللغات الألمانية  التوقيع تعدي�...

 

 

Charity Shield FA 1926TurnamenCharity Shield FA English Amateurs XI English Professionals XI 6 3 Tanggal6 Oktober 1926StadionMaine Road, Manchester← 1925 1927 → Charity Shield FA 1926 adalah pertandingan sepak bola antara English Amateurs XI dan English Professionals XI yang diselenggarakan pada 6 Oktober 1926 di Maine Road, Manchester. Pertandingan ini merupakan pertandingan ke-13 dari penyelenggaraan Charity Shield FA. Pertandingan ini dimenangkan oleh English Amateurs XI dengan...

 

 

2012 2022 Élections législatives de 2017 dans la Marne 5 sièges de députés à l'Assemblée nationale 11 et 18 juin 2017 Type d’élection Élections législatives Campagne 22 mai au 10 juin12 juin au 16 juin Corps électoral et résultats Inscrits 381 602 Votants au 1er tour 180 848   47,39 %  8,6 Votes exprimés au 1er tour 177 675 Votes blancs au 1er tour 2 274 Votes nuls au 1er tour 899 Votants au 2d tour 159 190   41,72 % V...

For related races, see 1928 United States gubernatorial elections. 1928 Georgia Democratic gubernatorial primary ← 1926 September 12, 1928 1930 →   Nominee Lamartine Griffin Hardman Eurith D. Rivers Party Democratic Democratic Electoral vote 310 104 Popular vote 137,430 97,339 Percentage 58.54% 41.46% County resultsHardman:      50-60%      60-70%      70-80%    ...

 

 

Disambiguazione – Glicerina rimanda qui. Se stai cercando il personaggio dei fumetti, vedi Glicerina (personaggio). GliceroloFormula di struttura del glicerolo Modello molecolare 3D Nome IUPAC1,2,3-propantriolo Nomi alternativiglicerina triidrossipropano Caratteristiche generaliFormula bruta o molecolareC3H8O3 Massa molecolare (u)92,10 Aspettoliquido incolore Numero CAS56-81-5 Numero EINECS200-289-5 PubChem753 DrugBankDB09462 SMILESC(C(CO)O)O Proprietà chimico-fisicheDensità (g/c...

 

 

German entomologist (1854-1923) Ernst Otto Wilhelm Taschenberg (1854-1923) Ernst Otto Wilhelm Taschenberg (23 March 1854, Halle - 20 March 1923, Halle) was a German entomologist who specialised in Hymenoptera. He was the son of Ernst Ludwig Taschenberg. From 1879, after studying zoology at the universities of Leipzig and Halle, he worked alongside his father at the zoological institute in Halle. After his father's death, he became curator (Kustos) of the Institute's museum and professor of en...

2015 single by KAT-TUNDead Or AliveSingle by KAT-TUNB-sideWhite LoversYou are Delicious!PolarisHanasanaide AiReleased21 January 2015 (2015-01-21)Recorded2015GenrePop rockLabelJ-OneSongwriter(s)Jovette Rivera, Maiko Kawabe RiveraProducer(s)Johnny H. KitagawaKAT-TUN singles chronology In Fact (2014) Dead Or Alive (2015) Kiss Kiss Kiss (2015) Dead Or Alive is the 23rd single by Japanese boy band KAT-TUN, released in Japan on January 21, 2015, on the J-One Records label. It is thei...

 

 

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article sur le sport doit être recyclé (février 2022). Une réorganisation et une clarification du contenu paraissent nécessaires. Améliorez-le, discutez des points à améliorer ou précisez les sections à recycler en utilisant {{section à recycler}}. SnowboardPlanche à neige Données clés Sport olympique depuis 1998 modifier Un snowboardeur qui pratique le Jib Le snowboard, surf des neiges, planche...

 

 

Dermanyssus gallinae TaksonomiKerajaanAnimaliaFilumArthropodaKelasArachnidaOrdoMesostigmataFamiliDermanyssidaeGenusDermanyssusSpesiesDermanyssus gallinae De Geer, 1778 lbs Dermanyssus gallinae (umum dikenal sebagai tungau ayam atau tungau merah) adalah sebuah spesies tungau ektoparasit hematofag pada ayam. Spesies ini telah diakui sebagai vektor beberapa penyakit patogenik besar.[1][2] Meski nama umumnya demikian, tungau ini memiliki beragam jenis inang lainnya seperti bebera...

ХристианствоБиблия Ветхий Завет Новый Завет Евангелие Десять заповедей Нагорная проповедь Апокрифы Бог, Троица Бог Отец Иисус Христос Святой Дух История христианства Апостолы Хронология христианства Раннее христианство Гностическое христианство Вселенские соборы Н...

 

 

国民阵线Barisan NasionalNational Frontباريسن ناسيونلபாரிசான் நேசனல்国民阵线标志简称国阵,BN主席阿末扎希总秘书赞比里署理主席莫哈末哈山总财政希山慕丁副主席魏家祥维纳斯瓦兰佐瑟古律创始人阿都拉萨成立1973年1月1日 (1973-01-01)[1]设立1974年7月1日 (1974-07-01)前身 联盟总部 马来西亚  吉隆坡 50480 秋傑区敦依斯迈路太子世贸中心(英�...

 

 

The final of the 2024–25 edition of the UEFA Champions League Football match2025 UEFA Champions League finalThe Allianz Arena in Munich will host the final.Event2024–25 UEFA Champions LeagueDate31 May 2025 (2025-05-31)VenueAllianz Arena, Munich← 2024 2026 → The 2025 UEFA Champions League final will be the final match of the 2024–25 UEFA Champions League, the 70th season of Europe's premier club football tournament organised by UEFA, and the 33rd season since i...

Education in Cyprus is overseen by the Ministry of Education, Sports and Youth.[1] The education system is divided into pre-primary education (ages 3–6), primary education (ages 6–12), secondary education (ages 12–18) and higher education (ages 18+).[2] Full-time education is compulsory for all children aged between 5 and 15.[3] State-provided schooling including higher education is paid for by taxes. There is also a parallel system of accredited independent sch...

 

 

Cricket team Chilaw Marians Cricket ClubPersonnelCaptain Pulina TharangaCoach Sarath JayawardenaTeam informationColoursCream/pink  [1]Founded1975Home groundFTZ Sports ComplexCapacity1,000HistoryFirst-class debutin 2000Premier League Tournament wins2Premier Limited Overs Tournament wins0Twenty20 Tournament wins1 (2004)Official websitewww.chilawmarians.com Chilaw Marians Cricket Club are a first-class cricket team based in Chilaw, Sri Lanka. They play their home...

 

 

Cost to maintain a standard of living For other uses, see The Cost of Living (disambiguation). This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) The examples and perspective in this article deal primarily with the United States and do not represent a worldwide view of the subject. You may improve this article, discuss the issue on the talk page, or create a new article, as appropriate. (Dec...

French chef (born 1977) Cyril LignacCyril Lignac during a signing session at the Salon du Chocolat 2017Born (1977-11-05) 5 November 1977 (age 46)Rodez, FranceCulinary career Current restaurant(s) Le Quinzième (one Michelin-starred), le Chardenoux, Aux Prés Television show(s) Yes chef !, Chef, the recipe, Live in canteen !, Get Chef'd, Top Chef, the Great bake off Websitehttp://www.cyrillignac.com Cyril Lignac (born 5 November 1977 in Rodez, Aveyron[1]) is a French che...

 

 

Wanita muda di Herat, Afganistan, mengenakan chador Chādor (Persia: چادر‎), juga disebut sebagai chadah, chad(d)ar, chader, chud(d)ah, chadur, dan dinaturalisasi menjadi /tʃʌdə(ɹ)/, adalah sebuah garmen luar atau jubah terbuka. Busana tersebut dipakai oleh beberapa wanita di Iran, Irak dan beberapa negara di bawah lingkup budaya Persia, serta wilayah mayoritas Syiah seperti Afganistan, Azerbaijan, Bahrain, Pakistan, India, Kuwait, Lebanon, Suriah, Tajikistan, dan Turki, di ...

 

 

Municipality in Cluj, RomaniaGherlaMunicipalityOverview of Gherla in May 2004 Coat of armsLocation in Cluj CountyGherlaLocation in RomaniaCoordinates: 47°1′12″N 23°54′0″E / 47.02000°N 23.90000°E / 47.02000; 23.90000CountryRomaniaCountyClujGovernment • Mayor (2020–2024) Ovidiu Drăgan[1] (PNL)Area36.3 km2 (14.0 sq mi)Elevation250 m (820 ft)Population (2021-12-01)[2]19,873 • Density55...

1998 single by LL Cool JHot, Hot, HotSingle by LL Cool Jfrom the album Phenomenon B-side4, 3, 2, 1ReleasedMarch 27, 1998GenreHip hopLength4:22LabelDef JamSongwriter(s)James Todd SmithProducer(s)The HitmenLL Cool J singles chronology Father (1998) Hot, Hot, Hot (1998) Candy (1998) Hot, Hot, Hot is a song by American rapper LL Cool J, released as the fourth single from his seventh album Phenomenon. It was released on March 27, 1998, through Def Jam Recordings and was produced by Puff Daddy, D-D...

 

 

Genetic disorder inhibiting clearance of mucus from the lungs Medical conditionCystic fibrosisOther namesMucoviscidosisSpecialtyMedical genetics, pulmonologySymptomsDifficulty breathing, coughing up mucus, poor growth, fatty stool[1]Usual onsetSymptoms recognizable ~6 month[2]DurationLong term[3]CausesGenetic (autosomal recessive)[1]Risk factorsGeneticDiagnostic methodSweat test, genetic testing[1]TreatmentPhysiotherapy, antibiotics, pancreatic enzyme r...