主要なアプリケーション開発技術および一般的な "既製" コンポーネントに関するご質問への回答。
BEA WebLogic Controls はすべて EJB と同じですか?
いいえ。WebLogic Controls は、外部リソースを単純なコントロールとして公開するコントロール フレームワークを実装しています。事前定義されたコントロールは 6 つあります。Web Services Control、Database Control、EJB Control、MS Control、J2CA Control、および Timer Control です。このコントロール フレームワークにより、開発者はオブジェクト指向プログラミングや J2EE API から切り離され、コンポーネントが公開するデータとビジネス ロジックに集中できます。
CORBA コンポーネントはすべて CCM コンポーネントですか?
いいえ。CORBA Component Model (CCM) は、相互接続されたコンポーネントの集合としてエンタープライズクラスのアプリケーションを構築し、CCM 準拠の実行環境にデプロイするためのサーバーサイド コンポーネント モデルの仕様です。CCM コンポーネント仕様は CORBA 3.0 仕様で定義されています。CCM コンポーネントのデプロイに必要なのは、CORBA 3.0 準拠の ORB だけです。
すべての J2EE コンポーネントは BEA WebLogic Workshop と互換性がありますか?
WebLogic Workshop 1.0 は EJB の利用をサポートしています。WebLogic controls を作成できます。servlets や JSP を作成することはできません。
非表示のサーバーサイド コンポーネントも作成できますか?
もちろんです。.NET framework では、コンポーネントへの任意のインターフェースを Web Forms service または Win Forms service のいずれかとして実装できます。サーバーが実行する処理は、ツールバー上のボタンを 2D から 3D に変更することから、データの複雑な暗号化、データベースへの情報の問い合わせ/書き込みまで、何でも可能です。コンポーネントをサーバーに配置することで、処理能力の向上、更新の容易な展開、より広いプラットフォームへの対応などの利点が得られます。おそらく .NET のサーバーサイド コンポーネントの最も重要な利点はエンタープライズ スケーラビリティであり、これはユーザー インターフェース機能よりもビジネス ロジックに本質的な課題です。
既存のコンポーネントを .NET アプリケーションでも引き続き使用できますか?
はい。.NET Framework は Runtime Callable Wrapper (RCW) を実装しており、COM コンポーネントとの通信を可能にします。これにより、.NET は現在の COM コンポーネントおよびコンポーネントベースのアプリケーションとの後方互換性を維持できます。
表示されない VCL コンポーネントを作成できますか?
はい。Visual Component Library の "Visual" は少し不適切な表現です。VCL コンポーネントは、カプセル化したい機能に応じて、視覚的にも非視覚的にもできます。
Visual Basic を使って .NET でアプリケーションを開発し続けることはできますか?
Visual Basic は .NET Framework と統合するよう更新されています。VB.NET を使ってアプリケーション(もちろんコンポーネントも)を引き続き開発できます。
既存の COM アプリケーションで .NET コンポーネントを使用できますか?
はい。.Net Framework は COM Callable Wrapper (CCW) を実装しており、既存の COM コンポーネント/アプリケーションから .NET コンポーネントを呼び出せるようにします。標準の COM インターフェースを実装しているため、呼び出し元のアプリケーションからは .NET コンポーネントは COM コンポーネントのように "見え" ます。
Kylix 以外でも CLX コンポーネントを使用できますか?
はい。Component Library for Cross-platform は、Linux と Windows の両方のアプリケーションに対してコンポーネントベース開発を提供するために設計されました。Kylix は Linux 用の Integrated Development Environment で、CLX コンポーネントをサポートします。Delphi 6 は Windows プラットフォーム上で CLX コンポーネントをサポートします。
CORBA コンポーネントを使用するのに特別なソフトウェアは必要ですか?
はい、CORBA Object Request Broker (ORB) が必要です。ORB は CORBA コンポーネントを収容するミドルティア サーバーです。ORB は、2.0 や 2.3 など、CORBA 仕様の特定のバージョン上に構築されるものとして定義されています。CORBA コンポーネントを特定の ORB で実行できるかどうかは、このバージョン番号で決まります。ORB は EJB Application Servers と比較できます。実際、多くの EJB App Servers には CORBA ORB ソフトウェアも含まれており、EJB と CORBA の両方のコンポーネントを実行できます。
.NET コンポーネントを作成または使用するのに WindowsXP は必要ですか?
いいえ。Visual Studio.NET は Windows 2000 以降と互換性があります。
私のコンポーネントは MTS 互換である必要がありますか?
用途によります。MTS 対応コンポーネントは、Microsoft Transaction Server (MTS) の実行環境で実行される COM コンポーネントです。クライアント マシン上のコンポーネントがサーバー上のコンポーネントと通信できるため、分散型のエンタープライズ全体のコンピューティングに対して本質的にスケーラブルです。MTS コンポーネントは DLL である必要があります。EXE と OCX はサポートされません。コンポーネントが分散環境で使用される可能性のある特定のビジネス ロジックを提供する場合は、MTS 対応にするべきです。
.NET Framework はコンポーネントの終わりを意味しますか?
いいえ。実際、.NET(Win Forms、Web Forms、Active Server Pages+ を含む)は、これらのサービスを提供するためにコンポーネントに依存しています。実質的に変わるのは、コンポーネントがどこに配置されるか(サーバー上)と、それらのコンポーネントの使用がどのようにライセンスされるかです。たとえばサーバーサイドの User Interface コンポーネントを Web サーバーにインストールすると、そのコンポーネントのインターフェースが公開されます。これらのインターフェース(プロパティ、メソッド、イベント)は Web Form Services として表現されますが、基盤となる機能は依然としてコンポーネントによって提供されます。
コンポーネントを "コピー保護" するにはどうすればよいですか?
コピー保護は、単にコンポーネントのライセンスの拡張です。これを実現する方法は多数あります。ライセンスおよびコピー保護を提供するサードパーティのコンポーネントやツールが利用できます。Software Licensing Components および Software Licensing Tools のカテゴリで確認できます。
コンポーネントのライセンスを取得するにはどうすればよいですか?
コンポーネントのライセンスには、ソフトウェア保護とライセンス条件という 2 つのプロセスがあります。ソフトウェア保護はさまざまな方法で実装できます。これを実現するためのサードパーティ製ソリューションを購入することもできますし、自社で独自のアルゴリズムやライセンス システムを作成することを好む企業もあります。ライセンス条件とは、購入時に作者(あなた)と顧客の間で締結される法的なライセンス契約を構成するものです。これらの条件は、資格を持つ弁護士に作成を任せるのが最善です。
ActiveX DLL/In Process Server は ActiveX OCX とどう違いますか?
ActiveX OCX は、インスタンス化するためにコントロール コンテナー(Visual Basic のフォームなど)を必要としますが、ActiveX DLL には必要ありません。そのため、ActiveX DLL は通常、フォーム(または視覚インターフェース)があるかどうかにかかわらず、あらゆる COM 対応環境で使用できます。OCX はコントロール コンテナーを問い合わせることができ、デザイン時または実行時のどちらでインスタンス化されているかを判定できます。
ランタイム時にコンポーネントを使用するたびにライセンス キーを入力したくありません。
その必要はありません。ほとんどの商用コンポーネントには、シリアル番号でプロパティを設定するか、適切なレジストリ エントリを作成して、アプリケーションの最終ユーザーがそのコンポーネントのシリアル番号を入力しなくて済むようにする機能が含まれています。コンポーネントが開発者によって適切にライセンスされていると仮定すれば、アプリケーション内のコンポーネントの存在は最終ユーザーに対して透過的であるべきです。
NetCLX とは何ですか?
NetCLX は Borland CLS コンポーネントの下位区分です。CLX コンポーネントには 4 つのグループがあります。BaseCLX - 数学計算などの "基本" 機能を実行するためのもの。VisualCLX - ボタンやグリッドなどの User Interface 機能を提供するためのもの。NetCLX - ネットワーク通信機能を提供するためのもの。DataCLX - データアクセス操作のためのもの。
"server-side user interface" コンポーネントとは何ですか?
server-side UI コンポーネントとは、要するに .NET web server または application server 上で動作する user interface コンポーネントです。クライアント側にインストールする必要があるコンポーネントはなく、サーバー上のそれにアクセスするための適切なコードだけが必要です。サーバー上にあるツールバー コンポーネント(Windows Forms Control)を想像してください。ボタン、ドロップダウン リストなどが定義されています。クライアントがボタンをクリックすると、イベントがサーバーに送信され、適切な関数が呼び出されます。ツールバーを変更すると、サーバー上のコンポーネントを更新した時点で、そのアプリケーションを使用しているすべてのクライアントが即座に更新されます。Web Forms (ASP.NET Server Control) と組み合わせると、Web クライアントでも同じ機能を得られます。ユーザー インターフェース コンポーネントは、ページ全体を再読み込みするためにサーバーへの "round-trip" を必要とせずに更新されます。これにより、Web アプリケーションは、絶え間ない、場合によっては遅いページの再読み込みなしに動的なユーザー インターフェースを持てます。
ビジネス コンポーネントとは何ですか?
ビジネス コンポーネントとは、ユーザー インターフェース機能ではなく、カプセル化されたビジネス ロジックによって定義される任意のコンポーネントです。これは、ビジネス コンポーネントがユーザー インターフェースを持てないという意味ではありません。持てます。表計算コンポーネントを考えてみてください。一見、単なるユーザー インターフェース コンポーネントのように見えますが、表計算データに対して計算を行うビジネス ロジックも含んでいます。そのため、主な機能が表計算ロジックであることから、ビジネス コンポーネントと見なされます。
CLX とは何ですか?
Component Library for Cross Platform は、Windows と Linux の両方のプラットフォームで使用できるコンポーネントを開発者が作成できるようにするために Borland によって作成されました。Borland の Visual Component Library (VCL) を基盤とし、Delphi 構文を使用する CLX コンポーネントは、複数のプラットフォームで使用する単一ソースのアプリケーションを作成するために使用できます。
COM コンポーネントとは何ですか?
COM コンポーネントは、Microsoft の Component Object Model に基づくコンポーネントです。COM コンポーネントは、ActiveX controls (OCX)、ActiveX DLL/In Process Servers (DLL)、または ActiveX EXE/Out of Process Servers (EXE) として利用できます。提供される機能に応じて、実質的にあらゆる COM コンポーネントを、Visual Basic、Visual C++、Internet Information Server などの COM 対応環境内で使用できます。
DLL とは何ですか?
DLL または Dynamically Linked Library は、公開されたプロパティ、メソッド、イベントを持つ、呼び出し可能なコンパイル済みライブラリを指します。
GUI コンポーネントとは何ですか?
GUI - すなわち Graphical User Interface - コンポーネントは、ツールバー、ボタン、メニュー、listbox、grid、chart、report などの何らかの視覚的インターフェースを提供するよう設計されています。通常はクライアント上で実行されます。ただし、Active Server Pages や .NET Framework の Server-Side User Interface コンポーネントの場合は、サーバー上にも存在し、ユーザー インターフェース情報をクライアントに送信できます。
サーバー コンポーネントとは何ですか?
サーバー コンポーネントとは、設計上サーバーにデプロイできる任意のコンポーネントです。これには、Active Server Pages web servers 向けに最適化された COM コンポーネント、Java application server で実行されるよう設計された EJB コンポーネント、および分散コンポーネント機能を提供するよう設計された Microsoft Transaction Server (MTS) コンポーネントが含まれます。ほとんどのサーバーサイド コンポーネントは一般にビジネス ロジックに限定されてきましたが、Microsoft の .NET framework では、ビジネス ロジックに加えてサーバーサイドのユーザー インターフェース コンポーネントも可能です。
VBX とは何ですか?
VBX は、16 ビット版の Visual Basic で使用するための 16 ビット コンポーネントです。現在のコンポーネントの多くは 32 ビットの OCX または DLL ですが、VBX はレガシー システム向けにまだ利用できます。
VCL コンポーネントとは何ですか?
Visual Component Library は、Delphi と C++Builder で再利用可能なコンポーネントの作成を可能にする Borland のコンポーネント モデルです。VCL コンポーネントは Microsoft Windows プラットフォーム上で動作します。
EJB コンポーネントとは何ですか?
Enterprise JavaBean コンポーネントは、分散環境で実行されるように設計された JavaBean です。EJB は Java Application Servers 内で実行され、ビジネス ロジックの分散可能でスケーラブルなデプロイを可能にします。一般に、EJB コンポーネントは "middle-tier" のビジネス ロジックをカプセル化します。
OCX とは何ですか?
OCX は ActiveX control です。作成するには Visual Basic のフォームのようなコントロール コンテナーを必要とする COM コンポーネントです。通常はアプリケーションに何らかの視覚インターフェース(Grid や Button など)を提供するために使用されますが、ビジネス ロジックを単にカプセル化するためにも使用できます。
C# とは何ですか?
C#("C sharp" と発音)は Microsoft の新しい開発言語で、C++ の強力さと Visual Basic の使いやすさを組み合わせたものです。開発者は、C++ より少ないコード行数で堅牢なオブジェクト指向アプリケーションを構築でき、エラーを導入する可能性を減らせます。.NET Framework とシームレスに連携するよう設計されています。
COM とは何ですか?
COM は Microsoft の Component Object Model です。他のプロセスで使用できるよう、プロパティ、メソッド、イベントを公開するためのインターフェースを確立します。ActiveX components(開発者が他の COM コンポーネントの機能を活用できるようにする)および OLE(Object Linking and Embedding - スプレッドシートを Word 文書に埋め込むなど、アプリケーション間でデータを共有できるようにする)の基盤となる中核機能です。
CORBA とは何ですか?
Common Object Request Broker Architecture は、Object Management Group (OMG) によって作成された、分散可能でスケーラブルなコンポーネントのための仕様です。CORBA 対応の ORB を介して CORBA オブジェクトが互いにどのように通信するかを定義しています。
Kylix とは何ですか?
Kylix は、Linux プラットフォーム上で動作するように設計された Borland の新しい Integrated Development Environment です。Delphi 構文と CLX コンポーネントを利用して、Delphi と VCL コンポーネントが Windows 向けの迅速なアプリケーション開発を可能にするのとほぼ同じ方法で、コンポーネントベースの Xwindow 対応 Linux アプリケーションを開発できるようにします。
.NET Framework とは何ですか?
.NET Framework は、インターネット技術との完全な統合をもたらす Microsoft 版の COM です。.NET Framework コンポーネントは、自身のインターフェースをサービスとして実装できるため、アプリケーションはコンポーネントをクライアント マシンにロードすることなく、インターネット越しにコンポーネントの機能を利用できます。
JavaBean と Enterprise JavaBean の違いは何ですか?
違いは大きいです。JavaBean コンポーネントは一般にクライアントサイドのコンポーネントで、Java Virtual Machine (VM) 内で実行されます。親アプリケーションと密接に統合されています。Enterprise JavaBeans は、アプリケーション サーバー内の分散環境で実行されるよう設計されており、そのため要件、機能、制約の対象となります。実装の観点では、JavaBeans は通常ユーザー インターフェース機能またはクライアントサイドのビジネス ロジックを実行します。EJB は分散された "middle-tier" のビジネス ロジックを実行します。そのため、JavaBean か EJB のどちらを作成/使用する必要があるかは、通常、作業を始める前にわかります。
どの言語でコンポーネントを使用できますか?
それは、そのコンポーネントがどのプラットフォーム向けに書かれたかによります。COM コンポーネントは、Visual Basic、Visual C++、Active Server Pages を備えた Internet Information Server など、ほぼすべての COM 対応開発環境で使用できます。VCL コンポーネントは Borland Delphi または C++Builder 内でのみ使用できます。JavaBean コンポーネントは Java 環境で使用する必要があります。CLX コンポーネントは Borland Kylix (Linux 用) および Borland Delphi version 6.0 以降 (Windows 用) で使用できます。
.NET では他にどのプログラミング言語を使用できますか?
.NET Framework は、幅広い開発環境を使用できるよう設計されています。唯一の要件は、その言語が .NET consumer であることです。新しい C# を含む Visual Studio 全体のラインナップはもちろん、FORTRAN、COBOL、RPG などにもすでに .NET consumers があります。
"JIT" とは何ですか?
C#(または VB.NET、あるいは COBOL でも)からアプリケーションをコンパイルすると、実際には Microsoft Intermediate Language (MSIL) にコンパイルされます。実行時には、MSIL コードは JIT(または "just-in-time" compiler)によってネイティブ コードにコンパイルされます。構成方法によっては、JIT はすべてを事前にコンパイルして速度を最適化することも、"on the fly" でコンパイルしてサイズを最適化することもできます。
WebLogic Server は EJB 仕様のどのバージョンをサポートしていますか?
WebLogic Server のバージョンによって、サポートする EJB 仕様のバージョンが異なります。WLS 6.0 - 7.0 は EJB 1.1 と 2.0 をサポートします。WLS 5.1 は EJB 1.1 をサポートし、WLS 4.5.x は EJB 1.0 をサポートします。