...

ウェブプログラミング演習 ウェブプログラミングとは? 授業の概要 この

by user

on
Category: Documents
16

views

Report

Comments

Transcript

ウェブプログラミング演習 ウェブプログラミングとは? 授業の概要 この
ウェブプログラミングとは?
ウェブプログラミング演習


ウェブ(World Wide Web)を基盤とするアプリケー
ション開発において必須となる技術
複数のプログラミング技術を複合的に用いる
STEP 0
ガイダンス
授業の概要




この演習で扱う技術
基礎的な知識・経験を得るための演習
複数のプログラミング技術を体系的に理解するこ
とも目的とする
これまでに学んだプログラミングの知識の活用
ウェブに関する/ウェブを利用した研究のための
基礎







ウェブアプリケーション技術の体系
演習の進め方

HTML拡張
HTML(XHTML)
HTTP
CSS
JavaScript HTTPS
Applet, Flash
ブラウザ
(クライアント)
XML XSLT
SSI, PHP
XML
CGI
Perl, 他
Webコンテナ
ウェブサーバ
具体的な事例システム(詳細は検討中,昨年度ま
ではblog)の開発に沿って,各プログラミング技術
を体験する
–
ODBC
JDBC
–
XSLT
Servlet, JSP, ASP
HTML (Hyper Text Markup Language)
Perl / CGI (Practical Extraction and Report
Language / Common Gateway Interface)
PHP(PHP: Hypertext Preprocessor)
JavaScript
CSS (Cascading Style Sheets)
XML (Extensible Markup Language)
XSLT (XSL(Extensible Stylesheet Language)
Transformations)
–
データベース
–
–
–
–
HTMLによるユーザインタフェース設計
Perl/CGIを用いたページ遷移
JavaScriptによるクライアント側のデータ管理
CSSを用いたページレイアウト
PHPを用いたサーバサイドプログラミング
XML+XSLTを用いたサーバ側のデータ管理
その他
1
注意事項


プログラミング技術の基礎知識(文法等)の解説は
しない。各自で予習すること
評価対象


課題への取り組み(出席状況含む)
レポートの内容
演習手順はすべて示すので、要素技術を理解しな
くてもプログラムは動くでしょう。それでいいの?
ウェブアプリケーション開発に
利用される基礎技術
目的

ウェブアプリケーションを作成したことが無い人向
けに基礎技術を簡単に解説する
–
–
–
目次

ウェブアプリケーションのアーキテクチャ
主なサーバサイド技術

主なクライアントサイド技術

–
–
–

JavaScript, XMLHttpRequest
RIA(Rich Internet Application)
クライアント・サーバ間の技術
–
–

CGI, Servlet, JSP, PHP
3層アーキテクチャ
サーバサイド技術
クライアントサイド技術
ウェブアプリケーション

ウェブ(World Wide Web)をプラットフォームとして
実装されたソフトウェアアプリケーション
–
–
通信プロトコルにHTTPを利用したクライアント・サーバ
モデル
クライアントはウェブブラウザ


標準化されたUIモジュール
ほとんどのPCでインストール済
SOAP, REST
Cookie
フルスタックの技術
2
ウェブアプリケーションの
アーキテクチャ

サーバサイドの技術(1)
3層アーキテクチャ

CGI(Common Gateway Interface)
–
プレゼンテーション層
ファンクション層
データ層
–
httpサーバからプログラムを呼び出す仕組み
プログラムの記述言語は問わない

ビジネスロジック
ブラウザ
DB
C, Java, Perl, Python, Ruby, ...
プログラム DBコネクション
ビジネスロジック
(ODBC,JDBCなど)
ブラウザ
フォーム
データ
httpサーバ
クライアントPC
ウェブサーバ
データベースサーバ
サーバサイドの技術(2)

ウェブサーバ
データベースサーバ
サーバサイドの技術(2)
(Java) Servlet
–
ブラウザとのやりとりを主目的としたJavaプログラム

–

