JP2019204250A - Application server and business application execution method by server - Google Patents

Application server and business application execution method by server Download PDF

Info

Publication number
JP2019204250A
JP2019204250A JP2018098473A JP2018098473A JP2019204250A JP 2019204250 A JP2019204250 A JP 2019204250A JP 2018098473 A JP2018098473 A JP 2018098473A JP 2018098473 A JP2018098473 A JP 2018098473A JP 2019204250 A JP2019204250 A JP 2019204250A
Authority
JP
Japan
Prior art keywords
data
business
storage area
temporary storage
syntax
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.)
Pending
Application number
JP2018098473A
Other languages
Japanese (ja)
Inventor
翔一 宮城
Shoichi Miyagi
翔一 宮城
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018098473A priority Critical patent/JP2019204250A/en
Publication of JP2019204250A publication Critical patent/JP2019204250A/en
Pending legal-status Critical Current

Links

Images

Abstract

To realize DB switching without changing a business program as much as possible when renovating an application generated at the change of a platform and when shifting it to a new platform, thereby solving a performance problem.SOLUTION: An application server includes: a communication unit for transmitting and receiving data to and from a database; an auxiliary storage unit for storing a business program and an analysis program to analyze the business program; a main storage unit having a temporary storage area for temporarily storing data; and a control unit for executing the business program or the analysis program. The control unit executes the analysis program to extract syntax executed under a predetermined condition included in the business program, stores one or more pieces of the extracted syntax in the temporary storage area, receives a plurality of data obtained by executing the stored one or more pieces of syntax from the database via the communication unit and stores them in the temporary storage area.SELECTED DRAWING: Figure 1

Description

本発明は、アプリケーションの改修および新プラットフォームへの移行を行う際に、性能的な問題を改善するアプリケーションサーバおよびサーバによる業務アプリケーションの実行方法に関する。   The present invention relates to an application server that improves performance problems when renovating an application and migrating to a new platform, and a business application execution method using the server.

カラムナーデータベースからデータを取得するときの性能的な問題として、カラム単位で主記憶装置への転送が行われると、同一のカラムのデータが連続したアドレスに配置されることになり、1つのローにアクセスするにもかかわらず、離散的なアドレスに複数回アクセスしなければならず、CPUの負荷が上昇してしまうという事象が発生する。   As a performance problem when acquiring data from the columnar database, when data is transferred to the main memory in units of columns, the data in the same column is arranged at consecutive addresses, and one row is stored. Regardless of the access, a discrete address must be accessed multiple times, resulting in an increase in CPU load.

この問題を改善するため、特許文献1には、「メモリ装置と、ストレージ装置と、データベース処理エンジンとを備え、データベース処理エンジンは、ストレージ装置に保存されたカラム型ページをロー型ページに変換してメモリ装置に保存するモジュールを有することで、メモリ装置ではロー型ページで管理されるので、データベースへの効率的なアクセスを実現できる」という記載がある。   In order to improve this problem, Patent Document 1 discloses that “a memory device, a storage device, and a database processing engine are provided, and the database processing engine converts a column type page stored in the storage device into a row type page. In other words, it is possible to realize efficient access to the database because the memory device manages modules using raw pages.

国際公開第2014/010038号International Publication No. 2014/010038

データベース(以下、「DB」という)を新しいDBに切り替える場合、物理的なデータ配置の差異によって、もともと使っていた業務アプリケーションの構造をそのまま適用すると、性能的な問題が発生することがある。   When a database (hereinafter referred to as “DB”) is switched to a new DB, a performance problem may occur if the structure of the business application originally used is applied as it is due to a difference in physical data arrangement.

そこで、本発明では、プラットフォームの変更に伴い発生するアプリケーションの改修および新プラットフォームへの移行を行う際、業務プログラムに極力手を加えずにDBの切り替えを実現し、性能的な問題を解決することを目的とする。   Therefore, in the present invention, when renovating an application that occurs due to a platform change and migrating to a new platform, DB switching is realized without changing the business program as much as possible, and a performance problem is solved. With the goal.

上記課題を解決するために、本発明に係るアプリケーションサーバは、データベースとデータの送受信を行う通信部と、業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、データを一時的に記憶する一時記憶領域を有する主記憶部と、業務プログラムまたは解析プログラムを実行する制御部とを備え、制御部は、解析プログラムを実行して業務プログラムに含まれる所定の条件で実行される構文を抽出し、抽出した1以上の構文を一時記憶領域に記憶すると共に、記憶した当該1以上の構文を実行して得られる複数のデータをデータベースより前記通信部を介して受信し一時記憶領域に記憶することを特徴とする。   In order to solve the above problems, an application server according to the present invention includes a communication unit that transmits and receives data to and from a database, an auxiliary storage unit that stores a business program and an analysis program that analyzes the business program, and temporarily stores data. A main storage unit having a temporary storage area and a control unit for executing a business program or an analysis program, wherein the control unit executes the analysis program and is executed under a predetermined condition included in the business program And the extracted one or more syntaxes are stored in the temporary storage area, and a plurality of data obtained by executing the stored one or more syntaxes are received from the database via the communication unit and stored in the temporary storage area. It is memorized.

本発明によれば、プログラマは移行後のDBの特性を意識せずにアプリケーション移行を実現でき、性能的な問題を解決できる。
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
According to the present invention, a programmer can realize application migration without being aware of the characteristics of the migrated DB, and can solve performance problems.
Problems, configurations, and effects other than those described above will become apparent from the following description of embodiments.

本発明に係るシステム構成の一例として、APサーバおよびカラムナーDBが有する構成を示すブロック図である。It is a block diagram which shows the structure which AP server and columner DB have as an example of the system configuration | structure which concerns on this invention. カラムナーDBに格納されているテーブル情報のデータ構成を示す図である。It is a figure which shows the data structure of the table information stored in columner DB. 本発明に係る処理手順(フローチャート)を示す図である。It is a figure which shows the process sequence (flowchart) which concerns on this invention. 本発明に係るプログラム解析処理および変換処理の処理手順(フローチャート)を示す図である。It is a figure which shows the process sequence (flowchart) of the program analysis process and conversion process which concern on this invention. 本発明に係る実行処理および分析処理の処理手順(フローチャート)を示す図である。It is a figure which shows the process sequence (flowchart) of the execution process and analysis process which concern on this invention. ステップ503でキャッシュ領域の空きサイズをチェックした結果メモリ容量が足りない場合の処理手順(フローチャート)を示す図である。It is a figure which shows the process sequence (flowchart) when memory capacity is insufficient as a result of checking the empty size of a cache area in step 503. ステップ510でキャッシュ内に目的のデータがない場合の処理手順(フローチャート)を示す図である。It is a figure which shows the process sequence (flowchart) when there is no target data in cache in step 510. プログラム解析処理の解析対象のSQL文を示す図である。It is a figure which shows the SQL sentence of the analysis object of a program analysis process. SQL文の条件式に当て嵌まる値をプログラムの中を解析して特定する手順を示す図である。It is a figure which shows the procedure which analyzes the inside of a program and specifies the value applicable to the conditional expression of a SQL sentence. SQL文の条件式に当て嵌まる値を入力データの中を解析して特定する手順を示す図である。It is a figure which shows the procedure which analyzes and pinpoints the value applicable to the conditional expression of a SQL sentence in input data. 解析の結果のSQL文のイメージ図である。It is an image figure of the SQL sentence of the result of analysis. SQL文を実行してカラムナーDBからデータを取得したときのキャッシュ装置に格納するデータ情報を示す図である。It is a figure which shows the data information stored in a cache apparatus when executing a SQL sentence and acquiring data from columnar DB. 目的のデータがキャッシュ装置に存在しない場合にカラムナーDBから取得するSQL文を示す図である。It is a figure which shows the SQL sentence acquired from columnar DB when the target data does not exist in a cache apparatus. カラムナーDBからデータを取得したときにキャッシュ装置に格納するデータ情報を示す図である。It is a figure which shows the data information stored in a cache apparatus, when data are acquired from columnar DB. マージしたSQL文を示す図である。It is a figure which shows the merged SQL sentence. ステップ509で処理したログ出力を示す図である。It is a figure which shows the log output processed by step 509. FIG.

以下に、本発明を実施するための形態として、実施例について図面を用いて詳細に説明する。   Hereinafter, embodiments will be described in detail with reference to the drawings as modes for carrying out the present invention.

図1は、本発明に係るシステム構成の一例として、アプリケーションサーバ(以下、「APサーバ」という)100およびカラムナーDB200が有する構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of an application server (hereinafter referred to as “AP server”) 100 and a columner DB 200 as an example of a system configuration according to the present invention.

APサーバ100は、アプリケーションの処理と実行を行う装置であって、主記憶部であるメモリ101、処理装置であるCPU105、データの格納領域であるストレージ106およびカラムナーDB200と通信を行う通信装置109を備える。   The AP server 100 is a device that processes and executes an application, and includes a memory 101 that is a main storage unit, a CPU 105 that is a processing device, a storage 106 that is a data storage area, and a communication device 109 that communicates with a columner DB 200. Prepare.

メモリ101は、データを管理する領域であるキャッシュ装置102を有し、このキャッシュ装置102は、データを格納する領域であるキャッシュ領域103およびキャッシュ領域103にデータを格納するための処理部品である共通部品104を有する。
ストレージ106は、業務プログラム107および解析プログラム108などのプログラム並びに所要のデータを格納する。
The memory 101 has a cache device 102 that is an area for managing data. The cache device 102 is a cache area 103 that is an area for storing data, and a common processing component for storing data in the cache area 103. It has a part 104.
The storage 106 stores programs such as the business program 107 and the analysis program 108 and necessary data.

業務プログラム107は、業務処理を行うプログラムである。
一方、解析プログラム108は、業務プログラム107を解析して業務プログラム107が使用するデータを特定し、そのデータを含めた一定の範囲のデータを一括でカラムナーDB200から取得する処理を処理部品として共通部品104に登録する。また、解析プログラム108は、業務プログラム107が登録したデータを使用するように業務プログラム107を修正する。
業務プログラム107および解析プログラム108は、CPU105によって実行される際に、メモリ101に展開される。
The business program 107 is a program for performing business processing.
On the other hand, the analysis program 108 analyzes the business program 107 to identify data used by the business program 107, and uses a process for acquiring a certain range of data including the data from the columner DB 200 as a processing component. 104. Further, the analysis program 108 modifies the business program 107 so that the data registered by the business program 107 is used.
The business program 107 and the analysis program 108 are expanded in the memory 101 when executed by the CPU 105.

なお、本実施例に係る業務プログラム107は、天候および時間が店舗への来客数に影響するかを分析するためのプログラムを一例として用いたものである。この業務プログラム107はあくまで一例であり、他の業務プログラムを対象としてもよいことは言うに及ばない。   The business program 107 according to the present embodiment uses a program for analyzing whether the weather and time affect the number of visitors to the store as an example. This business program 107 is merely an example, and it goes without saying that other business programs may be targeted.

大量のデータの管理と格納を行う装置であるカラムナーDB200は、大量のデータの管理および格納を行う装置であって、処理装置であるCPU201、データの格納領域であるストレージ202、記憶領域であるメモリ204およびAPサーバ100と通信を行う通信装置203を備える。
図2は、カラムナーDB200に格納されているテーブル情報のデータ構成を示す図である。このテーブル情報は、ストレージ202に保存される。ここで、図2に示すテーブル名は、「来場者情報テーブル」とする。
The columner DB 200, which is a device that manages and stores a large amount of data, is a device that manages and stores a large amount of data. The CPU 201 is a processing device, the storage 202 is a data storage region, and the memory is a storage region. 204 and a communication device 203 that communicates with the AP server 100.
FIG. 2 is a diagram illustrating a data configuration of table information stored in the columner DB 200. This table information is stored in the storage 202. Here, the table name shown in FIG. 2 is “visitor information table”.

