用語集


19. CUDA

(Compute Unified Device Architecture:クーダ)の略。CUDAとは、NVIDIAが提供するGPU向けのソフトウエアプラットフォームで、グラフィックエンジンを汎用的な処理に活用することを目的としている。近年のGPUはマルチ(複数)コア、 あるいはメニー(多)コア化等、進化が著しく、その圧倒的なパフォーマンスを画像処理だけでなく、汎用的な処理に活用しようとする考え方が急速に普及してる。CUDAはその最先端と言えるものであり、ATIはOpenCLでそれに対抗している。

18. Ruby on Rails

オブジェクト指向スクリプト言語Ruby用のWebアプリケーションフレームワーク。 Javaより手軽で、PHPより保守性が高いといわれる、Rubyの特徴を生かし、 DRY(Don't Repeat Yourself:繰り返し禁止)と、CoC(Conventions over Configuration:設定より規約) という思想のもとに、David Heinemeier Hansson(DHH)氏によって作成された。 最小限の設定ファイルと、コード自動生成機能が特徴で、特にscaffoldというCRUD処理を一括生成する機能は 後続のWebアプリケーションフレームワークに多大な影響を与えた。

17. AOP

(Aspect Oriented Programming :アスペクト指向プログラム)の略。アスペクトは、横断的関心事 (crosscutting concern)とも言われ、オブジェクト指向プログラムでクラス間をまたがる共通した処理のことを指す。 具体的には、値チェック、ログ、トランザクション、暗号化などがある。 このような処理は、ソースコード上に散在して、ソースがみづらくなるばかりか、最悪の場合はバグの原因になることが多かった。 AOPではこのアスペクトを独立したコンポーネントとして外出しして、DI(Dependency Injection)コンテナから定義ファイルに従って呼び出したり、コンパイラによって合成(Weave:編みこみ)することで実現する。

16. DI

(Dependency Injection:依存性の注入)は、以前はIoC(Inversion of Control:制御の反転)と呼ばれていたもので、依存性をクラスそのものではなく、コンテナなど、外部から制御することでクラスの依存性を無くす(疎結合)方法であり、 これによって、クラスの構造がシンプル(POJO:Plane Old Java Object)になり、コンポーネント(部品)化が促進される。このような機能を備えたコンテナは、DIコンテナと呼ばれ、現在、Spring、Seasar等がある。

15. REST

(REpresentational State Transfer)の略で、Webサイトへのアクセスは、HTTPのPUT(Create)、GET(Read)、POST(Update)、DELETE(Delete)で行い、それぞれ処理内容に合わせた結果が返されなければならない。 というWeb本来の仕様に、SOAPが厳密には従っていないことと、それを使ったWebサービスの作成が煩雑になることへの反省から、SOAPに代わる新しいWebサービスのプロトコールとして普及し始めている。

14. Ajax

Asynchronous JavaScript + XMLの略で、JavaScriptの組み込みクラスであるXMLHttpRequestの非同期通信を利用した動的なユーザインターフェース実現のための技術をこのように呼ぶ。プラグインを用いること無しに、Webアプリケーションの弱点であったユーザーインターフェースを改善できる技術として期待されているが、今のところ、互換性や、開発し易さの点で課題が残る。

13. SOA

Service Oriented Archtecture(サービス指向アーキテクチャ)の略で、大規模システムをサービスの集まりとして構築する設計手法。サービスとは、外部から標準化された手順によって呼び出すことができる一まとまりのソフトウェアの集合であり、人間にとって意味のある単位の機能を持つものを指す。現在、SOAを実現する具体的な技術基盤の標準が、Webサービスである。

12. Webサービス

XMLデータを用いたWebアプリケーションシステムで、SOAP(通信プロトコル), UDDI(データ形式), WSDL(インターフェース形式)の3つの国際標準が定められている。プラットフォーム独立で、Internet上に分散したサーバ間の連携が容易になること (サービス指向)により、応用範囲が広がるため、Internet上のビジネス形態を一変させるとも言われている。現在、最も有名な開発ツールはMicrosoft社の.Net Frameworkである。

11. P2P

Peer 2(to) Peerの略で、個人対個人によるネットワークを表す。現在最も有名なソフトはNapsterだが、著作権侵害の面がクローズアップされたためP2P=悪というイメージが定着してしまった。しかし機能の面に注目すると、サーバが不要、機能がシンプル、負荷分散が容易など、Webの欠点を補うメリットを持ち、インターネットの仕組みを大きく変える次世代技術として注目されている。現在、GnutellaというMP3以外のファイルを交換できるソフトが現れ、Napsterを引き継ぐと言われている。

10. EJB

Enterprise JavaBeansはJ2EE(Java2 Platform Enterprise Edition)の中核となる技術で、オブジェクト指向分散アプリケーションを開発、配置(Deploy)、実行を可能とする仕様。これにより、開発者はトランザクションやDBアクセス等の煩雑なシステムレベルの処理を記述することから開放されビジネスロジックに集中して開発を行うことができる。

9. XML

eXtensible Markup Languageの略で、従来のHTMLの弱点(拡張性がない、データの内容を表現できない、表示スタイルに依存してしまう、タグの表記方法があいまい)をおぎなうため、SGMLをスリム化して、Webに必要な機能を追加したもの。扱いやすく、応用範囲の広い次世代の標準データ形式として急速に普及しつつある。

8. CORBA

Common Object Request Broker Architectureの略で、異機種分散アプリケーションを作り出すための標準仕様。異なるプラットフォーム上の異なる言語のソフトウェアどうしをIDL(Inerface Definition Language)を用いてインターフェースを定義することによって相互に呼出、通信が可能になる。応用例として、マルチスレッド対応のWebアプリケーション等がある。

7. Inferno

1997年にBell研究所でDennis Ritchie, Ken ThompsonというかつてのUNIXの製作者によって作られたネットワークOS。InfernoはDisという仮想マシンとLimboというJavaに似た言語を持ち、応用分野もJavaと一致している。

6. ML

Meta Languageの略で、関数型プログラム言語。1974年、エディンバラ大学で定理証明系のアプリケーション用に開発された。多相型と型推論、高度にパラメータ化されたモジュール機構と精密な例外処理を特徴とし、大規模で堅牢なプログラム開発に適している。

5. BeOS

元Appleの副社長ジャン・ルイ・ガセーが創設したBe Inc,.が開発した新しいOS。かつてBeBoxというPowerPCを2個装備した画期的なマルチプロセッサのパソコンを世に出したが、業績は振るわなかった。そこでハードウェアの販売を打ちきり、ソフトウェアのOSのみを提供するという方針転換をした。その後、PowerMac とその互換機に対応したBeOSを発売し、今年3月、Intel版を発表した。マルチプロセッサ、マイクロカーネル、OpenGLなどの最新技術を採り入れている。

4. RAID

Redundant Array of Independent Disksの略で、Diskの多重化技術の一つ。多重化の形態(ストライピング、ミラーリング等)により0~5のレベルがあり、比較的性能の低いシステムでも大容量のディスクに高速なアクセスができるため、データベース、DTVの分野で注目されている。

3. SMP

Symmetric Multi-Processor(対称型マルチプロセッサ)。マルチプロセッサシステム(並列コンピュータ)を実現する方式のひとつ。1つの共有メモリと複数のCPU から構成され、すべてのCPUが対等の立場で処理を行うことからこう呼ばれる。 CGやネットワークサーバーへの応用が期待されている。

2. ADSL

Asymmetric Digital Subscriber Line (非対称デジタル加入線)1本のツイストペア線(通常の電話回線と同等)で、8.192Mbpsのdownstreamデータ速度と640 Kbpsのduplexデータ速度を実現する。NTTは将来目指している10Mbpsの光ファイバー回線への移行段階の場繋ぎとしての利用を検討中。(個人的にはADSLで十分だが、、、。)

1. Mach(マーク)

1988年に、カーネギー・メロン大学で開発された新しいOS。肥大化し過ぎたUNIX (これももともとMULTICSをスリム化したものだった。)の反省からスリムなカーネルを持ち、マルチ・スレッド(並列処理)が可能なOSを目指して作られた。Micr osoft社は、Windows-NTを作る際、これを研究し尽くしたという(ライセンス料も払っている)。

Copyleft 2012 S.Umeda