概要

サンプル 7 は、共同で機能するエンティティ Bean、ステートフル セッション Bean、およびステートレス セッション Bean について説明します。またこのサンプルでは、デッドロック例外の対処方法や自動呼び出し機能についても紹介しています。

サンプル 7 ではコマンド ライン入力を使用してクライアント プロセスを起動します。このクライアント プロセスでは、情報をプロパティおよびコマンド ライン引数により実行時に設定し、コンソール ウィンドウに出力を書き込み、リレーショナル データベースにデータを保持します。このアプリケーションは、実際の分散アプリケーションのフレームワークとして簡単に使用できます。

ビジネス ロジックの機能は実に簡単明瞭です。銀行は特定の顧客に融資します。この顧客は、あらかじめ決められた期間内にローンを返済しなければなりません。期間内にローンが返済されない場合は、ローン返済不履行となります。

銀行は、顧客のローンに利息を付けることで収益を得ます。銀行には、慎重な銀行からリスクを恐れない銀行まで、さまざまなタイプがあります。顧客は銀行に基本資本 (相続財産) を預けており、時間が経つと、この資本に収益としての利息が付きます。収益は現在の現財産の一部です。顧客は一時的に資金を増やすため、銀行から資金を追加融資してもらうことはできますが、いかなる場合でもローンの未払いは一度しか許されません。顧客のタイプも、資金をほとんど借りない慎重な顧客から、リスクを恐れず大金を借りる顧客までさまざまです。顧客には信用の格付けもあります。最初は中立的な格付けから始まり、ローンの返済または不履行のいずれかに応じて調整が行われます。

Web エンティティ Bean は世界共通の情報源です。Web では、現在の利率や収益率だけでなく、銀行の一覧も参照できます。顧客は Web を使用して銀行を探します。銀行は Web を使用して現在の利率を決定します。利率と収益率は公開記述子に設定されています。

CustomerSession は、ステートフル セッション Bean で、Customer (顧客) エンティティ Bean ごとにセッションを管理し、指定された期間ごとに顧客の資産を更新します。Loan (ローン) は、各ローンの発生期間を表すステートフル セッション Bean です。Loan インスタンスが返済されたり、不履行になると、有効期限が切れ、削除されます。Calculator (計算機) は、特定の Loan に対する分割払い額を計算するのに使用するステートレス セッションです。