Corticon 5.3 : Corticon Foundation User Guide.pdf メモ

こんにちは。渡邊です。

商用ルールエンジン、Corticonの研究をしています。

“Corticon Foundation User Guide.pdf” を一読しました。
Corticonの基盤APIを使ってできることや内部設計の概要について記されていました。
要点と個人的なメモを残します。詳細は別記事として追々投稿していこうと思います。

便宜上、原文のassetをリソースと訳しました。Vocabulary/Rulesheet/Ruleflow/Ruletestを保存したファイル(それぞれ独立しています)を指します。

基盤API(Corticon Foundation API)とは

  • 独自アプリケーションで利用できるフレームワークニュートラルなAPI一式。
  • Javaで実装されている。
  • クライアントの例
    • Eclipseプラグイン(Studioがこれに相当する)
    • GUI無し Client
    • Java Swing/AWT UI
    • NET UI Framework
    • Web 2.0 (GWT, Flex, RAP)
  • 基盤APIのクラス群
    • Eclipse RCPアプリケーション向け:Eclipseプラグイン一式に含まれる。
    • 非Eclipseアプリケーション向け:JARファイルに含まれる。

    設計思想

  • コードの再利用を最大化する為に可能な限りのロジックを基盤APIに寄せ、UIフレームワーク依存のコーディングを最小化する。
  • ステートフルなAPIである。
  • 基盤APIを使ってできること

  • Corticon Studioでできることはなんでもできる(Corticon Studio自体が基盤APIを利用している)。
    • リソースの登録と更新
    • 実行ルール分析機能(例えば、曖昧さのチェック、完全性チェック、展開、折り畳み)
    • テストを実行し、期待される結果と出力を比較
    • レポート作成
    • メトリック収集のためのリソース分析
    • Corticonスタジオに匹敵するルール全体の作成体験を全てのユーザに提供する、包括的なUIの作成
  • 関連するリソース間の状態同期
  • トランザクション管理(対応API限定)
  • その他:リスナー登録、デリゲート差替え、ロケール設定
  • Presentation API
    リソースから情報を取得したり、エディタを実装するために必要なサービスを含む。

  • IVocabularyTreeModelAPI
    • ツリービューと付随するプロパティテーブルを使用し、Vocabularyを作成/更新することができる。
  • IRulesheetTableModelAPI
    • デシジョンテーブルを使用し、Rulesheetを作成/更新することができる。
  • IRuleflowDiagramModelAPI
    • ダイアグラムの表示を使用し、Ruleflowを作成/更新することができる。
  • IRuletestTabFolderModelAPI
    • タブフォルダ(各タブがTestsheetを含む)を使用し、Ruletestを作成/更新することができます。

    Companion API
    Presentation APIの機能拡張。 Corticon製品のライセンス条項や他の条件により、インストールされていないかもしれない機能。
    (IExpandCollapseAPI以下については、私自身がStudioで試したことがない機能に関するAPIです。書いておきながら、よく理解できていないものがあります)

  • IAmbiguityCheckAPI
    • Rulesheetの曖昧さをチェックする。
  • ICompletenessCheckAPI
    • Rulesheetの完全性をチェックし、不足しているルールを追加する。
  • IExpandCollapseAPI
    • 展開/折り畳み/圧縮。
  • IDatabaseAccessAPI
    • データベース・アクセス機能を追加する
  • IDatabaseMappingAPI
    • 語彙要素とデータベースのメタデータ間のマッピングを操作する。
  • IDatabaseMetadataAPI
    • データベースのメタデータを操作する。
  • IJavaMappingAPI
    • 語彙要素とエンドユーザのJavaオブジェクト間のマッピングを操作する。
  • IJavaMetadataAPI
    • エンドユーザーのJavaオブジェクトのメタデータを操作する。
  • IOperationsModelAPI
    • Corticonルール演算子やエンドユーザーの機能拡張に関するメタデータへのアクセスを提供する。
  • ITestsheetTreeSetModelAPI
    • Ruletest Presentation APIの拡張。Testsheetレベルで操作するメソッドを提供する。

    Dialog “Smarts” API
    UIのモーダルダイアログ、またはウィザードを実装するために必要なサービス。
    ダイアログ/ウィザードをサポートするために必要なサービス、ロジックをAPIとして括りだしたもの。
    おおよそ、ダイアログ/ウィザード : Dialog “Smarts” API = 1 : 1の関係がある。

  • IImportAPI
    • Version 4インポートウィザード
  • IVocabularyDialogAPI
    • Vocabulary新規作成ウィザード
  • IRuleflowDiagramDialogAPI
    • Ruleflow新規作成ウィザード
  • IRulesheetDialogAP
    • Rulesheet新規作成ウィザード
  • IRuletestDialogAPI
    • Ruletest新規作成ウィザード
  • IAssociationDialogAPI
    • Vocabularyエディタに関連するダイアログ
  • IJavaMetadataImportDialogAPI
    • Vocabulary JOM(Java Object Mapper?)メタデータのインポートダイアログ
  • IRuletestRenameDialogAPI
    • Testsheetの名前の変更ダイアログ
  • IRuletestTabFolderDialogAPI
    • テスト件名変更ダイアログ
  • IAssociationHREFDialogAPI
    • RuletestエディタのHREF-Styleに関連するダイアログ

    Canonical API
    リソースの標準要素(モデル)を維持するために必要なサービスを含む。現在は内部使用のみ。
    Presentation APIがモデルの状態更新をCanonical APIに委譲している。

  • IVocabularyModelAPI
    • VocabularyモデルAPI
  • IRulesheetModelAPI
    • RulesheetモデルAPI
  • IRuleflowModelAPI
    • RuleflowモデルAPI
  • IRuletestModelAPI
    • RuletestモデルAPI
  • ITestsheetModelAPI
    • TestsheetモデルAPI

    所感
    Corticonはドキュメントが丁寧に記されていて好印象です。内容は包括的で整理されており、読みやすいです。日本語版があればもっとよいですね。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です