図3は、本発明に係る処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を説明する。ここで、処理を実行する主体は、APサーバ100のCPU201であるが、APサーバ100として総称して示す。   FIG. 3 is a diagram showing a processing procedure (flow chart) according to the present invention. The processing mode based on this flowchart will be described below. Here, the subject that executes the processing is the CPU 201 of the AP server 100, but is collectively shown as the AP server 100.

<ステップ301>
APサーバ100は、業務プログラム107を対象としてプログラムの解析処理を実行する。
<Step 301>
The AP server 100 executes program analysis processing for the business program 107.

<ステップ302>
APサーバ100は、業務プログラム107を対象としてステップ301の解析結果を反映する変換処理を実行する。
<Step 302>
The AP server 100 executes conversion processing that reflects the analysis result in step 301 for the business program 107.

<ステップ303>
APサーバ100は、ステップ301の処理結果を反映させた業務プログラム107を実行する。
<Step 303>
The AP server 100 executes the business program 107 reflecting the processing result of step 301.

<ステップ304>
APサーバ100は、ステップ303で実行した業務プログラム107のSQL文の実行ログを蓄積して分析処理を行う。
<Step 304>
The AP server 100 accumulates the SQL statement execution log of the business program 107 executed in step 303 and performs analysis processing.

次に、上述した各ステップの詳細について説明する。
図4は、図3に示す、ステップ301のプログラムの解析処理およびステップ302の変換処理の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。
Next, details of each step described above will be described.
FIG. 4 is a diagram showing a processing procedure (flow chart) of the program analysis process in step 301 and the conversion process in step 302 shown in FIG. The processing mode based on this flowchart is shown below.

<ステップ401>
APサーバ100は、業務プログラム107および入力データを読み込む。
本実施例では、入力データは、業務プログラム107が実行されたときに用いられた過去3回分のデータとしており、例えば図10に示すデータのことである。ここでは、入力データを過去3回分のデータとしているが、“3”という数値は一例であってこれに限定するものではない。
<Step 401>
The AP server 100 reads the business program 107 and input data.
In the present embodiment, the input data is data for the past three times used when the business program 107 is executed, for example, data shown in FIG. Here, the input data is the data for the past three times, but the numerical value “3” is an example, and the present invention is not limited to this.

<ステップ402>
APサーバ100は、ステップ401で読み込んだデータを解析しSQL文を抽出する。
本実施例においては、図8に示すように、来場者情報テーブルから変数1が真かつ変数2が真のときに、該条件に一致するデータを抜き出すSQL文が抽出される。
<Step 402>
The AP server 100 analyzes the data read in step 401 and extracts the SQL sentence.
In the present embodiment, as shown in FIG. 8, when the variable 1 is true and the variable 2 is true, an SQL sentence for extracting data that matches the condition is extracted from the visitor information table.

<ステップ403>
APサーバ100は、ステップ402で抽出したSQL文の条件式で用いられている変数に入力するデータの値を、業務プログラム107から解析する。
本実施例では、解析プログラム108が業務プログラム107を解析することにより、図8に示すSQL文の条件式から、図9に示すように変数2が“sunny”であることが判明する。
<Step 403>
The AP server 100 analyzes, from the business program 107, the value of data to be input to the variable used in the conditional expression of the SQL sentence extracted in step 402.
In the present embodiment, when the analysis program 108 analyzes the business program 107, it is found from the conditional expression of the SQL statement shown in FIG. 8 that the variable 2 is “sunny” as shown in FIG.

<ステップ404>
APサーバ100は、SQL文の条件式で用いられている変数に入力するデータの値を、入力データから解析する。
本実施例では、解析プログラム108が業務プログラム107を解析することにより、図8に示すSQL文の条件式から、図10に示すように、変数2が変数inputdataであることが判明する。さらに続けて解析することにより、変数inputdataは入力データを読み込んで取得した値を格納することが判明し、解析プログラム108が入力データを解析することにより、変数inputdataが“cloudy”であることが判明する。
<Step 404>
The AP server 100 analyzes the value of data input to a variable used in the conditional expression of the SQL sentence from the input data.
In the present embodiment, when the analysis program 108 analyzes the business program 107, the conditional expression of the SQL statement shown in FIG. 8 reveals that the variable 2 is a variable inputdata as shown in FIG. Further analysis makes it clear that the variable inputdata stores the value obtained by reading the input data, and the analysis program 108 analyzes the input data and finds that the variable inputdata is “cloudy”. To do.

<ステップ405>
APサーバ100は、ステップ403および404でそれぞれ特定した入力データを含むある程度の範囲のデータを一括で取得するSQL文を作成して、共通部品104に登録する。また、このSQL文で取得したデータは、キャッシュ領域103に格納される。
本実施例では、図11に示すように、変数2が、“sunny”であるときのSQL文と“cloudy”であるときのSQL文とを組み合わせたSQL文を作成し、共通部品104に登録することになる。
<Step 405>
The AP server 100 creates an SQL statement that collectively acquires a certain range of data including the input data identified in steps 403 and 404 and registers it in the common component 104. Further, the data acquired by this SQL statement is stored in the cache area 103.
In the present embodiment, as shown in FIG. 11, an SQL statement is created by combining the SQL statement when the variable 2 is “sunny” and the SQL statement when the variable 2 is “cloudy”, and is registered in the common component 104. Will do.

<ステップ406>
APサーバ100は、ステップ402で抽出したSQL文をキャッシュ装置103の共通部品104から取得するように、業務プログラムのSQL文を変換して修正する。
<Step 406>
The AP server 100 converts and corrects the SQL sentence of the business program so that the SQL sentence extracted in step 402 is acquired from the common component 104 of the cache device 103.

<ステップ407>
業務プログラム107および共通部品104をビルド後デプロイする。
<Step 407>
The business program 107 and the common part 104 are deployed after being built.

