BLOG ARTICLE 분류 전체보기 | 197 ARTICLE FOUND
- 2007.03.06 플래시 통신
- 2007.03.05 DataSet과 XML웹서비스
- 2007.03.05 3 Teir
- 2007.02.27 웹서비스 개요
- 2007.02.09 SQL 함수의 분류와 정리
- 2007.01.29 응용 프로그램을 위한 최상의 사용자 환경을 만드는 방법 1
- 2007.01.25 용어정리(ADO)
- 2007.01.25 용어정리(DB)
- 2007.01.24 State Management
- 2007.01.23 PreviousPage란
- 2007.01.22 ASP.NET 페이지 리디렉션
- 2007.01.17 Top 10 Reasons to Switch from Java to Visual C#
- 2007.01.17 IT용어정리(네트워크)
- 2007.01.17 IT용어정리(프로그래밍) 1
- 2007.01.09 9550 3
DataBound Control | |||||||||
^| | ASP.NET (웹용) | ||||||||
DataSource Control | <- | Client | HTTP | -> | -> | WebService | DB | ||
DataSet (DataTable) | SOAP (XML) | <- | DataSet DataTable | WebMethod() { } WebMethod(DataSet) { } | -> <- fill() | ||||
-> | HTTP | -> | -> | ||||||
변경/삽입/삭제 | <-> | SOAP (XML) |
1 tier | | | 2 tier | HTTP | 3 tier | ||||
Web Browser | -> | IIS | -> | (SOAP) | -> | IIS | session["변수"] | =저장개체 |
<- | ASP.NET Runtime | <- | (XML) | <- | ASP.NET Runtime | 클래스명 변수명 | =(클래스)session["변수"] | |
| | ~.aspx ->Session(웹서비스의 프록시개체) | | | ShopService | Sesstion | Application | |||
| | <- | | | WebMethod1() WebMethod2() | save->Cart load<- |
웹서비스의 클라이언트 | |
인터넷 | |
웹 서비스(WebServices) | | | |
|
|
응용프로그램에서 | ⇒ | HTTP | ⇒ | 프로그래밍이 가능한 컴포넌트(java/.NET) |
| | Java App | ⇔ | 서버 EJB서버/RMI서버 |
컴포넌트들 | |
SOAP/XML | |
|
| | |
|
|
OS/Language 무관하게 | |
|
|
|
| | Windws VB,VC++ |
⇔ | 서버 COM++/리모팅 |
웹서비스 작성후
Client엔 웹 참조로 추가
->(프록시클래스 추가됨)
|
Dax Pandhi 2006년 4월 요약: Dax Pandhi는 Windows 응용 프로그램을 위한 사용이 쉬운 사용자 인터페이스를 구현하는 방법과 사용자 환경 디자인 원칙에 대해 설명합니다. 목차소개 |
Connection/물리적 연결을 담당
Command/DB로 퀘리와 저장프로시저를 전송하여 실행 요청하며, 결과를 리턴하는 역할
Parameter/Command개체의 매개변수의 정보값으로 사용됨
DataReader/쿼리 결과를 검토할 수 있게 해줌
DataAdapter/연결되지않은 개체와의 다리역할을 한다.
TransAction/여러 수정작업을 하나의 단위로 묶은것
연결되지 않은 개체
DataTable/행과 열로구성된 데이터의 저장공간
DataRow/DataTable의 행, DataColumn를 구성요소로 가짐
DataColumn/DataRow의 열, 실데이터를 저장하는 개체
Constraint/제약조건으로 DataTable의 제약조건 컬렉션에 저장됨
DataSet/DataTable개체의 집합, 메모리에서 동작하는 DB같은 녀석
DataRelation/DataTable간의 관계,PrimaryKey-ForeignKey 간
DataView/DataTable로 가져온 데이터를 보기위해 사용됨
모든 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리해주고, 데이터베이스를 유지하기 위한 일련의 소프트웨어 시스템
DB특징
실시간접근성
계속적 변화
동시공용
내용에 의한 참조
장점
데이터의 독립성 및 중복의 최소화
데이터를 공유
데이터의 무결성과 보안을 보장
표준화되고 일관된 데이터 관리
테이터를 동시에 사용가능
단점
운영비 증가
고급프로그래밍 스킬필요, 자료처리의 복잡화
백업과 복구작업이 요구됨
고장시 통합시스템에 지장
DDL,DML,DCL(정의, 조작, 제어)
E-R Diagram
개체, 속성, 관계의 3요소로 구성
개체/Entity
속성/Attribute
기초속성/원래 갖고 있던 속성
추출속성/기존속성을 가공하여 생성 유지되는 속성
설계속성/시스템 효율을 위해 설계자가 임의부여
관계/RelationShip/실체간 연관성 1:1, 1:n, n:n
쿠키/memory&file
View State/ASP.NET/memory
연결문자열/aspx?id=...
Session/memory
Profile/ASP.NET/DB 이용/MSSQL종속
저장위치 | 종류 | Ram | File | 공유범위 | 특징 |
Client | Hidden Field | O | |||
Cookie | O | O | |||
View State | O | * | Round Trip을 위해 hidden field를 사용 | ||
쿼리 문자열 | |||||
Server | Application State | O | 해당 어플리케이션내 | ||
Session | O | 해당 클라이언트만 |
a의 요소의 값에 접근하기 위해 사용
transfer된후(경우3)
이전페이지의 요소값에 접근하기 위해..
<- 라운트 트립
1) href 연결
a.aspx -> b.aspx 실행 Postback(x)/CrossPagePostBack(x)
b.aspx <-
2) 페이지간 게시(버튼) *PostBackUrl속성이용
a.aspx -> b.aspx postback(x)/CrossPagePostBack(o)
b.aspx <-
3) 브라우저 리디렉션 Response.Redirection 메서드이용
a.aspx -> a.aspx post back(o)
(버튼) <- post back(o)
(최종) -> b.aspx (브라우저 리디렉션) post back(x)/CrossPagePostBack(x)
b.aspx <-
4) 서버 리디렉션 (Server.transfer메서드 이용)
a.aspx -> a.aspx -> b.aspx
a.aspx <- (내용은 a.aspx)
By Will Wagers
"Prepare
to be assimilated.... Resistance is futile."
-
Borg, "Q, Who?", Startrek: The Next Generation
Why should a Java developer switch to C#? Here
are the major reasons in alphabetical order:
1. "C Style" memory
access
Rather
than forcing developers to write code to access application programming
interfaces (APIs) in other languages in order to access specific memory
locations (e.g. hardware-mapped
memory), C# allows developers to use "C style" memory management and
pointers when necessary. Of course, one of the major design goals of the Java
language and other object-oriented languages is specifically to outlaw such access. A fact which Microsoft
acknowledges by forcing the C# programmer to label such accesses with the unsafe
keyword.
2. Extensions
for component-oriented development
Visual
C# provides developers with a powerful component-oriented development language
that includes support for properties, indexers, delegates, inheritance,
versioning, and attributes, without the need for esoteric or rigid naming
patterns and companion classes.
3. Familiarity
Java
developers will immediately find Visual C# to be familiar and comfortable. C#
is like Java on steroids. There are some extra
keywords; and, Visual C# supports some extra constructs. But, a Java coder
can learn the C# language in a day or two. Learning the APIs is a different
matter.
4. Interactive XML Web services
Visual
C# allows developers to deploy and consume rich, interactive XML Web services
that reduce development time by enabling software aggregation from any
platform. Microsoft is famous for hiding the details from the developer: This
is both good and bad. New developers may not actually know or understand what
is going on under the hood. On the other hand, it does increase productivity.
Of course, Java developers have a variety of IDEs such as Eclipse to choose
from. All of which provide some degree of support for Web services.
5. Leverage the .NET Framework
Visual
C# provides developers with access to the Microsoft .NET
Framework--a robust, thread-safe library of collection classes, data access
classes, networking functions, etc.
Recently, however, various bridge software offer .NET
access from Java programs as well as access to the rich Java libraries from
.NET languages.
6. Object-based type system
Visual
C# provides developers an object-based type system that eliminates the need for
complex, verbose data marshalling code commonly required by Java applications.
7. Standards-based language
Visual
C# provides developers with a standards-based
language (ECMA) with all its advantages. This is a significant advantage
over the Java language.
8. Target any device
Visual
C# lets developers target desktop computers or a variety of handheld and
wireless devices using identical tools and skills. True, but all the devices
must be Windows based.
9. Visual Studio .NET IDE
Visual
C# provides developers with the Visual
Studio .NET integrated development environment (IDE) which includes support
for task lists, property editors, Microsoft IntelliSense®, Forms designers, etc. For development on Windows platform,
Visual Studio is king. However, Visual Studio lags Eclipse and other IDEs
except in Microsoft-specific features.
10. XML comments
Visual
C# allows developers to use eXtensible Markup Language (XML) Comments to
provide useful and customizable source code documentation. Of course, so does
Java although Microsoft does add its own twists to it.
Conclusion
A
form of this top 10 list originated with Microsoft. But, because both Java
software and Visual C# evolve competitively, non-Microsoft oriented
features tend to be matched by each competitor in turn. There is no real reason
to use Visual C# instead of Java in general; because, each has its own
advantages and disadvantages which may or may not be important in specific
situations. Unless you work in a Microsoft-only shop, the requirements of the
project should dictate both the language and other software employed.
DHCP
読み方 : ディーエイチシーピー
フルスペル : Dynamic Host
Configuration Protocol
インターネットに一時的に接続するコンピュータに、IPアドレスなど必要な情報を自動的に割り当てるプロトコル。DHCPサーバには、ゲートウェイサーバやDNSサーバのIPアドレスや、サブネットマスク、クライアントに割り当ててもよいIPアドレスの範囲などが設定されており、ダイヤルアップなどの手段を使ってアクセスしてきたコンピュータにこれらの情報を提供する。クライアントが通信を終えると自動的にアドレスを回収し、他のコンピュータに割り当てる。DHCPを使うとネットワークの設定に詳しくないユーザでも簡単にインターネットに接続することができ、また、ネットワーク管理者は多くのクライアントを容易に一元管理することができる。
DNS
読み方 : ディーエヌエス
フルスペル : Domain Name
System
インターネット上のホスト名とIPアドレスを対応させるシステム。全世界のDNSサーバが協調して動作する分散型データベースである。IPアドレスをもとにホスト名を求めたり、その逆を求めたりすることができる。
各DNSサーバは自分の管理するドメインについての情報を持っており、世界で約10台運用されているルートサーバにドメイン名と自分のアドレスを登録しておく。
リゾルバと呼ばれるクライアントプログラムは、調べたいドメイン名(またはIPアドレス)をまずルートサーバに照会し、そのドメインを管理するDNSサーバを調べ、そのDNSサーバに情報を聞き出すことで変換を行なう。
インターネット上で運用されているDNSサーバのほとんどは、カリフォルニア大学バークリー校(UCB)で開発されたBINDである。
HTTP
読み方 : エイチティーティーピー
フルスペル : HyperText
Transfer Protocol
Webサーバとクライアント(Webブラウザなど)がデータを送受信するのに使われるプロトコル。HTML文書や、文書に関連付けられている画像、音声、動画などのファイルを、表現形式などの情報を含めてやり取りできる。IETFによって、HTTP/1.0はRFC
1945として、HTTP/1.1はRFC 2616として規格化されている。
IP
読み方 : アイピー
フルスペル : Internet
Protocol
米国防総省のネットワークプロジェクトで開発されたプロトコル。
OSI基本参照モデルの第3層(ネットワーク層)に位置し、ネットワークに参加している機器の住所付け(アドレッシング)や、相互に接続された複数のネットワーク内での通信経路の選定(ルーティング)をするための方法を定義している。
コネクションレス型のプロトコルであるため、確実にデータが届くことを保証するためには、上位層のTCPを併用する必要がある。
UNIXの標準プロトコルとなったことから急速に普及が進み、現在世界でもっとも普及している。IPによって世界模で相互に接続された巨大なコンピュータネットワークをインターネットと呼ぶ。
IPv4
読み方 : アイピーブイヨン、アイピーブイフォー
フルスペル : Internet
Protocol Version 4
現在のインターネットで利用されているインターネットプロトコル(IP)。アドレス資源を32ビットで管理しているため、識別できるコンピュータの最大数は42億9496万7296台である。しかし、近年のインターネットの急速な普及により、アドレス資源の枯渇が予想以上に早く生じるとの危惧が関係者の間に高まり、128ビットでアドレスを管理するIPv6が開発された。
IPv6
読み方 : アイピーブイロク、アイピーブイシックス
フルスペル : Internet
Protocol Version 6
アドレス資源の枯渇が心配される現行のインターネットプロトコル(IP)IPv4をベースに、管理できるアドレス空間の増大、セキュリティ機能の追加、優先度に応じたデータの送信などの改良を施した次世代インターネットプロトコル。
IPアドレス 【IP address】
読み方 : アイピーアドレス
フルスペル : Internet
Protocol Address
インターネットやイントラネットなどのIPネットワークに接続されたコンピュータや通信機器1台1台に割り振られた識別番号。インターネット上ではこの数値に重複があってはならないため、割り当てなどの管理は各国のNIC(ネットワークインフォメーションセンター)が行なっている。
現在広く普及しているIPv4では、8ビットずつ4つに区切られた32ビットの数値が使われており、「211.9.36.148」などのように、0から255までの10進数の数字を4つ並べて表現する。
単なる数値の羅列であるIPアドレスはこのままでは人間にとっては覚えにくいため、コンピュータに名前(ドメイン名)がつけられている場合もあり、DNSというシステムによってIPアドレスとの相互変換が可能となっている。
現在のIPv4では約42億台までしかインターネットに接続することができず、アドレスが足りなくなることが懸念されており、IPv4に代わる次世代のIPv6の標準化が進行している。IPv6では128ビットのアドレスが使われるため、当分アドレスが足りなくなる心配はない。
IPマスカレード 【NAPT】
読み方 : アイピーマスカレード
別名 : Network Address Port Translation, IP masquerade
インターネットに接続された企業などで、一つのグローバルなIPアドレスを複数のコンピュータで共有する技術。組織内でのみ通用するIPアドレス(ローカルアドレス)と、インターネット上のアドレス(グローバルアドレス)を透過的に相互変換することにより実現される。
NATと異なりTCP/UDPのポート番号まで動的に変換されるため、一つのグローバルアドレスで複数のマシンから同時に接続することが可能である。ただし、ポート番号の変換が行なわれるため、インターネット側から内部のマシンに接続を開始するような使い方はできず、ICMPも利用できないなどの制限がある。最近のブロードバンドルータなどではこうした制限を緩和するための独自の実装を行なっているものもある。
もともと「NAPT」が技術の名称で、「IPマスカレード」はLinuxにおけるNAPTの実装のことだったが、現在では両者が混同されている例が多く見られる。また、ブロードバンドルータのスペック表などではNAPTの意味で「NAT機能搭載」と表記していることもある。
MACアドレス
読み方 : マックアドレス
フルスペル : Media Access Control address
別名 : マックアドレス
各Ethernetカードに固有のID番号。全世界のEthernetカードには1枚1枚固有の番号が割り当てられており、これを元にカード間のデータの送受信が行われる。IEEEが管理・割り当てをしている各メーカーごとに固有な番号と、メーカーが独自に各カードに割り当てる番号の組み合わせによって表される。
MTU
読み方 : エムティーユー
フルスペル : Maximum
Transmission Unit
通信ネットワークにおいて、1回の転送で送信できるデータの最大値を示す値。送信する側が接続ごとに値を設定できる。送信側ホストが受信側ホストより大きいMTUを持っていた場合は、送信側が受信側のMTUに従ってデータを再分割して送信する。エラーデータの再送信はMTUに指定されたサイズを単位として行われるため、劣悪な通信環境ではMTUを小さい値に設定した方が転送速度が速くなり、逆に安定した通信環境では制御信号が少なくなる分MTUの大きい方が転送速度が速くなる。MTUの単位はバイトで、Ethernetでは1500程度、電話回線によるダイヤルアップ接続では576程度が最適とされる。
NAT
読み方 : ナット
フルスペル : Network
Address Translation
インターネットに接続された企業などで、一つのグローバルなIPアドレスを複数のコンピュータで共有する技術。組織内でのみ通用するIPアドレス(ローカルアドレス)と、インターネット上のアドレス(グローバルアドレス)を透過的に相互変換することにより実現される。最近不足がちなグローバルIPアドレスを節約できるが、一部のアプリケーションソフトが正常に動作しなくなるなどの制約がある。
OSI参照モデル 【OSI reference model】
読み方 : オーエスアイさんしょうモデル
別名 : OSI基本参照モデル,
OSI階層モデル, OSI layer
model, OSI basic reference model
国際標準化機構(ISO)により制定された、異機種間のデータ通信を実現するためのネットワーク構造の設計方針「OSI(Open Systems
Interconnection)」に基づき、コンピュータの持つべき通信機能を階層構造に分割したモデル。「OSI基本参照モデル」「OSI階層モデル」とも呼ばれる。通信機能を7階層に分け、各層ごとに標準的な機能モジュールを定義している。
第1層(物理層)は、データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ。ピンの形状やケーブルの特性なども第1層で定められる。
第2層(データリンク層)は、通信相手との物理的な通信路を確保し、通信路を流れるデータのエラー検出などを行なう。
第3層(ネットワーク層)は、相手までデータを届けるための通信経路の選択や、通信経路内のアドレス(住所)の管理を行なう。
第4層(トランスポート層)は、相手まで確実に効率よくデータを届けるためのデータ圧縮や誤り訂正、再送制御などを行なう。
第5層(セッション層)は、通信プログラム同士がデータの送受信を行なうための仮想的な経路(コネクション)の確立や解放を行なう。
第6層(プレゼンテーション層)は、第5層から受け取ったデータをユーザが分かりやすい形式に変換したり、第7層から送られてくるデータを通信に適した形式に変換したりする。
第7層(アプリケーション層)は、データ通信を利用した様々なサービスを人間や他のプログラムに提供する。
POP 【POP3】
読み方 : ポップ
フルスペル : Post Office
Protocol
インターネットやイントラネット上で、電子メールを保存しているサーバからメールを受信するためのプロトコル。現在最も広く普及している。電子メールの送信に使われるSMTPとセットで利用される。ユーザがタイトルや発信者を確認する前に、クライアントが全メールを受信してしまうため、発信者やタイトルの一覧を見てから受信するかどうか決められるIMAPをPOPの代わりに利用する場合もある。POPを使うとパスワードがネットワーク上をそのまま流れるため、通信途中で盗まれるかもしれないという危険性がある。この弱点を改善し、パスワードのやり取りを暗号化したものをAPOPという。
SMTP
読み方 : エスエムティーピー
フルスペル : Simple Mail
Transfer Protocol
インターネットやイントラネットで電子メールを送信するためのプロトコル。サーバ間でメールのやり取りをしたり、クライアントがサーバにメールを送信する際に用いられる。
SSL
読み方 : エスエスエル
フルスペル : Secure Socket
Layer
Netscape Communications社が開発した、インターネット上で情報を暗号化して送受信するプロトコル。現在インターネットで広く使われているWWWやFTPなどのデータを暗号化し、プライバシーに関わる情報やクレジットカード番号、企業秘密などを安全に送受信することができる。
SSLは公開鍵暗号や秘密鍵暗号、デジタル証明書、ハッシュ関数などのセキュリティ技術を組み合わせ、データの盗聴や改ざん、なりすましを防ぐことができる。OSI参照モデルではセッション層(第5層)とトランスポート層(第4層)の境界で動作し、HTTPやFTPなどの上位のプロトコルを利用するアプリケーションソフトからは、特に意識することなく透過的に利用することができる。SSL 3.0をもとに若干の改良が加えられたTLS 1.0がRFC 2246としてIETFで標準化されている。
TCP/IP
読み方 : ティーシーピーアイピー
フルスペル : Transmission Control Protocol/Internet Protocol
インターネットやイントラネットで標準的に使われるプロトコル。米国防総省が、核攻撃で部分的に破壊されても全体が停止することのないコンピュータネットワークを開発する過程で生まれた。
UNIXに標準で実装されたため急速に普及し、現在世界で最も普及している。OSI参照モデルではIPが第3層(ネットワーク層)、TCPが第4層(トランスポート層)にあたり、HTTPやFTPなどの基盤となるプロトコルである。
TTL
読み方 : ティーティーエル
フルスペル : Transistor-Transistor
Logic
バイポーラトランジスタのみで構成された論理集積回路(ロジックIC)のこと。TTL登場前に使われていたDTL(Diode-Transistor Logic)と区別するため、このような名称になった。
1964年にTexas Instruments社(TI)が開発した7400シリーズがTTLの始まりで、その後多くの派生製品を産んだ。現在では多くの企業がTIと同仕様の製品を同様の型番で販売している。
TTLはCMOSと並んでデジタルICの構成回路としてはもっともポピュラーなものの一つである。
UDP
読み方 : ユーディーピー
フルスペル : User Datagram
Protocol
インターネットで利用される標準プロトコルで、OSI参照モデルのトランスポート層にあたる。ネットワーク層のIPと、セション層以上のプロトコルの橋渡しをする。
インターネットでは、トランスポート層のプロトコルとしてTCPも使われるが、UDPは転送速度は高いが信頼性が低く、TCPは信頼性は高いが転送速度が低い。
VoIP
読み方 : ブイオーアイピー
フルスペル : Voice over
Internet Protocol
インターネットやイントラネットなどのTCP/IPネットワークを使って音声データを送受信する技術。社内LANを使った内線電話や、インターネット電話などに応用されている
WiBro
読み方 : ワイブロ
フルスペル : Wireless
Broadband
韓国で開発された高速無線通信技術。2005年12月にIEEE(国際電気電子学会)によって「Mobile WiMAX」(IEEE802.16e)規格の一部として標準化された。
2.3GHz帯の無線を使い、最大で下り20Mbps、上り6Mbpsで通信できる。固定無線技術のWiMAXを基盤に開発されたが、WiBroは移動時にも通信可能で、高速移動中でも下り数百kbpsの通信速度を確保できるとされている。このため、第4世代携帯電話(4G)が導入されるまでの「つなぎ」の高速移動通信技術として期待されている。
アップストリーム 【upstream】
読み方 : アップストリーム
通信回線を流れるデータのうち、下流の通信機器から上流の機器へ流れていくもの。サーバとクライアントの接続ではサーバ側が上流になるため、アップストリームはクライアント側が送信するデータになる。
インターネットのほとんどの用途では、アップストリームが使われるのは、サーバへのリクエスト送信などのごく少量のデータを送る場合である。このため、ADSL回線などはアップストリーム回線の通信速度を抑えてダウンストリーム(サーバ側が送信するデータ)回線の通信速度を確保している。ただし、テレビ電話などではクライアントからも大量のデータを送信するため、アップストリーム回線もそれなりの速度が必要になる。
ダウンストリーム 【downstream】
読み方 : ダウンストリーム
通信回線を流れるデータのうち、上流の通信機器から下流の機器へ流れていくもの。
例えば、プロバイダ経由でインターネットに接続している環境では、プロバイダ側(つまりインターネット)からパソコンに流れてくるデータがダウンストリームになる。
LAN環境ではネットワークサーバを上流、クライアントマシンを下流として扱い、サーバからクライアントに送られるデータがダウンストリームになる。
Webページの閲覧やストリーミング配信といった、インターネットのほとんどの用途では、サーバ側が送るデータがクライアント(パソコンなど)が送るデータに比べて非常に多くなる。
このような状況を踏まえて、56kbpsアナログモデムやADSL回線では、ダウンストリームの通信速度をアップストリーム(ダウンストリームとは逆に、クライアントからサーバに流すデータ)の通信速度より速くしている。
コンピュータ同士を接続する回線以外でもダウンストリームという言葉は使われることがある。その一例がUSBで、パソコンのインターフェースを最上流とし、パソコンから送信するデータがダウンストリームに、パソコンが受信するデータがアップストリームになる。
ゲートウェイ 【gateway】
読み方 : ゲートウェイ
ネットワーク上で、媒体やプロトコルが異なるデータを相互に変換して通信を可能にする機器。OSI参照モデルの全階層を認識し、通信媒体や伝送方式の違いを吸収して異機種間の接続を可能とする。
ソケット 【socket】
読み方 : ソケット
TCP/IPで通信を行なうコンピュータが持つネットワーク内での住所にあたるIPアドレスと、IPアドレスのサブ(補助)アドレスであるポート番号を組み合わせたネットワークアドレスのこと。
通常、TCP/IP通信においては、1つのIPアドレスは複数(通常は65536個)の「ポート」から構成され、他のIPアドレス上のポートと結合して、複数のアドレスと同時に通信できるようになっている。接続を行なう場合は必ずIPアドレスとポート番号の組を指定し、この組のことをソケットという。
1つのビル(IPアドレス)に複数の階(ポート)があり、どのビルのどの階かを指定して通信を行なうのがソケットであると言える。
ソケットには、通信を行なうアプリケーションソフトがTCP/IPを扱うための仮想的なインターフェースという意味もある。
アプリケーションソフトはアドレスとポートの組であるソケットを指定して回線を開くだけで、通信手順の詳細を気にすることなくデータの送受信を行なうことができる。
実際の通信はTCP/IPプロトコルスタックと呼ばれる共有ライブラリ(ソフトウェア部品)が担当する。
4.2BSDにTCP/IPが実装された時に用意された仕組みで、ネットワークを利用したプログラミングが格段に容易になった。この仕組みをWindowsに移植したものをWinsockという。
ノード 【node】
読み方 : ノード
ネットワークを構成する一つ一つの要素のこと。通信ネットワークではコンピュータやハブ、ルータなど一台一台の通信機器がノードに当たる。ノードとノードを結ぶ線はリンクという。
パケット 【packet】
読み方 : パケット
コンピュータ通信において、送信先のアドレスなどの制御情報を付加されたデータの小さなまとまりのこと。データをパケットに分割して送受信する通信方式をパケット通信と呼ぶ。データを多数のパケットに分割して送受信することにより、ある2地点間の通信に途中の回線が占有されることがなくなり、通信回線を効率良く利用することができる。また、柔軟に経路選択が行なえるため、一部に障害が出ても他の回線で代替できるという利点もある
パケット通信 【packet communication】
読み方 : パケットつうしん
分野 : ネットワーク技術 > ネットワーク制御
コンピュータ通信において、データを小さなまとまりに分割して一つ一つ送受信する通信方式。分割されたデータはパケットと呼ばれ、データのほかに送信先のアドレスや、自分がデータ全体のどの部分なのかを示す位置情報、誤り訂正符号などの制御情報が付加されている。
パケット通信を使うと、ある2地点間の通信に途中の回線が占有されることがなくなり、通信回線を効率良く利用することができる。また、柔軟に経路選択が行なえるため、一部に障害が出ても他の回線で代替できるという利点もある。
一定の範囲でパケット当たりのデータ量が変化する可変長パケットが主流だが、ATMは53バイトの固定長パケット(「セル」と呼ばれる)で通信を行なう。
パケット通信はアメリカ国防省の研究プロジェクトであるARPAnetで採用されたのが最初で、ARPAnetから誕生したインターネットもパケット通信網である
バッファ 【buffer】
読み方 : バッファ
複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく記憶装置や記憶領域のこと。
例えば、コンピュータがプリンタにデータを送る場合、プリンタが受信したデータを紙に印刷する速度は、コンピュータとプリンタの間の通信速度よりも遥かに遅い。何も考えずにプリンタに次々データを送ってしまうと、印刷が追いつかずに途切れ途切れに印刷されてしまう。このため、プリンタの内部には半導体メモリが内蔵されており、受信したデータを一時的に蓄えておき、印刷速度にあわせて順次データを読み出して印刷を行なうようにできている。
パリティチェック 【parity check】
読み方 : パリティチェック
別名 : 奇偶検査
データ通信において、データの誤り(エラー)を検出する手法の一つ。コンピュータはすべてのデータを2進数、すなわち0と1の値の列で表現している。データを送信する側は、この値の列を一定の個数(通常は7個か8個)に区切り、その中に含まれる1(または0)の個数の偶奇(パリティビットと呼ばれる)を添付してデータを転送する。受け取った側は添付されたパリティビットと、データ中に含まれる1(または0)の個数を比較して、偶奇が合わなければデータに誤りがあると判断し、再送を要求する。1ビットのパリティビットを付加すると、奇数個の誤りが生じているかどうかが判定できる。誤り検出としてはもっともポピュラーな方法で、コンピュータ内部の回路間のデータ転送や、通信回線を使ったコンピュータ同士の通信に幅広く利用されている。
非同期 【asynchronous】
読み方 : ひどうき
クロック信号のタイミングに合わせず、任意のタイミングでデータを送信する通信方式。
クロック信号からはデータ転送のタイミングが分からないため、「スタートビット」「ストップビット」という信号をデータの両端に挿入して通信する。同期通信と比べてデータの遅延は少なくなるが、スタートビットなどの信号が必要となるため、同じ通信環境では同期通信より転送速度は若干落ちる。
プロトコル 【protocol】
読み方 : プロトコル
別名 : ネットワークプロトコル, 通信プロトコル, 通信規約, 通信手順
ネットワークを介してコンピュータ同士が通信を行なう上で、相互に決められた約束事の集合。通信手順、通信規約などと呼ばれることもある。
英語しか使えない人と日本語しか使えない人では会話ができないように、対応しているプロトコルが異なると通信することができない。
人間同士が意思疎通を行なう場合に、どの言語を使うか(日本語か英語か)、どんな媒体を使って伝達するか(電話か手紙か)、というように2つの階層に分けて考えることができるが、コンピュータ通信においても、プロトコルの役割を複数の階層に分けて考える。
階層化することによって、上位のプロトコル(を実装したソフトウェア)は自分のすぐ下のプロトコルの使い方(インターフェース)さえ知っていれば、それより下で何が起きているかをまったく気にすることなく通信を行なうことができる。電話機の操作法さえ知っていれば、電話会社の交換局で何が起きているか知らなくても電話が使えるのと同じである。
プロトコルの階層化のモデルは国際標準化機構(ISO)や国際電気通信連合(ITU)などによって7階層のOSI参照モデルとして標準化されており、これに従ってプロトコルを分類することができる。
現在インターネットで標準となっているIPは第3層(ネットワーク層)の、TCPやUDPは第4層(トランスポート層)のプロトコルであり、HTTPやFTP、SMTP、POPなどは第5層(セッション層)以上のプロトコルである。
ポートフォワーディング 【port forwarding】
読み方 : ポートフォワーディング
ローカルコンピュータの特定のポートに送られてきたデータを、別に用意した通信経路を用いてリモートコンピュータの特定ポートに送信すること。通信経路を暗号化してセキュリティを高める用途に用いられることが多いため、ほとんどの場合はssh等の暗号化技術が併用される。ポートフォワーディングが行われている最中は逆方向の通信も可能。ローカルネットワークからの接続しか許可していないサーバに対して、いったん目的のサーバと同じネットワークにあるコンピュータにログインし、内部ネットワークからの通信としてサーバに接続を要求するという形を取っている。目的のサーバが外部ネットワークからの接続を認めている場合も、相手ネットワークまでの通信経路を暗号化することで安全性の高い通信が可能になる。
マルチキャスト 【multicast】
読み方 : マルチキャスト
ネットワーク内で、複数の相手を指定して同じデータを送信すること。これに対し、不特定多数の相手に向かってデータを送信することを「ブロードキャスト」、単一のアドレスを指定して特定の相手にデータを送信することを「ユニキャスト」という。TCP/IPネットワークでは、複数のあて先を指定して一回データを送信すれば、通信経路上のルータがあて先に応じて自動的にデータを複製してくれるので、回線を圧迫することなく効率よく配信することができる。インターネットで映像配信を行なう場合などに使われる。
ルーティング 【routing】
読み方 : ルーティング
TCP/IPネットワークにおいて、目的のホストまでパケットを送信するとき、最適な経路を選択して送信すること。ネットワークの境界で、外部からのパケットを自分のネットワークにあるホストへ転送したり、自分のネットワークからのパケットを別のネットワークへ転送したりすることもルーティングと言う。ルータと呼ばれる機器がこの役目を担っている場合が多い。ルーティングは経路の情報をあらかじめネットワーク機器に設定しておくスタティックルーティングと、経路情報を動的に更新するダイナミックルーティングとにわかれる。
レイヤ 【layer】
読み方 : レイヤ
「層」を意味する単語で、グラフィックスソフトで扱われる「描画用の透明なシート」や、OSI参照モデルで規定された個々のネットワーク階層などを指す用語として用いられる。
前者は、グラフィックスソフトが扱う画像を載せる仮想的なシートで、これを何枚も重ねたり取り替えたりして、画像に要素を追加したり変化を加えたりすることができる。アニメ製作で用いられるセル画を、コンピュータ上で再現したものと考えればわかりやすい。
ソフトによっては100枚以上のレイヤーを扱えるものもあるが、扱う数に応じて必要とされるメモリも増えていく。グラフィックスソフトのユーザがメモリを大量に必要とする由縁である。
なお、バージョン4以後のNetscapeにも同様の「Webブラウザに複数の画面を重ねて表示する」機能があり、こちらもレイヤと呼ばれている。
後者は、ネットワーク対応機器の機能を7階層に分割したもので、個々の機器やソフトウェアの役割を規定している。レイヤが低いほど、電気信号の形式やケーブルなど物理的実体に近い仕様を規定しており、上位のレイヤは、データ形式や表示方式などソフトウェアや人間に近い仕様を規定する。
Ajax
読み方 : エイジャックス
フルスペル : Asynchronous JavaScript + XML
Webブラウザに実装されているJavaScriptのHTTP通信機能を使って、Webページのリロードを伴わずにサーバとXML形式のデータのやり取りを行なって処理を進めていく対話型Webアプリケーションの実装形態。
従来、Webブラウザを使ったWebアプリケーションでは、データをサーバに通知して処理結果を得るにはページ全体をロードしなおさなければならず、ネイティブアプリケーションのような操作性を得ることは難しかった。Ajaxでは、指定したURLからXMLドキュメントを読み込む機能を使い、ユーザの操作や画面描画などと並行してサーバと非同期に通信を行なうことで、サーバの存在を感じさせないシームレスなWebアプリケーションを実現することができる。
ちなみに、JavaScriptのHTTP通信機能自体は同期通信にも非同期通信にも対応しており、受信するデータ形式もXMLとプレーンテキストの両方を選べるため、プレーンテキストを同期通信する従来型のWebアプリケーションをページ遷移を伴わずに実現するといった使い方もできる。
Apache 【アパッチ】
読み方 : アパッチ
NCSA httpd 1.3をベースに、1995年に開発が始まったWebサーバ。ApacheはUNIX系OSやWindowsで動作する。Apacheはフリーソフトウェアとして無償で公開され、世界中のボランティアのプログラマたちの手によって開発された。誰でも修正・再配布することができる。Apacheはもともと、NCSA httpdの細かいバグを修正したり新しい機能を追加するためのパッチ(patch)の寄せ集めとして開発されていたため、この名称がついた。現在のApacheは単独で動作するWebサーバとなっており、世界で最も使われているWebサーバとなっている。
ASPサービス
読み方 : エーエスピーサービス
フルスペル : Application Service Provider Service
インターネットを通じて顧客にビジネス用アプリケーションをレンタルするサービス。提供者はアプリケーションサービスプロバイダー(ASP:Application Service Provider)と呼ばれる。顧客は、主にWebブラウザーからASP事業者のサーバにインストールされたアプリケーションを利用する。主に企業を対象としたサービスをASPサービスと呼ぶことが多い。
ASPサービスにおいて利用できるアプリケーションには、予定表やプロジェクト管理、掲示板、電子会議室、Webメールの配信などにより社内の情報共有を行うグループウェアと呼ばれるものや、財務・会計を行うものや、オンラインストレージによってデータ共有を行うものなどがある。最近では、営業管理や財務管理などの有名なパッケージソフトウェアのASP化が進んでいる。
ASPサービスを利用することにより、インターネットにアクセスできる環境さえあればどこからでもすぐに各種のアプリケーションを利用することができる。社内のコンピュータに一台ずつアプリケーションをインストールする必要がなく、アプリケーションのバージョンアップなどの運用管理作業を行う必要がないのも大きな利点である。
ただし、インターネットを介してアプリケーションを利用するために、回線速度によってはアプリケーションの動作が遅くなったり、ASP事業者のサーバに障害が発生した場合などにアプリケーションが一切利用できなくなる。また、データを社外にもつことになるため、利用の際はこれらを考慮にいれる必要がある。
HTTPS
読み方 : エイチティーティーピーエス
フルスペル : Hypertext Transfer Protocol Security
Webサーバとクライアント(Webブラウザなど)がデータを送受信するのに使われるプロトコルであるHTTPに、SSLによるデータの暗号化機能を付加したプロトコル。サーバとブラウザの間の通信を暗号化し、プライバシーに関わる情報やクレジットカード番号などを安全にやり取りすることができる。Netscape
NavigatorやInternet
Explorerなど主要なWebブラウザが対応していることから、WWWにおける暗号化の事実上の標準となっている。SSLはNetscape Communications社が提唱した暗号化プロトコルで、HTTP以外にFTPやTelnetなどのプロトコルの暗号化にも使われる。
Javaサーブレット 【Java servlet】
読み方 :ジャバサーブレット 別名 :
servlet, サーブレット
Webサーバ上で実行されるモジュール(部品)化されたJavaプログラム。サーブレットを追加することにより、Webサーバの機能を拡張することができる。
サーブレットはJava言語で記述されているため、特定のOSやハードウェアに依存することがなく、サーブレットAPIを実装したあらゆるWebサーバで稼動させることができる。
CGIなどの他のサーバサイドプログラムと異なり、一度呼び出されるとそのままメモリに常駐するため、高速な処理が可能である。また、データを永続的に扱うことができるため、複数のユーザ間で情報を共有することもできる。
当初はSun
Microsystems社のJava
Web Serverの機能の一つとして提供されていたが、仕様がJava Servlet APIとして独立し、現在では様々なWebサーバ向けにサーブレットの実行環境が用意されている。
JSP
読み方 : ジェーエスピー
フルスペル : JavaServer Pages
Java言語を利用してWebサーバで動的にWebページを生成し、クライアントに送信する技術。HTMLファイルの中にJavaプログラムを埋め込んでおき、クライアントの要求に応じてプログラムを実行、処理結果のみをクライアントに送信する。結果は通常のHTML形式になるため、Webブラウザに特殊な機能を組みこむことなくWebアプリケーションを構築できる。Microsoft社のIISの拡張機能ASPに似た技術だが、ASPが(ほぼ)IIS専用なのに対して、JSPは様々なWebサーバ用の実行環境が用意されており、また、特殊なスクリプト言語を覚えることなく、Java言語をそのまま使えるという利点がある。
RSS
読み方 : アールエスエス
フルスペル : Rich Site Summary
別名 : Really Simple Syndication, RDF Site Summary
Webサイトの見出しや要約などのメタデータを構造化して記述するXMLベースのフォーマット。主にサイトの更新情報を公開するのに使われている。
RSSで記述された文書には、Webサイトの各ページのタイトル、アドレス、見出し、要約、更新時刻などを記述することができる。RSS文書を用いることで、多数のWebサイトの更新情報を統一的な方法で効率的に把握することができる。
指定したサイトのRSS情報を取り込んで更新状況をまとめたWebページを生成するアンテナ(巡回)ソフトや、デスクトップに指定したサイトの更新情報を表示するティッカーソフトなどが開発されている。また、ニュースサイトや著名なウェブログなどでは、更新情報をRSSで公開するところが増えている。
RSSにはいくつかのバージョンがあるが、数字の大きいものが上位互換性を持った後継規格というわけではなく、いくつかはそれぞれ別物になっているため注意が必要である。最初のバージョンはNetscape
Communications社が「My
Netscape」サービスのために1999年に開発したバージョン0.9である。これはコンテンツのメタデータを記述する包括的な仕様「RDF」をベースにしたものだったため、RSSバージョン0.91では、サイトの更新情報の配信に特化した仕様に改められた。
その後、RSS関連の技術から手を引いたNetscape社に代わり、RSS-DEVワーキンググループという開発者集団が再びRDFベースの仕様「RSS 1.0」( 1.0)を提案した。高度な機能をモジュール化して追加できるなど本格的な仕様だったが、0.9x系列の方を好むユーザも依然として多く、こうした人々の手によって0.9xの後継となる「RSS
2.0」(
2.0)が提案された。こうした経緯のため、RSSの仕様は大きく「0.9-2.0系列」(Really Simple Syndication)と「1.0系列」(Rich
Site Summary)の2系統に分裂している。
SOAP
読み方 : ソープ
フルスペル : Simple Object Access Protocol
XMLとHTTPなどをベースとした、他のコンピュータにあるデータやサービスを呼び出すためのプロトコル(通信規約)。Microsoft社やUserLand Software社、Developmentor社が中心となって開発された。
SOAPによる通信では、XML文書にエンベロープ(封筒)と呼ばれる付帯情報が付いたメッセージを、HTTPなどのプロトコルで交換する。サービスを利用するクライアントと、サービスを提供するサーバの双方がSOAPの生成・解釈エンジンを持つことで、異なる環境間でのオブジェクト呼び出しを可能にしている。
SOAP 1.1では、実際にデータの送受信に使う下位プロトコルは、すでに広く普及しているHTTPやSMTP、FTPなどから選択できるようになっており、企業間で利用する場合でもファイアウォールなどを安全に通過することができる(SOAP
1.0ではHTTPのみ)。
現在、WWW関連技術の標準化を行なうW3Cによって標準の策定が行なわれており、IBM社やLotus社など、大手ソフトウェアメーカーも自社製品での対応を表明している。
なお、SOAPメッセージの生成エンジンは「SOAPプロキシ」、解釈エンジンは「SOAPリスナ」と呼ばれることもある。
SOAPによって外部から利用可能な、部品化されたWebベースのアプリケーションソフトは「Webサービス」と呼ばれる。インターネット上で各社が提供しているWebサービスを集め、誰でも検索・照会できるようにするWebサービスを「UDDI」という。
Web 2.0 【ウェブ2.0】
読み方 : ウェブにーてんぜろ
2004年頃から登場し始めた新しい発想に基づくWeb関連の技術や、Webサイト・サービスなどの総称。「2.0」という表現はソフトウェアの大幅なバージョンアップをなぞらえたもので、1990年代半ば頃から普及・発展してきた従来型WWWの延長ではない、質的な変化が起きているという認識を込めたもの。
特定の技術やコンセプトがWeb 2.0な訳ではなく「次世代のWeb」を漠然と総称する言葉であるため、明確な定義は無く使う人によって認識も異なるが、多くの人が合意するいくつかの有力な概念が含まれている。その最も大きな特徴の一つは、Web 2.0ではコンピュータにおけるOSのようにWebが一種のプラットフォーム(基盤)として振舞うようになり、その上で情報や機能が製作者の手を離れて組み合わされたり加工されたりするという点である。
従来のWebは製作者が作った状態で完結しており、利用者は単にそれを利用するだけの関係であったが、Web 2.0ではWebサイトの持つ情報や機能を外部のサイトやソフトウェアなどから参照したり呼び出したりすることができ、利用者や他の事業者がソフトウェアやWebサービスを組み合わせて新たなコンテンツやツールを作成できるようになる。
また、多くのユーザが参加して情報を出し合うことで、その蓄積が全体として巨大な「集合知」を形成するという点も重要である。例えば、ブログは多くの執筆者が議論を重ねていく過程が全体として広がりと深みのある情報の集積となっていくし、ソーシャルブックマークは参加者がURLに特徴や分野を表す短いフレーズであるタグを自由に付けていき、それを合成することによって万人にとって有用な分類を行なうことを試みる。
他にも、開発途上のベータ版の状態でサービスを公開し、ユーザの意見を聞きながら洗練させてゆく開発手法や、SNS(ソーシャルネットワークサイト)などに見られるようなユーザ数が増えると急速に価値が高まっていく「ネットワーク効果」の概念、ブログの更新情報の配布などに使われるRSSのような「データについてのデータ」であるメタデータの整備や普及、Ajaxのようなページ遷移を伴わないWebアプリケーションのインターフェースなど、多くの「Web
2.0的」なアイデアが提出されている。
Wiki 【ウィキ】
読み方 : ウィキ
Webブラウザから簡単にWebページの発行・編集などが行なえる、Webコンテンツ管理システム。WebサーバにインストールしてWebブラウザから利用する。
複数人が共同でWebサイトを構築していく利用法を想定しており、閲覧者が簡単にページを修正したり、新しいページを追加したりできるようになっている。編集者をパスワードなどで制限したり、編集できないよう凍結したりすることもできる。HTMLの知識がなくてもリストやリンクを簡単に作成できるように、独自の「整形ルール」が定められている。
電子掲示板(BBS)に近いシステムだが、BBSが時系列に「発言」を積み重ねるコミュニケーションツールであるのに対し、Wikiは、内容の編集・削除が自由なこと、基本的に時系列の整理を行なわないことから、誰もが自由に「記事」を書き加えていくコラボレーションツール、もしくはグループウェアと言える。柔軟性が高く、手軽に始められて操作が簡単なことから、メモ帳代わりに使ったり、簡易なコンテンツ管理システムに利用したりする人も多い。
Wikiは、Ward
Cunningham氏が「WikiWikiWeb」というWebサイトで使っていたプログラムが原型となっている。同氏がこれを公開したことから、多くのWikiクローンプログラムが作成され、様々な環境に移植された。そのほとんどはフリーソフトウェアとして配布されており、簡単に入手して導入することができる。ちなみ、「Wiki」はハワイ語の「Wikiwiki」が語源で、「速い」「急ぐ」「形式張らない」といった意味がある。
ZOPE
読み方 : ゾープ
フルスペル : Z Object Publishing Environment
Pythonで書かれている、オープンソースの高機能アプリケーションサーバソフト。ZOPEは単独でWebサーバとして動作し、Pythonプログラムを使用して動的にWebページを生成することができるほか、データベースソフトと連携した動作にも対応している。また、ZOPEはサーバ上のコンテンツをWebブラウザ経由で管理する機能を備えており、コンピュータの操作に慣れていない人が容易にWebサイトを管理できるよう配慮されている。ZOPEはソースコードが公開されているため、自力でZOPEを改造して機能を追加することもできるが、プラグインを導入して機能を追加する方法も用意されている。
アクセシビリティ 【accessibility】
読み方 : アクセシビリティ
分野 : ITと社会
情報やサービス、ソフトウェアなどが、どの程度広汎な人に利用可能であるかをあらわす語。特に、高齢者や障害者などハンディを持つ人にとって、どの程度利用しやすいかという意味で使われることが多い。"accessibility"
とは「近づきやすさ」「接近容易性」といった意味の英単語である。
例えば、手や腕の障害のためにマウスを使えない場合、ソフトウェアはキーボードだけで利用可能である必要がある。弱視や老眼の人にとってはフォントサイズや配色は容易にカスタマイズ可能でなくては見にくい。視覚障害の人は読み上げソフトを使うので、それに適したレイアウトや記述方法が求められる。
特に、Webページについての「利用のしやすさ」を「Webアクセシビリティ」という。これについては「WCAG」(Web Content Accessibility Guidelines)という指針がW3Cによって提唱されている。画像や音声などには代替テキストによる注釈をつける、すべての要素をキーボードで指定できるようにする、情報内容と構造、および表現を分離できるようにするなどの方針が定められている。
アンカーテキスト 【anchor text】
読み方 : アンカーテキスト
別名 : リンクテキスト, link text
HTML文書の中で、リンクが設定された文字列のこと。HTMLでは他の文書や画像などへのリンクを設定するのに<a>タグを利用するが、<a
href="...">と</a>で囲まれた部分をアンカーテキストあるいはリンクテキストという。通常、アンカーテキストは青い色で表示され、下線(アンダーライン)が引いてある。マウスカーソルを重ねるとリンクされているURLがブラウザウィンドウ下部のステータスバーに表示される。一度クリックしたリンクは紫色で表示される。これらの色や効果はスタイルシートで設定することが可能。
クロスサイトスクリプティング 【XSS】
読み方 : クロスサイトスクリプティング
別名 : Cross Site Scripting
ソフトウェアのセキュリティホールの一つで、Webサイトの訪問者の入力をそのまま画面に表示する掲示板などのプログラムが、悪意のあるコードを訪問者のブラウザに送ってしまう脆弱性のこと。
悪意を持ったユーザがフォームなどを通してJavaScriptなどのスクリプトコードを入力した時に、プログラム側に適切なチェック機構がないと、そのスクリプト内容がそのままHTMLに埋め込まれ、ページを閲覧したコンピュータでスクリプトが実行されてしまうことがある。
このような形でページに埋め込まれてしまったスクリプトは、Webブラウザではページ作成者以外が埋め込んだものであると認識できないため、ブラウザ側でこの問題を防止するには、スクリプトを使用しない設定にするほかなく、スクリプトを使用する場合は常にこの問題が発生しうる。
悪意のあるコードを直接埋め込んで実行させるほかに、ユーザに認識のないまま他所のスクリプトを呼び出して実行するよう仕向けることが可能なため、「クロスサイト」の名がついている。
スクリプトの内容によってはCookieデータの盗聴や改竄などが可能なため、商取引に使ったCookieを横取りして、本人になりすまして物品の購入を行なったり、Cookieを認証やセッション管理に使っているサイトに侵入したり、より広範かつ深刻な損害を与える可能性がある。
対策としては、訪問者からの入力内容をそのまま表示せずに、スクリプトなどのコードを識別して無効化する処理を施すことが必要である。
スタイルシート 【style sheet】
読み方 : スタイルシート
ワープロソフトなどで、フォントの種類や文字の大きさ、色、行間の幅、修飾など、文書の見栄えに関する情報をひとまとめにした、文書の雛形のこと。
あらかじめ複数のスタイルシートを作成しておくことにより、文書作成の度にいちいちレイアウトを編集しなくても、本文にスタイルシートを適用するだけで文書を作成することができる。
また、伝票などの定型文書を作成する際に、同じスタイルシートを使うことで見栄えを統一することができる。
最近はWebページでもスタイルシートの機能を使用することが可能で、インターネット上での「スタイルシート」の意味はむしろこちらが主流となっている。
インターネット上でのスタイルシートの利用は主にHTML文書に対して行われている。HTML文書にスタイルシートを適用する際にはCSSという言語を使用し、複数のページから同じCSSファイルを参照することで、複数のページの見栄えを統一することができる。
HTML文書にスタイルシートを適用すると、HTML文書からレイアウト情報などを分離し、文書の構造だけをHTML文書本体に記述することが可能になる。
これによって、HTML文書の論理的な構造が把握しやすくなるほか、主に手書きでHTML文書を記述する際に、見栄えに関するデータを全部のページにいちいち記述する必要がなくなるというメリットがある。
なお、インターネット上では「スタイルシート」をCSSとまったく同じものとして取り扱っている例が多いが、厳密には「CSSはスタイルシート機能を実現するための言語のひとつ」という関係になっている。
例えば、HTML文書で使えるスタイルシートの言語はCSSのみだが、XMLではCSSのほかに、スタイルシート機能を実現する言語としてXSLが用意されている。
ストリーミングサーバ 【streaming server】
読み方 : ストリーミングサーバ
映像や音声のストリーミング配信を行なうサーバ。多数のクライアントに対して、同時にストリーミング方式のマルチメディアデータを配信する。
ストリーミング方式のデータは通常のWebサーバから配信することも可能だが、サーバや回線への負担が大きいため、ストリーミングサーバを利用するのが一般的である。また、録画した映像をリアルタイムにストリーミング配信(ライブストリーミング)するような作業は、専用のストリーミングサーバでなければ行えない。
以前は専用のソフトウェアと高性能なハードウェアが必要とされていたが、パソコンの高性能化やADSLやCATVインターネットなどの高速回線の普及によって、小規模なストリーミングサーバは個人でも構築できるようになった。
RealNetworks社のReal System ServerやApple社のQuickTime Streaming Serverなどが、手軽に入手できるストリーミングサーバ用ソフトウェアとして知られている。
スレッド 【thread】
読み方 : スレッド
電子掲示板やニュースグループ、メーリングリストなどで、1つの話題に属する複数の記事をまとめたもの。隠語的に「スレ」と略して呼んだりすることもある。同一スレッドに属する記事はひとまとめにして扱われるため、利用者は興味のある話題だけを簡単に抽出して利用できる。
スレッド内での発言はスレッドの主旨に従ったものに限られる。スレッドに沿った話題から派生して話が主旨からずれた場合は、適宜派生した部分を新しいスレッドとして立ち上げ、元スレッドでの話題の一貫性を保つようにする慣習がある。
マルチスレッドに対応したOS上での、ソフトウェアの実行単位。1つのプログラムは最低1つのスレッドを持つ。同じプログラムに属するスレッドはメモリなどのリソースを共有する。複数のスレッドはCPUを交互に占有することによって見かけ上同時実行が可能。
高度な処理を行なうアプリケーションソフトなどでは、スレッドを複数走らせることにより、同時に複数の処理を実行できる。時間のかかる演算処理中にユーザからの入力を受け付けるといった工夫が可能になる。
複数プログラム(マルチプロセス)の同時実行も基本的な構造は同じだが、メモリアドレスの変換などの作業が必要になるため、スレッドの切り替えと比べて負荷は大きくなる。このため、マルチスレッドには対応するがマルチタスクに対応していないOSも、リアルタイムOSなどで実在する。マルチプロセスに対応したOSはすべてマルチスレッド対応している。
セッション 【session】
読み方 : セッション
WWWにおけるアクセス数の単位の一つ。「ビジット」とも呼ばれる。Webサイトを訪れたユーザがサイト内で行なう一連の行動をまとめて1セッションという。同一のユーザが短時間の間に何ページ読み込もうと、セッションは1である。同一のユーザでも、ある程度間隔が開いた場合は、新しいセッションとしてカウントする。どのくらい開いたら新しい訪問とみなすかについてはいろいろな基準があるが、Web測定の代表的な企業であるInternet Profiles社が採用している30分が、事実上の業界標準となっている。
トラックバック 【track back】
読み方 : トラックバック
ウェブログ(ブログ)の機能の一つで、別のウェブログへリンクを張った際に、リンク先の相手に対してリンクを張ったことを通知する仕組みのこと。
ウェブログ作者が別のウェブログの記事を参照して自身のサイトにコメントを掲載するような場合、元の記事へのリンクを張るのが一般的だが、単にリンクしただけでは元の記事の作者はどこからどうリンクされているのか容易に知ることはできない。トラックバックはリンク元サイトに「このような記事からリンクを張った」という情報を通知する仕組みで、リンク元記事のURLやタイトル、内容の要約などが送信される。トラックバックされたサイトはこの情報を元に「この記事を参照している記事一覧」を自動的に生成することができる。
相手に送信されるトラックバック通知のことを「トラックバック・ピング」(trackback ping)と呼び、通知の送信先を「トラックバックURL」(trackback URL)という。多くのウェブログの記事には隅に「この記事へのトラックバックURL」が記載されている。
ブログ 【Blog】
読み方 : ブログ 別名 : Weblog, ウェブログ
個人や数人のグループで運営され、日々更新される日記的なWebサイトの総称。内容としては時事ニュースや専門的トピックスに関して自らの専門や立場に根ざした分析や意見を表明したり、他のサイトの著者と議論したりする形式が多く、従来からある単なる日記サイト(著者の行動記録や身辺雑記)とは区別されることが多い。
また、CMS(コンテンツマネジメントシステム)としての側面を重視し、時系列にページの自動生成する機能や他のサイトの記事との連携機能(トラックバック)、コメント機能などを備えたブログシステムで運営されているものはすべてブログだとする立場もある。
インターネットの普及につれて、多くの人が個人のWebサイトで日記をつけ始めたが、Web日記は紙の日記と異なり、その内容が広く一般に公開されており、ほかのサイトからリンクされたり論評されたりする。また、電子メールなどを通じて著者と読者がコミュニケーションをはかったり、特定のトピックスについて電子掲示板で多人数で論議することも容易である。
そうした環境の中で、Web日記は独自の進化を遂げ、それまでの個人サイトでもない、紙の日記でもない新しいメディアとして台頭した。そうした新しい形式の日記風サイトを指す言葉として「Web」と「Log」(日誌)を一語に綴った「weblog」(ウェブログ)という言葉が誕生した。現在では略して「blog」(ブログ)と呼ばれることが多い。
ブログでは個人の行動の記録は重視されず(一切載せないわけではない)、世相や時事問題、専門的話題に関しての独自の情報や見解を掲載するという形式が主流となっている。また、ネット上で独自に見つけた面白いもの、変なもの、スクープなどを紹介し、そこにリンクを張って論評したり、街で見つけた話題(ネタ)を紹介するという記事も多い。大きな事件や事故が起こった際に、地元の人や関係者、目撃者などが自分のブログに知っている情報を掲載することで、メディアを介さずに「生の」情報が流通するという事例(イラク戦争時にイラク人の男性が公開していた「バグダッド日記」など)も見られる。
多くのブログには読者が記事にコメントを投稿して掲載できる掲示板的な機能が用意されている。また、別のブログの関連記事へリンクして相手の記事に自分の記事への逆リンクを掲載する「トラックバック」という機能もあり、興味や話題ごとに著者同士や著者と読者によるコミュニティが形成されている。最近では、ブログによる「口コミ」で情報が広がり、マスメディアが後追いでそのトピックを取り上げるという現象も起こっており、そういった面からもブログは新しいメディアとして注目されている。
アメリカでは「Blogger」や「Movable Type」といったブログ運営支援サービス・ツールが普及しており、ブログを簡単に開設し、記事を追加・更新できる環境が整っている。日本にも似たような形式のサイトが数多くあり、「個人ニュースサイト」または単に「日記サイト」などと呼ばれているが、これはアメリカで産まれたブログを導入したものではなく、独自に発生・進化してきたものである。日本の一部のネットコミュニティでは、アメリカでブログが注目される以前から個人ニュースサイト文化が定着していたこともあり、「ブログ」と呼ばれることを嫌うサイトオーナーもいる。
ActiveX 【アクティブX】
読み方 : アクティブエックス
Microsoft社が開発したインターネット関連技術群の総称。ActiveXは特定の技術や製品を指す名称ではない。
ActiveXは同社のWebブラウザのInternet
Explorer(IE)と、WebサーバのInternet Information Server(IIS)で利用可能な各種の技術で構成される。
ActiveXのWebブラウザ側の技術としては、OLEをインターネット対応に拡張したソフトウェアの部品化技術であるActiveXコントロールをはじめ、ExcelやWordなど、同社のOfficeアプリケーションソフトで作成された文書をインターネット通じて送受信し、Webブラウザに埋め込んで表示するActiveXドキュメント、VBScriptやJavaScriptなどのスクリプト言語を使ってWebページに動きを与えるActiveXスクリプトなどの技術がある。
ActiveXのWebサーバ側の技術としては、VBScriptやJavaScriptなどのスクリプト言語をサーバ上で実行して、処理結果だけをブラウザに送信するActive Server Pages(ASP)や、Webサーバから他のアプリケーションソフトを呼び出して処理を行なうInternet Server API(ISAPI)などの技術がある。
COM
読み方 : コム
フルスペル : Component Object Model
Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。COMコンポーネントは開発に使った言語やコンポーネントのある場所などに拠らず、どの言語からでも、どこからでも利用することができる。ネットワークを通じて別のコンピュータ上にあるCOMコンポーネントを利用する技術をDCOMと言う。これらの技術はWindowsだけでなく、UNIXやMac
OSにも移植されている。コンポーネント開発が楽にできるよう改良された次世代のCOM+の開発が進んでおり、Windows
DNAの中核技術として期待されている。
COM+
読み方 : コムプラス
フルスペル : Component Object Model plus
Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。COMをより発展させたもの。これまで個々のCOMコンポーネントが実装していた機能のうち、メモリ管理など共通化が可能なものをCOMランタイムとしてOSに統合し、コンポーネント開発をより容易にする。同社の提唱するWindows DNAの中核技術として、Windows 2000で提供される予定である。
CVS
読み方 : シーブイエス
フルスペル : Concurrent Versions System
ファイルのバージョンを管理するアプリケーションソフト。主にプログラムの開発作業などで使用されるが、CVS自体はどんなファイルでも管理できる。
複数人が同時に同じファイルを編集することができ、編集した内容が競合していなければ両方の変更を自動的に統合できる。また、1つのバージョンに対して別々の変更を加えるためにバージョンを分岐させることも可能など、多様な開発ニーズに対応できる機能を備える。
CVSはそれ自体がオープンソースで開発され、CVSで管理されているほか、多くのオープンソースソフトウェアでも採用されている。
C++言語
読み方 : シープラスプラスげんご
広く普及しているプログラミング言語であるC言語に、オブジェクト指向的な拡張を施したプログラミング言語。1992年にAT&T社によって仕様が策定された。C++の言語仕様はCの上位互換になっており、C++の処理系を用いて従来のCで記述されたソフトウェアの開発を行なうことも可能である。オブジェクト指向プログラミングにより、プログラムの再利用が可能となり、大規模・複雑なソフトウェアの開発が容易になった。
DCOM 【分散COM】
読み方 : ディーコム
フルスペル : Distributed Component Object Model
Microsoft社が定めた分散オブジェクト技術の仕様。同社のCOM仕様にしたがって作成されたソフトウェア部品(「COMオブジェクト」と呼ばれる)同士がネットワークを通じて通信を行い、データの交換や処理依頼のやり取りなどを行なうことができる。COMと共にWindows以外のプラットフォームにも移植されており、同社はこれをインターネット標準として普及させるため、IETFに仕様案を提出している。
Delphi 【デルファイ】
読み方 : デルファイ
Borland Software社から発売されているソフトウェア開発環境。プログラミング言語には、教育用として使われることの多いPascalに、オブジェクト指向的な拡張を施したObject
Pascalという言語が用いられる。データベースアプリケーションソフトの構築に使われることが多いと言われている。
Eclipse 【エクリプス】
読み方 : エクリプス
オープンソースの統合ソフトウェア開発環境(IDE)の一つ。Java開発者を中心に急速に普及しており、ソフトウェア開発の共通プラットフォームの標準になると予想されている。
IBM社が1999年から進めていた開発ツール研究プロジェクトの研究成果をソフトウェアの形にしたもので、2001年11月にオープンソース化され、誰でも無償で入手・改変・再配布できるようになった。
Eclipseは単なる開発ツールではなく、開発ツールの「共通プラットフォーム」と呼ばれる。これは、機能をプラグインの形であとから自由に追加できるためで、UML関連ツールやテストツール、各種のプログラミング言語などが用意されている。その数は数百種類に及ぶ。
大手ソフトウェアベンダーの中には、自社の開発ツール製品にEclipseを組み込み、Eclipseに追加する形で自社独自部分を提供するという形の製品をリリースするところも現れている。
IronPython 【アイアンパイソン】
読み方 : アイアンパイソン
Microsoft .NET環境に移植された、スクリプト言語Pythonの実行環境。通常のPythonの機能のほかに、.NET Frameworkの提供する機能を利用することができる。2006年9月にMicrosoft社が最初の正式版(バージョン1.0)をリリースした。
J2EE
読み方 : ジェーツーイーイー
フルスペル : Java 2 Enterprise Edition
Sun Microsystems社のプログラミング言語「Java 2」の機能セットの一つで、企業の業務システムや電子商取引などで使われるサーバに必要な機能をまとめたもの。
標準機能セットのJava 2 Standard Edition(J2SE)に、サーバ用のAPIや諸機能を付加したものと言える。
APIセットをまとめた「Platform
Specification」、Sunによる参照実装、互換性テストスイート、ガイドライン「Blue Prints」といった要素から成り、Javaプログラムを部品化して組み合わせることができるようにする「Enterprise
JavaBeans」や、WebページにJavaプログラムを埋め込んで内容を動的に生成する「Java
Server Pages」(JSP)などの技術を含む。
また、XMLを操作するためのAPIも用意され、サーバ上で様々なソフトウェアを組み立てられるようになっている。
J2EEの動作環境はSunを含む各社のアプリケーションサーバ製品に実装されており、データベースシステムやWebサーバと組み合わせて使う。
Java 2
読み方 : ジャバツー
Sun Microsystems社のプログラミング言語「Java」の第2版。Java 2はJDK 1.2と呼ばれていたものの正式名称で、SunによるJava 2プラットフォーム対応のプログラミング環境や実行環境も含む。
従来のJava環境に比べ、HotSpotと呼ばれる高速化技術を搭載した新しいJava仮想マシンや、柔軟性の高い新しいセキュリティモデル、高い安定性、JFCの正式なサポート、CORBAを利用した分散オブジェクト環境への対応などの改良が加えられている。
2次元グラフィックスAPIのJava 2Dや3次元グラフィックスAPIのJava 3D、従来のAWTに代わるGUI環境のSwingなど、グラフィックス関係の新機能も豊富に搭載されている。
また、Java 2では国際化がさらにすすみ、Java
2Dを利用した各国語の高品質な表示や、IMFによる日本語入力方式の標準化など、プラットフォームに依存しない日本語環境の構築に必要な基本機能を備えた。
SunはCSLというライセンスに基づいてJava 2のソースコードの一部を無償で公開しており、利益を得なければ誰でもJava
2の改変や機能の追加が行なえるようになっている。
ちなみに、JDKのバージョンは現在1.4まで上がっているが、ブランド名は「Java 2」のままである。
Javaアプレット 【Java applet】
読み方 : ジャバアプレット 別名 :
applet, アプレット
ネットワークを通じてWebブラウザにダウンロードされ、ブラウザのウィンドウに埋め込まれて実行されるJavaプログラムのこと。
Javaアプレットを悪用してユーザのコンピュータに被害を与えることのないように、ユーザのハードディスクの内容を読み書きしたり、自分が呼び出されたWebサーバ以外のコンピュータに接続したり、他のアプリケーションソフトを起動したりすることはできないようになっている。
Javaアプレットを使うことにより、HTMLで記述された静的なWebページでは実現できない動的な表現が可能となる。また、Webブラウザのみで利用することができるネットワークゲームやチャットを開発することもできる。
企業内のクライアントサーバシステムでJavaアプレットを利用すれば、社員のコンピュータにはWebブラウザを入れるだけでシステムを利用できるようになり、アプリケーションソフトの配備や管理にかかるコストを節減することができる。
Javaサーブレット 【Java servlet】
読み方 : ジャバサーブレット 別名 : servlet, サーブレット
Webサーバ上で実行されるモジュール(部品)化されたJavaプログラム。サーブレットを追加することにより、Webサーバの機能を拡張することができる。
サーブレットはJava言語で記述されているため、特定のOSやハードウェアに依存することがなく、サーブレットAPIを実装したあらゆるWebサーバで稼動させることができる。
CGIなどの他のサーバサイドプログラムと異なり、一度呼び出されるとそのままメモリに常駐するため、高速な処理が可能である。また、データを永続的に扱うことができるため、複数のユーザ間で情報を共有することもできる。
当初はSun
Microsystems社のJava
Web Serverの機能の一つとして提供されていたが、仕様がJava Servlet APIとして独立し、現在では様々なWebサーバ向けにサーブレットの実行環境が用意されている。
Java仮想マシン 【JVM】
読み方 : ジャバかそうマシン
別名 : Java Virtual Machine, Java VM
Javaバイトコードをそのプラットフォームのネイティブコードに変換して実行するソフトウェア。Java言語で開発されたソフトウェアは、配布時にはプラットフォームから独立した独自の形式(Javaバイトコード)になっており、そのままでは実行することができない。このため、そのプラットフォーム固有の形式(ネイティブコード)に変換するソフトウェアを用意して、変換しながら実行する。この変換と実行を行なうのがJVMである。実行前にまとめて変換することで実行時のオーバーヘッドをなくし、実行速度を向上させたものをJITコンパイラという。
JDBC
読み方 : ジェーディービーシー
フルスペル : Java DataBase Connectivity
JavaプログラムからリレーショナルデータベースにアクセスするためのAPI。SQL言語による命令を発行してデータベースの操作を行なうことができる。データベースの種類によらない汎用性の高いプログラムを開発することが可能だが、実際に稼動させるためには個々のデータベースに対応したドライバ(JDBCドライバ)を導入する必要がある。
JScript
読み方 : ジェースクリプト
Microsoft社が開発したスクリプト言語(簡易プログラミング言語)の一つ。Netscape Communications社とSun Microsystems社が共同開発したスクリプト言語であるJavaScriptに、Microsoft社が自社技術を追加して拡張したもの。JavaScriptが持つ機能の他に、COMオブジェクトを呼び出して利用するための仕様や、ファイルを操作する機能などが追加されている。JScriptで記述されたスクリプトは、HTMLファイルに埋め込んで同社のWebブラウザ「Internet
Explorer」で実行できるほか、「WSH」(Windows Scripting Host)と呼ばれる実行環境を用いてWindows上で直接実行したり、同社のWebサーバであるInternet Information Server上で動的にWebページを生成するために利用することができる。
JSP
読み方 : ジェーエスピー
フルスペル : JavaServer Pages
Java言語を利用してWebサーバで動的にWebページを生成し、クライアントに送信する技術。HTMLファイルの中にJavaプログラムを埋め込んでおき、クライアントの要求に応じてプログラムを実行、処理結果のみをクライアントに送信する。結果は通常のHTML形式になるため、Webブラウザに特殊な機能を組みこむことなくWebアプリケーションを構築できる。Microsoft社のIISの拡張機能ASPに似た技術だが、ASPが(ほぼ)IIS専用なのに対して、JSPは様々なWebサーバ用の実行環境が用意されており、また、特殊なスクリプト言語を覚えることなく、Java言語をそのまま使えるという利点がある。
OLE
読み方 : オーエルイー、オーレ
フルスペル : Object Linking and Embedding
分野 : Windows > 実行環境
プログラミング > オブジェクト指向
Windowsにおいて、アプリケーションソフト間でデータを転送・共有するための仕組み。
OLEを使うことによって、あるアプリケーションソフトで作成している文書の中に、別のアプリケーションソフトで作成した情報を埋め込んだり、別のアプリケーションソフトの機能をあたかも自分の機能であるかのように提供することができるようになる。
1991年に登場したOLE
1.0はWindows
3.1に搭載された。大幅に機能を拡張したOLE2が1993年に登場し、Windows 95に搭載された。1996年にはインターネットに対応するための機能を追加したものが登場し、名称も「ActiveX」に改められた。
OLEを利用することにより、単独では実行できないが、特定の機能のみを持つ部品化された小さなソフトウェアを作成することができ、これをOLEコントロールと呼ぶ。
OLEコントロールはアプリケーションソフトに機能を追加するのに利用される。企業が自社特有の処理をOLEコントロールとして作成し、市販のアプリケーションソフトに組みこんで使うことにより、0から専用のアプリケーションソフトを開発するよりも低コストにカスタムアプリケーションソフトを作成することができる。
Python
読み方 : パイソン
プログラミング言語のひとつで、Perlなどと同じくコンパイルを必要としないスクリプト言語に属する。文法が簡易で可読性に優れる一方、拡張モジュールが豊富に用意されており(C/C++で自作することも可能)、テキスト処理に限らず多様なアプリケーションの開発に利用できる。Pythonを利用してPerlと同じようにCGIスクリプトを作成することもできる。欧米ではPerlに次いで人気のあるスクリプト言語。
Ruby 【ルビー】
読み方 : ルビー
まつもとゆきひろ氏が開発したスクリプト言語とその処理系。オブジェクト指向的な言語構造になっているが、通常の手続き型のプログラミングも可能。C++言語などの本格的なオブジェクト指向言語では大げさと思われるプログラミングを支援することを目的としている。作者が個人で開発しているフリーソフトウェアである。Rubyは、Perlと同じくらい強力なテキスト処理能力、シンプルな文法などの特長をもっている。インタプリタ型言語であるため、プログラムを作成したら、コンパイルなどの処理を行なうことなく、すぐに実行することができる。UNIX上だけでなく、MS-DOS、Windows、Mac OS、BeOSの各プラットフォームにも移植されている。
Ruby on Rails
読み方 : ルビーオンレイルズ
スクリプト言語のRubyにより構築された、Webアプリケーション開発のためのフレームワーク。単に「Rails」と呼ばれることもある。デンマークのDavid Heinemeier Hansson氏によって開発され、オープンソースとして公開されている。特にデータベースを利用したWebアプリケーション開発において、新たに書く必要のあるコードを大幅に減らし開発期間を短縮できる。
Ruby on Railsは、MVC(Model-View-Controller)アーキテクチャをサポートしており、データベースに関する処理を担うモデル、データの表示を行うビュー、それらを制御するコントローラの雛形を自動生成する機能を持っている。データの作成・読み込み・更新・削除(CRUD)
のみを行うような単純なWebアプリケーションであれば、データテーブルの作成と雛形の自動生成を行うのみでほとんどの部分が開発できてしまう。Webアプリケーションの多くはCRUD処理を中核としているので、Ruby on Railsを使うことによって多くのコードの作成を自動化することができ、開発期間を短縮できる。
Ruby on Railsには、他にもWebアプリケーションの動作テストを行うためのWebサーバや、テストのためのコードを自動生成する機能、Webアプリケーションの配置を自動化するツールなどのツールキットも同時に提供している。
Smalltalk
読み方 : スモールトーク
1970年代後半にXerox社のパロアルト研究所(PARC)でAlan Kay氏らによって開発されたプログラミング言語。Xerox社から独立したParcPlace
System社によって、1980年にSmalltalk-80として商品化され、その後も機能の拡張と改良が加えられている。対話型のインタプリタ言語で、世界で初めてオブジェクト指向を採用した言語として知られている。Smalltalkの処理系は他の言語のものとは異なり、単なるプログラミング言語の処理系ではなく、プログラミングを支援する開発環境全体を表している。プログラミング言語の枠に留まらず、ユーザインターフェースなどOSの機能に近いものまでクラスとして提供していたため、「Smalltalkプログラミング環境」という呼ばれ方をすることもある。
Swing
読み方 : スイング
Sun Microsystems社のプログラミング言語Javaに標準で付属するグラフィック関連のクラスライブラリ(再利用可能なプログラム部品群)。Java 2(旧JDK 1.2)から標準搭載されたJFCの一部である。Javaで開発されたアプリケーションソフトに、実行環境によらない統一されたグラフィカルユーザインターフェースを提供する。従来から提供されているAWTに比べ、環境による振る舞いの差をなくし、実行速度を高め、多くのバグを取り除き、HTMLに対応するなどの改良が施されている。
アスペクト指向プログラミング 【AOP】
読み方 : アスペクトしこうプログラミング
別名 : Aspect Oriented Programming
ソフトウェアの特定の振る舞いを「アスペクト」として分離し、モジュール化するプログラミング技法。オブジェクト指向プログラミングの問題点を補うために考え出された手法。
オブジェクト指向プログラミングでは、属性(データ)と操作(メソッド)の集合であるオブジェクトをソフトウェアの分解単位として扱うが、オブジェクトとしてうまく分解ができないソフトウェアの「様相」や「側面」といったものが存在し、このような様相や側面は、複数のオブジェクト間にまたがる操作となる。これを「横断要素」と呼ぶ。横断要素の代表例としては、プログラムの実行の様子を記録するロギング操作が挙げられる。横断要素はプログラムコード中に散在するためにすべてを把握し管理することが難しく、また横断要素に対して変更を加える場合にはコード中のあらゆる場所から該当部分を探し出して書き換える必要が生じる。こうした要素を「アスペクト」としてモジュール化し分離することで、把握・管理・変更を容易にするのがアスペクト指向プログラミングである。アスペクト指向プログラミング言語としては、Javaを拡張したAspectJなどがある。
値渡し 【call by value】
読み方 : あたいわたし
別名 : 値呼び出し, CBV
プログラム中で関数やサブルーチンなどに引数を渡す時に、その値のみを渡す方式。渡された関数などの中で値を変更しても、呼び出し元の変数の内容は変わらない。これに対し、変数への参照(メモリ中のアドレスなど)を渡し、関数などの中で値を変更すると元の変数も同じように変更される方式を「参照渡し」(call by reference)という。
参照渡し 【call by reference】
読み方 : さんしょうわたし
別名 : 参照呼び出し, CBR
プログラム中で関数やサブルーチンなどに引数を渡す時に、変数への参照(メモリ中のアドレスなど)を渡す方式。関数などの中で値を変更すると元の変数も同じように変更される。これに対し、変数の値のみを渡し、渡された関数などの中で値を変更しても呼び出し元の変数の内容が変わらない方式を「値渡し」(call by value)という。
インスタンス 【instance】
読み方 : インスタンス
オブジェクト指向プログラミングで、クラスを基にした実際の値としてのデータのこと。クラスと対比して用いられることが多く、クラスを「型」、インスタンスを「実体」として説明されることもある。
「オブジェクト」とほぼ同義語のように用いられることが多いが、実際にメモリ上に配置されたデータの集合という意味合いが強く、データの実体をより具体的・直接的に捕らえた用語である。
例えば「名前、身長、体重」というクラスがあるとすれば、そのインスタンスは「田中、175、65」というように作られる。一つのクラスから複数のインスタンスを作ることができ、それぞれのインスタンスは違った値を持ちうる。プログラムの中で実際に扱われるのはクラスではなく、こうして作られたインスタンスの方である。
なお、ひな形となったクラスを表す際には「○○クラスに属するインスタンス」「○○クラスのインスタンス」という表現が用いられる。
インタプリタ 【interpreter】
読み方 : インタプリタ
人間がプログラミング言語で記述したソフトウェアの設計図(ソースコード)を、コンピュータが実行できる形式(オブジェクトコード)に変換しながら、そのプログラムを実行するソフトウェア。インタプリタ型の言語はプログラムの実行時に変換を行なうため、その分だけコンパイラ型言語よりも遅い。
インプリメント 【implement】
読み方 : インプリメント
別名 : インプリメンテーション, implementation, 実装
ハードウエアやソフトウェアに新しい機能や仕様、部品などを組み込むこと。また、実際にその機能を組み込む際の手法も意味する。日本語でいうと「実装」。
例えば、ソフトウェア開発においてプログラム中に新しい関数を作成することを「新しい関数をインプリメントする」と言い、基板に新しいチップを載せることを「新しいチップをインプリメントする」と言う。
「インプリメント」は実装する作業を、「インプリメンテーション」は実装された機能や部品を指す場合が多いが、この逆の用例も頻繁に見かけるので、ほぼ同義と言える。
インプリメンテーションはシステム構築を設計と開発の2つに分けた場合の後半の段階に相当し、基本的には設計段階で決定された仕様を元に機能を組み込んでいく作業となる。しかし、仕様書があいまいだったりする場合には現場の解釈で実際の動作が決められてしまう場合もあり、この結果、同じ仕様書から作成されたプログラム同士の間に相互運用性がない、といった事態が発生することがある。
このように、同じ仕様に基づいていながら実際の動作が製品ごとに微妙に異なっている状態がインプリメンテーションの違いであり、特定の製品が採用した独自のインプリメンテーションと組み合わせないと動作しない製品やサービスを「インプリメンテーションに依存した製品」などと呼ぶ。
エンティティ 【entity】
読み方 : エンティティ
別名 : 実体
一単位として扱われるデータのまとまり。なんらかの標識に対し、その実体であるデータの集合を指す。XMLやJava、データベース等で用いられる用語である。
プログラミングの分野では、オブジェクト指向の「オブジェクト」や「インスタンス」とほぼ同義の意味で使われることが多い。具体的にどういったデータがエンティティとして扱われるかは分野によって異なるため、注意が必要である。「実体」と訳されることもある。
オーバーフロー 【overflow】
読み方 : オーバーフロー
別名 : 桁あふれ
コンピュータが数値演算を行なった結果が、扱える数値の最大値を超えること。桁あふれともいう。一つの数値を表現するために割り当てられた記憶容量は決まっているため、扱える数値には上限がある。演算結果がこの上限を超えるのがオーバーフローである。例えば、8ビットの符号なし整数は、0から255までの整数を扱うことができるが、ある演算を行なった結果が500になったら、8ビット符号なし整数の枠内では扱うことができないため、オーバーフローとなる。
オーバーロード 【overload】
読み方 : オーバーロード
プログラミングにおいて、戻り値や引数の数やデータ型(シグネチャ)が異なる同名の関数やメソッドを多重定義すること。
オーバーロードにより、引数の型が異なる関数を複数定義することができ、多重定義された関数が呼び出される際には呼び出し側の引数の型に応じて適切な関数が呼び出すことができる。
これは、関数を呼び出す立場から見ると関数に与えるデータ型を変えることで関数の挙動が変化するように見える。例えば、関数の引数が10個定義してあるものの、最低限必要なものは4個であり、それ以外の変数は必要に応じて用いる、といった状況に対応できる。
オブジェクト 【object】
読み方 : オブジェクト
物、目標物、対象という意味の英単語。
ソフトウェアのユーザインターフェースなどでは、ユーザの操作対象として列挙されたアイテム(指定されたフォルダに含まれるファイルなど)のことを指すことが多い。
オブジェクト指向プログラミングにおいては、ソフトウェアが扱おうとしている現実世界に存在する物理的あるいは抽象的な実体を、属性(データ)と操作(メソッド)の集合としてモデル化し、コンピュータ上に再現したもの。オブジェクトを定義するモデルはクラスと呼ばれる。クラスに基づいて実際にコンピュータのメモリ上に展開されたオブジェクトのことをインスタンス(実体)と言うが、このインスタンスの意味でオブジェクトと呼ぶ場合も多い。
オブジェクト指向 【object oriented】
読み方 : オブジェクトしこう
ソフトウェアの設計や開発において、操作手順よりも操作対象に重点を置く考え方。
関連するデータの集合と、それに対する手続き(メソッド)を「オブジェクト」と呼ばれる一つのまとまりとして管理し、その組み合わせによってソフトウェアを構築する。
すでに存在するオブジェクトについては、利用に際してその内部構造や動作原理の詳細を知る必要はなく、外部からメッセージを送れば機能するため、特に大規模なソフトウェア開発において有効な考え方であるとされている。
データやその集合を現実世界の「モノ」になぞらえた考え方であることから、「オブジェクト」指向と呼ばれる。
例えば、我々がテレビを操作する際には、テレビ内部でどのような回路が働いているかを理解する必要はない。ただテレビの操作方法だけを知っていれば、それでテレビを使うことができる。
すなわち、「テレビ」というオブジェクトは、自身(の内部を構成する電子回路)を動作させる手続きを知っており、それを利用するためには、(例えばリモコンで)適切なメッセージを与えるだけでよい。
このように、何らかの「データ」と、それを操作するための「メソッド」の組み合わせが「オブジェクト」である。
個々の操作対象に対して固有の操作方法を設定することで、その内部動作の詳細を覆い隠し、利用しやすくしようとする考え方と言える。この考え方を応用したプログラミング技法が、オブジェクト指向プログラミング(OOP)である。
オプティマイズ 【optimize】
読み方 : オプティマイズ
別名 : コード最適化, オプティマイゼーション,
optimization
ハードウェア・ソフトウェアがより効率よく動作するよう、製品の設計などを調整すること。日本語でいうと「最適化」。「オプティマイゼーション」(optimization)とも呼ばれる。
プログラムの場合、同じ機能を持つプログラムであれば「より高速に」「より小さいメモリ使用量で」動作する方が望ましい。
このような効率のよいプログラムを作成するために、一通りの機能が実装された後に、仕様を変えずに細かな見直しを行なうのがオプティマイズである。
人間の書いたソースコードを解釈し、コンピュータの理解できる機械語に翻訳するコンパイラやインタプリタなどのソフトウェアは、より効率的なコードを生成するために、自動的にオプティマイズを行なう機能を内蔵していることが多い。
ただし、過剰なオプティマイズはプログラマの意図しない動作を引き起こしてバグの原因となることもあるため、どういった処理を行なうか指定できるようになっている。
ハードディスクなどのデフラグも「最適化」と呼ばれるが、デフラグはディスクの中を整理し、より高速に(つまり効率よく)ファイルにアクセスできるようにするために行われているため、これもオプティマイズの一種ということができる。
また、画像処理やデータベースなどの分野でも、何らかの状態を、実質的な内容を保持したまま最適な状態にすることを、広くオプティマイズと呼んでいる。何をどのように最適化するかは対象や目的によって異なる。
オプティマイズを行なうソフトウェア(やソフトウェアの持つ機能)をオプティマイザと呼ぶ。
カプセル化 【encapsulation】
読み方 : カプセルか
オブジェクト指向プログラミングが持つ特徴の一つ。データとそれを操作する手続きを一体化して「オブジェクト」として定義し、オブジェクト内の細かい仕様や構造を外部から隠蔽すること。外部からは公開された手続きを利用することでしかデータを操作できないようにすることで、個々のオブジェクトの独立性が高まる。カプセル化を進めることによりオブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用が容易になる。
キュー 【queue】
読み方 : キュー
別名 : 待ち行列
先に入力したデータが先に出力されるという特徴をもつ、データ構造の一種。
ちょうど遊園地の乗り物待ちのような構造になっており、データを入れるときは新しいデータが最後尾につき、データを出すときは一番古いデータが優先して出てくる。
このように、「最初に入った物が最初に出てくる」というデータの入出力方式は「First In First Out」を略して「FIFO」と呼ばれる。
キューは何かの処理を待たせる際によく使われる構造で、たとえば共有プリンタの印刷待ち、CPUの計算待ちなどがキュー構造で処理されている。
なお、キューとは逆に、最後に入力したデータが先に出力されるというデータ構造は、スタックと呼ばれている。
スタック 【stack】
読み方 : スタック
最後に入力したデータが先に出力されるという特徴をもつ、データ構造の一種。
本を机の上に積み上げるような構造になっており、データを入れるときは新しいデータが一番上に追加され、データを出すときは一番上にある新しいデータが優先して出てくる。
このように、「最後に入った物が最初に出てくる」というデータの入出力方式は「Last In, First Out」あるいは「First In, Last Out」、略して「LIFO」「FILO」と呼ばれる。アセンブリ言語のプログラミングではもっとも頻繁に利用されるデータ構造の一つで、多くのCPUはスタックにデータを出し入れするための専用の命令を用意しており、簡単に利用することができる。サブルーチンや関数を呼び出す際に、処理中のデータや戻りアドレスなどを一時的に退避する場合に使うことが多い。
なお、スタックとは逆に、先に入力したデータが先に出力されるデータ構造は、キュー(待ち行列)と呼ばれている。
クラス 【class】
読み方 : クラス
オブジェクト指向プログラミングにおいて、データとその操作手順であるメソッドをまとめたオブジェクトの雛型を定義したもの。これを定義することで、同種のオブジェクトをまとめて扱うことができるようになる。クラスに対して、具体的なデータを持つ個々のオブジェクトは「インスタンス」と呼ばれる。なお、クラスの定義を他のクラスに受け継がせることを「継承」と言う。その際、元になるクラスを「スーパークラス」(super
class)、あるいは「基底クラス」「基本クラス」(base
class)などと呼び、新たに定義されたクラスを「サブクラス」(subclass)、あるいは「派生クラス」(derived class)と呼ぶ。
コメントアウト 【comment out】
読み方 : コメントアウト
プログラムのソースコードやソフトウェアの設定ファイルなどを部分的に修正する時に、消したい内容を実際に消してしまうのではなく、コメント化することで一時的に機能しないようにすること。
ソースコードや設定ファイルを処理するコンパイラなどのプログラムは、特殊な記法で指定した部分を解釈しないようにできており、利用方法や注釈をファイルに含めることができる。この機能を利用して、試しに消して動作させたい部分をコメント化することにより、消してしまうことなく無効化することをコメントアウトという。消してみた結果元に戻したい場合は、コメント記法の部分を解除すればすぐに元の状態に戻せる。
コンストラクタ 【constructor】
読み方 : コンストラクタ 別名 : 構築子
C++言語やJava言語などのオブジェクト指向言語で作成したプログラムにおいて、データとそれを操作するための手続きを一体化した「オブジェクト」の生成時に呼び出される特殊な関数。オブジェクトが扱うデータの初期化などをここで行なう。
コンパイラ 【compiler】
読み方 : コンパイラ
人間がプログラミング言語で記述したソフトウェアの設計図(ソースコード)を、コンピュータが実行できる形式(オブジェクトコード)に変換するソフトウェア。コンパイラ型言語ではソースコードは開発時にまとめて変換され、実行時にはオブジェクトコードを直接実行するため、インタプリタ型言語に比べて実行速度が速い。
コンポーネント 【component】
読み方 : コンポーネント
何らかの機能を持った、プログラムの部品。プログラムだけでなく、ハードウェアや組織の一部を指して用いられることもある。プログラム以外の分野で使われる例としては、機械のオプションパーツなどがある。
ソフトウェアコンポーネントは、それぞれ特定の機能を持っているが、基本的に単体では使用できず、他のプログラムと組み合わせて機能を実現、ないし追加するために用いられる。また、オブジェクトの一種として、特定の機能を持つが単独では意味を持たないようなオブジェクト、と言うこともできる。
Javaなどのオブジェクト指向言語の普及が進んだことにより、コンポーネントを組み合わせることでかなりの程度ソフトウェア開発が進む状況ができつつある。コンポーネントの開発者とソフトウェアの開発者の分業も進んでいる。こういったコンポーネントを集めてソフトウェアを開発することを「コンポーネントベースプログラミング」などと呼ぶ。
サブクラス化 【sub-class】
読み方 : サブクラスか
オブジェクト指向プログラミングにおいて、あるクラスの仕様を継承して新しいクラスを作ること。
完全に同じ定義を継承して別の名前をつけるだけでは意味がないので、普通は何らかの追加や改変が行われる。
サブクラス化でクラスを定義すれば、元になったクラスと違う部分だけを定義すればよく、それ以外のデータやメソッドは流用できるので、うまく利用すれば開発効率を向上させることができる。
なお、元になったクラスを「スーパークラス」(super-class)あるいは「基底クラス」(base
class)、新しいクラスを「サブクラス」(sub-class)あるいは「派生クラス」(derived class)と呼ぶ。その定義の通り、一般的にはスーパークラスほどシンプルで機能が少なく、派生すればするほど機能が豊富で「重たい」仕様となる。
条件付きコンパイル 【conditional compilation】
読み方 : じょうけんつきコンパイル
ソースコードをコンパイルするときに条件をつけて、コンパイルする部分を指定する機能。また、そのようなコンパイルの方法。
代表的な例としては、デバッグコードの挿入と削除がある。プログラムを開発するときに、「あるループを通過しているか?」「ある分岐をどちらに進んでいるか?」といったことを確認するために特別なコード(デバッグ用コード)を挿入することがある。これらは完成したプログラムには必要ないので、条件付きコンパイルの機能を使って、あるコンパイルオプションが指定されたときのみそれらのデバッグ用コードが有効になるように記述しておく。動作確認が終わり完成したときにはオプションを指定せずにコンパイルすれば、デバッグ用コードはコンパイルされない。
シリアライズ 【serialize】
読み方 : シリアライズ
別名 : シリアライゼーション, serialization
ソフトウェア内部で扱っているデータを丸ごと、ファイルで保存したりネットワークで送受信することができるように変換すること。
これとは逆に、ファイルに保存されているシリアライズされたデータや、ネットワークを通じて送られてきたシリアライズされたデータを、ソフトウェアで扱うことのできる元のデータ形式に復元することを「デシリアライズ」(deserialize)「デシリアライゼーション」(deserialization)という。
デシリアライズ 【deserialize】
読み方 : デシリアライズ
別名 : デシリアライゼーション, deserialization
「シリアライズ」操作により独自の形式に変換され、ファイルに保存されたりネットワークを通じて送信したデータを、ソフトウェアの扱うことのできる元のデータ形式に復元すること。
ソフトウェア内部で扱っているデータを丸ごと、ファイルで保存したりネットワークで送受信することができるように変換するのを「シリアライズ」(serialize)「シリアライゼーション」(serialization)と呼ぶが、これを再びソフトウェアで扱うためにはデシリアライズ操作で元の形式に復元する必要がある。
スクリプト言語 【script language】
読み方 : スクリプトげんご
機械語への変換作業を省略して簡単に実行できるようにした簡易プログラムを記述するためのプログラミング言語。スクリプト言語で作られたプログラムはスクリプトと呼ばれる。「簡易プログラミング言語」と呼ばれることもある。
通常のプログラミング言語と同様、英単語や記号・数字の組み合わせによってプログラムの設計図にあたるソースコードを記述するが、コンピュータが実行できる形式への変換は自動的に行われるため、手間をかけずに実行することができる。
小規模なプログラムをすばやく作成することが主な目的であるため、一般のプログラミング言語に比べて機能は少ないが、習得が容易で記法も簡便であることが多い。
代表的なものにはPerlやVBScript、JavaScriptなどがある。これらの言語はWebページに動きを加えたり、Webサーバ上で動的にページを生成するのに用いられる。
ワープロソフトや表計算ソフトなどのマクロ言語もスクリプト言語の一種である。
スパゲッティプログラム 【spaghetti program】
読み方 : スパゲッティプログラム
別名 : スパゲッティコード, spaghetti code
処理の流れや構造を把握しにくく、修正や機能の追加が困難なプログラム。
むやみに制御を(GOTO文などで)他の部分に飛ばしたり、変数の有効範囲を必要以上に広げたりすると、後からプログラムのごく一部を修正したい場合でも、プログラム全体を読み直さないと構造が理解できないという事態に陥る。この様子を、麺が複雑に絡み合い、たった数本の麺を引っ張り出そうとしても全体がついてくる、スパゲッティに例えたのがこの言葉である。
スパゲッティプログラムができる原因はいろいろあるが、設計段階で一貫した制御の流れを用意しなかったり、一度プログラムが完成した後にいろいろな機能を後付けしたり、といった理由によるものが多い。いずれにせよ、プログラムの本線となる流れをはっきりさせておき、メリハリのある処理を行うことが、スパゲッティプログラムの防止につながる。
スパゲッティプログラムはメンテナンス性に欠けるため、バグの温床になりやすく、低品質なプログラムができやすい。スパゲッティプログラムを改造する必要に迫られた場合は、一からプログラムを書き直した方が品質が高く、しかも短時間で仕上がる場合も多い。
正規表現 【regular expression】
読み方 : せいきひょうげん
文字列のパターンを表現する表記法。文字列の検索・置換を行なうときに利用される。
通常の文字と、メタキャラクタと呼ばれる特別な意味を持った記号を組み合わせて表記される。例えば「^」という文字は「行頭」、「.」は「任意の1文字」、「+」という文字は「直前の要素の1回以上の繰り返し」を意味する。
正規表現を使えば、文字列を直接指定せず、「特徴」(パターン)を指定することができるため、表記の揺れを吸収して検索を行なったり、複数の異なる文字列を一括して置換したりすることができる。
もともと、UNIX系OSのスクリプト言語処理系などに使われていた表記法だが、現在では広く様々なソフトウェアに実装されており、テキストエディタの検索・置換機能などで利用することもできるようになっている。ただし、ソフトウェアによって「方言」や利用できない機能があるため、注意が必要である。
タイムアウト 【time out】
読み方 : タイムアウト
処理やデータ転送に時間がかかりすぎる時に、途中で打ち切って終了すること。時間切れ。
プログラムに処理させるデータ量が多すぎたり、通信速度の遅い回線で大量のデータを送ったりすると、作業が終了するまでにとてつもない長い時間がかかってしまい、その間CPU時間や回線などの資源が占有されて他の処理に支障をきたしてしまうことがある。また、通信の場合は相手が何らかの不具合で応答できないとき、延々と相手からの返事を待ち続けてしまいそこで処理が止まってしまうことがある。このため、データ転送などを行なうプログラムには一定の時間が経過して処理が終わらなかったり相手から返事が無ければ処理を打ち切って終了し、次の手順に進むような仕組みが組み込まれていることが多い。こうした仕組みをタイムアウト処理という。
ヌルポインタ 【null pointer】
読み方 : ヌルポインタ
変数や関数のアドレスを格納するポインタ変数のうち、どのアドレスも指していない状態の変数のこと。実際の値は言語や処理系によって異なるが、0やランダムな値などが取られることが多い。宣言だけして領域の確保などを行なっていない場合などがこれにあたり、ヌルポインタの指し示す領域に値を代入したり読み取ったりするとエラーや例外、あるいは予期しない動作を起こす。
配列 【array】
読み方 : はいれつ
同じ型のデータを連続的に並べたデータ形式。各データをその配列の要素といい、それらは添字(インデックス)で識別される。
配列はほとんどのプログラミング言語に存在するもっとも基本的なデータ形式の一つである。同じ型の変数を、添字によって指定された数の分だけメモリに取り、データの読み書きをする。添字に変数を指定することにより、ループを使って一括処理することもできる。
言語によっては、配列の要素の中に配列を格納する「多次元配列」を使うことができるものもある。
ハッシュ法 【hashing】
読み方 : ハッシュほう
データ検索アルゴリズムの一種で、もっともポピュラーなものの一つ。検索対象のデータを一定の規則にしたがってハッシュ値と呼ばれる整数に変換し、ハッシュ値を比較して検索を行なう方式。
文字列検索のように個々のデータが大きい場合、データ全体を比較しながら検索するよりも比較にかかるコストが節約でき、高速に検索できる。ただし、検索するデータの大きさが小さければ、ハッシュ値に変換する手間が増えるためにかえって効率が悪くなることもある。
元のデータをハッシュ値に変換する関数をハッシュ関数と呼ぶが、すべてのデータが異なるハッシュ値を持つように変換できれば、探したいデータのハッシュ値と同じハッシュ値を持つデータを探すことで、探したいデータと同じデータを見つけることが可能になる。しかし現実にはそのようなハッシュ関数を用意することは難しいため、ハッシュ値が重複した場合(1つのハッシュ値に複数のデータがエントリーされる場合)を処理する方法を用意しておく必要がある。
ハッシュ値の重複を処理する代表的な方法としては、重複した場合に空いているハッシュ値にデータを振り分ける「オープンアドレス法」や、同じハッシュ値を持つデータを線形リストとして保存する「直接連鎖法」などがある。
パラメータ 【parameter】
読み方 : パラメータ
ソフトウェアを実行したりプログラム内で関数を呼び出したりするときに、その動作を指定するために外部から与える設定値。
ビルド 【build】
読み方 : ビルド
分野 : プログラミング > 開発環境
ソースコードのコンパイルやライブラリのリンクなどを行ない、最終的な実行可能ファイルを作成すること。また、そのような作業によって生成されたソフトウェアの版。
ソフトウェア開発では節目となるタイミングでビルドを作成し、全体的な動作確認を行なって不具合を探し、修正作業や機能の拡張を行なっていく。最終的な公開・発売バージョンができるまでに何度も繰り返しビルドすることが多いため、ビルドを行なう際は前回の版から更新・修正されたソースファイルやライブラリファイルのみをコンパイル、リンクしなおすことが多い。これを特に部分ビルドと呼ぶ場合もある。更新の有無に関係なくすべてのファイルをコンパイル、リンクして最新の版を作成することを完全ビルドあるいはリビルドという。
ブーリアン 【boolean】
読み方 : ブーリアン 別名 : ブール型,
論理型
プログラミング言語で扱う変数や定数の型の一つで、真(true)と偽(false)の2種類の値だけを扱う最も単純な構造の型。
結果が真か偽で表される式を「AND」や「OR」などの演算子(論理演算子)で組み合わせて、複雑な式が真になるか偽になるか判断することをブーリアン演算(論理演算)と呼ぶ。コンピュータの扱う処理や計算の多くは、最終的に論理演算に変換されて実行される。
プロシージャ 【procedure】
読み方 : プロシージャ
プログラム内で繰り返し出現する処理を行なうために、一連の命令を一つの手順としてまとめたもの。「手続き」とも呼ばれ、プログラム内部での処理単位の一つとして扱われる。プロシージャを実行することを「プロシージャを呼び出す」と言う。プログラムの中で何度も同じような処理を行なう場合、それをプロシージャとしてまとめておけば何度も同じ処理を記述する必要がなくなるので、手間が軽減され、後の修正も容易になる。
プロパティ 【property】
読み方 : プロパティ
オブジェクト指向プログラミングで使用されるオブジェクトが保持している、そのオブジェクトの性質を表すデータ。例えば、画像データのオブジェクトならば、高さや幅などのデータをプロパティとして持っている。
具体的にどういったプロパティを持っているかはオブジェクトによって異なり、オブジェクトの開発者がオブジェクトの性質に応じて設定する。プロパティの値には変更できないものと変更できるものがあり、変更可能なプロパティは同じオブジェクトに含まれるメソッドを使用して変更できる。
マシン語 【machine language】
読み方 : マシンご 別名 : 機械語
マイクロプロセッサが直接解釈・実行できる言語。数字の列で表現され、人間が簡単に理解できるような形式にはなっていない。
マシン語を直接入力してプログラミングを行なうこともできるが、通常、マシン語のプログラムを作成する場合はマシン語の命令と一対一に対応したアセンブリ言語(ニーモニック)を使う。ニーモニックは、例えば、値のコピーに「mov」という単語を用いるなど、意味を類推しやすいアルファベットの並びになっている。
プログラミング言語は、より機械が解釈しやすい言語を低水準(低レベル)、人間が解釈しやすい言語を高水準(高レベル)というが、マシン語はもっとも低水準の言語である。
マシン語は直接プロセッサが実行するコードであるため、コンピュータのあらゆる機能を利用することができ、また、実行速度を向上させやすい。このため、ハードウェアを制御するデバイスドライバや、OSの基盤となる部分などではアセンブリ言語による開発が行なわれることが多い。
その反面、マシン語は複雑な、あるいは大規模なプログラムの開発には向かないため、アプリケーションソフトの多くは高水準言語によって開発され、コンパイラやインタプリタなどを使ってコンピュータが自動的にマシン語に変換して実行するようになっている。
予約語 【reserved words】
読み方 : よやくご
プログラミング言語の仕様で定められた、変数名や関数名として定義できない単語のこと。
言語の一部として定義されている命令語などは、同名のユーザ定義変数が存在するとソースコードを正しく解釈できなくなるため、あらかじめ「予約」されていてプログラマが自由に使えないようになっている。
どの単語が予約語になるかは言語ごとに違うが、最近はC言語風の表記をするプログラミング言語が多いため、「if」「for」「while」「return」「true」などは多くの言語で予約語となっている
メソッド 【method】
読み方 : メソッド
オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作。オブジェクトは「データ」と「手続き」から成っているが、その「手続き」の部分に当たる。プログラミング言語によっては「メンバ関数」と呼ばれることもある。
オブジェクト指向では、オブジェクトの持つデータを操作する方法はオブジェクト自身がメソッドとして内蔵しており、これを外部から呼び出すことによって操作を行なう。こうすることにより、操作の詳細をオブジェクト内部に隠蔽することができ、プログラムの再利用性や生産性を高めやすくなると言われている。
例えば、「テレビ」をオブジェクトとすれば、「画面を映す」「チャンネルを変える」といった操作がメソッドとなる。テレビのユーザはその内部の挙動の詳細を知らなくても、リモコンからメッセージを送って希望するメソッドを呼び出すだけで、テレビを操作することができる。
戻り値 【return value】
読み方 : もどりち
別名 : リターン値
プログラム中の関数やサブルーチンが処理を終了し、呼び出し元に処理の結果として返す値。戻り値には単なる計算結果の他、処理が正しく終了したかどうかを示す場合もある。言語や処理系によっては、戻り値を返さない関数を作成することもできる。
ActionScript 【アクションスクリプト】
読み方 : アクションスクリプト
Macromedia社のWeb向けアニメーションツール「Macromedia
Flash」に内蔵されている、コンテンツの再生制御などを行なうためのスクリプト言語。JavaScriptの標準規格であるECMAScriptをベースに独自の拡張を施した仕様になっている。
Flashでは、音声やベクターグラフィックスのアニメーションを組み合わせてコンテンツを作成するが、各々のオブジェクトをいつどのように再生するかを細かく制御することができる。また、ユーザのマウス操作などの入力を受けてそれに応じた動きをするなど、コンテンツに双方向性を持たせることができる。こうした仕掛けを記述するのに使われるのがActionScriptである。
ActionScriptは2000年8月に登場した「Flash
5」に初めて組み込まれ、後継の「Flash MX 2004」ではAction Script 2.0にバージョンアップしている。
ECMAScript
読み方 : エクマスクリプト
JavaScriptの標準規格。Netscape Communications社とMicrosoft社でJavaScriptの仕様が微妙に異なっていたため、両社が参加の上、ECMAが標準化したものがECMAScriptである。