SlideShare una empresa de Scribd logo
1 de 20
勉強会資料①


~WEBアプリケーションの基礎知識~
目次
   Webアプリケーションとは
   サーバーサイドの技術
   クライアントサイドの技術
   WEBアプリケーションレイヤー
Webアプリケーションとは
   ウェブの機能や特徴を利用したアプリケーションソフト
    ウェアのこと
       デスクトップアプリケーションとの比較
           ユーザー毎の端末へのインストールが不要
           Webサーバー上のファイルを更新するだけで全ユーザーに対して
            アップデートが可能
           ユーザーの環境が異なっていてもWebブラウザが動作すればよい
           Webサーバーやネットワークに障害が発生した場合は利用不可
           Webブラウザによっては描写や動作が異なる場合がある
   基本的にはサーバーサイドでユーザーからの入力や、DB
    からのデータに応じて、HTMLなどのリソースを動的に
    生成する仕組みを備えているものを指す
Webアプリケーションとは
   基本的なWebの動作
    1.   ブラウザでURLを入力
    2.   WebサーバーがURLに該当するリソース(HTMLや画像な
         ど)を返却
    3.   ブラウザが受け取った内容を描画(レンダリング)

               1.http://www.nsw.co.jp/index.html




                         2./var/www/html/index.html


    3.描画
Webアプリケーションとは
   クライアントサイドとサーバーサイド
    1.   【クライアント】ブラウザでURLを入力
    2.   【サーバー】WebサーバーがURLに該当するリソース
         (HTMLや画像など)を返却
    3.   【クライアント】ブラウザが受け取った内容を描画(レンダ
         リング)
              1.http://www.nsw.co.jp/index.html




                        2./var/www/html/index.html


    3.描画
Webアプリケーションとは
   表示内容を動的に生成する仕組み
       プログラムを通してHTMLや画像等を生成すること
Webアプリケーションとは
   HTMLの動的な生成を含む場合の動作
    1.   【クライアント】ブラウザでURLを入力
    2.   【サーバー】WebサーバーがURLに該当するプログラムを実
         行し、作成したリソース(HTMLや画像など)を返却
    3.   【クライアント】ブラウザが受け取った内容を描画(レンダ
         リング)
               1.http://www.nsw.co.jp/index.cgi




                         2./var/www/cgi-bin/index.cgiの実行結果


    3.描画
Webアプリケーションとは
   起点(この場合はURL)は同じだが生成物(この場合は
    HTML)が異なる状態を動的な生成という
       起点と生成物が常に同じ場合は静的という
Webアプリケーションとは
   例えば・・・
       Web上で会員登録を行う場合、ユーザーは自分の個人情報を入
        力する
       多くの場合、登録内容の確認画面としてユーザーが入力した内
        容を表示して、ユーザーに内容を確認させる




                 この画面は
                  動的!
サーバーサイドの技術
   動的に生成する手段(簡単に言うとプログラミング言
    語)は無数にあるが、代表的なものは以下のとおり
       Java、PHP、Perl、VB(.NET)、Ruby、Python
           それぞれ特徴はあるが高級言語であることがほとんど
           ちなみに・・・
               WSの実績としてはJava、PHP、Perlがほとんど
               新規の案件ではJava、PHPのどちらかにしている
       低級言語(C、Lispなど)を使う場合もある
           高速化のために
           基本的にサーバーサイドの処理時間はネットワーク遅延より短いた
            め、特に現在では選択することはほとんどない(全くないと言って
            もいいぐらい)
   厳密に手段を定義すると、CGIとインタープリタに大別
    される
           CGI=Common Gateway Interface
           インタープリタ=mod_php(Apacheモジュール)、Java Servlet
            (APサーバ)など
クライアントサイドの技術
   クライアントサイドの機能を活かしてページを動的に変
    化させる技術
       Javascript、Adobe Flash、Microsoft Silverlight、Java FXなど
       近年のクライアントのスペック向上にしたがって利用機会は増
        えている
   主にユーザーインターフェース(UI)を強化する目的で
    使用される
       見た目が格好良かったり、入力補助をしたり
       英語ではUser Experience(和訳は体験)と表記されることが多
        い
   リッチインターネットアプリケーション
       クライアントサイドの技術を活かした、柔軟なインターフェー
        スをもつWebアプリケーションを“リッチ・インターネット・ア
        プリケーション(RIA)”と呼ぶことがある
           最近ではWebアプリケーションがクライアントサイドの技術を内包
            することが当たり前になりつつあるので、呼ぶ機会は減っている
(参考)レイヤーとは
   技術、物体などを動作あるいは管理する範囲を階層(レ
    イヤー)に分けて定義した場合に、物理的な階層を低い、
    仮想的な階層を高いとする概念
       低レベル(=簡単)、高レベル(=複雑)という意味ではない
       OSI参照モデル、TCP/IP参照モデルが代表的な階層分け(レイヤ
        リング)
   OSI参照モデルとは
       コンピュータの持つべき通信機能を階層構造に分割したモデル
   TCP/IP参照モデルとは
       インターネットで稼働するプロトコルの階層(プロトコルス
        タック)と、それを実装する通信プロトコルの一式(プロトコ
        ルスイート)
           要するにインターネットを実現するためのレイヤリングのこと
           階層名がOSI参照モデルと同じだが、直接の関連はない
(参考)OSI参照モデル
       7階層が定義されており、上にいくほど高い、下に
        行くほど低いと表現される

階層      OSI        役割              例
        参照モデル
7       アプリケーション   具体的な通信サービス      ブラウザ、メーラー
        層
6       プレゼンテーショ   データの表現方法        EBCDIC⇔ASCII変換
        ン層
5       セッション層     通信の開始から終了までの手   RPC
                   順
4       トランスポート層   エラー訂正、再送制御      TCP、UDP
3       ネットワーク層    通信経路の選択         ルーティング
2       データリンク層    通信機器間の信号の受け渡し   イーサネット、P2P
1       物理層        物理的な通信機器        ルーター、LANケーブ
(参考)TCP/IP参照モデル
    Webアプリケーションに登場するクライアント、サー
     バーは通信機器といえるが、厳密にはOSI参照モデルで
     はなくTCP/IP参照モデルに準拠している

アプリケーション層


トランスポート層


ネットワーク層


データリンク層
           クライアン
             ト     ルーターA   ルーターB   サーバー
(参考)レイヤリングの利点
    各レイヤーで役割が決まっている
        隣のレイヤーから渡されるデータと、渡すデータを知っていれ
         ば良い
        相手の同じレイヤーと直接やり取りしているようにみなせる
                 私はブラウザです        私はWEBサーバーで
                                      す
                 http://www.google.co.j   ここが直接に見える
                           p/                                           OK
アプリケーション層              を見たいよ                                        HTMLを返すよ


                     通信開始                                          データを受け取ったよ
                    データを送るよ
トランスポート層
                                                www.google.co.jp
                  www.google.co.jp
                  はX.X.X.Xにあるよ                  はX.X.X.Xにあるよ
ネットワーク層
                  X.X.X.Xに行くには                   X.X.X.Xに行くよ
                  ルーターAを通るよ
データリンク層
              クライアン
                ト              ルーターA       ルーターB            サーバー
                           データをルーターAに
                              送るよ
WEBアプリケーションレイヤー

   クライアント                            サーバ
   ソフトウェア                         WEBアプリケーション
    ブラウザ                      PHP      Java     Perl
   HTML     JS
                                    フレームワーク
   CSS     画像
                          Tomcat    ミドルウェア         Mysql


                                    APPサービス
   ネットワーク                                       DBMS
                         Apache     WEBサービス
      SSL
                                    ネットワーク
     Firewall                                   iptables
                                     Firewall
      LAN        Proxy                LAN       TCP/IP
問題の切り分け
            ブラウザが表示するエラー
          ネットワークに問題がある場合がほと
                      んど
             ・ping、traceroute(tracert)
                ・netstat、iptables




             Apacheのデフォルトエラー
                 ・404 Not Found
                 ・403 Forbidden
             ・500 Internal Server Error




                WEBアプリのエラー
動作主体の切り分け
http://・・・/index.php
                                                    作成する


  <html>
                                           HTML
   <head>                                            レイヤーが
    <meta ・・・>                        JS      CSS     違う!
    <title>・・・</title>
    <link ・・・>
    <style type=“text/css”>
      ・・・
    </style>
    <script type=“text/javascript”>
      ・・・
                                                     実行する
    </script>
   </head>
   <body>
    ・・・
   </body>
  </html>
動作主体の切り分け
   サーバーサイド(PHPやJava)から見るとブラウザ
    がIEでもFireFoxでも何であれ動作に関係はない
       つまり作成するHTMLやJSに変わりはない
   クライアントサイド(HTMLやJS)から見るとWEB
    アプリがPHPでもJavaでも動作に関係はない
       つまり動作するHTMLやJSに変わりはない
まとめ
   WEBアプリケーションとは、表示内容を動的に生成
    する仕組み
       サーバサイド、クライアントサイド共に
   WSで利用するサーバサイドのプログラミング言語
    はPHP、Javaがほとんど
       クライアントサイドはHTML、JS、Flashなど
   レイヤリングによって問題の切り分け、影響範囲の
    特定ができる

         “レイヤリングを意識した設計・製造”により
        ”拡張性・保守性の高いシステム”が構築できる

Más contenido relacionado

Similar a 勉強会資料①

ゆるべん Webアプリ開発概要 20130127
ゆるべん Webアプリ開発概要 20130127ゆるべん Webアプリ開発概要 20130127
ゆるべん Webアプリ開発概要 20130127Y
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Sho Ito
 
Lesson01
Lesson01Lesson01
Lesson01MRI
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Kikunaga Taishi
 
Web on Kernel
Web on KernelWeb on Kernel
Web on Kerneldynamis
 
Kilimanjaro Event
Kilimanjaro EventKilimanjaro Event
Kilimanjaro Eventdynamis
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)Yuji Takayama
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1hideaki honda
 
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901Masayuki Abe
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)Shinichiro Isago
 
Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会Kazuya Sugimoto
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をTech Summit 2016
 

Similar a 勉強会資料① (20)

Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
ゆるべん Webアプリ開発概要 20130127
ゆるべん Webアプリ開発概要 20130127ゆるべん Webアプリ開発概要 20130127
ゆるべん Webアプリ開発概要 20130127
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
 
Lesson01
Lesson01Lesson01
Lesson01
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
10th jan 2013_miyazaki
10th jan 2013_miyazaki10th jan 2013_miyazaki
10th jan 2013_miyazaki
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
 
Web on Kernel
Web on KernelWeb on Kernel
Web on Kernel
 
Kilimanjaro Event
Kilimanjaro EventKilimanjaro Event
Kilimanjaro Event
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
 
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
Ajax basic
Ajax basicAjax basic
Ajax basic
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
20080213
2008021320080213
20080213
 
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
 
Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会Web API(Dynamics 365 )勉強会
Web API(Dynamics 365 )勉強会
 
App012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_をApp012 linux java_にも対応!_azure_service_fabric_を
App012 linux java_にも対応!_azure_service_fabric_を
 

Último

My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 

Último (20)

My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 

勉強会資料①

  • 2. 目次  Webアプリケーションとは  サーバーサイドの技術  クライアントサイドの技術  WEBアプリケーションレイヤー
  • 3. Webアプリケーションとは  ウェブの機能や特徴を利用したアプリケーションソフト ウェアのこと  デスクトップアプリケーションとの比較  ユーザー毎の端末へのインストールが不要  Webサーバー上のファイルを更新するだけで全ユーザーに対して アップデートが可能  ユーザーの環境が異なっていてもWebブラウザが動作すればよい  Webサーバーやネットワークに障害が発生した場合は利用不可  Webブラウザによっては描写や動作が異なる場合がある  基本的にはサーバーサイドでユーザーからの入力や、DB からのデータに応じて、HTMLなどのリソースを動的に 生成する仕組みを備えているものを指す
  • 4. Webアプリケーションとは  基本的なWebの動作 1. ブラウザでURLを入力 2. WebサーバーがURLに該当するリソース(HTMLや画像な ど)を返却 3. ブラウザが受け取った内容を描画(レンダリング) 1.http://www.nsw.co.jp/index.html 2./var/www/html/index.html 3.描画
  • 5. Webアプリケーションとは  クライアントサイドとサーバーサイド 1. 【クライアント】ブラウザでURLを入力 2. 【サーバー】WebサーバーがURLに該当するリソース (HTMLや画像など)を返却 3. 【クライアント】ブラウザが受け取った内容を描画(レンダ リング) 1.http://www.nsw.co.jp/index.html 2./var/www/html/index.html 3.描画
  • 6. Webアプリケーションとは  表示内容を動的に生成する仕組み  プログラムを通してHTMLや画像等を生成すること
  • 7. Webアプリケーションとは  HTMLの動的な生成を含む場合の動作 1. 【クライアント】ブラウザでURLを入力 2. 【サーバー】WebサーバーがURLに該当するプログラムを実 行し、作成したリソース(HTMLや画像など)を返却 3. 【クライアント】ブラウザが受け取った内容を描画(レンダ リング) 1.http://www.nsw.co.jp/index.cgi 2./var/www/cgi-bin/index.cgiの実行結果 3.描画
  • 8. Webアプリケーションとは  起点(この場合はURL)は同じだが生成物(この場合は HTML)が異なる状態を動的な生成という  起点と生成物が常に同じ場合は静的という
  • 9. Webアプリケーションとは  例えば・・・  Web上で会員登録を行う場合、ユーザーは自分の個人情報を入 力する  多くの場合、登録内容の確認画面としてユーザーが入力した内 容を表示して、ユーザーに内容を確認させる この画面は 動的!
  • 10. サーバーサイドの技術  動的に生成する手段(簡単に言うとプログラミング言 語)は無数にあるが、代表的なものは以下のとおり  Java、PHP、Perl、VB(.NET)、Ruby、Python  それぞれ特徴はあるが高級言語であることがほとんど  ちなみに・・・  WSの実績としてはJava、PHP、Perlがほとんど  新規の案件ではJava、PHPのどちらかにしている  低級言語(C、Lispなど)を使う場合もある  高速化のために  基本的にサーバーサイドの処理時間はネットワーク遅延より短いた め、特に現在では選択することはほとんどない(全くないと言って もいいぐらい)  厳密に手段を定義すると、CGIとインタープリタに大別 される  CGI=Common Gateway Interface  インタープリタ=mod_php(Apacheモジュール)、Java Servlet (APサーバ)など
  • 11. クライアントサイドの技術  クライアントサイドの機能を活かしてページを動的に変 化させる技術  Javascript、Adobe Flash、Microsoft Silverlight、Java FXなど  近年のクライアントのスペック向上にしたがって利用機会は増 えている  主にユーザーインターフェース(UI)を強化する目的で 使用される  見た目が格好良かったり、入力補助をしたり  英語ではUser Experience(和訳は体験)と表記されることが多 い  リッチインターネットアプリケーション  クライアントサイドの技術を活かした、柔軟なインターフェー スをもつWebアプリケーションを“リッチ・インターネット・ア プリケーション(RIA)”と呼ぶことがある  最近ではWebアプリケーションがクライアントサイドの技術を内包 することが当たり前になりつつあるので、呼ぶ機会は減っている
  • 12. (参考)レイヤーとは  技術、物体などを動作あるいは管理する範囲を階層(レ イヤー)に分けて定義した場合に、物理的な階層を低い、 仮想的な階層を高いとする概念  低レベル(=簡単)、高レベル(=複雑)という意味ではない  OSI参照モデル、TCP/IP参照モデルが代表的な階層分け(レイヤ リング)  OSI参照モデルとは  コンピュータの持つべき通信機能を階層構造に分割したモデル  TCP/IP参照モデルとは  インターネットで稼働するプロトコルの階層(プロトコルス タック)と、それを実装する通信プロトコルの一式(プロトコ ルスイート)  要するにインターネットを実現するためのレイヤリングのこと  階層名がOSI参照モデルと同じだが、直接の関連はない
  • 13. (参考)OSI参照モデル  7階層が定義されており、上にいくほど高い、下に 行くほど低いと表現される 階層 OSI 役割 例 参照モデル 7 アプリケーション 具体的な通信サービス ブラウザ、メーラー 層 6 プレゼンテーショ データの表現方法 EBCDIC⇔ASCII変換 ン層 5 セッション層 通信の開始から終了までの手 RPC 順 4 トランスポート層 エラー訂正、再送制御 TCP、UDP 3 ネットワーク層 通信経路の選択 ルーティング 2 データリンク層 通信機器間の信号の受け渡し イーサネット、P2P 1 物理層 物理的な通信機器 ルーター、LANケーブ
  • 14. (参考)TCP/IP参照モデル  Webアプリケーションに登場するクライアント、サー バーは通信機器といえるが、厳密にはOSI参照モデルで はなくTCP/IP参照モデルに準拠している アプリケーション層 トランスポート層 ネットワーク層 データリンク層 クライアン ト ルーターA ルーターB サーバー
  • 15. (参考)レイヤリングの利点  各レイヤーで役割が決まっている  隣のレイヤーから渡されるデータと、渡すデータを知っていれ ば良い  相手の同じレイヤーと直接やり取りしているようにみなせる 私はブラウザです 私はWEBサーバーで す http://www.google.co.j ここが直接に見える p/ OK アプリケーション層 を見たいよ HTMLを返すよ 通信開始 データを受け取ったよ データを送るよ トランスポート層 www.google.co.jp www.google.co.jp はX.X.X.Xにあるよ はX.X.X.Xにあるよ ネットワーク層 X.X.X.Xに行くには X.X.X.Xに行くよ ルーターAを通るよ データリンク層 クライアン ト ルーターA ルーターB サーバー データをルーターAに 送るよ
  • 16. WEBアプリケーションレイヤー クライアント サーバ ソフトウェア WEBアプリケーション ブラウザ PHP Java Perl HTML JS フレームワーク CSS 画像 Tomcat ミドルウェア Mysql APPサービス ネットワーク DBMS Apache WEBサービス SSL ネットワーク Firewall iptables Firewall LAN Proxy LAN TCP/IP
  • 17. 問題の切り分け ブラウザが表示するエラー ネットワークに問題がある場合がほと んど ・ping、traceroute(tracert) ・netstat、iptables Apacheのデフォルトエラー ・404 Not Found ・403 Forbidden ・500 Internal Server Error WEBアプリのエラー
  • 18. 動作主体の切り分け http://・・・/index.php 作成する <html> HTML <head> レイヤーが <meta ・・・> JS CSS 違う! <title>・・・</title> <link ・・・> <style type=“text/css”> ・・・ </style> <script type=“text/javascript”> ・・・ 実行する </script> </head> <body> ・・・ </body> </html>
  • 19. 動作主体の切り分け  サーバーサイド(PHPやJava)から見るとブラウザ がIEでもFireFoxでも何であれ動作に関係はない  つまり作成するHTMLやJSに変わりはない  クライアントサイド(HTMLやJS)から見るとWEB アプリがPHPでもJavaでも動作に関係はない  つまり動作するHTMLやJSに変わりはない
  • 20. まとめ  WEBアプリケーションとは、表示内容を動的に生成 する仕組み  サーバサイド、クライアントサイド共に  WSで利用するサーバサイドのプログラミング言語 はPHP、Javaがほとんど  クライアントサイドはHTML、JS、Flashなど  レイヤリングによって問題の切り分け、影響範囲の 特定ができる “レイヤリングを意識した設計・製造”により ”拡張性・保守性の高いシステム”が構築できる