Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7675792B2 - How cache is generated for a database - Google Patents
[go: Go Back, main page]

JP7675792B2 - How cache is generated for a database - Google Patents

How cache is generated for a database Download PDF

Info

Publication number
JP7675792B2
JP7675792B2 JP2023215905A JP2023215905A JP7675792B2 JP 7675792 B2 JP7675792 B2 JP 7675792B2 JP 2023215905 A JP2023215905 A JP 2023215905A JP 2023215905 A JP2023215905 A JP 2023215905A JP 7675792 B2 JP7675792 B2 JP 7675792B2
Authority
JP
Japan
Prior art keywords
syntax
cache
data
generating
lov
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
JP2023215905A
Other languages
Japanese (ja)
Other versions
JP2024096026A (en
Inventor
ギュン、リ ヨン
ミー、パク ナ
キュ、キム ミン
ジン、リ ドン
Original Assignee
ビーアイ マトリックス カンパニー、リミテッド
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 ビーアイ マトリックス カンパニー、リミテッド filed Critical ビーアイ マトリックス カンパニー、リミテッド
Publication of JP2024096026A publication Critical patent/JP2024096026A/en
Application granted granted Critical
Publication of JP7675792B2 publication Critical patent/JP7675792B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、情報処理分野に関し、データベースに対するユーザ入力構文に対して、キャッシュを生成するための方法または前記キャッシュを活用するための方法に関する。具体的には、データベースに対するユーザ入力構文に対して、構文要素を分析し、LOVキャッシュを生成するための方法または前記キャッシュを活用するための方法に関する。 The present disclosure relates to the field of information processing, and to a method for generating a cache for a user-input syntax for a database or a method for utilizing the cache. Specifically, the present disclosure relates to a method for analyzing syntax elements for a user-input syntax for a database and generating an LOV cache or a method for utilizing the cache.

コンピュータ技術の発展に伴い、企業および官公庁等で経営および管理に関する業務のために様々なコンピュータプログラムを使用している。このようなコンピュータプログラムは、企業の会計、人事、財務、営業、貿易、購買、資材、生産および在庫等の経営および管理に必要な数多くのデータを保存し、処理することができる。このようなコンピュータプログラムを使用するので、ユーザ(企業および官公庁等の業務の実務担当者、役員および経営者)は、より便利に手軽に企業および官公庁等で使用されるデータを保存し、管理することができる。企業および官公庁等で使用するコンピュータプログラムは、様々な形態の文書を生成、編集および管理できる機能をサポートしている。なお、データを処理し、出力するにあたって使用されるクエリー構文(query statement)実行過程で、処理速度が遅くなる場合が発生することがある。 As computer technology advances, companies and government offices use a variety of computer programs for business and administrative tasks. These computer programs can store and process a large amount of data necessary for business and administrative tasks such as accounting, human resources, finance, sales, trade, purchasing, materials, production, and inventory. By using these computer programs, users (practitioners, executives, and managers of companies and government offices) can more conveniently and easily store and manage data used by companies and government offices. Computer programs used by companies and government offices support functions for generating, editing, and managing documents in various formats. Note that the processing speed may slow down during the execution of a query statement used to process and output data.

韓国登録特許第10-0670798号公報(2007.01.11)Korean Patent Registration No. 10-0670798 (2007.01.11)

本開示は、前述した背景技術に対応して案出されたものであって、データベースに対するユーザ入力構文に対して、キャッシュを生成し、活用する方法を提供しようとする。 The present disclosure has been devised in response to the background technology described above, and aims to provide a method for generating and utilizing a cache for user input syntax to a database.

本開示の技術的課題は、以上で言及した技術的課題に制限されず、言及されていない他の技術的課題は、下記の記載から当業者に明確に理解され得る。 The technical problems of the present disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

前述した課題を解決するためのいくつかの実施形態によるコンピューティング装置によって行われる、データベースに対するLOV(List of View)キャッシュ生成方法を提供する。前記方法は、データベースに対して入力された第1構文を獲得する段階と、前記第1構文から既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出する段階と、前記キャッシュ生成基盤構文に対応する前記第1構文に対するLOVキャッシュを生成する段階と、を含んでもよい。 To solve the above-mentioned problems, a method for generating a list of views (LOV) cache for a database, which is performed by a computing device according to some embodiments, is provided. The method may include the steps of: acquiring a first syntax input to the database; calculating a cache generation base syntax by removing a predefined filtering syntax element from the first syntax; and generating an LOV cache for the first syntax corresponding to the cache generation base syntax.

一実施形態において、前記第1構文に対するLOVキャッシュに基づいて、前記第1構文に対する応答を生成する段階をさらに含んでもよい。 In one embodiment, the method may further include generating a response to the first syntax based on an LOV cache for the first syntax.

一実施形態において、前記第1構文に対するLOVキャッシュを生成する段階は、前記第1構文に対するLOVキャッシュを生成する間に、前記第1構文に対する応答の遅延時間またはレコード数が既定の臨界値を超える場合、前記遅延時間またはレコード数が前記臨界値に到達するまで生成された前記第1構文に対する応答の一部を発送する段階と、前記第1構文に対するLOVキャッシュを生成する間に、前記第1構文に基づいて生成される応答の遅延時間またはレコード数が前記臨界値以下の場合、前記第1構文に対する応答の全体を発送する段階と、をさらに含んでもよい。 In one embodiment, the step of generating the LOV cache for the first syntax may further include: sending a portion of the response to the first syntax generated until the delay time or number of records for the first syntax reaches a predetermined threshold value when the LOV cache for the first syntax is generated, and sending the entire response to the first syntax when the delay time or number of records for the response generated based on the first syntax is equal to or less than the threshold value when the LOV cache for the first syntax is generated.

一実施形態において、前記第1構文に対する応答の遅延時間またはレコード数が既定の臨界値を超えることによって、前記第1構文に対する応答の一部を発送する場合、前記第1構文に対するLOVキャッシュを生成する作業をバックグラウンドスレッドで行うこともできる。 In one embodiment, when a portion of the response to the first syntax is sent because the response delay time or number of records for the first syntax exceeds a predetermined critical value, the task of generating an LOV cache for the first syntax may be performed in a background thread.

一実施形態において、前記第1構文に対するLOVキャッシュを生成する段階は、前記キャッシュ生成基盤構文を実行することによって第1キャッシュデータを生成する段階と、前記第1キャッシュデータから整列すべきフィールドを選択する段階と、前記第1キャッシュデータを正しい順序で整列することによって第2キャッシュデータを生成する段階と、を含んでもよい。 In one embodiment, generating an LOV cache for the first syntax may include generating first cache data by executing the cache generation base syntax, selecting fields to be sorted from the first cache data, and generating second cache data by sorting the first cache data in the correct order.

一実施形態において、前記第1キャッシュデータを整列することによって第2キャッシュデータを生成する段階は、前記整列すべきフィールドに含まれたデータの種類の個数が既定の個数未満の場合に行われ得る。 In one embodiment, the step of generating second cache data by aligning the first cache data may be performed when the number of types of data included in the field to be aligned is less than a predetermined number.

一実施形態において、前記フィルタリング構文要素は、レコード重複除去、レコードグループ化、レコード整列またはテーブル結合を行うものであってもよい。 In one embodiment, the filtering syntax element may perform record deduplication, record grouping, record sorting, or table joining.

一実施形態において、前記第1構文を獲得した後、フィルタリング構文要素を含む第2構文を得る段階と、前記第1構文に対するLOVキャッシュが前記第2構文が抽出するデータを含む場合、前記第1構文に対するLOVキャッシュに基づいて、前記第2構文に対する応答を生成する段階と、をさらに含んでもよい。 In one embodiment, the method may further include, after obtaining the first syntax, obtaining a second syntax including a filtering syntax element, and if an LOV cache for the first syntax includes data extracted by the second syntax, generating a response to the second syntax based on the LOV cache for the first syntax.

また、前述したような課題を解決するためのコンピュータ可読保存媒体に保存されたコンピュータプログラムが開示される。 Also disclosed is a computer program stored on a computer-readable storage medium for solving the problems described above.

前記コンピュータプログラムは、1つ以上のプロセッサによって実行される場合、前記1つ以上のプロセッサが、データベースに対するLOV(List of View)キャッシュを生成するための動作を行うようにし、前記動作は、データベースに対して入力された第1構文を獲得する動作と、前記第1構文から既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出する動作と、前記キャッシュ生成基盤構文に対応する前記第1構文に対するLOVキャッシュを生成する動作と、を含んでもよい。 When the computer program is executed by one or more processors, the one or more processors perform operations for generating a list of view (LOV) cache for a database, and the operations may include an operation of acquiring a first syntax input to the database, an operation of calculating a cache generation base syntax by removing a predefined filtering syntax element from the first syntax, and an operation of generating an LOV cache for the first syntax corresponding to the cache generation base syntax.

また、前述したような課題を解決するためのコンピューティング装置が開示される。 A computing device for solving the problems described above is also disclosed.

前記コンピューティング装置は、少なくとも1つのプロセッサと、メモリと、を含み、前記少なくとも1つのプロセッサは、データベースに対するLOV(List of View)キャッシュを生成するために、データベースに対し入力された第1構文を獲得し;前記第1構文から既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出し;および前記キャッシュ生成基盤構文に対応する前記第1構文に対するLOVキャッシュを生成するように構成され得る。 The computing device may include at least one processor and a memory, and the at least one processor may be configured to obtain a first syntax input to a database to generate a list of view (LOV) cache for the database; calculate a cache generation base syntax by removing predefined filtering syntax elements from the first syntax; and generate an LOV cache for the first syntax corresponding to the cache generation base syntax.

本開示は、前述した背景技術に対応して案出されたものであって、ユーザ入力構文に基づいて、データベースに対するキャッシュを生成することができ、前記キャッシュを通じて前記ユーザ入力構文に対する応答速度を高めることができる。 The present disclosure has been devised in response to the background technology described above, and is capable of generating a cache for a database based on a user input syntax, and increasing the response speed to the user input syntax through the cache.

本開示の適用可能性のさらなる範囲は、以下の詳細な説明から明白になる。しかしながら、本発明の思想および範囲内で様々な変更および修正は、当業者に明確に理解され得るので、詳細な説明および本発明の好適な実施形態のような特定の実施形態は、ただ例示として与えられたものと理解すべきである。 Further scope of applicability of the present disclosure will become apparent from the following detailed description. However, it should be understood that the detailed description and specific embodiments, such as the preferred embodiments of the present invention, are given by way of example only, since various changes and modifications within the spirit and scope of the present invention will be apparent to those skilled in the art.

様々な様相が図面を参照して記載され、ここで、類似の参照番号は、総括的に類似の構成要素を指すのに用いられる。以下の実施形態において、説明目的のために、多数の特定細部事項が1つ以上の様相の総体的理解を提供するために提示される。しかしながら、そのような様相がこのような特定の細部事項なしで実施され得ることは明白だろう。他の例示において、公知の構造および装置が1つ以上の様相の記載を容易にするためにブロック図の形態で示される。 Various aspects are described with reference to the drawings, where like reference numerals are used to generally refer to like components. In the following embodiments, for purposes of explanation, numerous specific details are presented to provide a general understanding of one or more aspects. It will be apparent, however, that such aspects may be practiced without such specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing one or more aspects.

図1は、本開示の一実施形態によるコンピューティング装置を説明するためのブロック構成図である。FIG. 1 is a block diagram illustrating a computing device according to an embodiment of the present disclosure. 図2は、本開示の一実施形態によるデータベースに対するキャッシュ生成方法を説明するためのフローチャートである。FIG. 2 is a flow chart illustrating a method for generating a cache for a database according to one embodiment of the present disclosure. 図3は、本開示の一実施形態によるデータベースに対するキャッシュ生成方法を説明するための概念図である。FIG. 3 is a conceptual diagram for explaining a cache generation method for a database according to an embodiment of the present disclosure. 図4は、本開示の一実施形態によるデータベースに対するキャッシュ生成方法を説明するための概念図である。FIG. 4 is a conceptual diagram for explaining a cache generation method for a database according to an embodiment of the present disclosure. 図5は、本開示の一実施形態によるデータベースに対するキャッシュ活用方法を説明するためのフローチャートである。FIG. 5 is a flowchart illustrating a method for utilizing a cache for a database according to an embodiment of the present disclosure. 図6は、本開示の一実施形態によるデータベースに対するキャッシュ活用方法を説明するための概念図である。FIG. 6 is a conceptual diagram for explaining a cache utilization method for a database according to an embodiment of the present disclosure. 図7は、本開示の一実施形態によるデータベースに対する非同期応答方法を説明するための概念図である。FIG. 7 is a conceptual diagram for explaining an asynchronous response method for a database according to an embodiment of the present disclosure. 図8は、本開示内容の実施形態が具現され得る例示的なコンピューティング環境に対する一般的な概略図である。FIG. 8 is a general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure may be implemented.

様々な実施形態が以下に図面を参照しながら説明される。本明細書において様々な説明が本開示に対する理解を容易にするために示される。しかし、これらの実施形態がこれらの具体的な説明がなくても間違いなく実施されることができる。 Various embodiments are described below with reference to the drawings. Various descriptions are provided herein to facilitate understanding of the present disclosure. However, these embodiments can certainly be practiced without these specific descriptions.

本明細書において、「コンポーネント」、「モジュール」、「システム」等の用語は、コンピュータ関連エンティティ、ハードウェア、ファームウェア、ソフトウェア、ソフトウェアとハードウェアとの組み合わせ、またはソフトウェアの実行を指す。例えば、コンポーネントは、プロセッサー上で実行される処理手順(procedure)、プロセッサー、オブジェクト、実行スレッド、プログラム、及び/またはコンピュータであってもよいが、これらに限定されるものではない。例えば、コンピューティング装置で実行されるアプリケーションとコンピューティング装置は、両方ともコンポーネントであってもよい。1つ以上のコンポーネントは、プロセッサー及び/または実行スレッドの中に常駐することができる。1つのコンポーネントは、1つのコンピュータの中でローカル化されることができる。1つのコンポーネントは、2つ以上のコンピュータに配分されることもできる。また、このようなコンポーネントは、その内部に保存されている様々なデータ構造を有する、様々なコンピュータ可読媒体から実行することができる。コンポーネントは、例えば1つ以上のデータパケットを有する信号(例えば、ローカルシステム、分散システムにおいて他のコンポーネントと相互作用する1つのコンポーネントからのデータ及び/または信号を通じて、他のシステムと、インターネットのようなネットワークを介して伝送されるデータ)によってローカル及び/または遠隔処理等を通じて通信することができる。 As used herein, terms such as "component," "module," and "system" refer to computer-related entities, hardware, firmware, software, a combination of software and hardware, or software execution. For example, a component may be, but is not limited to, a procedure running on a processor, a processor, an object, a thread of execution, a program, and/or a computer. For example, an application running on a computing device and a computing device may both be components. One or more components may reside within a processor and/or thread of execution. A component may be localized within a computer. A component may be distributed across two or more computers. Such components may also execute from various computer-readable media having various data structures stored therein. Components may communicate through local and/or remote processing, etc., such as by signals (e.g., data from one component interacting with other components in a local system, distributed system, and/or data transmitted over a network such as the Internet to other systems) having one or more data packets.

以下の説明において使用される構成要素の接尾辞「モジュール」および「部」は、明細書の作成の容易さのみが考慮されて付与されたり、または混用されるものであり、それ自体で互いに区別される意味または役割を有するものではない。 The suffixes "module" and "part" used in the following description are given or mixed for the sole consideration of ease of drafting the specification, and do not have any distinct meanings or roles in themselves.

また、本明細書において使用される「情報」および「データ」という用語は、しばしば互いに交換可能にするために使用することができる。 Also, as used herein, the terms "information" and "data" can often be used interchangeably.

任意の構成要素が他の構成要素に「連結されている」または「接続されている」と言及されている場合、該他の構成要素に直接連結または接続されていてもよいが、中間に他の構成要素が存在してもよいと理解すべきである。一方で、任意の構成要素が他の構成要素に「直接連結されている」または「直接接続されている」と言及されている場合、中間に他の構成要素が存在しないと理解すべきである。 When any component is referred to as being "coupled" or "connected" to another component, it should be understood that it may be directly coupled or connected to the other component, but there may be other components in between. On the other hand, when any component is referred to as being "directly coupled" or "directly connected" to another component, it should be understood that there are no other components in between.

また、用語「または」は、排他的な「または」ではなく、内包的な「または」を意味する意図で使われる。つまり、特に特定されておらず、文脈上明確ではない場合、「XはAまたはBを利用する」は、自然な内包的置換のうち1つを意味するものとする。つまり、XがAを利用したり、XがBを利用したり、またはXがA及びBの両方を利用する場合、「XはAまたはBを利用する」は、これらのいずれにも当てはまるとすることができる。また、本明細書における「及び/または」という用語は、取り挙げられた関連アイテムのうち、1つ以上のアイテムの可能なすべての組み合わせを指し、含むものと理解されるべきである。 The term "or" is also intended to mean an inclusive "or" rather than an exclusive "or." That is, unless otherwise specified or clear from the context, "X utilizes A or B" is intended to mean one of the natural inclusive permutations. That is, if X utilizes A, or X utilizes B, or X utilizes both A and B, then "X utilizes A or B" can apply to any of these. Additionally, the term "and/or" as used herein should be understood to refer to and include all possible combinations of one or more of the associated listed items.

また、述語としての「含む」および/または修飾語としての「含む」という用語は、当該特徴および/または構成要素が存在することを意味するものとと理解されるべきである。ただし、述語としての「含む」および/または修飾語としての「含む」という用語は、1つ以上の他の特徴、構成要素、および/またはそれらのグループの存在または追加を排除しないものと理解されるべきである。また、別途に特定されていない場合、または単数の形を示すことが文脈上明確でない場合、本明細書および特許請求の範囲において単数は、一般的に「1つまたはそれ以上」を意味するものと解釈されるべきである。 The predicate "comprises" and/or modifier "comprises" should be understood to mean the presence of the feature and/or component in question. However, the predicate "comprises" and/or modifier "comprises" should be understood not to exclude the presence or addition of one or more other features, components, and/or groups thereof. In addition, unless otherwise specified or unless the context is clear that a singular form is indicated, the singular in the present specification and claims should generally be interpreted to mean "one or more."

以下、参照符号に関係なく、同一又は同様の構成要素には同一の符号を付し、繰り返しの説明は省略する。また、本明細書に開示された実施形態を説明する際に、関連する公知技術の具体的な説明が本明細書に開示された実施形態の要旨を不明瞭にすると判断される場合、その詳細な説明を省略する。また、添付の図面は、本明細書に開示された実施形態を容易に理解することを可能にするためのものであり、添付の図面によって本明細書に開示される技術的思想は限定されない。 Hereinafter, the same or similar components are denoted by the same reference numerals, and repeated explanations are omitted. In addition, when explaining the embodiments disclosed in this specification, if a specific explanation of related publicly known technology is judged to make the gist of the embodiments disclosed in this specification unclear, the detailed explanation will be omitted. In addition, the attached drawings are intended to make it easier to understand the embodiments disclosed in this specification, and the technical ideas disclosed in this specification are not limited by the attached drawings.

そして、「A又はBのうち少なくとも1つ」という用語については、「Aだけを含む場合」、「Bだけを含む場合」、「AとBの組み合わせの場合」を意味するものと解釈されたい。 The term "at least one of A or B" should be interpreted as meaning "when only A is included," "when only B is included," or "when a combination of A and B is included."

当業者は、さらに、ここに開示される実施形態に係るものとして説明された様々な例示的論理的ブロック、構成、モジュール、回路、手段、ロジック及びアルゴリズム段階が、電子ハードウェア、コンピュータソフトウェア、またはその両方の組み合わせによって実現されることができることを認識すべきである。ハードウェアとソフトウェアとの相互交換性を明確に例示するために、様々な例示的コンポーネント、ブロック、構成、手段、ロジック、モジュール、回路及び段階が、それらの機能性の側面で一般的に上述された。そのような機能性がハードウェアとして実装されるか或いはソフトウェアとして実装されるかは、全般的なシステムに係る特定のアプリケーション(application)及び設計制限によって決まる。熟練した技術者は、個々の特定アプリケーションのために様々な方法で説明された機能性を実現できる。ただし、そのような実現に係る決定が本開示内容の領域を逸脱するものと解釈されてはならない。 Those skilled in the art should further appreciate that the various exemplary logical blocks, configurations, modules, circuits, means, logic, and algorithm steps described in accordance with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the various exemplary components, blocks, configurations, means, logic, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints of the overall system. Skilled engineers can implement the described functionality in various ways for each particular application. However, such implementation decisions should not be interpreted as departing from the scope of the present disclosure.

ここに示す実施形態に係る説明は、本開示の技術分野において通常の知識を有する者が本発明を利用したり、または実施できるように提供される。このような実施形態に対する様々な変形は、本開示の技術分野において通常の知識を有する者にとっては明確であり、ここに定義された一般的な原理は、本開示の範囲を逸脱することなく他の実施形態に適用されることができる。従って、本開示はここに示す実施形態によって限定されるものではなく、ここに示す原理及び新規な特徴と一貫する最広義の範囲で解釈されるべきである。 The description of the embodiments set forth herein is provided to enable one of ordinary skill in the art to use or practice the present disclosure. Various modifications to such embodiments will be apparent to those of ordinary skill in the art to which the disclosure pertains, and the general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present disclosure is not intended to be limited by the embodiments set forth herein, but is to be accorded the broadest scope consistent with the principles and novel features set forth herein.

以下、図1~図8を参照して、List of View(LOV)のようにに、構造化された文書のページをキャッシュし、前記キャッシュしたリソースを使用して認知されたレンダリング時間を減少させることによって、ウェブページのような構造化された文書を効率的にレンダリングする技術に関して記述する。既存システムでは、ユーザが新しいデータを要請すると、ブラウザが現在ページのロードを中止し、サーバーで全体新しいページを要請するので、多くの時間がかかり、ユーザ経験が遅くなり得る。したがって、本開示は、ブラウザやスプレッドシートのようなアプリケーションが全体ページを再ロードする代わりに、対象データをレンダリングするのに必要な新しいコンテンツおよびリソースのみを要請するように許容することによって、このようなオーバーヘッドを減らしたり除去することを目標とする。これは、遠隔および/またはローカルデータ保存所でキャッシュしたリソースに対する更新を検索する非同期技術を使用し、ブラウザまたはクライアントアプリケーションが基本的に全体データを再びレンダリングすることを防止する様々な技術を活用して達成することができる。開示された技術は、様々な脈絡でlist of view(LOV)、ウェブページおよびその他構造化された文書の性能およびユーザ経験を改善するために使用され得る。 With reference to FIGS. 1-8, a technique for efficiently rendering structured documents, such as web pages, by caching pages of the structured document, such as a list of views (LOV), and using the cached resources to reduce perceived rendering time will be described below. In existing systems, when a user requests new data, the browser stops loading the current page and requests the entire new page from the server, which can take a lot of time and slow the user experience. Therefore, the present disclosure aims to reduce or eliminate such overhead by allowing applications, such as browsers and spreadsheets, to request only the new content and resources needed to render the target data, instead of reloading the entire page. This can be accomplished using asynchronous techniques that search for updates to cached resources in remote and/or local data stores, and utilizing various techniques that essentially prevent the browser or client application from re-rendering the entire data. The disclosed techniques can be used to improve the performance and user experience of list of views (LOVs), web pages, and other structured documents in various contexts.

図1は、本開示の一実施形態によるコンピューティング装置を説明するためのブロック構成図である。 Figure 1 is a block diagram illustrating a computing device according to one embodiment of the present disclosure.

図1に示されたコンピューティング装置100の構成は、ただ簡略化して示した例示である。一例として、コンピューティング装置100は、コンピューティング装置100のコンピューティング環境を行うための他の構成が含まれ得、開示された構成の一部のみがコンピューティング装置100を構成することもできる。 The configuration of computing device 100 shown in FIG. 1 is merely a simplified example. As an example, computing device 100 may include other components for implementing the computing environment of computing device 100, and only some of the disclosed components may constitute computing device 100.

コンピューティング装置100は、プロセッサ110、メモリ130、ネットワーク部150を含んでもよい。 The computing device 100 may include a processor 110, a memory 130, and a network unit 150.

本開示の一実施形態によれば、プロセッサ110は、通常、コンピューティング装置100の動作およびデータを処理できるすべての種類の装置を含んでもよい。例えば、プログラム内に含まれたコードまたは命令で表現された機能を行うために物理的に構造化された回路を有する、ハードウェアに内蔵されたデータ処理装置を意味し得る。このようにハードウェアに内蔵されたデータ処理装置の一例として、マイクロプロセッサー(microprocessor)、中央処理装置(central processing unit:CPU)、プロセッサコア(processor core)、マルチプロセッサ(multiprocessor)、ASIC(application-specific integrated circuit)、FPGA(field programmable gate array)等の処理装置を含んでもよいが、本発明の範囲がこれに限定されるものではない。 According to an embodiment of the present disclosure, the processor 110 may generally include any type of device capable of processing operations and data of the computing device 100. For example, it may refer to a data processing device built into hardware having a circuit physically structured to perform a function expressed by a code or instruction contained in a program. Examples of such a data processing device built into hardware may include a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., but the scope of the present invention is not limited thereto.

前記プロセッサ110は、1つ以上のコアで構成され得、コンピューティング装置の中央処理装置(CPU:central processing unit)を含んでもよい。また、汎用グラフィック処理装置(GPGPU:general purpose graphics processing unit)、テンソル処理装置(TPU:tensor processing unit)等のデータ分析、ディープラーニングのためのプロセッサをさらに含んでもよい。 The processor 110 may be configured with one or more cores and may include a central processing unit (CPU) of a computing device. It may also include a processor for data analysis and deep learning, such as a general purpose graphics processing unit (GPGPU) or a tensor processing unit (TPU).

本開示の一実施形態によれば、メモリ130は、プロセッサ110が生成したり決定した任意の形態の情報およびネットワーク部150が受信した任意の形態の情報を保存することができる。 According to one embodiment of the present disclosure, the memory 130 can store any type of information generated or determined by the processor 110 and any type of information received by the network unit 150.

本開示の一実施形態によれば、メモリ130は、フラッシュメモリタイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マルチメディアカードマイクロタイプ(multimedia card micro type)、カードタイプのメモリ(例えば、SDまたはXDメモリ等)、ラム(Random Access Memory,RAM)、SRAM(Static Random Access Memory)、ロム(Read-Only Memory,ROM)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、PROM(Programmable Read-Only Memory)、磁気メモリ、磁気ディスク、光ディスクのうち少なくとも1つのタイプの保存媒体を含んでもよい。コンピューティング装置100は、インターネット(internet)上で前記メモリ130の保存機能を行うウェブストレージ(web storage)と関連して動作することもできる。前述したメモリに対する記載はただ例示であり、本開示は、これに制限されない。 According to one embodiment of the present disclosure, the memory 130 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), a RAM (Random Access Memory, RAM), a SRAM (Static Random Access Memory, SRAM), a ROM (Read-Only Memory, ROM), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory, PROM), a EEPROM (Electrically Erasable Program ... The memory 130 may include at least one type of storage medium, such as a memory, a magnetic memory, a magnetic disk, or an optical disk. The computing device 100 may also operate in association with web storage that performs the storage function of the memory 130 over the Internet. The above description of the memory is merely exemplary, and the present disclosure is not limited thereto.

本開示の一実施形態によるネットワーク部150は、公衆交換電話網(PSTN:Public Switched Telephone Network)、xDSL(x Digital Subscriber Line)、RADSL(Rate Adaptive DSL)、MDSL(Multi Rate DSL)、VDSL(Very High Speed DSL)、UADSL(Universal Asymmetric DSL)、HDSL(High Bit Rate DSL)および近距離通信網(LAN)等のような様々な有線通信システムを使用することができる。 The network unit 150 according to one embodiment of the present disclosure can use various wired communication systems such as the Public Switched Telephone Network (PSTN), x Digital Subscriber Line (xDSL), Rate Adaptive DSL (RADSL), Multi Rate DSL (MDSL), Very High Speed DSL (VDSL), Universal Asymmetric DSL (UADSL), High Bit Rate DSL (HDSL), and Local Area Network (LAN).

また、本明細書において提示されるネットワーク部150は、CDMA(Code Division Multi Access)、TDMA(Time Division Multi Access)、FDMA(Frequency Division Multi Access)、OFDMA(Orthogonal Frequency Division Multi Access)、SC-FDMA(Single Carrier-FDMA)および他のシステムのような様々な無線通信システムを使用することができる。 In addition, the network unit 150 presented in this specification can use various wireless communication systems such as CDMA (Code Division Multi Access), TDMA (Time Division Multi Access), FDMA (Frequency Division Multi Access), OFDMA (Orthogonal Frequency Division Multi Access), SC-FDMA (Single Carrier-FDMA), and other systems.

本開示においてネットワーク部150は、有線および無線等のようなその通信様態に関係なく構成され得、短距離通信網(LAN:Local Area Network)、個人通信網(PAN:Personal Area Network)、広域通信網(WAN:Wide Area Network)等様々な通信網で構成され得る。また、前記ネットワークは、公知のワールドワイドウェブ(WWW:World Wide Web)であってもよく、赤外線(IrDA:Infrared Data Association)またはブルートゥース(登録商標)(Bluetooth)のように短距離通信に用いれる無線伝送技術を用いることもできる。 In the present disclosure, the network unit 150 may be configured regardless of the communication mode, such as wired or wireless, and may be configured with various communication networks, such as a short-range communication network (LAN: Local Area Network), a personal communication network (PAN: Personal Area Network), and a wide area communication network (WAN: Wide Area Network). In addition, the network may be the well-known World Wide Web (WWW: World Wide Web), or may use a wireless transmission technology used for short-range communication, such as infrared (IrDA: Infrared Data Association) or Bluetooth (registered trademark).

本明細書において説明された技術は、上記で言及されたネットワークだけでなく、他のネットワークでも使用され得る。 The techniques described herein may be used in the networks mentioned above as well as in other networks.

本明細書において、データベースは、ORACLE(オラクル)、PostgreSQL(ポストグレスキューエル)、MySQL、SQL Server(MS-SQL)またはSQLiteのうち少なくとも1つの関係データベース管理システム(RDBMS)により制御されるものであってもよい。前記データベースは、データベース構文(database statement)によりデータの入出力が行われるものであってもよい。 In this specification, a database may be controlled by at least one relational database management system (RDBMS) among ORACLE, PostgreSQL, MySQL, SQL Server (MS-SQL), or SQLite. The database may be one in which data is input and output using a database statement.

なお、本明細書のアプリケーションは、別途の構文実行モジュールを含んでもよい。前記構文実行モジュールは、前記データベース構文(database statement)が前記データベース管理システム(RDBMS)に対するデータの入出力を行う場合、前記データベースの種類によって文法(syntax)に合うカスタマイズされた構文(statement)が生成され得る。例えば、ユーザは、本開示を通じて、データベースの種類と関係なく、アプリケーションが提供するユーザインタフェース(UI)で提供する抽象化された数式を通じて便利に構文を生成、確認および制御することができる。 The application of this specification may include a separate syntax execution module. When the database statement inputs and outputs data to the database management system (RDBMS), the syntax execution module may generate a customized statement that matches the syntax according to the type of database. For example, through this disclosure, a user can conveniently generate, check, and control a statement through an abstracted formula provided in a user interface (UI) provided by the application, regardless of the type of database.

また、前記アプリケーションは、前記構文が生成、読み出しまたは更新、削除(Create,Read,Update,Delete;CRUD)のうちいずれか1つ以上の動作を行うSQL構文に関連していてもよい。ここで、前記SQL構文は、挿入(Insert)、更新(Update)または削除(Delete)のうちいずれか1つの命令語と関連した信号であってもよく、前記信号は、前記SQL構文の名称または略字がスプレッドシートのセルに入力されたり表示され得る。例えば、前記表示は、下記表1のように示され得る。
Also, the application may be related to an SQL statement, the statement performing one or more operations of create, read, update, and delete (CRUD). Here, the SQL statement may be a signal related to one of commands of insert, update, and delete, and the signal may be input or displayed as a name or an abbreviation of the SQL statement in a cell of a spreadsheet. For example, the display may be as shown in Table 1 below.

また、ユーザ入力情報は、構文生成と関連するカラムを設定したり、レコード条件を指定するためのものであってもよい。例えば、前記原本データと出力データ間のカラム順序が変更されたりカラム名が異なる場合にも、SQL構文を実行することができる。また、前記ユーザ入力情報は、前記出力データに対する注釈を表示することができる。 The user input information may also be for setting columns related to syntax generation or for specifying record conditions. For example, SQL syntax can be executed even if the column order between the original data and the output data is changed or the column names are different. The user input information may also display annotations for the output data.

本開示において、LOV(List of View、一覧リスト)は、項目リストを表示するユーザインタフェース要素の一類型であり、一般的にテーブルやグリッド形式を有する。前記LOVは、一般的に各項目属性に対する列とリストの各項目に対する行が含まれる。前記LOVをロードするとき、特定要素が含まれたクエリーを実行するとき、要素を検索しにくかったり要素の複雑性によりクエリー実行時間が長くかかることができるので、ロード速度が遅くなり得る。これは、クエリーに含まれた構文要素に多数の属性があったりデータベースの他の多くの構文要素に連結され、情報を検索し表示するのにより多くの処理時間が必要なときに発生し得る。また、構文要素がリストの終わり近くにある場合、前記クエリーは、所望の要素に到達する前に、多数の以前の構文要素を検索し、処理しなければならないので、ロードプロセスがさらに遅くなり得、この場合、本開示のキャッシュによりロード速度を向上させることができる。 In the present disclosure, a list of views (LOVs) is a type of user interface element that displays a list of items, and is typically in the form of a table or grid. The LOV typically includes a column for each item attribute and a row for each item in the list. When loading the LOV, the load speed may be slower because the element may be difficult to find or the complexity of the element may increase the query execution time when a query involving a particular element is performed. This may occur when a syntax element included in a query has many attributes or is linked to many other syntax elements in the database, requiring more processing time to find and display the information. Also, if a syntax element is near the end of a list, the query may have to find and process many previous syntax elements before reaching the desired element, which may further slow down the load process, and the caching of the present disclosure may improve the load speed in this case.

図2、図3および図4は、本開示の一実施形態によるデータベースに対するキャッシュ生成方法を説明するためのフローチャートおよび概念図である。 Figures 2, 3, and 4 are flowcharts and conceptual diagrams illustrating a method for generating a cache for a database according to one embodiment of the present disclosure.

図2、図3および図4を参照すると、本開示のコンピューティング装置は、データベースに対するユーザ入力構文を獲得する段階(S110)と、ユーザ入力構文から既定のフィルタリング構文要素を確認する段階(S210)と、ユーザ入力構文に対応するデータベースに対するLOVキャッシュの存在を確認する段階(S300)と、を含んでもよい。本明細書において、前記キャッシュは、LOVキャッシュであってもよい。また、前記ユーザ入力構文は、ユーザインタフェース(UI)等で入力されたものであり、該当するLOVキャッシュが不在する第1構文および該当するLOVキャッシュが存在する第2構文で表現されることもできる。 2, 3 and 4, the computing device of the present disclosure may include a step of acquiring a user input syntax for a database (S110), a step of checking a predefined filtering syntax element from the user input syntax (S210), and a step of checking the existence of an LOV cache for the database corresponding to the user input syntax (S300). In this specification, the cache may be an LOV cache. In addition, the user input syntax is inputted through a user interface (UI) or the like, and may be expressed as a first syntax in which the corresponding LOV cache does not exist and a second syntax in which the corresponding LOV cache exists.

前記データベースに対するユーザ入力構文を獲得する段階(S110)で、ユーザは、データベースに連結されたアプリケーションを作動させることができる。次に、ユーザは、検索箱にクエリーを入力することができる。一例として、前記クエリーは、「SELECT* FROM products WHERE price>10 AND category=‘clothing’」であってもよい。次に、前記アプリケーションは、ユーザの入力を受けてデータベースに送ることができる。次に、前記データベースは、ユーザの入力を受信し、これをSQL構文で認識することができる。次に、前記データベースは、クエリーを処理し、結果をアプリケーションに返還することができる。ここで、前記ユーザ入力構文は、ユーザが検索箱に入力したSQL構文であり、前記アプリケーションは、この入力を「獲得」し、処理のためにデータベースに送る役割をすることができる。その後、前記データベースは、入力を使用してクエリーを実行し、結果をアプリケーションに返還することができる。 In the step of acquiring user input syntax for the database (S110), a user may run an application linked to the database. The user may then enter a query into a search box. As an example, the query may be "SELECT * FROM products WHERE price>10 AND category='clothing'". The application may then receive the user's input and send it to the database. The database may then receive the user's input and recognize it as SQL syntax. The database may then process the query and return the results to the application. Here, the user input syntax is the SQL syntax entered by the user into a search box, and the application may act to "acquire" this input and send it to the database for processing. The database may then use the input to execute the query and return the results to the application.

他の例として、ユーザは、SQL構文を使用してデータベースをクエリーできるアプリケーションと相互作用しており、ここで、ユーザは、「SELECT DISTINCT column1,column2 FROM table_name WHERE column1=‘D’;」のようなクエリーを入力することができる。この場合、ユーザ入力構文は、ユーザが入力した全体SQL構文である。前記アプリケーションは、この入力を受信し、データベースに対するキャッシュ生成プロセスを始める。前記ユーザ入力構文が獲得されると、本開示のアプリケーションは、プロセスの次の段階に進めることができる。 As another example, a user may be interacting with an application that can query a database using SQL syntax, where the user may enter a query such as "SELECT DISTINCT column1, column2 FROM table_name WHERE column1='D';". In this case, the user input syntax is the entire SQL syntax entered by the user. The application receives this input and begins a cache generation process for the database. Once the user input syntax is obtained, the application of the present disclosure may proceed to the next stage of the process.

前記ユーザ入力構文から既定のフィルタリング構文要素を確認する段階(S210)で、例えば、前記既定のフィルタリング構文要素は、DISTINCT演算子であってもよい。前記アプリケーションは、ユーザ入力構文を分析し、DISTINCTキーワードを探してこの演算子の存在を確認することができる。このために、前記アプリケーションは、正規式(regex)またはその他文字列一致技術を使用してユーザ入力構文から既定のフィルタリング構文要素のようなキーワードを検索することができる。その結果、前記ユーザ入力構文からDISTINCTキーワードが発見される場合、前記アプリケーションは、プロセスの次の段階を進めることができる。 In the step of identifying a predefined filtering syntax element from the user input syntax (S210), for example, the predefined filtering syntax element may be the DISTINCT operator. The application may analyze the user input syntax to search for a DISTINCT keyword and identify the presence of this operator. To this end, the application may use regular expressions (regex) or other string matching techniques to search for keywords such as predefined filtering syntax elements from the user input syntax. As a result, if the DISTINCT keyword is found in the user input syntax, the application may proceed to the next step of the process.

また、前記ユーザ入力構文に対応するデータベースに対するLOVキャッシュの存在を確認する段階(S300)で、前記ユーザ入力構文に対するLOVキャッシュが不在する場合、本開示は、既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出する段階(S410)と、キャッシュ生成基盤構文に基づいて、第1構文に対するLOVキャッシュを生成する段階(S420)と、をさらに含んでもよい。 In addition, if there is no LOV cache for the user input syntax in the step of checking for the existence of an LOV cache for the database corresponding to the user input syntax (S300), the present disclosure may further include a step of calculating a cache generation-based syntax by removing predefined filtering syntax elements (S410), and a step of generating an LOV cache for the first syntax based on the cache generation-based syntax (S420).

前記既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出する段階(S410)で、前記アプリケーションは、ユーザが入力した第1構文からDISTINCTキーワードと関連節または媒介変数を除去することができる。例えば、前記アプリケーションは、正規式またはその他文字列一致技術を使用してDISTINCTキーワードをユーザ入力構文から除去することができる。その結果、生成された派生構文は、「SELECT column1,column2 FROM table_name WHERE column1=‘D’;」のように示され得る。前記派生構文は、プロセスの本開示のデータベース用キャッシュを生成するためのキャッシュ生成基盤構文として使用され得る。 In the step of calculating a cache generation-based syntax by removing the predefined filtering syntax elements (S410), the application can remove the DISTINCT keyword and related clauses or parameters from the first syntax entered by the user. For example, the application can remove the DISTINCT keyword from the user-entered syntax using regular expressions or other string matching techniques. As a result, the generated derived syntax can be expressed as "SELECT column1, column2 FROM table_name WHERE column1='D';". The derived syntax can be used as a cache generation-based syntax for generating a cache for the database of the present disclosure of the process.

次に、前記キャッシュ生成基盤構文に基づいて、ユーザ入力構文に対するLOVキャッシュを生成する段階(S420)で、例えば、前記アプリケーションは、生成または保存されたLOVキャッシュを検査し、前記残余構文要素にユーザによって要請されたデータに該当するキャッシュが存在するかを確認し、前記キャッシュがなければ、優先的に前記アプリケーションは、データベースに対して直接クエリーを実行し、その結果をユーザに返還することができる。 Next, in the step of generating an LOV cache for the user input syntax based on the cache generation-based syntax (S420), for example, the application checks the generated or stored LOV cache to determine whether a cache corresponding to the data requested by the user in the remaining syntax elements exists, and if the cache does not exist, the application may preferentially execute a query directly against a database and return the results to the user.

前記アプリケーションは、前記ユーザ入力構文に対する残余構文要素を得、これに基づいて派生構文(すなわち、DISTINCT演算子がないSELECT文)を生成し、前記派生構文に基づいて、前記ユーザ入力構文に対するLOVキャッシュを生成することができる。前記ユーザ入力構文に対するLOVキャッシュには、メモリまたはディスクのデータ構造に保存されたSELECT文によって返還されたデータが含まれ得る。 The application can obtain residual syntax elements for the user input syntax, generate derived syntax based thereon (i.e., a SELECT statement without a DISTINCT operator), and generate an LOV cache for the user input syntax based on the derived syntax. The LOV cache for the user input syntax can include data returned by the SELECT statement stored in a data structure in memory or on disk.

これに加えて、前記アプリケーションは、データベースライブラリーまたはAPIを使用して前記データベースに連結し、派生構文(すなわち、DISTINCT演算子が除外されたSELECT文)を実行し、結果データをキャッシュに保存することができる。前記キャッシュは、メモリのデータ構造で具現されたり、ディスクまたは他の永久保存位置に保存され得る。このような方式で前記アプリケーションは、クエリー性能を向上させるためのLOVキャッシュを生成することができる。 In addition, the application can connect to the database using a database library or API, execute derived syntax (i.e., a SELECT statement with the DISTINCT operator omitted), and store the resulting data in a cache. The cache can be implemented as a data structure in memory, or stored on disk or other permanent storage location. In this manner, the application can create an LOV cache to improve query performance.

ここで、前記LOVキャッシュは、本開示のユーザ入力構文またはキャッシュ生成基盤構文を実行することによって生成された第1キャッシュデータを含んでもよい。また、前記LOVキャッシュは、生成された前記第1キャッシュデータが整列した第2キャッシュデータを生成することができる。前記第2キャッシュデータを生成するために、前記アプリケーションは、前記第1キャッシュデータに対して、クエリーに指定された特定列(この場合、column1)の値を比較し、特定の整列アルゴリズム(例えば、ORDER BY節に指定されたASCENDING)を使用してデータを昇順に整列し、値の最も低いレコードが最初に表示され、値の最も高いレコードが最後に表示することができる。 Here, the LOV cache may include first cache data generated by executing the user input syntax or cache generation base syntax of the present disclosure. The LOV cache may also generate second cache data in which the generated first cache data is sorted. To generate the second cache data, the application may compare the value of a specific column (column1 in this case) specified in the query against the first cache data, and sort the data in ascending order using a specific sorting algorithm (e.g., ASCENDING specified in the ORDER BY clause), so that the record with the lowest value is displayed first and the record with the highest value is displayed last.

前記方法によって第2キャッシュデータが生成される場合、前記アプリケーションは、後続するユーザ入力構文に迅速に応答することができる。例えば、ユーザが以前と同じデータを再び検索しようとする場合、前記アプリケーションは、データベースに接近する代わりに、前記キャッシュからデータを検索し、応答を提供することができる。前記キャッシュを通じてクエリー性能が向上し、ユーザに迅速な応答を提供することができる。 When the second cache data is generated by the method, the application can respond quickly to subsequent user input syntax. For example, if a user tries to search for the same data again, the application can retrieve the data from the cache and provide a response instead of accessing a database. Through the cache, query performance is improved and quick responses can be provided to the user.

前記キャッシュ生成作業は、バックグラウンドスレッド(background thread)により処理され得る。前記バックグラウンドスレッドは、プログラミング言語または運営体制(OS)で提供するスレッディングライブラリーまたはAPIによって生成されて作動することができる。前記バックグラウンドスレッドが実行される間に、基本スレッドがユーザ要請を続いて処理することができるので、前記アプリケーションの性能を向上させることができるが、これは、前記データベースが遅かったりワークロードが高い場合、主スレッドがデータベースの応答を待たなければならない時間を減らして、ユーザ入力構文を処理する性能を向上させることができる。また、前記派生構文に関連した前記データベースに対するキャッシュが複数個存在する場合、必要に応じて前記S410段階を繰り返すことができる。 The cache generation operation may be processed by a background thread. The background thread may be generated and operated by a threading library or API provided by a programming language or an operating system (OS). While the background thread is running, the main thread may continue to process user requests, improving the performance of the application. This may improve the performance of processing user input syntax by reducing the time that the main thread must wait for a database response if the database is slow or the workload is high. Also, if there are multiple caches for the database associated with the derived syntax, step S410 may be repeated as necessary.

また、ユーザ入力構文に対応するデータベースに対するLOVキャッシュの存在を確認する段階(S300)で、前記ユーザ入力構文に対するLOVキャッシュが存在する場合、本開示は、前記LOVキャッシュに基づいて、ユーザ入力構文に対する応答を生成する段階(S510)をさらに含んでもよい。例えば、ユーザがSQL構文を使用してデータベースをクエリーすることができるアプリケーションと相互作用する過程で、ユーザが「SELECT DISTINCT column1,column2 FROM table_name WHERE column1=‘C’;」のようなユーザ入力構文を提出する場合、前記アプリケーションは、前記ユーザ入力構文に要請するデータが前記データベースに対するキャッシュに含まれているかを確認する。前記キャッシュのうちいずれか1つ以上が前記ユーザ入力構文に要請するデータを含む場合、前記アプリケーションは、前記データを含むキャッシュに基づいて、前記ユーザ入力構文に対する応答を返還する作業を行うことができる。これは、キャッシュに前記頻繁にアクセスするデータが含まれている場合、データベースが遅い場合、またはワークロードが高い場合のうち少なくとも1つの場合に特に有用である。 In addition, in the step of checking the existence of an LOV cache for a database corresponding to a user input syntax (S300), if an LOV cache for the user input syntax exists, the present disclosure may further include a step of generating a response to the user input syntax based on the LOV cache (S510). For example, in the process of interacting with an application that can query a database using SQL syntax, if a user submits a user input syntax such as "SELECT DISTINCT column1, column2 FROM table_name WHERE column1='C';", the application checks whether the data requested by the user input syntax is included in the cache for the database. If any one or more of the caches contains the data requested by the user input syntax, the application may perform an operation of returning a response to the user input syntax based on the cache containing the data. This is particularly useful in at least one of the following cases: when a cache contains the frequently accessed data, when a database is slow, or when a workload is high.

図5および図6は、本開示の一実施形態によるデータベースに対するキャッシュ活用方法を説明するためのフローチャートおよび概念図である。 Figures 5 and 6 are a flowchart and a conceptual diagram illustrating a method for utilizing a cache for a database according to one embodiment of the present disclosure.

図5および図6を参照すると、本開示のコンピューティング装置は、データベースに対する第1構文を獲得する段階(S120)と、既定のフィルタリング構文要素をさらに含む第2構文を獲得する段階(S220)と、データベースに対するキャッシュに基づいて、第2構文に対する応答を生成する段階(S520)と、を含んでもよい。 Referring to FIG. 5 and FIG. 6, the computing device of the present disclosure may include a step of acquiring a first syntax for a database (S120), a step of acquiring a second syntax further including a predefined filtering syntax element (S220), and a step of generating a response to the second syntax based on a cache for the database (S520).

前記データベースに対する第1構文を獲得する段階(S120)で、ユーザによって入力された第1構文は、データベースをクエリーすることができるアプリケーションと相互作用することができる。例えば、ユーザは、テーブルの特定列に対する固有値リストを検索しようとし、前記ユーザ入力構文は、「SELECT DISTINCT column1 FROM table_name;」のように示され得る。 In the step of acquiring a first syntax for the database (S120), the first syntax input by the user can be interacted with an application capable of querying the database. For example, if a user wishes to search for a list of unique values for a particular column of a table, the user input syntax can be expressed as "SELECT DISTINCT column1 FROM table_name;".

次に、前記アプリケーションは、前記ユーザ入力構文を受信し、前記データベースに対するキャッシュ生成プロセスを行う。前記プロセスの最初の段階は、第1構文を得ることである。前記第1構文は、データをフィルタリングしない全体SQL構文であってもよい。 The application then receives the user input syntax and performs a cache generation process on the database. The first step in the process is to obtain a first syntax. The first syntax may be an entire SQL syntax that does not filter data.

次に、前記アプリケーションは、前記第1構文の文法を検査し、有効か否かおよび前記データベースに対して実行可能の可否を確認することができる。例えば、前記アプリケーションは、SQL構文を分析して、正しい数の節があり、必要なすべての要素があるかを確認することができる。 The application can then check the grammar of the first syntax to see if it is valid and can be executed against the database. For example, the application can analyze SQL syntax to see if it has the correct number of clauses and all required elements.

前記既定のフィルタリング構文要素をさらに含む第2構文を獲得する段階(S220)で、前記アプリケーションは、前記第2構文を受信し、前記データベースに対するキャッシュに基づく応答を生成するプロセスを行うことができる。例えば、前記既定のフィルタリング構文要素類型は、クエリー結果から重複値を除去するのに使用されるDISTINCT演算子であってもよい。これによって、前記第2構文は、前記第1構文と似ているが、固有値のみを返還するDISTINCT演算子を含んでもよい。前記第2構文は、前記アプリケーションでユーザクエリーに対する応答を生成するのに使用され得る。 In the step of acquiring a second syntax further including the predefined filtering syntax element (S220), the application may receive the second syntax and perform a process of generating a response based on a cache for the database. For example, the predefined filtering syntax element type may be a DISTINCT operator used to remove duplicate values from a query result. Thus, the second syntax may be similar to the first syntax but may include a DISTINCT operator that returns only unique values. The second syntax may be used to generate a response to a user query in the application.

前記データベースに対するキャッシュに基づいて、第2構文に対する応答を生成する段階(S520)で、前記アプリケーションは、前記第2構文を使用してデータベースをクエリーすることができる。例えば、ユーザは、データベーステーブルの特定列に対する固有値リストを検索するために、「SELECT DISTINCT column1,column2 FROM table_name WHERE column1=‘F’;」のような構文を入力することができる。前記構文は、前記データベースに対してクエリーを実行することができる。 In the step of generating a response to the second syntax based on the cache for the database (S520), the application can query the database using the second syntax. For example, a user can enter a syntax such as "SELECT DISTINCT column1, column2 FROM table_name WHERE column1='F';" to search for a list of unique values for a particular column of a database table. The syntax can execute a query against the database.

次に、前記アプリケーションは、第2構文を使用してユーザクエリーに対する応答を生成することができる。例えば、前記アプリケーションは、キャッシュに対して前記第2構文を実行してデータを検索し、応答としてユーザに返還することができる。データベースを直接クエリーする代わりに、キャッシュを使用することによって、前記アプリケーションのクエリー性能を向上させ、ユーザに迅速な応答を提供することができる。 The application can then use the second syntax to generate a response to the user query. For example, the application can execute the second syntax against the cache to retrieve data to return to the user as a response. By using a cache instead of querying a database directly, the application's query performance can be improved and the user can be provided with a faster response.

図7は、本開示の一実施形態によるデータベースに対する非同期応答方法を説明するための概念図である。 Figure 7 is a conceptual diagram illustrating an asynchronous response method for a database according to one embodiment of the present disclosure.

図7を参照すると、本開示のコンピューティング装置は、データベースに対する第1構文を獲得し、前記第1構文に対する応答を返還することができる。 Referring to FIG. 7, a computing device of the present disclosure can obtain a first syntax for a database and return a response to the first syntax.

前記第1構文に対するLOVキャッシュを生成する間に、前記第1構文に対する応答の遅延時間またはレコード数が既定の臨界値を超える場合、前記遅延時間またはレコード数が前記臨界値に到達するまで生成された前記第1構文に対する応答の一部を発送する段階を含んでもよい。例えば、前記アプリケーションは、前記第1構文を獲得し、有効性を検査した後、前記第1構文に対する応答を返還することができる。 If, while generating the LOV cache for the first syntax, a delay time or a number of records of a response to the first syntax exceeds a predetermined threshold, the method may include sending a portion of the response to the first syntax that has been generated until the delay time or the number of records reaches the threshold. For example, the application may obtain the first syntax, check its validity, and then return the response to the first syntax.

ここで、前記第1構文が実行される前に、前記アプリケーションは、前記応答で発生すると予想される遅延時間または項目数に対する臨界値を設定することができる。例えば、前記アプリケーションは、前記応答で発生すると予想される遅延時間に対して500ミリ秒の臨界値を設定し、前記項目数に対して100万項目の臨界値を設定することができる。 Here, before the first syntax is executed, the application can set a threshold value for the delay time or number of items expected to occur in the response. For example, the application can set a threshold value of 500 milliseconds for the delay time expected to occur in the response and a threshold value of 1 million items for the number of items.

次に、前記第1構文が実行されると、前記アプリケーションは、前記応答で発生すると予想される時間が既定の臨界値(例えば、500ミリ秒)を超えたか否かを確認する。確認結果、前記既定の臨界値を超えると、前記アプリケーションは、集計作業を中止し、前記遅延時間またはレコード数が前記臨界値に到達するまで生成された前記第1構文に対する応答の一部を発送する作業を行うことができる。反対に、前記臨界値を超えない場合、前記アプリケーションは、全体結果が返還されるまで待機し、一度に全体応答を伝送することができる。 Next, when the first syntax is executed, the application checks whether the time expected for the response exceeds a predefined threshold (e.g., 500 milliseconds). If the predefined threshold is exceeded, the application can stop the aggregation operation and send a portion of the response to the first syntax that was generated until the delay time or number of records reaches the threshold. Conversely, if the threshold is not exceeded, the application can wait until the entire result is returned and send the entire response at once.

前記応答で発生すると予想される時間または項目数に対する臨界値を設定することによって、前記アプリケーションは、ユーザに返還されるデータの量を制限し、クエリー性能を向上させることができる。 By setting thresholds for the time or number of items expected to occur in the response, the application can limit the amount of data returned to the user and improve query performance.

これは、前記アプリケーションが多量のデータを返還する場合、頻繁に発生しうる過負荷現象または要請に応答しない現象が発生することを防止するのに役に立つことができる。 This can help prevent overloading or failure to respond to requests, which can occur frequently when the application returns a large amount of data.

なお、前記ユーザ入力構文を獲得した後、前記アプリケーションは、前記ユーザ入力構文に基づいて、前記データベースに対するキャッシュを生成することができる。前記キャッシュは、前記応答で発生すると予想される時間が前記既定の臨界値を超える場合に生成され得る。前記キャッシュを生成する作業は、バックグラウンドスレッド(background thread)により処理され得るが、これを通じて、前記第1構文を処理する非同期的な応答作業に対する遅延時間を増加させることなく、前記キャッシュを生成する作業を行うことができる。 After acquiring the user input syntax, the application can generate a cache for the database based on the user input syntax. The cache can be generated when the time expected for the response exceeds the predetermined threshold. The operation of generating the cache can be processed by a background thread, and thus the operation of generating the cache can be performed without increasing the latency of the asynchronous response operation of processing the first syntax.

前記第1構文に対するLOVキャッシュを生成する間に、前記第1構文に基づいて生成される応答の遅延時間またはレコード数が前記臨界値以下の場合、前記第1構文に対する応答の全体を発送することができる。この場合、本開示のアプリケーションは、前記データベースに対するキャッシュを生成しなくてもよく、これを通じて、前記第1構文に基づいて生成される応答の遅延時間またはレコード数が臨界値以上の場合にのみ、LOVキャッシュを生成し、前記第1構文に対する応答速度を犠牲させることなく、前記LOVキャッシュを保存するためのリソースを減らすことができる。 While generating an LOV cache for the first syntax, if the latency or number of records of the response generated based on the first syntax is equal to or less than the critical value, the entire response to the first syntax can be sent. In this case, the application of the present disclosure does not need to generate a cache for the database, and thus generates an LOV cache only when the latency or number of records of the response generated based on the first syntax is equal to or greater than the critical value, thereby reducing resources for storing the LOV cache without sacrificing the response speed to the first syntax.

図8は、本開示内容の実施形態が具現され得る例示的なコンピューティング環境に対する一般的な概略図である。 Figure 8 is a general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure may be implemented.

図8を参照すると、前記コンピュータプログラムは、1つ以上のプロセッサによって実行される場合、原本データを抽出して出力する動作を行うことができる。 Referring to FIG. 8, the computer program, when executed by one or more processors, can perform an operation to extract and output original data.

本開示の一実施形態によれば、前記動作は、前記1つ以上のプロセッサが、データをスプレッドシートに表示するための動作を行うために、データベースからイメージを含む第1データを獲得する動作と、前記第1データに基づいて、スプレッドシートモジュールを通じて前記第1データをスプレッドシートに表示する動作と、を含んでもよい。 According to one embodiment of the present disclosure, the operations may include an operation of the one or more processors obtaining first data including an image from a database to perform an operation for displaying the data in a spreadsheet, and an operation of displaying the first data in a spreadsheet through a spreadsheet module based on the first data.

本開示の他の実施形態によれば、前記動作は、前記1つ以上のプロセッサが、データをスプレッドシートに出力するための動作を行うために、スプレッドシートモジュールがデータ抽出関数のパラメーターを受信する動作と、前記データ抽出関数のパラメーターに基づいて、データベースにアクセスするための第1構文を生成する動作と、前記第1構文によって前記データベースから第1データを獲得する動作と、前記データ抽出関数のパラメーターに基づいて、前記スプレッドシートモジュールを介して前記第1データを出力する動作と、を含んでもよい。 According to another embodiment of the present disclosure, the operations may include a spreadsheet module receiving parameters of a data extraction function so that the one or more processors perform an operation to output data to a spreadsheet, generating a first syntax for accessing a database based on the parameters of the data extraction function, acquiring first data from the database using the first syntax, and outputting the first data via the spreadsheet module based on the parameters of the data extraction function.

本開示のさらに他の実施形態によれば、前記動作は、テーブル上の原本データを索引するために、原本データに対する領域探索用構文を確認する動作と、前記探索用構文に基づいて、前記原本データに対する索引情報を生成する動作と、を含んでもよい。 According to yet another embodiment of the present disclosure, the operations may include an operation of checking a domain search syntax for the original data in the table to index the original data, and an operation of generating index information for the original data based on the search syntax.

また、本開示の一実施形態によってデータ構造を保存したコンピュータ可読媒体が開示される。 Also disclosed in one embodiment of the present disclosure is a computer-readable medium having a data structure stored thereon.

データ構造は、データに効率的なアクセスおよび修正を可能にするデータの組織、管理、保存を意味し得る。データ構造は、特定の課題(例えば、最短時間のデータ検索、データ保存、データ修正)の解決のためのデータの組織を意味し得る。データ構造は、特定のデータ処理機能をサポートするように設計された、データ要素間の物理的あるいは論理的な関係と定義されることもできる。データ要素間の論理的な関係は、ユーザ定義データ要素間の連結関係を含んでもよい。データ要素間の物理的な関係は、コンピュータ可読保存媒体(例えば、永久保存装置)に物理的に保存されているデータ要素間の実際の関係を含んでもよい。データ構造は、具体的には、データの集合、データ間の関係、データに適用できる関数または命令語を含んでもよい。効果的に設計されたデータ構造を通じて、コンピューティング装置は、コンピューティング装置のリソースの使用を最低限に抑えながら、演算を行うことができる。具体的には、コンピューティング装置は、効果的に設計されたデータ構造を通じて演算、読み出し、取り込み、削除、比較、交換、検索の効率性を高めることができる。 A data structure may refer to the organization, management, and storage of data that allows efficient access and modification of the data. A data structure may refer to the organization of data to solve a specific problem (e.g., data retrieval, data storage, data modification in the shortest time). A data structure may also be defined as a physical or logical relationship between data elements designed to support a specific data processing function. A logical relationship between data elements may include a linking relationship between user-defined data elements. A physical relationship between data elements may include an actual relationship between data elements that is physically stored in a computer-readable storage medium (e.g., a permanent storage device). A data structure may specifically include a collection of data, a relationship between data, and a function or instruction that can be applied to the data. Through an effectively designed data structure, a computing device can perform operations while minimizing the use of computing device resources. Specifically, a computing device can increase the efficiency of operations, reading, retrieval, deletion, comparison, exchange, and search through an effectively designed data structure.

データ構造は、データ構造の形態によって線形データ構造と非線形データ構造に区分され得る。線形データ構造は、1つのデータの後に1つのデータのみが連結される構造であってもよい。線形データ構造は、リスト(List)、スタック(Stack)、キュー(Queue)、デック(Deque)を含んでもよい。リストは、内部的に順序が存在する一連のデータ集合を意味し得る。リストは、連結リスト(Linked List)を含んでもよい。連結リストは、それぞれのデータがポインタを有し、一列に連結されている方式でデータが連結されたデータ構造であってもよい。連結リストにおいてポインタは、次または以前のデータとの連結情報を含んでもよい。連結リストは、形態によって片方向連結リスト、双方向連結リスト、循環連結リストで表現され得る。スタックは、データへのアクセスに制限が付くデータ配列構造であってもよい。スタックは、データ構造の一端でのみデータを処理(例えば、挿入または削除)することができる線形データ構造であってもよい。スタックに保存されたデータは、後入れ先出しのデータ構造(LIFO-Last in First Out)であってもよい。キューは、データへのアクセスに制限が付くデータ配列構造であり、スタックとは異なって、先入れ先出しのデータ構造(FIFO-First in First Out)であってもよい。デックは、データ構造の両端でデータを処理できるデータ構造であってもよい。 Data structures may be classified into linear data structures and non-linear data structures according to the form of the data structure. A linear data structure may be a structure in which only one piece of data is linked after one piece of data. A linear data structure may include a list, a stack, a queue, and a deque. A list may mean a series of data sets that have an internal order. A list may include a linked list. A linked list may be a data structure in which data is linked in a manner in which each piece of data has a pointer and is linked in a row. In a linked list, the pointer may include information on the connection with the next or previous piece of data. A linked list may be expressed as a singly linked list, a doubly linked list, or a circularly linked list according to the form. A stack may be a data array structure in which access to data is restricted. A stack may be a linear data structure in which data can be processed (e.g., inserted or deleted) only at one end of the data structure. The data stored in a stack may be a last in, first out (LIFO) data structure. A queue is a data array structure that limits access to data and, unlike a stack, may be a first in, first out (FIFO) data structure. A deck may be a data structure that allows data to be processed at both ends of the data structure.

非線形データ構造は、1つのデータの後に複数個のデータが連結される構造であってもよい。非線形データ構造は、グラフ(Graph)データ構造を含んでもよい。グラフデータ構造は、頂点(Vertex)とエッジ(Edge)で定義することができ、エッジは、異なる2つの頂点を連結する線を含んでもよい。グラフデータ構造ツリー(Tree)データ構造を含んでもよい。ツリーデータ構造は、ツリーに含まれた複数個の頂点のうち、互いに異なる2つの頂点を連結する経路が1つであるデータ構造であってもよい。すなわちグラフデータ構造においてループ(loop)を形成しないデータ構造であってもよい。 The nonlinear data structure may be a structure in which multiple data are linked after one piece of data. The nonlinear data structure may include a graph data structure. The graph data structure may be defined by vertices and edges, and an edge may include a line connecting two different vertices. The graph data structure may include a tree data structure. The tree data structure may be a data structure in which there is one path connecting two different vertices among multiple vertices included in the tree. In other words, the graph data structure may be a data structure that does not form a loop.

データ構造は、神経網に入力されるデータを含んでもよい。神経網に入力されるデータを含むデータ構造は、コンピュータ可読媒体に保存され得る。神経網に入力されるデータは、神経網学習過程で入力される学習データおよび/または学習が完了した神経網に入力される入力データを含んでもよい。神経網に入力されるデータは、前処理(pre-processing)を経たデータおよび/または前処理対象となるデータを含んでもよい。前処理は、データを神経網に入力させるためのデータ処理過程を含んでもよい。したがって、データ構造は、前処理対象となるデータおよび前処理で発生するデータを含んでもよい。前述したデータ構造は、ただ例示であり、本開示は、これに制限されない。 The data structure may include data to be input to the neural network. The data structure including the data to be input to the neural network may be stored on a computer-readable medium. The data to be input to the neural network may include training data input during a neural network training process and/or input data to be input to a neural network after training has been completed. The data to be input to the neural network may include data that has undergone pre-processing and/or data to be pre-processed. Pre-processing may include a data processing process for inputting data to the neural network. Thus, the data structure may include data to be pre-processed and data generated in pre-processing. The above-mentioned data structures are merely examples, and the present disclosure is not limited thereto.

データ構造は、神経網の重みを含んでもよい。(本明細書において重み、パラメーターは、同じ意味で使用され得る。)そして、神経網の重みを含むデータ構造は、コンピュータ可読媒体に保存され得る。神経網は、複数個の重みを含んでもよい。重みは、可変的であってもよく、神経網が所望の機能を行うために、ユーザまたはアルゴリズムに応じて可変され得る。例えば、1つの出力ノードに1つ以上の入力ノードがそれぞれのリンクによって相互連結された場合、出力ノードは、前記出力ノードと連結された入力ノードに入力された値およびそれぞれの入力ノードに対応するリンクに設定された重みに基づいて出力ノードから出力されるデータ値を決定することができる。前述したデータ構造は、ただ例示であり、本開示は、これに制限されない。 The data structure may include weights of the neural network. (In this specification, weights and parameters may be used interchangeably.) The data structure including the weights of the neural network may be stored on a computer-readable medium. The neural network may include multiple weights. The weights may be variable and may be varied by a user or algorithm in order for the neural network to perform a desired function. For example, when one or more input nodes are interconnected to an output node by respective links, the output node may determine a data value to be output from the output node based on values input to the input nodes connected to the output node and weights set to the links corresponding to the respective input nodes. The above-mentioned data structures are merely examples, and the present disclosure is not limited thereto.

本開示が一般的にコンピューティング装置により具現化されることが可能であると前述されているが、当業者であれば本開示が1つ以上のコンピュータ上で実行されることのできるコンピュータ実行可能命令及び/又はその他のプログラムモジュールとの結合及び/又はハードウェアとソフトウェアの組み合わせとして具現化されることが可能であるということをよく理解できるだろう。 While the disclosure has been described above as generally being embodied in a computing device, those skilled in the art will appreciate that the disclosure may also be embodied in combination with computer-executable instructions and/or other program modules capable of being executed on one or more computers and/or as a combination of hardware and software.

一般的に、プログラムモジュールは、特定のタスクを実行したり特定の抽象的なデータ類型を実装するルーティン、プログラム、コンポーネント、データ構造、その他等々を含む。また、当業者なら、本開示の方法がシングルプロセッサー又はマルチプロセッサーのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータはもちろん、パーソナルコンピュータ、ハンドヘルド(handheld)コンピューティング装置、マイクロプロセッサー基盤の家電製品、又はプログラム可能な家電製品、その他等々(これらは、いずれも1つ以上の関連する装置と繋がって動作することができる)をはじめとする、他のコンピュータシステムの構成によって実施されることが可能であることをよく理解できる。 Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Those skilled in the art will also appreciate that the methods disclosed herein can be implemented with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can operate in conjunction with one or more associated devices.

さらに、本開示において説明された実施形態は、あるタスクが通信ネットワークを通じて繋がっている遠隔処理装置によって実行される、分散コンピューティング環境で実施されることが可能である。分散コンピューティング環境において、プログラムモジュールは、ローカルと遠隔メモリ保存装置との両方に位置することが可能である。 Moreover, the embodiments described in this disclosure may be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

コンピュータは、通常、様々なコンピュータ可読媒体を含む。コンピュータによってアクセス可能な媒体は、いずれもコンピュータ可読媒体になり得るが、このようなコンピュータ可読媒体は、揮発性及び非揮発性媒体、一時的(transitory)及び非一時的(non-transitory)媒体、移動式及び非移動式媒体を含む。制限ではなく例として、コンピュータ可読媒体は、コンピュータ可読保存媒体及びコンピュータ可読伝送媒体を含むことが可能である。コンピュータ可読保存媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又はその他のデータのような情報を保存する任意の方法又は技術により実装される揮発性及び非揮発性媒体、一時的及び非一時的媒体、移動式及び非移動式媒体を含む。コンピュータ可読保存媒体は、RAM、ROM、EEPROM、フラッシュメモリ又はその他のメモリ技術、CD-ROM、DVD(digital video disk)又はその他の光ディスク保存装置、磁気カセット、磁気テープ、磁気ディスク保存装置又はその他の磁気保存装置、又はコンピュータによってアクセスでき、情報を保存するために使われることのできる任意のその他の媒体を含むが、これに限定されない。 A computer typically includes a variety of computer-readable media. Any medium accessible by a computer can be a computer-readable medium, including volatile and non-volatile media, transitory and non-transient media, and mobile and non-mobile media. By way of example and not limitation, computer-readable media can include computer-readable storage media and computer-readable transmission media. Computer-readable storage media includes volatile and non-volatile media, transitory and non-transient media, mobile and non-mobile media implemented by any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD (digital video disk) or other optical disk storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, or any other medium that can be accessed by a computer and used to store information.

コンピュータ可読伝送媒体は、通常、搬送波(carrier wave)又はその他の伝送メカニズム(transport mechanism)のような被変調データ信号(modulated data signal)に、コンピュータ可読命令、データ構造、プログラムモジュール又はその他のデータ等を実装し、すべての情報伝達媒体を含む。被変調データ信号という用語は、信号の中に情報をエンコードするように、その信号の特性のうち1つ以上を設定又は変更した信号を意味する。制限ではなく例として、コンピュータ可読伝送媒体は、有線ネットワーク又は直接配線接続(direct-wired connection)のような有線媒体、そして音響、RF、赤外線、その他の無線媒体のような無線媒体を含む。前述の媒体の任意の組み合わせもコンピュータ可読伝送媒体の範囲に含まれるものとする。 Computer-readable transmission media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes all information delivery media. The term modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, computer-readable transmission media include wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above media are also intended to be included within the scope of computer-readable transmission media.

コンピュータ1102を含む本開示の様々な側面を具現する例示的な環境1100が示されており、コンピュータ1102は、処理装置1104、システムメモリ1106およびシステムバス1108を含む。システムバス1108は、システムメモリ1106(これに限定されない)を含むシステムコンポーネントを処理装置1104に連結させる。処理装置1104は、様々な商用プロセッサのうち、任意のプロセッサであってもよい。デュアルプロセッサおよびその他マルチプロセッサ アーキテクチャーも、処理装置1104として利用され得る。 An exemplary environment 1100 embodying various aspects of the present disclosure is shown including a computer 1102, which includes a processing unit 1104, a system memory 1106, and a system bus 1108. The system bus 1108 couples system components including, but not limited to, the system memory 1106 to the processing unit 1104. The processing unit 1104 may be any of a variety of commercially available processors. Dual processors and other multi-processor architectures may also be utilized as the processing unit 1104.

システムバス1108は、メモリバス、周辺装置バス、および様々な商用のバスアーキテクチャーのうち、任意のものを使用するローカルバスに、さらに相互連結され得る複数の類型のバス構造のうち、任意のものであってもよい。システムメモリ1106は、読み出し専用メモリ(ROM)1110およびランダムアクセスメモリ(RAM)1112を含む。基本的な入出力システム(BIOS)は、ROM,EPROM,EEPROMなどの非揮発性メモリ1110に保存され,このBIOSは、起動中のようなときに、コンピュータ1102内の構成要素間に情報を伝送することをサポートする基本的なルーチンを含む。RAM1112は、また、データをキャッシュするための静的RAMなどの高速RAMを含んでもよい。 The system bus 1108 may be any of several types of bus structures that may be further interconnected to a memory bus, a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 1106 includes read only memory (ROM) 1110 and random access memory (RAM) 1112. A basic input/output system (BIOS) is stored in non-volatile memory 1110, such as ROM, EPROM, or EEPROM, and includes basic routines that support transferring information between components within the computer 1102, such as during start-up. The RAM 1112 may also include a high-speed RAM, such as a static RAM, for caching data.

コンピュータ1102は、また、内蔵型ハードディスクドライブ(HDD)1114(例えば、EIDE,SATA)-この内蔵型ハードディスクドライブ1114は、適切なシャシー(不図示)内で外付け型用途で構成され得る-、磁気フロッピーディスクドライブ(FDD)1116(例えば、移動式ディスケット1118から読み取ったり、それに書き込むためのものである)、および光ディスクドライブ1120(例えば、CD-ROMディスク1122を読み取ったり、DVDなどのその他高容量光媒体から読み取ったり、それに書き込むためのものである)を含む。ハードディスクドライブ1114、磁気ディスクドライブ1116および光ディスクドライブ1120は、それぞれハードディスクドライブインターフェース1124、磁気ディスクドライブインターフェース1126および光ドライブインターフェース1128によってシステムバス1108に連結され得る。外付け型ドライブ具現のためのインターフェース1124は、USB(Universal Serial Bus)およびIEEE 1394インターフェース技術のうち、少なくとも1つまたはその両方を含む。 The computer 1102 also includes an internal hard disk drive (HDD) 1114 (e.g., EIDE, SATA) - which may be configured for external use in a suitable chassis (not shown) - a magnetic floppy disk drive (FDD) 1116 (e.g., for reading from and writing to a removable diskette 1118), and an optical disk drive 1120 (e.g., for reading from and writing to a CD-ROM disk 1122 and other high-capacity optical media such as DVDs). The hard disk drive 1114, magnetic disk drive 1116, and optical disk drive 1120 may be coupled to the system bus 1108 by a hard disk drive interface 1124, a magnetic disk drive interface 1126, and an optical drive interface 1128, respectively. The interface 1124 for implementing an external drive includes at least one or both of USB (Universal Serial Bus) and IEEE 1394 interface technologies.

これらのドライブおよびそれと関連したコンピュータ可読媒体は、データ、データ構造、コンピュータで実行可能命な令語、その他等の非揮発性保存を提供する。コンピュータ1102の場合、ドライブおよび媒体は、任意のデータを適切なデジタル形式に保存することに対応する。前述のコンピュータ可読媒体に関する説明が、HDD、移動式磁気ディスク、およびCDまたはDVDなどの移動式光媒体を言及しているが、当業者なら、ジップドライブ(zip drive)、磁気カセット、フラッシュメモリカード、カートリッジ、その他等のコンピュータによって読み出し可能な他の類型の媒体も、例示的な運営環境において使用され得、また、任意のこのような媒体が、本開示の方法を行うためのコンピュータで実行可能な命令語を含むことができることは自明である。 These drives and associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. In the case of computer 1102, the drives and media accommodate the storage of any data in a suitable digital format. While the above description of computer-readable media refers to HDDs, portable magnetic disks, and portable optical media such as CDs or DVDs, those skilled in the art will appreciate that other types of computer-readable media, such as zip drives, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the exemplary operating environment, and that any such media may contain computer-executable instructions for performing the methods of the present disclosure.

運営体制1130、1つ以上のアプリケーションプログラム1132、その他プログラムモジュール1134およびプログラムデータ1136を含む多数のプログラムモジュールが、ドライブおよびRAM1112に保存され得る。運営体制、アプリケーション、モジュールおよび/またはデータの全部またはその一部分がRAM1112にキャッシュされ得る。本開示が、様々な商業的に利用可能な運営体制または運営体制の組み合わせで具現され得ることは自明である。 A number of program modules, including an operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136, may be stored on the drive and in RAM 1112. All or portions of the operating system, applications, modules, and/or data may be cached in RAM 1112. It will be appreciated that the present disclosure may be embodied in a variety of commercially available operating systems or combinations of operating systems.

ユーザは、1つ以上の有線・無線入力装置、例えば、キーボード1138およびマウス1140等のポインティング装置を介して、コンピュータ1102に命令および情報を入力することができる。その他の入力装置(不図示)では、マイク、IRリモコン、ジョイステック、ゲームパッド、スタイラスペン、タッチスクリーン、その他等があり得る。これらおよびその他の入力装置は、システムバス1108に連結されている入力装置インターフェース1142を介して処理装置1104に連結されることがよくあるが、並列ポート、IEEE 1394直列ポート、ゲームポート、USBポート、IRインターフェース、その他等の様々なインターフェースによって連結され得る。 A user may enter commands and information into the computer 1102 through one or more wired or wireless input devices, such as a keyboard 1138 and a pointing device, such as a mouse 1140. Other input devices (not shown) may include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, a touch screen, and the like. These and other input devices are often coupled to the processing unit 1104 through an input device interface 1142 that is coupled to the system bus 1108, but may also be coupled by a variety of interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, and the like.

本開示内容におけるユーザ入力という用語は、ユーザインタフェース内で(あるいはウェブページ内で)行われるユーザの要請に関連した任意の形態のユーザ入力を意味し得る。例えば、ユーザ入力は、ポインタオブジェクトを移動させるユーザ入力を含んでもよい。他の例示として、ユーザ入力は、ユーザインタフェース上での特定のオブジェクトを選択するユーザ入力を含んでもよい。例えば、任意のオブジェクト(例えば、モジュール、タップなど)をタッチあるいはクリックする方式で、当該オブジェクトに対するユーザ入力が行われ得る。選択に関連したユーザ入力が受信される場合、当該入力に応答してユーザインタフェースあるいはウェブページ上に新しいオブジェクトがディスプレイされたり、またはオブジェクトの属性が変更されてディスプレイされ得る。 The term user input in this disclosure may refer to any form of user input associated with a user request made within a user interface (or within a web page). For example, the user input may include a user input moving a pointer object. As another example, the user input may include a user input selecting a particular object on the user interface. For example, a user input may be made to an object (e.g., a module, a tap, etc.) by touching or clicking the object. When a selection-related user input is received, a new object may be displayed on the user interface or web page in response to the input, or attributes of the object may be changed and displayed.

さらに他の例示として、ユーザ入力は、様々な入力手段によって入力された言語、文字、数字および記号などの情報を含んでもよい。ユーザ入力は、前述した例示に限定されるものではなく、マウスカーソル制御、マウスのホイールスクロール、キーボードの方向キー、マウスクリック、タッチなど様々な形態のユーザアクションが可能である。 As yet another example, user input may include information such as language, letters, numbers, and symbols input by various input means. User input is not limited to the above examples, and various forms of user actions are possible, such as mouse cursor control, mouse wheel scrolling, keyboard directional keys, mouse clicks, and touch.

モニター1144または他の類型のディスプレイ装置も、ビデオアダプタ1146等のインターフェースを介してシステムバス1108に連結される。モニター1144に加えて、コンピュータは、一般的にスピーカー、プリンタ、その他等の他の周辺出力装置(不図示)を含む。例えば、前記モニター1144または他の類型のディスプレイ装置は、液晶ディスプレイ(liquid crystal display,LCD)、薄膜トランジスター液晶ディスプレイ(thin film transistor-liquid crystal display,TFT LCD)、有機発光ダイオード(organic light-emitting diode,OLED)、フレキシブルディスプレイ(flexible display)、3次元ディスプレイ(3D display)、電子インクディスプレイ(e-ink display)のうち少なくとも1つを含んでもよい。また、ディスプレイ部は、プロセッサ110で処理されるデータを出力(表示)する。 A monitor 1144 or other type of display device is also coupled to the system bus 1108 via an interface, such as a video adapter 1146. In addition to the monitor 1144, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, and the like. For example, the monitor 1144 or other type of display device may include at least one of a liquid crystal display (LCD), a thin film transistor-liquid crystal display (TFT LCD), an organic light-emitting diode (OLED), a flexible display, a three-dimensional display (3D display), and an e-ink display. The display unit also outputs (displays) data processed by the processor 110.

コンピュータ1102は、有線および/または無線通信を介した遠隔コンピュータ1148等の1つ以上の遠隔コンピュータへの論理的連結を使用してネットワーク化された環境で動作することができる。遠隔コンピュータ1148は、ワークステーション、コンピューティングデバイスコンピュータ、ルーター、パーソナルコンピュータ、携帯用コンピュータ、マイクロプロセッサー基盤娯楽機器、ピア装置またはその他の通常のネットワークノードであってもよく、一般的にコンピュータ1102に対して記述された構成要素のうち、多数またはその全部を含むが、簡略化のために、メモリ保存装置1150のみが示されている。図示の論理的連結は、近距離通信網(LAN)1152および/またはさらに大きいネットワーク、例えば、広域通信網(WAN)1154への有線または無線連結を含む。このようなLANおよびWANネットワーキング環境は、オフィスおよび会社で一般的なものであり、イントラネットなどの全社的コンピュータネットワーク(enterprise-wide computer network)を容易にし、これらすべては、全世界のコンピュータネットワーク、例えば、インターネットに連結され得る。 The computer 1102 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 1148, via wired and/or wireless communications. The remote computer 1148 may be a workstation, a computing device computer, a router, a personal computer, a handheld computer, a microprocessor-based entertainment device, a peer device, or other conventional network node, and typically includes many or all of the components described for the computer 1102, although for simplicity, only a memory storage device 1150 is shown. The illustrated logical connections include wired or wireless connections to a local area network (LAN) 1152 and/or a larger network, such as a wide area network (WAN) 1154. Such LAN and WAN networking environments are commonplace in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which may be coupled to a worldwide computer network, such as the Internet.

LANネットワーキング環境で使用されるとき、コンピュータ1102は、有線および/または無線通信ネットワークインターフェースまたはアダプタ1156を介してローカルネットワーク1152に連結される。アダプタ1156は、LAN1152への有線または無線通信を容易にすることができ、このLAN1152は、また、無線アダプタ1156と通信するために設置されている無線アクセスポイントを含む。WANネットワーキング環境で使用されるとき、コンピュータ1102は、モデム1158を含んでもよいし、または、WAN1154上の通信コンピューティングデバイスに連結されたり、またはインターネットを介したなど、WAN1154を介して通信を設定するその他の手段を有する。内蔵型または外付け型および有線または無線装置であってもよいモデム1158は、直列ポートインターフェース1142を介してシステムバス1108に連結される。ネットワーク化された環境で、コンピュータ1102に対して説明されたプログラムモジュールまたはその一部分が遠隔メモリ/保存装置1150に保存され得る。図示のネットワーク連結は、例示的なものであり、コンピュータの間に通信リンクを設定するその他の手段が使用され得ることは自明である。 When used in a LAN networking environment, the computer 1102 is coupled to the local network 1152 via a wired and/or wireless communication network interface or adapter 1156. The adapter 1156 can facilitate wired or wireless communication to the LAN 1152, which also includes a wireless access point installed to communicate with the wireless adapter 1156. When used in a WAN networking environment, the computer 1102 may include a modem 1158 or have other means for coupling to a communications computing device on the WAN 1154 or for establishing communications over the WAN 1154, such as via the Internet. The modem 1158, which may be internal or external and a wired or wireless device, is coupled to the system bus 1108 via the serial port interface 1142. In a networked environment, the program modules described for the computer 1102, or portions thereof, may be stored in a remote memory/storage device 1150. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between the computers may be used.

コンピュータ1102は、無線通信に配置されて動作する任意の無線装置または個体、例えば、プリンタ、スキャナ、デスクトップおよび/または携帯用コンピュータ、PDA(portable data assistant)、通信衛星、無線で検出可能なタグと関連した任意の装備または場所、および電話と通信をする動作をする。これは、少なくともWi-Fi(登録商標)およびブルートゥース(登録商標)無線技術を含む。したがって、通信は、従来のネットワークのように、予め定義された構造であるか、単純に少なくとも2個の装置間のアドホック通信(ad hoc communication)であってもよい。 The computer 1102 operates to communicate with any wireless device or individual that is arranged and operates in wireless communication, such as printers, scanners, desktop and/or handheld computers, PDAs (portable data assistants), communication satellites, any equipment or location associated with a wirelessly detectable tag, and telephones. This includes at least Wi-Fi® and Bluetooth® wireless technologies. Thus, communication may be of a predefined structure, such as a conventional network, or simply ad hoc communication between at least two devices.

Wi-Fi(登録商標)(Wireless Fidelity)は、有線で連結されず、インターネットなどへの連結を可能にする。Wi-Fi(登録商標)は、このような装置、例えば、コンピュータが、室内外を問わず、すなわち基地局の通話圏内のどこからも、データを送受信できるようにするセル電話のような無線技術である。Wi-Fi(登録商標)ネットワークは、安全で信頼性あり、高速の無線連結を提供するためにIEEE802.11(a、b、g、その他)という無線技術を使用する。コンピュータを互いに、インターネットにおよび有線ネットワーク(IEEE802.3またはイーサネットを使用する)に接続させるために、Wi-Fi(登録商標)が使用され得る。Wi-Fi(登録商標)ネットワークは、非認可2.4および5GHz無線帯域で、例えば、11Mbps(802.11a)または54Mbps(802.11b)データレートで動作したり、両帯域(デュアル帯域)を含む製品で動作することができる。 Wi-Fi® (Wireless Fidelity) allows for connection to the Internet and the like without being wired. Wi-Fi® is a wireless technology like cell phones that allows such devices, e.g., computers, to send and receive data indoors or outdoors, i.e., anywhere within the coverage area of a base station. Wi-Fi® networks use IEEE 802.11 (a, b, g, etc.) radio technology to provide secure, reliable, and fast wireless connections. Wi-Fi® can be used to connect computers to each other, to the Internet, and to wired networks (using IEEE 802.3 or Ethernet). Wi-Fi® networks can operate in the unlicensed 2.4 and 5 GHz radio bands, e.g., at 11 Mbps (802.11a) or 54 Mbps (802.11b) data rates, or with products that include both bands (dual band).

本開示の技術分野における通常の知識を有する者は、情報及び信号が、任意の様々な相異なる技術及び手法を利用して表現されることができるということを理解することが可能である。例えば、上記の説明において参照できるデータ、指示、命令、情報、信号、ビット、シンボル及びチップは、電圧、電流、電磁気派、磁場又は粒子、光学場又は粒子、又はこれらの任意の組み合わせによって表現されることが可能である。 Those of ordinary skill in the art of the present disclosure can appreciate that information and signals can be represented using any of a variety of different technologies and techniques. For example, the data, instructions, commands, information, signals, bits, symbols and chips referred to in the above description can be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

また、コンピュータ1102は、ユーザ端末で具現可能になり得る。したがって、本開示の一実施形態による方法は、ソフトウェアを搭載できるハードウェアとして端末に対して制限なく適用され得る。本開示において説明されるユーザ端末は、携帯電話、スマートフォン(smart phone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェラブルデバイス(wearable device、例えば、ウォッチ型端末(smartwatch)、ガラス型端末(smart glass)、HMD(head mounted display))等が含まれ得る。また、ユーザ端末は、ユーザによってデータ入出力が可能な装置とユーザにデータをディスプレーできる装置および有線または通信が可能な装置を含んでもよいし、これに限定されるものではない。例えば、コンピューティング装置100は、デスクトップ、ノートパソコン、タブレットPC、携帯用端末などが挙げられる。 Furthermore, computer 1102 may be embodied as a user terminal. Therefore, the method according to one embodiment of the present disclosure may be applied without restriction to a terminal as hardware capable of carrying software. The user terminals described in this disclosure may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, head mounted displays (HMDs)), and the like. In addition, the user terminal may include, but is not limited to, a device that allows a user to input and output data, a device that can display data to a user, and a device that can be connected via wire or communication. For example, the computing device 100 may be a desktop, a notebook computer, a tablet PC, a portable terminal, etc.

本開示の技術分野において通常の知識を有する者は、ここに開示されている実施形態に係る説明において取り挙げられた様々な例示的な論理ブロック、モジュール、プロセッサー、手段、回路及びアルゴリズム段階が、電子ハードウェア、(説明の便宜上、ここでは「ソフトウェア」と称する)様々な形のプログラム又は、設計コード、又はこれらすべての結合によって具現化されることができるということを理解することが可能である。ハードウェア及びソフトウェアのこのような相互互換性を明確に説明するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、及び段階について、これらの機能に着目して上記で一般的に説明した。このような機能がハードウェアやソフトウェアとして実装されるかどうかは、特定のアプリケーション及び全体システムに対して加えられる設計上の制限によって決定される。本開示の技術分野において通常の知識を有する者は、個々の特定のアプリケーションについて様々な方法で説明された機能を具現化することができるが、このような具現化の決定は、本開示の範囲を逸脱するものと解釈すべきではない。 Those of ordinary skill in the art of the present disclosure can appreciate that the various exemplary logic blocks, modules, processors, means, circuits, and algorithm steps described in the description of the embodiments disclosed herein can be embodied in electronic hardware, various forms of programs (referred to herein as "software" for ease of description) or design code, or a combination of all of these. To clearly illustrate such compatibility of hardware and software, various exemplary components, blocks, modules, circuits, and steps have been generally described above with a focus on their functionality. Whether such functionality is implemented as hardware or software is determined by the design constraints imposed on the particular application and the overall system. Those of ordinary skill in the art of the present disclosure can embody the described functionality in various ways for each particular application, and such embodying decisions should not be interpreted as departing from the scope of the present disclosure.

ここに示されている様々な実施形態は、方法、装置、又は標準プログラミング及び/又はエンジニアリング技術を使った製造物品(article)によって実現されることが可能である。用語として、「製造物品」は、任意のコンピュータで読み出し可能な装置からアクセス可能なコンピュータプログラム、キャリアー、又は媒体(media)を含む。例えば、コンピュータで読み出し可能な保存媒体は、磁気保存装置(例えば、ハードディスク、フロッピーディスク、磁気ストリップ等)、光学ディスク(例えば、CD、DVD等)、スマートカード及びフラッシュメモリ装置(例えば、EEPROM、カード、スティック、キードライブ等)を含むが、これらに限定されるわけではない。また、ここに示されている様々な保存媒体は、情報を保存するための1つ以上の装置及び/又は他の機械で読み出し可能な媒体を含む。 The various embodiments described herein may be implemented by a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term "article of manufacture" includes a computer program, carrier, or media accessible by any computer readable device. For example, computer readable storage media include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical disks (e.g., CDs, DVDs, etc.), smart cards, and flash memory devices (e.g., EEPROMs, cards, sticks, key drives, etc.). Additionally, the various storage media described herein include one or more devices and/or other machine-readable media for storing information.

ここに示されたプロセスにおける複数の段階の特定の順番又は階層構造は、例示的なアプローチの一例であることを理解されたい。設計上の優先順位に基づき、本開示の範囲内で、プロセスにおける段階の特定の順番又は階層構造が再配列されることができることを理解されたい。添付の方法請求項は、サンプルとしての順番で、様々な段階のエレメントを提供するが、示された特定の順番又は階層構造に限定されることを意味するわけではない。 It should be understood that the particular order or hierarchy of the process stages depicted herein is an example of an exemplary approach. Based on design priorities, it should be understood that the particular order or hierarchy of the process stages may be rearranged within the scope of this disclosure. The accompanying method claims provide elements of the various stages in a sample order, but are not meant to be limited to the particular order or hierarchy depicted.

ここに示された実施形態に関する説明は、任意の本開示の技術分野において通常の知識を有する者が、本開示を利用したり又は実施できるように提供される。このような実施形態に対する様々な変形は、本開示の技術分野において通常の知識を有する者には明確に理解できるものであり、ここに定義された一般的な原理は、本開示の範囲を逸脱することなく他の実施形態に適用されることが可能である。従って、本開示はここに示す実施形態によって限定されるものではなく、ここに示す原理及び新規な特徴と一貫する最広義の範囲で解釈されるべきである。 The description of the embodiments shown herein is provided to enable any person of ordinary skill in the art to which the disclosure pertains to the present disclosure to use or practice the present disclosure. Various modifications to such embodiments will be apparent to those of ordinary skill in the art to which the disclosure pertains, and the general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present disclosure is not intended to be limited by the embodiments shown herein, but is to be accorded the broadest scope consistent with the principles and novel features disclosed herein.

Claims (5)

コンピューティング装置によって行われる、データベースに対するLOV(List of View)キャッシュ生成方法であって、
データベースに対して入力された第1構文を獲得する段階と、
前記第1構文から既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出する段階と、
前記第1構文から算出されたキャッシュ生成基盤構文によるクエリー結果がキャッシュされた、前記第1構文に対するLOVキャッシュを生成する段階と、を含み、
前記第1構文に対するLOVキャッシュを生成する段階は、
前記キャッシュ生成基盤構文を実行することによって、第1キャッシュデータを生成する段階と、
前記第1キャッシュデータから、クエリーに指定された特定列の値を比較し、特定のアルゴリズムを使用してデータを昇順に整列すべきフィールドを選択する段階と、
前記第1キャッシュデータを前記昇順に整列することによって、第2キャッシュデータを生成する段階;を含み、
前記第1キャッシュデータを前記昇順に整列することによって、第2キャッシュデータを生成する段階は、
前記昇順に整列すべきフィールドに含まれたデータの種類の個数が既定の個数未満の場合に行われる、方法。
1. A method for generating a list of views (LOV) cache for a database, the method being performed by a computing device, comprising:
obtaining a first syntax input to a database;
generating a cache generation based syntax by removing predefined filtering syntax elements from the first syntax;
generating an LOV cache for the first syntax in which a query result based on a cache generation-based syntax calculated from the first syntax is cached ;
The step of generating an LOV cache for the first syntax comprises:
generating first cache data by executing the cache generation base syntax;
selecting a field from the first cache data in which to sort the data in ascending order using a specific algorithm by comparing values of a specific column specified in the query;
generating second cache data by arranging the first cache data in the ascending order;
The step of generating second cache data by sorting the first cache data in the ascending order includes:
The method is performed when the number of types of data contained in the field to be sorted in ascending order is less than a predetermined number .
前記フィルタリング構文要素は、
レコード重複除去、レコードグループ化、レコード整列またはテーブル結合を行う、請求項1に記載の方法。
The filtering syntax element is:
The method of claim 1 , further comprising: performing record deduplication, record grouping, record sorting, or table joining.
前記第1構文を獲得した後、フィルタリング構文要素を含む第2構文を得る段階と、
前記第1構文に対するLOVキャッシュが前記第2構文が抽出するデータを含む場合、前記第1構文に対するLOVキャッシュに基づいて、前記第2構文に対する応答を生成する段階と、をさらに含む、請求項1に記載の方法。
obtaining a second syntax including a filtering syntax element after obtaining the first syntax;
2. The method of claim 1, further comprising: if an LOV cache for the first syntax contains data that the second syntax extracts, generating a response to the second syntax based on an LOV cache for the first syntax.
コンピュータ可読保存媒体に保存されたコンピュータプログラムであって、前記コンピュータプログラムは、1つ以上のプロセッサによって実行される場合、前記1つ以上のプロセッサが、データベースに対するLOV(List of View)キャッシュを生成するための動作を行うようにし、前記動作は、
データベースに対し入力された第1構文を獲得する動作と、
前記第1構文から既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出する動作と、
前記第1構文から算出されたキャッシュ生成基盤構文によるクエリー結果がキャッシュされた、前記第1構文に対するLOVキャッシュを生成する動作と、
前記第1構文に対するLOVキャッシュを生成する動作は、
前記キャッシュ生成基盤構文を実行することによって、第1キャッシュデータを生成する動作と、
前記第1キャッシュデータから、クエリーに指定された特定列の値を比較し、特定のアルゴリズムを使用してデータを昇順に整列すべきフィールドを選択する動作と、
前記第1キャッシュデータを前記昇順に整列することによって、第2キャッシュデータを生成する動作;を含み、
前記第1キャッシュデータを前記昇順に整列することによって、第2キャッシュデータを生成する動作は、
前記昇順に整列すべきフィールドに含まれたデータの種類の個数が既定の個数未満の場合に行われる、コンピュータ可読保存媒体に保存されたコンピュータプログラム。
A computer program stored on a computer-readable storage medium, the computer program, when executed by one or more processors, causing the one or more processors to perform operations for generating a list of view (LOV) cache for a database, the operations comprising:
an operation of acquiring a first syntax input to a database;
calculating a cache generation-based syntax by removing predefined filtering syntax elements from the first syntax;
generating an LOV cache for the first syntax in which a query result based on a cache generation base syntax calculated from the first syntax is cached ;
The act of generating an LOV cache for the first syntax includes:
generating first cache data by executing the cache generation base syntax;
selecting a field from the first cache data in which to sort data in ascending order using a specific algorithm by comparing values of a specific column specified in the query;
generating second cache data by arranging the first cache data in the ascending order;
The operation of generating second cache data by sorting the first cache data in the ascending order includes:
A computer program stored on a computer-readable storage medium , the computer program being executed when the number of types of data included in the field to be sorted in ascending order is less than a predetermined number .
コンピューティング装置であって、
少なくとも1つのプロセッサと、
メモリと、を含み、
前記少なくとも1つのプロセッサは、データベースに対するLOV(List of View)キャッシュを生成するために、
データベースに対し入力された第1構文を獲得し;
前記第1構文から既定のフィルタリング構文要素を除くことによって、キャッシュ生成基盤構文を算出し;および
前記第1構文から算出されたキャッシュ生成基盤構文によるクエリー結果がキャッシュされた、前記第1構文に対するLOVキャッシュを生成するように構成され、
前記LOVキャッシュを生成する構成は、
前記キャッシュ生成基盤構文を実行することによって、第1キャッシュデータを生成する構成と、
前記第1キャッシュデータから、クエリーに指定された特定列の値を比較し、特定のアルゴリズムを使用してデータを昇順に整列すべきフィールドを選択する構成と、
前記第1キャッシュデータを前記昇順に整列することによって、第2キャッシュデータを生成する構成;を含み、
前記第1キャッシュデータを前記昇順に整列することによって、第2キャッシュデータを生成する構成は、
前記昇順に整列すべきフィールドに含まれたデータの種類の個数が既定の個数未満の場合に行われる、装置。
1. A computing device comprising:
At least one processor;
A memory,
The at least one processor includes:
Obtaining a first syntax input to a database;
a cache-based syntax is calculated by removing predefined filtering syntax elements from the first syntax; and a LOV cache is generated for the first syntax, in which a query result according to the cache-based syntax calculated from the first syntax is cached ;
The configuration for generating the LOV cache includes:
executing the cache generation base syntax to generate first cache data;
A configuration in which a value of a specific column specified in a query is compared from the first cache data and a field in which data should be sorted in ascending order using a specific algorithm is selected;
generating second cache data by sorting the first cache data in the ascending order;
The configuration for generating the second cache data by sorting the first cache data in the ascending order includes:
This is performed when the number of types of data contained in the field to be sorted in ascending order is less than a predetermined number .
JP2023215905A 2022-12-29 2023-12-21 How cache is generated for a database Active JP7675792B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220189440A KR20240106535A (en) 2022-12-29 2022-12-29 Method for creating database cache
KR10-2022-0189440 2022-12-29

Publications (2)

Publication Number Publication Date
JP2024096026A JP2024096026A (en) 2024-07-11
JP7675792B2 true JP7675792B2 (en) 2025-05-13

Family

ID=91810385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023215905A Active JP7675792B2 (en) 2022-12-29 2023-12-21 How cache is generated for a database

Country Status (2)

Country Link
JP (1) JP7675792B2 (en)
KR (1) KR20240106535A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119314371A (en) * 2024-09-29 2025-01-14 中国科学院理化技术研究所 Operation training method, device, equipment and storage medium for 3000L/h helium liquefier

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059492A1 (en) 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
JP2015197909A (en) 2014-04-02 2015-11-09 株式会社 ビーアイマトリックス Online analytical processing method using 2 level query by sql parsing and result cashing for processing large capacity data
JP2017526027A (en) 2014-05-27 2017-09-07 華為技術有限公司Huawei Technologies Co.,Ltd. Clustering storage method and apparatus
US10158709B1 (en) 2015-06-19 2018-12-18 Amazon Technologies, Inc. Identifying data store requests for asynchronous processing
CN114461708A (en) 2021-12-24 2022-05-10 苏州创力波科技有限公司 Method and system for governing and displaying general data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670798B1 (en) 2004-12-17 2007-01-17 한국전자통신연구원 Database cache system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059492A1 (en) 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
JP2015197909A (en) 2014-04-02 2015-11-09 株式会社 ビーアイマトリックス Online analytical processing method using 2 level query by sql parsing and result cashing for processing large capacity data
JP2017526027A (en) 2014-05-27 2017-09-07 華為技術有限公司Huawei Technologies Co.,Ltd. Clustering storage method and apparatus
US10158709B1 (en) 2015-06-19 2018-12-18 Amazon Technologies, Inc. Identifying data store requests for asynchronous processing
CN114461708A (en) 2021-12-24 2022-05-10 苏州创力波科技有限公司 Method and system for governing and displaying general data

Also Published As

Publication number Publication date
KR20240106535A (en) 2024-07-08
JP2024096026A (en) 2024-07-11

Similar Documents

Publication Publication Date Title
US12229642B2 (en) Efficient duplicate detection for machine learning data sets
US11256852B2 (en) Converting portions of documents between structured and unstructured data formats to improve computing efficiency and schema flexibility
CA2953969C (en) Interactive interfaces for machine learning model evaluations
US9507867B2 (en) Discovery engine
US10061758B2 (en) Tabular widget with mergable cells
CN111666383A (en) Information processing method, information processing device, electronic equipment and computer readable storage medium
JP7675792B2 (en) How cache is generated for a database
US9430528B2 (en) Grid queries
WO2021196470A1 (en) Information pushing method and apparatus, device, and storage medium
US11567908B1 (en) Virtual storage interface
CN113157964A (en) Method and device for searching data set through voice and electronic equipment
JP7826275B2 (en) Methods for loading datasets containing images
JP7678437B2 (en) METHOD FOR LOADING DATASETS INTO FORM
CN114154072A (en) Search method, search device, electronic device, and storage medium
KR20240102493A (en) Method for indexing to improve database statment performance
CN115658901B (en) Method, apparatus, device and computer readable medium for data classification
CN112214509A (en) Data retrieval method, system, terminal device and storage medium
JP2025542064A (en) System and method for domain-based user-customized database generation through question and intent classification
KR20250076395A (en) Database comparison system by question classification and questioner classification and method thereof
CN116775649A (en) A data classification storage method, device, computer equipment and storage medium
JP2026502033A (en) Apparatus, system and method for providing query-based data services
KR20250076384A (en) Meta creation and database optimization system based on questioner information and method thereof
CN120633598A (en) Method and device for generating long text
CN116483954A (en) Data processing method, device, equipment and storage medium
CN111782949A (en) Method and apparatus for generating information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20241225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250408

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: 20250424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250428

R150 Certificate of patent or registration of utility model

Ref document number: 7675792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150