図5は、図3に示す、ステップ303の実行処理およびステップ304の分析処理の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。   FIG. 5 is a diagram showing a processing procedure (flow chart) of the execution process of step 303 and the analysis process of step 304 shown in FIG. The processing mode based on this flowchart is shown below.

<ステップ501>
APサーバ100は、業務プログラム107を実行する。このプログラムの実行により、取得対象のレコードがキャッシュ装置102に通知される。APサーバ100は、キャッシュ装置102の共通部品104を使うことで、カラムナーDB200からレコード取得する。
<Step 501>
The AP server 100 executes the business program 107. By executing this program, the record to be acquired is notified to the cache device 102. The AP server 100 acquires a record from the columner DB 200 by using the common component 104 of the cache device 102.

<ステップ502>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103の空きサイズをチェックする。
<Step 502>
The AP server 100 uses the cache device 102 to check the free size of the cache area 103.

<ステップ503>
APサーバ100は、キャッシュ装置102を用いて、取得したレコードをキャッシュ領域103に格納できるか否か、すなわち、この格納がチェックした空きサイズ(メモリ容量)で足りるか否かをチェックする。格納できる場合は(YES)、ステップ504に進む。格納できない場合は(NO)、ステップ505へ進む。
<Step 503>
The AP server 100 uses the cache device 102 to check whether or not the acquired record can be stored in the cache area 103, that is, whether or not the free size (memory capacity) checked is sufficient. If it can be stored (YES), the process proceeds to step 504. If it cannot be stored (NO), the process proceeds to step 505.

<ステップ504>
APサーバ100は、キャッシュ装置102を用いて、取得したレコードをキャッシュ領域103に格納する。図12は、図11に示すSQL文を実行して、カラムナーDB200から取得してキャッシュ領域103に格納するデータのデータ構造を示す図である。
本実施例では、“sunny”と“cloudy”の情報を持つデータを、図2に示すカラムナーDB200のテーブル情報から一括で取得し、図12に示すようにキャッシュ領域103に格納する。
<Step 504>
The AP server 100 stores the acquired record in the cache area 103 using the cache device 102. FIG. 12 is a diagram showing a data structure of data acquired from the columner DB 200 and stored in the cache area 103 by executing the SQL statement shown in FIG.
In the present embodiment, data having information of “sunny” and “cloudy” is collectively acquired from the table information of the columner DB 200 shown in FIG. 2, and stored in the cache area 103 as shown in FIG.

<ステップ505>
APサーバ100は、取得したレコードをキャッシュ領域103に格納できるように、図6に示す処理手順(フローチャート)を実行する。このステップ505に対応する、図6に示す処理手順(フローチャート)を終えると、ステップ504に進む。図6に示す処理手順(フローチャート)については後述する。
<Step 505>
The AP server 100 executes the processing procedure (flow chart) shown in FIG. 6 so that the acquired record can be stored in the cache area 103. When the processing procedure (flowchart) shown in FIG. 6 corresponding to step 505 is completed, the process proceeds to step 504. The processing procedure (flow chart) shown in FIG. 6 will be described later.

<ステップ506>
APサーバ100は、業務プログラム107に沿って業務処理を実行する。
<Step 506>
The AP server 100 executes business processing according to the business program 107.

<ステップ507>
APサーバ100は、業務プログラム107に沿って、取得対象のデータをキャッシュ装置102に依頼する。APサーバ100は、キャッシュ装置102を用い、共通部品104を使ってキャッシュ領域103にアクセスする。
<Step 507>
The AP server 100 requests the cache device 102 for data to be acquired in accordance with the business program 107. The AP server 100 uses the cache device 102 and accesses the cache area 103 using the common component 104.

<ステップ508>
APサーバ100は、キャッシュ装置102を用いて、取得対象のデータがキャッシュ領域103にあるか否かをチェックする。取得対象のデータが存在する場合(YES)、ステップ509に進む。取得対象のデータが存在しない場合(NO)、ステップ510に進む。
<Step 508>
The AP server 100 uses the cache device 102 to check whether the acquisition target data is in the cache area 103. If there is data to be acquired (YES), the process proceeds to step 509. If there is no data to be acquired (NO), the process proceeds to step 510.

<ステップ509>
APサーバ100は、共通部品104を使って、依頼元のプログラム、依頼を受けた年月日と時間および実行したSQL文を、実行履歴としてログ出力し保存する。図16は、ステップ509で処理したログ出力を示す図である。このログ出力の保存先としては、ストレージ106とするが、余裕があればキャッシュ領域としてもよい。
本実施例では、業務プログラムが、来場者情報テーブルに対して、2017年3月1日12時にアクセスしたSQL文および2017年4月1日12時にアクセスしたSQL文の実行履歴がログとして保存される。
<Step 509>
Using the common component 104, the AP server 100 logs and stores the request source program, the date and time when the request was received, and the executed SQL statement as an execution history. FIG. 16 is a diagram showing the log output processed in step 509. The storage destination of the log output is the storage 106, but it may be a cache area if there is room.
In this embodiment, the execution history of the SQL statement accessed at 12:00 on March 1, 2017 and the SQL statement accessed at 12:00 on April 1, 2017 is stored as a log in the visitor information table. The

<ステップ510>
APサーバ100は、取得対象のデータをキャッシュ装置102に格納できるように、図7に示す処理手順(フローチャート)を実行する。このステップ510に対応する、図7に示す処理手順(フローチャート)を終えると、ステップ509へ進む。
<Step 510>
The AP server 100 executes the processing procedure (flow chart) shown in FIG. 7 so that the acquisition target data can be stored in the cache device 102. When the processing procedure (flowchart) shown in FIG. 7 corresponding to step 510 is completed, the process proceeds to step 509.

<ステップ511>
取得したデータが業務プログラムに渡され、APサーバ100は、業務プログラムがデータを受け取ることにより、業務処理を完了させる。
<Step 511>
The acquired data is transferred to the business program, and the AP server 100 completes the business process when the business program receives the data.

