SlideShare a Scribd company logo
1 of 27
Download to read offline
アンケートシステムを
m3.comから独立させる
エムスリー エンジニア 岩本次郎
1
自己紹介
前職
・SIer
エムスリーでの主なプロダクト
・アンケートデザインシステム(survey-designer-js)
・アンケート周りの配信システムなど
担当領域
・インフラ・サーバサイド・クライアントサイドの
 設計・実装・運用を担当 2
背景
3
背景
Reactを使って本気でアンケートシステムをつくった
● エンジニアでなくてもGUIでアンケートが作成できる
● エンジニアが追加でカスタマイズすることもできる
エムスリーの海外グループ会社から使えないかという打診
4
背景
難しい
5
背景
1. m3.comの会員情報が必要
2. m3.comの外部システムと密に結合している
6
アンケートシステムの仕組み
7
アンケートシステムの仕組み
NO フェーズ 手順 実施モジュール
1 アンケート
作成・配信
アンケートの設計 アンケート設計システム
2 対象者の登録 アンケート管理システム
3 アンケートの開始 アンケート管理システム
4 メール・お知らせなどのチャネルへの配信 アンケート管理システム
5 ユーザ回答 チャネルへの表示 アンケート回答システム
6 認証 アンケート回答システム
7 回答 アンケート回答システム
8 ポイント等の進呈 アンケート回答システム
9 目標回答数に達した場合にアンケート終了 アンケート回答システム
10 チャネルの配信停止 アンケート回答システム 8
9
切り出したい箇所
10
切り出しに問題となる依存
11
m3.comからアンケートシステムを独立させる変更
1. システムの役割整理
2. 認証の依存を排除
3. システム間の依存関係を排除
12
システムの役割整理
13
アンケートシステムの仕組みの実施モジュール整理
NO フェーズ 手順 実施モジュール
1 アンケート
作成・配信
アンケートの設計 アンケート設計システム
2 対象者の登録 アンケート管理システム
3 アンケートの開始 アンケート管理システム
4 メール・お知らせなどのチャネルへの配信 配信管理システム
5 ユーザ回答 チャネルへの表示 配信管理システム
6 認証 配信管理システム
7 回答 アンケート回答システム
8 ポイント等の進呈 配信管理システム
9 目標回答数に達した場合にアンケート終了 配信管理システム
10 チャネルの配信停止 配信管理システム 14
15
認証の依存を排除
16
17
認証方法
1. 配信管理システムにエントリポイントを作成
2. ユーザアクセスの認証
3. アンケート回答システムにリダイレクト
このときにURLのクエリパラメータにJWTを設定
4. アンケート回答システムでJWTの検証
注意点
JWTが使いまわしできないように有効期限を短くする
18
システム間の依存関係を排除
19
20
m3.comとのシステム連携
1. メールやお知らせに関することは配信管理システムの責任
2. GCP Pub/Subを利用することで依存を切る
a. アンケート回答側はイベントを送信するまでが責任範囲
b. 配信管理はイベントを受け取ってからが責任範囲
21
GCP Pub / Subを使うときの注意点
1. at-least-once 配信であることに注意する
結果整合性を保った実装にする必要がある
2. 順序が指定されていない場合は順不同で取得される
順序を指定することも可能
3. トランザクションに注意する
次ページ以降参照
22
Pub / Subを使うときの注意点
23
Pub / Subを使うときの注意点
レスポンスが無い レスポンスがない場合の事象
・Pub / Subの登録に成功
・Pub / Subの登録に失敗
どっち?
24
Pub / Subを使うときの注意点
結果整合性がある処理なので、
Pub/Sub登録が成功するまで繰り返す
25
26
まとめ
キレイな設計を行うために行ったこと
1. システムの役割整理
行っている処理の責任範囲を明確に分けてた
2. 認証の依存を排除
JWTによる認証
3. システム間の依存関係を排除
GCP Pub / Subを使った依存関係の排除
27

More Related Content

Similar to アンケートシステムをm3.comから独立させる

20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.120160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1it-innovation
 
システムエンジニア勉強会『入門編』
システムエンジニア勉強会『入門編』システムエンジニア勉強会『入門編』
システムエンジニア勉強会『入門編』Nobuhito Ikeda
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析貴志 上坂
 
Keyword System Test
Keyword System TestKeyword System Test
Keyword System TestToru Koido
 
新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話
新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話
新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話KentaEndoh
 
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方Fixstars Corporation
 
構築者に知っておいてもらいたい 運用設計者が語るAWS @Developers.IO 2015
構築者に知っておいてもらいたい運用設計者が語るAWS @Developers.IO 2015構築者に知っておいてもらいたい運用設計者が語るAWS @Developers.IO 2015
構築者に知っておいてもらいたい 運用設計者が語るAWS @Developers.IO 2015Kazuki Ueki
 
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計Hironori Washizaki
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre正善 大島
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかTetsuo Ajima
 
STOVE_website_dl_1.pdf
STOVE_website_dl_1.pdfSTOVE_website_dl_1.pdf
STOVE_website_dl_1.pdfSTOVEInc1
 
システム構築の基礎
システム構築の基礎システム構築の基礎
システム構築の基礎Masanobu Takagi
 
IBM XCITE Spring 2015 - XPages application success story and IBM Bluemix
IBM XCITE Spring 2015 - XPages application success story and IBM BluemixIBM XCITE Spring 2015 - XPages application success story and IBM Bluemix
IBM XCITE Spring 2015 - XPages application success story and IBM BluemixAtsushi Sato
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析貴志 上坂
 
第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料Tae Yoshida
 
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformQiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformDaiyu Hatakeyama
 

Similar to アンケートシステムをm3.comから独立させる (20)

20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.120160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
20160710_PMI日本フォーラム2016_講演資料_ITI小久保v1.1
 
システムエンジニア勉強会『入門編』
システムエンジニア勉強会『入門編』システムエンジニア勉強会『入門編』
システムエンジニア勉強会『入門編』
 
UShareSoft_20130425
UShareSoft_20130425UShareSoft_20130425
UShareSoft_20130425
 
UShareSoft_20130425
UShareSoft_20130425UShareSoft_20130425
UShareSoft_20130425
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
Keyword System Test
Keyword System TestKeyword System Test
Keyword System Test
 
新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話
新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話
新規システムUI開発で設計失敗したけどいい感じにリファクタリングできた話
 
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
 
構築者に知っておいてもらいたい 運用設計者が語るAWS @Developers.IO 2015
構築者に知っておいてもらいたい運用設計者が語るAWS @Developers.IO 2015構築者に知っておいてもらいたい運用設計者が語るAWS @Developers.IO 2015
構築者に知っておいてもらいたい 運用設計者が語るAWS @Developers.IO 2015
 
It化コンセプトMuse
It化コンセプトMuseIt化コンセプトMuse
It化コンセプトMuse
 
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
 
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
 
STOVE_website_dl_1.pdf
STOVE_website_dl_1.pdfSTOVE_website_dl_1.pdf
STOVE_website_dl_1.pdf
 
システム構築の基礎
システム構築の基礎システム構築の基礎
システム構築の基礎
 
IBM XCITE Spring 2015 - XPages application success story and IBM Bluemix
IBM XCITE Spring 2015 - XPages application success story and IBM BluemixIBM XCITE Spring 2015 - XPages application success story and IBM Bluemix
IBM XCITE Spring 2015 - XPages application success story and IBM Bluemix
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料第5回SIA研究会(例会)プレゼン資料
第5回SIA研究会(例会)プレゼン資料
 
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI PlatformQiita x Microsoft - 機械学習セミナー Microsoft AI Platform
Qiita x Microsoft - 機械学習セミナー Microsoft AI Platform
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (12)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

アンケートシステムをm3.comから独立させる