JP6400191B2 - アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットの生成 - Google Patents

アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットの生成 Download PDF

Info

Publication number
JP6400191B2
JP6400191B2 JP2017514362A JP2017514362A JP6400191B2 JP 6400191 B2 JP6400191 B2 JP 6400191B2 JP 2017514362 A JP2017514362 A JP 2017514362A JP 2017514362 A JP2017514362 A JP 2017514362A JP 6400191 B2 JP6400191 B2 JP 6400191B2
Authority
JP
Japan
Prior art keywords
rules
rule
subset
bucket
subsets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017514362A
Other languages
English (en)
Other versions
JP2017534955A (ja
Inventor
ナグラコンダ,ガンガダー
バダパンデシワラ,ラジャラム・ナラシムハ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle Financial Services Software Ltd
Original Assignee
Oracle Financial Services Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle Financial Services Software Ltd filed Critical Oracle Financial Services Software Ltd
Publication of JP2017534955A publication Critical patent/JP2017534955A/ja
Application granted granted Critical
Publication of JP6400191B2 publication Critical patent/JP6400191B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Finance (AREA)
  • Technology Law (AREA)
  • Accounting & Taxation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Stored Programmes (AREA)

Description

優先権主張
本特許出願は、全文が本明細書に援用される以下の同時係属出願に関連し、その優先権を主張する:
A.2014年9月9日に出願された、本特許出願と同一の出願人の名義の、「金融アプリケーションのビジネスオブジェクトを更新するよう設計されたビジネスルールを実現する命令セットの生成(Generating Instruction Sets Implementing Business Rules Designed To Update Business Objects Of Financial Applications)」と題されるインド特許出願連続番号第4421/CHE/2014号;および
B.2015年1月13日に出願された、本特許出願と同一の出願人の名義の、「金融アプリケーションのビジネスオブジェクトを更新するよう設計されたビジネスルールを実現する命令セットの生成(Generating Instruction Sets Implementing Business Rules Designed To Update Business Objects Of Financial Applications)」と題される米国特許本出願連続番号第14/595,223号。
背景
技術分野
本開示は、企業アプリケーションサーバに関し、より具体的には、アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットの生成に関する。
関連技術
アプリケーションは、データを処理して、対応する所望の機能を提供するために使用される。金融アプリケーションは、クレジットカード、ローン、銀行口座などの金融手段の管理に関するアプリケーションのクラスである。関連技術で周知であるように、金融アプリケーションは、銀行、保険会社、証券会社などの多様なビジネス企業で使用されている。
アプリケーションは、しばしば、データモデル(「アプリケーションデータモデル」)に基づいて開発され、当該データモデルは、データを記憶するためのデータモデルとは異なっている可能性がある。例えば、データは、リレーショナルデータベースモデルに従って表の形式で記憶されてもよいのに対して、アプリケーションは、アプリケーションデータモデルに従って指定されたオブジェクト(以下、「データオブジェクト」)に基づいて開発されてもよい。データオブジェクトは、さまざまな属性を含むように定義され、データオブジェクトのインスタンス(「オブジェクトインスタンス」)は、それぞれの属性の対応する値を有する。
アプリケーションデータモデルに従って指定されたデータオブジェクトを更新するために、アプリケーションにおいてルールが利用される。ルールは、マシンが動作可能なレベル(例えば、プログラミング言語、SQLクエリなど)に近い対応するインプリメンテーションに精通していないかもしれないユーザ(例えば、管理者、マネージャ、アナリスト、経営幹部など)が理解できる概念レベルである。
データオブジェクトの更新は、当該データオブジェクトのそれぞれのオブジェクトインスタンスの1つ以上の属性の対応する値の変更を意味する。単純な事例として、銀行は、顧客の信用格付けのさまざまなレベル(高リスク、中リスクおよび低リスク)およびローンのタイプ(例えば、住宅ローン、自動車ローン、個人ローンなど)によって金利を更新するルールを有し得る。容易に理解できるように、ルールを実行することにより、複数のオブジェクトインスタンスが変更される。一般に、複雑なルールは、いくつかのより多くの変数/次元、複数の属性の更新、および/または、更新された属性の値の複雑な計算を伴う。
ルールは、マシンでの実行にとってより適切な等価の命令セットに変換される。例えば、データオブジェクトがリレーショナルデータベースシステムに記憶されるとすると、命令セットは、リレーショナルデータベースシステムの表に向けられるSQL(構造化照会言語)クエリを含む。
本開示の局面は、アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットを生成することに向けられる。
以下で簡単に説明する添付の図面を参照して、本開示の例示的な実施例について説明する。
図中、同様の参照番号は、一般に、同一の要素、機能的に類似した要素、および/または、構造的に類似した要素を示す。要素が最初に登場する図面は、対応する参照番号における最上位桁によって示される。
本開示のいくつかの局面を実現できる例示的な環境を示すブロック図である。 本開示の局面に従った、アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットが生成される態様を示すフローチャートである。 一実施例における、実行のためにルールが指定される態様を示す。 一実施例における本開示のいくつかの局面に従った、ルールが処理される態様を示す。 一実施例における、併合に適していると判断されたルールのサブセットが表示される態様を示す。 一実施例における、ルールのサブセットの併合結果がユーザに表示される態様を示す。 適切なソフトウェア命令の実行によって本開示のいくつかの局面が機能するデジタル処理システムの詳細を示すブロック図である。
例示的な実施例の説明
1.概要
本開示の局面では、アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットを生成する。一実施例では、オブジェクトを更新するよう設計されたルールは、各バケットが実行順序の点で相互依存性をもたないルールを含むように(ルールの)バケットのセットを形成するように処理される。次いで、各バケットについて、共通の(データ)オブジェクトを更新するよう設計されたルールのサブセットが決定され、各々の決定されたルールのサブセットについて、対応する単一の命令セットが生成される。次いで、各バケットに含まれるルールのサブセットについて生成された命令セットは、同時に実行される。
共通のオブジェクトを更新するルールの各サブセットについて、(例えば、最終的に単一のSQLクエリに変換される)単一の命令セットを生成することによって、このような共通のオブジェクトがバケットのルールの処理に必要とされる合計時間を短縮することができる。このような更新中は(例えば、データベース内の表/列のロッキングを使用して)排他的アクセスがオブジェクトに提供されるものとすると、排他的アクセスの時間もそれに従って短縮され、それによって、他のアプリケーションが当該オブジェクトへの排他的アクセスを必要とする状態での同一のオブジェクトに対する相反する競合の確率が減少する。また、バケット内のルールに対応する命令セットを同時に実行することによって、少なくとも基礎をなす環境が十分なマルチプロセッシング機能を提供する場合に同様の効率を得ることができる。
本開示の別の局面によれば、バケット内で決定されたルールのサブセットは、ルールのサブセットの各々を併合できる(すなわち、単一の命令セットを生成できる)ことを示しながら、表示のために送信される。したがって、ルールのサブセットに対応する命令セットの生成は、ルールのサブセットの各々が併合対象であることを示す入力データがユーザから受信された場合にのみ、実行される。
したがって、(アプリケーションの)ユーザは、併合対象の特定のサブセット(および生成される単一の命令セット)を示し、どのサブセットが併合されないか(すなわち、各ルールごとの個々の命令セットが生成される)を示すことが容易になる。したがって、ルールのサブセットにおける特定のルールが併合から除外されることを、(ユーザから受信される)入力データが示す場合、当該ルールのサブセットについての対応する単一の命令セットは、当該特定のルールを除外して(すなわち、サブセットにおける他のルールについてのみ)生成される。その結果、ユーザは、ルールの併合に対する制御を向上させることができる。
本開示の1つ以上の局面によれば、各ルールの実行に先立って実行されるべきである対応するルールのセットを示す優先データが受信される。したがって、バケットは、対応するルールのセットが、ルールを含む同一のバケットに含まれないように形成される(なぜなら、当該ルールは、実行のための対応するルールのセットに対する依存性を有するからである)。
本開示のさらに別の局面によれば、アプリケーションデータモデルに従って指定されたオブジェクトは、リレーショナルデータベースサーバに記憶される。したがって、各ルールは、独立して実行されると、リレーショナルデータベースサーバに向けられる対応するSQL(構造化照会言語)コマンドとして実現されるであろう。また、対応する単一の命令セットは、リレーショナルデータベースサーバに向けられる単一のSQLコマンドの形式で実現される。したがって、サブセットにおけるルールに対応して実行されるであろうさまざまなSQLコマンドは、単一のSQLコマンドに置換される。
例示のために、例を参照して本開示のいくつかの局面について以下で説明する。しかし、本開示は、具体的な詳細のうちの1つ以上がなくても、または他の方法、構成要素、材料などによっても実施できることを当業者は認識するであろう。他の例では、本開示の特徴を曖昧にすることを回避するために、周知の構造、材料またはオペレーションは詳細に示されていない。さらに、記載されている特徴/局面は、さまざまな組み合わせで実施できるが、簡潔にするために当該組み合わせの一部のみが本明細書に記載されている。
2.例示的な環境
図1は、本開示のいくつかの局面を実現できる例示的な環境を示すブロック図である。当該ブロック図は、エンドユーザシステム110A〜110Zと、インターネット120と、イントラネット130と、サーバシステム140A〜140Cと、管理者システム150と、データストア180A〜180Bとを含むものとして示されている。
単に例示のために、典型的な数/タイプのシステムが図に示されているに過ぎない。環境が設計される目的に応じて、多くの環境は、数の点でもタイプの点でも、より多くのシステムを含んでいることが多い。図1の各システム/装置について以下でさらに詳細に説明する。
イントラネット130は、(点線の境界線によって示される)企業内に設けられるサーバシステム140A〜140Cと管理者システム150とデータストア180A〜180Bとの間の接続を提供するネットワークを表わす。インターネット120は、エンドユーザシステム110A〜110Zなどの外部システムとのこれら(および企業の他のシステム)の接続を拡張する。イントラネット140およびインターネット120の各々は、関連技術で周知の伝送制御プロトコル(Transmission Control Protocol:TCP)および/またはインターネットプロトコル(Internet Protocol:IP)などのプロトコルを使用して実現されてもよい。一般に、TCP/IP環境では、トランスポートの基本単位としてIPパケットが使用され、パケットの発生源のソースシステムに割り当てられるIPアドレスにソースアドレスが設定され、パケットが最終的に送達される宛先システムのIPアドレスに宛先アドレスが設定される。
IPパケットは、パケットの宛先IPアドレスが宛先システムのIPアドレスに設定されると宛先システムに向けられ、その結果、パケットがネットワーク120および130によって最終的に宛先システムに送達されると考えられる。パケットは、宛先アプリケーションを指定するポート番号などのコンテンツを含む場合には、このようなアプリケーションにも向けられると考えることができる。宛先システムは、対応するポート番号を利用可能/オープンなままにして、対応する宛先ポートを用いてパケットを処理しなければならないであろう。インターネット120およびイントラネット130の各々は、有線または無線媒体の任意の組み合わせを使用して実現されてもよい。
データストア180A〜180Bの各々は、サーバシステム140A〜140Cおよび管理者システム150などの企業の他のシステムで実行される(金融アプリケーション、分析フレームワークなどの)企業アプリケーションによるデータの集合体の記憶および検索を容易にする不揮発性(永続的)ストレージを表わす。
データストア180A〜180Bの各々は、リレーショナルデータベース技術を使用するデータベースサーバとして実現され、したがって、SQL(構造化照会言語)などの構造化クエリを使用してデータの記憶および検索を行ってもよい。代替的に、データストア180A〜180Bの各々は、関連技術で周知であるように、1つ以上のディレクトリとして編成されるファイルの形式でデータの記憶および検索を行うファイルサーバとして実現されてもよい。
一実施例では、データストア180A〜180Bに維持されるデータに対しては、背景欄に上記したように、データオブジェクト、属性およびオブジェクトインスタンスを含む、(データストアの外部に設けられる)アプリケーションデータモデルに従ってアクセスが提供される。データオブジェクトは、リレーショナルデータベースシステムに記憶される場合には1つ以上の表に対応し得て、各属性は、このような表のそれぞれの列に対応し、各オブジェクトインスタンスは、このような表における行に対応する。各データオブジェクトは、ファイルサーバに記憶される場合には1つ以上のファイルに対応し得て、各オブジェクトインスタンスは、ファイル内の行のセットによって表わされ、各行はさらに、属性および対応する値を指定する。
エンドユーザシステム110A〜110Zの各々は、企業の特定のシステムに向けられるユーザ要求を生成して送信するためにユーザによって使用される、パーソナルコンピュータ、ワークステーション、移動端末、携帯電話、コンピューティングタブレットなどのシステムを表わす。ユーザ要求は、適切なユーザインターフェイス(例えば、企業内で実行されるアプリケーションによって提供されるウェブページ)を使用して生成されてもよい。例えば、ユーザは、サーバシステム140A〜140Cで実行される企業アプリケーションに対してさまざまなタスクを実行するためのユーザ要求を送信してもよい。
サーバシステム140A〜140Cの各々は、エンドユーザシステム110A〜110Zを使用するユーザによって要求されるタスクを実行することができる(金融アプリケーション、分析フレームワークなどの)企業アプリケーションを実行する、ウェブ/アプリケーションサーバなどのサーバを表わす。エンドユーザシステムから要求を受信したことに応答して、各サーバシステムは、当該要求に規定されるタスクを実行し、タスクの実行結果を、要求を行ったエンドユーザシステムに送信する。各サーバシステムは、内部に(例えば、サーバ内の不揮発性ストレージ/ハードディスクに)記憶されたデータ、(例えば、データストア180A〜180Bに維持される)外部データ、および/または、このようなタスクを実行する際に外部ソースから(例えば、ユーザから)受信されるデータを使用し得る。
管理者システム150は、サーバシステム140A〜140Cで実行されるさまざまな企業アプリケーションによってアクセスされる対応するデータをユーザが管理(作成、更新、削除)することを容易にする、ウェブ/アプリケーションサーバなどのサーバを表わす。一実施例では、管理者システム150で実行される分析フレームワークは、アプリケーションデータモデルに従って指定されたオブジェクトを更新するためのルールをユーザが指定することを容易にし、当該フレームワークは、次いで、当該ルールを、データストア180A〜180Bのインプリメンテーションに適切であるように対応する命令セット(例えば、SQLクエリ)に変換する。このような分析フレームワークの一例は、本願の所期の譲受人であるオラクル社から入手可能なオラクル金融サービス分析アプリケーション(Oracle Financial Services Analytical Applications:OFSAA)である。
ある従前のアプローチでは、分析フレームワークは、各ルールを対応する命令セットに変換する(すなわち、命令セットの数は、ルールの数に等しい)。したがって、最適な(より少ない)数の命令セットが所与のルールのセットについて生成されることが望ましい。本開示のいくつかの局面に従って拡張される管理者システム150は、例を用いて以下で説明するように、アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現するこのような最適な命令セットの生成を容易にする。
3.ルールを実現する命令セットの生成
図2は、本開示の局面に従った、アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットが生成される態様を示すフローチャートである。当該フローチャートは、単に例示のために、図1、特に管理者システム150に関して記載されている。しかし、本明細書において提供されている開示を読むことによって当業者に明らかであるように、特徴のうちの多くは、本開示のいくつかの局面の範囲および精神から逸脱することなく、他の環境でも(場合によっては、他のタイプのシステム/サーバを使用しても)実現可能である。
また、当業者に明らかであるように、ステップのうちのいくつかは、特定の環境に適合させるように、以下に示されるシーケンスとは異なるシーケンスで実行されてもよい。このようなインプリメンテーションの多くは、本開示のいくつかの局面によって包含されるよう意図される。フローチャートはステップ201から開始し、制御は直ちにステップ210に進む。
ステップ210において、管理者システム150は、アプリケーションデータモデルに従って指定されたデータオブジェクトを更新するよう設計されたルールを受信する。したがって、各ルールは、オペレータとオペランドとを含み、オペランドのうちの少なくとも1つは、データオブジェクトまたは対応する属性である。ルールは、エンドユーザシステム110A〜110Zのうちの1つを使用するユーザから受信されてもよい。
ステップ220において、管理者システム150は、各バケットにおけるルールが実行順序の点で相互依存性をもたないようにルールのバケットを形成する。相互依存性は、当該実行順序で先立つルールの実行が完了して初めて後続のルールの実行が開始することを求められる場合に存在すると考えられる。このような相互依存性がない場合、両方のルールは場合によっては同時に実行可能である。
以下で説明する実施例では、ユーザは、優先データ/順序付け(すなわち、所与のルールを実行するためにどの先立つルールを完了させなければならないかということの手動表示)を指定するが、このようなまたは他の依存性は、各ルールについて指定される入力および出力を調べることによって推測されてもよい。このようなシナリオでは、管理者システム150は、先立つルールが、所与のルールを含むバケットに確実に含まれないようにする。
ステップ230において、管理者システム150は、ステップ220において形成された1つ以上のバケットからバケットを選択する。特に、(以下で説明するステップ240〜270に従って)ルールが未処理のバケットが選択される。このような未処理のバケットの選択は、公知の方法で実行されてもよい。例えば、各バケットは、対応するバケットが処理済みである(第1の値)か未処理である(第2の値)かを示すフラグに関連付けられてもよい。したがって、管理者システム150は、フラグが第2の値に設定されるバケットを選択することができる。
ステップ240において、管理者システム150は、選択されたバケットの各ルールによって更新されるデータオブジェクト(および対応する属性)を識別する。更新されるデータオブジェクトの識別は、分析フレームワークによって維持されるメタデータを調べることによって決定されてもよい。
ステップ250において、管理者システム150は、同一のデータオブジェクトを更新するルールのサブセットを決定する。言い換えれば、同一のデータオブジェクトを更新するバケットにおけるルールは、同一のサブセットに含まれる。実施例では、決定されたルールのサブセットは、ルールのサブセットの各々を併合できる(すなわち、単一の命令セットを生成できる)ことを示しながら、(エンドユーザシステム110A〜110Zのうちの1つに関連付けられる)ディスプレイユニットでの表示のために送信される。ユーザは、併合対象の特定のサブセットおよび/または各サブセットにおける特定のルールを選択することが可能になる。全てのルールのサブセットが併合対象であることを示す入力データがユーザから受信されるものとして説明を続ける。
ステップ260において、管理者システム150は、ルールの各サブセットについて単一の命令セットを生成する。サブセットについて生成される単一の命令セットは、(当該サブセットに対応する)データオブジェクトの属性の、(サブセットにおけるルールによって決定される)値の更新を実行するよう設計される。実施例では、単一の命令セットは、単一のSQLステートメントとして、例えば更新のために複数の列を有する「MERGE」ステートメントとして形成される。
ステップ270において、管理者システム150は、同時実行のために、(さまざまなルールのサブセットについて生成された)さまざまな命令セットをマークする。言い換えれば、ステップ250において4つのルールのサブセットが形成されると、対応する4つの命令セットを同時に実行することができる。
ステップ280において、管理者システム150は、処理すべきより多くのバケットがあるか否か(すなわち、どのフラグが第2の値に設定されるか)を確認する。このような確認に先立って、管理者システム150は、まず、選択されたバケットが処理済みであることを示すために、選択されたバケットに関連付けられるフラグを第1の値に設定する。より多くのバケットがある場合、制御はステップ230に進んで(まだ未処理の)新たなバケットが選択される。そうでなければ(全てのバケットが処理された後)、制御はステップ299に進む。フローチャートは、ステップ299で終了する。
したがって、所与のルールのセットのうちのどれを組み合わせて単一の命令セットにすることができるかを識別することによって、データオブジェクトを更新するよう設計された所与のルールのセットについて最適な命令セットを生成することができる。さらに、(高い概念レベルで操作を行うマネージャなどの)ユーザが併合対象の特定のルールを選択できるようにすることによって、データオブジェクトの基本的なインプリメンテーションではなくビジネス/金融上の検討事項に基づいてルールの選択を実行できるということが理解できる。
図2に従って管理者システム150が命令セットの生成を実行することができる態様について、例を用いて以下で説明する。
4.例示的な例
図3A〜図3Bおよび図4A〜図4Bは、ともに、一実施例における、アプリケーションモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットが生成される態様を示す。図の各々について以下で詳細に説明する。
図3Aは、一実施例における、実行のためにルールが指定される態様を示す。例示のために、当該ルールは、(行と列とを有する)表の形式で指定されるものとして示されている。しかし、代替的な実施例では、当該ルールは、適切なユーザインターフェイスを使用して、任意の都合のよい態様で指定されてもよい。ルールを指定するための例示的なユーザインターフェイスは、「データベースに記憶されたデータ項目のグループ分けの簡略化(SIMPLIFYING GROUPING OF DATA ITEMS STORED IN A DATABASE)」と題される米国特許第8,856,126号に詳細に記載されている。
したがって、表310は、エンドユーザシステム110A〜110Zのうちの1つを使用するユーザによって分析フレームワークに規定される、(データオブジェクトを更新するよう設計された)ルールのセットを示す。列311(「ルールId」)は、ルールの固有の識別子(R1,R2など)を指定し、列312(「階層/ドメイン」)は、ルールによって入力として使用される対応する値のセット(H1,H2などと称される)を指定し、列313(「程度/範囲」)は、ルールによって更新されるM1,M2などの(さまざまなデータオブジェクトの)属性を指定する。
各々の階層/ドメインは、データオブジェクトの属性に記憶できる対応する可能な値のセットを表わす。可能な値は、当該技術分野で周知のツリーデータ構造の形式で編成される。各々の程度は、関連付けられる計算のセットを実行した結果として更新される(データオブジェクトにおける)対応する1つ以上の属性を表わす。データオブジェクトがリレーショナルデータベースシステムに記憶される場合、各々の階層は、データベースシステム内の列に記憶できる可能な値を表わし、各々の程度は、データベースシステム内の(表の)列を表わす。
表310の行の各々は、企業アプリケーションのデータオブジェクトを更新するために利用される対応するルールを指定する。一般に、各ルールは、階層/ドメインの値(列312への入力)のさまざまな組み合わせについて、対応する計算を指定し、当該計算の結果として生じる値は、(列313における)程度/範囲に記憶される。例えば、行318は、「R3」という名前によって固有に識別されるルールが、階層H4およびH5における値のさまざまな組み合わせについて、対応する計算を指定し、当該計算の結果として生じる値が程度M4において更新されることを示す。同様に、他の行は、対応するルールの詳細を指定する。
表320は、典型的には分析フレームワークの開発者/管理者によって分析フレームワークに規定される程度のセットを示す。列321(「程度Id」)は、程度の固有の識別子(M1,M2など)を指定し、列322(「オブジェクト」)および323(「属性」)は、程度によって表わされる対応するデータオブジェクトおよび属性を指定する。
表320の行の各々は、分析フレームワークに規定されるルールによって更新され得る対応する程度を指定する。例えば、行328は、(行318によって示されるルールR3によって更新される)程度M4が、データオブジェクトB1に含まれる属性A5およびA6に対応することを示す。同様に、他の行は、分析フレームワークにおいて使用される対応する程度の詳細を指定する。
表330は、分析フレームワークにおいて実行定義の一部として定義されるプロセスのセットを示す。実行定義は、(シーケンシャルな順序で実行される)プロセス/ステップのシーケンスの形式で指定されるアプリケーションプロセスフローを表わす。ユーザは、分析フレームワークによって提供される(ルールなどの)1つ以上のコンポーネントを実行定義におけるプロセスとして示してもよい。以下の説明では、実行定義のさまざまなプロセスは、ルールのみを示すものとする。
したがって、表330は、エンドユーザシステム110A〜110Zのうちの1つを使用するユーザによって分析フレームワークに規定されるプロセスステップのセットを示す。列331(「プロセスId」)は、プロセスステップのためのプロセスの識別子(P1,P2など)を指定する。なお、複数の行に規定される対応するプロセスステップが同一のプロセスの一部であることを示すために、同一のプロセス識別子が複数の行において繰返されてもよい。列332(「ルールId」)は、プロセスステップとして実行されるルールの識別子を指定し、列333(「優先度」)は、対応するプロセスステップに規定されるルールを実行するためにどの先立つルールを完了しなければならないかを示す。先立つルールの欠如(記号「−」によって示される)は、ルール(R1,R2,R3など)を同時に実行できることを意味する。
表330の行の各々は、プロセス(P1,P2)のシーケンスを指定し、各プロセスは、対応するルールのセットを実行するために示される。例えば、プロセスP1は、対応するプロセスステップとしてルールR1,R2,R4,R6,R3,R5およびR9を実行するために、(列331における同一の識別子P1に基づいて)示される。ルールのうちのいくつかは、先立つルールに対して相互依存性を有するものとして(列333に)示され、これは、1つ以上の先立つルールの実行が完了して初めてルールの実行が開始されることを意味する。例えば、行338は、ルールR4がルールR2に対して相互依存性を有することを示し、ルールR2の実行が完了して初めてルールR4の実行を開始できることを意味する。
上記のシーケンスおよび優先度はルール間の実行順序を徹底する、ということが理解できる。本明細書における開示では、ユーザは、相互依存性を生じさせ得るさまざまな条件を調べて、ルール間に存在する条件に従ってシーケンスを指定するものとする。例えば、ユーザは、2つのルールが、同一のデータオブジェクトにおける同一の属性にマッピングされる程度を更新するか否かを調べ、それに従って、当該2つのルール間に相互依存性が存在することを指定してもよい。代替的な実施例では、実行順序の点でのこのような相互依存性は、各ルールによって更新されるさまざまな程度を検証することによって管理者システム150によって判断されてもよい。
したがって、ユーザは、アプリケーションデータモデルに従って指定されたオブジェクトの属性に対応する所望の程度、程度(および対応してデータオブジェクトの属性)を更新するためのルール、ならびに所望の実行順序に従って実行されるルールのシーケンスを指定する実行定義を指定することが可能になる。ユーザがルールを指定した態様は、例を用いて以下で説明するように、最適な命令セットを生成するように管理者システム150によって処理されてもよい。
5.処理ルール
図3Bは、一実施例における、ルールが処理される態様を示す。特に、プロセスP1について図3Aで指定されたルールの処理が図3Bに示され、以下で詳細に説明する。
管理者システム150は、表330の実行定義を受信したことに応答して、まず、各バケットにおけるルールが実行順序の点で相互依存性をもたないようにプロセスP1のためのルールのバケットを形成する。一般に、列333の優先データに(記号「−」によって)示される、先立つルールを持たないルールは、共通のバケットにグループ分けされる。次いで、優先データに示される、先立つルールを有するルールはいずれも、先立つルールが属しているバケットに基づいて、他のバケットにグループ分けされる。特に、先立つルールは、グループ分けされているルールと同一のバケットには含まれない。
表340は、受信した実行定義(表330)のプロセスP1におけるルールのために形成されるバケットのセットを指定する。各々のバケット(♯1,♯2など)は、ルールの対応するグループ/セット({R1,R2,R3,R9}および{R4,R5,R6}など)を含むものとして示されている。なお、バケット♯1は、(表330に「−」によって示される)優先ルールを持たないルールから形成される。他のルールR4,R5およびR6は、バケット♯2にグループ分けされるものとして示されている。なぜなら、当該ルールは全て、同一のバケット♯1に属する対応する優先ルールを有しているからである。
その後、管理者システム150は、ルールの各バケットを処理し得る。表350および355はともに、バケット♯1におけるルールが処理される態様を示し、表360および365はともに、バケット♯2におけるルールが処理される態様を示す。バケット♯1におけるルールが処理される態様について以下で詳細に説明する。
管理者システム150は、まず、バケット♯1における各ルールによって更新されるデータオブジェクト(および属性)を識別する。識別は、まず、表310に基づいて、各ルールによって更新される程度を識別し、その後、表320に基づいて、更新された程度に対応する特定の属性/データオブジェクトを決定することによって実行されてもよい。表350は、バケット♯1におけるルール(すなわち、{R1,R2,R3,R9})について管理者システム150によって識別されるデータオブジェクト(B1およびB2)ならびに対応する属性(A1,A2など)を示す。
次いで、管理者システム150は、同一のデータオブジェクトを更新するルールのサブセットを決定する。表355は、バケット♯1について決定されたさまざまなルールのサブセットを示す。ルールR1,R3およびR9は、これらのルールが全て同一のデータオブジェクトB1を更新するので第1のサブセットに含まれるように示されており、ルールR2は、ルールR2が異なるデータオブジェクトB2を更新するので第2のサブセットに含まれるように示されていることが分かる。
次いで、管理者システム150は、ルール{R1,R3,R9}について単一の命令セットを生成し、ルール{R2}について別の命令セットを生成する。同様に、管理者システム150は、バケット♯2におけるルール(すなわち、{R4,R5,R6})を(表360および365に示されるように)処理し、サブセット{R4,R6}および{R5}についてそれぞれの命令セットを生成する。プロセスP1について決定される4つのルールのサブセットに対応して、命令セットが4つだけ生成されることが分かる。これは、上記の従前のアプローチにおいて(プロセスP1における7つのルールに対応して)生成されたであろう7つの命令セットとは対照的である。
表380は、決定されたルールのサブセットが実行定義の一部としてユーザに提供される態様を示す。表380は表330と同様であり、したがって、簡潔にするために共通の要素の説明はここでは繰返さない。ルールの各サブセットは、実行定義における対応するプロセス(P1,P2)のもとでのサブプロセス(S11,S12,S21など)として示されていることが分かる。各々のサブプロセスは、管理者システム150によってサブセット内にあるように決定されるさまざまなルールを含むように示されている。例えば、サブプロセスS11は、(表355に示される)バケット♯1について管理者システム150によって決定されたルールのサブセット{R1,R3,R9}に対応する。
一実施例では、管理者システム150は、サブプロセスの一部として指定されるさまざまなルールについて単一の命令セットを生成する。したがって、併合対象である決定されたルールのサブセットは、対応するサブプロセスとして表380に示される。しかし、代替的な実施例では、サブプロセスは、単にサブセットを視覚的に表わすために使用されてもよい。次いで、管理者システム150は、さまざまなサブセットに属するルールを示すさらなるデータ(例えば、サブセットを示す番号)を記憶し、それに従って、当該さらなるデータに基づいて単一の命令セットを生成し得る。
本開示の局面に従って、決定されたルールのサブセットは、例えばエンドユーザシステム110A〜110Zのうちの1つに関連付けられるディスプレイユニット(図1には図示せず)上でユーザに表示される。ルールのサブセットの併合(単一の命令セットの生成)は、(対応するサブセットの)このような併合が実行される予定であることを示す、(ユーザから受信される)入力データに応答して初めて実行される。管理者システム150が決定されたサブセットを表示して、(エンドユーザシステム110A〜110Zを使用する)ユーザから入力データを受信し得る態様について、例を用いて以下で説明する。
6.併合のためのルールの表示
図4Aは、一実施例における、併合に適していると判断されたルールのサブセットがユーザに表示される態様を示す。本明細書における例示的な環境は銀行/金融アプリケーションに対応するが、本明細書に記載されている特徴は、同様のアーキテクチャを利用する他の環境にも適用可能である。
表示領域400は、エンドユーザシステム110A〜110Zのうちの1つ(例示のために110Aであると想定される)に関連付けられるディスプレイユニット(図1には図示せず)に設けられたユーザインターフェイスの一部を示す。一実施例では、表示領域400は、管理者システム150によって提供されるそれぞれのウェブページを表示するブラウザに対応する。ウェブページは、エンドユーザシステム110Aにおけるブラウザを使用してユーザが(例えば、対応するURLを指定することによって)適切な要求を送信したことに応答して提供される。
特に、表示領域400のユーザインターフェイスは、ユーザ/マネージャがプロセス/実行定義の詳細を閲覧する(および編集する)ことを容易にする。表示領域410は、プロセス定義の名前、タイプ、バージョンなどの詳細を提供する。表示領域420は、プロセス定義の一部として指定されるプロセスステップの階層を示す。特に、表示領域420は、プロセスが「Non−Sec移行前RWA−EL」および「Non−Sec移行前RWA−UL」と称される2つのステップを含むことを示す。
表示領域430は、プロセス定義に規定されるプロセスステップの各々の詳細を指定する。特に、表示領域430は、(表示領域420のものと同一の)各オブジェクト/プロセスステップの固有の識別子、(対応するステップの実行前にどの先立つステップ/オブジェクト/ルールを実行すべきかを示す)オブジェクトの優先度、およびオブジェクトのタイプを示す。オブジェクトもプロセスステップも、そのオブジェクトタイプは計算ルールであるように示されていることが分かる。
2つのオブジェクト/ルールのサブセットを併合できる(および単一の命令セットを生成できる)ことを示しながら、(対応するチェック欄を選択することによって)両方のオブジェクトが選択されるように示されていることがさらに分かる。なお、代替的な実施例では、併合できる特定のルールのサブセットを示すために、(同一の色、フォントの使用などの)任意の適切な視覚的強調が使用されてもよい。例えば、併合できないルールは全て、共通の色で表示されてもよく、ルールの各サブセットは、(当該共通の色とは異なる)対応する固有の色で表示されてもよい。
したがって、ユーザは、表示領域400のユーザインターフェイスを使用して、併合対象の特定のサブセットを示すことが可能になる。例えば、ユーザは、(対応するチェック欄の選択を解除することによって)サブセットにおけるルールを除外してもよい。また、ユーザは、サブセットにおける他のルールによって更新される共通のデータオブジェクトを特定のルールが更新しないことに鑑みて、当該特定のルールがルールのサブセットに含まれないことに、(サブセットの表示/視覚的強調に基づいて)気付くことができる。したがって、ユーザは、特定のルールを修正して、(共通のデータオブジェクトを更新する)修正ルールを形成し、次いで、当該修正ルールがサブセットに含まれ(および表示領域430に表示され)るようにサブセットの決定を実行することができる。
ユーザは、併合対象のサブセットを選択した後、「併合ルール」リンク/ボタン450をクリック/選択して、選択されたルールのサブセット(ここでは、「Non−Sec移行前RWA−EL」および「Non−Sec移行前RWA−UL」)が併合対象であることを示す。これに応答して、管理者システム150は、(ユーザから受信される入力データによって、表示領域430に)併合対象であるように示されるルールのサブセットの各々に対応するサブプロセスを作成する。次いで、管理者システム150は、以下で詳細に説明するように、作成されたサブプロセスをユーザに表示し得る。
図4Bは、一実施例における、ルールのサブセットの併合結果がユーザに表示される態様を示す。特に、図4Bは、図4Aにおける「併合ルール」リンク450をユーザがクリックしたことに応答した結果を示す。
表示領域470は、対応するルールのサブセットの併合後のプロセスステップの階層を示す。表示領域470は、「併合後Exeサブプロセス」と称される新たなプロセスステップが作成され、当該新たなプロセスステップの下に、「Non−Sec移行前RWA−EL」および「Non−Sec移行前RWA−UL」という以前の2つのステップが表示されることを示すことが分かる。表示領域480は、「併合後Exeサブプロセス」という新たなプロセスステップが(タイプによって示されるように)サブプロセスであることを示す。
したがって、ユーザは、プロセス定義のさまざまなサブプロセスの形式でルールのサブセットの併合結果が表示される。その後、ユーザは、「保存」ボタン490をクリック/選択し得て、併合対象のさまざまなルールのサブセットを含むプロセス定義がプロセス定義の一部として保存/記憶されることを示す。(図4Bの)保存されたプロセス/実行定義を実行したことに応答して、管理者システム150は、「併合後Exeサブプロセス」というプロセスステップについて単一の命令セットを生成し、次いで、対応する計算に基づいて特定の程度を更新するように(他の単一の命令セットと同時に)当該単一の命令セットを実行する。
一実施例では、企業アプリケーションによって使用されるデータオブジェクトは、リレーショナルデータベースサーバに記憶される。したがって、各ルールは、独立して実行されると、リレーショナルデータベースサーバに向けられる対応するSQL(構造化照会言語)コマンドとして実現される。付表Aは、「Non−Sec移行前RWA−EL」というルールが独立して実行される場合に管理者システム150によって生成および実行され得るSQLコマンドを示す。同様に、付表Bは、「Non−Sec移行前RWA−UL」というルールのために生成され得るSQLコマンドを示す。単一の命令セットも、実行時に、リレーショナルデータベースサーバに向けられる単一のSQLコマンドの形式で実現される。付表Cは、「併合後Exeサブプロセス」という併合されたルール/サブプロセスのサブセットについての単一の命令セットとして生成され得るSQLコマンドを示す。次いで、SQLコマンドが実行され、概要欄に上記した効率のうちの1つ以上が場合によっては実現される。
上記の特徴は、ハードウェア、実行可能なモジュールおよびファームウェアのうちの1つ以上の所望の組み合わせとしてさまざまな実施例において実現可能であるということがさらに理解されるべきである。実行可能なモジュールにおける命令が実行されたときにさまざまな特徴が機能する実施例に関して説明を続ける。
7.デジタル処理システム
図5は、適切なソフトウェア命令の実行によって本開示のいくつかの局面が機能するデジタル処理システム500の詳細を示すブロック図である。デジタル処理システム500は、管理者システム150に対応する。
デジタル処理システム500は、(中央処理装置(central processing unit:CPU)510などの)1つ以上のプロセッサと、ランダムアクセスメモリ(random access memory:RAM)520と、二次メモリ530と、グラフィックスコントローラ560と、ディスプレイユニット570と、ネットワークインターフェイス580と、入力インターフェイス590とを含み得る。ディスプレイユニット570以外のコンポーネントは全て、通信経路550を介して互いに通信することができ、当該通信経路550は、関連技術で周知であるようにいくつかのバスを含み得る。図5のコンポーネントについて以下でさらに詳細に説明する。
CPU510は、本開示のいくつかの特徴を提供するように、RAM520に記憶された命令を実行し得る。CPU510は、複数の処理ユニットを含んでいてもよく、各処理ユニットは、場合によっては、特定のタスク向けに設計される。代替的に、CPU510は、単一の汎用処理ユニットのみを含んでいてもよい。RAM520は、通信経路550を使用して二次メモリ530から命令を受信し得る。
RAM520は、共有環境525および/または(金融アプリケーション、分析フレームワークなどの)ユーザプログラム526を構成するソフトウェア命令を現在のところ含むものとして示されている。共有環境525は、ユーザプログラムによって共有されるユーティリティを含み、このような共有ユーティリティは、ユーザプログラム526を実行するための(共通の)ランタイム環境を提供する、オペレーティングシステム、デバイスドライバ、仮想マシン、フローエンジンなどを含む。
グラフィックスコントローラ560は、CPU510から受信されるデータ/命令に基づいて、ディスプレイユニット570に対する(例えば、RGBフォーマットの)表示信号を生成する。ディスプレイユニット570は、(図4A〜図4Bのユーザインターフェイスの部分などの)表示信号によって定義される画像を表示するためのディスプレイ画面を含む。入力インターフェイス590は、(図4A〜図4Bのユーザインターフェイスにおいて所望の入力などを指定するなど)さまざまな入力を提供するために使用可能なキーボードおよびポインティング装置(例えば、タッチパッド、マウス)に対応し得る。ネットワークインターフェイス580は、(例えば、インターネットプロトコルを使用して)ネットワークとの接続を提供し、(サーバシステム130A〜130C、データストア180A〜180Bなどの)他の接続されたシステムとの通信に使用可能である。
二次メモリ530は、ハードドライブ535と、フラッシュメモリ536と、リムーバブルストレージドライブ537とを含み得る。二次メモリ530は、非一時的な媒体を表わし、デジタル処理システム500が本開示に従ったいくつかの特徴を提供することができるようにデータ(例えば、図3A〜図3Bに示されるデータの部分)および(例えば、図2のステップを実行するための)ソフトウェア命令を記憶し得る。二次メモリ530に記憶されるコード/命令は、実行速度の高速化のために、CPU510による実行に先立ってRAM520にコピーされてもよく、またはCPU510によって直接実行されてもよい。
二次メモリ530は、ハードドライブ535と、フラッシュメモリ536と、リムーバブルストレージドライブ537とを含み得る。データおよび命令の一部または全ては、リムーバブルストレージユニット540に提供されてもよく、データおよび命令は、リムーバブルストレージドライブ537によって読み出されてCPU510に提供されてもよい。リムーバブルストレージユニット540は、リムーバブルストレージドライブ537がデータおよび命令を読み出すことができるように、リムーバブルストレージドライブ537に適合した媒体およびストレージフォーマットを使用して実現されてもよい。したがって、リムーバブルストレージユニット540は、コンピュータソフトウェアおよび/またはデータが記憶されたコンピュータ読取可能な(記憶)媒体を含む。しかし、コンピュータ(または、一般に機械)読取可能な媒体は、他の形態(例えば、非リムーバブル、ランダムアクセスなど)であってもよい。
本文献では、「コンピュータプログラム製品」という語は、概してリムーバブルストレージユニット540またはハードドライブ535にインストールされたハードディスクを指すように用いられる。これらのコンピュータプログラム製品は、デジタル処理システム500にソフトウェアを提供するための手段である。CPU510は、ソフトウェア命令を検索し、命令を実行して、上記の本開示のさまざまな特徴を提供してもよい。
本明細書で用いられる「記憶媒体」という語は、特定の態様でマシンを動作させるデータおよび/または命令を記憶する任意の非一時的な媒体を指す。このような記憶媒体は、不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、例えば、ストレージメモリ530などの、光ディスク、磁気ディスク、またはソリッドステートドライブを含む。揮発性媒体は、RAM520などのダイナミックメモリを含む。記憶媒体の共通の形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープまたはその他の磁気データ記憶媒体、CD−ROM、その他の光学式データ記憶媒体、穴のパターンを有する任意の物理的媒体、RAM、PROMおよびEPROM、フラッシュEPROM、NVRAM、その他のメモリチップまたはカートリッジを含む。
記憶媒体は、伝送媒体とは別であるが、伝送媒体と併用されてもよい。伝送媒体は、記憶媒体間で情報を転送することに関与する。例えば、伝送媒体は、バス550を備えるワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。また、伝送媒体は、電波および赤外線データ通信中に生成されるような音波または光波の形態をとってもよい。
本明細書全体を通して「一実施例」、「実施例」または同様の言い回しに言及することは、当該実施例に関連して記載される特定の特徴、構造または特性が本開示の少なくとも1つの実施例に含まれることを意味する。したがって、本明細書全体を通じた「一実施例では」、「実施例では」という句および同様の言い回しの登場は、全てが同一の実施例を指してもよいが、必ずしも同一の実施例を指すとは限らない。
さらに、本開示の記載されている特徴、構造または特性は、1つ以上の実施例において任意の好適な態様で組み合わせられてもよい。上記の説明では、本開示の実施例の完璧な理解を提供するために、プログラミング、ソフトウェアモジュール、ユーザ選択、ネットワークトランザクション、データベースクエリ、データベース構造、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例などの多数の具体的な詳細が提供されている。
8.結論
本開示のさまざまな実施例について上記してきたが、それらは限定的ではなく単に一例として提示されているということが理解されるべきである。したがって、本開示の広さおよび範囲は、上記の例示的な実施例のうちのいずれかによって限定されるべきではなく、以下の特許請求の範囲およびそれらの等価物に従ってのみ規定されるべきである。
本開示の機能および利点を強調する添付物に示される図面および/またはスクリーンショットは、単に例示的な目的で提示されているということが理解されるべきである。本開示は、十分に柔軟性があり、構成可能であるので、添付の図面に示されている態様以外の態様で利用できる。
さらに、以下の要約書の目的は、特許庁および公衆、一般におよび特に、特許または法律用語または語法に精通していない当該技術分野における科学者、技術者および専門家が、本願の技術的開示の性質および本質を大まかな検証により素早く判断できるようにすることである。要約書は、本開示の範囲について限定的であるよう意図されたものでは決してない。

Claims (15)

  1. コンピュータによって実行される方法であって、
    複数のルールを受信するステップを備え、各ルールは、アプリケーションデータモデルに従って指定された対応するオブジェクトのセットを更新するよう設計され、各オブジェクトは、前記アプリケーションデータモデルに従ってそれぞれの属性を有しており、前記方法はさらに、
    バケットのセットを形成するステップを備え、各バケットは、前記複数のルールのうち、実行順序の点で相互依存性をもたないルールを含み、前記実行順序の点で相互依存性をもつルールは、前記相互依存性をもたないルールとは分離して、前記バケットのセットの異なるバケットに配置され、前記方法はさらに、
    前記バケットのセットの各バケットについて、
    前記バケットに含まれるルールの複数のサブセットを決定するステップを備え、ルールの各サブセットのルールは、前記アプリケーションデータモデルに従って共通のオブジェクトのそれぞれ異なる属性を更新するよう設計され、
    前記ルールの複数のサブセットの各サブセットについて、対応する単一の命令セットを生成するステップと、
    前記バケットに含まれる前記ルールの複数のサブセットについて生成された前記命令セットを同時に実行するステップとを備える、方法。
  2. 前記決定するステップは、前記バケットのセットの第1のバケットにおけるルールの第1の複数のサブセットを決定することを含み、前記ルールの第1の複数のサブセットは、ルールの第1のサブセットを含み、前記方法はさらに、
    前記ルールの第1の複数のサブセットの各々を併合できることを示しながら、前記ルールの第1のサブセットを含む前記ルールの第1の複数のサブセットを表示のために送信するステップを備え、
    前記生成するステップは、前記ルールの第1のサブセットが併合対象であることを示す入力データがユーザから受信された場合にのみ、前記ルールの第1のサブセットに対して実行される、請求項1に記載の方法。
  3. 前記ルールの第1の複数のサブセットは、ルールの第2のサブセットをさらに含み、
    前記入力データは、前記ルールの第2のサブセットの第1のルールが併合から除外されることを示し、
    前記生成するステップは、前記第1のルールを除く前記ルールの第2のサブセットについて前記対応する単一の命令セットを生成することを含む、請求項2に記載の方法。
  4. 前記ルールの第1の複数のサブセットは、第3のオブジェクトを更新するよう設計されたルールの第3のサブセットを含み、前記第1のバケットの第3のルールも、前記第3のルールが前記第3のオブジェクトを更新しないことに鑑みて、前記ルールの第3のサブセットに含まれず、前記方法はさらに、
    前記第3のルールの修正ルールを受信するステップを備え、前記修正ルールは、前記第3のオブジェクトを更新するよう設計され、
    前記決定するステップおよび前記生成するステップは、前記修正ルールを前記ルールの第3のサブセットに含めるため、および、前記修正ルールを含むように前記ルールの第3のサブセットについての前記対応する単一の命令セットを生成するために、再び実行される、請求項2または3に記載の方法。
  5. 第1のルールおよび第2のルールは、前記実行順序に従って前記第1のルールの実行が完了して初めて前記第2のルールの実行が開始することを求められる場合に、相互依存性を有すると見なされ、前記第1のルールおよび前記第2のルールは、前記複数のルールに含まれ、
    前記形成するステップは、前記第1のルールを第1のバケットに含めることと、前記第2のルールを前記第1のバケットとは異なる第2のバケットに含めることとを含み、前記第1のバケットおよび前記第2のバケットは、前記バケットのセットに含まれる、請求項1〜4のいずれか1項に記載の方法。
  6. 前記受信するステップは、前記複数のルールの各ルールの実行に先立って実行されなければならない対応するルールのセットを示す優先データをさらに受信することを含み、
    前記優先データは、前記第1のルールが前記第2のルールに先立って実行されなければならないことを示す、請求項5に記載の方法。
  7. 前記アプリケーションデータモデルに従って指定された前記オブジェクトは、リレーショナルデータベースサーバに記憶され、
    前記複数のルールの各々は、独立して実行されると、前記リレーショナルデータベースサーバに向けられる対応するSQL(構造化照会言語)コマンドとして実現され、
    前記対応する単一の命令セットは、前記実行するステップ時に、前記リレーショナルデータベースサーバに向けられる単一のSQLコマンドの形式で実現される、請求項1〜6のいずれか1項に記載の方法。
  8. システムがルールの管理をサポートすることを可能にするための命令の1つ以上のシーケンスを含むコンピュータプログラムであって、前記システムに含まれる1つ以上のプロセッサによる前記1つ以上の命令の実行は、前記システムが動作を実行することを可能にし、前記動作は、
    複数のルールを受信する動作を含み、各ルールは、アプリケーションデータモデルに従って指定された対応するオブジェクトのセットを更新するよう設計され、各オブジェクトは、前記アプリケーションデータモデルに従ってそれぞれの属性を有しており、前記動作はさらに、
    バケットのセットを形成する動作を含み、各バケットは、前記複数のルールのうち、実行順序の点で相互依存性をもたないルールを含み、前記実行順序の点で相互依存性をもつルールは、前記相互依存性をもたないルールとは分離して、前記バケットのセットの異なるバケットに配置され、前記動作はさらに、
    前記バケットのセットの各バケットについて、
    前記バケットに含まれるルールの複数のサブセットを決定する動作を含み、ルールの各サブセットのルールは、前記アプリケーションデータモデルに従って共通のオブジェクトのそれぞれ異なる属性を更新するよう設計され、
    前記ルールの複数のサブセットの各サブセットについて、対応する単一の命令セットを生成する動作と、
    前記バケットに含まれる前記ルールの複数のサブセットについて生成された前記命令セットを同時に実行する動作とをさらに含む、コンピュータプログラム。
  9. 1つ以上のプロセッサにより実行されることで、請求項1〜7のいずれか1項に記載の方法を実施するコンピュータプログラム。
  10. デジタル処理システムであって、
    プロセッサと、
    ランダムアクセスメモリ(RAM)と、
    1つ以上の命令を記憶するための機械読取可能な媒体とを備え、前記1つ以上の命令は、前記RAMに取り出されて前記プロセッサによって実行されたときに、前記デジタル処理システムにルールを処理させ、前記デジタル処理システムは、
    複数のルールを受信する動作を実行し、各ルールは、アプリケーションデータモデルに従って対応するオブジェクトのセットを更新するよう設計され、各オブジェクトは、前記アプリケーションデータモデルに従ってそれぞれの属性を有しており、前記デジタル処理システムはさらに、
    バケットのセットを形成する動作を実行し、各バケットは、前記複数のルールのうち、実行順序の点で相互依存性をもたないルールを含み、前記実行順序の点で相互依存性をもつルールは、前記相互依存性をもたないルールとは分離して、前記バケットのセットの異なるバケットに配置され、前記デジタル処理システムはさらに、
    前記バケットのセットの各バケットについて、
    前記バケットに含まれるルールの複数のサブセットを決定する動作を実行し、ルールの各サブセットのルールは、前記アプリケーションデータモデルに従って共通のオブジェクトのそれぞれ異なる属性を更新するよう設計され、
    前記ルールの複数のサブセットの各サブセットについて、対応する単一の命令セットを生成する動作を実行し、
    前記バケットに含まれる前記ルールの複数のサブセットについて生成された前記命令セットを同時に実行する動作を実行する、デジタル処理システム。
  11. 前記決定する動作のために、前記デジタル処理システムは、前記バケットのセットの第1のバケットにおけるルールの第1の複数のサブセットを決定し、前記ルールの第1の複数のサブセットは、ルールの第1のサブセットを含み、前記デジタル処理システムはさらに、
    前記ルールの第1の複数のサブセットの各々を併合できることを示しながら、前記ルールの第1のサブセットを含む前記ルールの第1の複数のサブセットを表示のために送信する動作を実行し、
    前記デジタル処理システムは、前記ルールの第1のサブセットが併合対象であることを示す入力データがユーザから受信された場合にのみ、前記ルールの第1のサブセットに対して前記生成する動作を実行する、請求項10に記載のデジタル処理システム。
  12. 前記ルールの第1の複数のサブセットは、ルールの第2のサブセットをさらに含み、
    前記入力データは、前記ルールの第2のサブセットの第1のルールが併合から除外されることを示し、
    前記デジタル処理システムは、前記第1のルールを除く前記ルールの第2のサブセット
    について前記対応する単一の命令セットを生成する、請求項11に記載のデジタル処理システム。
  13. 前記ルールの第1の複数のサブセットは、第3のオブジェクトを更新するよう設計されたルールの第3のサブセットを含み、前記第1のバケットの第3のルールも、前記第3のルールが前記第3のオブジェクトを更新しないことに鑑みて、前記ルールの第3のサブセットに含まれず、前記デジタル処理システムはさらに、
    前記第3のルールの修正ルールを受信する動作を実行し、前記修正ルールは、前記第3のオブジェクトを更新するよう設計され、
    前記デジタル処理システムは、前記修正ルールを前記ルールの第3のサブセットに含めるため、および、前記修正ルールを含むように前記ルールの第3のサブセットについての前記対応する単一の命令セットを生成するために、前記決定する動作および前記生成する動作を再び実行する、請求項11または12に記載のデジタル処理システム。
  14. 第1のルールおよび第2のルールは、前記実行順序に従って前記第1のルールの実行が完了して初めて前記第2のルールの実行が開始することを求められる場合に、相互依存性を有すると見なされ、前記第1のルールおよび前記第2のルールは、前記複数のルールに含まれ、
    前記デジタル処理システムは、前記複数のルールの各ルールの実行に先立って実行されなければならない対応するルールのセットを示す優先データをさらに受信し、前記優先データは、前記第1のルールが前記第2のルールに先立って実行されなければならないことを示し、
    前記デジタル処理システムは、前記第1のルールを第1のバケットに含めるとともに、前記第2のルールを前記第1のバケットとは異なる第2のバケットに含め、前記第1のバケットおよび前記第2のバケットは、前記バケットのセットに含まれる、請求項10〜13のいずれか1項に記載のデジタル処理システム。
  15. 前記オブジェクトは、リレーショナルデータベースサーバに記憶され、
    前記複数のルールの各々は、独立して実行されると、前記リレーショナルデータベースサーバに向けられる対応するSQL(構造化照会言語)コマンドとして実現され、
    前記対応する単一の命令セットは、前記実行する動作時に、前記リレーショナルデータベースサーバに向けられる単一のSQLコマンドの形式で実現される、請求項10〜14のいずれか1項に記載のデジタル処理システム。
JP2017514362A 2014-09-09 2015-07-31 アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットの生成 Active JP6400191B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN4421/CHE/2014 2014-09-09
IN4421CH2014 2014-09-09
US14/595,223 US11042929B2 (en) 2014-09-09 2015-01-13 Generating instruction sets implementing business rules designed to update business objects of financial applications
US14/595,223 2015-01-13
PCT/IB2015/055820 WO2016038478A1 (en) 2014-09-09 2015-07-31 Generating instruction sets implementing rules designed to update objects specified according to an application data model

Publications (2)

Publication Number Publication Date
JP2017534955A JP2017534955A (ja) 2017-11-24
JP6400191B2 true JP6400191B2 (ja) 2018-10-03

Family

ID=55437919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017514362A Active JP6400191B2 (ja) 2014-09-09 2015-07-31 アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットの生成

Country Status (5)

Country Link
US (1) US11042929B2 (ja)
EP (1) EP3195209B1 (ja)
JP (1) JP6400191B2 (ja)
CN (1) CN106687999B (ja)
WO (1) WO2016038478A1 (ja)

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE146611T1 (de) 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
EP0498067A2 (en) 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
US7251666B2 (en) * 2000-02-01 2007-07-31 Internet Business Information Group Signature loop authorizing method and apparatus
WO2001086485A2 (en) * 2000-05-09 2001-11-15 Fair, Isaac And Company Approach for re-using business rules
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US6826698B1 (en) 2000-09-15 2004-11-30 Networks Associates Technology, Inc. System, method and computer program product for rule based network security policies
US20030167460A1 (en) 2002-02-26 2003-09-04 Desai Vipul Anil Processor instruction set simulation power estimation method
EP1644849A1 (en) * 2003-07-11 2006-04-12 Computer Associates Think, Inc. System and method for generating sql using templates
US7685008B2 (en) * 2004-02-20 2010-03-23 Accenture Global Services Gmbh Account level participation for underwriting components
US7802076B2 (en) 2004-06-24 2010-09-21 Intel Corporation Method and apparatus to vectorize multiple input instructions
US7574424B2 (en) * 2004-10-13 2009-08-11 Sybase, Inc. Database system with methodology for parallel schedule generation in a query optimizer
JP4429236B2 (ja) 2005-08-19 2010-03-10 富士通株式会社 分類ルール作成支援方法
US7865515B2 (en) 2006-08-28 2011-01-04 Microsoft Corporation Server side bucketization of parameterized queries
US7725416B2 (en) 2006-12-13 2010-05-25 Novell, Inc. Method for rule locating, ordering and combining in a polyhierarichical environment
US8677198B2 (en) 2009-03-04 2014-03-18 Alcatel Lucent Method and apparatus for system testing using multiple processors
JP5419746B2 (ja) 2010-02-23 2014-02-19 株式会社日立製作所 管理装置及び管理プログラム
WO2012160813A1 (ja) 2011-05-24 2012-11-29 日本電気株式会社 情報処理システム、データ管理方法、情報処理装置およびその制御方法と制御プログラム
US20130282537A1 (en) * 2012-04-20 2013-10-24 Apptio, Inc. Utilizing multiple versions of financial allocation rules in a budgeting process
US9195466B2 (en) 2012-05-16 2015-11-24 Qualcomm Incorporated Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US8909681B2 (en) * 2012-08-20 2014-12-09 International Business Machines Corporation Gap detection in a temporally unique index in a relational database
US8856126B2 (en) 2012-10-10 2014-10-07 Oracle Financial Services Software Limited Simplifying grouping of data items stored in a database
US9390135B2 (en) * 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel

Also Published As

Publication number Publication date
CN106687999B (zh) 2020-12-08
JP2017534955A (ja) 2017-11-24
WO2016038478A1 (en) 2016-03-17
EP3195209A1 (en) 2017-07-26
CN106687999A (zh) 2017-05-17
US11042929B2 (en) 2021-06-22
EP3195209B1 (en) 2021-12-01
US20160071202A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
US10901961B2 (en) Systems and methods for generating schemas that represent multiple data sources
US11048762B2 (en) User-defined automated document feature modeling, extraction and optimization
US8712965B2 (en) Dynamic report mapping apparatus to physical data source when creating report definitions for information technology service management reporting for peruse of report definition transparency and reuse
US8630969B2 (en) Systems and methods for implementing business rules designed with cloud computing
CN111177231A (zh) 报表生成方法和报表生成装置
JP2019535065A (ja) 分散イベント処理システムにおけるデータシリアライズ
US9251222B2 (en) Abstracted dynamic report definition generation for use within information technology infrastructure
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
CN111427971B (zh) 用于计算机***的业务建模方法、装置、***和介质
US20170206326A1 (en) Systems and methods for the classification and indexing of contract documentation
US11436005B2 (en) Generic integrated development environment extension tool for design systems
US11829814B2 (en) Resolving data location for queries in a multi-system instance landscape
US20200167209A1 (en) Configurable Analytics For Microservices Performance Analysis
US20170322777A1 (en) Presentation Oriented Rules-based Technical Architecture Display Framework
US10735300B1 (en) Discovery and testing of program dependencies in computer networks
US20140282627A1 (en) Systems and methods for system consolidation
US20140100840A1 (en) Systems and Methods for Creating Context Sensitive Graph Topologies Based on Multidimensional Context Information
US11531527B1 (en) Storage structure for pattern mining
JP6400191B2 (ja) アプリケーションデータモデルに従って指定されたオブジェクトを更新するよう設計されたルールを実現する命令セットの生成
US11487708B1 (en) Interactive visual data preparation service
US9342541B1 (en) Presentation oriented rules-based technical architecture display framework (PORTRAY)
CN115657901B (zh) 一种基于统一参数的业务变更方法及装置
US9721041B2 (en) Configurable data analysis using a configuration model
US20240192930A1 (en) Application Dependency Visualization
US20230297213A1 (en) Dynamic address-based dashboard customization

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180904

R150 Certificate of patent or registration of utility model

Ref document number: 6400191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250