iTAC_Technical_Documents

アイタックソリューションズ株式会社

ブログ名

TERASOLUNA Server Frameworkについて

1. Software Framework概要

TERASOLUNA Server Framework は、Spring Frameworkを土台とし、さらに3.3. OSSオープンソースソフトウェア)を組み合わせています。

さらにプロジェクトごとに必要なOSSがあれば、利用したいJARライブラリを追加すること(Mavenの利用を推奨)で、独自に拡張することができます。

図1-1. フレームワーク概要

f:id:iTD_GRP:20190620232931p:plain
図1-1. フレームワーク概要

2. 主な構成要素

TERASOLUNA Server Framework を構成する標準のライブラリは以下のようになっています。

f:id:iTD_GRP:20190620233018p:plain
図2-1. ライブラリ構成

2.a. DIコンテナ

DIコンテナには、Spring Frameworkを利用します。

DIコンテナを利用することで、インターフェースと実装を切り分けしたものに対して、 アプリケーションの実行時に、DIコンテナのルールに従って、インターフェース実装を紐付けてインスタンスを生成します。 ※Spring Framework の DIコンテナのルール:呼出元のインターフェースに@Autowiredを付けることで、@Controller, @Service, @Repositoryがついているクラス(対象のインターフェースをimplementsしたもの)を自動でインスタンス生成してくれます。

また、インターフェースと実装を切り分けることで、開発中や開発後の仕様変更やデバッグにも強いアーキテクチャを構築することができます。

2.b. MVCフレームワーク

MVCフレームワークには、Spring MVCを利用します。

MVCフレームワークとは、クラスを以下の3種類の役割に分けて考えるMVCモデルを採用したフレームワークです。

  • Model(データの保持、管理を担う。)
  • View(クライアントへの出力(UIの提供を含む)を担う。)
  • Controller(画面遷移の制御、ドメイン層のServiceの呼び出しを担う。)

2.c. O/R Mapper

O/R Mapperには、MyBatis または JPA を利用します。

O/R Mapperとは、リレーショナルデータベースから取得した情報(テーブル構造)を Javaオブジェクトと対応付ける機能です。

2.d. View

Viewには、JSPを利用します。

2.e. セキュリティ

セキュリティには、Spring Securityを利用します。

Spring Securityには、以下の機能を提供しています。

■セキュリティ対策の基本機能

No 機能 説明
1 認証機能 アプリケーションを利用するユーザーの正当性を確認する機能。
2 認可機能 アプリケーションが提供するリソースや処理に対してアクセスを制御する機能。

■セキュリティ対策の強化機能

No 機能 説明
1 セッション管理機能 セッションハイジャック攻撃やセッション固定攻撃からユーザーを守る機能、セッションのライフサイクル(生成、破棄、タイムアウト)を制御するための機能。
2 CSRF対策機能 クロスサイトリクエストフォージェリ(CSRF)攻撃からユーザーを守るための機能。
3 セキュリティヘッダ出力機能 Webブラウザのセキュリティ対策機能と連携し、ブラウザの機能を悪用した攻撃からユーザーを守るための機能。

2.f. バリデーション

単項目チェックには、BeanValidation もしくは Hibernate Validator を利用します。

相関チェックには、Bean Validation もしくは Spring Validation を利用します。

3. 利用するOSSについて(利用頻度が高いものを抜粋)

利用頻度が高いOSSは以下の通りです。

No Type GroupId ArtifactId 概要
1 Bean変換 net.sf.dozer dozer dozerは、一つのBeanを他のBeanにフィールド値を簡単にコピーすることができます。また、コピー元クラスとコピー先クラスで型が異なるコピーや、ネストしたBean同士のコピーも容易に行うことができます。
2 Bean変換 org.apache.commons commons-lang3 commons-lang3は、java.langパッケージを拡張したライブラリで、Utilメソッドが豊富です。
3 日付操作 joda-time joda-time joda-timeは、DateとCalendarに比べ日付への利用が簡単に可能で、また拡張が容易にできます。

次の記事へ

目次に戻る