JP5096775B2 - Data processing system - Google Patents
Data processing system Download PDFInfo
- Publication number
- JP5096775B2 JP5096775B2 JP2007090095A JP2007090095A JP5096775B2 JP 5096775 B2 JP5096775 B2 JP 5096775B2 JP 2007090095 A JP2007090095 A JP 2007090095A JP 2007090095 A JP2007090095 A JP 2007090095A JP 5096775 B2 JP5096775 B2 JP 5096775B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- unit
- server
- processing unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
この発明はデータ処理システムに係り、特に、クライアント端末からのリクエストに応じて、APサーバが必要なデータの抽出をDBサーバに依頼し、DBサーバから送信されたデータに対し必要な処理を施し、処理結果をクライアント端末に返信する仕組みを備えたデータ処理システムに関する。 The present invention relates to a data processing system, in particular, in response to a request from a client terminal, an AP server requests a DB server to extract necessary data, performs necessary processing on data transmitted from the DB server, The present invention relates to a data processing system having a mechanism for returning a processing result to a client terminal.
クライアントサーバ型システムの進展に伴い、より大規模な情報処理の要求に応えるために、データの表示をするクライアント端末の他にデータの加工を行うAPサーバ及びデータの格納を担当するDBサーバを備えた、いわゆる三層構造のクライアントサーバシステムが普及してきている。
また、処理速度の向上を図るため、複数のAPサーバを並列配置させることで負荷を分散させることも行われている。
In order to improve the processing speed, a load is distributed by arranging a plurality of AP servers in parallel.
DBサーバについてはデータの同期を維持する必要性があるため、APサーバのように簡単に分散処理に移行することはできない。もちろん、データベースシステムのベンダ各社は、様々な技術を駆使してソフトウェア及びハードウェアの両面からDBサーバ自体の高速化を図ってきており、その結果一定の成果は上がっているが、その分システムの価格が上昇することは否めない。
これに対し、APサーバは廉価なPCサーバで構成することができるため、設置台数を増加させることで処理速度を向上させることは比較的容易であり、特許文献1の技術を用いることでデータ処理の高速化をある程度達成することはできる。
Since it is necessary to maintain data synchronization for the DB server, it cannot be shifted to distributed processing as easily as the AP server. Of course, database system vendors have been using various technologies to speed up the DB server itself from both the software and hardware sides, and as a result, certain results have been achieved. It cannot be denied that prices will rise.
On the other hand, since the AP server can be configured with an inexpensive PC server, it is relatively easy to increase the processing speed by increasing the number of installed servers, and data processing can be performed by using the technique of
しかしながら、従来の三層型クライアントサーバシステムの場合、クライアント端末からのリクエストに応えるため、複数のテーブルにアクセスして特定範囲のデータを抽出したり、特定のデータ間での演算処理を指令する複雑なSQL文がAPサーバにおいて生成され、DBサーバに発行される仕組みを備えている。
このように、複雑なSQL文を発行するためにはAPサーバにセットアップされるアプリケーションプログラムの開発が困難化するのは当然であるが、さらに問題となるのは保守性及び再利用性が低下することである。
However, in the case of a conventional three-tier client-server system, in order to respond to a request from a client terminal, it is complicated to access a plurality of tables to extract a specific range of data or to command an arithmetic process between specific data A SQL statement is generated on the AP server and issued to the DB server.
In this way, in order to issue complex SQL statements, it is natural that development of application programs set up on the AP server becomes difficult, but the problem is that maintainability and reusability are reduced. That is.
すなわち、複雑なSQL文を生成するためには、業務ロジックの他にDBサーバに格納された各テーブルの構成を意識したアプリケーションプログラムを開発する必要があり、その結果、当該アプリケーションプログラムは特定の業務ロジック及びテーブル構成に特化されたコード形式となる。
この結果、このアプリケーションプログラムの一部を他の業務処理に応用することが困難となると共に、DBサーバのテーブル構成に変更が生じた場合には大幅な修正が必要となる。
In other words, in order to generate a complex SQL statement, it is necessary to develop an application program that is conscious of the structure of each table stored in the DB server in addition to the business logic. The code format is specialized for logic and table configuration.
As a result, it becomes difficult to apply a part of this application program to other business processes, and when the DB server table configuration is changed, a large correction is required.
また、複数のテーブルから特定範囲のデータ抽出を命ずる複雑なSQLをDBサーバに発行することにより、DBサーバの負担が増大する可能性もある。 In addition, issuing a complicated SQL commanding the extraction of a specific range of data from a plurality of tables to the DB server may increase the burden on the DB server.
この発明は、従来のデータ処理システムが抱えていた上記の問題を解決するために案出されたものであり、DBサーバに複雑なSQL文を発行することなく、業務処理に必要なデータの収集・加工が可能で、APサーバに用いられるアプリケーションプログラムの再利用性及び保守性を高めることが可能な技術の提供を目的としている。 The present invention has been devised to solve the above-mentioned problems of conventional data processing systems, and it collects data necessary for business processing without issuing complicated SQL statements to the DB server.・ The purpose is to provide technology that can be processed and that can improve the reusability and maintainability of application programs used in AP servers.
上記の目的を達成するため、請求項1に記載したデータ処理システムは、複数のテーブルを格納したDBサーバと、APサーバを備え、上記APサーバは、業務処理部と、データ管理部と、上記DBサーバの各テーブルと一対一で対応した複数のテーブル対応部と、汎用処理部と、メモリとを備え、上記データ管理部は、業務処理に必要なデータを格納しているテーブルと、各テーブルを担当しているテーブル対応部を認識しており、上記の各テーブル対応部は、それぞれが担当するテーブルの構成を認識しており、上記汎用処理部は、ソート処理用の関数、innerJoin処理用の関数、leftOuterJoin処理用の関数、sumUp処理用の関数、average処理用の関数、match処理用の関数、controlBreak処理用の関数、mergeBreak処理用の関数の中の何れか一つ以上の関数を有しており、上記業務処理部は、クライアント端末からトランザクションが送信された場合に、当該トランザクションの種別を判定すると共に、上記データ管理部に対して必要なデータの取得を指令する処理を実行し、この指令を受けたデータ管理部は、当該トランザクションの処理に必要なデータを格納したテーブルを特定すると共に、当該テーブルを担当するテーブル対応部を特定し、これに必要なデータの取得を指令する処理を実行し、この指令を受けた各テーブル対応部は、自己が担当するテーブルから必要なデータを取得するためのSQL文を生成し、テーブル単位でDBサーバに送信すると共に、DBサーバから送信されたテーブル単位のデータを、上記メモリに格納する処理を実行し、上記業務処理部は、このメモリに格納されたテーブル単位のデータに対し、上記トランザクションに対応したデータ処理を実行し、この業務処理部によるデータ処理の結果、メモリ上に格納されたテーブル単位のデータが更新された場合に、上記データ管理部は担当のテーブル対応部に対してデータの更新を指令する処理を実行し、この指令を受けたテーブル対応部は、メモリ上のデータに基づいて自己の担当するテーブルを更新することを求めるSQL文を生成し、DBサーバに送信する処理を実行するデータ処理システムであって、さらに、上記業務処理部が上記トランザクションに対応したデータ処理を実行するに際し、個別業務に依存しない汎用的なデータ操作については、上記汎用処理部の関数が利用され、上記データ管理部は、この汎用処理部の関数による処理に先立ち、上記メモリに格納されたテーブル単位のデータを、各データを単純にカラム名で扱うことを可能とする汎用的なレコード型に代入する処理を実行し、上記汎用処理部の関数は、このレコード型のデータに対して必要な処理を実行することを特徴としている。
In order to achieve the above object, a data processing system according to
請求項2に記載したデータ処理システムは、請求項1のシステムであって、さらに、上記の各テーブル対応部は、自己の担当するテーブルから所定範囲のデータを抽出するに際し、必要なデータ範囲を複数に分割し、各分割範囲単位でSQL文を発行すると共に、DBサーバから送信されたデータをメモリ上に順次格納し、最後に各データを整列結合することを特徴としている。
The data processing system according to
請求項1に記載したデータ処理システムにあっては、APサーバからDBサーバに対して、単一のテーブル単位でSQLが発行され、APサーバのメモリに一旦テーブル単位でデータを格納した後、テーブル間の連結やソート、演算処理等のデータ操作をAPサーバ側で実行する仕組みを備えている。
このように、従来は複雑なSQLを発行することによってDBサーバ側で実行させていた処理をAPサーバ側で代替するようにしたため、DBサーバの負荷を軽減可能となり、システム全体の処理速度を向上させることができる。
また、SQLの発行をテーブル単位と細分化することで、APサーバ側のアプリケーションプログラムも細分化が可能となり、その保守性や再利用性を向上させることが可能となる。
また、APサーバの汎用処理部がマッチング処理やソート処理、コントロールブレイク処理など、個別業務に依存しないデータ操作一般に共通する処理を実行するための複数の関数を備えており、トランザクション処理に際して業務処理部はこれらの関数を利用するものであるため、業務処理部を実現するためのプログラムの開発が容易化される利点を有している。
また、汎用処理部の処理に先立ち、データ管理部によってメモリ上のデータが汎用的なレコード型に代入されるため、汎用処理部の各関数は各データ固有のデータ型を意識することなく、単純にカラム名に基づいて各データの操作が可能となる。この結果、汎用処理部を実現するためのプログラムの再利用性を高めることが可能となる。
In the data processing system according to
In this way, the processing that was previously executed on the DB server side by issuing complex SQL is replaced on the AP server side, so the load on the DB server can be reduced and the processing speed of the entire system is improved. Can be made.
Also, by subdividing SQL issuance into table units, application programs on the AP server side can also be subdivided, and its maintainability and reusability can be improved.
In addition, the general-purpose processing unit of the AP server is equipped with multiple functions for executing common data operations that do not depend on individual tasks such as matching, sorting, and control break processing. Since these functions use these functions, there is an advantage that the development of a program for realizing the business processing unit is facilitated.
Prior to the processing of the general-purpose processing unit, the data in the memory is assigned to the general-purpose record type by the data management unit, so each function of the general-purpose processing unit is simple without being aware of the data type specific to each data. Each data can be manipulated based on the column name. As a result, the reusability of the program for realizing the general-purpose processing unit can be improved.
請求項2に記載したデータ処理システムにあっては、単一テーブルに対してSQL文を分割発行することにより、DBサーバにおける検索の並列化が実現され、DBサーバのリソースを有効活用可能となる。
また、分割取得したデータを整列させ、相互に結合させる処理はAPサーバ側で行われるため、DBサーバに過大な負荷を与えることもない。
In the data processing system according to
In addition, the process of aligning the divided and acquired data and connecting them to each other is performed on the AP server side, so there is no excessive load on the DB server.
図1は、この発明に係るデータ処理システム10の全体構成図であり、このシステム10は、複数のAPサーバ12と、DBサーバ14と、ロードバランサ(負荷分散装置)16とを備えている。
ロードバランサ16と各APサーバ12間、及び各APサーバ12とDBサーバ14間はネットワークによって接続されている。
また、各APサーバ12に対しては、イントラネットやインターネット等のネットワーク及びロードバランサ16を介して多数のクライアント端末20が接続されている。
FIG. 1 is an overall configuration diagram of a
The
A large number of
DBサーバ14は、DB管理システム(DBMS)21と、業務処理用の各種テーブル22を備えている。
DB管理システム21は、各テーブル22に格納されたデータの入出力、更新、および所定の演算などを行う。
The
The
各APサーバ12は、業務処理部24と、データ管理部26と、汎用処理部28と、DBアクセス処理部30と、メモリ32を備えている。
上記の業務処理部24、データ管理部26、汎用処理部28、DBアクセス処理部30は、APサーバ12のCPUが対応のアプリケーションプログラムに従って必要な処理を実行することによって実現される。
Each AP
The
DBアクセス処理部30は、DBサーバ14の各テーブル22に一対一で対応する複数のテーブル対応部34を備えている。各テーブル対応部34は、それぞれ担当するテーブル22の構成(カラム名、データ型等)を認識しており、DBサーバ14に対して担当テーブル22宛のSQL文を発行すると共に、DBサーバ14から送信されたレコードをメモリ32に格納する機能を備えている。
The DB
データ管理部26は、各テーブル22とテーブル対応部34との対応関係を認識している。またデータ管理部26は、業務毎に必要となるテーブルの組合せを把握している。
The
汎用処理部28は、マッチング処理やソート処理、コントロールブレイク処理など、個別業務に依存しないデータ操作一般に共通する処理を実行するための関数群を備えている。以下、汎用処理部28によって実行されるデータ処理の一例を示す。
The general-
(1) innerJoin
これは、図2に示すように、2つのファイルA、Bを指定キー項目でマッチングし、両ファイルに存在する項目のデータを連結させてファイルに出力する処理である。
(1) innerJoin
As shown in FIG. 2, this is a process of matching two files A and B with designated key items, concatenating the data of items existing in both files and outputting them to a file.
(2) leftOuterJoin
これは、図3に示すように、2つのファイルA、Bを指定キー項目でマッチングし、両ファイルに存在するレコードを連結させてファイルに出力し、何れかのファイルにしか存在しないレコードについては、準ファイル(ファイルA)に存在するレコードをファイルに出力する処理である。
(2) leftOuterJoin
As shown in FIG. 3, two files A and B are matched with designated key items, records existing in both files are concatenated and output to a file, and for records that exist only in either file, In this process, records existing in the quasi file (file A) are output to the file.
(3) sumUp
これは、図4に示すように、指定キー項目に基づき、特定項目の値を集計してファイルに出力する処理である。
(3) sumUp
As shown in FIG. 4, this is a process of summing up the values of specific items based on the designated key items and outputting them to a file.
(4) avarage
これは、図5に示すように、指定キー項目に基づき、特定項目の値の平均値を算出してファイルに出力する処理である。
(4) avarage
As shown in FIG. 5, this is a process of calculating an average value of specific item values based on the designated key item and outputting it to a file.
(5) match
これは、トランザクションとマスタファイルを指定項目キーでマッチングし、マッチした場合とマッチしなかった場合で異なる出力を実行する処理である。
例えば、図6に示すように、マスタとトランザクションを商品コードをキーとしてマッチングし、マッチした場合にはトランザクションの項目にマスタの商品名をセットしてファイルに出力し、マスタに存在しない商品コード及びトランザクションに存在しない商品コードについてはその旨を画面に表示することが該当する。
(5) match
This is a process in which a transaction and a master file are matched with a specified item key, and different outputs are executed depending on whether or not they match.
For example, as shown in FIG. 6, the master and the transaction are matched using the product code as a key, and if they match, the master product name is set in the transaction item and output to a file. For product codes that do not exist in the transaction, this is indicated on the screen.
(6) controlBreak
これは、トランザクションを読み込み、レコードごとにコンティニュー処理を行うものであり、ブレイクキーが変わるタイミングで指定したブレイク処理を実行するものである。
例えば、図7に示すように、商品分類コード毎に売上合計数量と売上平均数量を計算し、ファイルに出力することが該当する。
(6) controlBreak
In this method, a transaction is read and a continuation process is performed for each record, and a break process designated at a timing when the break key changes is executed.
For example, as shown in FIG. 7, the total sales quantity and the average sales quantity are calculated for each product classification code and output to a file.
(7) mergeBreak
これは、トランザクションとマスタファイルを指定項目キーに基づいてマージし、ブレイク処理を実行するものである。
例えば、図8に示すように、商品コード毎にトランザクションの売上数量を集計し、商品コードがブレイクした際に、マッチした場合にはトランザクションの項目にマスタの商品名をセットすると共に、トランザクションにしか存在しない場合には商品名に*******をセットしてファイルに出力する、またマスタにしか存在しない場合には売上なしとして商品コードを画面に表示することが該当する。
(7) mergeBreak
In this method, a transaction and a master file are merged based on a designated item key, and a break process is executed.
For example, as shown in FIG. 8, the sales volume of a transaction is totaled for each product code, and when the product code breaks, if there is a match, the master product name is set in the transaction item and only the transaction If it does not exist, set the product name as ****** and output it to a file. If it exists only in the master, the product code is displayed on the screen as no sales.
汎用処理部28は、上記した関数群を用いることにより、本来DBサーバ14によって実行されるデータ操作を代替することが可能となる。
The general-
ロードバランサ16は、クライアント端末20から送信されたリクエストを、各APサーバ12にかかっている負荷に応じて分散する役割を果たす。
The
クライアント端末20は、PC等のコンピュータよりなり、OSの他に、Webブラウザプログラムや専用のアプリケーションプログラムがセットアップされている。
The
図9〜図13は、DBサーバ14に格納されたテーブル22の具体例を示すものであり、店テーブル40(図9)、配送グループテーブル42(図10)、配送スケジュールテーブル44(図11)、在庫テーブル46(図12)、発注テーブル48(図13)を備えている。
FIGS. 9 to 13 show specific examples of the table 22 stored in the
店テーブル40は、図9に示すように、店コードと店名のデータ項目を有している。
配送グループテーブル42は、店を配送グループに応じて分類するためのテーブルであり、図10に示すように、配送グループコードと、店コードのデータ項目を有している。
As shown in FIG. 9, the store table 40 has data items of store codes and store names.
The delivery group table 42 is a table for classifying stores according to delivery groups, and has a delivery group code and store code data items as shown in FIG.
配送スケジュールテーブル44は、図11に示すように、配送グループコードと、AMと、PMのデータ項目を有している。午前配送が設定されている配送グループにはAMに「1」がセットされており、午前配送が設定されていない配送グループにはAMに「0」がセットされている。同様に、午後配送が設定されている配送グループにはPMに「1」がセットされており、午後配送が設定されていない配送グループにはPMに「0」がセットされている。 As shown in FIG. 11, the delivery schedule table 44 includes data items of delivery group code, AM, and PM. “1” is set in AM for a delivery group in which AM delivery is set, and “0” is set in AM in a delivery group in which AM delivery is not set. Similarly, “1” is set in PM for a delivery group in which afternoon delivery is set, and “0” is set in PM in a delivery group in which no afternoon delivery is set.
在庫テーブル46は、図12に示すように、商品コードと在庫数量のデータ項目を有しており、商品別の在庫数量が記録される。
発注テーブル48は、図13に示すように、店コード、商品コード、発注数量のデータ項目を有しており、受け付けた発注に関する情報が記録される。
As shown in FIG. 12, the stock table 46 has data items of product code and stock quantity, and the stock quantity for each product is recorded.
As shown in FIG. 13, the order table 48 includes data items of a store code, a product code, and an order quantity, and information on the accepted order is recorded.
つぎに、図14のフローチャートに従い、このシステム10におけるデータ処理の手順を説明する。
まず、何れかのクライアント端末20から商品発注トランザクションが出力されると、何れかのAPサーバ12が、ロードバランサ16経由でこのトランザクションを受信する(S10)。
Next, a data processing procedure in the
First, when a product ordering transaction is output from any
ここで、トランザクションのフォーマットの一例を図15に示す。
トランザクション50は、トランザクションの種別を示す領域52と、データ領域54とを有する。
発注トランザクションの場合には、種別領域52に「発注」を示すデータがセットされている。また、データ領域54には、商品コードと、店コードと、発注数量とが含まれている。ここでは、商品コードに「S0001」が、店コードに「M001」が、発注数量に「25」がそれぞれセットされている。
An example of the transaction format is shown in FIG.
The
In the case of an order transaction, data indicating “order” is set in the
これに対しAPサーバ12の業務処理部24は、種別領域52にセットされているデータを解析して、トランザクション種別を判定する(S12)。
ここでは、トランザクション種別は「発注」なので、業務処理部24は発注トランザクションの処理を実行する。
On the other hand, the
Here, since the transaction type is “ordering”, the
まず業務処理部24は、データ管理部26に対し、発注処理の実行に必要なデータとして、店コードと店名との対応データ、当該店舗が属する配送グループのデータ、各配送グループの配送スケジュールのデータ、対象商品の在庫量データ、発注管理データの取得を依頼する。
First, the
これを受けたデータ管理部26は、上記のデータの格納元として店テーブル40、配送グループテーブル42、配送スケジュールテーブル44、在庫テーブル46、発注テーブル48を特定した上で(S14)、DBアクセス処理部30における対応のテーブル対応部34に対し、必要データの取得を指令する(S15)。
In response to this, the
これに対し各テーブル対応部34は、自身が担当するテーブル22からレコードを取得するためのSQL文をそれぞれ生成し、DBサーバ14に対し発行する(S16)。
これを受けたDBサーバ14のDB管理システム21は、該当のテーブル22からレコードを抽出し、APサーバ12の各テーブル対応部34に送信する。
これを受信した各テーブル対応部34は(S18)、送信されたデータをメモリ32に格納する(S20)。
On the other hand, each
Upon receiving this, the
Receiving this, each table corresponding unit 34 (S18) stores the transmitted data in the memory 32 (S20).
業務処理部24は、このメモリ32上のデータに基づいて、発注トランザクションに必要な処理を実行する。このとき業務処理部24は、汎用処理部28が備える関数群を利用する。
The
まず業務処理部24は、発注のあった店舗に関する配送グループを特定する(S22)。
具体的には、発注トランザクションデータおよび配送グループデータについて、店コードをキーにソートしたのち、同じく店コードをキーとしたマッチングを行ない、発注のあった店に関連付けられた配送グループコードを特定して発注トランザクションデータに付与する。
そして、付与された配送グループコードをキーに、発注トランザクションデータと配送スケジュールデータをソートし、配送グループコードをキーにマッチングすることで、配送グループ(午前のみか、午後のみか、午前および午後か)を特定する。
First, the
Specifically, for ordering transaction data and delivery group data, after sorting by store code as a key, matching is also performed using the store code as a key, and the delivery group code associated with the store that placed the order is specified. Assigned to purchase order transaction data.
Then, the ordering transaction data and the delivery schedule data are sorted using the assigned delivery group code as a key, and the delivery group code is matched with the delivery group code as a key, so that the delivery group (AM only, PM only, AM and PM) Is identified.
上記のソート処理やキー部の値のマッチング処理に際し、汎用処理部28が備える関数群が用いられる。
また、この汎用処理部28が動作する際には、メモリ32上のデータが、データ管理部26によって汎用的なレコード型に代入される。
このように、汎用処理部28の動作に先立って汎用的なレコード型に代入されることにより、汎用処理部28はデータ型を意識することなく、各データを単純にカラム名で扱うことが可能となり、汎用的な処理が実現される。
汎用処理部28によるデータ操作が終了した時点で、データ管理部26によって処理結果データは業務処理部24に応じた固有のデータ型に変換される。
A function group included in the general-
When the general-
In this way, by assigning to a general-purpose record type prior to the operation of the general-
When the data operation by the general-
ここで、午前配送および午後配送で配送を行うためには、それぞれ発注を受け付ける時間帯があらかじめ定められている。このため、業務処理部24は、発注があった店舗の配送グループと現在時刻とに基づいて、その店の発注要求を受け付け可能な時間帯であるかどうかを判定する(S24)。
発注可能な時間帯でないときは(S24:No)、以下の処理をスキップする。
Here, in order to deliver in the morning delivery and the afternoon delivery, time periods for receiving orders are determined in advance. Therefore, the
When it is not an orderable time zone (S24: No), the following processing is skipped.
発注可能な時間帯であるときは(S24:Yes)、業務処理部24は発注のあった商品の在庫の有無を確認する(S26)。例えば、商品コードをキーにして在庫データを検索し、在庫数量と発注数量とを比較する。
When it is time for ordering (S24: Yes), the
在庫数量が発注数量よりも少ないときは(S26:No)、以下の処理をスキップする。
在庫数量が発注数量よりも少なくないときは(S26:Yes)、業務処理部24はメモリ32上の在庫データ及び発注データを更新する(S28)。
When the stock quantity is smaller than the order quantity (S26: No), the following processing is skipped.
When the stock quantity is not smaller than the order quantity (S26: Yes), the
メモリ32上のデータが更新されると、データ管理部26は在庫テーブル46を担当するテーブル対応部34及び発注テーブル48を担当するテーブル対応部34に対してレコードの更新を指令する(S29)。
これを受けた各テーブル対応部34は、この指令に基づいてメモリ32から必要なデータを取得し、単一のテーブルに対するSQL文を生成した後、それぞれDBサーバ14に発行する(S30)。
この結果、DBサーバ14上の対応テーブル22が更新される(S32)。
When the data on the
Receiving this, each
As a result, the correspondence table 22 on the
以上に説明した手順により、発注トランザクションに係る処理が完了する。
この後、業務処理部24は上記のような処理が実行された結果を、トランザクション送信元のクライアント端末20に返信する。
すなわち、発注処理が完了したときはその旨を返信し、発注処理が完了しなかったときは、その理由を返信する。
With the procedure described above, the processing related to the ordering transaction is completed.
Thereafter, the
That is, when the ordering process is completed, a message to that effect is returned, and when the ordering process is not completed, the reason is returned.
本実施形態によれば、DBサーバ14上のデータに対する実質的な処理は、DB管理システム21ではなく、APサーバ12が行う。
そして、APサーバ12は複数台あるので、従来はDBサーバ14に集中していた処理を分散させることができる。
したがって、従来に比べてDBサーバ14にかかる負荷は軽減され、システム10全体での処理速度は向上する。
According to the present embodiment, substantial processing for data on the
Since there are a plurality of
Therefore, the load on the
しかも、APサーバから発行されるSQL文は、全てが単一テーブルを対象としたものであり、その構文が単純化される結果、1SQL当たりのDBサーバ14への負荷を軽減し、巨大なSQLの実行に伴う予期せぬシステムのスローダウンを回避可能となる。
Moreover, the SQL statements issued from the AP server are all targeted for a single table, and the syntax is simplified, reducing the load on the
なお、各テーブル対応部34から担当のテーブル22に対してSQL文を発行するに際し、必要な範囲のデータを一度に取得する代わりに、所定数に分割して取得するように指令することができる。
例えば、特定のテーブル22から10,000件のデータを抽出する必要がある場合に、1,000件ずつ取得することを命じるSQL文を10回に分けて発行することにより、DBサーバ14側のリソース(通常は複数個のCPUを備える)を有効活用し、巨大な要求に対する高速化を実現可能となる。
この場合、各テーブル対応部24は、分割取得したデータを順次メモリ32上に格納し、全てのデータが揃った時点でデータを整列結合させる。
In addition, when issuing an SQL statement from each
For example, if it is necessary to extract 10,000 records from a specific table 22, the
In this case, each
このような検索の並列処理化によって分割取得した結果を統合するという処理には比較的大きな負荷がかかるが、これをDBサーバ14側ではなく分散処理化が容易なAPサーバ12側で行うことにより、システム全体での効率化を達成できる。
The process of integrating the results obtained by dividing the search by parallel processing of such a search requires a relatively large load. However, this is not done on the
このように、APサーバ12のDBアクセス処理部30からは単一のテーブル単位でSQL文が発行される仕組みであるため、DBアクセス処理部30を実現するためのプログラムも単純化され、その分開発が容易となるのは勿論、プログラムの再利用性や保守性が向上する利点がある。
As described above, since the SQL statement is issued from the DB
APサーバ12側の処理の中、従来DBサーバ14で行われていたデータ操作自体は汎用処理部28の関数群を通じて処理されるため、業務処理部24は業務ロジックに特化でき、その分コードを簡素化できる。
In the process on the
上記のように、各テーブル22からもたらされたデータは、データ管理部26によって抽象的なデータ型であるレコード型に代入された後、汎用処理部28によるデータ操作に供される仕組みであるため、汎用処理部28はテーブル22毎の具体的なデータ型を認識する必要がなくなり、その汎用性を担保することができる。
また、汎用処理部28によるデータ操作が終了した時点で、データ管理部26によって処理結果データが業務処理部24に応じた固有のデータ型に変換されるため、業務処理部24においてデータ型の不一致に基づくエラーチェックが可能となる。
As described above, the data brought from each table 22 is assigned to the record type, which is an abstract data type, by the
Furthermore, when the data processing by the general-
上記のように、データ管理部26が業務単位で必要となる具体的なテーブルの組合せを認識しており、またDBアクセス処理部30の各テーブル対応部34が担当するテーブル22の構成(カラム名、データ型等)を認識しているため、業務処理部24はDBサーバ14側のテーブル構造を意識する必要がない。このため、業務処理部24のコーディングが容易化するのはもちろんのこと、テーブル構造に変更が生じてもデータ管理部26及び該当のテーブル対応部34のコードを修正するだけで済み、業務処理部24のコードはそのまま使える利点が生じる。
As described above, the
DBサーバ14からのデータをメモリ32に格納する前に、DBアクセス処理部30の各テーブル対応部34により、それぞれのデータ型がPrimitive型に変換されるように構成してもよい。
例えば、String型の代わりにbyte配列型を、BigDecimal型の代わりにdouble型を用いることにより、数十倍のオーダーでメモリ消費量を削減可能となり、APサーバ12上で扱えるデータ件数を大幅に増やすことが可能となる。
この場合、汎用処理部28によるデータ操作が完了した後、データ管理部26によってもとのデータ型に再変換される。
Before the data from the
For example, by using the byte array type instead of the String type and the double type instead of the BigDecimal type, the memory consumption can be reduced on the order of several tens of times, and the number of data that can be handled on the
In this case, after the data operation by the general-
10 データ処理システム
12 APサーバ
14 DBサーバ
16 ロードバランサ
20 クライアント端末
21 DB管理システム
22 テーブル
24 業務処理部
26 データ管理部
28 汎用処理部
30 アクセス処理部
32 メモリ
34 テーブル対応部
40 店テーブル
42 配送グループテーブル
44 配送スケジュールテーブル
46 在庫テーブル
48 発注テーブル
50 トランザクション
52 種別領域
54 データ領域
10 Data processing system
12 AP server
14 DB server
16 Load balancer
20 Client terminal
21 DB management system
22 tables
24 Business Processing Department
26 Data Management Department
28 General-purpose processing unit
30 Access processing section
32 memory
34 Table support section
40 store table
42 Delivery group table
44 Delivery schedule table
46 Stock table
48 Ordering table
50 transactions
52 Type area
54 Data area
Claims (2)
上記APサーバは、業務処理部と、データ管理部と、上記DBサーバの各テーブルと一対一で対応した複数のテーブル対応部と、汎用処理部と、メモリとを備え、
上記データ管理部は、業務処理に必要なデータを格納しているテーブルと、各テーブルを担当しているテーブル対応部を認識しており、
上記の各テーブル対応部は、それぞれが担当するテーブルの構成を認識しており、
上記汎用処理部は、ソート処理用の関数、innerJoin処理用の関数、leftOuterJoin処理用の関数、sumUp処理用の関数、average処理用の関数、match処理用の関数、controlBreak処理用の関数、mergeBreak処理用の関数の中の何れか一つ以上の関数を有しており、
上記業務処理部は、クライアント端末からトランザクションが送信された場合に、当該トランザクションの種別を判定すると共に、上記データ管理部に対して必要なデータの取得を指令する処理を実行し、
この指令を受けたデータ管理部は、当該トランザクションの処理に必要なデータを格納したテーブルを特定すると共に、当該テーブルを担当するテーブル対応部を特定し、これに必要なデータの取得を指令する処理を実行し、
この指令を受けた各テーブル対応部は、自己が担当するテーブルから必要なデータを取得するためのSQL文を生成し、テーブル単位でDBサーバに送信すると共に、DBサーバから送信されたテーブル単位のデータを、上記メモリに格納する処理を実行し、
上記業務処理部は、このメモリに格納されたテーブル単位のデータに対し、上記トランザクションに対応したデータ処理を実行し、
この業務処理部によるデータ処理の結果、メモリ上に格納されたテーブル単位のデータが更新された場合に、上記データ管理部は担当のテーブル対応部に対してデータの更新を指令する処理を実行し、
この指令を受けたテーブル対応部は、メモリ上のデータに基づいて自己の担当するテーブルを更新することを求めるSQL文を生成し、DBサーバに送信する処理を実行するデータ処理システムであって、
さらに、上記業務処理部が上記トランザクションに対応したデータ処理を実行するに際し、個別業務に依存しない汎用的なデータ操作については、上記汎用処理部の関数が利用され、
上記データ管理部は、この汎用処理部の関数による処理に先立ち、上記メモリに格納されたテーブル単位のデータを、各データを単純にカラム名で扱うことを可能とする汎用的なレコード型に代入する処理を実行し、
上記汎用処理部の関数は、このレコード型のデータに対して必要な処理を実行することを特徴とするデータ処理システム。 It has a DB server that stores multiple tables and an AP server.
The AP server includes a business processing unit, a data management unit, a plurality of table corresponding units corresponding to each table of the DB server, a general-purpose processing unit, and a memory.
The data management unit recognizes a table storing data necessary for business processing and a table corresponding unit responsible for each table,
Each table-corresponding unit recognizes the configuration of the table that it is in charge of,
The above general-purpose processing unit is a sort processing function, innerJoin processing function, leftOuterJoin processing function, sumUp processing function, average processing function, match processing function, controlBreak processing function, mergeBreak processing Has one or more of the functions for
When the transaction is transmitted from the client terminal , the business processing unit determines the type of the transaction and executes a process for instructing the data management unit to acquire necessary data.
The data management unit that has received this command specifies a table that stores data necessary for processing the transaction, specifies a table corresponding unit in charge of the table, and instructs the acquisition of data necessary for this Run
Each table corresponding unit that receives this command generates an SQL statement for acquiring necessary data from the table that it is in charge of, and sends it to the DB server in units of tables, and also sends the SQL unit for each table sent from the DB server. data, perform a process of storing in the memory,
The business processing unit performs data processing corresponding to the transaction on the data of the table stored in the memory,
As a result of the data processing by the business processing unit, when the data in the table unit stored in the memory is updated, the data management unit executes a process for instructing the responsible table corresponding unit to update the data. ,
The table corresponding unit that has received this instruction is a data processing system that generates a SQL statement that requests updating of the table that it is in charge of based on the data in the memory, and executes processing to send to the DB server,
Furthermore, when the business processing unit executes data processing corresponding to the transaction, the general processing unit function is used for general data operations that do not depend on the individual business,
Prior to processing by the function of the general-purpose processing unit, the data management unit substitutes the data of the table stored in the memory into a general-purpose record type that allows each data to be handled simply by a column name. Execute the process to
A function of the general-purpose processing unit performs a necessary process on the record type data .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007090095A JP5096775B2 (en) | 2007-03-30 | 2007-03-30 | Data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007090095A JP5096775B2 (en) | 2007-03-30 | 2007-03-30 | Data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008250588A JP2008250588A (en) | 2008-10-16 |
JP5096775B2 true JP5096775B2 (en) | 2012-12-12 |
Family
ID=39975476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007090095A Expired - Fee Related JP5096775B2 (en) | 2007-03-30 | 2007-03-30 | Data processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5096775B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5474743B2 (en) * | 2010-11-20 | 2014-04-16 | 株式会社野村総合研究所 | Program development support system |
JP5604403B2 (en) * | 2011-10-26 | 2014-10-08 | 株式会社野村総合研究所 | Data utilization system |
JP5608633B2 (en) * | 2011-12-21 | 2014-10-15 | 株式会社野村総合研究所 | Data utilization system |
JP5604478B2 (en) * | 2012-07-10 | 2014-10-08 | 株式会社野村総合研究所 | Data utilization system |
JP5681781B2 (en) * | 2013-12-24 | 2015-03-11 | 株式会社野村総合研究所 | Data utilization system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3277654B2 (en) * | 1993-12-20 | 2002-04-22 | 株式会社日立製作所 | Heterogeneous database access system |
JP4533974B2 (en) * | 1996-08-01 | 2010-09-01 | 康 清木 | Heterogeneous database integration system |
JPH11110262A (en) * | 1997-10-01 | 1999-04-23 | Toshiba Corp | Information management system |
JP2004062243A (en) * | 2002-07-24 | 2004-02-26 | Internatl Business Mach Corp <Ibm> | Client server system, client, server, computer unit, and method and program for preparing print image |
JP2004062566A (en) * | 2002-07-30 | 2004-02-26 | Jmnet Inc | Database system, master node device constituting it, and program |
JP2005165610A (en) * | 2003-12-02 | 2005-06-23 | Nomura Research Institute Ltd | Transaction processing system and method |
-
2007
- 2007-03-30 JP JP2007090095A patent/JP5096775B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008250588A (en) | 2008-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5298117B2 (en) | Data merging in distributed computing | |
CN112115190B (en) | Method, device and system for converting interface message | |
US20180365005A1 (en) | Distributed parallel build system | |
US20080222634A1 (en) | Parallel processing for etl processes | |
CN108256113B (en) | Data blood relationship mining method and device | |
JP5096775B2 (en) | Data processing system | |
JP2007293838A (en) | Content transformation system | |
US8781919B2 (en) | Data row packing apparatus, systems, and methods | |
CN111552728B (en) | Data processing method, system, terminal and storage medium of block chain | |
CN110837520A (en) | Data processing method, platform and system | |
US20040236758A1 (en) | Methods, systems and computer program products for web services access of analytical models | |
US20190332697A1 (en) | Database schema validations | |
CN113434311B (en) | Service data interaction method, device, equipment and storage medium | |
US8051110B2 (en) | Identifying screen flows to support multiple entities and their diverse rules with a single application instance | |
JP2005165610A (en) | Transaction processing system and method | |
WO2018080891A1 (en) | Processing application programming interface (api) queries based on variable schemas | |
CN111708756A (en) | Method, device and equipment for automatically processing data warehouse and storage medium | |
CN110740178A (en) | application service processing system and application service processing method | |
JP4603401B2 (en) | Data conversion system and data conversion program | |
CN101206649A (en) | Multitask analysis system and method | |
CN113626510B (en) | Transaction verification method, device, electronic equipment and storage medium | |
CN113419726A (en) | Method, device and equipment for generating commodity detail page and storage medium | |
CN111611245B (en) | Method and system for processing data table | |
JP2014123209A (en) | Information material output device, information material output method, and information material output program | |
US20240152846A1 (en) | Data analytics in supply chain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120427 |
|
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: 20120911 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120921 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150928 Year of fee payment: 3 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |