2017/01/28 .NETラボ 勉強会 2017年1月
ADO.NETでつながるクラウドデータ連携
自己紹介
桑島 義行
専門
データベーステクノロジー
ビジネスアナリティクス
Web API
所属
CData Software Japan 合同会社
• データ接続コンポーネントベンダ
• グローバルHQ:USノースカロライナ州
Twitter : @kuwazzy
Facebook : Yoshiyuki.Kuwajima
SlideShare : http://www.slideshare.net/cdatajapan
Qiita : http://qiita.com/kuwazzy
Codezine : https://codezine.jp/author/1671
Japan Web API Community : https://jwacom.connpass.com/
まず、はじめに今日のご出席の方のクラウドデータ
連携やWeb APIに関する利用状況を教えてください。
はじめに
「Web API」という用語を聞いたことがありますか?
よく知って
いる
45%
大体わかる
40%
聞いたこと
はある
15%
出展:JWACOM#01 アンケート
はじめに
 Web API をご自身で使ったことがありますか?
よく使う
52%
使ったこと
はある
40%
使ったこと
はない
8%
出展:JWACOM#01 アンケート
はじめに
 外部連携を要件とするアプリケーション開発の頻度?
たまにあ
る
45%
ない
15%
よくある
40%
出展:JWACOM#01 アンケート
はじめに
これらのAPI を使ったことがありますか? Yes/No
53%
47%
maps
Yes No
39%
61%
SFA, marketing
Yes No
42%
58%
Collaboration
Yes No
56%
44%
RDB
Yes No
33%
67%
news, weather
Yes No
22%
78%
ERP
Yes No
31%
69%
NoSQL
Yes No
22%
78%
AI, cognitive
Yes No
53%
47%
SNS
Yes No
出展:JWACOM#01 アンケート
はじめに
どのようなツールからAPI を使っていますか?
0 5 10 15 20 25 30
ETL/EAI ツールを使う
FTP
SaaS 経由
その他
直接 API を呼び出す
API の利用方法
出展:JWACOM#01 アンケート
はじめに
 API 連携で挫折した経験はありますか?
トライした
ことがない
2%
ない(全部
できた)
7%
よくある
25%
何度かある
58%
(空白)
8%
出展:JWACOM#01 アンケート
はじめに
 API 連携開発で挫折した理由は?
0 5 10 15 20 25
API がよく変更されるので面倒
JSON, XML が扱いにくい
ドキュメントが難解、見つけにくい、英語
既存のアプリケーションやツールで利用が困難
当初想定した結果が返ってこない
API 利用で挫折した理由
出展:JWACOM#01 アンケート
はじめに
 API を使おうと思い、API が提供されていなかった経験は?
