.NET は IT プロフェッショナルに何をもたらすか
July 24, 2002 日本語版最終更新日 2002 年 12 月 9 日
開発者は、Microsoft® .NET テクノロジの利点を以前から知っています。さまざまな .NET ツール、サービス、クライアント、およびサーバーにより、開発者は XML Web サービスを通して強力なソフトウェアとシステムを構築できるようになりました。しかし、IT プロフェッショナルにとって Microsoft .NET はどんな価値を持つのでしょうか。
これらのテクノロジは、IT プロフェッショナルに対して利点を広範囲にもたらします。日常業務を加速し、改善することから、次世代のテクノロジを配置するための高度な機能の提供まで、.NET によって、IT プロフェッショナルは企業システムをこれまで以上に広範囲に接続できるようになります。
この記事では、Microsoft の .NET-Connected ソフトウェアにより、複数のシステムに多数のアプリケーションを配置するという IT の作業に関わる一般的な問題の解決方法を説明します。さらにこの記事では、.NET を使って、システムの管理、セキュリティの確保、および幅広いモバイル デバイスへの接続を行う方法についても説明します。また、マイクロソフトの顧客の皆様とパートナー企業が .NET を使って多様なオペレーティング システム、デバイス、企業、および個人ユーザーを接続している実例を紹介します。
.NET Framework について
.NET Framework は、.NET の基盤にある、XML Web サービスとアプリケーションの開発、配置、および実行のためのプログラミング モデルです。
XML Web サービスは、プログラムを複数のプログラミング言語で、また複数のプラットフォーム上で作成し、XML、Simple Object Access Protocol (SOAP)、Web Services Description Language (WSDL)、および Universal Description, Discovery, and Integration (UDDI) などの標準のインターネット プロトコルを通して、データの通信と共有を行うためのコードの部品です。
.NET Framework の中核には、共通言語ランタイムとクラス ライブラリがあります。共通言語ランタイムはメモリ、セキュリティ、および言語統合を管理します。また、アプリケーションの信頼性を改善すると同時に、コードの開発とアプリケーションの配置を単純化します。これらの作業の大部分は透過的に処理されるので、IT 管理者の作業が簡略化されます。さらに、共通言語ランタイムの機能 (強力な型付けのネーミング、クロス言語の例外処理、有効期限管理、および動的なバインディング) は、開発者が書かなくてはならないコードの量を大幅に減らします。
クラス ライブラリは、XML サポート、ネットワーキング、およびデータ アクセス機能を備えたアプリケーションの構築に必要なリソースを提供します。クラスは統一されているので、開発者は Microsoft Windows® ベース アプリケーションと Web ベース アプリケーションの両方を構築することができ、その過程で生産性とコードの再利用性を高めることができます。
Microsoft .NET と配置
開発者と IT プロフェッショナルが直面している、配置上の最も難しい問題の 1 つが、ダイナミック リンク ライブラリ (DLL) に関するものです。この問題は、複数のアプリケーションが DLL やコンポーネント オブジェクト モデル (COM) クラスなどの共通コンポーネントを共有しようと試みたときに始まります。新しいアプリケーションがインストールされるとき、新しいアプリケーション用のコンポーネントが既存のアプリケーションのコンポーネントを上書きし、既存のアプリケーションの動作がおかしくなったり、まったく動作しなくなったりすることがあります。
一般に、アプリケーションは、コンピュータ上にすでに存在するバージョンとの後方互換性がない、新しいバージョンの共有コンポーネントをインストールしようとします。新しく導入されたアプリケーションは正常に動作しても、共有コンポーネントの前のバージョンに依存していた既存のアプリケーションは正常に動作しなくなる可能性があります。
.NET Framework は、サイドバイサイド配置を使用することで、上書きの問題を解決しています。サイドバイサイド配置では、アセンブリの複数のバージョンを同じマシン上にインストールし、同時に実行することができます。個々のアプリケーションは共有コンポーネントの異なるバージョンを使用することができるため、作成者は後方互換性を保つ必要がなくなります。個々のアプリケーションは、アセンブリの特定のバージョンを要求することができます。バージョン情報は、アプリケーションの個々の構成要素の間で、共通言語ランタイムを通して記録されます。実行時に、共通言語ランタイムは記録された情報を参照して、正しいバージョンの依存ファイルがロードされるようにします。
アプリケーション アセンブリを隔離することで、アプリケーションはつねにビルドとテストに使われたコンポーネントをロードできるようになります。アセンブリは複数のアプリケーションからアクセスすることができますが、同じコンピュータ上の複数のアプリケーションから共有されるわけではありません。このため、他のアプリケーションがシステムに加えた変更の影響を受けることはありません。
.NET 対応アプリケーションは自己完結的で、XCOPY を使って簡単にインストールすることができます。このため、デスクトップ アプリケーションを、リモート Web サーバーを使ってクライアント コンピュータにインストールすることが可能となります。実際の配置には、開発者コードをパッケージ化し、これらのパッケージをアプリケーションが実行されるクライアントとサーバーに配布するという作業が含まれます。.NET Framework はレジストリに対する依存性をなくしているので、インストール、削除、および複製がはるかに簡単になっています。多くのアプリケーションは、単にファイル セットをディスクにコピーして実行するだけで配置できます。アプリケーションを削除または複製するには、ファイルを削除またはコピーするだけで済みます。
.NET によって配置を合理化した Continental Airlines
.NET により、企業は自ら作成したアプリケーションの配置期間を短縮することもできます。Continental Airlines のアプリケーション開発者たちは、.NET Framework と Microsoft Visual Studio® .NET を使用して、1 つのコード ベースを使用し、複数のプラットフォーム上で動作するモバイル アプリケーションの構築と配置を行いました。これらのアプリケーションにより、カスタマは自分の好きなデバイス上で、重要なフライト情報を受け取ることができます。
.NET Framework により、開発者は配置に要する期間を、数週間の単位から、「XCOPY 配置」を通して数時間の単位に短縮することができました。開発者は開発プラットフォーム上で設計、コーディング、およびデバッグを行い、単にそのコードをステージング サーバーにコピーします。このコードは、DLL の登録や、COM またはエクスポート パッケージの作成といった依存関係なしに、ただちに実行することができます。
これは IT プロフェッショナルにどのように役立つのでしょうか。Continental のアプリケーション開発担当ディレクターの Ferdy Khater は次のように述べています。「XCOPY 配置により、サイト全体を停止しなくても、簡単にサーバーを追加できるようになりました」。ピークの時間帯には「ハードウェアを追加してシステムを加速化し、ピークが過ぎたら、必要な場所に再配置することができます」。
さらに、Continental の開発者たちは、80,000 の同時ヒットを生成する 200 個の同時接続をシミュレートするシステム ストレス テストを実施しました。接続の成功率は 98% を超え、CPU の使用率は最大の負荷がかかった状況でも 50% 未満でした。この素晴らしい数値は、マネージ コードを採用してメモリ リークを回避する共通言語ランタイムのおかげで実現されたものです。
相互運用性と管理
.NET Framework の最も重要な利点の 1 つは、他の言語、アプリケーション、およびシステムとの間の相互運用性のレベルです。.NET の中核には、企業が、急速に業界標準となりつつある XML Web サービスを通して、Web ベース ソリューションの統合と管理を行えるようにする能力があります。
.NET は、現代的なソフトウェア アプリケーションが XML や SOAP などの標準インターネット プロトコルを通して通信できるようにし、社内のシステムとリモート システムが簡単に対話できるチャネルを作成します。企業は、社内でホスティングされているアプリケーションと外部システムにホスティングされているアプリケーションを組み合わせ、特殊化しているが経済的なソリューションを通して、企業独自のビジネス ニーズを短期間で満たすことができます。
共通言語ランタイムは、社内の特定のアプリケーションの個々のコンポーネントが通信を行えるようにします。共通言語ランタイムは、その標準の型のセット (自己記述式の型情報 (メタデータ) と共通の実行環境) を通して、すべてのプログラミング言語を統合し、1 つの言語で作成されたオブジェクトを、別の言語で書かれたコードから読めるようにしています。たとえば、COBOL で書かれた新しいスケジューリング関数を、Microsoft Visual Basic® .NET で書かれた既存の人事アプリケーションで使用することが可能です。
複数言語サポートの利点は明らかです。開発者はその仕事に最も適したプログラミング言語を選べるので、生産性が向上するだけでなく、クロス言語の継承を通してコードの再利用が促進されるため、開発期間も短縮されます。
Dollar Rent A Car: 相互運用の実践
ある大手航空会社が、自社の Web サイトから Dollar Rent A Car の予約システムへの直接のリンクを張るという案件を打診してきました。Dollar の IT スタッフは、旅行パートナーのシステムを統合することで、ユーザーからの予約件数を大幅に増やせるのではないかと考えました。Dollar は、Microsoft .NET を使って、既存のメインフレーム ベースの予約システムを拡張することに決定しました。
Dollar の予約システムは、Quick Keys と呼ばれる VMS ベースのアプリケーションです。航空会社のシステムは UNIX をベースにしています。効果的に統合を行うためには、Dollar は以下の点に注意する必要がありました。
- 2 つの異なるプラットフォームの間に、リアルタイムの直接の接続を作成する。
- ソリューションを短期間のうちに、最小限の労力で実現する。
- テクノロジの長期的な有効性を確認する。
Dollar は、すでに 2 種類の Quick Keys インターフェイスを持っていました。
- Compaq Alpha サーバー上で実行される、社内で開発された電子データ交換 (EDI) インターフェイス。複数のツアー オペレータが毎日 FTP を使って Dollar にアップロードするフラット ファイルを解析します。
- Microsoft Windows NT® Server、CGI、Perl、および Oracle データベースを使って構築された Web サイト (www.dollar.com)
この Web サイトは、カスタム COM コンポーネントと Compaq の TP-Web Connector を使って、メインフレームと通信を行います。CORBA/IIOP、Java RMI、DCOM、およびソケット プログラミングを含むいくつかの接続テクノロジを検討した後に、Dollar は、任意のプログラミング言語で書かれたシステムからメインフレームにアクセスして予約を行えるソリューションは、XML Web サービスしかないと判断しました。
.NET を使用することで、Dollar は、航空会社が SOAP インターフェイスを実装しなくても XML Web サービスを利用できるハイブリッド ソリューションを実装しました。基本的に、このソリューションにより、航空会社の UNIX ベースのシステムは、ソケットと、旅行業界で一般に使用されているテキスト ベースのフォーマットを使って、Dollar に対して予約要求を送信することができます。Dollar のトランスレータがこのメッセージを受信し、解釈を行い、Quick Keys への既存の COM ベース インターフェイスを XML Web サービスとして公開している第 2 のシステムに対して SOAP 呼び出しを行います。
Quick Keys を XML Web サービスとして公開することで、Dollar は Web サイトの機能を拡張して、あらゆるモバイル デバイスに対応できるようになりました。サイトには、幅広い内部と外部のアプリケーションから使用できる標準インターフェイスが装備されました。また、このソリューションは大きな戦略的価値を備えており、Dollar は次世代のテクノロジを通して、他の旅行パートナーや個人ユーザーに簡単にリーチを広げることができます。
セキュリティ
ソフトウェア アプリケーション、特にインターネット ベースのアプリケーションは、データの変更と調整を目的とする静的なチャネルから、e ビジネスの基盤となる動的な交換システムへと変化を遂げてきました。現代的なソフトウェア アプリケーションの複雑さと機能が増すにつれ、ソフトウェアに対する組織の内外からの脅威も高まってきました。
.NET Framework のマネージ コード アーキテクチャは、コードの動作を透過的に制御することで、クライアント サイドとサーバー サイドの両方のアプリケーションに付随する本質的なリスクを大幅に軽減します。Foundstone, Inc.によって実施された私的な調査によると、.NET Framework を実行している Microsoft Windows サーバーは、今日そして未来の既知のセキュリティ攻撃に対する高度な耐性を備えています。今日のアプリケーションがコードの結果 (バッファ オーバーランなど) が原因で直面している主要なセキュリティ リスクの多くを軽減し、特定のアプリケーションを実行するべきかどうか、あるいはアプリケーションがどのようなリソースにアクセスできるべきかといったセキュリティの重大な意思決定の責任を、エンド ユーザーから開発者と管理者に移すことができます。
.NET Framework セキュリティ アーキテクチャの網羅性により、.NET は信頼性が高く、信用の置けるシステムとなっています。主な要素には以下のものがあります。
- エビデンス ベース セキュリティ
- コード アクセス セキュリティ
- 検証プロセス
- ロール ベース セキュリティ
- 暗号
- アプリケーション ドメイン
これらの要素により、開発者と IT 管理者は、アプリケーションとリソースのセキュリティをより細かい単位で制御することができます。開発者には、強力な認証、権限、および暗号ルーチンを実装するための使いやすいツール セットが与えられます。これにより、アプリケーション セキュリティの最大の脅威の 1 つであるコードの欠陥が解消され、IT プロフェッショナルは、他のアプリケーションの実行や特定のリソースのアクセスなどに関わる、重要なセキュリティ上の問題に専念することができます。
INSCOM とデータ保全性の重要性
もう 1 つのセキュリティ上の問題は、データ保全性の保証です。データ保全性の維持は最終的には IT 管理者の責任ではありませんが、組織内部のレコードと通信を保護することで、セキュリティを確保しやすくします。
データ保全性を強化するセキュリティの例として、U.S. Army Intelligence and Security Command (INSCOM) の Contractor Support Element (CSE) で、.NET を使って外注業者のファイルを管理しているケースがあります。CSE は Microsoft Consulting Services と共同で、外注業者のセキュリティ クリアランスに関する情報を格納している Microsoft SQL Server™ 2000 データベースにアクセスする Web クライアントを作成しました。CSE は紙をベースにしたシステムを Web に移行しようとしていたので、データ保全性は重要な問題となっていました。ワークフローを単純化することがぜひとも必要でした。
「既存のシステムの変換を始めたときには、データ保全性に関する多大な懸念がありました」と、INSCOM の CIO、Bob Fecteau 氏は述べます。「データは、われわれのビジネスに合った最適なフォーマットと構造で提示される必要がありました。Visual Studio .NET の ASP.NET コンポーネントを使って作成された Web フォームにより、入力されたすべてのデータの保全性を保証できたことは、以前のデータベースからの移行にとって非常に重要なことでした」。
データ保全性は、システムに入力されたデータを記憶し、同じデータを何度も入力する必要をなくす「キーストロークのキャプチャリング」機能によっても保護されます。
デバイス サポート
コンシューマにとっての .NET の最大の利点の 1 つは、幅広い固定式およびモバイル デバイスを接続し、サポートできる能力にあります。IT プロフェッショナルは、これらのデバイスを簡単に接続し、長期的に維持できる機能を歓迎するでしょう。
XML Web サービスは、デバイス サポートにおいて重要な役割を果たします。前に述べたように、XML Web サービスを使用することにより、さまざまなアプリケーションが、アプリケーションが使用しているオペレーティング システムやバックエンド ソフトウェアの種類にかかわらず、インターネット経由で情報を共有することができます。また、ユーザーは、インタラクションの制御をアプリケーションに任せずに、自分でコントロールしながら、Web 経由で幅広いスマート デバイスと対話することができます。
.NET Compact Framework、Windows CE .NET、および Windows XP などの強力なクライアント ソフトウェアは、さまざまなスマート デバイスが、.NET と XML Web サービスを通して動作し、通信を行えるようにします。このソフトウェアのコレクションにより、スマート デバイスはインターネットに簡単にアクセスできるようになり、ポジティブなユーザー エクスペリエンスが実現されると同時に、開発者と IT 管理者は情報をより細かく制御できるようになります。
Scandinavian Airlines の鍵となった柔軟性
最近、Scandinavian Airlines System (SAS) はデバイス サポートに関連するいくつかの問題を解決するために .NET テクノロジを実装しました。SAS の IT グループは、カスタマが使用する多様な電話やモバイル デバイスから 1 つの Web サイト (www.scandinavian.NET) にアクセスして、フライト ステータスのチェックやフライトの予約変更を行える柔軟な機能を提供できるテクノロジを必要としていました。
SAS のモビリティおよび IT グループは、Visual Studio .NET の Microsoft Mobile Internet Toolkit を使用して、モバイル プレゼンテーション層を作成し、既存のアプリケーションにモバイル デバイス アクセスを追加しました。アプリケーション機能には、既存のバックエンド ロジックを再利用しました。
開発者は、HTML Pocket PC、WML (WAP) 携帯電話、cHTML 携帯電話、および HTML Palm デバイスを含む多数のデバイス用のプレゼンテーション ロジックを考案することで、時間を節約することができました。SAS の IT グループは、モバイル Web フォーム コントロール (Mobile Internet Toolkit の一部) を使って、どのデバイスでもインテリジェントに動作するアプリケーションを作成しました。
さらに、Mobile Internet Toolkit により、SAS の IT グループは新しいデバイスをサポートし、特定のデバイス用にマークアップをカスタマイズできる柔軟性を手にすることができました。SAS の Web サイトは、最終的にはあらゆるタイプのデバイスをサポートできるようになりました。いつでもどこからでも接続できる能力と、.NET テクノロジをによるシステム/ユーザー間の相互接続により、SAS はクライアント ベースを拡大し、この先数年間旅行業界をリードする戦略的なポジションを確保しました。
結論
Microsoft .NET は、インターネットに接続された個々の Web サイトまたはデバイスから、互いに協力して、より包括的なソリューションを提供するコンピュータ、デバイス、およびサービスの集まりへと焦点をすでに移しつつあります。これは IT プロフェッショナルにとって、高度な接続性の問題を管理するためにより広い視野が必要となったことを意味します。しかし、視野が広がっても、エラーが発生する可能性は減っています。.NET の以下の機能によって、多くの IT 管理タスクで必要とされる推測に基づく作業量が減ります。
- 配置作業の合理化。
- レガシー システムを含む多様なシステムとの相互運用性。
- セキュリティの強化。
- 固定式およびモバイル デバイスの両方の、信頼の置ける接続とサポート。
IT プロフェッショナルにとって、.NET の価値は、複数のシステムとデータ ソースの相互運用性とシームレスな接続性にあります。さらに場所と時間を選ばない接続性とシステム/ユーザー間の相互接続が加わることで、企業は、カスタマ、パートナー、従業員に対して従来とは一線を画す高レベルの価値を .NET 接続ソフトウェアを使って提供することができます。.NET テクノロジを採用することにより、IT プロフェッショナルは、自社のビジネス パワーをそのビジョンの実現に向けて強化することができます。
|