この記事には複数の問題があります。改善にご協力いただくか、トークページでこれらの問題について議論してください。(これらのメッセージを削除する方法とタイミングについてはこちらをご覧ください)
|
Canigóは、カタルーニャ州政府のJava EE フレームワークに選ばれた名前です。[1]
目的とアーキテクチャ
Canigó は、「カタルーニャ自治政府の企業システムおよび部門向け Web アプリケーションの開発と実行のための共通の技術フレームワーク」として定義されています。
さまざまな機能をカバーします:
- Java EE アプリケーション構築のための共通アーキテクチャ。
- コンポーネントのワークスペース、ドキュメント、サポート、メンテナンスを提供します。
- 参照フレームワークを提供することで、Java EE に固有の複雑さを簡素化します。
- オープンソース コミュニティ全体のデファクトスタンダードに準拠したソリューションを提供します。
- コストを削減しながらあらゆるソフトウェアを追加および交換できるオープン ソリューションを提供します。
- カタルーニャ自治政府の企業サービスとの相互接続ソリューションを提供します。
Canigóのアーキテクチャは、モデル・ビュー・コントローラに基づいています。アプリケーションロジックを3つの主要コンポーネントに分割し、チーム内の異なる役割で開発できる抽象化プロセスが採用されています。
実際、MVC 構造化フレームワークとしての Canigó のアーキテクチャは、3 つのレイヤーと 4 つの横断的なモジュールに分かれています。
- レイヤー
- プレゼンテーション層
- ビジネスロジック層
- データ永続性/統合層
- モジュール
- フレームワークコア
- セキュリティモジュール
- サポートモジュール
- 操作モジュール

