① ユーザインタフェイス構築支援
SC-RCPではSwing (Java 標準 GUI Toolkit ) 拡張クラスを GUI 構築のベースとして使用した高機能カスタムコンポーネントを提供します。これらの GUI コンポーネント(ユーザインタフェイス部品)は、日本人のビジネスユースにおけるキーボード入力操作を主体とした利用を想定して、仮名漢字変換操作に関連した IME 制御を含む改善や、フォーカス移動に伴う入力画面の自動的なスクロールなど、ネイティブアプリケーションに慣れ親しんだユーザが違和感なくアプリケーションを操作できるよう、細部に渡って機能追加・改善が行われています。
また、SC-RCPでは煩雑になりがちなユーザインタフェイス開発の生産性・品質向上のために、アプリケーションが取り扱うデータに関するメタ情報(データ型および制約情報)を定義し、GUI コンポーネントまたはデータモデルにメタ情報を付与(マッピング)することで、データを中心としたユーザインタフェイス制御を行うための仕組みを提供します。
- Excelライクな操作性を持つグリッド / ツリーグリッド コンポーネント
- SC-RCP では、ビジネスアプリケーションにおける大量データの快適な表示・入力をサポートするべく、Microsoft® Excel® と同様の機能と操作性を提供するテーブルやツリーテーブルなどの高機能コンポーネントを提供します。これらのグリッドコンポーネントは各セルの入力・表示インタフェイスに上記で紹介したGUIコンポーネントを使用しますので、IME制御を用いた仮名漢字混じりの大量データの快適な入力をサポートします。
また、GUI コンポーネントと同様、グリッドコンポーネントが持つデータモデルにメタ情報を付与することにより、各セルに適切な入力・表示インタフェイスが提供されます。
- Excelライクな操作性を持つグリッドコンポーネント
- Excel と同様、ビュー分割/ウィンドウ固定、フィルターによる絞り込み、データのソート、検索、キーボードショートカットによる操作も可能な Copy/Cut/Paste、Undo/Redo などの機能を提供し、快適な大量データの入力・編集をサポートします。
※この動画では、青空文庫様が公開しておられる図書カード・書架情報のデータを使用しております。
- 列のグルーピングと段組み表示
- グリッドの列をグルーピングし、まとめて操作可能にする列グループを設定可能です。この列グループもグルーピング可能で、任意の段組みでヘッダ行を表示可能です。また、グリッドの列および列グループはマウスのドラッグ&ドロップにより移動できますので、列の表示順は任意に変更可能です。
- 列の表示切替 / 表示順変更
- 一時的に表示したくない列を非表示列にする機能を提供します。非表示列は Excel と同様二重線で表示され、マウスカーソルを合わせてクリックすることで再表示可能です。
- ビュー分割/ウィンドウ枠固定
- Excel と同様、グリッドコンポーネントは分割ボックスコントロールによりビュー分割を実施する機能を提供します。また、特定の行や列を固定したままスクロールするウィンドウ枠固定の機能も提供します。
- 絞り込みフィルタ
- Excel と同様、列のフィルタリング設定で表示行を絞り込むフィルタ機能を提供します。列にマッピングされたアプリケーションメタデータに応じて適切なフィルタリング用 UI が自動的に提供されます。
- ソート
- Excel と同様、列のダブルクリックによる特定列データ値に基づく昇順・降順ソートを実施する機能を提供します。また、右クリックメニューにより複数の条件を組み合わせた並び替えを実施する機能も合わせて提供します。
- 検索
- Excel と同様、特定の値を含むセルを見つけてそのセルにジャンプする検索機能を提供します。また、列名および列グループ名を対象とした検索や、入力データの状態(変更の有無や入力値検証結果など)に基づく検索機能なども合わせて提供します。
- Copy/Cut/Paste
- Excel と同様のマウス・キーボード操作でグリッドの値のコピー/カット/ペースト (Ctrl+C / Ctrl+X / Ctrl+V) を行う機能を提供します。グリッドコンポーネントはマウス・キーボード操作で任意のセル範囲の選択が可能なので、柔軟で高速な値入力をサポートできます。
- Undo/Redo
- Excel と同様のマウス・キーボード操作でグリッドに対して行った任意の変更のアンドゥ・リドゥを実施する機能を提供します。
- 行のドラッグ&ドロップ
- グリッドの行をドラッグ&ドロップすることで、任意のデータ順の入れ替えを可能とする機能を提供します
- 階層データのツリー構造とノード属性をまとめて表示・編集可能なツリーグリッドコンポーネント
- 階層構造データの階層構造と各ノードの属性情報を合わせて表示・編集できるように、属性情報の編集に適したExcel風グリッドコンポーネントに階層構造を表現可能なツリーを埋め込んだツリーグリッドコンポーネントを提供します。
基本的な機能はグリッドコンポーネントと同様ですので、Excelライクな操作性を提供します。
機能詳細 >>>- ツリー表示列へのツリーの埋め込み
- グリッドに埋め込まれたツリーは通常のツリーと同様開閉可能で、グリッド表示列も合わせて開閉します。また、埋め込まれたツリーの構成属性だけでなく、各ノードのエンティティ情報をグリッド列に属性として表示する機能を提供します。
- ツリーノードのドラッグ&ドロップ
- ツリーノードのドラッグ&ドロップにより、ツリー構造の変更を実施する機能を提供します。ツリー構造を変更するとグリッド行も合わせて移動します。
- Excelライクな操作感
- ツリーグリッドコンポーネントは、グリッドコンポーネントが提供する Microsoft® Excel® と同様の機能と操作性を提供します。
- データ中心アプローチによる UI 制御
- アプリケーションの取り扱うデータには、必ずメタ情報(データ型および制約情報)があります。SC-RCPは、これらのメタデータおよびデータモデルをXML形式のファイルベースで定義しGUIコンポーネントと関連付けることで、GUIコンポーネントのレイアウト記述を行うJavaコードに手を加えることなく、適切な GUI インタフェイスの提供を可能とするフレームワークを提供します。
このフレームワークにより、GUI コンポーネントに対する入力ミスを事前に防ぐバリデーションルールや IME 制御情報などをメタ情報側に記述することで制御できるようになります。
- XMLによるデータ及びメタ情報定義
- アプリケーションが取り扱うデータ(モデル・共有データ)とデータに関するメタ情報(データ型および制約情報)を定義し、GUI コンポーネントまたはデータモデルにメタ情報を付与することにより、データを中心としたユーザインタフェイス制御を行うための仕組みを提供します。
- XML 定義ベースのユーザインタフェイス制御設定
- XML を使用したデータモデル、メタ情報、ユーザインタフェイス処理部品、共有データ等の定義や GUI コンポーネントとの関連付け、Bean プロパティ設定など、XML 定義ベースのユーザーインタフェイス構築支援を行うための仕組みを提供します。
- マトリクス構築支援フレームワーク
- SC-RCPは正規化された複数のデータを特定の行、列、および要素に対応する非正規化データとして取り扱い、マトリクス状に展開して表示・操作するマトリクスビュー構築をサポートするマトリクス構築支援フレームワークを提供します。マトリクス構築支援フレームワークでは、正規化されたマトリクス要素データを元にマトリクスの行データ・列データを自動生成し、マトリクス上に表示する機能を提供します。
- WindowBuilder による GUI コンポーネントレイアウトを支援するEclipse Plugin
- Swingアプリケーションの最も一般的なGUI開発環境である Eclipse + Window Builder で SC-RCP のGUIコンポーネントを用いた画面構築をスムーズに行えるEclipse Pluginを提供します。
② 多様なDBアクセス
SC-RCPではデータベースアクセスの方法として、SQL文ベースのデータベースアクセスをサポートするための基盤機能、および開発フレームワークを提供します。SC-RCP が SQL 文ベースのデータベースアクセスをサポートする理由は、ビジネスアプリケーションではデータベースアクセスのパフォーマンスが重要な要件であり、そのパフォーマンスチューニングのためには SQL 文によるデータベースアクセスが最適であると考えるからです。
SC-RCP ではマルチ RDBMS をサポートするデータベースアクセス基盤を提供すると共に、RIA アーキテクチャにおける効率的なデータベース操作処理の実装をサポートするための開発フレームワークとして、SQL文の管理・生成・実行を支援する3つのデータベース処理実装フレームワークを提供します。
- データベースアクセス基盤
-
- マルチRDBMSサポート
- 接続先のデータベースプロダクトを意識することなくSQL文の発行と実施結果の取得が可能なマルチRDBMSアクセス基盤 (Oracle / SQLServer / MySQL / PostgreSQL) を提供します。
この機能により、システムの成長やビジネス環境の変化に伴う利用データベースプロダクトの変更が容易になります。
- JDBCリソース管理
- サービス層で稼働するモジュールが使用するJDBCリソース (コネクション、ステートメント、結果セット 等) のライフサイクル管理を提供しています。
- トランザクション制御
- サービス呼び出しとデータベースのトランザクションの同期制御を行います。
- 簡易DBアクセス
- 特定のフォーマットのファイルに GUI コンポーネントとデータベースのマッピングを記述することで、適切なSQL文の発行・結果取得が可能となるフレームワークです。
- ファイル記述による Non Programming DBアクセス
- このフレームワークを使用することで、Java コードを記述することなくデータベースアクセスの実装が可能となります。
- DAO (Database Access Object)
- ビジネスアプリケーションがアクセスするデータベースの各テーブルのメタ情報を用いて、SQL文の発行と結果取得の Java オブジェクトによるインタフェイス定義 (Database Access Object)を提供するフレームワークです。
- メタデータ自動生成ツールの提供
- データベースのテーブルに対応するメタデータクラスを自動的に生成するツールを Eclipse Plugin として提供します。
- SQL マッパー
- XMLを用いて記述したストアドプロシージャやSQL文の発行をマッパーインタフェイスで定義されたメソッド呼び出しで実施可能なフレームワークです。ユーザの入力に応じて発行するSQL文が変化する場合や、複雑なデータモデルに対してアクセスが必要となる場合など、複雑なアプリケーション要件を満たすSQL文を発行するケースに対応可能です。
- SQL文管理
- Databaseアクセス方法が定義された複数のSQL定義XMLファイルを管理する機能を提供しています。この機能を使用することによりアプリケーションから発行するSQL文を適切な単位で見通し良く管理することが可能です。
- Java メソッド呼出による SQL 実行
- XMLファイルにアプリケーションで発行するSQL定義とパラメータを記述することで、アプリケーションからの Java メソッド呼び出しによる SQL の発行・実行結果の取得を可能とします。
- マッパーインタフェイス作成ツールの提供
- メソッド呼出しによる SQL 文発行に必要となる Java インタフェイス定義を XML ファイルから自動生成するツールを Eclipse Plugin として提供します。
③ 複合アプリケーションの実現
SC-RCP はクライアントサイドにおいて Web アプリケーションや ActiveX/OLE ドキュメントをリッチクライアントに組み込むためのアプリケーション統合機能を提供し、RIA ビジネスユースを想定した複合アプリケーション構築を総合的にサポートする基盤機能を提供します。
この機能を使用して既存の Web アプリケーションやコンシューマ向け Web サービスを埋め込むことで、Web システムの特性・長所を有効に活用し、エンドユーザ様のビジネス活動を総合的にサポートするコンポジット・アプリケーションの構築が可能となります。
- WEBアプリケーション(Webブラウザ)の組み込み
- SC-RCPはWebアプリケーション(Webブラウザ)の組み込み機能を提供します。この機能ではJavaScriptを使用したJavaアプリケーションとの連携もサポートするため、リッチクライアントをベースにWEBシステムの利点を活用したアプリケーションの構築を実現できます。
- ActiveX / OLE ドキュメントの組み込み
- Windows では Office ドキュメント(OLEドキュメント)の組み込み機能や、ActiveX (ファイルビューア)へのアクセス機能を提供します。この機能によりJavaアプリケーション上で各種画像ファイルや動画 (MediaPlayer) の表示、Officeファイルの閲覧・編集 (Excel, Word, PowerPoint)、PDF (Acrobat) やXVL (XVLPlayer) ファイル等の表示が可能となります。
④ 強力なシステム基盤
- サービス基盤(通信基盤)
- HTTP(HTTPS)を使用した通信処理、通信時に必要に応じて行われるデータ圧縮処理、および通信処理に関するログ出力機能を実装しています。また、サーバサイドで稼働するモジュールが使用するデータベース処理のトランザクションと通信トランザクションを自動的に同期します。
- POJO ベースの軽量サービス実装フレームワーク
- アプリケーション処理を POJO(Plain Old Java Object)形式のサービスオブジェクトとして開発し、サーバサイドに配置されたサービス実装をクライアント(ユーザインタフェイス)から透過的に呼び出すための POJO ベースのリモートメソッド呼び出しフレームワークを提供します。
このフレームワークを使用すれば、普通のオブジェクトのメソッドを呼び出すのと同様の方法で、サーバサイドのアプリケーション処理を呼び出すことが可能です。
- ストリーム転送フレームワーク
- ファイルの送受信など、クライアントとアプリケーションサーバ間でストリーム形式での転送処理を行う場合は、通信状態モニタ(ユーザインタフェイス)を備えたストリーム転送フレームワークを使用します。この転送は多重化されており、このフレームワークを使用すれば、データベースを含めた任意のストレージを使用して対象ファイルをサーバサイドで管理し、インターネットを介してクライアント間でファイル共有を行うアプリケーション機能を迅速に実装することが可能です。
⑤ システム運用支援機能の提供
- サイクリックロギング機能
- SC-RCP は、Java Logging API を使用したサイクリックなロギング機能を提供します。 このロギング機能により出力されるログファイルは、タブ区切りテキスト形式で出力されるため、障害発生時に迅速な解析を行うことが可能です。
また、このログファイルは既定の期間後は自動的に上書きされるよう設計されているため、エンドユーザによるログ削除等の不要な運用負荷を無くす一方で、一定期間の詳細な障害発生状況の追跡を可能とします。
- クライアント配布機能
- SC-RCP は、SC-RCP で開発された RIA を Java Plugin(Java Applet)および WebStart(Java Application)を使用して実行するためのクライアント配布支援機能を提供します。 また、この機能にはクライアント機におけるアプリケーション・インスタンスの管理機能が実装されており、排他的な実行制御(同一のアプリケーションは、1つのインスタンスしか起動できない)を行うことが可能です。
- 自己完結型 Java アプリケーション開発サポート機能
- 従来、クライアント側で動作する Java RIA アプリケーションモジュールは、Java 標準機能である Web デプロイメントテクノロジ(Java Applet および Java WebStart)を使用して配布されて来ましたが、Web ブラウザが提供する古いプラグイン機構の脆弱性によるセキュリティリスクの広がりといった Web アプリケーションを取り巻く状況の変化に伴い、Java 9 以降 Web デプロイメントテクノロジは段階的に廃止され、新たに Java 標準機能として提供された自己完結型 Java アプリケーションのパッケージングツールを使用したクライアントモジュールの配布へと移行していく大きな流れとなっています。
SC-RCP では、このような状況変化を踏まえ、Java 標準パッケージングツールをベースとした、自己完結型 Java アプリケーションの開発を支援する独自サポート機能の提供を行っております。この機能を使用することにより、アプリケーションモジュールの自動更新や HiDPI 環境における Java クライアント利用をサポートすると共に、Web デプロイメントテクノロジを使用して配布されていた既存の Java RIA アプリケーションを、容易に自己完結型アプリケーションとして配布できるようになります。