【 0-9 】
100% Pure Java
Sun Microsystems社がJava言語で開発されたアプリケーションに対して行なっている認定プログラムで、特定のOSの機能などを使用せず、どのような環境でも動作することを保証したもの。
Javaには各OSの独自機能を呼び出す仕組みなどが用意されているが、100% Pure Javaでは、このようなOS依存の機能を一切使用せず、あらゆるプラットフォームで使用できる純粋なJava APIのみを使用することが要求される。
また、OSによって異なる定数をベースにした実装なども禁止されている。
100% Pure Javaに認定されたソフトは、Javaの実行環境が用意されたどのようなOSやハードでも同様に動作するとされる。
ただし実際には、Javaの実行環境自体が、OSや開発元によって微妙に振る舞いが異なったりするため、寸分たがわずまったく同じ挙動を示すことを期待できるわけではない。
【 A 】
AFC (Application Foundation Classes)
米Microsoftが開発中のクラス・ライブラリ。
GUI(グラフィカル・ユーザー・インタフェース)機能を提供する。
Microsoft Windowsの流儀に沿ったGUI部品群をすべてJavaで記述してあり、完成すれば複数のプラットフォームの上で、Microsoft流ユーザー・インタフェースを備えたJavaプログラムが動作することになる。
Aglets Workbench
移動エージェントを使った分散システムをJavaで開発/実行するためのフレームワーク。
日本アイ・ビー・エムの東京基礎研究所が開発した。移動エージェントとは、プログラム自身がネットワーク上を移動することによって業務の動的な側面をソフトで表現しやすくする技術。
ネットワーク上を移動しない静的なエージェント技術が本来提供するソフトの自律性/柔軟性などに、負荷分散能力や並列処理が可能などの特徴が加わる。
AWT (Abstract Window Toolkit)
JavaのGUI(グラフィカル・ユーザー・インタフェース)機能を提供するAPI(Application Programming Interface)。
Java実行環境の最も重要な構成要素のひとつ。
近い将来のJavaのGUI機能は、現行のJDK1.1に含まれるAWTとは大きく異なったもとなる。
97年夏に登場するJDK1.2では、次世代AWTとなる「JFC(Java Foundation Classes)」を搭載する予定。
Netscape IFCとの統合や、新GUI部品群の「Swing(コード名)」、ユーザー・インタフェースの外見を実行時に動的に変更するPluggable Look-and-Feel、プラットフォーム独立な2次元グラフィックス機能を提供するJava 2D APIを組み合わせる計画である。
【 B 】
Bean
Java Beansの仕様に基づく、Javaによるソフトウエア・コンポーネントを指す。
Bytecode
Javaプログラムの実行形式。
特定のコンピュータに縛られない「仮想マシン」の命令セットを利用する。
命令がすべて1バイト長のため、バイトコードと呼ぶ。
Bytecode Compiler
Javaソース・コード(例えば、HelloWorld.java)を、Javaバイトコード形式(例えば、HelloWprld.class)に変換し、Java仮想マシン(JavaVM)が実行できるようにする。
例として、JDK付属のjavacがある。
【 C 】
CaffeineMark
米Pendragon Software社が開発、リリースしているJavaベンチマーク。
Javaアプレットとして実装してあり、WWWブラウザに読み込んで手軽にJava実行速度のベンチマークをすることができる。
最新版はCaffeineMark3.0。
Castanet
米Marimba社が開発・提供中のプログラム/コンテンツ配信システム。
Javaで記述されている。
Javaプログラムなどを多数のクライアントのローカル・ディスクに配信・蓄積・自動更新することができ、更新時には差分情報だけを転送する仕組みを備える。
CORBA (Common Object Request Broker Architecture)
分散オブジェクト間通信に必要なORB(Object Request Broker)やIDL(Interface Definition Language、インタフェース定義言語)の標準的な仕様を定める。
CORBA準拠の分散オブジェクト間を結ぶ標準的なプロトコルとして、IIOPが使われ始めている。
Javaを使ってCORBA準拠の分散オブジェクトを開発するためのJava IDLは、JavaSoftが定義する「コアAPI」に含まれている。
また、Netscape Communications社の開発環境Netscape ONEや、Oracle社の3層アーキテクチャNCAの中でも、CORBAとIIOPを重視する。
Corel Office for Java
カナダCorelが開発していたJava版オフィスの製品名。
すべてJavaにより開発したオフィス・スイートであり、表計算、ワープロ、プレゼンテーション、個人情報管理(スケジュールなど)、デスクトップ環境を含む。
96年10月に最初のプレベータ版を公開し、97年4月にはベータ版を公開した。
1997年8月に製品構成の変更を発表。
Windows NT上のサーバー・ソフトとJavaによるクライアント・ソフトを「Remagen(レマーゲン)」と呼ぶ連携技術で組み合わせた「Corel WordPerfect Office Enterprise Suite」、およびCorel Office for Javaの技術を引き継ぐグループウエア製品「Alto(開発コード名)」を開発すると発表した。
Corel社は、オフィス・スイート製品WordPerfect8をJavaアプレットから操作できるようにするオプション「jBridge」を、1998年夏ごろに北米で提供開始予定である。
これが「Remagen(レマーゲン)」と呼んでいた技術に相当する。
また1998年3月のJavaOne'98会期中、XMLベースのJava開発環境製品「Open・J」を発表した。
これは「Alto」と読んでいたものに相当する。
Crossware
米Netscape Communications社が提唱しているプラットフォーム非依存のアプリケーションの総称。
同社が提唱する業務システム構築の枠組み「Netscape ONE」を構成するアプリケーション・ソフトウエアを指す。
開発言語にJava、HTML、JavaScriptを使うことによって、いったん開発したソフトをさまざまなプラットフォーム上で利用できるようにする。
CSL (Community Source License)
Sun Microsystems社が同社のプログラミング言語(およびその開発・実行環境)「Java 2」に適用したライセンス体系。
従来は高額な初期費用を払わなければソースコードを手に入れることはできなかったが、コードの使用と修正は基本的に無償で行えるようになった。
そのコードをベースにして開発した成果物や革新的な技術をSunに返す必要もなく、変更を他社と共有してもSunがそれに対して使用料を請求することはない。
ソースコードが無償で配布され、誰でも自由に改変・再配布できるLinuxなどのオープンソースソフトウェアの考え方を取り入れたライセンス体系である。
ただし、自社製品にJava 2(またはその派生物)を組み込んで販売し、利益をあげるような場合には、利益に応じたライセンス料を支払う必要があるため、完全なオープンソースとは言えない。
【 D 】
Design Pattern
オブジェクト指向開発の経験者がもつ問題解決のパターンに名前を付け、整理したもの。
ねらいは、再利用可能な設計手法を知識として共有すること。
特定分野で再利用可能なクラスを作る「フレームワーク」に比べより抽象度が高い概念である。
参考文献として、Erich Gamma、 Richard Helm、 Ralph Johnson、 John Vlissides共著、本位田真一、吉田和樹・監訳、『デザイン・パターン』(ソフトバンク、1995年)がある。
Javaによるソフトウエア・コンポーネント技術Java Beansでは、コンポーネント(
Bean)の間を、人間がコーディングすることなしに結び付けるための、メソッド名/インタフェース名の命名規則をデザイン・パターンと呼ぶ。
【 E 】
EJB (Enterprise JavaBeans)
Java言語でプログラム部品を作成し、それらをつなぎ合わせてアプリケーションソフトを構築するためのJavaBeans仕様に、ネットワーク分散型ビジネスアプリケーションのサーバ側の処理に必要な機能を追加したもの。
Javaをビジネスアプリケーションで活用する際にサーバ側に必要な機能をまとめたEnterprise Java仕様の一部で、Webサーバなどに実装されている。
EJBコンポーネント (EJB component)
Java言語で作成されたプログラム部品の一種で、Webサーバなど企業が保有するサーバで動作するもの。
Sun Microsystems社は、「Java 2」仕様のセットの一つとして、企業の業務システムや電子商取引などで使われるサーバに必要な機能をまとめた「J2EE」(Java 2 Enterprise Edition)をまとめており、この中に、サーバ上で動作するJavaアプリケーションを部品化するための規約「EJB」(Enterprise JavaBeans)が含まれる。
EJBはJavaプログラムをアプリケーションの部品(コンポーネント)として扱うための規約で、トランザクション処理やセッション管理、セキュリティなどをアプリケーションサーバなどのEJB実行環境があらかじめ用意することで、コンポーネントの開発を容易にしている。
JavaBeansのサーバ版、と説明されることもあるが、EJBは前述のような機能をサーバが提供してくれるほかに、CORBAやJava RMIによる分散処理が可能となっており、コンポーネント指向がより徹底されている。
EmbeddedJava
グラフィカル・ユーザー・インタフェースがない環境(通常の携帯電話、ポケベル、FAXなど)を対象とするサブセット版Java実行環境。
500Kバイト程度と小容量のメモリーで動作する。
1997年4月開催のJavaOne'97で構想を発表。1年後のJavaOne'98では仕様書を公開した。
Entity Bean
Enterprise JavaBeans(EJB)で規定されているBeanのひとつ。
データベースのレコードなど、特定のデータに対する参照を提供する機能を持つ。
Entity Beanは自身でデータを保持するのではなく、バックにあるデータベースなど、別の記録システムに対するインターフェースを提供する形で動作する。
従って、Entity Beanに対して記録を行ったデータはデータベースのレコードとして記録され、
Beanが破棄されてもデータの内容は保存される。
これに対し、セッション単位での処理を行うBeanはSession Beanと呼ばれ、こちらはセッションが終了してBeanが破棄されると記録した内容も失われる。
【 G 】
GC (garbage collection)
OSのメモリ管理機能の一つ。
プログラムが使用しなくなったメモリ領域や、プログラム間の隙間のメモリ領域を集めて、連続した利用可能なメモリ領域を増やす技術。
これが不完全なOSは次第に利用可能なメモリが減ってゆくため、一定期間ごとに再起動を強いられることになる。
Java言語の実行環境(JVM)は自身がガーベジコレクション機能を持っており、Javaプログラマがメモリ管理に気を使わなくてもいいようにしている。
【 H 】
HORB
Java言語を拡張した分散プログラミング言語。
通産省電子技術総合研究所(電総研)の平野聡氏が開発した。
Java実行環境さえあれば動作し、短い記述でJavaプログラム間の分散処理を記述できる。
CORBAとの互換性はないが、CORBAのようなIDL(インタフェース定義言語)を書く必要がないためにプログラムはより単純になる。
RMIやDCOMなど他の分散オブジェクト間通信に比べても記述が単純になる。
非商用用途にはフリーで提供中であり、商用ライセンスも用意されている。
HotJava
米Sun Microsystems社が開発した、Javaによるアプリケーション開発の枠組み。
「HotJava Browser」は、Javaで開発したWWWブラウザであり、Javaアプレットを実行する機能を備える。
「HotJava View」は、WWWブラウザを中心に、電子メールやスケジュール管理機能などを統合したソフト。
HotJavaとは、元々はすべてJavaで開発したWWWブラウザの名称で、Javaの最も初期のアプリケーション例だったが、1996年4月開催のJavaOneにおいて「アプリケーション開発の枠組み」へ位置づけを修正し、ブラウザの名称は「HotJava Browser」と改めた。
【 I 】
IIIMP (Internet Intranet Input Method Protocol)
英語以外の言語入力を必要とするJavaのアプリケーションがネットワーク上にある入力/変換エンジン「Input Method Engine」(IME)のサービスを利用するための共通プロトコル。
JDK 1.2で追加する主な新機能のうちの1つ「Input Method Framework」(IMF)が規定するネットワーク・プロトコルで、クライアントとなるアプリケーションがユーザーのニーズに応じて利用するIMEを動的に変更できることなどがこの共通プロトコルを使うことのメリットになる。
ユーザー名を指定してユーザー自身の辞書を作成/管理する機能、Javaで開発したフロントエンドを実行時にダウンロードして利用する機能、IMEへ接続しているセッションやユーザーの数を管理する機能なども備えているため、こうした機能を使うことによってIMEの開発元がほかのIMEの提供元との違いをエンドユーザーへアピールすることや、IMEサーバーを接続数によって課金するライセンス管理、などが可能になる特徴もある。
米Sun Microsystems社とジャストシステムがIMFの一部として共同開発し、米IETFへ標準として共同提案している。
Input Method API
Javaプログラムと、入力支援プログラム(Input Method、特に日本語入力などで必要なかな漢字変換機能)とのインタフェースを提供するAPI。JDK1.2には、IMF(Input Method Framework)としてこの機能が含まれる。
Input Method(IM)は、Microsoft Windowsの「IME」、DOSの「FEP」に相当する言葉である。米Sun Microsystems社が開発中であり、開発作業にはジャストシステム、アップルジャパン、オムロンが協力している。
【 J 】
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サーバと組み合わせて使う。
J2ME (Java 2 Micro Edition)
Sun Microsystems社のプログラミング言語「Java 2」の機能セットの一つで、家電製品や携帯情報端末、携帯電話などの組み込み機器向けの機能をまとめたもの。
「CDC」(Connected Device Configuration)と「CLDC」(Connected Limited Device Configuration)という2つの想定環境(コンフィギュレーション)に分かれており、前者はカーナビや高性能PDAといった32ビットCPUと十分なメモリを持った環境を、後者は携帯電話やネットワーク家電、通常のPDAなどの、低速なCPUと少ないメモリからなる環境を対象としている。
現在のところ、一般にJ2MEとして知られているのはCLDCであり、KVMが仮想マシンとして採用されているのもこちらになる。
サーバ向けのJ2EE、パソコン向けのJ2SEとの大きな違いとして、基本部分には仮想マシン(実行環境)と最小限のコアAPI(中核機能)だけを持ち、デバイス(機器)の種類ごとに定義された「プロファイル」と呼ばれるAPIやクラスライブラリをそれに付加していくことで機能を補うという方式を採用している。
プロファイルの例としては、携帯電話や通信機能を持った携帯情報端末向けに定められたCLDC用のMIDPなどがあり、これらはSun Community Processを通して業界ごとに定義されている。
J2SE (Java 2 Standard Edition)
Sun Microsystems社のプログラミング言語「Java 2」の機能セットの一つで、基礎となる標準的な機能をまとめたもの。
1999年に発表されたJava 2プラットフォームには、標準環境のJ2SEを中核として、企業サーバ向けの「J2EE」(Java 2 Enterprise Edition)、組み込み機器向けの「J2ME」(Java 2 Micro Edition)の3つの機能セットがある。
J2SEはパソコンなどのネットワーククライアント環境、あるいはスタンドアローン用途向けと言うことができる。
当初発表されたJava 2から若干の拡張が行なわれ、LDAPディレクトリにアクセス可能になる「JNDI」(Java Naming and Directory Interface)の搭載、セキュリティ機能の強化された。
また、仮想マシンとしてHotSpotが採用されている。当初はWindows版のみが発表されたが、2000年にはLinux版とSolaris版も公開されている。バイナリ版は無償公開されているが、Sun独自のライセンス方式「CSL」(Community Source License)に従えば、ソースコードを手に入れることもできる。
JAR (Java Archiver)
Javaプログラムの実行に必要なクラスファイルやデータファイルを一つにまとめるためのフォーマット。
Javaで作成したソフトウェアを配布する際に関連するファイルを1つにパッケージングするのに使われる。
Java
Sun Microsystems社の開発したプログラミング言語。C言語に似た表記法を採用しているが、新たに設計し直された言語であり、今までの言語にない完全なオブジェクト指向性を備えている。
また、強力なセキュリティ機構や豊富なネットワーク関連の機能が標準で搭載されており、ネットワーク環境で利用されることを強く意識した仕様になっている。
Javaで開発されたソフトウェアは特定のOSやマイクロプロセッサに依存することなく、基本的にはどのようなプラットフォームでも動作する。
Javaで記述されたソースコードはJavaバイトコードと呼ばれる中間形式にいったん変換され、この状態で配布される。
実行時にはJava仮想マシンと呼ばれるソフトウェアによって、そのプラットフォームで実行可能な形式(ネイティブコード)に変換され、実行される。
変換にかかるオーバーヘッドのため、通常のプログラミング言語で開発されたソフトウェアよりも動作が遅くなるのが難点。
また、どのプラットフォームでも動作させるために最大公約数的な機能しか使用できないため、プラットフォーム固有の強力な機能を利用することはできない。
このような欠点を補うため、Microsoft社のように、特定のプラットフォーム(例えばWindows)でしか動作しないがその分高速で、プラットフォーム固有の強力な機能を利用できるJava開発環境を提供しているメーカーもある。
1999年には全面的に新しくなったJava 2が発表され、多くの新たな機能が追加された。
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 2D
静止画像、文字、2次元グラフィックス描画機能を統合的に扱うクラス・ライブラリ。
JavaのコアAPIと位置づけ、次期
AWTクラス・ライブラリには標準で含む予定。
米Sun Microsystemsと米Adobe Systemsが中心となり開発中である。
Java Card API
スマート・カード(ICカード)に搭載するJava実行環境を構成するAPI。
Java OS
Java実行専用の軽量OS。
JavaSoft社(米Sun Microsystems社のJava事業部門)が開発し、他のベンダーにライセンス提供する。
Java実行に必要な機能しか備えないため、必要なCPU能力やメモリー容量が少ない点が特徴。
Java Ring
Java Card 2.0の仕様に沿ったCPUチップ搭載の指輪。
ICカード(スマート・カード)の「指輪版」である。
Java開発者会議のJavaOne'98では1万4000人の参加者全員にJavaRingを配り、次のデモンストレーションを展開した。
(1)参加者の個人情報(名刺情報)と「コーヒーの好み(選択式)」をJava Ringに記憶させる。
UNIXマシンや、セットトップ・ボックスで書き込み/読み出しが可能。
(2)参加者全員のJava Ringを用いて、1枚のフラクタル画像を計算する(分散処理技術JavaSpcesを利用)。
(3)喫茶コーナー「CyberCafe」で、Java Ringで自分の好みのコーヒーを注文できる。
Java Ringのハードウエアは、米ベンチャーのDallas Semiconductor社が開発した「iButton」と呼ぶボタン電池大のチップ内蔵金属ケースを、指輪の上部に張り付けたもの。
iButtonをJava Card仕様にし、さらに指輪にマウントしたものがJava Ringである。
iButtonは、指輪以外に時計、サイフ、キーホルダーなどにマウントすることができ、トルコで公共交通機関のトークンとして利用されたなどの実績がある。
Java RMI (Java Remote Method Invocation)
Javaで分散オブジェクト環境(異なるマシン間でオブジェクト同士がメッセージをやりとりできる環境)を実現するための手法。
JDK1.1以降に標準で付属する。
ネットワークを通じてプログラム同士が通信を行うことができるようになる。
JavaBeans
Java言語を用いて開発され、部品化されたプログラム(
Beanと呼ばれる)を組みあわせてアプリケーションソフトを構築する手法。
また、Java言語でBeanを作成するための技術仕様。
プログラムを部品化することにより、複数の開発者間での共有やコードの再利用が容易になり、また出来合いのBeanやサードパーティから提供されるBeanを組み合わせてアプリケーションソフトを開発することにより、開発効率が飛躍的に向上する。
JavaChip
Javaバイトコード実行専用のマイクロプロセッサ。
Sun Microelectronics(Sun Microsystems社のマイクプロセッサ部門)がアーキテクチャを定め、各社にライセンス提供をする。
Javaチップの特徴は、専用チップであるためJavaプログラムの処理性能が高い点と、Java実行以外の機能を切り捨てたためにチップ面積を小さくできる点である。
価格対性能費の向上や、付加価値機能の実装が可能になる。
Javaチップの仕様には、picoJava(CPUコア)、microJava(CPUコアおよびI/O機能などを集積)、UltraJava(3次元グラフィックス機能などを取り入れた高性能チップ)の3種がある。
96年10月11日付けのSunの発表によれば、Javaチップを製造する半導体メーカーは、韓国LG Semiconductor、 三菱電機、 NEC、 韓国Samsung、それにSunの5社である。
97年4月2日には、東芝と低消費電力Javaチップの技術で提携するなどの発表をしている。
JavaOne
Java開発者を主な対象とする会議および展示会。
年1回開催。
第1回は1996年5月に米サンフランシスコ市で開催、約5000人を集めた。
第2回は1997年4月に開催、約1万2000人を集めた。
第3回は、1998年3月開催。
JavaOneは米Sun Microsystems社や協力ベンダーがJava技術動向のロードマップを提示する場であり、またJava関連では最大の「お祭り」でもある。
JavaPOS
流通業が使うPOS端末用のソフトをJavaで開発するための特定業種向けAPI。
バーコード・リーダーやレシート用プリンタといった流通業に特有なハードウエアをJavaのソフトから制御するためのインタフェースを定義する。
JavaPOSのAPIを利用することで、ハードウエアが変わるたびに新規開発が必要だったPOS端末のソフトが再利用可能となり、ソフト開発にかかるコストを削減できることが、ユーザーにとってのメリットになる。
英Datafit社、米IBM社、米NCR社、米Sun Microsystems社などが共同で仕様を定めた。J
avaPOSは、具体的には米Microsoft社が定めたPOS端末用ソフトのWindows API「OPOS」のサービスをJavaへマッピングして定めた。
JavaとOPOSのゲートウエイとなるソフトさえ開発すれば既存のOPOSドライバをJavaからアクセスする形で既存のハードウエアを利用できるようになる。
またJavaPOSのサービスのすべてをJava VM上に実装すれば、OPOSのドライバなしでもJavaからPOS端末のハードウエアへアクセスできるようにもなる。
JavaScript
Java言語をベースにSun Microsystems社とNetscape Communications社(現AOL Time Warner社)が開発したスクリプト言語(簡易プログラミング言語)。
従来は印刷物のような静的な表現しかできなかったWebページに、動きや対話性を付加することを目的に開発された。
Netscape社やMicrosoft社のWebブラウザに搭載されている。
Microsoft社のWebサーバ IIS上で動作させることもでき、サーバ上でスクリプトを実行して動的にHTML文書を生成することができる。
また、WSHを利用してWindows 95/98やWindows NT上で従来より強力なバッチ処理を行うこともできる。
Netscape社による実装とMicrosoft社による実装には微妙な違いがあったため、両社が参加してECMAによってECMAScriptとして標準化された。
JavaSpaces
米JavaSoftが開発中の、分散環境の中で永続的なオブジェクトを開発および利用するためのクラス・ライブラリ。
ネットワークで結んだ複数のマシンにまたがる分散トランザクション処理や、並列処理による数値演算など、分散アプリケーションを効率的に開発するツールの研究開発から出てきた技術である。
ネットワーク上に分散するデータを永続的なオブジェクトとして表現し、その組み合わせで処理すべきフローを定義/実行する環境を提供する。
分散環境で並列処理を実行するためのクラス・ライブラリ「Linda」と似たプログラミング環境を提供する。
米Sunが提供予定の分散環境「Jini」の一部と位置づける。
JavaVM (Java Virtual Machine)
Javaバイトコードをそのプラットフォームのネイティブコードに変換して実行するソフトウェア。
Java言語で開発されたソフトウェアは、配布時にはプラットフォームから独立した独自の形式(Javaバイトコード)になっており、そのままでは実行することができない。
このため、そのプラットフォーム固有の形式(ネイティブコード)に変換するソフトウェアを用意して、変換しながら実行する。
この変換と実行を行うのがJVMである。
実行前にまとめて変換することで実行時のオーバーヘッドをなくし、実行速度を向上させたものをJITコンパイラという。
Javaアプレット (Java applet)
ネットワークを通じてWebブラウザにダウンロードされ、ブラウザのウィンドウに埋め込まれて実行されるJavaプログラムのこと。
Javaアプレットを悪用してユーザのコンピュータに被害を与えることのないように、ユーザのハードディスクの内容を読み書きしたり、自分が呼び出されたWebサーバ以外のコンピュータに接続したり、他のアプリケーションソフトを起動したりすることはできないようになっている。
Javaアプレットを使うことにより、HTMLで記述された静的なWebページでは実現できない動的な表現が可能となる。
また、Webブラウザのみで利用することができるネットワークゲームやチャットを開発することもできる。
企業内のクライアントサーバ型のシステムでJavaアプレットを利用すれば、社員のコンピュータにはWebブラウザを入れるだけでシステムを利用できるようになり、アプリケーションソフトの配備や管理にかかるコストを節減することができる。
Javaサーブレット (Java servlet)
Webサーバ上で実行されるモジュール(部品)化されたJavaプログラム。
サーブレットを追加することにより、Webサーバの機能を拡張することができる。
サーブレットはJava言語で記述されているため、特定のOSやハードウェアに依存することがなく、サーブレットAPIを実装したあらゆるWebサーバで稼動させることができる。
CGIなどの他のサーバサイドプログラムと異なり、一度呼び出されるとそのままメモリに常駐するため、高速な処理が可能である。
また、データを永続的に扱うことができるため、複数のユーザ間で情報を共有することもできる。
当初はSun Microsystems社のJava Web Serverの機能の一つとして提供されていたが、仕様がJava Servlet APIとして独立し、現在では様々なWebサーバ向けにサーブレットの実行環境が用意されている。
Javaバイトコード (Java byte code)
Javaのコンパイラが生成する実行用コードのこと。
中間コードの一種で、特定の環境に依存しないという特徴を持つ。
JavaバイトコードはJava仮想マシン内のインタプリタによってネイティブコードに変換されてから実行される。
JAX (Java API for XML)
Sun Microsystems社がJavaの拡張機能として提供している、XMLデータ処理用のAPI群。
XMLパーサ機能を持つJAXP(Java API for XML Processing)、SOAPデータの送受信を行うJAXM(Java API for XML Messaging)の2種類がリリースされている。
この他に、WSDLに対応したRPC機能を提供するJAX-RPC、UDDIなどのXMLレジストリにアクセスする機能を提供するJAXR、XML SchemaをJavaクラスに変換するJAXBが今後提供される予定(現在はそれぞれベータ版などが提供されている)。
JAX/RPC (Java API for XML / Remote Procedure Call)
JavaプログラムでRPCによる遠隔プログラム呼び出しを行うためのAPI仕様。
JavaからRPCを行うにはJava RMIなどの手段が既に存在するが、JAX/RPCはXMLをベースにしている点とWebサービスでの利用を主目的にして開発された点が特徴。
SOAPなどXMLベースのプロトコルでメソッドを呼び出す際に利用されるAPIで、具体的なメッセージの作成はJAX/RPCによって自動的に行われる。
そのため、ユーザはプロトコルの詳細を気にすることなくSOAPなどのメッセージを利用することができ、Webサービス構築に要する時間を短縮できる。
JAXR (Java API for XML Registry)
XMLレジストリにアクセスするためのJava API仕様。
XMLレジストリに対する発行、検索、編集といった作業の実行用APIをJavaプログラムに提供する。
このAPI群を利用することで複数のレジストリに対する統一された操作方法が得られ、一つのJavaプログラムから異なった種類のXMLレジストリを利用することが容易になる。
なお、現在の仕様には、ebXMLとUDDI v2.0の両形式に対応したAPIが含まれている。
Jblend
アプリックスのリアルタイムOS向けJava仮想マシン。
主に組み込み機器上での利用を想定した製品である。
パソコン上で動作するJava仮想マシンと異なり、GUIなど、シェルに相当する部分などもJavaで操作することができる。
このため、Javaバイトコードで書かれたプログラムにもリアルタイム処理を任せる場合が発生するが、JBlendでは、Javaプログラムのリアルタイム性を保つために、JavaスレッドをOSのタスクと1対1対応で割り当てている。
これによって、JavaのスレッドもOSネイティブコードで書かれたプログラムとほぼ同等のレスポンスを確保することができる。
JBlendはJavaを組み込み機器自体のインターフェースなどに使用できるようにしているが、単なるJava仮想マシンとして使用することももちろん可能である。
この方面では、ezplusなど、携帯電話上のJavaアプリケーション動作環境としての利用がよく知られている。
ちなみに、JBlendは元々ITRONとJavaの連携を図ったJTRON仕様のOSとして登場したが、現在はITRON以外のOS上でも動作するソフトウェアとなっている。
JCP (Java Community Process)
Sun Microsystems社が主催する、Java技術に関する標準仕様を定める機関。
多くの企業や個人がJCPに参加しており、仕様変更のリクエストを自由に提出できるようになっている。
しかし、標準化プロセスが内部にも公開されていなかったり、大規模な機能変更には同社の同意が必須となっていることなどから、同社の影響力が強すぎる機関として批判が強い。
JDBC (Java DataBase Connectivity)
JavaプログラムからリレーショナルデータベースにアクセスするためのAPI。
SQL言語による命令を発行してデータベースの操作を行うことができる。
データベースの種類によらない汎用性の高いプログラムを開発することが可能だが、実際に稼動させるためには個々のデータベースに対応したドライバ(JDBCドライバ)を導入する必要がある。
JDK (Java Development Kit)
Java言語でプログラミングを行う際に必要な最低限のソフトウェアのセット。
Javaの開発元であるSun Microsystems社が開発、配布している。
コンパイラやデバッガ、クラスライブラリ、Javaプログラム実行環境(Java仮想マシン)などが含まれる。
JECF (Java Electronic Commerce Framework)
Java言語で電子商取引(エレクトロニック・コマース)アプリケーションを開発するための枠組み。
オンライン取引のためのユーザー・インタフェース「Java Wallet」と、オンライン取引のためのプロトコルを実装したソフト部品「Cassette」を利用してサービスを提供する。
JFC (Java Foundation Class)
Java言語を使って本格的な業務用ネットワークアプリケーションを開発する際に有用なクラスライブラリ(再利用可能なプログラム部品群)。Netscape Communications社の開発したIFCを基盤に、Sun Microsystems社によって開発された。1999年に発表されたJava 2で、正式にJavaの一部となった。
JGL (Java Generic Library)
米ObjectSpace社が開発し、フリー・ソフトウエアとして公開しているクラス・ライブラリ。
Jini
パソコンや周辺機器、AV機器、電話、家電製品など様々な機器をネットワークを通じて接続し、相互に機能を提供しあうための技術仕様。
Sun Microsystems社によって提唱され、IBM社、Cisco Systems社、Motorola社、キヤノン、シャープ、ソニーなど多くの大手企業が支持している。
SunのJava技術を基盤としているため、特定のOSやマイクロプロセッサなどに依存しない。
また、Jiniに対応した機器は、ネットワークにつなぐだけで複雑な操作や設定作業を伴うことなくすぐに機能する。
Jiniを利用するためにはJava実行環境であるJVMを搭載するか、ネットワーク上の他の機器が搭載しているJVMを利用できることが必要になる。
似たような構想としてMicrosoft社が推進するUPnPがある。
JITコンパイラ (Just-In-Time compiler)
Javaプログラムを実行する際に、プラットフォームから独立した形式のプログラム(Javaバイトコード)を、実行前にまとめて一気にそのプラットフォームで実行可能なプログラム(ネイティブコード)に変換し、実行する機構のこと。
少しずつ変換しながら実行する従来の方式より実行速度は速いが、変換に時間を要するので実行を始めるまでにかかる時間は従来より長くなる。
JMF (Java Media Framework)
動画像を含むマルチメディア再生機能、取り込み機能、電子会議システムをJavaプログラムから扱うための統合的な枠組み。
米Sun Microsystems、米Silicon Graphics、米Intelの3社が共同で開発中である。
JMS (Java Message Service)
Javaプログラムにネットワークを介してデータを送受信させるためのAPI。
J2EE 1.3プラットフォームに標準で含まれている。
データを1つずつバラバラに扱うのではなく、メッセージと呼ばれる塊にまとめて送信する、メッセージング機能が使えるようになる。
また、一対一の同期通信の他、複数の宛先に同じメッセージを送信したり、メッセージを非同期に通信したりすることもできる。
JNDI (Java Naming and Directory Interface)
Javaから、複数のディレクトリ・サービス/ネーミング・サービスにアクセスするためのAPI仕様。
インターネットで標準的に使われるDNS(Domain Name System)、Novell社が提供するNDS(Novell Directory Services)、SunのNIS(Network Information System)など、複数の環境をサポートする。
JNI (Java Native Interface)
Java言語で開発されたプログラムから、他の言語で開発されたネイティブコード(特定のプラットフォームでそのまま実行可能なプログラム)のプログラムを利用するためのAPI。
Javaプログラムからプラットフォーム固有の強力な機能を利用することを可能にするが、そのプラットフォームでしか動作しなくなる。
JRE (Java Runtime Environment)
Java言語で開発されたソフトウェアを実行するために必要なソフトウェアのセット。
Javaを用いて開発されたソフトウェアは、どんなプラットフォームからも独立した形式(Javaバイトコード)で配布されるが、これを実行するにはそのプラットフォームが解釈できる形式(ネイティブコード)に変換する必要がある。
JREは、この変換と実行を行うJava仮想マシンとその周辺のソフトウェアからなる。
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 (Java Server Pages)
Java言語を利用してWebサーバで動的にWebページを生成し、クライアントに送信する技術。
HTMLファイルの中にJavaプログラムを埋め込んでおき、クライアントの要求に応じてプログラムを実行、処理結果のみをクライアントに送信する。
結果は通常のHTML形式になるため、Webブラウザに特殊な機能を組みこむことなくWebアプリケーションを構築できる。
Microsoft社のIISの拡張機能ASPに似た技術だが、ASPが(ほぼ)IIS専用なのに対して、JSPは様々なWebサーバ用の実行環境が用意されており、また、特殊なスクリプト言語を覚えることなく、Java言語をそのまま使えるという利点がある。
JTRON (Java TRON)
組み込みシステム用リアルタイムOSとして実績を持つITRONにJavaの実行環境を融合したもの。
ITRONを組みこんだ機器に、移植性の高いJavaを使ってハードウェア制御やユーザインターフェースを実装することが出来る。
JTS (Java Transaction Services) API
OMGのCORBA OTS準拠の低レベルAPI。
Javaからトランザクション・サービスへのアクセス手法を提供する。
【 M 】
MAJC (Microprocessor Architecture for Java Computing)
Sun Microsystems社が開発した汎用マイクロプロセッサ(MPU)仕様の名称。
この仕様に基づいて設計されたプロセッサは、Java言語で開発されたソフトウェアを効率よく実行することができる。
C言語やC++言語でソフトウェアを開発することもできる。
最大で4つの命令を並列処理できるほか、Javaのマルチスレッド機能をサポートする。
非常に高速な入出力機構を備えており、毎秒数ギガビットのデータをリアルタイムに処理することができる。
複数のプロセッサをまとめて1つのチップに搭載することもでき、その場合でも個々のプロセッサは独自に機能する。
音声や動画などのマルチメディア処理が得意なため、ビデオサーバやゲーム機、セットトップボックスなどの用途を見込んでいる。
【 N 】
NCA (Network Computing Archtecture)
米Oracleが提唱する3階層のコンピューティング環境。
ネットワーク・コンピュータと、Oracleが提供するデータベース・サーバーを核とする分散環境を作る。
Netscape IFC (Netscape Internet Foundation Classes)
米Netscape Communications社が開発、無償で配布中のクラス・ライブラリ。
すべてJavaで記述してあるが、JDK1.0.2やJDK1.1添付の
AWTに比べ高機能なGUI(グラフィカル・ユーザー・インタフェース)開発機能を提供する。
97年4月、米Sun MicrosystemsとNetscape Communicationsは、JFC(Java Foundation Classes)を共同開発し、IFCのユーザー・インタフェース機能をJFCに統合する計画を公表した。
IFCのバージョン・アップはIFC1.1で打ち止めとなる予定である。
Netscape ONE (Netscape Open Network Environment)
Netscapeによる、企業システム構築のためのアーキテクチャ。
WWWブラウザを共通のクライアントとし、JavaやJavaScriptを開発言語に用いる。
CORBAとIIOPベースの分散オブジェクトも重視する。
クラス・ライブラリNetscape IFCはNetscape ONEの構成要素の一つである。
【 P 】
PersonalJava
ディスプレイの解像度が低く、キーボード/マウスなどがない環境(携帯型情報機器)を対象とするサブセット版Java実行環境。
2Mバイト程度のメモリーで動作する。
1997年4月開催のJavaOneで発表した構想である。
97年7月には、仕様案を公開した。
【 R 】
RMI (Remote Method Invocation)
リモート・メソッド呼び出し。
Javaプログラムが、ネットワークなどを経由して相互に通信し合う仕組み。
JDK1.1には標準で含まれる。
【 S 】
Session Bean
Enterprise JavaBeans(EJB)で規定されている
Beanのひとつ。
セッション単位での処理を行う機能を持つ。
Session Beanに記録したデータはBean自身が保持するため、セッションが失われ、Session Beanが破棄されるとデータも同時に破棄される。
また、内部的にも外部的にもデータの保持を行わないSession Bean(Stateless Session Bean)も存在し、これは単発のメソッドで処理が完了するような単純な処理を行うBeanとして使用される。
内部的にデータを保持できるSession BeanはStateful Session Beanと呼ばれる。
また、Session Beanに対し、外部データベースへのインターフェースという形で機能し、Bean自身が破棄されてもデータが保持されるタイプのBeanはEntity Beanと呼ばれる。
【 T 】
teikade
PFUがフリー・ソフトウエアとして公開中のJava開発ツール。
「テイケイド」または「テイカデ」と読む。
Smalltalkに範をとった開発環境を備え、すべてJavaで記述されている。
PFUの研究所で佐藤治氏、白神一久氏が開発した。
最新版は1.8R3。
Thin-Client
ネットワーク・コンピュータを形容する用語。
WindowsベースのPC(パソコン)クライアントが肥大化していることに対するアンチテーゼとして出てきた言葉である。
Windows PCをクライアントとする場合には、クライアントOS(Windows)、ビジュアル開発ツールや、ツールで構築したアプリケーションなどをすべてPC上に格納して実行する。
最新版のWindows95環境を快適に使うには、Pentium 166MHz以上と大きなCPU能力、32Mバイト以上のメモリー容量、1Gバイト以上のディスク容量などが求められる。
また、OSやアプリケーション類のインストールやバージョン管理などを人手で管理する場合の管理コストもかさむ。
これに対し、ネットワーク・コンピュータでは、アプリケーションはサーバー側に置いてダウンロードするし、OSも最低限の機能だけを備えた軽量OSを載せるため、クライアント側には最低限の資源しか必要ではない。
このような概念をThin−Client(細身のクライアント)と呼ぶ。
【 U 】
Unicodeエスケープ
Javaのソース・コード中で、任意のUnicode文字をASCII符号だけで表現できる表記法。
例えば、「\u65e5」という表現で1文字を表現する。
ここで「\u」はエスケープ文字、「65e5」は2バイトの16進数で、「日」という文字に相当する。
Javaのchar型やString型のリテラル内で使える。
JDK1.1には、ネイティブ・コード(シフトJISなど)をUnicodeエスケープに変換するnatibe2asciiというツールが付属する。
ただし、JDK1.1 Finalや、Visual J++などの開発ツールでは、ソース・コード中にネイティブ・コード (Windowsの場合はシフトJIS、Solarisの場合には日本語EUC)で書かれた文字列を、コンパイル時に自動的に Unicodeに変換してくれるため、Unicodeエスケープをいちいち使う必要はない。
【 X 】
XML (eXtensible Markup Language)
インターネット上でさまざまなコンテンツを扱えるよう設計した記述言語。
特定のコンテンツを記述するための言語ではなく、文書構造やタグを開発者が設計して特定の用途に応じた記述言語を開発するためのメタ記述言語に当たる。
具体的には、内容を記述するファイルと文書型定義(Document Type Definition: DTD)と呼ぶファイルのペアをコンテンツとして扱い、文書構造やタグの情報はDTDで定義する。
ISOが定めた電子文書の国際標準規格SGML(Standard Generalized Markup Language)のサブセットとしてWWW Consortium(W3C)が仕様を定めた。
XMLを使うことの大きなメリットは、特定用途向けのコンテンツ用記述言語を標準仕様の枠内で定義できることである。
これにより、HTMLなど現存する特定の標準技術を使ったコンテンツや製品の互換性を損なうことなく、さまざまな個別の用途向けコンテンツの利用環境を構築できる。
HTMLの仕様は、各ベンダーがさまざまな技術を拡張機能として提案したため、急速に進化した面もあるが、同時にHTMLを扱うブラウザ製品などの間で非互換性が生じる結果を招いた。
XMLを使えば、特定用途向けの機能をHTMLとは別の記述言語として定義できるため、従来からある技術をそのまま使い続けながら新しい技術の恩恵も受けられるようになる。
このXMLは正式な仕様「XML 1.0」の仕様が1998年2月に決まったばかりだが、その利用がすでに広まりつつある。
例えば、次のような利用例がある。
米Marimba社と米Microsoft社が共同提案したソフト配布の標準形式「Open Software Description」(OSD)、数学式などの記述言語「Mathmatical Markup Language」(MathML)はいずれもXMLをベースとする記述言語。
米Adobe Systems社などがW3Cへ提案している2次元グラフィックスを含む高品質文書の記述言語「Precision Graphics Markup Language」(PGML)もXMLの枠内で決めた技術である。
コンテンツを定義する要領でJavaのアプリケーションを定義する環境を提供する基盤技術としても利用されつつある。
DOM(Document Object Model)やSAX(Simple API for XML)といった標準APIを使ってXMLベースのコンテンツをJavaから利用するためのXMLパーサー「XML for Java」(開発元は日本アイ・ビー・エム)、XMLベースの記述言語「Application Description Markup Language」(ADML)を使ってソフト部品同士の関連などを定義できるソフト開発環境「Open・J」(開発元はカナダのCorel社),といったソフトが98年4月時点ですでに公開中である。
【 ア 】
アプレット
アプレット(Applet)は、他のアプリケーションに読み込んで動作させる形式のJavaプログラム。
「小アプリケーション」という意味。アプレットに対して「Javaアプリケーション」は単独で実行できるプログラム形態を指す。
WWWブラウザ(HotJava、Netscape Navigator、MicrosoftInternet Explorer)に読み込んで動作させることが可能。
プログラミング上は、java.applet.Appletクラスを継承して作成するクラス(Class定義文にextendsAppletの節が加わる)。
アプレットは、セキュリティ上の配慮から、ブラウザによって厳しく機能が制限されている。
例えば、NetscapeNavigatorではローカル・ファイルへのアクセスはできない。
また、ダウンロード元のホストとしか通信できない。
これは、アプレットによる悪質なプログラム(コンピュータ・ウイルスや、致命的なバグを含むプログラム)を締め出すためである。
アプレットとして作成したプログラムを業務システムでも応用しようという動きがある。
メリットは主に2点 (1)ソフト配布の手間を省ける。
実行ファイルをWWWサーバー側に配置するために、多数のクライアントにいちいちアプリケーションをインストールする手間がない、 (2)マルチプラットフォーム。
UNIX、Windows、Macintosh、JavaStation(Java実行専用のネットワーク・コンピュータ)など多様な動作環境で共通のプログラムを動作させることができる。
【 カ 】
コンパイラ
一般には、ソース・コードを、コンピュータ上で実行可能な形式に翻訳するプログラム。
Javaに関係する「コンパイラ」には、次の各種がある。
混乱しないよう注意したい。 (1)バイトコード・コンパイラ (2)JIT(ジャスト・イン・タイム)コンパイラ (3)ネイティブ・コンパイラ。
Javaに関連して単に「コンパイラ」と言った場合には(1)の意味である場合が多い。
【 タ 】
デザイン・パターン
オブジェクト指向開発の経験者がもつ問題解決のパターンに名前を付け,整理したもの。
ねらいは,再利用可能な設計手法を知識として共有すること。
特定分野で再利用可能なクラスを作る「フレームワーク」に比べより抽象度が高い概念である。
参考文献として,Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides共著,本位田真一,吉田和樹・監訳,『デザイン・パターン』(ソフトバンク,1995年)がある。
Javaによるソフトウエア・コンポーネント技術Java Beansでは,コンポーネント(
Bean)の間を,人間がコーディングすることなしに結び付けるための,メソッド名/インタフェース名の命名規則をデザイン・パターンと呼ぶ。
【 ナ 】
ネイティブ・コンパイラ
ソース・コードを、実行可能な機械語に翻訳するコンパイラ。
Javaのネイティブ・コンパイラは、米Asymetrix社が製品化している(Super Cede for Java、 対応OSはWindows95/NT)。
機械語に翻訳した後は、特定のプラットフォームの上でしか動作しなくなり、Javaの特徴であるプラットフォーム独立という性格が失われるものの、実行速度は上がる。
【 ハ 】
バイトコード
Javaプログラムの実行形式。
特定のコンピュータに縛られない「仮想マシン」の命令セットを利用する。
命令がすべて1バイト長のため,バイトコードと呼ぶ。
バイトコード・コンパイラ
Javaソース・コード(例えば,HelloWorld.java)を,Javaバイトコード形式(例えば,HelloWprld.class)に変換し,Java仮想マシン(JavaVM)が実行できるようにする。例として,JDK付属のjavacがある。