Canigóのモジュール構造により、開発者はプロジェクトの要件を満たすために必要なモジュールのみを使用することができます。これらのモジュールはインターフェースを通じて定義され、選択された実装から分離されます。
Canigóは、一連のリソース、JPAなどのAPI統合、そしてオープンソースパッケージ(Spring、Swaggerなど)をベースにしています。また、これらのパッケージの拡張機能も提供しており、再利用可能なコンポーネントの幅広いカタログを追加できます。
最も重要なアーキテクチャ基盤の一つは、REST APIを用いてフロントエンドとバックエンドを分離することです。このアーキテクチャにより、フロントエンドとバックエンドで独立した開発チームが作業できるようになります。
フレームワークは、以下に指定されたブロックで構成されます。
フレームワークアーキテクチャの基本コンポーネント
Springは、Javaプラットフォーム用に書かれたオープンソースフレームワークです。最初のバージョンは2002年10月にRod Johnsonによって作成され、最後のリリースバージョンは2018年9月の第1週に公開された5.0.9です。Canigóは、Webアプリケーションの構成を支援することを目的として設計されており、さまざまな部分(簡単に交換でき、それらの間で可視性がある)でのシステム構築、サービス統合、セキュリティサービス、データベース接続、トランザクション性などを簡素化します。Springは完全なテストシステムを提供し、オブジェクトをそのコンテキストから切り離して単一のテストを開発し、テストケースの実行を容易にすることができます。Springを介した外部データアクセスは、このフレームワークがリソースを独自に管理するため簡単なタスクです。また、サポートAPIがあり、JDBC、Hibernate、JPA、JDO、iBatisなど、Java業界のデータアクセステクノロジの大部分に対応できます。
Canigóのアーキテクチャの基盤は、Java Webアプリケーション開発技術におけるベストプラクティスをモジュール形式で完全に統合したものです。システムを構成するコンポーネントは以下のとおりです。
- Swaggerは、開発者がRESTful Webサービスの設計、構築、ドキュメント作成、利用を支援する、大規模なツールエコシステムを備えたオープンソースソフトウェアフレームワークです。多くのユーザーはSwagger UIツールを思い浮かべますが、Swaggerツールセットには、自動ドキュメント作成、コード生成、テストケース生成のサポートも含まれています。
- Spring4フレームワークは、XMLファイルまたはJavaアノテーションで完全に設定可能な、集中型のオブジェクトおよびサービスコンテナです。依存性注入(DI)により、アプリケーションコード外でオブジェクトを非侵入的に設定できます。設定とリソースのローカライズに費やすアプリケーションコードを削減します。また、クラスではなくインターフェースに対するプログラミングといったベストプラクティスの適用を容易にし、サービスの分離や、ある実装から別の実装への迅速な変更を可能にします。さらに、アスペクト指向プログラミングを用いることで、特定のAPIを使用せずにトランザクションを管理することも可能です。
- JPAは、JavaリレーショナルデータベースをマッピングするためのPOJOベースの永続性モデルを提供します。また、最も人気のある非リレーショナルデータベースであるMongoDBもサポートされています。
- ソース コードを変更せずにアプリケーションのイベントをインターセプトするためのAOP (アスペクト指向プログラミング)。
フレームワークコア
このモジュールはフレームワークの中核であり、主な機能がここにあります。
- マルチ環境設定:Spring3が提供するPropertyPlaceHolderをベースにしています。追加のBeanやプロパティ設定なしで、環境依存のプロパティを定義できるという違いがあります。
- 多言語 (i18n): 複数の言語のサポートを容易にすることで、アプリケーション開発フェーズを支援することを目的としています。
- トレースサービス:Log4jをベースにしています。トレースレベル、出力、最小トレースレベル、出力形式、コンテキスト情報を定義できます。
- 例外サービス: リクエスト実行中に発生したエラーに関する情報を生成します。Canigóはデフォルトで一連の例外(BaseException、CoreExceptionなど)を提供します。また、try-catchの過剰な使用を回避するための例外インターセプションメカニズムも備えています。
セキュリティモジュール
これは、ユーザーの認可および認証アプリケーション アクセス管理システムです。
- セキュリティモジュール: Spring Security 4.x をベースにしており、アプリケーションユーザーの認可と認証を管理できます。
- セキュリティ バックエンド: セキュリティ サービスは、GICAR、SACE、LDAP、データベース、および Inmemory と統合されています。
プレゼンテーション(UI)モジュール
Canigo 3.2.0以降、JSFはプレゼンテーション層テクノロジーとして非推奨となりました。プレゼンテーション層の役割はフレームワーク外で、 AngularやReactなどのフロントエンドテクノロジーに特化した別のチームに委譲されています。
統合モジュール
その目的は、カタルーニャ自治政府が提供するさまざまなサービスへの簡単なアクセスを提供することです。
- PICA: 「PICA(管理統合プラットフォーム)」にアクセスするための統合Javaインターフェースを提供します。このモジュールは、同期および非同期リクエストを実行できます。
- GECAT: このモジュールには、Gecat の SAP サービスによって提供される請求書管理用の機能セットがあります。
- PSIS: Catcert が提供するデジタル署名およびデジタル証明書サービスです。
- SARCAT: 計画されたリクエストに対して Web サービス、 FTP / SFTPを介して S@rcat が提供するサービスを実行する一連のメソッドです。
- Documentum: ドキュメントのファイリングや取得などの Documentum 機能の利用を可能にし、フォルダーやメタデータの管理も可能です。
- NT:カタルーニャ州政府のテレマティック[スペルチェック]通知の使用を簡素化する PICA の機能コネクタです。
- ウイルス対策: カタルーニャ州政府の CTTI (情報技術および電気通信センター) ファイル スキャン システムを統合したものです。
- SAP:カタルーニャ州政府のSAPバックエンドにアクセスするための簡素化されたインターフェースです。
- Webサービス:Canigó 3にはネイティブのWebサービスモジュールがありません。JavaでWebサービスをエクスポート、公開、利用する方法については、詳細なドキュメントガイドが用意されています。Canigó 3では、Spring WS、Jaxb、OXMの使用が推奨されています。
- キュー:Canigó 3にはキュー管理モジュールがありません。キューからメッセージを生成および消費する方法についてはガイドがあります。Spring JMSの使用をお勧めします。
永続モジュール
このモジュールにより、アプリケーションとデータベース管理システム間でのデータの永続化と取得が可能になります。
- JPA: Java Persistence API ORM (オブジェクト・リレーショナル・マッピング)ツールを統合します。Canigó 3 のデフォルトの JPA 実装はHibernateです。Spring Data JPA を使用すると、JPA ベースのリポジトリを簡単に実装できます。これにより、データアクセス技術を利用する Spring ベースのアプリケーションの構築が容易になります。
- MongoDB: Spring Data MongoDB により、MongoDBドキュメント データベースと簡単に統合できます。
サポートモジュール
このモジュールはフレームワークにいくつかの追加機能を提供します。
- ファイル転送: サーバーが HTML 形式で添付されたファイルを受信できるようにします。
- メール通知:サーバーが複数のアドレスにメールを送信できるようにします。プレーンテキストとHTMLのメッセージコンテンツ形式に対応しています。また、複数のファイルを添付することも可能です。
- タスクプランナー: SpringとQuartzをベースにしています。事前定義された時間スケジュールルールに基づいて遅延タスクを実行するオプションを有効にします。
- OLE: MS ExcelおよびWordのOLEドキュメント形式を操作できます。ドキュメントの作成、読み取り、変更が可能です。POIライブラリに基づいています。
- マージ:WordML形式のドキュメント統合。タグ付きドキュメントから開始し、辞書で定義された値のグループによって変数が交換されます。
- SFTP: アプリケーションがデプロイされているサーバーと他のサーバー間のファイル転送を、安全なプロトコルを介して可能にします。JSCHおよびCommons-VFSライブラリに基づいています。
操作モジュール
このモジュールは、アプリケーションに実行データとインストルメンテーションデータを生成する機能を追加します。このデータは、監視ツールによるマイニングと処理が可能です。
- インストルメンテーション: アプリケーションがインストルメンテーション データ (クエリ数、エラー数など) を生成する機能を有効にします。このデータはアプリケーションの実行から取得されます。
- 監視: アプリケーションが計装モジュールによって生成されたデータにアクセスするための画面を表示できるようにします。
- ログ記録: アプリケーションがログ アペンダーを管理 (有効化、無効化、ログ レベルの変更) し、WebSocket を使用してログをリアルタイムで表示できるようにします。
参考文献
- ^ “フレームワーク・カニゴ”. Informació, tràmits iserveis de la Generalitat de Catalunya (カタルーニャ語) 。2024 年10 月 16 日に取得。
外部リンク
- ポータル・デ・カニゴ