Show page source of FrontPage #105173

[[PageOutline(start=1, depth=1, type=unordered)]]

= FINALUNA =
FINALUNAとは、NTTDATAが金融機関のシステムニーズを踏まえて、TERASOLUNAを拡張して作成したソリューションです。[[BR]]

= API =
== FINALUNA APIとは ==
[[br]]
=== APIの目的 ===
FINALUNA APIは、機能要件を実現するビジネスロジックと、処理方式や非機能要件を実現するフレームワークを、独立したコンポーネントとして分離させることを目的に策定した、ビジネスロジック用Javaインタフェースです。[[br]]コンポーネント間の依存関係を無くすことにより、各コンポーネントは独立して発展することができるようになります。具体的には、ハード・ミドルウェア製品のバージョンアップや他社製品への乗換え、フレームワークや処理方式の変更等から、ビジネスロジックを独立して長期間保守できるようになります。[[br]]
[[Thumb(01.gif, size=540x214)]]
[[br]]
=== APIの概要 ===

  * FINALUNA APIは、非機能要件から独立した均質なビジネスロジックを記述するように、ビジネスロジックに必要な機能のみを定義しています。
  * FINALUNA APIは将来機能追加を行いますが、変更は行いません。
  * FINALUNA APIはフレームワークの実装に制約を与えないよう、極力Javaのインタフェースクラスのみで作成しています。また、仕様変更が非常に少ないJavaSEで作成しています。
[[br]]
=== FINALUNA APIの主な機能(インタフェース) ===

  * TYPE(FINALUNA型):FINALUNAが定義する独自の型
    * 業務ロジックを実装するための必要最低限の型を定義したFINALUNA型で業務ロジックを実装することで、業務ロジックの長期保守と標準化が可能です。
  * Logic(Business Logic):ビジネスロジックを実装するインタフェース
    * FINALUNA APIのみを使用して作成したビジネスロジックは、実行環境(HW、ミドル、および、処理方式)から独立したコンポーネントとして再利用できます。
 * DTO (Data Transfer Object):入出力メッセージを定義するインタフェース
    * メッセージの物理フォーマットを、ビジネスロジックから隠蔽します。
 * DAO(Data Access Objects):ビジネスロジックがリソースにアクセスするためのインタフェース
   * 非機能要件に影響する物理リソースに依存する定義(DBコネクション、トランザクション制御、ファイルアクセスなど)や、製品に依存する定義(SQL文など)を、ビジネスロジックから隠蔽します。
 * Context:実行環境を隠蔽するインタフェース
   * ビジネスロジック内で、実装が隠蔽されたFINALUNA API準拠のオブジェクト(DAO,DTO,Typeなど)を取得するファクトリ。[[br]]実行環境毎に定義した実体クラスを生成します。
 * !FinalunaApplException,!FinalunaSysException:ビジネスロジックが制御する例外
   * フレームワーク等実行環境に依存するExceptionやErrorの処理をフレームワークに委ね、ビジネスロジックから隠蔽する。
[[br]]
=== APIの詳細 ===
'''○ニーズ
 * APの長期保守
   * Java技術の変化により、APのライフは5年程度が限度
     * ⇒アプリケーション資産の5年以上の存続
     * ⇒システム更改時に行うAP修正の極小化
  
 * AP開発の標準化
   * 今後MFのオープン化に伴う大規模開発に対応する必要性(数Mstep、要員100名超)
     * ⇒AP開発の標準化
 * 処理方式に依存しない業務ロジックの開発
   * 大規模、かつ複数の処理パターンを持つシステムの開発に対応する必要性
     * ⇒異なる処理方式の業務ロジックを共有することで共通化・部品化を図り、生産性・保守性を向上

 * テストケースの保守
   * テストケース長期保守の必要性
     * ⇒テストケースの改修は、仕様変更等により業務ロジックが改修された場合のみ実施

'''○実現方法
 * 変化するJava技術に依存する部分をフレームワークで隠蔽し、業務ロジックから排除します。Java技術が変化した場合、フレームワークを更改することで、業務ロジックを改修することなく、継続利用することが可能です。

 * フレームワークを適用することで、開発者は業務ロジックのみを作成します。また、その業務ロジックは、フレームワークが提供するAPI(FINALUNA API) を利用して記述することとなるため、業務ロジックの標準化を図ることが可能です。

 * 処理方式の違いによる処理の差異をフレームワークで吸収することで、ビジネス層(業務ロジック)への影響を極小化します。これにより、複数の処理方式における業務ロジックの共有を実現し、生産性・保守性の向上を図ることが可能です。

 * テストケースを、FINALUNA APIとテスト用のAPI (FINALUNA API Ex)、及びUT用のドライバを使用して記述することにより、Java技術の変化に依存するコードをテストケースから排除します。これにより、テストケースの改修は、業務ロジックを改修した場合に限定されます。

[[Thumb(req1.jpg)]]


'''○FINALUNA APIの構成概要図

[[Thumb(req2.jpg)]]

それぞれのAPIについての説明を以下に示します。

'''○FINALUNA型'''[[BR]]
業務ロジック内では、FINALUNA型を使用することで、より標準化を図った業務ロジックを記述することができます。FINALUNA型は、ベースとなるFINALUNA型、もしくは既存のFINALUNA型を拡張することで、プロジェクト毎に追加することが可能です。

'''○電文I/O'''[[BR]]
業務ロジックとフレームワークのデータの入出力は、すべてDTOを介して行います。実際の入力元となるリソース(ファイルやデータベース)からのデータの抽出、出力先へのデータの書き込みはフレームワークが担います。このため、開発者は入出力リソースを意識することなく、業務ロジックの開発に注力することが可能です。[[BR]]
DTOは、Javaの標準APIの型とFINALUNA型との変換ルール等の情報を保持します。[[BR]]
(※) このルールは業務開発者が設定する必要があり、設定方式には、JavaやXMLが考えられますが、FINALUNAでは前者を採用しています。[[BR]]
理由は、XMLに比べJavaの可読性が高いことと、JavaはIDE(統合開発環境)によるコンパイルチェックがサポートされているため、開発効率が向上すると考えられるためです。


'''○DB、ファイル I/O、共有変数'''[[BR]]
業務ロジック内で、ファイルやデータベース、共有変数などの外部リソースへアクセスする際には、FINALUNAが提供するDAOを使用します。DAOを使用することにより、開発者は外部データへのアクセス方法を知らなくてもデータの参照、更新等を行うことが可能です。また、業務ロジックとDAOの間のインタフェースには、先述したDTOが用いられます。共有変数へのアクセスは参照のみ可能です。


'''○業務ロジック'''[[BR]]
業務ロジックには汎用処理を除外した純粋な業務ロジックのみを、FINALUNA APIを使用して記述します。これにより、保守性の高い業務ロジックをより効率的に作成可能です。また、業務ロジックのインタフェースは、オンライン、バッチで共通であるため、業務ロジックをこれらの処理で共有することが可能です。


'''○例外処理'''[[BR]]
標準のJava APIにはその用途に応じて多くの例外クラスが用意されています。これは発生した例外を特定するのに非常に有用である反面、開発者によりスローする例外が異なり、プロジェクトとしての統一が取れなくなる危険性も含んでいることとなります。そのため、FINALUNAでは業務ロジック内でスローする例外を特定することでこれを解消します。また、システム運用者による発生した例外の特定は、例外スロー時に設定されているメッセージにより行います。スローする例外は、アプリケーション用例外を拡張することで、プロジェクト毎に追加することも可能です。
[[br]][[br]]
== APIのダウンロード ==
FINALUNA APIのJava Doc、Java Sourceファイル、ドキュメントは以下から[https://osdn.jp/projects/finaluna/releases/ ダウンロード]出来ます。
 * [https://osdn.jp/projects/finaluna/releases/p10801 FINALUNA API Java Doc]
 * [https://osdn.jp/projects/finaluna/releases/p10801 FINALUNA API Java Source]
 * [https://osdn.jp/projects/finaluna/releases/p10859 API詳細設計書]

[[br]][[br]][[br]]

= フレームワーク(APIのリファレンス実装) =
== FINALUNA frameworkとは ==
FINALUNA frameworkは、ビジネスロジック用Javaインタフェース(FINALUNA API)の'''リファレンス実装'''です。NTTデータの金融系システムで数多くの適用実績(2010年4月時点で、5MStep以上のJavaソースコードが稼動)を持つフレームワークです。
[[br]]
(FINALUNAフレームワークの公開は終了しました。)
[[br]]

[[br]][[br]][[br]]
= NTTDATA関連ソリューション =
NTTデータでは、豊富な金融系情報システム開発実績に基づくノウハウを、技術参照モデルに相当するFINALUNA(フィナ・ルナ)推奨構成として整備しています。[[br]]FINALUNAでは、図のように、金融機関のオープン系システム構築の効率化を目的に、NTTデータのソリューションを活用して、下表の4つの体系でノウハウのコンポーネント化を推進しています。
[[br]]
[[Thumb(solutionStructure02.jpg, size=359x209)]]
[[Thumb(pictogram01.gif, size=360x195)]]

== FINALUNAの体系 ==

  * FINALUNA API:公開
  * FINALUNA framework:非公開
   * TERASOLUNA® 
   * http://TERASOLUNA.jp/
  * スケールアウト構成/システム統合:非公開
   * PRORIZE^™^
   * PORTOMICS^®^
   * Prossione^®^
  * アプライアンス製品
   * Websphere
   * ORACLE
   * JP1
   * !InterstageListCreator
   * SVF
  * ドキュメントガイドライン:非公開
   * 開発プロセス

[[br]][[br]][[br]]

= 対応プラットフォーム =
対応アプリケーションサーバと動作確認状況。
  * IBM !PureSystems[[br]] [[Thumb(BPMark_scalable20.jpg, size=140x90)]][[br]]  !https://www.ibm.com/software/brandcatalog/puresystems/centre/details?uid=GSD_48981[[br]]
   * 対応ソリューション[[br]]  IBM !PureApplication[[br]]  IBM !PureFlex[[br]]
   * 導入サービス提供[[br]]
       NTTデータ先端技術[[br]][[br]]

  * IBM !WebSphere Application Server[[br]]
   * 導入サービス提供[[br]]
       NTTデータ先端技術[[br]]
       ※!WebSphere 本体も取り扱っています。(IBMよりOEM供給)[[br]][[br]]

  * 富士通 Interstage Application Server[[br]]
   * 導入サービス提供[[br]]
       富士通・富士通ミドルウェア[[br]][[br]]

  * 日立製作所 uCosminexus Application Server[[br]]
   * 導入サービス提供[[br]]
       日立製作所[[br]][[br]]

  * tomcat[[br]]
   * 導入サービス提供[[br]]
       無し

[[br]][[br]][[br]]

= 発表 =
  * ニュースリリース
    * 2011年2月2日 FINALUNA rock-solid framework 提供開始[[br]]金融機関の基幹系システム向けJavaソリューションを提供開始[[br]]~社会インフラレベルの高信頼性をJavaで実現~[[br]]
      http://www.nttdata.com/jp/ja/news/release/2011/020200.html (日本語)[[br]]
      http://www.nttdata.com/global/en/news-center/global/2011/020200.html (英語)[[br]]
    * 2010年4月16日 FINALUNAオープンソース化[[br]]NTTデータの金融機関向けシステム開発ノウハウの公開[[br]]~FINALUNAをオープンソースソフトウェア化~[[br]]http://www.nttdata.co.jp/release/2010/041600.html (日本語)[[br]]
    * 2009年7月13日 FINALUNA rock-solid framework[[br]]NTTデータが金融機関の基幹系システム向けJavaソリューションを新たに展開[[br]]~IBMのクラウド技術を用いたSOA基盤ミドルウェアを採用~[[br]]
      http://www.nttdata.com/jp/ja/news/release/2009/071300.html (日本語)[[br]]
      http://www.nttdata.com/global/en/news-center/global/2009/071300.html (英語)[[br]]
    * 2005年12月14日 日立製作所のJP1 ®採用 連名[[br]]NTTデータが金融機関向け情報系システム構築ソリューションを機能拡充[[br]]~日立の統合システム運用管理ソフト「JP1」の再販パートナー契約で合意[[br]]
      http://www.nttdata.com/jp/ja/news/release/2005/121400.html (日本語)[[br]]
      http://www.hitachi.co.jp/New/cnews/month/2005/12/1214.html (日本語)[[br]]
    * 2004年12月14日 富士通のInterstage®採用 連名[[br]]NTTデータが金融機関向け情報系システム構築ソリューションを機能拡充[[br]]~富士通がミドルウェアをOEM提供することで合意し、帳票分野で協業~[[br]]
      http://www.nttdata.com/jp/ja/news/release/2004/121401.html (日本語) [[br]]
      http://pr.fujitsu.com/jp/news/2004/12/14.html (日本語) [[br]]
    * 2004年6月15日 IBMの !WebSphere®採用 連名[[br]]NTTデータが金融機関向け情報系システム構築ソリューションを提供開始[[br]]~IBMソフトウェアをOEM提供で合意~[[br]]
      http://www.nttdata.com/jp/ja/news/release/2004/061500.html (日本語)[[br]]
      http://www.ibm.com/jp/press/2004/06152.html (日本語)[[br]][[br]]

  * 受賞暦[[br]]
      2008年3月 JP1技術革新貢献賞[[br]]
      2007年3月 JP1プロモーション貢献賞[[br]]
      2006年3月 JP1アライアンス貢献賞[[br]]
      2004年8月 !WebSphere Partner Prominent Solution Award 2004[[br]]