s073083 23 3 17
1 2 1.1.............................. 2 1.2.............................. 2 1.3.............................. 3 2 4 2.1........................... 4 2.2 Google App Engine........................ 5 2.3....................... 5 2.4.............................. 6 3 7 3.1.......................... 7 3.2......................... 8 3.3.............................. 9 3.4............................ 9 3.4.1................... 10 3.4.2..................... 12 3.4.3..................... 13 3.4.4.................. 14 3.5...................... 15 3.5.1................... 15 3.5.2....................... 17 3.6 Bigtable...................... 18 3.7.............................. 18 3.7.1............ 19 3.7.2.......................... 22 3.7.3........................ 23 3.7.4....................... 24 3.8.............................. 25 4 26 5 27 1
1 1.1 Google App Engine[1]( GAE) 1.2 GAE Eclipse 3.4 (Ganymede)[2] Google Plugin for Eclipse Google 2
1.3 [3] PostgreSQL[4] PostGIS[5] GoogleMaps[6] GAE 1.1: 3
2 2.1 ( ) 2 1. Infrastructure as a Service( IaaS) Software as a Service(SaaS) 2. IaaS 4
2.2 Google App Engine GAE Google Web Web GAE Key-ValueStore Bigtable 2.3 GAE Web Web GAE App Server GAE 5
2.1: GAE 2.4 1.2 Eclipse 3.4 (Ganymede)[2] JAVA GAE Eclipse Google App Engine SDK for Java[7] appengine-java-sdk-1.4.0.zip Eclipse Google Plugin for Eclipse 3.4[8] ~\workspace\project\war\web-inf\lib lucene-core-2.9.1.zip lucene-snowball-2.9.1.zip CSV commons-fileupload-1.2.2.jar AppEngine API Java Data Object( JDO) 6
3 3.1 ( 1 ) App Server ( 2 ) App Server ( 3 ) Datastore ( 4 ) ( 5 ) 6 ( 7 ) ( 8 ) ( 9 ) (10 ) 3.1: 7
3.2 Google Maps API GEvent.addListener(map, click,onsmapclick); point.x point.y x y 8
3.3 Eclipse Google Eclipse ID appengine-web.xml war appengine-web.xml 3.2: appengine-web.xml 3.2 3 application ID 4 version 3.4 [9] [10] 2 20 4 1 9
3.4.1 ID ID ID ID ID 1/1000 10 133 12 34.567 1000 (133 3600 12 60 34.567) 1000 Google Maps 3600000 12 8 2 120 80 3 3 1 3 1km 1200 800 1 100m 10
STRING 3.1: Double ID STRING Double X Double Y Double 10013 35.447 133.065 42536.937 106452.624 : : : : : : 10732 35.484 133.068 42581.547 106455.013 : : : : : : 14814 35.438 133.052 42525.800 106442.130 3.1 ID STRING Double X Y GEOMETRY Bigtable Double 562 684 11
3.4.2 ( ) ID ID ID ID ID STRING 10020101 3.2: ID ID STRING STRING LIST 11612 11463 10270 [u 10894, u 10424,, u 10434 ] : : : : 1327010 10822 10722 14700 [u 10792, u 10174,,u 14700 ] : : : : ( ) 16030101 11227 10374 11220 [u 10832, u 12741,,u 14194 ] 3.2 ID, ID STRING SQL LIKE Bigtable 128 117 12
3.4.3 ID ID ID ID ID ID ID ( ID) ID ID STRING 3.3: ID STRING INT STRING 1 STRING 132 STRING 10020101 1 0 7:30:00 0:00:00 : : : : : : : 10460101 1 0 10:20:00 0:00:00 10460101 2 0 11:20:00 0:00:00 10460101 3 0 12:20:00 0:00:00 10460101 1 1 10:20:00 0:00:00 : : : : : : : 18740102 2 1 16:30:00 0:00:00 3.3 ID STRING ID INT TIME Bigtable STRING 911 378 13
3.4.4 ID ID STRING 3.4: TEXT 10020101 LINESTRING(35.4477 133.0852,35.4453 133.0846,,35.4854 133.0709) : : 13270101 LINESTRING(35.4387 133.1203,35.4409 133.1185,,35.4842 133.0783) : : 16030101 LINESTRING(35.4642 133.0624,35.4699 133.0652,,35.4641 133.0631) 3.4 ID STRING GEOMETRY LINESTRING Bigtable TEXT STRING TEXT STRING 500 3.5 3.5: 11 13 11 20 13 20 14
3.5 CSV JavaSDK JDO Java Persistence API( JPA) 3.5.1 JDO GAE JDO JDO POJO 15
3.3: PersistentCapable Persistent PrimaryKey 16
3.5.2 PersistenceManager 3.4: 1. String split CSV 2. trim 3. ( close ) 17
3.6 Bigtable Bigtable Key-Value Store( KVS) 1 KVS Key( ) Value( ) Bigtable Key SQL SQL ( ) a) SQL SELECT ID FROM WHERE ID= 17720101 AND day= 0 AND 10:59:00 ; b)bigtable SELECT FROM WHERE id= 17720101 && day= 0 a) SELECT FROM b) a) WHERE AND b) && GAE 3.7 1. 500m 2. 100m 200m 100m 500m 3. 100m 200m 100m 500m 4. 2. 18
5. 6. 7. ID 3.7.1 PostgreSQL PostGIS DBMS PostgreSQL SQL SELECT FROM WHERE ST DWITHIN(, GeomFromText( POINT( ),SRID[4326]), [500m]) = TRUE WHERE GeomFromText() PostGIS () Geometry SRID POINT PostGIS () Bigtable PostGIS 19
3.5: 1. Y Y 500M 3.6: 20
2. 1 X 500M 3.7: 3. X Y 500M 3.8: 21
4. 500M 500M 3.9: (1264 ) 3.7.2 ID ID SQL SELECT ID FROM WHERE LIKE %11220%10732% ; ID WHERE LIKE % 0 Bigtable LIKE 22
fts fts ID ID 3.7.3 SQL SELECT ID FROM WHERE ID= 17720101 AND day= 0 AND 10:59:00 ; Bigtable ID ID SELECT FROM WHERE id= 17720101 && day= 0 3.10: ID ID 23
SELECT FROM WHERE id= 17720101 && day= 0 && bus id= 2 3.11: 3.7.4 ID SQL SELECT AsText( ) FROM WHERE ID = 10020101 WHERE AsText( ) GEOMETRY WKT PostgreSQL GEOMETRY LINESTRING BigTable TEXT AsText( ) 24
3.8 JavaScript GoogleAPI 3.12: 25
4 GAE GAE 26
5 27
[1] http://code.google.com/intl/ja/appengine/ [2] http://www.eclipse.org/ [3],2009 [4] http://www.postgresql.org/ [5] http://postgis.refractions.net/ [6] http://maps.google.co.jp/ [7] http://code.google.com/intl/ja/appengine/downloads.html [8] http://code.google.com/intl/ja/eclipse/docs/download.html [9] http://ichibata.co.jp/bus/ [10] http://www.matsue-bus.jp/ 28