42

オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

  • View
    203

  • Download
    1

Embed Size (px)

Citation preview

Page 1: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]
Page 2: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved.

オラクルGO!

話題の位置情報アプリを

クラウドで簡単に作ってみる

日本オラクル株式会社

クラウド・テクノロジー事業統括

Cloud Platform事業推進室 新井 庸介

Fusion Middleware事業本部 智野 潤子, 早川 博

Page 3: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

• 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。

文中の社名、商品名等は各社の商標または登録商標である場合があります。

3

Page 4: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 4

位置情報アプリ

Page 5: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 5

ゲーム

Pokémon GO

Page 6: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 6 https://www.makuake.com/project/biblle/

見守り

Page 7: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 7

観光

https://resas.go.jp/

Page 8: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8

http://www.mlit.go.jp/kankocho/shisaku/kankochi/gps.html

Page 9: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 9

オラクル x クラウド x 位置情報

Page 10: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

オラクル x クラウド x 位置情報

10

DEMONSTRATION

Page 11: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 11

範囲検索, スポット特定, 移動とCheck-in履歴

Page 12: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 12

範囲検索, 検索半径指定, 検索範囲の変更

Page 13: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

13

アーキテクチャ

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET 空間検索 Oracle Spatial

Node.js PaaS

mBaaS (mobile Backend

as a Service) JavaScript framework

Page 14: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

特徴

14

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET

空間検索 Node.js

PaaS mBaaS

強力な空間検索機能 • オラクルDB秘蔵の空間処理機能Oracle Spatialを利用

サーバー側実装の極小化 • 空間検索はDBクラウド、モバイルとのやりとりはMobileクラウドを活用

フルJavaScript • フロントエンドもサーバーサイドも、全てJavaScriptで実装

Page 15: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

アーキテクチャ

15

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET 空間検索 Oracle Spatial

Node.js PaaS

mBaaS (mobile Backend

as a Service) JavaScript framework

Oracle Spatial on Database Cloud Service

Page 16: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

“点データ”

“線データ”

“ポリゴン”

トポロジー

3D

f1

f2 n1 n2

e1

e2 e3

e4

経路探索

Oracle Spatial and Graph

• Oracle Databaseのオプション。地理空間、位置情報、グラフ・データの高度な管理/分析機能を提供

• Oracle 7から20年超に渡り継続的に機能追加、改善

• 多くの活用事例(次項)

16

Oracle Database

Page 17: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 17

電力, 水道, ガス

Omaha Public Power, Reliant, Southern, US DoE, Western Power Corp, Severn Trent, Bejing Power, Georgia Power, Czech

Telem, Copenhagen Energy, Electrable, Gaz de France, Hydro-Quebec, Equitable Resources, Nova Naturgas, Sao Paulo

Electric, Xcel Energy, Pemex, Romande Energie, Societe du Canal de Provence, Burlington Hydro, Santos Oil and Gas

通信

AT&T, Bell South, British Telecom, Cingular, DoCoMo, Intrado, Nextel, Sprint, T-Mobile, Telkom, Telenor, Telstra, Telus,

Telia, Cellcom, Verizon, VIAG, Vodafone, Wind, TurkCell, Geodan Mobile Solutions

輸送, 運輸

German Rail, Austrian Rail, California, Iowa, Florida, Maine, Maryland, Minnesota, New York, Oklahoma, Pennsylvania,

Alabama, Alberta, London Rail, Netherlands Transport, Australia, CSX transport, COTRAL SpA, BRAVO, Dublin Bus

自治体

Berlin, Dutch Police, New York City, Chicago, Los Angeles, San Jose, San Mateo, Washington DC, Cleveland, Detroit,

Phoenix, Winnipeg, Vancouver, Edmonton, Stockholm, Las Vegas, Sun Francisco MTA, Moscow, Beijing,Dongcheng ,

Hague, Luton Borough Council, Ohaio, Hull, Nanjing Land Resource

国土地理, 治水, 国防

Ordnance Survey (UK, IR, NI), US Census, NIMA, USGS, US Army, Denmark, Sweden, The Netherlands, Poland, Australia,

Singapore Land Authority, Las Vegas, NDPPC, Forestry Commission(Eng), The Barletta, Andria, and Trani Public Health

Unit, Servicio Geologico Mexicano,, Arma dei Carabinieri, Instituto Nacional de _Defensa Civil(PE), Kort &

Matrikelstyrelsen(DE)

Page 18: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 18

現在位置から半径xx kmにあるスポットのID,NAME, 緯度経度を一覧で取得

今回の実装 – Oracle Spatial

SELECT ID, NAME, s.geom.sdo_point.X as LONGITUDE, s.geom.sdo_point.Y as LATITUDE

FROM STAFFS s

WHERE SDO_WITHIN_DISTANCE

(s.geom, SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(lon, lat, NULL), NULL, NULL),

‘distance = dist unit=KM') = 'TRUE'

STAFFS表

ID NUMBER

NAME VARCHAR2

…省略…

geom SDO_GEOMETRY

SDO_GEOMETRYオブジェクト データ例