<ステップ512>
APサーバ100は、ステップ509で出力した実行ログを分析し、実行したSQL文をマージし、マージしたSQL文を共通部品104に登録する。
図15は、マージしたSQL文を示す図である。本実施例では、解析プログラム108が、業務プログラム107と入力データとを解析することにより判明し作成した、“sunny”および“cloudy”の情報を持つデータを取得するSQL文と、後述するステップ601で新しく作成した“rainy”を取得するSQL文とをマージする。その結果、“sunny”、“cloudy”および“rainy”を取得するSQL文を作成して、共通部品104に登録する。
<Step 512>
The AP server 100 analyzes the execution log output in step 509, merges the executed SQL statements, and registers the merged SQL statement in the common component 104.
FIG. 15 shows a merged SQL statement. In the present embodiment, the analysis program 108 obtains data having information of “sunny” and “cloudy”, which is found and created by analyzing the business program 107 and the input data, and step 601 described later. The newly created SQL statement for “rainy” is merged. As a result, an SQL statement for acquiring “sunny”, “cloudy”, and “rainy” is created and registered in the common component 104.

図6は、図5のステップ503でキャッシュ領域の空きサイズをチェックした結果、メモリ容量が足りない(NO)場合の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。   FIG. 6 is a diagram showing a processing procedure (flow chart) when the memory capacity is insufficient (NO) as a result of checking the free size of the cache area in step 503 of FIG. The processing mode based on this flowchart is shown below.

<ステップ601>
APサーバ100は、キャッシュ装置102を用いて、カラムナーDB200から取得対象のデータを含めたある程度のデータを一括で取得できるように、代替のSQL文を作成し共通部品104に登録する。
図13は、キャッシュ装置102に目的のデータが存在しない場合に、その目的のデータをカラムナーDB200から取得するSQL文を示す図である。本実施例では、“rainy”の情報を持つデータがキャッシュ装置102にないため、“rainy”を取得できる代替のSQL文を作成して共通部品104に登録する。
<Step 601>
The AP server 100 creates an alternative SQL statement and registers it in the common component 104 so that a certain amount of data including the data to be acquired can be acquired from the columner DB 200 in a batch using the cache device 102.
FIG. 13 is a diagram illustrating an SQL statement for acquiring target data from the columner DB 200 when the target data does not exist in the cache device 102. In this embodiment, since there is no data having “rainy” information in the cache device 102, an alternative SQL statement that can acquire “rainy” is created and registered in the common component 104.

<ステップ602>
APサーバ100は、共通部品104を使い代替のSQL文を実行して、取得対象のデータをカラムナーDB200から取得する。
本実施例では、“rainy”を取得できる代替のSQL文(図13)を実行し、図14に示すように、“sunny”および“cloudy”の情報を持つキャッシュ装置102に、“rainy”の情報を追加する。
<Step 602>
The AP server 100 acquires the data to be acquired from the columner DB 200 by executing an alternative SQL statement using the common component 104.
In this embodiment, an alternative SQL statement (FIG. 13) that can acquire “rainy” is executed, and as shown in FIG. 14, the cache device 102 having the information of “sunny” and “cloudy” has “rainy” information. Add information.

<ステップ603>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103の空きサイズをチェックする。
<Step 603>
The AP server 100 uses the cache device 102 to check the free size of the cache area 103.

<ステップ604>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103に取得したレコードを格納できるか否か、すなわち、この格納がチェックした空きサイズで足りるか否かをチェックする。格納できる場合(YES)、図6に示す処理フローを終了し、図5のステップ504に戻る。格納できない場合(NO)、ステップ605へ進む。
<Step 604>
The AP server 100 uses the cache device 102 to check whether or not the acquired record can be stored in the cache area 103, that is, whether or not the free size checked is sufficient. If it can be stored (YES), the processing flow shown in FIG. If it cannot be stored (NO), the process proceeds to step 605.

<ステップ605>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103に格納しているデータの中で、このキャッシュ領域103から追い出せるデータが存在するか否かをチェックする。追い出せるデータが存在する場合(YES)、ステップ606へ進む。追い出せるデータが存在しない場合(NO)、ステップ607へ進む。
<Step 605>
The AP server 100 uses the cache device 102 to check whether there is data that can be evicted from the cache area 103 among the data stored in the cache area 103. If there is data to be evicted (YES), the process proceeds to step 606. If there is no data to be evicted (NO), the process proceeds to step 607.

<ステップ606>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103に格納しているデータの中から最も参照されていないデータを、ファイルとしてストレージ106に移動する。次いで、図5のステップ504に戻る。
<Step 606>
The AP server 100 uses the cache device 102 to move the least referenced data from the data stored in the cache area 103 to the storage 106 as a file. Next, the process returns to step 504 in FIG.

<ステップ607>
APサーバ100は、キャッシュ装置102を用いて、カラムナーDB200から取得対象のデータが含まれるように、先のステップ601で得た範囲よりさらに範囲を絞ったSQL文を作成し、共通部品104に登録して実行し、目的とするデータを取得する。次いで、図5のステップ504に戻る。
<Step 607>
The AP server 100 uses the cache device 102 to create an SQL statement with a narrower range than the range obtained in the previous step 601 so that the data to be acquired from the columner DB 200 is included, and register it in the common component 104. And get the target data. Next, the process returns to step 504 in FIG.

図7は、図5のステップ510でキャッシュ内に目的のデータがない場合の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。   FIG. 7 is a diagram showing a processing procedure (flow chart) when there is no target data in the cache in step 510 of FIG. The processing mode based on this flowchart is shown below.

<ステップ701>
APサーバ100は、キャッシュ装置102を用いて、取得対象のデータがAPサーバ100のストレージ106に存在するか否かをチェックする。取得対象のデータが存在する場合(YES)、ステップ702に進む。取得対象のデータが存在しない場合(NO)、ステップ704に進む。
<Step 701>
The AP server 100 uses the cache device 102 to check whether the acquisition target data exists in the storage 106 of the AP server 100. If there is data to be acquired (YES), the process proceeds to step 702. If there is no data to be acquired (NO), the process proceeds to step 704.

