ボトルネック(bottleneck)とは直訳で「瓶の首」で、大きな瓶でも首が細いと流れ出る水量が少ないことから、大きな流れを制限している事や物を指す。

特にITにおいてはインターネットの速度やプログラミングについてよく使用される。
インターネットについては、速度低下の原因となっている機器をボトルネックという。元の通信速度が速くとも、途中に速度上限が低い機器がはいることで、その上限で頭打ちになってしまう。

また、システム等のプログラムでも同様に、全体のパフォーマンスや処理速度を落としている部分のことを指す。
ボトルネックを解消することで全体の速度が向上し、パフォーマンスの改善につながる。
逆に言うと、ボトルネックが存在している限り、その部分以外の改善は結果を伴いにくいのが特徴である。
また、ボトルネックとは、全体の中で一番パフォーマンスが悪い点という相対的な面があるため、一つのボトルネックを解消すれば、別の部分がボトルネックになるとも考えられる。

他にも様々な場面において、全体のパフォーマンスを下げる要因として使用される。
日常では略して「ネック」とも。
ベンチマーク(benchmark)とは、本来、測量における水準点のことを指す。転じて、様々な分野で比較や計測の基準となる物事のことを示す。

例えば、金融、投資の分野においては指標銘柄のことをベンチマークとする。また、自動車業界では、目指すべき目標の基準点として考えられており、完成度の高い車を「ベンチマーク」と呼ぶ。

特にIT分野では、ハードウェアやソフトウェアのパフォーマンスを測る事をベンチマークテストといい、それに使用するプログラム自体をベンチマークと呼称することもある。主に特定の処理を実行し、それにかかった時間を計測する。
ベンチマークテストに使用するツールとしてはプログラムからアプリケーションが存在しており、中には特定の製品に特化したものもある。
バッファオーバーフロー(buffer overflow)とは、メモリ領域であるバッファに対してそれ以上のデータが入力されることで発生するバグやその状態のこと。バッファオーバーランともいう。

システム等において、プログラムが確保しているメモリ領域をバッファと呼ぶ。このバッファの上限を超えたデータが入力・送信されることで、本来意図していないところにデータが入り込み、別の正しいデータを上書きしてしまう。
これによってシステムが誤動作を起こしたり、悪意のあるプログラムを入力されることで、ウイルスが侵入、ファイルの削除、情報漏えいなどが起こる可能性があるため、大きなセキュリティホールとなる。

これらを防ぐためには、入力データの量をチェックする処理や関数を使用する事、不正な引数であれば処理を行わないようにすることが効果的である。
バージョン管理とは、特定のファイルに対しての変更などを管理すること。
主にソフトウェアのソースコードの管理をする場合に用いられる。

ファイルを編集する際、編集する前に戻したい、また人と協業する必要がある場合が出てくることがしばしばある。
この場合、毎回コピー等をとっておくことも可能であるが、変更したところのみを戻したい場合はその管理が難しく、間違いも起きやすい。
これらのバージョン管理を確実に、簡易的に行うためにバージョン管理システムが利用されている。

バージョン管理システムでは多くの場合、ファイルの作成・変更日時、変更点などを保存し、変更後も任意の状態のファイルに戻すことができる。また、複数人と協業する場合は、バージョン管理を行うことで変更点の競合を防いだり、最新ファイルの管理を行うことができる。管理システムにおいてそれらファイルの変更点はデーターベースに保持されており、これをリポジトリと呼ぶ。

主なバージョン管理システムとしてはsubversion、Gitが挙げられる。
グリッドとは直訳で格子のこと。そこから派生して様々な意味を持つ。

ITにおいてはグリッド・コンピューティングを指す事がある。
ネットワーク上のCPUやハードディスクなどの資源を結びつけ、一つの大規模なコンピュータシステムとして稼働させることである。多くのコンピュータを並列的に結び付けることからグリッドと呼ばれる。

また、WEBデザイン分野においてはグリッドシステム、もしくはグリッドデザインのことを指す。
美しいものは格子状に配置されているという考え方のレイアウト方法で、画面上に格子のガイドラインを見立てて、それに合わせてコンテンツを配置していく。
コンテンツの関係性が整理された見やすいデザインとして代表的な手法・考え方である。
ワークフロー(workflow)とは、企業において、複数の人や機械を介して行われる一連の作業や業務の流れのこと。
一般的にはワークフロー自体を図式化したものを指す。

ワークフローで表現されるものは、ある業務に対して、誰が(あるいは何が)どの時点でどのような作業を行うか、といった反復可能な業務処理の手順である。図式化する場合は各作業内容や分担を明記することで視覚的に全体の流れを理解しやすくなり、処理の全体像や問題点を把握することができる。

また、事務手続きにおける申請書等を電子化し、きめられた流れに沿って決裁を自動的に行うシステムのことをワークフローシステムと呼ぶ。
Ruby on Rails (ルビーオンレイルズ)とは、Rubyで構築されたWEBアプリケーションフレームワークの一つ。Rails、RoRと略される。
2004年に最初のバージョンが公開されて以来、WEBアプリケーション開発に多く利用されている。

「同じことを繰り返さない(DRY:Don’t Repeat Yourself)」
「設定より規約(CoC:Convention over Configuration)」を基本理念に掲げている。
DRYは関連性のあるコードをまとめたり、定義などの作業を一回で済ませるようにすること、
CoCとは規約に従うことで設定の手間を省き、開発者がより中身のロジックに集中できるようにする、といった意味である。

WEBアプリケーション開発で利用されることが多い機能や構造を提供しており、
利用することによって開発がシンプルになり、生産性や効率があがることが期待される。
Rubyとはプログラミング言語のひとつ。オブジェクト指向のスクリプト言語であり、WEBアプリケーションの作成に利用されることが多い。
日本人である、Matzこと まつもとゆきひろ氏 によって設計され、1995年に発表された。
Rubyという名称は、競合言語であるPerlが宝石の真珠「Pearl」と同じ発音であることから、まつもと氏の同僚の7月の誕生石「Ruby」から名づけられた。

Perl、Smalltalk、Adaなどが参考にされており、完全なオブジェクト指向である。「enjoy programming」を設計思想に挙げており、シンプルでストレスなくプログラミングできる点に最も重点が置かれている。構文の自由度が高く、記述量が比較的少なく済むことが特徴。

使用されている著名なサイトには「cookpad」や「CrowdWorks」が挙げられる。

フレームワークである ruby on rails が多く利用されており、Rubyの普及の一助となっている。
リプレースとは、直訳で置換する、置き換える、後を継ぐといった意味。

IT分野においては特に、既存のハードウェアやシステムなどのソフトウェアを、新しいものに取り換えることや部分的に入れ替えること、代替的な別のものに変更することを指す。
この場合、機能的な面では同等以上のものに変更するといったニュアンスが強い。

リプレイスとも。
リッチクライアントとは、WEBアプリケーション形態の一種で、クライアントにおける表現力や操作性が豊かなソフトウェアのこと。

WEBアプリケーションでは従来、処理をサーバー側が担い、クライアントでは数値の入力が主な役目であった。アプリケーションの配布が容易であることから普及していたが、HTMLの技術が基本となるため制約が多く表現の限界がある。
対してクライアント・サーバーシステムは操作性・表現力が豊かであったが、クライアントへの導入に手間がかかる点がネックであった。

これら二つのそれぞれのメリットを融合させたのがリッチクライアントである。クライアントにて処理や画面の生成を行うことで、ユーザーの操作に対する反応がよく、使い勝手のよいアプリケーションを実現する。
クライアント側に実行環境をインストールすることが多く、配布にも手間がかからない。

リッチクライアントには決まった定義はされていないが、一般的に操作性や表現力が高く、初期導入・配布が容易である点が主な特徴とされている。

主なリッチクライアントとしてはFlash、Ajax、Flex等が挙げられる。

対してサーバーサイドプログラムのみを用いたものをシンククライアントとよぶ。
MySQLとは、関係データーベース管理システム(RDBMS)の一つ。MySQL ABという企業によって開発されていたが、現在はオラクル社が所有する。1995年に初版が発表された。

オープンソースでフリー版と商用版のデュアルライセンスである。利用にあたっての費用が比較的安く済むこと等から、RDBMSの中では世界では約8割、日本においては約6割のシェア率を誇る、一番利用されているデータベース管理システムといえる。

大量のデータを高速で処理することが可能であり、Yahoo!やGoogleといったユーザーが多いサイトでも利用されている。JavaやPHPで呼び出すことが容易かつ、大方の環境で動作することから非常に汎用性が高い。
サーバー構築環境の際には「Linux」「Apache」「PHP」とセットで使用されることが多く、これらはそれぞれの頭文字をとって「LAMP環境」と呼ばれる。
ユースケース(use case)とは、システムにおける活用事例のこと。システムを利用するにあたって、誰が、いつ、何をして、システムが何を行うか、等のシステムに関する考えられる事例のことである。

これらを図式化したものはユースケース図と呼ばれる。決まった書式はないが、一般的には、システムを利用する人間や外部システムである「アクター」と、使用する事例である「ユースケース」を線で結んで関連を表現する。シンプルな構成であるが、図式化することによりそのシステムが利用者の中でどのような役目を担っているのかが視覚的に表現できる。
このような図以外にも、それぞれを文字として書き出して表にする場合もある。
ユーザビリティ(usability)とは、製品などの使いやすさ、使い勝手の意味。
ユーザビリティが高い・低い、もしくは良い・悪い といった表現をする。

国際標準化機構(ISO)の ISO 9241-11 において、「特定の利用状況において、特定のユーザによって、ある製品が、指定された目標を達成するために用いられる際の、有効さ、効率、ユーザの満足度の度合い」と定義されている。これにおいて、ユーザビリティとは、ユーザー全員にとっての使い勝手を追及するものではなく、想定したある状況下の決まったユーザーにとっての使いやすさであるといえる。

ユーザビリティが高いか低いかは
・有効さ ・効率 ・満足度
の指標で判断される。
モックアップ(mockup)とは製品等の外観、デザインを似せた模型を作成する事、もしくはそれ自体。直訳で「模型」の意味。

よく作られるのは携帯端末等の家電製品である。店頭でデザインと大きさ、重さを消費者に伝える主な手段としてモックアップが作成される。

また、アプリやウェブサイトの開発において、それらの動的な部分を省いたデザイン等の視覚的な部分を試作することを指す。流れとしてはワイヤーフレームの次に作成されることが多く、完成に近いイメージを作成し検討、問題点の洗い出しを行うことに使用される。
メモリリーク(memory leak)とはプログラムのバグの一つで、使用していないメモリを開放することなく確保し続けてしまう現象のこと。leakは直訳で「漏れ出す」の意味。

通常ソフトウェアなどは動作にあたって必要なメモリを確保し、使用後は解放する。このプロセスの最後のメモリの解放作業がプログラムの記述忘れ等によって行われず、必要メモリが膨らみ、他の機能やソフトを圧迫すること。結果コンピュータ自体のパフォーマンスを著しく低下させ、場合によっては機能停止に陥る。

一時的なプログラムではそれ自体を終了することによってメモリが解放されるのでリークは解消されるが、常駐プログラムやサーバソフトウェアの場合は空き領域を圧迫する原因になりうる。また、OS自体にメモリリークが発生した場合は再起動にて回復することとなる。
MACアドレスとはネットワークに接続する機器を識別するために割り当てられたアドレスのこと。物理アドレスとも呼ばれる。

コンピュータ、スマートフォン、ルーター、ハブなど各種機器に製造段階で割り当てられる。0~9、A~Fを合わせた16進数で「A0:62:3A:4B:B9:35」のように表現される。最初の6桁 (例でいうとA0:62:3A) はメーカーを表すベンダーID、次の2桁が機種ID、最後の4桁がシリアルIDとなっている。

MACアドレスは重複することなく割り振られており、変更は可能ではあるが基本的に行うことはない。それぞれの機器を認識することに利用され、通信の際の相互の機器の認識・送付先の確認、ルーターの使用可能機器の登録などに使用される。
マスタメンテとはマスターメンテナンスの略語で、データ処理における基本的な情報をメンテナンスすること。データベースについて使用されることが多い。

データベースには主に処理に利用したり参照されることが主なマスターファイルと、更新されることが主なトランザクションファイルが存在する。この、基本的に変更されることが少ないマスターファイル内のデータを更新する作業のことである。

例えば企業内の従業員のデータをマスターデータとした場合、
新しく入社した従業員のデータを新しく登録する、既存の社員の住所データを変更する、退職した社員のデータを消去する、といったデータを最新のものに整える作業のことがマスタメンテである。
方式設計はシステム開発において設計段階の過程。アーキテクチャ設計ともいう。

システム開発は一般的に要件定義、外部設計、内部設計、プログラミング、テストの流れで進められていくことが多い。
方式設計はこのうちの「外部設計」の最初のフェーズにあたり、要件定義で決まったシステムの要件を基に、どこまでをシステムが行い、どこを人の手で行うかといったシステムの構造と実装方針を定める。システムが行う範囲が決まれば、機能をどうサブシステムに割り振っていくかを決定し、サブシステム間のインターフェースを定義する。

上流工程であり、全体の構造を決定する過程であるのでシステムの基盤となる。
保守契約とは製品の不具合や故障が発生した時に専門的な対応をとることを約束する契約のこと。メンテナンス契約とも。

ハードウェアやソフトウェアのサービスを使用していく中で、その故障や不具合を使用している側が修正することは難しいことが多い。そういった場合に、専門の技術者による修理などの対応を受けることができる。
業務用コピー機などの業界で多く利用されている。

また、WEB制作関連業務においての保守契約では、期間を定めて提供したシステムの修正やアップデート、ホームページであれば更新作業を行う内容であることが多い。
保守契約書という書面を取り交わし、どの業務が「保守作業」にあたるのかを明確に区別することが望ましい。
負荷テストとは、システム等のソフトウェアに対して高い負荷をかけ、想定される範囲内で正常に動作するか確認するテストである。ストレステストとも呼ぶ。

開発時や単体・結合テストではみつけられない実際の稼働時におきる不具合を検知するため、実際の業務や利用を想定した疑似的なアクセスを発生させる。
また、意図的に予想されるよりも高い負荷をかけて、どの時点からシステムに停滞やレスポンスの低下などの影響が発生するのかを確認することも目的とされる。

負荷テスト用のツールを利用し、何秒中に何回リクエストを送るか等の設定を行い結果を検証する。応答時間やスループット、エラーの確認が行われ、それに応じてメモリ等のリソースの調整を行う。
排他制御とは、データベースやファイルに対する書き込み処理を制御すること。

複数の編集者並びに利用者がある情報を同時に書き込み・編集した場合、そのデーターの整合性が失われる可能性がある。それを防ぐために一方が更新を行う際は他方は更新が行えないようにすることを排他制御という。
主に、データの参照や読み取りは可能な共有ロックと、読み取りも書き込みもロックする占有ロックがある。
排他制御を行うことで、例えばECサイトで複数ユーザーに注文確定処理を同時に行われることを防ぎ、定めた在庫以上に注文を受け付けないようにすることができる。

なお、複数ファイルのロックを行っている際、アクセスしているユーザーが互いにロックしているデータの解除待ちになってしまうことをデッドロックと呼ぶ。システム設計上の欠陥と考えられ、処理が停止してしまう。
トランザクション(transaction)とは、コンピュータにおいて切り離しのできない複数の情報の単位のこと。

主にデーターベースに対して複数の情報更新や処理を行う場合、一連の流れをセットとして取扱う処理を「トランザクション処理」という。たとえば決済の処理では申し込み・申し込み確定処理・決済処理などが一連の流れとして行われ、このうちどれかが欠けてしまってはいけない。このような不可分な一連の処理を指す。
トランザクション処理にはその信頼性を保証するために「ACID(アシッド)特性」と呼ばれる備えるべき特性が4つ定められている。

1.Atomicity(原子性)…一連の処理の実行は全て行われるか全く行われないかの二択であることを保証する特性。途中で中断した場合、それは全て実行されなかったことになる。

2.Consistency(一貫性)…処理の開始前後の整合性を満たすことを保証する。処理によって整合性が保たれない・矛盾が生じるトランザクション処理は中断される。

3.Isolation(独立性)…トランザクション処理の中の過程が隠ぺいされる特性。

4.Durability(永続性)…完了したトランザクション処理は永続的で結果が失われないことを保証する。システムに異常があった場合ログを用いて異常発生前まで復旧する。

また、処理を行う複数の情報はひとまとめに「トランザクション・ファイル」とよばれる。
チューニング(tuning)とは同調、調律といった意味であるが、WEBシステム開発においてはシステムの動作を改善するための調整のことを示す。

システムやアプリケーションにおいてのCPU、メモリ等のリソースを無駄なく適切に使用し、スループットやレスポンス等の動作性能の向上を図るために行われる。
一般的には、現時点での性能を測定し、ボトルネックとなっている要因を分析・修正をすることを繰り返す。性能を高め、システムの安定性を得ることが主な目的となる。

ボトルネックをみつけるための方法には、CPUに高負荷をかける、データーベース・ネットワークに対して処理を要求する、ディスクに対する処理を行う という手法が挙げられる。
SOAP(ソープ)とは、XML WEBサービスのための通信規約(プロトコル)の一つ。
Microsoft社やDevelopMentor社などが中心となって開発し、2000年にW3Cが標準規格を勧告した。

データのネゴシエーションと伝送にHTTPやSMTP等のアプリケーション層のプロトコルを使用し、メッセージ部分にXMLを用いて行う。
HTTP等のプロトコルはOSに関わらず存在しているので、これによって異なるコンピュータの異なるOS間でも情報のやりとりが可能になり、ウェブサービスを起動してレスポンスを受け取ることができる。
拡張性、中立性(HTTPなどのどのプロトコル上でも運営が可能)、独立性(プログラミングモデルを選ばない)の三つの特徴を持っている。
スプレッドシートとは表計算ソフトのことである。
一般的に、セルと呼ばれるマス目に数値や文字列、数式を入力し計算やシュミレーション等を行う。
代表的なものとしては、マイクロソフトのExcelが挙げられる。

狭義にはグーグルのGoogle Spreadsheets(グーグル スプレッドシート)のことを示す場合もある。
Google Spreadsheetsはインストール型のExcelに対してブラウザ上で動作するWebアプリケーションのこと。チャット機能も備えており、比較的オンラインでの共有や同時編集に向いているスプレッドシートである。
スループット(throughput)とは、コンピュータ・ネットワーク等において一定の時間の中での処理能力のこと。

アウトプットとインプットの間の時間当たりのデータ量という意味からスループットと表現される。
一般的にはネットワークの通信速度を指す事が多い。無線LAN機器などに「60Mbps」のように表記されており、速度や機器のパフォーマンスの基準とされる。通信機器の場合、総じて近い数値のスループットが推奨されており、途中にスループットが低い機器が入ると全体の速度も低くなる。

コンピュータの処理能力自体や、送信フレームが損失する事のないうちの最大レートの事を指す場合もある。
スタンドアロン(stand alone)とは、環境や他のリソースに関わらず単独で機能するシステムやコンピュータのことである。

直訳では「孤立している」という意味を持ち、その名の通りIT関連のものにおいて単体で動作できる機器や状態を指す。

例えば、スタンドアロンなコンピュータは、ネットワークに接続されていないコンピュータを示す。それ単体でも印刷・演算処理、ファイルの管理などが可能なものであり、昨今のコンピュータは基本的にスタンドアロンでの使用が可能だといえる。
ネットワークなどの外部に接続されていないため、セキュリティが強く、企業内などで機密事項を保存する場合などに用いられる。

システム等のソフトウェアの場合では、他のソフトウェアの機能に依存せずに単体で利用が可能なものを意味し、OSもまたスタンドアロンだと考えることができる。

スタンドアロンの機器の代表例は単体で文字を打ち込み出力できるワープロ等が挙げられる。
サイジング(sizing)とは、システムの要件に合わせてネットワークやサーバー等のリソースの量を見積もることをさす。

システムの運用を開始した後にリソースの補強を行うことは難しくコストもかかるため、前もって負荷とそれに耐えうるリソースの量を見極めることは重要である。特にサーバーに対しての負荷を予想し、サーバーの台数や性能を見積もることをを「サーバーサイジング」と呼ぶ。
また、既存のシステムにおいて、大型コンピュータを小型化するなどして規模を縮小することを「ダウンサイジング」といい、現在では派生して組織の規模を縮小する場合などにも用いられている。
逆に大型のハードウェアに置き換えることを「アップサイジング」と呼ぶ。
クライアントサーバシステムとは、システムの形態の一つである。

動作するにあたって、サーバーとクライアントが相互に作用するシステムの形のこと。クライアントとは、主にユーザーが使用するコンピュータ一つ一つのことで、サーバーは主に処理の部分を担う。
基本的には一つのサーバーに対して複数のクライアントが繋がり、クライアントの要求に対してサーバーが処理を行い結果を返す。返ってきた結果をクライアントが表示をする、というように表示と処理を分担した形である。
クライアントの数の増減にシステムが影響されにくく、サーバー側の変更を行いやすいのがメリットである。
対し、サーバーに負荷がかかりすぎる可能性がある点、ネットワークが不調になるとクライアント側が利用できなくなるのがリスクである。

クライアントサーバシステムに対照的なシステムとしてピアツーピアシステムがあり、こちらは一つ一つのコンピュータが直接繋がり、対等の立場として相互に要求・応答が行われる。
クラス図とは、システム開発において、システムを構成するクラスの関係性を表す図のことである。
クラスとその属性・操作を図として可視化することで、全体の構成の理解を深めることに利用する。

書き方には一定のルールがあり、基本的にそれにのっとって作成する。
まず、クラスを四角形として表現する。
その四角形の中に・クラス名・属性(プロパティ)・操作(メソッド)を記述し、それぞれの名称を記載する。
このうち属性と操作についての記述は任意とされており、属性であればその型や初期値、操作であれば戻り値や引数を記述することもある。また、それぞれの可視性を +(public)、 -(private)、 #(protected)、 ~(package) で表現し、名称の前に記載する。

クラスの相互の関係は線で四角形を結びつけることで表現する。
関係性の例としては、関連、集約、コンポジション、依存、汎化、実現等があり、それぞれ線の形も決められたものである。

こうしてクラスと、そのクラスが持つ属性と操作、それらの関係性が図に表されることでシステムの全体的な構成を示すものとなる。
UIはユーザーインターフェース(User Interface)の略称。
コンピュータにおけるインターフェースの一つで、特にコンピュータと人間との接点のことを指す。

インターフェースとはそもそも「境界」といった意味を持っており、UIはコンピュータを操作する際人間側が触れるもの・使用するものすべてを指す。
例えば、デスクトップ・マウス・キーボードといった接続機器から、画面のデザインといった視覚的情報をも含む。

また、UIは更にいくつかに分類され、メジャーなものとしては
マウスやキーボードを使用し、画面に表示される情報を通して操作する視覚的なGUI(グラフィカルユーザーインターフェース)や、
キーボードを使用し、文字を入力することで操作するCUI(キャラクターユーザーインターフェース)等がある。

またUX(ユーザーエクスペリエンス)と混同されがちだが、こちらはユーザーにとってのサービスを利用して得られる「体験」を意味する。デザインのみに留まらず、ECサイトであれば問い合わせ時の対応や商品の状態なども含むサービス全体を対象とする。このようにUIとは別のものであるが、優れたUIデザインがユーザーに良いUXをもたらすように、密接に関係している要素である。
インターフェース(interface)は、境界面、中間域といった意味を持ち、そこからコンピュータにおいて機器と機器等を媒介する部分を指す。

インターフェースは主に以下の三つの種類がある。
1.ハードウェアとハードウェアを接続するUSBやイーサネット等のハードウェアインターフェース
2.ソフトウェア同士を媒介するAPIやネットワーク等のソフトウェアインターフェース
3.人間とコンピュータ間のマウスやキーボード等のユーザーインターフェース

特に3つめのユーザーインターフェースはUIと略され、キーボードから文字を入力することによってPCを操作するCUIと、マウスなどで視覚的に操作するGUIに分けられる。
このように対象と対象を仲介しているもののことを示す。
IME制御とは、Web上において日本語入力機能を制御することである。

IMEとはInput Method Editorの略称で、ローマ字からひらがな、ひらがなから漢字へ変換したりと日本語の文字入力を補助するソフトウェア全般を指す。
サイトのinput欄などで入力の形式を一定にしたい場合、CSSやJavaScriptで制御する。CSSではime-modeプロパティ等があるが、主にIEのみの機能でブラウザ依存になることからJavaScriptで行うのが一般的である。

半角入力が主な英語圏では制御の問題はないが日本語入力の際には長年の問題となっており、待望の機能であるがニーズが限られているためすべてを完全に制御できる機能は実装されていない。
インフラはインフラストラクチャー(infrastructure)の略称で、土台や基盤、下部構造といった意味。
一般的には生活の基盤である、水道、ガス、交通網等の仕組みを指す。

IT業界でいうインフラ、いわゆるITインフラでは、アプリケーション等のソフトウェアが動作する基盤となるPC、サーバー等のハードウェアや、データーベースやOS等のミドルウェアを指す。
インフラがソフトウェアの動作を支える土台となり、二つが相互に機能しあったものがシステムと呼ばれる。
ASPとはアプリケーションサービスプロバイダ(Application Service Provider)の略称で、アプリケーションをインターネット経由で提供すること、もしくはその事業者のことを指す。
SaaS(サース)と同義で使用されることが多い。

ユーザーはアプリケーション等のソフトウェアをパッケージで購入するのではなく、ブラウザ等を使用してインターネット経由で使用できる。初期費用がパッケージと比較すると安く、手軽に利用を開始できインターネットが使用できる環境であれば場所を選ばないこと等がメリットである。

対して、提供会社の倒産でサービスが使用不可になったり、セキュリティ上のリスクがあること、長期利用はコストがかさむ傾向があるなどのデメリットがあるが、ASPのサービス形態自体は1960年代から存在していた。

利用分野は給与計算、財務管理などの計算分野やコンピュータウイルスのチェックなどがある。
アーキテクチャ(architecture)とは、直訳で建築、建築学、構造等を意味する。

本来は建築学で建築の様式や構造、設計などを指す言葉であり、そこからIT分野においてハードウェアやシステムの設計方法、設計思想、構成方式のことを示すようになった。個々の実装や規約ではなく、あくまで全体の基本設計等を指す。
近年はアプリケーションやWebサービスの構造が複雑化し、アーキテクチャを定めることが多くなっている。

アーティテクチャと誤記されることが多いが、アーキテクチャの発音の方が一般的である。