たびたびあ
る
36%
たまにある
58%
ない
6%
出展:JWACOM#01 アンケート
はじめに
データ連携要件の変化
オンプレ - データ連携先
「主要なDB、ERP、ファイ
ルフォーマットに対応して
ください」
顧客
少し前までのデータ連携先
「主要な接続先は
これくらいかな」
顧客
Saas 全盛の今のデータ連携先(一部)
ここ10年で公開されてい
るAPI (Public API) は増
加。
2017年1月現在16,618の
Public API が存在。
Public API より大きな非
公開のAPI も存在。
「クラウドはAPI を公開
して当然」という流れ。
(ProgrammableWeb Research Centerより引用)
急増するAPI
従来からのデータ連携の価値
従来からの価値
データの
一元管理
MDM(マスターデータ
マネジメント)
多重入力削減による業務負荷の低減、不整合なく鮮度が高いデータによる顧客サービスの向上
精度向上による業務効率の向上
DWH 蓄積することで時系列や傾向の分析に利用、複数システムのデータを取り込むことでクロス分析
オート
メーション
ワークフロー アプリケーション内の承認フロー、承認後に他アプリケーションのイベントを起動
アラート
異例な取引の探知、セキュリティ、営業に向けた有望な顧客の動きの通知
センサーや機器からの知るべき情報の通知
AI
これまで人間が判断して手作業が発生していたアプリケーション間をAI(botなど)がオートメー
ション化
可用性の
確保
バックアップ データの保護
フェイルオーバー 予備システムへの切り替え
レプリケーション 分析用のデータベース構築など
Web API によるデータ連携の新しい価値
新しい価値
パーソナライズ
されたデータ利用
セルフサービス
ビジネスユーザが主導で自身の業務に必要な情報を収集し、分析することで意思決定サイクル
のスピードアップを図れる
WEB連携サービ
ス
複数のクラウド上のサービスを自らの手でつなぎ合わせることで、業務の自動化、効率化を図
れる
サービス指向
アーキテクチャ
SOA
大規模なシステムを、業務の単位でサービスとして分割し、相当するソフトウェアの機能同士
をネットワーク上で連携することでシステム全体を構築する
マイクロサービ
ス
システムを複数のサービスの集合体として構成し、サービス同士をシンプルなREST系のAPIで
連携させることで、変化に強いサービスを構築する
オープン
イノベーション
事業提携 非コア機能の外部からの補完
ハッカソン・
アイディアソン
単一のサービスや製品だけでは生み出せない新しい付加価値サービスの創出、社内リソースの
みに頼るのではなく、外部の優れた技術やアイディアの取り込み
マッシュアップ 複数のWebサービスから必要な機能を組み合わせて新たなWebサービスとして仕立て上げる
オープンデータ
政府や行政が保有するデータを誰でも利用できるようにオープンにすることによる国民生活の
質の向上や企業活動での利用による新ビジネスの創出や効率化を推進する取り組み
Web APIを利用する方法
Web APIを利用する方法
方法 例
コーディング JavaScript / PHP / Ruby / Python / Java / .NET 等
APIテスト
クライアント
CUI型:cURL / Wget 等
GUI型:Postman / Advanced REST Client / Insomnia / DHC / Swagger UI 等
テスト自動化:JMeter / SOAtest
ライブラリ・
コンポーネント
各サービス事業者が提供するSDK
サードパーティ製のAPIデータアクセスコンポーネント
API管理サービス
Azure API Management / Amazon API Gateway / IBM API Connect / Apigee(Google) /
MuleSoft / 3 Scale(Redhat) / CA API Gateway / CData API Server / Kong 等
データ活用ツール
(API 連携内包)
各種 ETL / EAI / BI / Data Mining / レポーティング 等
Point-to-point 型
連携サービス
IFTTT / Zapier / Microsoft Flow・Logic Apps / Built.io / myThings
コーディング
プログラム言語
JavaScript/PHP/Ruby/Java/.NET等
API リファレンス
リクエスト(HTTPメソッド)
GET/PUT/POST/DETELEなど
レスポンス
XMLやJSONなど
ステータスコード
認証
OAuthなど
FacebookのGraph APIのリファレンス
https://developers.facebook.com/docs/graph-api/reference/v2.8/object/likes
APIテストクライアント
Postmanでe-statsの統計データ一覧を取得
コマンドラインツール
cURL / Wget 等
GUIツール
Postman / Advanced REST Client /
Insomnia / DHC / Swagger UI 等
テスト自動化ツール
Jmeter / SOAtest
cURLからGetメソッドを実行
ライブラリ・コンポーネント
SDK APIデータアクセスコンポーネント
Facebookの公式SDKの例
https://developers.facebook.com/docs/apis-and-sdks CData Driversの例
API管理サービス
主要なプロダクト
Azure API Management / Amazon API
Gateway / IBM API Connect / Apigee(Google)
/ MuleSoft / CA API Gateway / 3
Scale(Redhat) / CData API Server / Kong
主な機能
• 構築
• 公開(デプロイ)
• ゲートウェイ機能
• 管理(認証 / LifeCycle / アクセス制御 /
レート制限)
• 監視 Open Source API Management Kong
https://getkong.org/
データ活用ツール(API連携内包)
ツールの種類
• ETL / EAI
• BIツール
• Data Mining
• レポーティング ツール
特徴
データ接続機能に、従来からあすファイルや
データベースに加えて、Web APIを意識せずに
クラウドサービスへの接続ができる。
Microsoft Power BIの例
Point-to-point 型連携サービス
IFTTTのレシピ例
Sharepointリストに項
目が追加されたら
SlackにPOSTする
Microsoft Flowの例
個人での利用
IFFFT / Zapier / Microsoft Flow /
Built.io /my Things
プラットフォームとしての利用
Azure Logic Apps / クラウドベースのEAI
クラウドデータ連携時の
悩みどころ
Microsoftのクラウド関連テクノロジー
クラウドプラットフォーム
Azure
ビジネスプラットフォーム
Office365
ERP/CRM
Dynamics
365
コラボレー
ション
SharePoint
メール
Exchan
ge
ストレージ
One Drive
WordExcel
Pow
er
Point
分析
Power
BI
自動化
Flow
アプリ開発
Power Apps
基盤
ビジネス
コンテン
ツ
データ
活用
.NETやPowerShellから利用しやすいようなSDKが揃っている
実際の企業や案件では…
クラウドプラットフォーム
AWS
CRM
Dynamics
365
コラボレー
ション
Kintone
メール
Gmail
ストレージ
Box
Goog
le
Docs
Goog
le
Shee
t
Goog
le
スラ
イド
分析
Tableau
自動化
ETL
Asteria
アプリ開発
Javaカスタムアプリ
基盤
ビジネス
コンテン
ツ
データ
活用
オンプレ×クラウド、複数の製品・サービスを組み合わせて利用して
いるケースが多い。
ERP
オンプレ
SAP
オンプレ
データセンター
各APIリファレンスを見ながらコーディング?
Web APIを活用するうえでの
悩みどころ
Web APIは変化する
クラウドサービス自体
規格やスタンダード(業界標準)
世の中には数多くのWeb APIが存在する
オープンAPI(公開されているAPI)とクローズドAPI(限定された利用)
※オープンAPIだけでも約16,500種類
引用元: ProgrammableWeb(http://www.programmableweb.com/category/all/apis)
組み合わせての利用を前提(マイクロサービス指向)
ADO.NETでクラウドデータ連携
サーバ環境
CData = データ連携コンポーネント
JDBC/ODBC
/ADO.net
DB
Web API ⇔SQL をサポートするツールベンダー
CData Drivers
SaaS/NoSQL/Web API
SQL HTTPS
CData API Server
他アプリ・サービスへ
SQL REST
Tools
BI・帳票
ETL・workflow
CRM/SFA/Marketing
Salesforce
Microsoft Dynamics CRM
NetSuite
SugarCRM
OracleCRM**
Highrise CRM**
Zoho CRM
Google Analytics
Google AdWords
Oracle Eloqua
HubSpot
Marketo
MailChimp*
SendGrid*
YouTube*
YouTube Analytics*
Magento*
DB (RDB & NoSQL)
Amazon DynamoDB
Amazon SimpleDB
Google BigQuery
Azure Table
Apache Cassandra
HPCC ECL Queries
MongoDB
Couchbase
Microsoft SQL Server
Oracle**
MySQL
SQLite
Microsoft Access
Microsoft Active Directory
HBase*
Groupware & ERP
Microsoft SharePoint
SharePoint Excel Service
Google Apps
Basecamp**
WordPress**
Kintone**
Microsoft Dynamics GP
Microsoft Dynamics NAV
Microsoft Dynamis AX
NetSuite CRM & ERP
SAP NetWeaver
Accounting
Microsoft Dynamics GP
Sage 50
Xero Accounting
Exact Online
FreshBooks
QuickBooks
Money Forward*
Freee
Reckon*
Intacct*
ServiceNow*
JIRA*
Smartsheet.com*
Microsoft Project*
REST Services
OData
JSON
XML
Document & File Formats
Microsoft Excel
Google Sheets
CSV/TSV*
xBase*
SNS
Force.com*
Twitter
Facebook
LinkedIn**
Uncategorized Sources
Twilio*
Gmail
PowerShell**
Bing Search**
Bullhorn CRM**
Microsoft Exchange
Google Search**
Oracle Sales Cloud**
Financial & E-Commerce
Authorize.NetSuite*
Square*
eBay*
PayPal*
Stripe*
E*TRADE*
OpenExchangeRate**
Quandl*
Networking & Auth
LDAP
OFX Transactions*
Email
RSS
*は、CData Software (米国)のみの取り扱い
**はComing Soon
業界最多級の
データソースラインアップ
 BI(ビジネスインテリジェンス)、アナリティクス、ETL、カスタム業務システムか
ら簡単にデータ取得が可能
 データのRead/Write/Update
 オフライン、キャッシング機能
 プロキシ、ファイアウォール設定
 SQL サポート:
• String, date, & numeric などのデータ型
• SUM, AVG, MAX, MINなどのファンクション
 Secure (SSL) 接続
CData Driver 機能概要
 SQL Server と同感覚で
サーバーエクスプロー
ラーにSaas データの接続
を追加。
 接続設定をするだけで、
データをテーブルとして
取得して、 アプリケー
ション開発で利用可能
に。
 EntityFramework 6、
MVC、LINQクエリ対応
接続例ADO.NET:
Visual Studio に統合
 Microsoft Visual Studio 2005、2008、2010、2012、2013、および2015
 DataReader, DataAdapterを使用したクエリ
 CRUD
 EntityFramework 6、LINQクエリ対応
 ファイルアップロード、ダウンロードなどSQLで記述できないような処理は
ストアドプロシージャを利用
接続例ADO.NET:
Visual Studio に統合
New!! NuGetパッケージで提供
2017/01/20より開始 (https://www.nuget.org/profiles/CDataSoftware )
「顧客情報」から「合同会社」の一覧を取得
SELECT * FROM Kintone.顧客情報 WHERE (会社名 LIKE '%合同会社%')
VisualStudioのクエリデザイナーから顧客を追加・削除してみる
Saas
kintone
ローカルPC
CData ADO.NET
kintone Provider Visual Studio
ADO.NET for kintoneを使ったデモ
SQLREST
Dynamics 365 for Sales内の取引先
企業(Acccount)とSalesforce内の
取引先をC#で作成したUI上で同期
するアプリケーション例
http://qiita.com/kasoorimethi/items/a13bed4743454550fb8a
Saas とSaas のデータ連携を.NET
アプリで作成
評価版のご案内
http://www.cdata.com/jp/download/
全製品、機能制限がない30日間利用可能な評価版をダウンロード可能
是非、お試しください!!
- Thanks –
ご清聴ありがとうございました

ADO.NETでつながるクラウドデータ連携

Editor's Notes

  • #32 いつもはこんな話してます。 SaaS/NoSQL/Web API をもっと使いやすくするデータドライバー SQL とREST やらSOAP やらとどっちが好きすか? もう一つは、オンプレDBをいかに手抜きしてREST API として公開するかというサーバーツール。