※YouTubeが閲覧不可な方はこちらからご覧ください
  • TALONのコンセプト
  • TALONとは
  • TALONの開発コンセプト
  • 導入の流れ
  • 導入パターン
  • よくあるご質問
  • 業務テンプレート/連携システム
  • 失敗しないシステム構築・導入
  • 新しい開発プロセスのご提案
  • TALONコンサルタントの紹介
  • 週刊診断コラム
  • お問い合わせ
  • 販売代理店希望用お問い合わせ
  • 価格
  • 動作環境
  • 会社概要

週刊診断コラム

〜中小企業診断士であるTALON開発責任者が日々現場で感じていることを綴ります〜

最新コラムへ移動


第13回 2014年08月15日

TALONの技術基盤について。

現在、TALONはバージョン2になり、大幅な機能強化を行う事が出来たと考えています。まだベータリリースという状態ですが、近日中に正式版のリリースを行う予定です。

ベータ版でも機能は一通りお試し頂けますので動作させてみたいという方は是非こちらでお問い合わせして頂ければと思います。

さて、今回のコラムはいつもとは趣向を変えて、TALONの技術基盤についてお話したいと思います。相当開発よりのお話ですので、開発技術に興味のある方だけご覧いただければと思います。一応専門用語の羅列にならないようにはしていますが。:-)

TALONバージョン1の構成要素

TALONの基盤はJavaで構築されています。バージョン1の構成は以下の通りでした。

  1. Javaの開発バージョンは6 (実行は7,8でも可能)
  2. JavaEE6の技術をベースとしている(JSF2.1、EJB3.1など)
  3. DIコンテナにSpringフレームワークを採用
  4. O/RマッパーにDomaを採用

構成のイメージ図になります。

出来る限りJavaの標準技術で構成するというコンセプトの元、上記のような組み合わせとなっていました。Javaのエンタープライズといえば一昔前はStruts、Spring、Hibernateというフレームワークを利用するのが半ば常識のようになっていました。TALONもベースとなる基盤を初めに構築したのは4年以上前の事で、元々Springのフレームワークに慣れていたという事もあり、Springを採用していました。

バージョン1を作っている当時、ちょうどJavaEE6が出始めた位の時期で、JSFが1から2にアップデートされ、非常に期待もあり、JavaEE開発関係者も熱く語っていました。

ここで思い切ってこれまで慣れていたJSPから、JSF2(xHtml+Ajax)の構成を導入しました。結果としては非常に良い決断だったと思っています。現在ではJSF2.2となり、2.1の時に非常に苦労したコンポーネント周りのバグも解消されており、さらに高速化が図られています。

O/Rマッパーは国産OSSのDomaを選択しています。Domaを選択した理由としては、

  1. JRE以外には全く依存性が無い
  2. SQLソースをJavaソースから外に出して開発が出来る
  3. 設定の分かりやすさ、エラーの発生をコンパイルエラーで極力対応している

といった点から選択しています。特に1のメリットは大きいと感じています。

技術基盤になりますので、各技術要素に依存性が強いとバージョンアップは非常に大変になります。また、JavaEE6の技術であるJPAを採用しなかったのは2と3の部分で検討した結果になります。

TALONバージョン2の構成要素

今回刷新したTALONの構成は以下の通りになります。

  1. Javaの開発バージョンは8
  2. JavaEE7の技術をベースとしている(JSF2.2、EJB3.2、CDI1.1など)
  3. DIコンテナはSpringからCDIへ変更
  4. O/RマッパーにDomaを採用

構成のイメージ図になります。

今回TALONのバージョンアップを行うにあたり、構成要素自体を変更せずに純粋に機能だけをアップデートするという方法でも実現は出来たのですが、将来を見据え、かなり思い切って構成要素も上記のように刷新しました。

開発サイドからすると、大きな変化は2つあります。

  1. Spring DIコンテナを、JSFが連携しているCDIの管理Beanを使用する事で廃止に
  2. JavaEE6からJavaEE7へのキャッチアップ

Springを廃止した理由としては、SpringはJavaEEの標準技術ではありませんので、今後どうなるかの見通しは正直分かりません。しかも現在はVMwareの所有です。現在でもすでにSpringのベースで使われているライブラリやフレームワークには開発母体が存在しない物があり、機能追加などをしていく際に足かせになるリスクがあります。

その辺りの話はWebに結構ありますが、以下のJavaチャンピオンであるバート・エルトマン氏の記事が参考になります。(日本語です)

SpringからJava EE 6へ! 欧州企業も取り組む移行のベスト・プラクティス――Java Developers Workshop 2012 Summerレポート

 

もう一つはJavaEE6からJavaEE7へのキャッチアップです。これに関してはJavaEE7が登場してから1年以上が経過し、対応するアプリケーションサーバも増えてきており(2014年8月時点でGlassfish4.1、WebLogic12.1、Wild Fly8の3つ)、大きな変更を行う今、同時に導入してしまう事が一番効率が良いと考えたからです。

導入してみて実感した事は、JSFのパワーアップです。HTML5対応やステートレス・フローなど大変魅力的です(但しHTML5はブラウザのバージョンが新しい物しか対応しませんので、企業システムとして使われる事の多いTALONに適用するのは慎重にならざるを得ませんが)。

2.1で非常に苦労させられたバグが修正されているのがTALONチームとしては一番助かったところですが。。これらのバグを回避する為に開発チームはどれだけ苦労したか。。

また、速度も向上しており、JFSだけの効果では無いですが、TALONはバージョン1から2にアップして、実行速度が最大で50%程度短縮しました。

TALONの開発ポリシー

バージョン2になって構成が変化しましたが、TALONの開発ポリシーは以下の通りです。

  1. 極力標準技術を利用する
  2. 新技術には早くキャッチアップし、ユーザビリティを高め続ける

何を標準技術とするかいう点で、色々な意見はあるかと思いますが、我々がJavaにおいての標準技術として考えているのは、JavaEEになります。

Java開発元で作っているという点と、作られてくる物の確かさ、今後のロードマップを見ても世の中の流れにきちんとキャッチアップしていってくれる期待感があります。

今後やはり開発のトレンドとしてはHTML5+CSS3という流れになっていくと思いますが、そこでもJavaEEの標準技術だけで実現できることが数多くあります。

その為に我々はSpringを止めるという選択をし、JavaEE以外の技術を排除していっています。唯一O/RマッパーのDomaはJavaEEではありませんが、こちらはバージョン1の説明で記載した通り、JRE以外への依存関係が全く無いという特徴をもっており、使い勝手も抜群に良いので現在は採用しています。将来的にもしかするとJavaEEのO/RマッパーであるJPAに移行するかもしれません。そうなるとTALONは純粋にJavaEE基盤の上で作られている開発ツールという事になります。

TALONはノンプログラミングのWeb開発ツールですので、プログラム知識がある人からすると使いたくないという思いをお持ちになる方もいらっしゃると思います。

しかし、ここまで記したように実はJavaの最先端技術を使って構成されており、さらにプラグインという形で外部のJavaやストアドプロシージャを呼び出して利用する事が可能です(Javaプラグインは現在開発中ですが、JavaEEを利用できる予定です)。是非一度利用について検討して頂ければと思います。

技術的な側面から見た今後のTALONについて

TALONは特定の企業向けに作られる業務システム基盤では無く、様々な用途で使われる事を想定した開発ツールですので、将来に渡って、その時代の技術を基盤とした開発ツールであり続ける事をお約束しています。

現在はJava+JavaEEを用いていますが、これが将来もっと別の良いテクノロジーが現れた際はそちらの技術を使ってTALONを作ると思います。

それが可能なのは、TALONはリポジトリ情報を心臓部として、そのリポジトリを実行モジュールで操作するというコンセプトに基づいているからです。こちらの技術は特許も取得しており、TALONの最重要要素です。リポジトリ構造に関する説明はこちらからご覧ください。

今後TALONがバージョンアップしていき、基盤技術がJavaEE8や9のようになっていってもリポジトリ情報を操作するという仕組みですので、古いTALONをお使いのユーザ様が、作成した業務システムをそのままバージョンアップさせる事が可能になっています。(マイグレーションの必要が基本的にありません。通常のソースコード生成タイプの開発ツールですとこれは不可能です。)

このリポジトリを操作する実行モジュールがたまたま現在はJava8+JavaEE7というだけで、将来は変更する事も可能なのです。(実際には大変な作業にはなりますが。)

 

それでは今回はこの辺で。

文=古関 雄介