SDO GTYPE データのタイプ 2001(2次元の点)

SDO_SRID 測地座標系のSRID 8307(世界測地系)

SDO_POINT_TYPE x, y, zで示す点オブジェクト座標

139.715566, 35.641754, NULL

SDO_ELEM_INFO 点以外の場合に利用 NULL

SDO_ORDINATES 点以外の場合に利用 NULL

検索

対象列

現在地の緯度経度

半径xx

KM

Page 19: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19

SQLで空間検索できる=業務データと絡めた検索が簡単

Oracle Spatialのいいところ

例)高速道路から15マイル内に存在する、30万人以上の都市の検索

SELECT c.city FROM geod_interstates i, geod_cities c

WHERE i.highway = 'I101’ AND SDO_WITHIN_DISTANCE

(c.location, i.geom, 'distance=15 unit=mile') = 'TRUE‘ AND c.pop90 > 300000;

GEOD_INTERSTATES表

HIGHWAY NUMBER

geom SDO_GEOMETRY

SDO_GEOMETRY オブジェクト

データ例

SDO GTYPE 2002(2次元の線)

SDO_SRID 8307(世界測地系)

SDO_POINT_TYPE NULL

SDO_ELEM_INFO ORDINATESの解釈情報(直線 or 円弧)

SDO_ORDINATES 線の屈曲点の緯度経度の配列

GEOD_CITIES表

LOCATION SDO_GEOMETRY

CITY VARCHAR2

POP90 NUMBER

Page 20: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 20

SQLで空間検索できる=業務データと絡めた検索が簡単

Oracle Spatialのいいところ

例2)ある都市から15マイル内に存在するすべての高速道路の検索

SELECT i.highway FROM geod_cities c, geod_interstates I

WHERE c.city = 'Tampa' AND SDO_WITHIN_DISTANCE

( i.geom, c.location, 'distance=15 unit=mile') = 'TRUE';

例3)高速道路に最も近い5都市と、高速道路からそれらの各都市までの最短距離(マイル)

SELECT c.city, SDO_NN_DISTANCE (1) distance_in_miles FROM geod_interstates i, geod_cities c

WHERE i.highway = ‘I101‘ AND SDO_NN

(c.location, i.geom, 'sdo_num_res=5 unit=mile', 1) = 'TRUE'

ORDER BY distance_in_miles;

最も近くにある位置情報を識別する空間演算子

Page 21: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 21

SDO_RELATE演算子: 2つのオブジェクトの位置情報の関係性を判断する

Oracle Spatial 空間演算子 位相関係

CONTAINS 1つのオブジェクトの内部および境界がもう1つのオブジェクトの内部に含まれる。

COVERS 1つのオブジェクトがもう1つのオブジェクトの内部に含まれ、かつその2つのオブジェクトの境界が交差する。

TOUCH 境界は交差するが、内部は交差しない。

OVERLAPBDYINTERSE

CT 2つのオブジェクトの境界および内部が交差する。

OVERLAPBDYDISJOIN

T

1つのオブジェクトの内部が他のオブジェクトの境界および内部と交差するが、その2つの境界は交差しない。

EQUAL 2つのオブジェクトの境界および内部が同じである。

DISJOINT 境界および内部が交差しない。

INSIDE CONTAINSの逆

COVEREDBY COVERSの逆

ON 1つのオブジェクトの内部および境界が、もう1つのオブジェクトの境界上にある。

ANYINTERACT オブジェクトがなんらかの形で接合する。

Page 22: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Spatial Features の価値

•多様な機能性 – 変換、分析~バリデーションや修正まで

– 測地系の明示的/暗黙的変換

– 空間分析、集計関数、線形参照システム..

•性能、スケーラビリティ – R-Tree型空間索引による高速な空間検索

– Oracleの並列化/高速化技術を享受

– Spatial Vector Acceleration

•組み込み容易性 – ほとんどの機能はSQLベースでのアクセスが可能

– 空間関連処理をDBへオフロード

ベクトルデータ関連の実装関数 約250種 • 豊富な空間位相判定

• 空間データの変換、分析関数、測地系変換

• ラスター、3Dデータ、点群、TINにも対応

• 検索範囲を範囲階層で絞り込む索引構造

• パラレルクエリ対応

• 索引のパーティション化にも対応

• 12c新機能SVAにより更なる高速化

SQLで空間データを自在に扱える • 上述の空間判定、変換、分析関数も

• アプリケーションは結果の取り扱いに注力

ラスターデータ関連の実装関数 約190種 • オルソ補正,光学補正,モザイク化,ピラミッド化

• 演算(ラスター代数)

22

Page 23: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

アーキテクチャ

23

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET 空間検索 Oracle Spatial

Node.js PaaS

mBaaS (mobile Backend

as a Service) JavaScript framework

Mobile Cloud Service

Page 24: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Oracle Mobile Cloud Service の構成要素

Custom API

Connector

Client SDK

Cloud

オンプレミス

Analytics

モバイル・プログラム 担当者

Platform API

24

Oracle Mobile Cloud Service

