ルールエンジンは、ルールベースのロジックを管理および実行するためのツールです。あらかじめ定義された一連のルールに基づいており、入力データと条件に基づいて自動的に対応するアクションや決定を実行します。ルールは条件-アクション形式で表現され、条件は特定の状況やイベントを説明し、アクションは条件が満たされたときに実行される操作を定義します。複数のルールが存在し、それぞれ独自の条件とアクションを持つことができます。
ルールエンジンの利点は、その柔軟性とスケーラビリティにあります。ユーザーは、基盤となるコードを変更することなく、複雑なビジネスルールを簡単に定義および管理できます。また、ルールエンジンはビジネスプロセスの自動化を強化し、手動介入を減らし、効率性と正確性を向上させます。
ルールエンジンは、ビジネスプロセスマネジメント、意思決定支援システム、リスク評価、詐欺検出、ネットワークサービス保証など、さまざまな分野で広く利用されています。これにより、組織や企業は複雑なビジネスルールを管理および実行するための柔軟で構成可能な方法を提供します。
EdgeOneのルールエンジンの例を取ると、ルールエンジンの作業プロセスは以下のステップで要約できます:
ルールエンジンの作業プロセスは通常自動化されており、あらかじめ定義されたルールセットに基づいて迅速にルールマッチングと推論を行い、ビジネス要件における差別化されたシナリオをカバーします。
ルールエンジンデザインパターンは、ルール処理のロジックからルールを分離するソフトウェア開発技術であり、単一責任原則に従っています。このデザインパターンにより、システムの残りの部分を変更することなく新しいルールを容易に追加でき、オープン/クローズ原則にも準拠しています。
ルールエンジンデザインパターンは、ルールのコレクションを反復処理し、実行し、結果を評価し、取るべきアクションを決定するEvaluatorクラスで構成されます。これらのルールは、単一の責任を持つ単純なインターフェイス(例えば、IDiscountRule)を実装しており、必要に応じて単純または複雑にすることができます。このアプローチにより、コードの整理が改善され、可読性、保守性、テスト性が向上します。特に長いif-elseやswitch文を置き換える必要がある場合や、データが複数の条件に一致し、複数のプロセスがそれに対して実行される可能性がある場合に役立ちます。ルールエンジンデザインパターンは、レコードバージョンや顧客オブジェクトのプロパティに基づいて異なるルールセットを適用する必要がある場合に特に有用です。ルールを処理ロジックから分離することで、開発者は全体のシステムアーキテクチャに影響を与えずにルールを簡単に管理および更新できます。
HTTP/HTTPSのようなアプリケーション層プロトコル専用に設計されたインターネットコンテンツ配信加速サービスと比較して、EdgeOneのルールエンジンは、ウェブサイト、オンラインアプリケーション、ストリーミングメディアなどのコンテンツ配信に特に適しています。ルールエンジンは、キャッシュ最適化、ファイル最適化、ネットワーク最適化などの豊富な構成オプションを通じて、よりカスタマイズされた、効率的で安定したコンテンツ配信を実現します。これにより、ビジネスユーザーの満足度が向上し、ウェブサイト、アプリケーション、または他のオンラインサービスの競争力が強化されます。
ルールエンジンは、異なるサブドメイン、パス、またはファイル拡張子など、マッチング条件に違いがある構成に適しています。また、キャッシュやHTTPSなどの基本的な構成や、カスタムキャッシュキー、URLの書き換え、HTTPヘッダーの修正などの追加の加速機能もサポートしており、特定のビジネスニーズに応えています。
EdgeOneのルールエンジンで設定できる条件は、以下の表に示されていますのでご参照ください。
タイプ | 説明 | サンプル値 |
---|---|---|
HOST | リクエストホスト | www.example.com |
URLパス | リクエストURLパス | /example/foo/bar パスに一致させたい場合は、/example/foo/bar と記入します。/example ディレクトリとその下のすべてのファイルに一致させたい場合は、/example/* と記入します。 |
URLフル | リクエストされたURLの完全内容 | https://www.example.com/foo |
クエリ文字列 | リクエストURLのクエリ文字列 | パラメータ名: キー パラメータ値: 値 |
ファイル拡張子 | リクエストされたコンテンツのファイル拡張子 | jpg, png, CSS |
ファイル名 | リクエストされたコンテンツのファイル名 | foo.txt |
HTTPリクエストヘッダー | HTTPリクエストヘッダー | HTTPリクエストヘッダー名: name HTTPリクエストヘッダー値: value |
クライアント地理位置情報 | クライアントIPの国/地域 | アメリカ合衆国 |
リクエストプロトコル | リクエストされたプロトコルタイプ | HTTPSまたはHTTP |
すべて | 任意のサイトリクエスト | N/A |
アクションは、マッチングリクエストがヒットしたときにルールエンジン内で実行される一連の機能構成を指します。以下の表は、ルールエンジンのサポートされているマッチングタイプとアクションを示しています。詳細については、サポートされているマッチングタイプとアクション.
アクション | 説明 | サポートされているマッチングタイプ |
---|---|---|
ノードキャッシュTTL | キャッシュTTLを設定することで、ノードキャッシュを最適化し、リソースの読み込みを改善し、リソースを迅速に更新できます。 | HOSTURL FULLURL PathFile nameFile extension |
ブラウザキャッシュTTL | リソースのブラウザキャッシュ期間を調整することで、ブラウザキャッシュを最適化し、要求されたリソースの読み込み速度を向上させることができます。 | HOSTURL FULLURL PathFile nameFile extensionQuery stringClient geolocation |
カスタムキャッシュキー | 要求されたリソースを迅速に読み込むために、クエリ文字列、HTTPヘッダー、およびURLケースを設定することでキャッシュキーをカスタマイズできます。 | HOSTURL FULLURL PathFile nameFile extensionQuery string HTTP Request HeaderClient geolocation |
ステータスコードキャッシュTTL | オリジンレスポンスのステータスコードにTTL期間を指定することで、ノードが非2XXコードで直接応答できるようになります。 | HOSTURL FULLURL PathFile nameFile extensionQuery string |
キャッシュプレフレッシュ | キャッシュされたリソースは、有効期限前にオリジンプルを介して検証されるため、サイトは要求に迅速に応答できます。 | HOSTURL FULLURL PathFile nameFile extension |
オフラインキャッシュ | オフラインキャッシングが有効になった後、オリジンが失敗し、オリジンプルを介してリソースを取得できない場合でも、通常、ノードにキャッシュされたリソース(期限切れのリソースも含む)を使用して、オリジンが回復するまで応答できます。 | HOSTURL FULLURL PathFile nameFile extensionQuery string HTTP Request HeaderClient geolocation |
ここでは、読者が参考にできる簡単な例を示します。
リクエストURLが: https://test.example.com/example/1.jpg の場合、ファイルは10分間キャッシュされます。
リクエストURLが: https://test.example.com/example/1.mp4 の場合、ファイルはキャッシュされません。
リクエストURLが: https://test.example.com/video/1.jpg の場合、規定のルールには適合しません。
Tencent EdgeOne は、ビジネスサービスにおける柔軟性と粒度を提供します。必要に応じて、マッチングタイプをカスタマイズし、対応するアクションに適用できます。さらに詳しく知りたい場合は、お気軽にお問い合わせください。