0

Oracleデータベースのストアドプロシージャにビジネスロジックを実装するアプリケーションを開発しています。それは数年前からこのようになっています。ビジネスルールは多種多様で、特定の顧客向けにカスタマイズされることがよくあります。

現在、それらはデータ管理およびデータ取得コードと多少混ざっています。 私はBRMSのロジックの一部を移動することを提案することを考えていました。

私の同僚は、次の理由でそれに反対する可能性があります。

  1. 彼らは、PLSQLに基づく現在の実装は、中間層、つまりJavaにロジックが実装されている実装よりもかなり効率的であることを経験しました。

    多くの場合、ユーザーはソフトウェアからの応答時間を短くする必要があります。これは、ソフトウェアが産業環境での操作も指示するためです。

  2. 私たちのチームは大きくはなく、ビジネスルールに最も精通している人々は、ストアドプロシージャを実装した人々でもあります。これらはJavaでの作業には使用されません。とりわけ、PLSQLを使用すると、フレームワーク、システム統合、および異なる層間のマッピングに関するすべての問題を無視できます。

    PLSQL以外のものに切り替える場合は、多くのJavaコーディングを必要とせず、フレームワークに依存しないものである必要があります。

  3. PLSQLを使用すると、アプリケーションの重みを高価なDBMSに活用できます。理想的には、BRMSとDBMSを効果的に統合したいと考えています。

私の提案をよりよく提示するには、次の問題についていくつかの客観的な数字が必要です。

  1. 保存された手順からBRMSに移行した場合のパフォーマンスの低下
  2. DBMSとBRMSの統合
  3. PSLSQLおよび純粋なJavaコードによって提供されるものと比較したBRMSによって提供される抽象化
  4. スイッチに必要なトレーニング

私はネットを調べて、いくつかの参照を見つけました。残念ながら、それらのほとんどは、純粋なJavaコードとストアドプロシージャ、または純粋なJavaコードとBRMSのいずれかの実装を比較しています。ストアドプロシージャとBRMSを比較したり、ストアドプロシージャソリューションをBRMSと統合する方法を説明したりするものは見つかりませんでした。

どうもありがとう。

4

2 に答える 2

1

Oracleにはルールエンジンが組み込まれていますが、これは広く公表されていません。ただし、PL / SQLを使用して構築されており、もちろん、そのインターフェイスはPL/SQLです。

いくつかのETLタスクに使用しましたが、バルクデータに高いパフォーマンスを必要とするものはありませんでした。柔軟性のためにパフォーマンスをいくらか犠牲にしても構わないと思っているなら、私はそれをお勧めします。

http://docs.oracle.com/cd/B19306_01/appdev.102/b14288/toc.htm

于 2012-12-03T15:29:47.103 に答える
1
  1. 十分に確立されたエンジンを選択した場合、ルールエンジンのパフォーマンスは、データベースにアクセスしてルールを取得および評価するシステムのパフォーマンスよりもはるかに優れている可能性があります。現在使用しているエンジンは、1つの複雑なルールに対して約50ミリ秒で約200万個のオブジェクトを評価できます。これは200万の複雑なオブジェクトです。

  2. エンジンの機能の1つは、プログラマーではなく、ビジネスマンがルールを作成および管理できるようにするUIである必要があります。適切なエンジンがあれば、プログラマーはルールを作成および管理すべきではありません。あなたはおそらくオープンソースエンジン(Droolsなど)を見ているでしょう。彼らは一般的にこの点を見逃しています。そのため、ビジネスルールを作成するにはJavaを習得する必要があるという印象があります。それはそもそも間違った仮定です。

  3. ビジネスルールエンジンの全体的なポイントは、メインコードからビジネスロジックを抽象化することです。データベースベースのシステムは、通常のBREが提供するレベルの抽象化を提供しません。私はあなたのシステムを知りませんが、エンジンと「データベースルールシステム」について私が知っていることに基づいて、それについて99.9%肯定的です。ルールを保存するにはデータベースが必要です。それで全部です。

  4. それはあなたが選ぶエンジンに依存します。トレーニングは通常、ITの場合は最小限であり、ビジネスの場合はやや中程度です。

お役に立てれば。

于 2012-12-03T14:23:11.223 に答える