<ステップ702>
APサーバ100は、キャッシュ装置102を用いて、ファイルのデータをストレージ106からキャッシュ領域103に移動する。
<Step 702>
The AP server 100 uses the cache device 102 to move file data from the storage 106 to the cache area 103.

<ステップ703>
APサーバ100は、共通部品104を使って、取得対象のデータをキャッシュ領域103から取得する。次いで、図5のステップ509に戻る。
<Step 703>
The AP server 100 acquires data to be acquired from the cache area 103 using the common component 104. Next, the process returns to step 509 in FIG.

<ステップ704>
APサーバ100は、キャッシュ装置102を用いて、取得対象のレコードをキャッシュ領域103に格納できるように、先の図6に示すフローチャートを実行する。図6に示す処理フローを終えると、ステップ705に進む。
<Step 704>
The AP server 100 executes the flowchart shown in FIG. 6 so that the record to be acquired can be stored in the cache area 103 using the cache device 102. When the processing flow shown in FIG.

<ステップ705>
APサーバ100は、キャッシュ装置102を用いて、取得したレコードをキャッシュ領域103に格納し、格納後にステップ703に進む。
<Step 705>
The AP server 100 uses the cache device 102 to store the acquired record in the cache area 103 and proceeds to step 703 after the storage.

このように、APサーバ100が、業務プログラム107と入力データを解析し、業務プログラム107が業務で利用するデータを特定し一括で取得するSQL文を作成し、共通部品104としてキャッシュ装置102に格納する。そして、共通部品化したSQL文を予め実行してキャッシュ領域103に取得対象データを格納することにより、カラムナーDB200へのアクセス回数を減らし処理時間を短縮することができる。   In this way, the AP server 100 analyzes the business program 107 and the input data, creates a SQL statement that identifies and collects data used by the business program 107 in the business, and stores it as a common component 104 in the cache device 102. To do. Then, by executing the SQL statement converted to a common component in advance and storing the acquisition target data in the cache area 103, the number of accesses to the columner DB 200 can be reduced and the processing time can be shortened.

なお、図2に示すカラムナーDB200のテーブル情報の構成図、図8に示すSQL文のイメージ、図9と図10に示す業務プログラムと入力データのイメージは、一例であってこれらに限定するものではない。
また、本実施例では、DBとしてはカラムナーDBを対象にしているが、構造型DBやリレーショナルDBを対象としてもよい。
It should be noted that the structure of the table information of the columner DB 200 shown in FIG. 2, the image of the SQL sentence shown in FIG. 8, and the image of the business program and input data shown in FIGS. 9 and 10 are examples and are not limited to these. Absent.
In this embodiment, the columner DB is targeted as the DB, but a structural DB or a relational DB may be targeted.

そしてまた、APサーバ100とカラムナーDB200とは、本実施例では別の装置として説明をしたが、例えば、1つの物理計算機上で動く仮想環境において、それぞれ別の仮想サーバとして稼働するものであっても、1つの物理サーバまたは仮想サーバでそれぞれの機能を備えるものであってもよい。
さらに、本実施例では、入力データの解析を行ったが、業務プログラムのみを解析対象としてもよい。
In addition, the AP server 100 and the columner DB 200 have been described as separate devices in this embodiment. For example, in a virtual environment that runs on one physical computer, the AP server 100 and the columner DB 200 operate as separate virtual servers. Alternatively, one physical server or virtual server may be provided with each function.
Furthermore, in this embodiment, input data is analyzed, but only business programs may be analyzed.

100…APサーバ、101…メモリ、102…キャッシュ装置、
103…キャッシュ領域、104…共通部品、105、201…CPU、
106…ストレージ、107…業務プログラム、108…解析プログラム、
109…通信装置、200…カラムナーDB、202…ストレージ、203…通信装置、
204…メモリ
100 ... AP server 101 ... Memory 102 ... Cache device
103 ... Cache area, 104 ... Common parts, 105, 201 ... CPU,
106 ... Storage, 107 ... Business program, 108 ... Analysis program,
109: Communication device, 200: Columnar DB, 202 ... Storage, 203 ... Communication device,
204: Memory

Claims (15)

