Webプログラミング

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

Webプログラミング(ウェブプログラミング)とは、World Wide Web使つかわれるウェブアプリケーションプログラミング、Webソフトウェア開発かいはつおこなうことである。また、この作業さぎょうおこな人間にんげんをWebプログラマ、Webエンジニア、Web開発かいはつしゃ、Webデベロッパーとぶ。

概要がいよう[編集へんしゅう]

Webプログラミングでは、サーバがわ動作どうさするプログラムクライアントがわ動作どうさするプログラムの両方りょうほう開発かいはつしなければならない。[注釈ちゅうしゃく 1]それぞれのがわのプログラムで利用りようされる技術ぎじゅつことなり、さらにAjax採用さいようするプログラムであれば、サーバがわ・クライアントがわのプログラムが複雑ふくざつ連携れんけいして機能きのう実現じつげんするので、それぞれのがわのプログラムを別々べつべつ開発かいはつすることがむずかしく、プログラマには両方りょうほうがわもちいられる技術ぎじゅつふか習得しゅうとくすることがもとめられる。

サーバがわでのプログラミングは、ウェブサーバうえうごプログラミング言語げんごもちいておこなわれる。このプログラミングは「サーバ・サイド・プログラミング」ともばれる。れいとしてサーバサイトにつかう言語げんご環境かんきょうとしてCGI + PerlPHPRubyJava Servlet + JSP + Enterprise JavaBeans + Spring Framework + Apache Struts (Jakarta EE)、.NET (ASP.NET (C#, VB.NET) ) などがげられる。

クライアントがわのプログラミングは、ウェブブラウザ解釈かいしゃくできるプログラミング言語げんごもちいておこなわれる。しかしながらウェブブラウザはウェブで公開こうかいされた文書ぶんしょ閲覧えつらん比重ひじゅうかれたプログラムであり、かならずしもめぐまれたプログラムの実行じっこう環境かんきょうではないことがおおい。

したがってクライアントがわのプログラミングは困難こんなんとなりがちである。これを省力しょうりょくするためのライブラリが様々さまざま用意よういされており、れいとしてJavaServer Faces部品ぶひんとして利用りよう可能かのうなライブラリAjaxFacesJSPカスタムタグライブラリとして導入どうにゅうできるAjaxTags、JSP, JSF両方りょうほう利用りよう可能かのうAjaxAnywhereひとしがある。なお、これらはいずれもAJAX実現じつげんするライブラリで、これらをもちいることでJavaScriptひとしによるクライアントサイドのコードの開発かいはつ比重ひじゅうくことなく、リッチなウェブアプリケーション開発かいはつできることが期待きたいできる。

サーバサイドとクライアントサイドにおけるプログラミングのちが[編集へんしゅう]

サーバサイド[編集へんしゅう]

サーバサイドでのプログラミングにはつぎのような特徴とくちょうがある。

アクセスが殺到さっとうしやすいウェブサイトではデータベースにたか負荷ふかがかかりがちであるため、その解決かいけつのためにDBMS知識ちしきソフトウェア開発かいはつにおいてもとめられることがおおい。さらに金融きんゆうけい基幹きかんけい業務ぎょうむB2Bなどミッションクリティカル領域りょういきでの開発かいはつではフロントエンドだけでなくバックエンド開発かいはつおこなうためUNIXサーバネットワークセキュリティ計算けいさん科学かがくソフトウェア工学こうがく知識ちしきもとめられることおお[注釈ちゅうしゃく 2]

またサーバサイドのプログラムではおおくの場合ばあい複数ふくすうユーザの操作そうさおうじた処理しょりどういちプロセスのメモリ空間くうかんじょうおこなわれるので、ユーザごとに適切てきせつにメモリじょう情報じょうほう分離ぶんりされるよう意識いしきしてプログラミングしなければならない。この変数へんすうがもし銀行ぎんこう口座こうざ預金よきん残高ざんだかなどに使つかわれていた場合ばあい、その事態じたい顧客こきゃくエンドユーザーからの信用しんよう徹底的てっていてきうしなうほど非常ひじょう深刻しんこくなものとなる。

クライアントサイド[編集へんしゅう]

クライアントサイドでのプログラミングは、Ajax(JavaScript + XML)のようにウェブブラウザうえうごプログラミング言語げんごもちいておこなわれるケースもあるが、近年きんねんではリッチクライアント登場とうじょうし、ウェブブラウザのかわりにブラウザ依存いぞんけられるJava Web StartClickOnceAdobe Flash使つかうケースもえている。

JavaScriptをもちいる場合ばあい、ウェブブラウザには様々さまざま実装じっそうけいがあるため[注釈ちゅうしゃく 3]、クライアントがわのでプログラミングをおこなうためには、複数ふくすう実装じっそうけい精通せいつうしている必要ひつようがあった。しかし、JavaScriptに使用しようされているAjaxGoogle Maps実装じっそうされることで脚光きゃっこうびるにつれて、Ajax使用しようする(prototype.jsなどの)ライブラリが、ブラウザ依存いぞんしにくいように設計せっけいされるようになってきた。Ajaxのライブラリ、フレームワーク使つかいこなしていれば複数ふくすう実装じっそうけい依存いぞんかかわ必要ひつようくなってきている。

従来じゅうらいでは、Web開発かいはつにおけるクライアントサイドといえば、WebデザイナHTML小規模しょうきぼJavaScriptAdobe Flashつくられたサイトを開発かいはつする程度ていどのものであったため、オブジェクト指向しこうプログラミング習得しゅうとくについてほとんど意識いしきする必要ひつようがなかった。しかし端末たんまつハードウェア性能せいのう向上こうじょうし、HTMLクライアント限界げんかい不満ふまんさけばれるようになってゆき、Ajaxリッチクライアント注目ちゅうもくされるにつれて、クライアントサイドでもオブジェクト指向しこうプログラミング習得しゅうとくする必要ひつようせいたかまってきた。リッチクライアント使用しようする技術ぎじゅつひとつであるSwingなどによるGUI開発かいはつではオブジェクト指向しこうプログラミングは、ファットクライアントスタンドアロンアプリケーション時代じだいから必須ひっすのものである。またAjaxのフレームワークのおおくはオブジェクト指向しこうプログラミングで設計せっけいされている[注釈ちゅうしゃく 4]

ウェブブラウザはウィンドウシステムウィジェット・ツールキットとはことなり、アプリケーションがGUI実現じつげんできるようにすること元来がんらい目的もくてきとするプログラムではなく、WebじょうのHTML文書ぶんしょなどを閲覧えつらんすることをおも目的もくてきとするプログラムなので、そのプログラムじょういGUIを実現じつげんするには様々さまざま工夫くふうもとめられる。その工夫くふうれいとしてAjaxやリッチクライアントがある。

リッチクライアント[編集へんしゅう]

HTMLクライアント欠点けってんおぎなうために、HTMLクライアントとクライアントサーバシステム使つかわれてきたファットクライアントとの中間ちゅうかん位置いちするリッチクライアント注目ちゅうもくされている。リッチクライアントとしてげられるものは、Java Web Start.NETClickOnceアドビAIRなどがある。これらの登場とうじょうにより、クライアントサイドの開発かいはつ一変いっぺんしつつある。

脚注きゃくちゅう[編集へんしゅう]

注釈ちゅうしゃく[編集へんしゅう]

  1. ^ HTMLによるウェブページ記述きじゅつプログラミングではなくウェブデザインとされることもおおいが、HTMLはグラフィックデザインだけではなくクライアントからサーバへの通信つうしん内容ないようをも定義ていぎするひとし、その境目さかいめはあまり明確めいかくではない。
  2. ^ この場合ばあい、Web開発かいはつフロントエンドだけにちからそそいでいるため、ソフトウェア開発かいはつ全体ぜんたい氷山ひょうざん一角いっかくぎないケースがある。そのためにこのような開発かいはつのことをWeb開発かいはつとはばないことがある。
  3. ^ ウェブブラウザのバージョンのちがいによるバグの有無うむもあるが、そもそも実装じっそうけいによって仕様しようちがうこともある。
  4. ^ いまではおもにAjaxに使つかわれているJavaScriptは従来じゅうらい、オブジェクト指向しこう言語げんごではないと誤解ごかいされていた。

関連かんれん項目こうもく[編集へんしゅう]