Page 25: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 25

Custom API

Connector

Oracle Mobile Cloud Service

Client SDK

Cloud

オンプレミス

Analytics

モバイル・プログラム 担当者

Platform API

Custom APIを活用した、サーバー側開発との完全分離

今回の実装 – Mobile Cloud Service

Page 26: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 26

Custom API: サーバー側開発との完全分離

今回の実装 – Mobile Cloud Service

Page 27: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 27

APIのリクエスト/レスポンス定義

Page 28: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 28

ダミーデータの登録

Page 29: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 29

APIのテスト

Page 30: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 30

Connector

Oracle Mobile Cloud Service

Client SDK

Cloud

オンプレミス

Analytics

モバイル・プログラム 担当者

Platform API

Client SDK: APIコールをより簡単に

今回の実装 – Mobile Cloud Service

Custom API

Page 31: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

モバイル・アプリ開発を支援する豊富な機能

Custom API

Connector

Client SDK

Cloud

オンプレミス

Analytics

モバイル・プログラム 担当者

Platform API

31

Oracle Mobile Cloud Service

• ユーザー管理

•データの永続化

• オフライン用データキャッシュ

• プッシュ通知

• Beacon 活用

• 性能管理

•利用状況分析 etc

Page 32: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

プッシュ通知の送信の仕組み

Windows プッシュ 通知サービス

Apple Push Notification Service

誰が、どの端末を使用しているかを管理

プラットフォームごとに異なるサービス、書式プロトコルを使用してメッセージを送信

• 送信日時の指定

• 他システムとの連携と自動化

• 開封率のトラッキング

• 指定時間内に送信し終える

ためのキャパシティ etc…

32

Google Cloud Messaging

Page 33: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

アーキテクチャ

33

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET 空間検索 Oracle Spatial

Node.js PaaS

mBaaS (mobile Backend

as a Service) JavaScript framework

Application Container Cloud Service

Page 34: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Application Container Cloud

•概要

–多様な開発言語に対応:

Java, Node.js, PHP

(Ruby, Python, Go, …)

–ロードバランサーを内包、無停止で拡張/縮退が可能

•特徴 (Java Runtime)

– Java Flight Recorder(JFR) : 組み込みJFRによる稼働記録

– Oracle Javaの長期保守

: Java SEのupdateを長期間提供

34

Dockerベースの軽量プラットフォーム

Load Balancer

Node (App 2)

Docker

Java SE (App 1)

Docker

Java SE (App 3)

Docker

Node (App 2)

Docker

Java SE (App 1)

Docker

Java SE (App 3)

Docker

Java SE Node.js PHP

Page 35: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

35

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET 空間検索 Oracle Spatial

Node.js PaaS

mBaaS (mobile Backend

as a Service) JavaScript framework

Oracle JET

Page 36: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Oracle JET (JavaScript Extension Toolkit)

•オープンソース+オラクルのasset – Oracle JET を構成するオープンソース・プロジェクト

– オラクルが追加したasset

• 双方向データ・バインディングのための共通データ・モデルAPI、i18n/L10N、アクセシビリティ、データ検証/変換、データ可視化UI

• Webとモバイルアプリの両方に対応

• オープンソース (Universal Permissive License)

36

エンタープライズ・システムのための JavaScript ツールキット

Knockout.js RequireJS jQuery jQuery UI Hammer

Page 37: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

画面

Wrap-up – Oracle GO

37

Mobile Cloud Service

Application Container Cloud Service

Database Cloud Service

Oracle JET

空間検索 Node.js

PaaS mBaaS

強力な空間検索機能 • オラクルDB秘蔵の空間処理機能Oracle Spatialを利用可能

サーバー側実装の極小化 • 空間検索はDBクラウド、モバイルとのやりとりはMobileクラウドを活用

フルJavaScript • フロントエンドもサーバーサイドも、全てJavaScriptで実装

Page 38: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |

Resources

• Oracle Spatial – Oracle Spatial 概要説明資料 http://www.slideshare.net/oracle4engineer/spatial-features

– Oracle® Spatial and Graph開発者ガイド 12cR1 https://docs.oracle.com/cd/E57425_01/121/SPATL/toc.htm

• Mobile Cloud Service – Oracle Cloud Days 2016: D1-F4 Oracleの最新モバイル戦略とクラウドソリューション

• Application Container Cloud Service & Oracle JET – [JavaDay Tokyo 2016] コンテナクラウドとJava Flight Recorderで始めるアジャイル開発

http://www.oracle.co.jp/jdt2016/pdf/1-D.pdf

– http://www.oracle.com/technetwork/jp/developer-tools/jet/overview/index.html

– http://oraclejet.org/

38

Page 39: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 39

Oracle Digitalは、オラクル製品の導入をご検討いただく際の総合窓口。 電話とインターネットによるダイレクトなコニュニケーションで、どんなお問い合わせにもすばやく対応します。

もちろん、無償。どんなことでも、ご相談ください。

Page 40: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 40

Page 41: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 41

Page 42: オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる [Oracle Cloud Developer Day 2016]