データベースとデータの送受信を行う通信部と、
業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、
データを一時的に記憶する一時記憶領域を有する主記憶部と、
前記業務プログラムまたは前記解析プログラムを実行する制御部と
を備え、
前記制御部は、前記解析プログラムを実行して前記業務プログラムに含まれる所定の条件で実行される構文を抽出し、抽出した1以上の前記構文を前記一時記憶領域に記憶すると共に、記憶した当該1以上の構文を実行して得られる複数のデータを前記データベースより前記通信部を介して受信し前記一時記憶領域に記憶する
ことを特徴とするアプリケーションサーバ。
A communication unit for sending and receiving data to and from the database;
An auxiliary storage unit for storing a business program and an analysis program for analyzing the business program;
A main storage unit having a temporary storage area for temporarily storing data;
A control unit that executes the business program or the analysis program,
The control unit executes the analysis program to extract syntax executed under a predetermined condition included in the business program, stores the extracted one or more syntaxes in the temporary storage area, and stores the stored An application server, wherein a plurality of data obtained by executing one or more syntaxes are received from the database via the communication unit and stored in the temporary storage area.
請求項1に記載のアプリケーションサーバであって、
前記一時記憶領域に、データを格納するための処理部品である共通部品を登録する領域を設け、
前記制御部は、前記解析プログラムを用いて、前記業務プログラムおよび前記業務プログラムの実行時に必要になる入力データが存在した場合には当該入力データも含めて解析し、前記業務プログラムが使用するデータおよび使用すると想定されるデータを一括して前記データベースから取得する少なくとも1つの構文を作成し、当該構文を前記共通部品に登録し、前記業務プログラムが前記データを取得する場合には前記共通部品を用いて当該データを取得するように前記業務プログラムを修正する
ことを特徴とするアプリケーションサーバ。
The application server according to claim 1,
In the temporary storage area, an area for registering a common part which is a processing part for storing data is provided,
The control unit uses the analysis program to analyze the business program and input data required when the business program is executed, including the input data, and the data used by the business program and Create at least one syntax that collects data expected to be used in batch from the database, register the syntax in the common component, and use the common component when the business program acquires the data An application server that modifies the business program so as to acquire the data.
請求項2に記載のアプリケーションサーバであって、
前記制御部は、前記業務プログラムを実行時に前記共通部品を用いて取得したデータが前記一時記憶領域に格納できるか否か当該一時記憶領域の空きサイズをチェックし、当該空きサイズが不足する場合には前記構文に替わる代替の構文を作成し前記共通部品に登録して実行する
ことを特徴とするアプリケーションサーバ。
The application server according to claim 2,
The control unit checks whether or not the data acquired using the common component when the business program is executed can be stored in the temporary storage area, and if the free size is insufficient. Is an application server that creates an alternative syntax in place of the syntax, registers it in the common part, and executes it.
請求項3に記載のアプリケーションサーバであって、
前記制御部は、前記一時記憶領域の空きサイズでは前記データベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、追い出せるデータが有れば当該データを前記補助記憶部へ移動させて前記取得したデータを前記一時記憶領域に格納する
ことを特徴とするアプリケーションサーバ。
The application server according to claim 3,
When the data acquired from the database cannot be stored with the free size of the temporary storage area, the control unit checks whether there is data that can be evicted from the temporary storage area. An application server that is moved to a storage unit and stores the acquired data in the temporary storage area.
請求項4に記載のアプリケーションサーバであって、
前記一時記憶領域から追い出せるデータとは、当該一時記憶領域の中で最も参照が古いデータである
ことを特徴とするアプリケーションサーバ。
The application server according to claim 4,
The application server characterized in that the data that can be evicted from the temporary storage area is data that has the oldest reference in the temporary storage area.
請求項4に記載のアプリケーションサーバであって、
前記制御部は、前記一時記憶領域から追い出せるデータが無い場合には当該一時記憶領域に残る空きサイズで格納できるデータ範囲を一括して取得できる構文を作成し前記共通部品に登録して実行する
ことを特徴とするアプリケーションサーバ。
The application server according to claim 4,
When there is no data that can be evicted from the temporary storage area, the control unit creates a syntax that can collectively acquire a data range that can be stored with the free size remaining in the temporary storage area, and registers and executes the syntax in the common part An application server characterized by that.
請求項2に記載のアプリケーションサーバであって、
前記業務プログラムを修正することにより、前記業務プログラムの中で前記データベースのデータを取得するための構文は前記共通部品に登録した構文を用いるように修正され、当該データは前記一時記憶領域から前記業務プログラムに渡される
ことを特徴とするアプリケーションサーバ。
The application server according to claim 2,
By modifying the business program, the syntax for obtaining the database data in the business program is modified to use the syntax registered in the common part, and the data is stored in the business program from the temporary storage area. An application server that is passed to a program.
請求項3または6に記載のアプリケーションサーバであって、
前記制御部は、前記作成した構文を実行した履歴を実行ログとして保存し、前記業務プログラムの実行終了後に当該実行ログを分析して、データ取得により適した構文が判明すれば当該構文を前記共通部品に登録する
ことを特徴とするアプリケーションサーバ。
The application server according to claim 3 or 6,
The control unit stores a history of executing the created syntax as an execution log, analyzes the execution log after the execution of the business program, and if the syntax suitable for data acquisition is found, the syntax is used as the common log. An application server that is registered in a component.
サーバによる業務アプリケーションの実行方法であって、
解析プログラムを用いて業務プログラムを解析して当該業務プログラムから所定の条件で繰り返し実行される構文を抽出する第1のステップと、
抽出した1以上の前記構文を前記サーバの主記憶部が有する一時記憶領域に記憶する第2のステップと、
記憶した前記1以上の構文を実行して得られる複数のデータをデータベースから取得して前記一時記憶領域に記憶する第3のステップと、
前記業務プログラムの実行時に使用するデータを前記一時記憶領域から取得する第4のステップと
を有する業務アプリケーションの実行方法。
A business application execution method by a server,
A first step of analyzing a business program using an analysis program and extracting a syntax that is repeatedly executed from the business program under a predetermined condition;
A second step of storing the extracted one or more syntaxes in a temporary storage area of a main storage unit of the server;
A third step of acquiring a plurality of data obtained by executing the stored one or more syntaxes from a database and storing them in the temporary storage area;
A business application execution method comprising: a fourth step of acquiring data used when executing the business program from the temporary storage area.
請求項9に記載の業務アプリケーションの実行方法であって、
前記第1のステップは、前記解析プログラムを用いて、前記業務プログラムおよび前記業務プログラムの実行時に必要になる入力データが存在する場合には当該入力データも含めて解析し、前記業務プログラムが使用するデータおよび使用すると想定されるデータを一括して前記データベースから取得する少なくとも1つの構文を作成することを含み、
前記第2のステップは、前記構文を前記一時記憶領域にデータを格納するための処理部品として設けた共通部品に登録することを含み、
前記第4のステップは、前記共通部品を用いて前記データを取得するように前記業務プログラムを修正することを含む
業務アプリケーションの実行方法。
The business application execution method according to claim 9,
The first step uses the analysis program to analyze the business program and input data required when the business program is executed, including the input data, and use the business program Creating at least one syntax for retrieving data and data expected to be used from the database in bulk,
The second step includes registering the syntax in a common component provided as a processing component for storing data in the temporary storage area;
The fourth step is a business application execution method including modifying the business program to acquire the data using the common component.
請求項10に記載の業務アプリケーションの実行方法であって、
前記業務プログラムの実行時に前記共通部品を用いて取得したデータが前記一時記憶領域に格納できるか否か当該一時記憶領域の空きサイズをチェックし、当該空きサイズが不足する場合には前記構文に替わる代替の構文を生成し前記共通部品に登録して実行する第5のステップ
を有する業務アプリケーションの実行方法。
The business application execution method according to claim 10,
Whether or not the data acquired using the common component during execution of the business program can be stored in the temporary storage area is checked for the free size of the temporary storage area. If the free size is insufficient, the syntax is changed. A business application execution method comprising a fifth step of generating an alternative syntax, registering it in the common part and executing it.
請求項11に記載の業務アプリケーションの実行方法であって、
前記一時記憶領域の空きサイズでは前記データベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、有る場合には当該一時記憶領域の中で最も参照が古いデータを前記サーバの他の記憶部へ移動させて前記取得したデータを前記一時記憶領域に格納する第6のステップ
を有する業務アプリケーションの実行方法。
The business application execution method according to claim 11, comprising:
If the data acquired from the database cannot be stored with the free size of the temporary storage area, the presence or absence of data that can be evicted from the temporary storage area is checked. If there is, the oldest reference data in the temporary storage area is determined. A business application execution method comprising a sixth step of moving the server to another storage unit and storing the acquired data in the temporary storage area.
請求項12に記載の業務アプリケーションの実行方法であって、
前記一時記憶領域から追い出せるデータが無い場合には当該一時記憶領域に残る空きサイズで格納できるデータ範囲を一括して取得できる構文を作成し前記共通部品に登録して実行する第7のステップ
を有する業務アプリケーションの実行方法。
A business application execution method according to claim 12,
When there is no data that can be evicted from the temporary storage area, a seventh step is executed to create a syntax that can collectively acquire a data range that can be stored with the free size remaining in the temporary storage area, and register and execute the syntax in the common part. How to execute business applications
請求項10に記載の業務アプリケーションの実行方法であって、
前記第4のステップは、前記業務プログラムの中で前記データベースのデータを取得するための構文を前記共通部品に登録した構文を用いるように前記業務プログラムを修正して、当該データを前記一時記憶領域から前記業務プログラムに渡す処理を行う
業務アプリケーションの実行方法。
The business application execution method according to claim 10,
In the fourth step, the business program is modified so that the syntax for acquiring the data in the database in the business program is registered in the common part, and the data is stored in the temporary storage area. A method for executing a business application for performing processing to be transferred to the business program.
請求項11または13に記載の業務アプリケーションの実行方法であって、
前記作成した構文を実行した履歴を実行ログとして保存し、前記業務プログラムの実行終了後に当該実行ログを分析して、データ取得により適した構文が判明すれば当該構文を前記共通部品に登録する第8のステップ
を有する業務アプリケーションの実行方法。
A business application execution method according to claim 11 or 13,
A history of executing the created syntax is stored as an execution log, and after the execution of the business program is completed, the execution log is analyzed, and if a syntax suitable for data acquisition is found, the syntax is registered in the common part. A business application execution method having eight steps.
JP2018098473A 2018-05-23 2018-05-23 Application server and business application execution method by server Pending JP2019204250A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018098473A JP2019204250A (en) 2018-05-23 2018-05-23 Application server and business application execution method by server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018098473A JP2019204250A (en) 2018-05-23 2018-05-23 Application server and business application execution method by server

Publications (1)

Publication Number Publication Date
JP2019204250A true JP2019204250A (en) 2019-11-28

Family

ID=68727045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018098473A Pending JP2019204250A (en) 2018-05-23 2018-05-23 Application server and business application execution method by server

Country Status (1)

Country Link
JP (1) JP2019204250A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163596A (en) * 2004-12-03 2006-06-22 Internatl Business Mach Corp <Ibm> Information processing system, control method and program
WO2014010038A1 (en) * 2012-07-11 2014-01-16 株式会社日立製作所 Information processing system
JP2017120496A (en) * 2015-12-28 2017-07-06 キヤノンマーケティングジャパン株式会社 Program generation device, information processing apparatus, control method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163596A (en) * 2004-12-03 2006-06-22 Internatl Business Mach Corp <Ibm> Information processing system, control method and program
WO2014010038A1 (en) * 2012-07-11 2014-01-16 株式会社日立製作所 Information processing system
JP2017120496A (en) * 2015-12-28 2017-07-06 キヤノンマーケティングジャパン株式会社 Program generation device, information processing apparatus, control method, and program

Similar Documents

Publication Publication Date Title
CN106462582B (en) Batch optimized rendering and fetching architecture
US20160306799A1 (en) Atomic incremental load for map-reduce systems on append-only file systems
EP3086246A2 (en) System and method for locating pages on the world wide web and for locating documents from a network of computers
KR101768181B1 (en) Optimized browser rendering process
US11487729B2 (en) Data management device, data management method, and non-transitory computer readable storage medium
US11308053B2 (en) Buffered data-loading in column-partitioned database tables
US10776378B2 (en) System and method for use of immutable accessors with dynamic byte arrays
CN102033948A (en) Method and device for updating data
US10678784B2 (en) Dynamic column synopsis for analytical databases
US20150347470A1 (en) Run-time decision of bulk insert for massive data loading
US20150199408A1 (en) Systems and methods for a high speed query infrastructure
US10990604B2 (en) Non-transitory computer-readable storage medium, record data processing method, and record data processing apparatus
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
JP2019204250A (en) Application server and business application execution method by server
US11157506B2 (en) Multiform persistence abstraction
WO2015105043A1 (en) Computing system, database management device and computing method
CN114637499A (en) Visualization component processing method, device, equipment and medium
Scherger Design of an in-memory database engine using Intel Xeon Phi coprocessors
CN111078705A (en) Spark platform based data index establishing method and data query method
US10365850B2 (en) Method of storing data, information processing apparatus and non-transitory computer-readable storage medium
US20160232187A1 (en) Dump analysis method, apparatus and non-transitory computer readable storage medium
US20170005895A1 (en) Information processing apparatus, failure management method, and computer-readable recording medium
US11494382B2 (en) Optimization of first set of ordered items
CN113553320B (en) Data quality monitoring method and device
US20220230093A1 (en) Handling system-characteristics drift in machine learning applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221208