CGI
httpサーバ
クライアントPC
DB
HTML
Javaクラス
GET,POSTの処理、HTML出力の生成など
Javaクラス
ウェブコンテナ(Tomcatなど)で管理・実行される
JSP(JavaServer Pages)
–
HTML記述中にJavaコードを埋め込んだもの
–
実行時にコンテナ上でServletに変換

DB
ビジネスロジック
Servlet
JSP
プレゼンテーションロジックの表現
変換
Servlet
httpサーバ
サーバサイドの技術(3)

PHP: Hypertext Preprocessor
–

3層アーキテクチャの実現が容易
Smaty
–
–
HTMLに埋め込まれるスクリプト言語



–
JavaScriptなどのクライアントサイドスクリプトで利用可
能なHTTP通信オブジェクト

プレゼンテーションロジックの分離

テンプレートをコンパイルしてPHPを生成
ブラウザの動的な制御が可能
DHTML(Dynamic HTML)の実現し、ユーザビリティ向上
XMLHttpRequest
PHPのためのテンプレートエンジン

–
JavaScript
C, Java, Perlなどから構文を転用
自動型変換により、変数の型宣言不要
DBMSインタフェースを標準で提供



HTMLを動的に生成するためのスクリプト言語

–
クライアントサイドの技術(1)
ページ遷移なしにデータ送受が可能
データ受信はコールバック割り込みによる
=非同期通信
3
クライアントサイドの技術(2)

クライアント・サーバ間の技術(1)
RIA(Rich Internet Application)
–


–

直感的な操作性やレスポンス向上を目指したウェブア
プリケーション


リッチなクライアントユーザインタフェース(UI)を持つ
HTML(ピュアなウェブ言語)だけでは実現できない
–
Ajax(Asynchronous JavaScript + XML)
– Prototype, jQuery, Dojo, Adobe Spry, GWT, ...
Adobe Flex
– MXMLによるUI記述 + ActionScript
Microsoft Silverlight
– XAMLによるUI記述 + .NETプログラム

–

–

HTTP通信において、ブラウザとサーバとの間で状態を
管理するためのプロトコル
HTTPヘッダに状態を識別するためのコード(これも
Cookieと呼ぶ)を埋め込む

HTTPメソッド(GET, POST, PUT, DELETE)のみを
(本来の意味で)利用してウェブ上のリソース(情報の断
片)を管理するアーキテクチャ
フルスタック(Full Stack)の技術
(HTTP) Cookie
–
HTTP通信をベースに、クライアント・サーバ間で手続き
呼び出し(リモートプロシジャコール)を行うための専用
プロトコル
SOAPメッセージ(XMLで実現)によって手続き呼び出し
を抽象化する
REST(Representational State Transfer)
–
クライアント・サーバ間の技術(2)

–
代表的な実装技術

SOAP
ブラウザはサーバから送られてきたCookieを保存
次回同じサーバと通信する際に与えられたCookieを含める
ステートレスなHTTP通信においてセッション管理を行う
方法
ウェブアプリケーション開発に必要な要素技術を
ひとまとめにして提供するもの
–
–

⇔Glue:個別の技術を組み合わせて利用
相性問題を回避
Java EE(Java Platform, Enterprise Edition)
–
Java SEをフルスタックに拡張


–
Rubyで実装されたフルスタック

ウェブアプリケーション開発

作成したプログラムをサーバ
上に配備(デプロイ)
ActionView, ActionController, ActiveRecordなど
本日の課題

プログラム
A803

ビジネスロジック
DB
この演習で扱うウェブプログラミングの技術につい
て,その概要を調べて報告せよ.
–
開発環境
ブラウザ
Servlet, JSP, EJB(Enterprise JavaBeans)などなど
Ruby on Rails

書籍・雑誌や,Wikipediaなどのウェブサイトを参照した
場合は,必ず出典を明記すること.
報告先(電子メール)
[email protected]
締切 次回授業開始時まで
httpサーバ
ウェブサーバ(実行環境)
(webdesign.center.wakayama-u.ac.jp)
4
Fly UP