[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp/index.php?FrontPage]] -[[戻る>FrontPage]] *目次 [#u07bf137] #contents *概要 [#g80e952d] SaaS設計のポイントを纏めている。 *マルチテナント対応 [#i82ccf3b] **データ [#o96490c2] ***分割キー [#m54dd84b] 店舗やユーザなどのIDでデータを水平分割する。 ***マスタ・テーブル [#s152a9c9] -各種設定情報 -分割キーにより店舗やユーザを識別。 -非構造化データが多くなる場合、JSONなどを使用する。 ***トランザクション・テーブル [#lbe30b37] -各種エントリ情報 -登録データ、分割キーにより店舗やユーザを識別。 -非構造化データが多くなる場合、JSONなどを使用する。 -集計対象のデータは予めスキーマを定義しておく。 **カスタマイズ [#xf865e8c] ***定義 [#sabc29ae] -システム共通 --定義ファイル ---*.config ---XML ---,etc. -ユーザ個別 --マスタ・テーブルに持たせる。 --スキーマ・レスの非構造化データを使用 ***プログラム [#zb7390ac] -カスタマイズはすべて定義で行うようにする。 -EUCでプログラムの追加は可能とする。 -マルチテナント時のプログラム追加をどうするか? --画面IDなどをGUIDにするなどして自由に追加可能にする。 --マスタ・データやトランザクション・データなどの付帯情報も増える。 ---分割キーで対応。 ---スキーマ・レスの非構造化データを使用。 *UIサブシステムの選定 [#v92a5a26] **業務系 [#yddb9d8a] -エントリ画面やグラフ表示、そしてコンテンツ部分もASP.NET Web Forms **デザイン重視 [#yc4ab126] -デザイン重視のコンテンツ部分はASP.NET MVC *DBMSの選定 [#d05b3825] **PaaS [#t74cdb03] -[[Google Cloud Platform]]のDB PaaSはMySQL -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]]。 **OSS-DB [#n72b9cf3] ***MySQL [#n8a84726] -商標権・著作権はOracleが保有。 -グローバルでのシェアが大きい。 -マルチストレージエンジン --MyISAMストレージエンジン ---トランザクション機能なし。 ---検索性能を重視する。 ---全文検索が利用できる。 --InnoDBストレージエンジン ---高い堅牢性とMVCCによる高い並列性を兼ね備えている。 ---メディア障害時の更新ログによるリカバリが可能。 ---あらゆるアプリケーションに対応出来るストレージエンジンとなった。 ***PostgreSQL [#ybefde21] -日本でのシェアが大きい。 -ACID重視(日本の市場でトランザクション機能が重視されていたため) ***参考 [#eed17fa0] -「PostgreSQL」が好調--Oracle DBの牙城に迫る? - ZDNet Japan~ http://japan.zdnet.com/article/35066741/ -DB-Engines Ranking - popularity ranking of database management systems~ http://db-engines.com/en/ranking *[[OpenChangiExecEngineの開発で検討したこと。]] [#y48dadaf]