JP2012058836A - Distributed processing system and distributed processing method - Google Patents

Distributed processing system and distributed processing method Download PDF

Info

Publication number
JP2012058836A
JP2012058836A JP2010198978A JP2010198978A JP2012058836A JP 2012058836 A JP2012058836 A JP 2012058836A JP 2010198978 A JP2010198978 A JP 2010198978A JP 2010198978 A JP2010198978 A JP 2010198978A JP 2012058836 A JP2012058836 A JP 2012058836A
Authority
JP
Japan
Prior art keywords
mesh
map
point
meshes
key
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.)
Granted
Application number
JP2010198978A
Other languages
Japanese (ja)
Other versions
JP5171904B2 (en
Inventor
Takaaki Nishioka
孝章 西岡
Makoto Nagata
誠 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2010198978A priority Critical patent/JP5171904B2/en
Publication of JP2012058836A publication Critical patent/JP2012058836A/en
Application granted granted Critical
Publication of JP5171904B2 publication Critical patent/JP5171904B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a distributed processing system and a distributed processing method capable of performing distributed processing scalable in units of mesh optimal for distributed processing without being conscious of the position or scale of a map element.SOLUTION: A distributed processing system (1) includes: zone acquisition means (22) for reading range designation information indicating a closed zone occupied by a zone map element on a map; point element acquisition means (32) for reading zone designation information indicating a point occupied by a point map element on the map; mesh specification means (23, 33) for specifying a mesh, of plural meshes, the mesh including at least a part of zone designation information of the zone map element and point map element; data generation means (24, 34) for generating the same number of KEY-VALUE data pieces (where KEY is a specified mesh, and VALUE is read zone designation information) as the number of acquired meshes; and execution processing distribution means (25, 36) for causing plural servers to execute processing on the generated KEY-VALUE data in units of mesh.

Description

本発明は、所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を行う分散処理システム及び分散処理方法に関する。   The present invention relates to a distributed processing system and a distributed processing method for performing distributed processing of map data constituting a map that can be partitioned into a plurality of predetermined meshes.

近年のWebページの爆発的な増加に伴い、ネットワーク上に存在する情報量は、膨大なものとなっている。このようなネットワーク上の膨大な情報量に対する処理を行うためのソフトウェアフレームワークとして、MapReduceが知られている(例えば、非特許文献1)。   With the explosion of web pages in recent years, the amount of information existing on the network has become enormous. MapReduce is known as a software framework for performing processing for such an enormous amount of information on a network (for example, Non-Patent Document 1).

西田圭介(著)“Googleを支える技術 巨大システムの内側の世界”株式会社技術評論社 発行、2008年4月25日、第4章Keisuke Nishida (Author) “Technology that Supports Google” World inside a giant system, published by Technical Review Co., Ltd., April 25, 2008, Chapter 4

ここで、MapReduceは、多数のコンピューターの集合であるコンピュータ・クラスターを用いて並列処理させるためのフレームワークである。MapReduceは、所定の処理を行うために、処理の対象となる入力データを複数の断片に分割して複数のコンピューターに割り当て、各コンピューターにおいて、Map定義に従った処理を並列に行ってKEY−VALUE型のデータを中間ファイルとして生成し、当該KEY−VALUE型のデータをソートして同一のKEYで束ねてKEY毎に当該中間ファイルを処理するコンピュータを割り当てるMapタスクと、割り当てられた各コンピューターにおいて、Reduce定義に従った処理を並列に行って処理結果を集約し、当該所定の処理の結果を得るReduceタスクとからなる。MapReduceによれば、膨大な情報量に対する分散処理をMapタスクとReduceタスクとに分割して実現している。
また、近年では、このMapReduceを実装したオープンソースソフトウェアとしてHadoopが知られており、Hadoopを用いることで大規模分散処理を誰でも容易に実行可能となっている。
Here, MapReduce is a framework for performing parallel processing using a computer cluster that is a set of many computers. In order to perform predetermined processing, MapReduce divides input data to be processed into a plurality of fragments and assigns them to a plurality of computers. In each computer, processing according to the Map definition is performed in parallel to perform KEY-VALUE. A Map task that generates type data as an intermediate file, sorts the KEY-VALUE type data, bundles them with the same KEY, and assigns a computer that processes the intermediate file for each KEY, and each assigned computer, It consists of a Reduce task that performs processing according to the Reduce definition in parallel, aggregates the processing results, and obtains the result of the predetermined processing. According to MapReduce, distributed processing for an enormous amount of information is realized by dividing it into a Map task and a Reduce task.
In recent years, Hadoop is known as open source software that implements MapReduce, and anyone can easily perform large-scale distributed processing by using Hadoop.

ところで、近年では、インターネット上で地図情報の配信が盛んに行われており、例えば、地図上で店舗名等を検索すると、当該店舗の属する地図を表示するサービス等が知られている。このようなサービスは、地図を形成するためのインデックスデータを適切に生成することで実現される。ここで、地図は、地図を緯度(N)経度(E)に区画可能であり、インターネット上の地図は緯度経度に区画された複数のメッシュで形成されている。そのため、インデックスの生成を複数のコンピュータ(サーバ)で分散して行うためには、インデックスデータの生成をメッシュ毎(メッシュ単位)に行うことが好ましい。   Incidentally, in recent years, map information has been actively distributed on the Internet. For example, when a store name or the like is searched on a map, a service that displays a map to which the store belongs is known. Such a service is realized by appropriately generating index data for forming a map. Here, the map can divide the map into latitude (N) longitude (E), and the map on the Internet is formed of a plurality of meshes divided into latitude and longitude. For this reason, in order to distribute the index generation among a plurality of computers (servers), it is preferable to generate the index data for each mesh (mesh unit).

しかしながら、地図上で一定の範囲を持った地図要素(例えば、建物、自然物、地域等)は、複数のメッシュにまたがる場合があり、このような場合、単にメッシュ毎に分散したのでは、適切なインデックスデータを生成することはできない。   However, map elements with a certain range on the map (for example, buildings, natural objects, regions, etc.) may span multiple meshes. In such a case, it is appropriate to simply distribute each mesh. Index data cannot be generated.

本発明は、複数のメッシュにまたがる地図要素を含む地図データについての処理を、当該地図要素の位置、大きさを意識することなく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことのできる分散処理システム及び分散処理方法を提供することを目的とする。   The present invention performs processing for map data including map elements that span a plurality of meshes, and is capable of scaling in units of meshes that are optimal for distributed processing, without regard to the position and size of the map elements. An object of the present invention is to provide a distributed processing system and a distributed processing method.

本発明者らは、メッシュ単位毎に分散処理するために好適なKEY−VALUE型のデータセットの生成方法を新たに開発することで、本発明を完成するに至った。なお、以下において「シャッフル」とは、生成したKEY−VALUE型のデータセットを整理し、当該データセットをKEYでソートする処理を含む。   The present inventors have completed the present invention by newly developing a method for generating a KEY-VALUE type data set suitable for performing distributed processing for each mesh unit. In the following, “shuffle” includes processing of organizing the generated KEY-VALUE type data set and sorting the data set by KEY.

(1) 所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理システムであって、前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御手段と、前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得手段と、前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得手段と、前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得手段が読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得手段が読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定手段と、特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定手段が特定したメッシュの数だけ生成するデータ生成手段と、生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定手段が特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分け手段と、を備える分散処理システム。   (1) Parallel processing of map data constituting a map that can be partitioned into a plurality of predetermined meshes by assigning one of a plurality of servers connected via a network to each predetermined plurality of meshes by shuffling In the distributed processing system to be executed, at least a part of the plurality of servers includes the map data, mesh identification data for identifying each of the predetermined plurality of meshes, and a position indicating the position of the mesh on the map Storage control means for associating and storing information in the storage means, area acquisition means for reading out the range designation information representing the closed area occupied by the area map element included in the map on the map, and the map Point element acquisition means for reading range designation information representing points where the included point map elements are located on the map from the storage means; and The mesh identification data and the position information are read out from the storage unit, and the mesh including at least a part of the closed region represented by the range designation information read out by the region acquisition unit out of the plurality of meshes and the point element acquisition KEY-VALUE type data in which mesh specifying means for specifying a mesh including the point represented by the range designation information read by the means, mesh identification data for identifying the identified mesh is set to KEY, and the range designation information is set to VALUE. Using the data generation means for generating the number of meshes specified by the mesh specification means, and the generated KEY-VALUE type data, the processing relating to the positional relationship between the area map elements and the point map elements is performed with the mesh specification. For each mesh specified by the means, one of the plurality of servers is shuffled. A distributed processing system comprising: an execution processing distribution unit that allocates and executes in parallel.

(1)の分散処理システムによれば、メッシュ特定手段は、分散処理の対象となる閉領域の範囲指定情報の少なくとも一部を含むメッシュ及び点の範囲指定情報を含むメッシュを特定する。データ生成手段は、特定したメッシュの識別データをKEY、範囲指定情報をVALUEとするKEY−VALUE型のデータセットを、メッシュ特定手段が特定したメッシュの数だけ生成する。そして、実行処理振り分け手段は、生成したKEY−VALUE型のデータセットをシャッフルすることでKEYでソートし、KEY−VALUE型のデータセットに対する処理をメッシュ特定手段が特定したメッシュ毎に複数のサーバに割り当てて実行させる。   According to the distributed processing system of (1), the mesh specifying unit specifies a mesh including at least a part of the range specifying information of the closed region to be distributed and a mesh including the point range specifying information. The data generation means generates KEY-VALUE type data sets in which the identification data of the identified mesh is KEY and the range designation information is VALUE, as many as the number of meshes specified by the mesh specification means. Then, the execution processing distribution unit sorts the generated KEY-VALUE type data set by KEY by shuffling, and performs processing on the KEY-VALUE type data set to a plurality of servers for each mesh specified by the mesh specifying unit. Assign and execute.

これにより、KEY−VALUE型のデータセット、特に分散処理の対象となる閉領域の範囲指定情報が、処理が振り分けられた複数のサーバの全てに対し提供されるため、メッシュ単位毎に分散処理するために好適なKEY−VALUE型のデータセットを生成することができる。その結果、閉領域が複数のメッシュにまたがる場合であっても、閉領域の位置、大きさを意識することなく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことができる。なお、KEY−VALUE型のデータセットはシャッフルによりKEYでソートされているので、分散処理システムは、同一のKEYを持つデータセットについて、同一のサーバで領域地図要素及び点地図要素の位置関係に関する処理を並列実行させることができる。   As a result, the KEY-VALUE type data set, in particular, the range specification information of the closed region to be distributed is provided to all of the plurality of servers to which the processing is distributed, so distributed processing is performed for each mesh unit. Therefore, a suitable KEY-VALUE type data set can be generated. As a result, even when the closed region extends over a plurality of meshes, it is possible to perform distributed processing that can be scaled in units of meshes that are optimal for distributed processing, without being aware of the position and size of the closed region. Since the KEY-VALUE type data set is sorted by KEY by shuffle, the distributed processing system performs processing related to the positional relationship between the area map element and the point map element on the same server for the data set having the same KEY. Can be executed in parallel.

(2) 前記メッシュ特定手段は、前記範囲指定情報に含まれる任意の地点情報が属する基点メッシュを特定する基点メッシュ特定手段と、前記基点メッシュ特定手段が特定した前記基点メッシュに隣接する隣接メッシュを特定する隣接メッシュ特定手段と、前記隣接メッシュ特定手段が特定した前記隣接メッシュに前記範囲指定情報が示す前記閉領域の少なくとも一部が含まれるか否かを判定する包含判定手段と、を備える(1)に記載の分散処理システム。   (2) The mesh specifying unit includes a base point mesh specifying unit that specifies a base point mesh to which arbitrary point information included in the range specifying information belongs, and an adjacent mesh adjacent to the base point mesh specified by the base point mesh specifying unit. And an inclusion determining unit that determines whether or not at least part of the closed region indicated by the range designation information is included in the adjacent mesh specified by the adjacent mesh specifying unit. The distributed processing system according to 1).

(2)の分散処理システムによれば、範囲指定情報の任意の地点情報が属する基点メッシュを特定してから、この基点メッシュに隣接するメッシュのうち範囲指定情報の少なくとも一部が含まれるメッシュを、範囲指定情報の少なくとも一部を含むメッシュと判定する。これにより、閉領域が複数のメッシュにまたがる場合であっても、当該複数のメッシュを適切に取得することができる。なお、「隣接する」とは、当該メッシュの周囲8個のメッシュだけでなく、範囲指定情報の大きさによっては、周囲24個、49個・・・等のメッシュも含む。   According to the distributed processing system of (2), after specifying a base point mesh to which arbitrary point information of the range designation information belongs, a mesh including at least a part of the range designation information among meshes adjacent to the base point mesh is included. The mesh is determined to include at least a part of the range designation information. Thereby, even when the closed region extends over a plurality of meshes, the plurality of meshes can be appropriately acquired. Note that “adjacent” includes not only 8 meshes around the mesh but also meshes of 24, 49, etc., depending on the size of the range designation information.

(3) 所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理方法であって、前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御ステップと、前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得ステップと、前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得ステップと、前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得ステップで読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得ステップで読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定ステップと、特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定ステップが特定したメッシュの数だけ生成するデータ生成ステップと、生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定ステップが特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分けステップと、を備える分散処理システム。   (3) Parallel processing for distributing map data constituting a map that can be partitioned into a plurality of predetermined meshes by assigning one of a plurality of servers connected via a network to each predetermined plurality of meshes by shuffling A distributed processing method to be executed, wherein at least a part of the plurality of servers includes the map data, mesh identification data for respectively identifying the predetermined plurality of meshes, and a position indicating the position of the mesh on the map A storage control step for associating and storing information in the storage means, an area acquisition step for reading out range designation information representing the closed area occupied by the area map element included in the map on the map from the storage means, and the map A point element acquisition step of reading out range designation information representing a point where the included point map element is located on the map from the storage means The mesh identification data and the position information are read from the storage means, and the mesh including at least a part of the closed region represented by the range designation information read in the region acquisition step among the plurality of meshes and the point KEY-VALUE that specifies a mesh including the point represented by the range designation information read in the element acquisition step, mesh identification data for identifying the identified mesh is KEY, and the range designation information is VALUE. Using the data generation step for generating the type data as many as the number of meshes specified by the mesh specification step, and the generated KEY-VALUE type data, the processing relating to the positional relationship between the area map element and the point map element is performed as described above. For each mesh identified by the mesh identification step A distributed processing system comprising: an execution processing distribution step in which one of the plurality of servers is allocated by shuffle and executed in parallel.

(3)の分散処理方法によれば、(1)の分散処理システムと同様の効果を奏する。   According to the distributed processing method of (3), the same effects as those of the distributed processing system of (1) are obtained.

本発明によれば、地図要素の位置、大きさを意識することなく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことができる。   According to the present invention, it is possible to perform distributed processing that can be scaled in units of meshes optimal for distributed processing, without being aware of the position and size of map elements.

本発明の実施形態の一例に係る分散処理システムの概要を示す図である。It is a figure which shows the outline | summary of the distributed processing system which concerns on an example of embodiment of this invention. 本発明の実施形態の一例に係る分散処理システムの機能構成を示す図である。It is a figure which shows the function structure of the distributed processing system which concerns on an example of embodiment of this invention. 本発明の実施形態の一例に係る記憶手段を示す図である。It is a figure which shows the memory | storage means which concerns on an example of embodiment of this invention. 本発明の実施形態の一例に係るメッシュ特定手段の処理の流れを示す概念図である。It is a conceptual diagram which shows the flow of a process of the mesh specification means which concerns on an example of embodiment of this invention. 本発明の実施形態の一例に係る分散処理システムの処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process of the distributed processing system which concerns on an example of embodiment of this invention. 本発明の実施形態の一例に係る分散処理システムの処理の流れを示す概念図である。It is a conceptual diagram which shows the flow of a process of the distributed processing system which concerns on an example of embodiment of this invention. 本発明の実施形態の一例に係る分散処理システムにより生成されるインデックスDBを示す図である。It is a figure which shows index DB produced | generated by the distributed processing system which concerns on an example of embodiment of this invention.

以下、本発明の実施形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

[分散処理システム1の概要]
はじめに、図1を参照して本実施形態の分散処理システム1の概要について説明する。
[Overview of Distributed Processing System 1]
First, an overview of the distributed processing system 1 of the present embodiment will be described with reference to FIG.

分散処理システム1は、図1(1)に示すように、マスタサーバMと複数のワーカーサーバWとを含んで構成される。分散処理システム1は、前述のMapReduceを実装したオープンソースソフトウェアであるHadoop等を用いて実現することができる。
マスタサーバMは、所定の処理の対象となる入力データを多数の断片に区切り、ワーカーサーバWを割り当ててそれぞれについて処理を行うようにワーカーサーバWに要求を行う。ワーカーサーバWは、マスタサーバMからの要求を受け、Map定義に従って入力データからKEY−VALUE型のデータセットを中間ファイルとして生成するとともに、生成したKEY−VALUE型のデータセットをKEY毎にソートし、その処理の完了をマスタサーバMに通知する。そしてマスタサーバMは、当該KEY毎にワーカーサーバWを割り当ててそれぞれについて処理を行うようにワーカーサーバWに要求を行う。ワーカーサーバWは、マスタサーバMからの要求を受け、Reduce定義に従って、それぞれがKEY−VALUE型のデータセットについての処理を行い、その結果を集約し、位置関係に関する所定の処理、例えば、インデックスデータの生成処理の結果を得る。
As shown in FIG. 1A, the distributed processing system 1 includes a master server M and a plurality of worker servers W. The distributed processing system 1 can be realized using Hadoop, which is open source software that implements the above-described MapReduce.
The master server M makes a request to the worker server W to divide input data to be subjected to predetermined processing into a large number of fragments, assign the worker server W, and perform processing for each. The worker server W receives a request from the master server M, generates a KEY-VALUE type data set from the input data as an intermediate file according to the Map definition, and sorts the generated KEY-VALUE type data set for each KEY. The completion of the process is notified to the master server M. Then, the master server M requests the worker server W to allocate the worker server W for each KEY and perform processing for each. The worker server W receives a request from the master server M, performs processing for each KEY-VALUE type data set according to the Reduce definition, aggregates the results, and performs predetermined processing relating to the positional relationship, for example, index data. The result of the generation process is obtained.

本実施形態では、図1(2)に示す地図A(メッシュA1,A2,A3,A4,A5,A6を含む)の領域地図要素100に対する処理を複数のワーカーサーバWで行うこととし、その一例として、領域地図要素100と点地図要素110との関係を判定することとしている。ここで、領域地図要素100はビルや、駅から所定の距離以内の地域等のようなある一定の範囲を有する地図要素であり、点地図要素110はレストラン等のような地図上で点として扱われる地図要素である。本実施形態では、点地図要素110が領域地図要素100に包含されるか否か、一例としては、あるレストランがあるビル内に存在するか否かを判定する処理を、複数のワーカーサーバWが分散して行う。   In the present embodiment, the processing for the area map element 100 of the map A (including meshes A1, A2, A3, A4, A5, and A6) shown in FIG. The relationship between the area map element 100 and the point map element 110 is determined. Here, the area map element 100 is a map element having a certain range such as a building or an area within a predetermined distance from the station, and the point map element 110 is treated as a point on a map such as a restaurant. Map element. In the present embodiment, a process for determining whether or not the point map element 110 is included in the area map element 100, for example, whether or not a certain restaurant exists in a certain building is performed by a plurality of worker servers W. Distributed.

[分散処理システム1の機能構成]
次に、図2を参照して、分散処理システム1の機能構成について説明する。
[Functional configuration of distributed processing system 1]
Next, the functional configuration of the distributed processing system 1 will be described with reference to FIG.

分散処理システム1は、メッシュを識別するメッシュID(メッシュ識別データ)をKEYとするKEY−VALUE型のデータセットを生成する領域地図要素処理2及び点地図要素処理3(Mapタスク)と、生成したKEY−VALUE型のデータセットに対する処理をメッシュ毎に(メッシュ単位で)行う領域内外判定処理4(Reduceタスク)と、を実行する。なお、領域地図要素処理2、点地図要素処理3及び領域内外判定処理4は、ワーカーサーバWが実行するが、個々のワーカーサーバWは、領域地図要素処理2、点地図要素処理3及び領域内外判定処理4の何れの処理を実行するサーバとしても機能することが可能で、マスタサーバMが必要に応じて振り分ける。そのため、1つのワーカーサーバWが、領域地図要素処理2だけでなく点地図要素処理3を実行する場合もあり、また、領域内外判定処理4を実行する場合もある。また、マスタサーバM自身は、ワーカーサーバWとしても機能し得る。   The distributed processing system 1 generates an area map element process 2 and a point map element process 3 (Map task) that generate a KEY-VALUE type data set with a mesh ID (mesh identification data) for identifying a mesh as KEY. A region inside / outside determination process 4 (Reduce task) for performing processing on a KEY-VALUE type data set for each mesh (on a mesh basis) is executed. The area map element process 2, the point map element process 3 and the area inside / outside determination process 4 are executed by the worker server W, but each worker server W has the area map element process 2, the point map element process 3 and the area inside / outside area. It can function as a server that executes any one of the determination processes 4, and the master server M distributes it as necessary. Therefore, one worker server W may execute not only the area map element process 2 but also the point map element process 3, and may execute the area inside / outside determination process 4. Further, the master server M itself can function as the worker server W.

領域地図要素処理2を実行するため、分散処理システム1は、記憶制御手段21と、領域取得手段22と、メッシュ特定手段23と、データ生成手段24と、実行処理振り分け手段25と、を含んで構成される。   In order to execute the area map element processing 2, the distributed processing system 1 includes a storage control means 21, an area acquisition means 22, a mesh identification means 23, a data generation means 24, and an execution processing distribution means 25. Composed.

記憶制御手段21は、分散処理システム1の任意の場所に設けられた記憶手段5を制御し、記憶手段5に所定の情報を記憶する。
ここで、記憶手段5は、メッシュDB51と地図要素DB52とを含んで構成される。メッシュDB51は、図3(1)に示すように、メッシュを識別するメッシュIDに対応付けて、当該メッシュの地図上の位置を示す位置情報を含む地図情報を記憶する。なお、メッシュとは、地図を緯度経度に区画したものである。地図要素DB52は、図3(2)に示すように、地図要素IDに対応付けて、範囲指定情報及び地図要素名を含む地図要素情報を記憶する。なお、地図要素は、点要素の場合もあり、四角形の範囲を有する地図要素の場合もあり、更には多角形の範囲を有する地図要素の場合もある。このような地図要素の範囲指定情報の指定は、任意に行うことができるが、本実施形態では地図要素の頂点の緯度経度を指定することで、地図要素の範囲指定情報を指定することとしている。
記憶制御手段21は、例えば、メッシュIDと当該メッシュIDの位置情報とを関連付けて記憶手段5のメッシュDB51に記憶する。
なお、ワーカーサーバWが各種情報を読み出す先を特定可能であれば、当該ワーカーサーバW自体が記憶手段5を備える必要はない。記憶手段5は、ワーカーサーバWがアクセス可能な任意の場所に設けることができる。勿論、記憶手段5にアクセスする処理を行う領域地図要素処理2及び点地図要素処理3を実行するワーカーサーバWが自ノードの備える記憶手段5からデータを読み出して処理を行うことが、データローカリティ上好適であるといえる。
The storage control unit 21 controls the storage unit 5 provided at an arbitrary place in the distributed processing system 1 and stores predetermined information in the storage unit 5.
Here, the memory | storage means 5 is comprised including mesh DB51 and map element DB52. As shown in FIG. 3A, the mesh DB 51 stores map information including position information indicating the position of the mesh on the map in association with the mesh ID for identifying the mesh. The mesh is a map divided into latitude and longitude. As shown in FIG. 3B, the map element DB 52 stores map element information including range designation information and map element names in association with map element IDs. The map element may be a point element, a map element having a rectangular range, or a map element having a polygonal range. Although the designation of the map element range designation information can be arbitrarily performed, in this embodiment, the map element range designation information is designated by designating the latitude and longitude of the vertex of the map element. .
The storage control unit 21 stores, for example, the mesh ID and the position information of the mesh ID in the mesh DB 51 of the storage unit 5 in association with each other.
Note that the worker server W itself does not need to include the storage unit 5 as long as the worker server W can specify a destination from which various information is read. The storage unit 5 can be provided at any location accessible by the worker server W. Of course, in terms of data locality, the worker server W executing the area map element process 2 and the point map element process 3 for performing the process of accessing the storage means 5 reads the data from the storage means 5 of the own node and performs the process. It can be said that it is preferable.

領域取得手段22は、処理すべき領域地図要素が地図上で占める閉領域を表す範囲指定情報を、任意の場所に設けられた地図要素DB52から読み出す。   The area acquisition unit 22 reads out range designation information representing the closed area occupied by the area map element to be processed on the map from the map element DB 52 provided at an arbitrary location.

メッシュ特定手段23は、メッシュDB51からメッシュID及び位置情報を読み出して、領域取得手段22が読み出した範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する。
ここで、領域取得手段22が取得した範囲指定情報が表す閉領域は一定の範囲からなる領域地図要素に係る範囲指定情報が表す閉領域であるため、メッシュ特定手段23が特定するメッシュは複数存在する可能性がある。そこで、本実施形態では、メッシュ特定手段23は、基点決定手段231と、基点メッシュ特定手段232と、隣接メッシュ特定手段233と、包含判定手段234と、を含むこととしている。
The mesh specifying unit 23 reads the mesh ID and position information from the mesh DB 51 and specifies a mesh including at least a part of the closed region represented by the range designation information read by the region acquiring unit 22.
Here, since the closed region indicated by the range specifying information acquired by the region acquiring unit 22 is a closed region expressed by the range specifying information related to the region map element having a certain range, there are a plurality of meshes specified by the mesh specifying unit 23. there's a possibility that. Therefore, in the present embodiment, the mesh specifying unit 23 includes a base point determining unit 231, a base point mesh specifying unit 232, an adjacent mesh specifying unit 233, and an inclusion determining unit 234.

基点決定手段231は、範囲指定情報が表す閉領域に含まれる任意の地点情報を決定する。任意の地点情報としては、例えば、領域地図要素の中心点や領域地図要素の頂点等が考えられるが、本実施形態では、任意の地点情報として領域地図要素の中心点を用いている。そのため、基点決定手段231は、領域地図要素の中心点を算出する。なお、中心点の算出は、任意の方法により行うことができ、所定のアルゴリズムに従って算出することとしてもよく、地図要素DB52に予め記憶しておくこととしてもよい。   The base point determination unit 231 determines arbitrary point information included in the closed region represented by the range designation information. As the arbitrary point information, for example, the center point of the area map element, the vertex of the area map element, and the like can be considered. In this embodiment, the center point of the area map element is used as the arbitrary point information. Therefore, the base point determination unit 231 calculates the center point of the area map element. The calculation of the center point can be performed by an arbitrary method, and may be calculated according to a predetermined algorithm or may be stored in advance in the map element DB 52.

基点メッシュ特定手段232は、範囲指定情報が表す閉領域に含まれる任意の地点情報(中心点)が属するメッシュを基点メッシュとして特定する。   The base point mesh specifying unit 232 specifies a mesh to which arbitrary point information (center point) included in the closed region represented by the range designation information belongs as a base point mesh.

隣接メッシュ特定手段233は、基点メッシュに隣接するメッシュを隣接メッシュとして特定する。なお、隣接メッシュ特定手段233は、基点メッシュの周囲8個(隣接する)のメッシュだけでなく、領域地図要素の大きさによっては、基点メッシュの周囲24個、49個・・・等といった基点メッシュの周囲のメッシュを取得することとしてもよい。   The adjacent mesh specifying means 233 specifies a mesh adjacent to the base point mesh as an adjacent mesh. The adjacent mesh specifying means 233 is not limited to eight meshes (adjacent) around the base mesh, but depending on the size of the area map element, the base mesh such as 24 meshes around the base mesh, 49 meshes, etc. It is good also as acquiring the surrounding mesh.

包含判定手段234は、隣接メッシュに範囲指定情報が表す閉領域の少なくとも一部が含まれるか否かを判定する。   The inclusion determination unit 234 determines whether or not the adjacent mesh includes at least a part of the closed region represented by the range designation information.

ここで、図4を参照して、メッシュ特定手段23が範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを取得する処理の流れについて説明する。   Here, with reference to FIG. 4, the flow of processing in which the mesh specifying unit 23 acquires a mesh including at least a part of the closed region represented by the range designation information will be described.

はじめに、メッシュ特定手段23(基点決定手段231)は、領域地図要素100の任意の地点情報である中心点100Aを決定する(図4(1))。
続いて、メッシュ特定手段23(基点メッシュ特定手段232)は、中心点100Aの属するメッシュA5を特定する(図4(2))。
続いて、メッシュ特定手段23(隣接メッシュ特定手段233)は、メッシュA5の周囲のメッシュである隣接メッシュA1,A2,A3,A4,A6・・・を取得する(図4(3))。
最後に、メッシュ特定手段23(包含判定手段234)は、隣接メッシュA1,A2,A3,A4,A6・・・のそれぞれについて、範囲指定情報が表す閉領域の少なくとも一部が含まれるか否かを判定し、範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する(図4(4))。図4(4)では、領域地図要素100の範囲指定情報が表す閉領域の少なくとも一部を含むメッシュとして、メッシュA2,A3,A5,A6が特定されている。
First, the mesh identification unit 23 (base point determination unit 231) determines a center point 100A, which is arbitrary point information of the area map element 100 (FIG. 4 (1)).
Subsequently, the mesh specifying unit 23 (base mesh specifying unit 232) specifies the mesh A5 to which the center point 100A belongs (FIG. 4 (2)).
Subsequently, the mesh specifying means 23 (adjacent mesh specifying means 233) acquires adjacent meshes A1, A2, A3, A4, A6,... That are meshes around the mesh A5 (FIG. 4 (3)).
Finally, the mesh specifying unit 23 (inclusion determining unit 234) determines whether or not at least part of the closed region indicated by the range designation information is included for each of the adjacent meshes A1, A2, A3, A4, A6. And a mesh including at least a part of the closed region represented by the range designation information is specified (FIG. 4 (4)). In FIG. 4 (4), meshes A2, A3, A5, and A6 are specified as meshes including at least a part of the closed region represented by the range designation information of the region map element 100.

図2に戻り、データ生成手段24は、メッシュ特定手段23が取得したメッシュをKEY、領域取得手段22が読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを、メッシュ特定手段23が取得したメッシュの数だけ生成する。例えば、データ生成手段24は、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」といったKEY−VALUE型のデータセットを生成する。   Returning to FIG. 2, the data generation unit 24 generates a KEY-VALUE type data set in which the mesh acquired by the mesh specifying unit 23 is KEY and the range designation information read by the region acquiring unit 22 is VALUE. Generate as many meshes as you have. For example, the data generation means 24 may include “KEY: Mesh A2, VALUE: Range designation information of area map element 100”, “KEY: Mesh A3, VALUE: Range designation information of area map element 100”, “KEY: Mesh A5, A KEY-VALUE type data set such as “VALUE: range designation information of area map element 100” and “KEY: mesh A6, VALUE: range designation information of area map element 100” is generated.

実行処理振り分け手段25は、KEY−VALUE型のデータセットをシャッフル、すなわち、KEY−VALUE型のデータセットをKEYでソートしメッシュ単位で(メッシュ特定手段23が取得したメッシュ毎に)領域内外判定処理4を実行するワーカーサーバWに振り分けることで、生成したKEY−VALUE型のデータセットに対する処理をメッシュ単位に分散して領域内外判定処理4を実行させる。   The execution process distribution unit 25 shuffles the KEY-VALUE type data set, that is, sorts the KEY-VALUE type data set by the KEY and performs the inside / outside determination process for each mesh (for each mesh acquired by the mesh specifying unit 23). By distributing to the worker server W that executes 4, the processing for the generated KEY-VALUE type data set is distributed in mesh units, and the inside / outside determination processing 4 is executed.

続いて、点地図要素処理3を実行するため、分散処理システム1は、記憶制御手段31と、点要素取得手段32と、メッシュ特定手段33と、データ生成手段34と、実行処理振り分け手段35と、を含んで構成される。なお、点地図要素処理3を実行するための各手段は、領域地図要素処理2を実行するための各手段と基本的に同一であるため、詳細な説明は省略する。   Subsequently, in order to execute the point map element process 3, the distributed processing system 1 includes a storage control unit 31, a point element acquisition unit 32, a mesh identification unit 33, a data generation unit 34, and an execution process distribution unit 35. , Including. In addition, since each means for performing the point map element process 3 is basically the same as each means for executing the area map element process 2, detailed description is omitted.

記憶制御手段31は、分散処理システム1の任意の場所に設けられた記憶手段5を制御し、記憶手段5に所定の情報を記憶する。点要素取得手段32は、点地図要素の範囲指定情報(地点情報)を地図要素DB52から読み出す。メッシュ特定手段33は、点要素取得手段32が読み出した範囲指定情報を含むメッシュを特定する。ここで、点地図要素の範囲指定情報は、範囲を有しない地点情報であるため、メッシュ特定手段33は、当該地点情報が属するメッシュを特定すれば足りる。無論、点地図要素が一定の範囲を有する場合には、メッシュ特定手段23と同様の処理を行うこととしてもよい。   The storage control unit 31 controls the storage unit 5 provided at an arbitrary location in the distributed processing system 1 and stores predetermined information in the storage unit 5. The point element acquisition means 32 reads the point map element range designation information (point information) from the map element DB 52. The mesh specifying unit 33 specifies a mesh including the range designation information read by the point element acquisition unit 32. Here, since the range designation information of the point map element is point information having no range, it is sufficient for the mesh specifying means 33 to specify the mesh to which the point information belongs. Of course, when the point map element has a certain range, the same processing as that of the mesh specifying means 23 may be performed.

データ生成手段34は、メッシュ特定手段33が特定したメッシュをKEY、点要素取得手段32が読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを生成する。例えば、あるレストラン(レストラン1〜N)があるビル内に存在するか否かを判定する場合、データ生成手段34は、「KEY:レストラン1の属するメッシュ、VALUE:レストラン1の範囲指定情報」、「KEY:レストラン2の属するメッシュ、VALUE:レストラン2の範囲指定情報」・・・「KEY:レストランNの属するメッシュ、VALUE:レストランNの範囲指定情報」といったKEY−VALUE型のデータセットを生成する。   The data generation unit 34 generates a KEY-VALUE type data set in which the mesh specified by the mesh specification unit 33 is KEY and the range designation information read by the point element acquisition unit 32 is VALUE. For example, when determining whether or not a certain restaurant (restaurant 1 to N) is present in a certain building, the data generation means 34 is “KEY: mesh to which restaurant 1 belongs, VALUE: range designation information of restaurant 1”, Generate a KEY-VALUE-type data set such as “KEY: mesh to which restaurant 2 belongs, VALUE: range designation information for restaurant 2”..., “KEY: mesh to which restaurant N belongs, VALUE: range designation information for restaurant N” .

実行処理振り分け手段35は、KEY−VALUE型のデータセットをシャッフル、すなわち、KEY−VALUE型のデータセットをKEYでソートしメッシュ単位で領域内外判定処理4を実行するワーカーサーバWに振り分けることで、生成したKEY−VALUE型のデータセットに対する処理をメッシュ単位に分散して領域内外判定処理4を実行させる。このことにより、領域内外判定処理4を実行するワーカーサーバWは、KEYとして割り当てられたメッシュIDが示す所定のメッシュに含まれる範囲指定情報を全て得ることができる。   The execution process distribution unit 35 shuffles the KEY-VALUE type data set, that is, sorts the KEY-VALUE type data set by KEY, and distributes the data set to the worker server W that executes the area inside / outside determination process 4 in mesh units. The processing for the generated KEY-VALUE type data set is distributed in units of meshes, and the region inside / outside determination processing 4 is executed. Thereby, the worker server W that executes the area inside / outside determination process 4 can obtain all the range designation information included in the predetermined mesh indicated by the mesh ID assigned as KEY.

このように、領域内外判定処理4を実行するワーカーサーバWには、KEYでソートされたKEY−VALUE型のデータセットが提供されるため、分散処理システム1では、同一のKEYを持つデータセットについて、同一のワーカーサーバWで領域地図要素及び点地図要素の位置関係に関する処理を並列実行させることができる。   Thus, since the KEY-VALUE type data set sorted by the KEY is provided to the worker server W that executes the area inside / outside determination process 4, the distributed processing system 1 uses the data set having the same KEY. The processing related to the positional relationship between the area map element and the point map element can be executed in parallel on the same worker server W.

続いて、領域内外判定処理4を実行するため、分散処理システム1は、メッシュ単位で地図上の位置関係に関する処理を実行する処理実行手段41を含んで構成される。
例えば、領域内外判定処理4を実行するワーカーサーバWには、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」及び「KEY:メッシュA2、VALUE:メッシュA2に属するレストランの範囲指定情報」といったKEY−VALUE型のデータセットが与えられ、当該ワーカーサーバWにおいて、地図上の位置関係に関する処理、一例としては、当該レストランが領域地図要素100内に存在するか否かが判定される。レストランが領域地図要素100内に存在するか否かの判定(空間演算)は、例えば、オープンソースソフトウェアであるJTS等を用いることで実現することができる。
Subsequently, the distributed processing system 1 is configured to include processing execution means 41 for executing processing related to the positional relationship on the map in units of meshes in order to execute the region inside / outside determination processing 4.
For example, for the worker server W that executes the area inside / outside determination process 4, “KEY: Mesh A2, VALUE: Area map element 100 range designation information” and “KEY: Mesh A2, VALUE: Mesh A2 range designation. KEY-VALUE-type data set such as “information” is given, and the worker server W determines whether or not the restaurant exists in the area map element 100 as an example of processing related to the positional relationship on the map. . The determination (spatial operation) of whether or not a restaurant exists in the area map element 100 can be realized by using, for example, JTS that is open source software.

なお、実行処理振り分け手段25(35)で処理が振り分けられたワーカーサーバWが領域内外判定処理4を実行するものであるが、振り分けによっては領域地図要素処理2又は点地図要素処理3を実行したワーカーサーバW自体が領域内外判定処理4を実行するワーカーサーバWになり得る。   The worker server W to which the process is distributed by the execution process distribution unit 25 (35) executes the area inside / outside determination process 4. Depending on the distribution, the area map element process 2 or the point map element process 3 is executed. The worker server W itself can be the worker server W that executes the area inside / outside determination process 4.

[分散処理システム1を構成する各サーバのハードウェア構成]
以上説明した分散処理システム1を構成する各サーバのハードウェアは、一般的なコンピュータによって構成することができる。一般的なコンピュータは、例えば、制御部として、中央処理装置(CPU)を備える他、記憶部として、メモリ(RAM、ROM)、ハードディスク(HDD)及び光ディスク(CD、DVD等)を、ネットワーク通信装置として、各種有線及び無線LAN装置を、表示装置として、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイを、入力装置として、例えば、キーボード及びポインティング・デバイス(マウス、トラッキングボール等)を適宜備え、これらは、バスラインにより接続されている。このような一般的なコンピュータにおいて、CPUは、分散処理システム1を構成する各サーバを統括的に制御し、各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
[Hardware configuration of each server constituting the distributed processing system 1]
The hardware of each server configuring the distributed processing system 1 described above can be configured by a general computer. For example, a general computer includes a central processing unit (CPU) as a control unit, and a memory (RAM, ROM), a hard disk (HDD), and an optical disk (CD, DVD, etc.) as a storage unit, and a network communication device. Various wired and wireless LAN devices as display devices, for example, various displays such as liquid crystal displays and plasma displays, and as input devices, for example, keyboards and pointing devices (mouse, tracking balls, etc.) Are connected by a bus line. In such a general computer, the CPU controls each server constituting the distributed processing system 1 in an integrated manner, reads and executes various programs as appropriate, and cooperates with the hardware described above. Various functions related to are realized.

[分散処理システム1の処理]
次に、図5を参照して、分散処理システム1の処理について説明する。
[Processing of distributed processing system 1]
Next, processing of the distributed processing system 1 will be described with reference to FIG.

[領域地図要素処理2]
S201:領域取得手段22は、領域地図要素が地図上で占める閉領域を表す範囲指定情報を地図要素DB52から読み出す。
例えば、点地図要素111,112,113,114,115,116が領域地図要素100に存在するか否かを判定する場合(図6参照)、領域取得手段22は領域地図要素100の範囲指定情報を地図要素DB52から読み出す。
[Area map element processing 2]
S201: The area acquisition unit 22 reads from the map element DB 52 range designation information that represents a closed area that the area map element occupies on the map.
For example, when determining whether or not the point map elements 111, 112, 113, 114, 115, 116 exist in the area map element 100 (see FIG. 6), the area acquisition unit 22 uses the range designation information of the area map element 100. Are read from the map element DB 52.

S202:メッシュ特定手段23は、メッシュDB51からメッシュID及び位置情報を読み出して、S201で読み出した範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する。具体的には、メッシュ特定手段23は、領域地図要素100の中心点を決定し、当該中心点の属する基点メッシュを特定する。そして、メッシュ特定手段23は、基点メッシュに隣接する隣接メッシュを取得するとともに、当該隣接メッシュのうち、範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する。更に、メッシュ特定手段23は、当該閉領域の全ての部分について上記特定を完了するまで、当該隣接メッシュに更に隣接する隣接メッシュを取得して同様の処理を繰り返す。
図6では、領域地図要素100の範囲指定情報が表す閉領域の少なくとも一部を含むメッシュとして、メッシュA2,A3,A5,A6が取得されている。
S202: The mesh specifying unit 23 reads the mesh ID and position information from the mesh DB 51, and specifies a mesh including at least a part of the closed region represented by the range designation information read in S201. Specifically, the mesh specifying unit 23 determines the center point of the area map element 100 and specifies the base point mesh to which the center point belongs. Then, the mesh specifying unit 23 acquires an adjacent mesh adjacent to the base mesh, and specifies a mesh including at least a part of the closed region represented by the range designation information among the adjacent mesh. Further, the mesh specifying unit 23 acquires an adjacent mesh further adjacent to the adjacent mesh until the above specification is completed for all the parts of the closed region, and repeats the same processing.
In FIG. 6, meshes A <b> 2, A <b> 3, A <b> 5, A <b> 6 are acquired as meshes including at least a part of the closed region represented by the range designation information of the region map element 100.

S203:データ生成手段24は、S202で特定したメッシュをKEY、S201で読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを、S202で特定したメッシュの数だけ生成する。
図6では、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」といったKEY−VALUE型のデータセットが生成される。
S203: The data generation unit 24 generates KEY-VALUE type data sets for which the number of meshes specified in S202 is KEY and the range specification information read in S201 is VALUE.
In FIG. 6, “KEY: Mesh A2, VALUE: Range specification information of area map element 100”, “KEY: Mesh A3, VALUE: Range specification information of area map element 100”, “KEY: Mesh A5, VALUE: Area map. A KEY-VALUE type data set such as “range specification information of element 100” and “KEY: mesh A6, VALUE: range specification information of area map element 100” is generated.

S204:実行処理振り分け手段25は、KEY−VALUE型のデータセットをメッシュ単位で領域内外判定処理4を実行するワーカーサーバWに振り分ける。
図6では、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちのあるワーカーサーバW(又は複数、以下同じ)に振り分け、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの別のワーカーサーバWに振り分け、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分け、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分ける。
S204: The execution process distribution unit 25 distributes the KEY-VALUE type data set to the worker server W that executes the area inside / outside determination process 4 in units of meshes.
In FIG. 6, “KEY: Mesh A2, VALUE: Range specification information of area map element 100” is distributed to a worker server W (or a plurality, the same below) of the worker servers W that execute the area inside / outside determination process 4, "KEY: Mesh A3, VALUE: Range specification information of area map element 100" is distributed to another worker server W among the worker servers W that execute the area inside / outside determination process 4, and "KEY: Mesh A5, VALUE: Area map" The “range designation information of the element 100” is distributed to another worker server W among the worker servers W that execute the area inside / outside determination processing 4, and “KEY: mesh A6, VALUE: range designation information of the area map element 100” is designated as the area. The worker server W that executes the inside / outside determination process 4 is assigned to another worker server W.

[点地図要素処理3]
S301:点要素取得手段32は、点地図要素の範囲指定情報(地点情報)を地図要素DB52から読み出す。
図6では、領域地図要素100内に存在するか否かを判定する点地図要素111,112,113,114,115,116の範囲指定情報を地図要素DB52から読み出す。
[Point map element processing 3]
S301: The point element acquisition means 32 reads the range specification information (point information) of the point map element from the map element DB 52.
In FIG. 6, the range designation information of the point map elements 111, 112, 113, 114, 115, and 116 for determining whether or not the area map element 100 exists is read from the map element DB 52.

S302:メッシュ特定手段33は、メッシュDB51からメッシュID及び位置情報を読み出して、S301で読み出した範囲指定情報を含むメッシュを特定する。
図6では、点地図要素111を含むメッシュとしてメッシュA2を取得し、点地図要素112を含むメッシュとしてメッシュA5を取得し、点地図要素113を含むメッシュとしてメッシュA5を取得し、点地図要素114を含むメッシュとしてメッシュA3を取得し、点地図要素115を含むメッシュとしてメッシュA3を取得し、点地図要素116を含むメッシュとしてメッシュA6を取得する。
S302: The mesh specifying unit 33 reads the mesh ID and the position information from the mesh DB 51, and specifies the mesh including the range designation information read in S301.
In FIG. 6, the mesh A2 is acquired as a mesh including the point map element 111, the mesh A5 is acquired as the mesh including the point map element 112, the mesh A5 is acquired as the mesh including the point map element 113, and the point map element 114 is acquired. The mesh A3 is acquired as the mesh including the point map, the mesh A3 is acquired as the mesh including the point map element 115, and the mesh A6 is acquired as the mesh including the point map element 116.

S303:データ生成手段34は、S302で特定したメッシュをKEY、S301で読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを生成する。
図6では、「KEY:メッシュA2、VALUE:点地図要素111の範囲指定情報」、「KEY:メッシュA3、VALUE:点地図要素114の範囲指定情報」、「KEY:メッシュA3、VALUE:点地図要素115の範囲指定情報」、「KEY:メッシュA5、VALUE:点地図要素112の範囲指定情報」、「KEY:メッシュA5、VALUE:点地図要素113の範囲指定情報」、「KEY:メッシュA6、VALUE:点地図要素116の範囲指定情報」といったKEY−VALUE型のデータセットが生成される。
S303: The data generation unit 34 generates a KEY-VALUE type data set in which the mesh specified in S302 is KEY and the range designation information read in S301 is VALUE.
In FIG. 6, “KEY: Mesh A2, VALUE: Range designation information of point map element 111”, “KEY: Mesh A3, VALUE: Range designation information of point map element 114”, “KEY: Mesh A3, VALUE: Point map. “Range specification information of element 115”, “KEY: Mesh A5, VALUE: Range specification information of point map element 112”, “KEY: Mesh A5, VALUE: Range specification information of point map element 113”, “KEY: Mesh A6, A KEY-VALUE type data set such as “VALUE: range designation information of point map element 116” is generated.

S304:実行処理振り分け手段35は、KEY−VALUE型のデータセットをメッシュ単位で領域内外判定処理4を実行するワーカーサーバWに振り分ける。
図6では、「KEY:メッシュA2、VALUE:点地図要素111の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちのあるのワーカーサーバWに振り分け、「KEY:メッシュA3、VALUE:点地図要素114の範囲指定情報」及び「KEY:メッシュA3、VALUE:点地図要素115の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの別のワーカーサーバWに振り分け、「KEY:メッシュA5、VALUE:点地図要素112の範囲指定情報」及び「KEY:メッシュA5、VALUE:点地図要素113の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分け、「KEY:メッシュA6、VALUE:点地図要素116の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分ける。
S304: The execution process distribution unit 35 distributes the KEY-VALUE type data set to the worker server W that executes the area inside / outside determination process 4 in units of meshes.
In FIG. 6, “KEY: Mesh A2, VALUE: Range specification information of the point map element 111” is distributed to a worker server W among the worker servers W that execute the area inside / outside determination processing 4, and “KEY: Mesh A3, “VALUE: Range designation information of point map element 114” and “KEY: Mesh A3, VALUE: Range designation information of point map element 115” are sent to another worker server W among the worker servers W that execute the area inside / outside determination processing 4. Sorting, “KEY: Mesh A5, VALUE: Range designation information of point map element 112” and “KEY: Mesh A5, VALUE: Range designation information of point map element 113” of worker server W executing area inside / outside determination processing 4 Assign to another worker server W, “KEY: Mesh A6, VALUE: Point map required 116 range specification information "of sorts to yet another worker server W of the worker server W to perform an area outside judgment process 4.

[領域内外判定処理4]
S401:領域内外判定処理4を実行するワーカーサーバWのそれぞれは、S204及びS304で振り分けられたKEY−VALUE型のデータセットを、メッシュ単位で取得する。なお、領域内外判定処理4を実行するワーカーサーバWは、HadoopのMultipleInputsクラスを利用することで、領域地図要素100の範囲指定情報及び点地図要素111〜116の範囲指定情報を同時に取得し読み込むことができる。
図6では、メッシュA2の処理を行うワーカーサーバWは、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」及び「KEY:メッシュA2、VALUE:点地図要素111の範囲指定情報」を取得し、メッシュA3の処理を行うワーカーサーバWは、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA3、VALUE:点地図要素114の範囲指定情報」及び「KEY:メッシュA3、VALUE:点地図要素115の範囲指定情報」を取得し、メッシュA5の処理を行うワーカーサーバWは、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA5、VALUE:点地図要素112の範囲指定情報」及び「KEY:メッシュA5、VALUE:点地図要素113の範囲指定情報」を取得し、メッシュA6の処理を行うワーカーサーバWは、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」及び「KEY:メッシュA6、VALUE:点地図要素116の範囲指定情報」を取得する。
[Inside / outside area determination processing 4]
S401: Each of the worker servers W that executes the area inside / outside determination process 4 acquires the KEY-VALUE type data set distributed in S204 and S304 in units of meshes. In addition, the worker server W that executes the area inside / outside determination process 4 uses the Hadoop MultipleInputs class to simultaneously acquire and read the area designation information of the area map element 100 and the area designation information of the point map elements 111 to 116. Can do.
In FIG. 6, the worker server W that performs processing of the mesh A <b> 2 has “KEY: mesh A <b> 2, VALUE: range specification information of the area map element 100” and “KEY: mesh A <b> 2, VALUE: range specification information of the point map element 111”. The worker server W that performs processing of the mesh A3 obtains “KEY: mesh A3, VALUE: range designation information of the area map element 100”, “KEY: mesh A3, VALUE: range designation information of the point map element 114”. And “KEY: Mesh A3, VALUE: Range designation information of point map element 115” and worker server W that performs processing of mesh A5, “KEY: Mesh A5, VALUE: Range designation information of area map element 100” , “KEY: Mesh A5, VALUE: Range designation information of point map element 112” and “KE : Mesh A5, VALUE: Range specification information of point map element 113 ", and worker server W that performs processing of mesh A6 performs" KEY: Mesh A6, VALUE: Range specification information of area map element 100 "and" KEY. : Mesh A6, VALUE: Range specification information of point map element 116 ”.

S402:処理実行手段41は、地図上の位置関係に関する処理、例えば、点地図要素111〜116が領域地図要素100内に存在するか否かを判定する処理を実行する。なお、地図上の位置関係に関する処理は、例えば、オープンソースソフトウェアであるJTS等を用いることで実現することができる。
図6では、点地図要素112、115は、領域地図要素100内に存在すると判定され、点地図要素111,113,114,116は、領域地図要素100内に存在しないと判定される。
S402: The process execution means 41 executes a process related to the positional relationship on the map, for example, a process of determining whether or not the point map elements 111 to 116 are present in the area map element 100. Note that the processing related to the positional relationship on the map can be realized by using, for example, JTS which is open source software.
In FIG. 6, the point map elements 112 and 115 are determined to exist in the area map element 100, and the point map elements 111, 113, 114, and 116 are determined not to exist in the area map element 100.

[分散処理システム1の効果]
本実施形態の分散処理システム1では、複数のメッシュにまたがる領域地図要素100に関する処理をメッシュ単位に分散して行う際に、領域地図要素100がまたがるメッシュの全てに領域地図要素100の範囲指定情報を持たせることとしている。これにより、領域地図要素の位置や大きさに関係なく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことができる。
また、分散処理システム1による分散処理の結果、一例として、図7のようなインデックスDBを生成することができる。例えば、あるレストランがあるビルの中に存在していることを示すインデックスデータを生成することができる。また、例えば、環七(東京都道318号環状七号線)通り沿いの一定の範囲を領域地図要素として設定すれば、あるラーメン屋が環七沿いのものであることを示すインデックスデータを生成することもできる。また、駅から徒歩5分圏内の範囲を領域地図要素として設定すれば、ある店がある駅から徒歩5分以内に存在することを示すインデックスデータを生成することができる。
[Effect of distributed processing system 1]
In the distributed processing system 1 of the present embodiment, when the processing related to the area map element 100 that spans a plurality of meshes is performed in a distributed manner in units of meshes, the range designation information of the area map element 100 is applied to all the meshes that the area map element 100 spans. It is supposed to have. Thereby, regardless of the position and size of the area map element, it is possible to perform distributed processing that can be scaled in units of meshes that are optimal for distributed processing.
As an example, as a result of the distributed processing by the distributed processing system 1, an index DB as shown in FIG. 7 can be generated. For example, index data indicating that a certain restaurant exists in a certain building can be generated. In addition, for example, if a certain range along Ring 7 (Tokyo Metropolitan Route 318 Ring 7) is set as an area map element, index data indicating that a ramen shop is along Ring 7 is generated. You can also. If a range within a 5-minute walk from the station is set as an area map element, index data indicating that a certain shop exists within a 5-minute walk from a certain station can be generated.

以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。   As mentioned above, although embodiment of this invention was described, this invention is not restricted to embodiment mentioned above. The effects described in the embodiments of the present invention are only the most preferable effects resulting from the present invention, and the effects of the present invention are limited to those described in the embodiments of the present invention. is not.

1 分散処理システム
2 領域地図要素処理
21 記憶制御手段
22 領域取得手段
23 メッシュ特定手段
24 データ生成手段
25 実行処理振り分け手段
3 点地図要素処理
31 記憶制御手段
32 点要素取得手段
33 メッシュ特定手段
34 データ生成手段
35 実行処理振り分け手段
4 領域内外判定処理
41 処理実行手段
5 記憶手段
51 メッシュDB
52 地図要素DB
M マスタサーバ
W ワーカーサーバ
DESCRIPTION OF SYMBOLS 1 Distributed processing system 2 Area | region map element processing 21 Storage control means 22 Area | region acquisition means 23 Mesh specification means 24 Data generation means 25 Execution processing distribution means 3 Point map element processing 31 Storage control means 32 Point element acquisition means 33 Mesh specification means 34 Data Generation means 35 Execution process distribution means 4 Area inside / outside determination process 41 Process execution means 5 Storage means 51 Mesh DB
52 Map Element DB
M Master server W Worker server

Claims (3)

所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理システムであって、
前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御手段と、
前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得手段と、
前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得手段と、
前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得手段が読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得手段が読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定手段と、
特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定手段が特定したメッシュの数だけ生成するデータ生成手段と、
生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定手段が特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分け手段と、
を備える分散処理システム。
Distribution of map data constituting a map that can be partitioned into a plurality of predetermined meshes is performed in parallel by assigning one of a plurality of servers connected via a network by shuffle to each of the predetermined plurality of meshes. A processing system,
At least a part of the plurality of servers stores the map data and mesh identification data for identifying the predetermined plurality of meshes in association with position information indicating the positions of the meshes on the map in the storage unit. Storage control means for
A region acquisition unit that reads out from the storage unit range designation information that represents a closed region occupied by the region map element included in the map on the map;
Point element acquisition means for reading out range designation information representing points where point map elements included in the map are located on the map;
The mesh identification data and the position information are read from the storage unit, and the mesh including at least a part of the closed region represented by the range designation information read by the region acquisition unit among the plurality of meshes and the point element Mesh specifying means for specifying a mesh including the point represented by the range specifying information read by the acquiring means;
Data generating means for generating KEY-VALUE type data having the mesh identification data for identifying the identified mesh as KEY and the range specifying information as VALUE as many as the number of meshes specified by the mesh specifying means;
Using the generated KEY-VALUE type data, one of the servers is shuffled for each mesh specified by the mesh specifying means for processing related to the positional relationship between the area map element and the point map element. Execution processing distribution means for executing in parallel,
A distributed processing system.
前記メッシュ特定手段は、
前記範囲指定情報に含まれる任意の地点情報が属する基点メッシュを特定する基点メッシュ特定手段と、
前記基点メッシュ特定手段が特定した前記基点メッシュに隣接する隣接メッシュを特定する隣接メッシュ特定手段と、
前記隣接メッシュ特定手段が特定した前記隣接メッシュに前記範囲指定情報が示す前記閉領域の少なくとも一部が含まれるか否かを判定する包含判定手段と、
を備える請求項1に記載の分散処理システム。
The mesh specifying means includes
Base point mesh specifying means for specifying a base point mesh to which any point information included in the range designation information belongs;
An adjacent mesh specifying means for specifying an adjacent mesh adjacent to the base mesh specified by the base mesh specifying means;
Inclusion determination means for determining whether or not at least a part of the closed region indicated by the range designation information is included in the adjacent mesh specified by the adjacent mesh specifying means;
The distributed processing system according to claim 1.
所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理方法であって、
前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御ステップと、
前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得ステップと、
前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得ステップと、
前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得ステップで読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得ステップで読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定ステップと、
特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定ステップが特定したメッシュの数だけ生成するデータ生成ステップと、
生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定ステップが特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分けステップと、
を備える分散処理システム。
Distribution of map data constituting a map that can be partitioned into a plurality of predetermined meshes is performed in parallel by assigning one of a plurality of servers connected via a network by shuffle to each of the predetermined plurality of meshes. A processing method,
At least a part of the plurality of servers stores the map data and mesh identification data for identifying the predetermined plurality of meshes in association with position information indicating the positions of the meshes on the map in the storage unit. A storage control step to
An area acquisition step of reading out range designation information representing a closed area occupied on the map by an area map element included in the map;
A point element acquisition step of reading out range designation information representing points where the point map elements included in the map are located on the map;
The mesh identification data and the position information are read from the storage means, and the mesh including at least a part of the closed region represented by the range designation information read in the region acquisition step among the plurality of meshes and the point element A mesh specifying step for specifying a mesh including the point represented by the range designation information read in the obtaining step;
A data generation step for generating KEY-VALUE type data having the mesh identification data for identifying the identified mesh as KEY and the range designation information as VALUE for the number of meshes identified by the mesh identification step;
Using the generated KEY-VALUE type data, one of the servers is shuffled for each mesh identified by the mesh identifying step, with respect to the positional relationship between the area map element and the point map element. Execution process distribution step to be executed in parallel,
A distributed processing system.
JP2010198978A 2010-09-06 2010-09-06 Distributed processing system and distributed processing method Expired - Fee Related JP5171904B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010198978A JP5171904B2 (en) 2010-09-06 2010-09-06 Distributed processing system and distributed processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010198978A JP5171904B2 (en) 2010-09-06 2010-09-06 Distributed processing system and distributed processing method

Publications (2)

Publication Number Publication Date
JP2012058836A true JP2012058836A (en) 2012-03-22
JP5171904B2 JP5171904B2 (en) 2013-03-27

Family

ID=46055907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010198978A Expired - Fee Related JP5171904B2 (en) 2010-09-06 2010-09-06 Distributed processing system and distributed processing method

Country Status (1)

Country Link
JP (1) JP5171904B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014038616A (en) * 2012-08-15 2014-02-27 Hon Hai Precision Industry Co Ltd Index construction system of large amounts of data, and construction method of the same
CN112307025A (en) * 2020-10-29 2021-02-02 杭州海康威视数字技术股份有限公司 Method and device for constructing distributed index

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217000A (en) * 2008-03-11 2009-09-24 Fujitsu Microelectronics Ltd Drawing processor, drawing processing program, and drawing processing method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217000A (en) * 2008-03-11 2009-09-24 Fujitsu Microelectronics Ltd Drawing processor, drawing processing program, and drawing processing method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014038616A (en) * 2012-08-15 2014-02-27 Hon Hai Precision Industry Co Ltd Index construction system of large amounts of data, and construction method of the same
CN112307025A (en) * 2020-10-29 2021-02-02 杭州海康威视数字技术股份有限公司 Method and device for constructing distributed index
CN112307025B (en) * 2020-10-29 2024-06-04 杭州海康威视数字技术股份有限公司 Distributed index construction method and device

Also Published As

Publication number Publication date
JP5171904B2 (en) 2013-03-27

Similar Documents

Publication Publication Date Title
US10394847B2 (en) Processing data in a distributed database across a plurality of clusters
CN110297799B (en) Data management system and method
CN106156138B (en) The foundation of the spatial index of point of interest, Perimeter method and apparatus
Walshaw et al. Multilevel mesh partitioning for heterogeneous communication networks
JP2018518733A (en) File operation method and apparatus
CN102779183B (en) Data inquiry method, equipment and system
US9342222B2 (en) Accessible chart navigation using object neighborhood
JP2011170774A (en) Device and method for generation of decision tree, and program
Aguilar et al. On the performance and scalability of an HPC enhanced multi agent system based evacuation simulator
CN114691806A (en) Data query method, display method, device, electronic equipment and storage medium
EP3008597B1 (en) Method for the continuous processing of two-level data on a system with a plurality of nodes
JP5171904B2 (en) Distributed processing system and distributed processing method
CN110569225A (en) Data storage method and system
Goga et al. Performance analysis of WRF simulations in a public cloud and HPC environment
JP2006244480A (en) Entity look-up system
Vasavi et al. Framework for geospatial query processing by integrating cassandra with hadoop
Fox Large scale data analytics on clouds
RU2610587C2 (en) Method of spatial object storage by means of flexible hierarchical structure and a permanent data medium
Wang et al. Geospatial big data analytics engine for spark
KR20100091757A (en) Method, system and computer-readable recording medium for providing distributed programming environment by using distributed space
KR101690315B1 (en) Parallel neighbor search system and method thereof
US11610151B2 (en) Distribution system, data management apparatus, data management method, and computer-readable recording medium
KR102147175B1 (en) Geo data managing method, apparatus and program based on geo key for efficiency improvement of geo data processing
Huang et al. Distributed asteroid discovery system for large astronomical data
CN114116948A (en) Geographic vector data space buffer area analysis method, device, equipment and medium

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121225

R150 Certificate of patent or registration of utility model

Ref document number: 5171904

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees