技術 Flashcards
動的処理にはスクリプト言語が使われます。○○○○サイド・スクリプトは○○○から呼び出すためHTMLと分離した別ファイルにします。
サーバー、CGI
動的処理に使う○○○○○○サイド・スクリプトは、HTMLと分離して別ファイルにしてもいい(一般的)し、HTML内に記述を書き込んで使うこともできます。
クライアント
サーバーサイド・スクリプトの開発によく使われる言語を4つあげると?
Perl, Python, PHP, Ruby
サーバーサイド・スクリプトの開発によく使われる言語で、文法の自由度が高く、多くの人が扱いやすいと言われているのは?
Perl
サーバーサイド・スクリプトの開発によく使われる言語で、読みやすく簡潔なプログラムを書くことを目的に作られたものは?
Python
Webで利用することを想定されてつくられた言語で、CGIから呼び出すのではなく、HTMLに埋め込んでもサーバーサイド・スクリプトとして使えるのは?
PHP
サーバーサイド・スクリプトの開発によく使われ、オブジェクト指向プログラミングに向いた仕様とされるのは?
Ruby
DOM(ドム Document Object Model)とは、○○○○や○○○文書を扱うための手法(API)です。
HTML, XML
ほとんどのブラウザがDOMを実装していて、Webページ上に仕込まれたクライアントスクリプトやブラウザに実装された機能などからWebページ上の内容を○○○ったり、○○することが容易になっています。
読み取、編集
構造化したデータを表すためのデータ記述言語の一種で、名前に”JavaScript”とついているものは?
JSON (JavaScript Object Notation) ちなみに書式がJavaScript(ECMAScript)に従っているだけで、JS専用ということではなく、多くのプログラミング言語がJSONの読み書きに対応しています。
(汎用データ形式)
○○○○を利用することでデータをツリー構造で表現できます。データを階層的に並べることで構造を表現します。それに対し、○○○は、テキストにタグをつけることでデータ構造を表現します。
JSON
XML
(汎用データ形式)
XMLの特徴としては、
- データとして○○○しか表すことができない
- すべての情報に○○をつける必要があるため、データサイズが大きくなりがち
- ○○○○の任意の場所にタグづけができる
文字列
タグ
テキスト
(汎用データ形式)
JSONの特徴としては、
- データとして文字列以外に、○○や空を意味するデータなども扱うことができる
- データを○○で囲んで構造を表すので、データファイルは小さめ
- ○○によるマークづけがないので、人間には読みにくい
数値
括弧
タグ
※JSONはJavascriptで書かれたプログラムはそのまま読み込め、XMLのようにDOMを使う必要がない。また、XMLよりデータサイズが小さい=転送速度が速い。よって、選択されやすいデータ形式。
○○○○とは、Webサイトなどの更新履歴を配信するためのファイルです。中身は主にハイパーリンクの集まりで、Webページの全体または一部が含まれています。
フィード
(フィード)
○○○という記述言語をベースとし、構文が複雑でありながら表現力が豊かなRSS 1.0と、○○○をベースとした表現力を捨ててシンプルな構文を実現したRSS 2.0があります。
また、分裂して開発が進められているRSSの代わりになるものを作ろうと、有志によりXMLをベースとした○○○○という形式も利用されています。
RDF
XML
Atom
(フィード)
ポッドキャストとは、Webサーバ上に○○や○○を配置し、○○○を通して公開することで配信する手法です。
音楽、映像
RSS
○○○○フォーマットは、HTMLやXHTMLで記述されたWebページの中に意味を表現する記述を埋め込むための書式です。例えば、Webページ内に記載した連絡先に、「この文字列は電話番号表しています。」や「この文字列は氏名を表しています。」といった情報を付け加えることができます。
マイクロ
(マイクロフォーマット)
埋め込まれた情報は外部のコンピュータから読み込んで利用することができ、コンピュータが自律的に情報を意味を理解して処理する○○○○○○○Webを実現できます。
セマンティック
マイクロフォーマットは microformatsコミュニティという団体により用途に応じて定義され仕様が公開されています。身近なところでは、Google検索の○○○○○○○○(検索結果に商品レビューの件数や店の営業時間を表示する機能)に利用されています。
ただ、こういった意味を表現する書式はマイクロフォーマット以外にもマイクロデータ、PDFa, Schema.orgなどいろいろな団体で開発されており、統一されていないのが現状です。
リッチスニペット
(マイクロフォーマット)
ブラウザの拡張機能やアプリケーションなどでも、Web上からマイクロフォーマットを取得し、情報管理やスケジュール管理などに利用できるものが増えています。
マイクロフォーマットでは意味の記述に体裁の表現に影響を与えない属性である○○○○○要素、○○○要素、○○○要素がよく用いられています。(○は英文字)
class, rel, rev
(音声・動画配信)
インターネットでの転送時間短縮のため、音声・動画ファイルも画像ファイルと同様にデータを圧縮した上で利用されます。データ圧縮には○○デックと呼ばれるソフトウェアが用いられ、圧縮することを○○コード、再生するために伸張することを○コードといいます。
コー(デック)
エン(コード)
デ(コード)
(音声・動画配信)
音声ファイルでは音楽のダウンロード配信で用いられる○○○や○○○、動画ファイルではスマホの動画形式として用いられる○○○○-4やMicrosoftの開発した○○○が上げられます。
MP3, AAC
MPEG-4, WMV
(音声・動画の配信)
配信方法は大きく分けて2つあります。それは○○○○○○配信と○○○○○○○配信です。
ダウンロード
ストリーミング
(音声・動画の配信)
ダウンロード配信は仕組みが単純で、特別な準備がなくても実現できます。ファイル全体をダウンロードしてから再生する方法と、ダウンロードしながら再生する方法(○○○○○○○ダウンロード配信)があります。ファイルはユーザ側に残ってしまうため、○○○のあるデータ配信には向いていません。
プログレッシブ
著作権
(音声・動画の配信)
ダウンロード配信の問題点を解消する方法が○○○○○○○配信です。ファイルを細かく分割しデータをユーザに配信して再生します。データは都度削除されて○○○の問題は解決します。ただし、送信するデータを細切れにして転送するための○○○○○○○ ○○○○が必要です。
ストリーミング
著作権
ストリーミング サーバー
Webページはパソコン以外にもスマホ、テレビ、点字ディスプレイ等々、様々なデバイスから閲覧できます。画面の大きさや表示方法が異なるため、異なるデザインが求められます。閲覧に使う機器の種類を○○○○や○○○内で「○○○○タイプ」として指定することができ、機器ごとにデザインを変更したWebページを表示できます。
HTML, CSS
メディア
○○○○○○を介してWebブラウザ上で動作するアプリケーションをWebアプリケーションと呼びます。
ネットワーク
Webアプリケーションは基本的に3層構造(3層アーキテクチャ)と呼ばれる階層的な構造になっています。ユーザーインターフェースとなる○○○○テーション層、業務処理を行う○○○ケーション層、データ処理や保管を行う○○○層の3つです。
プレゼン
アプリ
データ
(Webアプリケーション)
3層アーキテクチャでは、層別に動作させるサーバー機器を分けることが可能なので、○○を分散させやすかったり、改修○○を限定しやすかったりするメリットがあります。
負荷
範囲
(Webアプリケーション)
3層アーキテクチャでは、プレゼンテーション層はWebブラウザとWebサーバー、アプリケーション層はアプリケーションサーバー(APサーバー)、データ層はデータベースサーバー(DBサーバー)というサーバー○○○○○がその役割を担います。
クライアントスクリプトは○○○○テーション層、○○○○サイドスクリプトは、アプリケーション層で動作します。
プログラム
プレゼン、サーバー
アプリケーションの考え方には、3層アーキテクチャのほか「○○○モデル」というものがあります。
Model: アプリケーションの扱うデータと業務処理
View: ユーザーへの出力処理
Controller: 必要な処理をModelやViewに伝える
の各要素がアプリケーション内部で独立、連携して処理を行う構造を指します。
MVC
MVCモデルと3層アーキテクチャの違い
・3層アーキテクチャは階層構造であり、最上層の○○○○テーション層と最下層のデータ層が直接やり取りしないが、MVCモデルでは各要素が相互にやり取りする
・WebアプリケーションにおいてはMVCモデルの表す範囲は3層アーキテクチャのアプリケーション層と○○○層であり、プレゼンテーション層はMVCモデルとユーザーの間の仲介を行う部分になる
プレゼン
データ
(アプリケーションの構造)
MVCモデルの利点
各要素が分離されていることで3層アーキテクチャと同様に仕様変更が別の要素へ影響せず、個別開発が可能。よって、開発や改修の○○が容易になること。
Webアプリケーションの規模が大きくなり、少しずつ機能追加が行われるものが多いので、この利点からMVCモデルが多く採用されています。
分業
Webシステムにおけるプログラムの動作には共通した流れがあります。クライアントからデータを受取、データベースからデータを取得し、データを処理した後、データベースにデータを登録して結果を画面に表示するといったような流れです。
そういう一般的な処理の流れを「ひな形」として準備しておき、Webアプリケーションごとの独自の内容を開発者が埋めることでプログラムが開発できるようにしたものを○○○○ワークといいます。
フレーム
フレームワークを用いた開発では、そのひな形に沿う形でのプログラムを作ることしかできませんが、フレームワークを使うことでプログラム開発の○○を削減することができ、比較的容易にプログラムの開発が可能です。また、多人数で分担して開発する場合、開発者の力量の差による○○のばらつきも出にくくなります。
Java EE, Struts, Spring Boot, Cake PHP, Ruby on Railsなどが有名です。
手間
品質
Web○○○○はWebアプリケーションにおいて、Webクライアントに対する窓口を果たすプログラムです。Webクライアントからのリクエストを受け取って静的コンテンツを配信したり、動的処理の必要なものがあればサーバーサイドプログラムと連携し、処理の結果として作成されたHTMLファイルをWebブラウザへ転送したりします。
窓口として負担を軽くし、1台が故障してもサービスを続けられるよう、○○○という構成をとるのが一般的です。
サーバー
冗長化
Webサーバーとやりとりを行い、Webシステムを利用するためのプログラムをWeb○○○○○○といいます。基本的な機能は、Webサーバーへリクエストを送り、レスポンスを受け取ってそれを解釈することです。
一般的なWeb○○○○と、スマホ向け、デスクトップ用のアプリ等の専用クライアントプログラムがあります。
クライアント
ブラウザ
アプリケーションサーバーは、3層アーキテクチャーにおけるアプリケーション層に位置し、Webサーバーから転送されてきたユーザーからのデータを受け取り、○○○○サイド・プログラムを実行することで、そのデータを加工したり、○○○ベースのデータを検索・加工した後、Webサーバーに応答を返します。
サーバー
データ
アプリケーションサーバーは、クライアントごとに発行した○○○○○IDを通信データに含めることで同じクライアントからの通信を判別します。
HTTPの通信は1リクエスト1レスポンスで成り立っているため、アプリケーションサーバーは、複数の通信を一つの○○○○○○○○(=セッション中に行われる一連の作業の最小単位)として、まとめて管理する機能を持っています。
セッション
トランザクション
Webアプリケーションに蓄積されるデータはデータベース(DB)に格納されますが、そのDBを管理する役割を担うのが、データーベース○○システム(DBMS: Databese Management System)です。
DBMSを搭載したサーバー機器を一般に○○○○○○サーバー(DBサーバー)と呼びます。
管理
データベース
データベースの保持するデータの保全は非常に重要なので、基本的に○○○構成をとります。
冗長化には、複数のデータストレージに同時に更新をかける○○○○○○、データベース含めてシステム環境を複数用意して同時に更新する○○○○○○○○、データストレージは冗長化せず、データベースサーバーを複数用意するシェアドディスク(○○ディスク)等があります。
冗長化するためには、複数のコンピュータをユーザから見て一つのコンピュータであるように見せる、使える技術=○○○○○○○を用います。
冗長化
ミラーリング
レプリケーション
共有
クラスタリング
WebサーバーやDBMSの負荷を下げるために、「リクエストに対するレスポンスを覚えておく」役割を実現するのが○○○○○サーバーというプログラムです。
文書や画像、動画といったコンテンツのキャッシュは「コンテンツキャッシュ」
DBMSのデータ検索要求の結果のキャッシュは「○○○キャッシュ」といいます。
キャッシュには○○期限を設定し、再度新しい情報を記憶し直すようにしておきます。
キャッシュ
クエリ
有効
コンテンツキャッシュサーバーを利用すれば、画像や動画などの大きなサイズのコンテンツをより速く配信することが可能です。
そのためにキャッシュサーバーを世界各地に分散して配置した集合体を、○○○(Content Delivery Network)で、全体で一台のキャッシュサーバーのように動作します。
CDN
Ajax(Asynchronous JavaScript + XML)
HTMLまるまるをやり取りするのではなく、Webブラウザ上で○○○○○○サイド・スクリプトとして動くJavaScriptがWebサーバーと○○○をやり取りし、DOMを使ってXMLやHTMLを更新。
またWebサーバーからのレスポンスを待つ間もそれに左右されない部分を更新したり、入力を受けたりを○○○でできる技術です。
クライアント
XML
非同期
(Webプログラミング)
プラグラミングの対象は○○○○サイドと○○○○○○サイドの2種類。
サーバー
クライアント
サーバーサイドのプログラミング
多くのクライアントのリクエストを処理するため、効率的な手順で行い、メモリを無駄遣いしない、セキュリティを意識することなどが求められます。
データベースとのやり取りをすることが多いので、○○○○やSQLの知識も必要です。
DBMS
クライアントサイドのプログラミング
主にWeb○○○○、或いは専用クライアント(アプリ)が対象です。最近はAjax等の非同期処理の実装や、複雑な処理を行えるようになってきているので、規模が大きくなってきています。
Webブラウザによって○○が異なる場合があるので、違いを吸収しなければなりません。
ブラウザ
動作
Webを通じてユーザーではなくプログラムが直接サービスを利用するための窓口を、Web ○○○(Application Program Interface)といいます。
データのやり取りの方式としては、以前は、送受信にXMLが使われるXML-RPC, その拡張版のSOAP等が使われてきましたが、設計思想としてXMLに限定せずJSONのような軽量データを利用できる○○○○が現在の主流となっています。
API
REST
Web APIを利用することで、プログラムが複数のWebサービスを利用し、それらの処理結果を組み合わせることで別のサービスを提供する、生み出すことを○○○○○○○といいます。
例えば、位置情報と天気予報情報を各々取得し、組み合わせて着る服をお薦めするサービス、みたいなイメージです。
マッシュアップ
Webサーバーがクライアントからの要求に応じてサーバーサイドスクリプトを起動するための仕組みが○○○(
Common Gateway Interface)です。あらかじめCGIプログラムとして定義されたコンテンツは、Webサーバー上で実行した結果を返信します。
CGI
CGIでクライアントからデータを送信する方法には、URLの末尾に”?”をつけ、その後にデータを”+”で区切って並べる○○○○ライン引き渡し、CGIの場所を示すURLの後に”/”で区切ってデータを並べる○○渡し、HTTPの○○○メソッド、POSTメソッドでデータを渡す方法もあります。
コマンド
パス
GET
(サーバー間の連携)
CGIを利用せずにサーバーサイドスクリプトを動作させる場合は、Webサーバーが○○サーバーにデータの処理を依頼し、サーバーサイドスクリプトを動作させる、という流れになります。
この場合は、Webサーバーが○○○○○○、APサーバーがサーバーという関係になります。
AP
クライアント
スマホアプリに代表されるクライアントプログラムには、Webサーバーとどのように連携するかによってWeb○○○アプリとネイティブアプリの2つに分類されます。
前者はアプリ内でWebViewという呼ばれるブラウザ機能を呼び出して、Web○○○○が処理をしたコンテンツを表示します。
ネイティブアプリは、画面の生成や表示などの処理をアプリ内で行い、データんぼみをWebサーバーからAPIを通じて取得します。
実際には機能ごとに組み合わせたハイブリッドの構成になることが多いようです。
ビュー
サーバー