「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
SaaS設計のポイントを纏めている。
マルチテナント対応 †
データ †
分割キー †
店舗やユーザなどのIDでデータを水平分割する。
マスタ・テーブル †
- 各種設定情報
- 分割キーにより店舗やユーザを識別。
- 非構造化データが多くなる場合、JSONなどを使用する。
トランザクション・テーブル †
- 各種エントリ情報
- 登録データ、分割キーにより店舗やユーザを識別。
- 非構造化データが多くなる場合、JSONなどを使用する。
- 集計対象のデータは予めスキーマを定義しておく。
カスタマイズ †
定義 †
- ユーザ個別
- マスタ・テーブルに持たせる。
- スキーマ・レスの非構造化データを使用
プログラム †
- カスタマイズはすべて定義で行うようにする。
- EUCでプログラムの追加は可能とする。
- マルチテナント時のプログラム追加をどうするか?
- 画面IDなどをGUIDにするなどして自由に追加可能にする。
- マスタ・データやトランザクション・データなどの付帯情報も増える。
- 分割キーで対応。
- スキーマ・レスの非構造化データを使用。
参考 †
UIサブシステムの選定 †
業務系 †
- エントリ画面やグラフ表示画面はASP.NET Web Forms
デザイン重視 †
- デザイン重視のコンテンツ部分はASP.NET MVC
- マルチプラットフォームをターゲットとしたアプリケーション。
DBMSの選定 †
PaaS †
Google Cloud PlatformのDB PaaSはMySQL
OSS-DB †
PostgreSQLに追い風。
MySQL †
- 商標権・著作権はOracleが保有。
- グローバルでのシェアが大きい。
- マルチストレージエンジン
- MyISAMストレージエンジン
- トランザクション機能なし。
- 検索性能を重視する。
- 全文検索が利用できる。
- InnoDBストレージエンジン
- 高い堅牢性とMVCCによる高い並列性を兼ね備えている。
- メディア障害時の更新ログによるリカバリが可能。
- あらゆるアプリケーションに対応出来るストレージエンジンとなった。
PostgreSQL †
- 日本でのシェアが大きい。
- ACID重視(日本の市場でトランザクション機能が重視されていたため)
- PostgreSQLのデータプロバイダについてはコチラ。
参考 †
インフラ †
VM †
Cloud †
VPS †
実はVPSも良いのではないかと思っている。
Web †
SSL †