[編集] サーバサイドとクライアントサイドにおけるプログラミングの違い
[編集] サーバサイド
サーバサイドでのプログラミングには次のような特徴がある。
携帯アフィリエイト、モバイルアフィリエイト
アクセスが殺到しやすいウェブサイトではデータベースに高い負荷がかかりがちであるため、その解決のためにDBMSの知識がソフトウェア開発において求められることが多い。さらに金融系や基幹系業務やB2Bなどミッションクリティカルな領域での開発ではフロントエンドだけでなくバックエンドの開発も行うためUNIXやサーバ、ネットワーク、セキュリティ、計算機科学、ソフトウェア工学の知識が求められる事が多い[2]。
大森マンション、大田区マンション
またサーバサイドのプログラムでは多くの場合、複数ユーザの操作に応じた処理が同一プロセスのメモリ空間上で行われるので、ユーザごとに適切にメモリ上の情報が分離されるよう意識してプログラミングしなければならない。例えばJava ServletやJSPでクラス変数を不適切に使用して、そのサーブレットにアクセスする複数のユーザがその変数を共有してとんでもない事態に発生するミスも過去に実際起きている。[要出典]この変数がもし銀行口座の預金残高などに使われていた場合、その事態は顧客やエンドユーザーからの信用を徹底的に失うほど非常に深刻なものとなる。
セミナー
[編集] クライアントサイド
クライアントサイドでのプログラミングは、Ajax(JavaScript + XML)のようにウェブブラウザ上で動くプログラミング言語を用いて行われるケースもあるが、近年ではリッチクライアントが登場し、ウェブブラウザのかわりにブラウザ依存を避けられるJava Web StartやClickOnceやAdobe Flashを使うケースも増えている。
リフォームマンション
JavaScriptを用いる場合、ウェブブラウザには様々な実装系があるため[3]、クライアント側のでプログラミングを行うためには、複数の実装系に精通している必要があった。しかし、JavaScriptに使用されているAjaxがGoogle Mapsに実装されることで脚光を浴びるにつれて、Ajaxに使用する(prototype.jsなどの)ライブラリが、ブラウザ依存しにくいように設計されるようになってきた。Ajaxのライブラリ、フレームワークを使いこなしていれば複数の実装系依存に拘る必要は無くなってきている。
従来では、Web開発におけるクライアントサイドといえば、WebデザイナがHTMLと小規模なJavaScriptやAdobe Flashで作られたサイトを開発する程度のものであったため、オブジェクト指向プログラミングの習得についてほとんど意識する必要がなかった。しかし端末ハードウェアの性能が向上し、HTMLクライアントの限界と不満が叫ばれるようになってゆき、Ajaxとリッチクライアントが注目されるにつれて、クライアントサイドでもオブジェクト指向プログラミングを習得する必要性が高まってきた。リッチクライアントに使用する技術の一つであるSwingなどによるGUI開発ではオブジェクト指向プログラミングは、ファットクライアント、スタンドアロンアプリケーション時代から必須のものである。またAjaxのフレームワークの多くはオブジェクト指向プログラミングで設計されている[4]。
ウェブブラウザはウィンドウシステムやウィジェット・ツールキットとは異なり、アプリケーションがGUIを実現できるようにする事を元来の目的とするプログラムではなく、Web上のHTML文書などを閲覧することを主な目的とするプログラムなので、そのプログラム上で良いGUIを実現するには様々な工夫が求められる。その工夫の例としてAjaxやリッチクライアントがある。
[編集] リッチクライアント
HTMLクライアントの欠点を補うために、HTMLクライアントとクライアントサーバシステムで使われてきたファットクライアントとの中間に位置するリッチクライアントも注目されている。リッチクライアントとして挙げられるものは、Java Web Start、.NETのClickOnce、AdobeのAIRなどがある。これらの登場により、クライアントサイドの開発は一変しつつある。
[編集] 脚注
[ヘルプ]
^ HTMLによるウェブページの記述はプログラミングではなくウェブデザインとされることも多いが、HTMLはグラフィックデザインだけではなくクライアントからサーバへの通信内容をも定義する等、その境目はあまり明確ではない。
^ この場合、Web開発はフロントエンドだけに力を注いでいるため、ソフトウェア開発全体の氷山の一角に過ぎないケースがある。そのためにこのような開発のことをWeb開発とは呼ばないことがある。
^ ウェブブラウザのバージョンの違いによるバグの有無もあるが、そもそも実装系によって仕様が違うこともある。
^ 今では主にAjaxに使われているJavaScriptは従来、オブジェクト指向言語ではないと誤解されていた。
[編集] 関連項目
Ajax
JavaScript
CGI
Java Servlet
JavaServer Pages
JavaServer Faces
Java Web Start
Swing
Java Platform, Standard Edition(Java SE)
Java Platform, Enterprise Edition(Java EE)
PHP Hypertext Preprocessor
ASP
ウェブアプリケーション
Webアプリケーションフレームワーク
ウェブアプリケーションは、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。
ウェブアプリケーションの一例としては、ウィキペディアで使われているウィキやブログ、電子掲示板、オンラインバンキング、オンライントレード、ショッピングカートなどを挙げることができる。
PerlやPHPやRubyといったWebサーバ上で動作するスクリプト言語を利用して開発することが多いが、高速化のためにはCを利用することや、低級言語を使うこともある。また、最近は、基幹系業務や金融システムなどには、セキュリティに強く[要出典]ミッションクリティカル領域への適用を想定して設計されているJava EEを用いるケースも増えている。
ウェブアプリケーションに対して、ローカルのデスクトップ環境上で動作するアプリケーションはデスクトップアプリケーションやスタンドアロンアプリケーションと呼ばれる。
目次 [非表示]
1 特徴
2 歴史
3 ウェブアプリケーションのセキュリティ
4 関連項目
5 脚注
[編集] 特徴
サーバとクライアントの間の通信手段としては、アプリケーションプロトコルの1つであるHTTPを用いる。HTTPはステートレスなプロトコルであるため、HTTPだけでは状態の管理は行えない。しかし、大半のウェブアプリケーションではセッションの管理が必要であるため、Cookieなどを用いてサーバとクライアント間でセッションIDの受け渡しをし、セッションの管理を行っている。
当初、クライアント側にはHTML文書を送信するだけであったが、近年ではJavaScriptを用いたAjaxや Adobe Flash などを用いることによりリッチなユーザインタフェースを備えたウェブアプリケーションも多くなっている。これらはリッチインターネットアプリケーションとも呼ばれている。
[編集] 歴史
当初、ウェブは、Webサーバ上に配置したHTMLファイルをウェブブラウザなどのユーザエージェントに返却することしかできなかったが、CGIの登場によりユーザからの入力に応じて、HTML文書などのリソースを動的に生成し、返却することができるようになった。このことにより様々なウェブアプリケーションを構築できるようになった。
現在では、ウェブアプリケーションを構築するための技術としてはCGI以外に、Java ServletなどのJava EEやApache HTTP Server用のモジュールとしてPHPで記述されたプログラムを実行するmod_php[1]、マイクロソフトが開発したActive Server Pagesなどが存在する。
[編集] ウェブアプリケーションのセキュリティ
この節は執筆中です。加筆、訂正して下さる協力者を求めています。
[編集] 関連項目
Webサーバ
ウェブブラウザ
HTML
HTTP
リッチインターネットアプリケーション
多層アーキテクチャ
[編集] 脚注
[ヘルプ]
^ 他にもPerlのためのmod_perlやPythonのためのmod_python、Rubyのためのmod_rubyなどが存在する。 HyperText Markup Language(ハイパーテキスト・マークアップ・ランゲージ、略称:HTML)は、ウェブ上のドキュメントを記述するためのマークアップ言語である。
ウェブの基幹的役割を持つ技術の一つで、HTMLでマークアップされたドキュメントはほかのドキュメントへのハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などの高度な表現力を持つ。
W3Cは、XMLベースの規格であるXHTMLの勧告も行っている。また、2008年3月現在、HTML 5も策定中である。
目次 [非表示]
1 特徴
2 HTML文書
2.1 HTMLタグ
3 歴史
3.1 HTML 1.0
3.2 HTML+
3.3 HTML 2.0
3.4 HTML 3.0
3.5 HTML 3.2
3.6 HTML 2.x
3.7 HTML 4.0、HTML 4.01
3.8 ISO/IEC 15445:2000
3.9 HTML 5.0(予定)
4 HTML形式の電子メール
5 脚注
6 関連項目
7 外部リンク
[編集] 特徴
HTMLの特徴は、ハイパーテキストを利用した、相互間文書参照のフレームワークである。マークアップはプレーンテキストの文書を要素で括って意味付けすることで行い、文書の特定要素にURIを用いた他文書へのリンクを記載しておけば、ユーザエージェントはそれを解釈して指定された他文書を表示させる事が可能となる。また、マークアップを施す際に引用や画像の埋め込み、文書のタイトルの指定などを定める要素を記載すれば、ユーザエージェントがそれらを解釈し、形態に見合った表示を行う。HTML はそうしたマークアップの規則を定めている。
マークアップ規則はDTDとして公開され、要素ごとに記載することの出来る属性、内容に含むことの出来る要素などが定められている。2007年4月現在の最新バージョンである XHTML 1.0 では[1]、厳密なもの (Strict)、HTML 3.2からの移行過渡期のためのもの (Transitional)、フレームを用いた文書のためのもの (Frameset) といった3つのDTDが定義されている。