Webアプリケーション開発の 基本的なポイント

Slides:



Advertisements
Similar presentations
PostGIS 、 QGIS 、 OGR. PostGIS 、 QGIS 、 OGR とは PostGIS とは QGIS とは – QGIS の使い方 シェープファイルの見方 WMS データの見方 PostGIS データの見方 GDAL/OGR ( OSGeo4W.exe )とは – メタデータの閲覧.
Advertisements

XML ゼミ 独習 XML ~ 第 6 章 XHTML~ 6.1 XHTML の概要 6.2 XHTML の構造 谷津 哲平.
データベースの基礎知識 ACEESS の基本操作. データベースの基礎知識 データベース  特定のテーマや目的に毎のデータの集合体 データベースソフトウェア  データベースを作成、管理するソフトウェアの総 称 Oracle(Oracle) IBM(DB2) Microsoft(SQL Server)
利用条件 本資料は改変を含む再利用は全て自由です。 原本に対して文言の変更並びにシートの追加および削 除等の改変を加える場合には、原本の作成者の氏名( 本資料においては「株式会社びぎねっと 代表取締役兼 CEO 宮原 徹 」、改変者の氏名、改 変個所の確認が可能となるよう原本の入手経路(
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
IIS 4.0で開発をするコツ Webアプリケーション構築.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
コンピュータプラクティス I 再現性 水野嘉明
最新ファイルの提供を保証する代理FTPサーバの開発
リレーショナル・データベース データベース論 第10回.
第1回.
第3回参考文献発表 PHP言語 岩永逸平.
ハルビン絵葉書コレクションシステムの再構築と機能追加 -サーバ側:PHPとMySQLを用いて
Flashプレイヤーを使った動画配信 情報工学科 宮本 崇也.
WEBから確認できる 駐車場管理システムについて
プログラムを「StiLL」で作成します。
「携帯待ち受けギャラリー」 環境情報学部3年 深澤 洋介.
UNIX Life KMSF M2 saburo.
WordPressの基礎.
PHPエディタによる 情報システム演習 01.
ケータイキット for Smarty のご紹介
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
市販のソフトウェアが これほど脆弱な理由 (それをどのように解決するか).
第4回 個人の動画配信補足のためのWeb構築
第2章 ソフトウェアの基礎知識 電子制御設計製図Ⅰ    2010年5月11日 Ⅲ限目.
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
コンピュータ基礎実習上級 #11画像ファイルと文字のフォーマット
第1回 JavaScriptゼミ ・ scriptエレメント ・ 記述における諸注意 ・ 古いブラウザへの対応方法
第2章 ソフトウェアの基礎知識.
Web App Semi 2008 #1 Web App Semi 2008 #1.
Enterprise CALS Systemの開発
共同ローカリゼーション フレームワーク 井上 謙次.
SWAT I18N 概要 付け足した機能(実行時に言語の切り替え-i18nの範囲で) 問題点(細かい技術的問題、根本的問題) 今後
Web上で管理・利用できる 面接予約データベースシステムの構築
2009/5/22 けーちゃん カンタン  Wikiで情報共有 あいさつ 2009/5/22 けーちゃん
 データベースによる並列処理 情報論理工学研究室  三宅健太.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
朝日大学大学院 経営学研究科 奥山 徹 データベース論 朝日大学大学院 経営学研究科 奥山 徹 2006/05/29 データベース論(7回目)
2016年度秋期 成果発表会 2016年11月25日 大阪開発センター 技術一部 畑中 龍樹.
第8章 Web技術とセキュリティ   岡本 好未.
2003年度 データベース論 安藤 友晴.
SVGを用いた地震データ検索・3D表示アプリケーションの開発
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
Microsoft MVP for Development Tools – Visual C++
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
Microsoft MVP for Development Tools – Visual C++
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
第4回 コンピューティングの要素と構成 平成22年5月10日(月)
ゲーム開発モデルの基礎.
通信機構合わせた最適化をおこなう並列化ンパイラ
JAVAについて 高橋 雅哉.
第2章 ソフトウェアの基礎知識 電子制御設計製図Ⅰ    2010年5月19日 Ⅱ限目.
Microsoft MVP for Development Tools – Visual C++
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
HP作成 そろそろまとめ編 担当:TAの人.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
データベース設計入門 初音玲.
データベース設計入門 初音玲.
売れるためのWEBサイト構築.
リレーショナル・データベース J2EE I (データベース論) 第2回 /
Androidアプリの作成 07A1069 松永大樹.
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
フィンテック企業が Linux で SQL Server の パフォーマンスと スケーラビリティを取得
PHP と SQL (MySQL) の連携 日本語のデータを扱う
CADシステムとソフトウェア 電子制御設計製図Ⅰ    2009年4月28日 Ⅲ限目.
Presentation transcript:

Webアプリケーション開発の 基本的なポイント 株式会社びぎねっと 代表取締役社長 宮原 徹(tmiyahar@Begi.net) http://Begi.net/

今日のアジェンダ どうやってWebアプリケーションのためのデータベースを選ぶか 文字コードを理解する 機能 性能 WebアプリケーションとDBにおける文字コード http://Begi.net/

「道具」としてのDBの選び方 どうやって使うのかを前提に 使うための情報が豊富であるか? 必要な機能が実装されているか? 自分で測定してみたベンチマークで性能が出ているか? 適正価格であるか? サポートが提供されているか? オープンソースであるか? http://Begi.net/

これらの要素が絡み合ってデータの性質が決定する。そしてその性質に合わせてデータベースを選ぶ。 どうやってデータベースを使う? 目的指向・DOA(*)で考えよう(データの5W1H) 誰が使うデータですか? 何のためのデータですか? どんなデータですか? どれぐらいのデータですか? どうやって使うデータですか? etc…etc… これらの要素が絡み合ってデータの性質が決定する。そしてその性質に合わせてデータベースを選ぶ。 *DOA:Data Oriented Approach http://Begi.net/

例)Webによる会員システム ユーザーインターフェースは全てWeb 会員情報を中心に関連データが存在 データの検索/入力/更新の頻度見積もり ER図はそれほど複雑ではない データの検索/入力/更新の頻度見積もり 検索が最も多いと仮定 ある程度の頻度で入力が発生 更新はあまり無い 削除はとりあえず問題にしない http://Begi.net/

例)Web会員システムを分析 検索≧入力>更新>削除 Webアプリケーションにおける処理頻度は概ね以下の通り トランザクションが必要となる一貫性を維持した更新処理が必要かどうかはアプリ次第 そもそもWebアプリは仕組みとしてトランザクション処理が難しく、不向き トランザクションの同時並行処理はリソースを消費し、パフォーマンスを低下させるおそれがある http://Begi.net/

Webシステムに適したDBとは? リソース(特にメモリ)を浪費しない データ量・回線速度相応のパフォーマンス 適切な開発環境・ミドルウェアが選択肢にある 商用ソフトウェアからのサポート スクリプト言語系(Perl,Ruby,PHP,Python…) ODBC,JDBCなど http://Begi.net/

パフォーマンスについて きちんとしたスキーマ設計 正しいインデックス 適切なSQL 最適な物理設計 ボトルネックの割り出し 正規化をきちんと行い、場合によっては非正規化 正しいインデックス インデックスは張ればいいというものではない 適切なSQL 条件文の書き方が速度を大きく左右することもある 最適な物理設計 ディスク、速いですか?メモリ、積んでますか? ボトルネックの割り出し 遅いのはDBのせいとは限らない http://Begi.net/

パフォーマンス比較 Oracleは別格なので比較対象外 比較試験条件 新郵便番号データ×3(24MB・37万件) メモリ64MB(フリーメモリ3MB程度まで圧迫) 曖昧検索処理(インデックス無し) MySQL:PostgreSQL=1:6(所要時間) Vaccum実行直後で1:1.5程度まで短縮可能 全件更新処理 PostgreSQLは更新を行う毎に速度低下(要Vaccum) http://Begi.net/

文字コードについて http://Begi.net/

文字コードって何? 画面等に表示される漢字は、プログラム内部ではバイト(ビット)で表現される 文字コードとは、この「内部コード」と「表示される漢字」の「対応関係」のことである 文字コードの例:SJIS,EUC,Unicode,ASCII等 表示する漢字の文字コード(表)が内部コードと異なっている場合、「文字化け」が発生してしまう http://Begi.net/

様々な所に存在する文字コード 文字コードが存在する場所 Apache PHP クライアント ブラウザ PHPファイル クライアントブラウザ データベース データベース http://Begi.net/

文字コードのセオリー 文字コードを統一する 見えないところに気を使う SJISならSJIS、EUCならEUCでファイルからDBまで全てを同じ文字コードで作成する 文字コード変換機能は出来るだけ使わない 見えないところに気を使う HTMLのMETAタグ内のContent-Type charsetなどでブラウザの動作が変わる http://Begi.net/

文字化けした時は? 各所の文字コードを再確認 UNIX系のソフトはデフォルトがEUCになっているため、文字コードの不整合を起こすことが多々ある ブラウザの設定で言語、文字コードエンコードの確認 最低、SJISとEUCの両方に対応し文字コード変換を行うことの出来るエディタを使おう http://Begi.net/

HTMLフォームの注意点 ブラウザによって動作が異なるが、受け取ったHTMLフォームの文字コードで入力データを送信 ブラウザの種類、バージョンによってはバグ(仕様?)で送出文字コードが固定されてしまったりするので、古いバージョンのブラウザなどを使っている場合には注意 携帯の場合には、絵文字に注意 http://Begi.net/