GroupSessionで使用している製品は下記の通りです。
| カテゴリ | 製品 | バージョン |
|---|---|---|
| プログラム言語 | Java | 6 |
| WEBアプリケーションフレームワーク | Apache Struts | 1.3.10 |
| データベース | H2 Database Engine | 1.3.159 2011-08-13 |
| ジョブスケジューラー | Quartz | 1.6.0 |
| 全文検索エンジン | Apache Lucene | 3.1.0 |
| MS Excel,Word操作ライブラリ | Jakarta POI | 3.7 |
いろいろな理由がありますが、一番大かったのは「クロスプラットフォームであること」です。
OS環境に左右されず動作できることが製品としての強みになると考えた結果Javaの採用に至りました。
他の選択肢としてJSF等も検討しましたが、「枯れた技術となりつつある」「情報の豊富さ」といった面から採用を決定しました。
DBの決定までには長く時間がかかりました。
開発当初はPostgreSQLを使用していました。ここでユーザにとってインストール、設定に手間がかかりすぎることが問題となりました。
そのためApache Derbyへ移行し順調に開発を進めていましたが、データコンバートを作成した段階で動作の遅さが問題となりました。
80名で4年程使用したスケジュールデータを検索するのに10秒程度かかったため他のDBを検討することになりました。(プログラムの作り方にも問題があったかもしれません)
そこでまだ歴史の浅い製品ではありましたが、評判の良かったH2 Database Engineを試したところ高速、正確に動作することを確認でき採用に至りました。
Version2を作成するにあたり自動で処理を行うためのジョブスケジューラーは不可欠でした。
「Javaで作成されていること」という条件があると他の選択肢はほぼ見つけることができませんでした。
調べてみると大きな導入実績があり、まずは使ってみようということになりました。
実際にQuartzを使ってみると安定して動作し、十分に要件を満たしてくれることがわかり採用に至りました。
Version2,Version3のヘルプ機能の検索に使用するため日本語に対応し、
Javaで作成されている全文検索エンジンが必要でした。
自前で実装することも検討しましたが、試してみた時に簡単に導入できたのでそのまま採用にいたりました。
タイムカードから勤務表を作成する機能を実装するにあたり無償のPDF作成ライブラリを探していました。
JavaからPDFの出力する機能は有償の製品が多く、無償で使用できる製品もありますがレイアウトの作成に 手間のかかるもの等が多く、現実的に使用できる製品を見つけることはできませんでした。
そこでPDFではなく、多くのユーザで使用できるExcelで出力することに切替えることにし、
技術的なノウハウもあったことからJakarta POIを採用するに至りました。
Excelでレイアウトを作成し、作成したレイアウトに値を設定するだけで良く、非常に効率的です。