「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>FrontPage]]
-[[戻る>サービス]]

*目次 [#u07bf137]
#contents

*概要 [#g80e952d]
SaaS設計のポイントを纏めている。

*[[企画]] [#mf191810]
*セキュリティ [#d0e9a8ad]

*[[認証基盤]] [#j7e18e58]
**[[認証基盤]] [#j7e18e58]
先ずはサインアップさせないと何もできない。

*マルチテナント対応 [#i82ccf3b]
**[[ゼロトラスト]] [#b64b5b1d]
[[ゼロトラスト]]なる概念の追加。

**データ [#o96490c2]
***分割キー [#m54dd84b]
店舗やユーザなどのIDでデータを水平分割する。
*インフラ [#a4656209]

***テーブル分割 [#s152a9c9]
**VM [#uf233794]

***スキーマ分割 [#lbe30b37]
***[[クラウド]] [#k896abe7]

**カスタマイズ [#xf865e8c]
***VPS [#s24f6aa5]
実はVPSも良いのではないかと思っている。

***定義 [#sabc29ae]
-システム共通
--定義ファイル
---*.config
---XML
---,etc.
-Windows Serverが使えるVPSサービスを比較 | VPS-FAN~
http://vps-fan.com/windows_server/
--VPSサービス仕様 WindowsServerオプション:レンタルサーバー ABLENETのVPS~
エイブルネット・ホスティングの仮想専用サーバー 転送量無制限~
https://www.ablenet.jp/vps/spec/op_win.html
--さくらのVPS for Windows Server~
http://solution.sakura.ad.jp/windows_vps/

-ユーザ個別
--テーブルに持たせる。
--スキーマ・レスの非構造化データを使用
**Web [#ldbc1e31]

***プログラム [#zb7390ac]
-動作のカスタマイズは定義で行うようにする。
-マルチテナント時のプログラム追加をどうするか?
***[[Apache vs nginx]] [#l382b8c1]
-[[Apache]]
-[[nginx]]

**参考 [#ub7fcbe8]
-マルチテナント データ アーキテクチャ~
https://msdn.microsoft.com/ja-jp/library/aa479086.aspx
***SSL [#f504ba7f]
-[[Lets’s Encrypt]]

-知られざる「マルチテナントアーキテクチャ」
--(1)~SaaSはみんな同じではない? - Publickey~
http://www.publickey1.jp/blog/09/1saas.html
--(2)~スケーラビリティのカギは組織ID - Publickey~
http://www.publickey1.jp/blog/09/2id.html
--(3)~スキーマとメタデータの謎 - Publickey~
http://www.publickey1.jp/blog/09/3_2.html
-SSLサーバ証明書の料金比較と選び方総まとめ | ServerKurabe~
http://serverkurabe.com/ssl-matome/

*UIサブシステムの選定 [#v92a5a26]
**DBMS [#d05b3825]

***[[SaaS>クラウド#ba07f897]] [#t74cdb03]

***[[OSS-DB]] [#n72b9cf3]

**Network [#y3d6518e]

***DNS [#yb1dcb56]
-[[Dynamic DO!.jp]](public
-クラウド・サービスなどで提供される。
--public
--private

***VPN [#d15e4651]
クラウド・サービスなどで提供される。

***プロキシ [#a38efa7e]
クラウド・サービスなどで提供される。

**配信 [#w31fa6a5]
***[[HTTPキャッシュのコントロール]] [#g03a7d29]
***[[CDN(Content Delivery Network)]] [#i5c04166]

*UIサブシステム [#v92a5a26]

**業務系 [#yddb9d8a]
-エントリ画面やグラフ表示画面はASP.NET Web Forms
-エントリ画面やグラフ表示画面はASP.NET Web Formsでも良かったが、
-[[.NET Core>.NET Coreのインストールとデプロイ]]に移行されないのでメンテナンス・フェーズとなった。

**デザイン重視 [#yc4ab126]
-デザイン重視のコンテンツ部分はASP.NET MVC
デザイン重視のコンテンツ部分は[[ASP.NET Core MVC>ASP.NET Coreのインストールとデプロイ]]など。

**[[スマホ]]/タブレット [#bdcc17e8]
**性能・操作性重視 [#t31f94d8]
性能・操作性を重視する場合、ポストバックではなく、WebAPIにより処理する、~
Single-page application開発用の[[(MV*) UIフレームワーク]]がある。

**[[スマホ>#d0a00e9d]] / [[タブレット>#e6e04fac]] [#bdcc17e8]

***[[レスポンシブデザイン>Bootstrap#l5082446]] [#a4bb8288]
[[スマホネイティブ>#bdfe0b59]]を覚えるのが大変なので、~
[[HTML/CSS/JavaScript]]の[[レスポンシブデザイン>Bootstrap#l5082446]]で開発したいケースも多い。

***[[スマホネイティブ]] [#bdfe0b59]
-[[HTML/CSS/JavaScript>#a4bb8288]]の操作性やグラフィックを上回る。

-フロントエンド多様化の中、サービスのデリバリーのために無視できなくなってきている。

***[[ハイブリッドアプリ]] [#s8e096de]
-マルチプラットフォームをターゲットとしたアプリケーション。

-[[HTML/CSS/JavaScript>#a4bb8288]]と[[スマホネイティブ>#bdfe0b59]]を組み合せて開発する。

-皮(側?)ネイティブと呼ばれる[[スマホネイティブ>#bdfe0b59]]の中に、~
[[WebView]]を使用して[[HTML/CSS/JavaScript>#a4bb8288]]をロードして機能する。

-自作の皮(側?)ネイティブだけではなく
--[[Cordova (PhoneGap)>ハイブリッドアプリ#q74ad5ff]]
--[[Monaca>ハイブリッドアプリ#e119c229]]

>などのプロダクトも使用できる。

***[[クロスプラットフォーム開発ツール]] [#b74eab64]
-[[ハイブリッドアプリ>#s8e096de]]以外の[[クロスプラットフォーム開発ツール]]も複数登場してきている。
-[[ハイブリッドアプリ>#s8e096de]]と比べ、ネイティブ・アクセス性と性能が良い。

**[[スマホ]] [#d0a00e9d]
***[[プラットフォーム>スマホ#n7946a19]] [#mc41ffbb]
***[[機能>スマホ#pd3339bf]] [#a5f73c18]
***[[開発>スマホ#ad75f098]] [#h5e22bb6]

**タブレット [#e6e04fac]

***画面サイズ [#v0ed5f7e]
-4:3(16:10)が主流

--よく使うメディアサイズとデバイスの縦横比〜なぜiPadは4:3なのか | 楽しく生きたいです~
--よく使うメディアサイズとデバイスの縦横比~
〜なぜiPadは4:3なのか | 楽しく生きたいです~
http://fun.hypoes.com/2014/06/ipad43.html

-本SaaSはTablet横置きになる。
--16(横):10(縦)に合わせて
--16(横):9(縦)の場合、横を%指定のレスポンシブで広げて対応。

***[[専用端末化]] [#u7175e58]

*外部サービス [#u09ec451]
**[[オンライン決済サービス]] [#q1b0fa15]
**[[通知プロバイダ]] [#jc9b547b]
**[[チャット]] [#xacff86e]
**[[mBaaS]] [#b83f9776]
**参考 [#z97d976a]
-VS系コンテンツ - マイクロソフト系技術情報 Wiki~
'> 詳細 > UI系 Subsystem & Framework~
https://techinfoofmicrosofttech.osscons.jp/index.php?VS%E7%B3%BB%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84#k830afa2

*[[要素技術]] [#t0e76655]
**[[画像処理とコンピュータビジョン]] [#o0e2e1fd]
**[[音声処理]] [#w614cfb6]
*マルチテナント対応 [#i82ccf3b]

*DBMSの選定 [#d05b3825]
**PaaS [#t74cdb03]
[[Google Cloud Platform]]のDB PaaSはMySQL
**データ [#o96490c2]

**OSS-DB [#n72b9cf3]
PostgreSQLに追い風。
***分割キー [#m54dd84b]
-店舗やユーザなどのIDでデータを水平分割する。
-フレームワークがそれ様にできてないとキツイ@ASP.NET Identity。

***MySQL [#n8a84726]
-商標権・著作権はOracleが保有。
-グローバルでのシェアが大きい。
***テーブル分割 [#s152a9c9]
SQLも変更になるし、あまりやらなそう。

-マルチストレージエンジン
--MyISAMストレージエンジン
---トランザクション機能なし。
---検索性能を重視する。
---全文検索が利用できる。
***スキーマ分割 [#lbe30b37]
-DBスキーマを増やしていくパターン。

--InnoDBストレージエンジン
---高い堅牢性とMVCCによる高い並列性を兼ね備えている。
---メディア障害時の更新ログによるリカバリが可能。
---あらゆるアプリケーションに対応出来るストレージエンジンとなった。
-Oracleでは、CDB/PDBがサポートされた。
--土台となっている1個のコンテナ・データベース(CDB)に、
--複数(最大252個)の仮想的なプラガブル・データベース (PDB)。

-MySQLのデータプロバイダについては[[コチラ>https://techinfoofmicrosofttech.osscons.jp/index.php?ADO.NET%E3%83%87%E3%83%BC%E3%82%BF%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80#k23406ba]]。
***コンテナ化 [#d68e3dc2]
コンテナ化したいが運用できる?~
(DBなどの永続化モノはコンテナ化しないのがベターユースっぽい)

***PostgreSQL [#ybefde21]
-日本でのシェアが大きい。
-ACID重視(日本の市場でトランザクション機能が重視されていたため)
-Docker・k8sでデータベースを実運用 | ユニコーンリサーチ~
https://unicorn.limited/jp/item/703

-PostgreSQLのデータプロバイダについては[[コチラ>https://techinfoofmicrosofttech.osscons.jp/index.php?ADO.NET%E3%83%87%E3%83%BC%E3%82%BF%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80#dad19e08]]。
**カスタマイズ [#xf865e8c]

***参考 [#eed17fa0]
-MySQLとPostgreSQLの違いを学んでみる。 - 青い空~
http://blog.goo.ne.jp/bluesky0077/e/70b851e84276f5958149630ca13efb17
***定義 [#sabc29ae]
-システム共通
--定義ファイル
---*.config
---XML
---,etc.

-「PostgreSQL」が好調--Oracle DBの牙城に迫る? - ZDNet Japan~
http://japan.zdnet.com/article/35066741/
-ユーザ個別
--[[属性テーブル>#w3d64cf7]]に持たせる。
--スキーマ・レスの非構造化データを使用

-DB-Engines Ranking - popularity ranking of database management systems~
http://db-engines.com/en/ranking
***属性テーブル [#w3d64cf7]
-テナント毎のカスタマイズがある場合は、
--属性マスタ・テーブル
--属性情報テーブル

-[[ADO.NETデータプロバイダ - マイクロソフト系技術情報 Wiki>https://techinfoofmicrosofttech.osscons.jp/index.php?ADO.NET%E3%83%87%E3%83%BC%E3%82%BF%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80]]
>を利用する。

*インフラ [#a4656209]
-参考
--マルチテナント・アーキテクチャ - @IT~
https://www.atmarkit.co.jp/fdotnet/bookpreview/azureoverview_0301/azureoverview_0301_01.html

**VM [#uf233794]
***Cloud [#k896abe7]
-[[Google Cloud Platform]]
-[[Microsoft Azure]]
***プログラム [#zb7390ac]
-動作のカスタマイズは定義で行うようにする。
-マルチテナント時のプログラム追加をどうするか?

***VPS [#s24f6aa5]
実はVPSも良いのではないかと思っている。
**参考 [#ub7fcbe8]
-マルチテナント データ アーキテクチャ~
https://msdn.microsoft.com/ja-jp/library/aa479086.aspx

-Windows Serverが使えるVPSサービスを比較 | VPS-FAN~
http://vps-fan.com/windows_server/
--VPSサービス仕様 WindowsServerオプション:レンタルサーバー ABLENETのVPS~
エイブルネット・ホスティングの仮想専用サーバー 転送量無制限~
https://www.ablenet.jp/vps/spec/op_win.html
--さくらのVPS for Windows Server~
http://solution.sakura.ad.jp/windows_vps/
-知られざる「マルチテナントアーキテクチャ」
--(1)~SaaSはみんな同じではない? - Publickey~
http://www.publickey1.jp/blog/09/1saas.html
--(2)~スケーラビリティのカギは組織ID - Publickey~
http://www.publickey1.jp/blog/09/2id.html
--(3)~スキーマとメタデータの謎 - Publickey~
http://www.publickey1.jp/blog/09/3_2.html

**Web [#ldbc1e31]
*外部サービス [#u09ec451]
**[[パッケージ管理システム]] [#q85ce36e]
**[[オンライン決済サービス]] [#q1b0fa15]
**[[通知プロバイダ]] [#jc9b547b]
**[[チャット]] [#xacff86e]

***SSL [#f504ba7f]
-[[Lets’s Encrypt]]
*[[要素技術]] [#t0e76655]
**[[画像・音声>要素技術#qa6076ee]] [#e5678755]
**[[データ>要素技術#n10e3af9]] [#j9bfc3e3]
**[[解析>要素技術#x2860ca6]] [#q812823d]
**[[ブロックチェーン>要素技術#x93d5410]] [#r31fb087]

-SSLサーバ証明書の料金比較と選び方総まとめ | ServerKurabe~
http://serverkurabe.com/ssl-matome/
*[[その他の技術]] [#g8e491ed]
**[[QRコード]] [#s066e5ed]
**[[ノーコード・ローコード]] [#ta747f58]

*活用 [#ye6557e0]
**[[OSS>連携OSS確認項目]] [#cabecac3]
**[[mBaaS]] [#b83f9776]
**[[SaaS活用]] [#g2d8aedd]

**SaaS Boost [#eb7283f5]
***[[AWS SaaS Boost]] [#c11a866d]
***他のも出てきそうやね。 [#ec47225c]

*その他 [#a3ef266f]
**[[サーバレスアーキテクチャ]] [#i128a40d]

*[[QandAAnalysisEngineの開発で検討したこと。]] [#y48dadaf]
**[[サーバレス・アーキテクチャ]] [#i128a40d]

**[[マルチサイド・プラットフォーム]] [#p72d5f48]

**xの開発で検討したこと。 [#tef59b59]

***[[QandAAnalysisEngineの開発で検討したこと。]] [#y48dadaf]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS