SQL Server 2005 を使用した 開発者の生産性向上 概要 カスタマ レディ : 14 のスライドから構成されるこのプレゼンテーションは、2005 年 11 月に公開された 8 ページの技術的なケース スタディを基に、Microsoft における、SQL Server 2005 共通言語ランタイム (CLR) のサポートを利用した開発者の生産性向上と柔軟な価格アプリケーション ソリューションの作成について詳しく説明します。 はじめに Microsoft Worldwide Licensing and Pricing (WWLP) グループでは、価格情報の配布とエンタープライズ ライセンス アグリーメントの作成の処理を効率的にするビジネス ソリューションが必要でした。WWLP グループが実装したソリューションは、他の企業で価格担当者やアカウント マネージャ向けに同様のソリューションを開発する場合の役に立ちます。このケース スタディは、価格とライセンス アグリーメントの効率のよいソリューションを企業レベルで作成することに関わる最高情報責任者、技術的意思決定者、および IT プロフェッショナルを対象としています。 公開日 : 2005 年 11 月
ソリューションの概要 状況 ソリューション 利点 効率の悪いエンタープライズ アグリーメント作成アプリケーション SQL Server 2005 の機能の使用 利点 開発リソースの削減 処理時間の短縮 効率的な配布と使用 現在価格への準拠の向上 .NET コンポーネントによるパフォーマンスの向上 ソリューションの概要 状況 Microsoft WWLP グループではクライアント アプリケーションを使用してエンタープライズ アグリーメントを起草していましたが、このアプリケーションは作成や配布が困難で、価格担当者にとって扱いにくいものでした。 価格担当者は、現在のポリシーに準拠していない古い価格情報を使用してアグリーメントを作成してしまうことがよくありました。 ソリューション EZPET 2.0 では Microsoft® SQL Server™ 2005 の 64 ビット処理サポートを使用して、460 万点の価格が、価格担当者が使用する価格とビジネス ルールのコンパクトなセットに縮小されます。 価格情報は、クライアント側でエンタープライズ ライセンス アグリーメントを起草するために使用するコンポーネントにカプセル化されます。 コンポーネント データはレポート処理で再利用するために、EZPET データベースに保存されます。 利点 クライアントとサーバーで実行される 1 つのコンポーネントを開発することによる、開発リソースの削減。 数百万点にも及ぶ価格の効率的な縮小。32 ビット システムに比べて処理時間が短縮されます。 効率的な配布と使用。 現在価格への準拠の向上。 Microsoft .NET コンポーネントによるパフォーマンスの向上。
製品とテクノロジ Windows Server 2003 Windows XP Professional SP2 SQL Server 2005 SQL Server Reporting Services SQL Server CLR Visual Studio 2005 .NET Framework 2.0 製品とテクノロジ Microsoft Windows Server™ 2003 Microsoft Windows® XP Professional SP2 SQL Server 2005 SQL Server Reporting Services SQL Server 共通言語ランタイム (CLR) Microsoft Visual Studio® 2005 Microsoft .NET Framework Version 2.0
状況 EZPET 1.0 社内アプリケーションによる価格情報と見積価格の提供 扱いにくい、手作業の処理による Excel 価格ブックの作成 ライセンス担当者に最新の価格情報とオフライン機能を提供する必要性 状況 Microsoft Corporation の WWLP グループは、企業ユーザー向けにライセンス アグリーメントを準備する、約 1,000 人のライセンス部門の幹部や担当者をサポートするソリューションを提供しています。グループでは Microsoft Excel® で構築された社内アプリケーションの EZPET 1.0 を使用して、ライセンス担当者への価格情報の配布、見積価格の提供、およびエンタープライズ アグリーメント ユーザーへの見積価格の提示を行ってきました。 各ライセンス担当者は、毎月、現在価格が含まれる Excel ブックを受け取ります。この価格ブックは扱いにくい、手作業による処理で作成されていました。ライセンス情報のデータ リポジトリには約 2,200 万点の価格 (製品やボリュームに関連する価格) が含まれており、その中で約 460 万点が現在も有効です。このソース データベースは非常に大規模なので、価格ブックの作成には時間がかかっていました。そのため担当者の手元に届くのが遅れることが多く、ブックとして書式設定された大量の情報が含まれているので、大変扱いにくいものでした。その結果、ライセンス担当者は新しいアグリーメントを作成する際に、不正確な情報や古い情報を使ってしまうことがよくありました。こうした状況が、現在価格のポリシーへの準拠が不十分であるという事態を引き起こしています。 ライセンス担当者は最新の価格情報が必要なので、(空輸など) オフラインの手段で使用できることを希望していました。WWLP グループではリポジトリ内の大量のデータを、配布しやすく、ローカル コンピュータで処理できる、管理が容易な量まで削減する必要があります。アプリケーション ユーザーが容易に利用できるように価格データを簡素化するには、強力なコンピューティング リソースが必要になります。また、新しいシステムでは、レポート処理や説明責任のために、新たなエンタープライズ アグリーメントからデータを取り出し、EZPET データベースに格納することも必要になります。このようなシステムでは、クライアントとサーバーに新たなソフトウェアが必要です。
ソリューション WWLP グループによる EZPET 2.0 の展開 縮小された価格データの BIZ Component への組み込み 単一コンポーネントで構成されるエンド ツー エンドのソリューション ソリューション WWLP グループの EZPET 2.0 クライアント アプリケーションの特徴は EZPET 2.0 BIZ Component にあります。このコンポーネントは、価格情報とエンタープライズ アグリーメントのビジネス情報を 1,000 ユーザーのデスクトップ コンピュータに効率的に配布します。EZPET クライアントはビジネス アグリーメント情報を取得し、価格担当者やライセンス担当者がその情報を使用している間保持します。 EZPET 2.0 ソリューションを要約すると、次のようになります。 必要な開発リソースを削減するために、クライアントとサーバーの両方のソリューションとして機能する単一コンポーネントで構成されます。 クライアントを使用して新たにエンタープライズ アグリーメントを作成する価格担当者やアカウント マネージャに配布するために、データとビジネス ルールのコンパクトなセットを取得する EZPET スマート クライアントを配布します。アグリーメントに新たなデータが追加されると、アグリーメントが保存されるたびに、拡張マークアップ言語 (XML) にシリアル化されます。 新しいアグリーメントを含む XML データを SQL Server 2005 を実行するサーバーの EZPET 2.0 データベースに送付し、シリアル化された XML データを EZPET データベースに保存します。 レポート処理の場合は、SQL Server 2005 CLR を使用してデータのシリアル化を解除し、エンタープライズ アグリーメント データを処理します。 SQL Server 2005 の 64 ビット処理サポートを使用して、ソース価格データの 460 万点の価格を、基本価格とビジネス ルールのコンパクトなコレクションに縮小します。このコンパクトなコレクションが、EZPET 2.0 BIZ Component の各インスタンスで取得されます。 クライアントとサーバー用の 1 つのコンポーネント 縮小された価格データは、EZPET 2.0 BIZ Component というスマート クライアントに組み込まれます。このコンポーネントは、Visual Studio 2005 ClickOnce テクノロジを使用して、サーバーから容易かつ自動的に (Windows XP Professional SP2 と .NET Framework 2.0 を実行している) デスクトップ コンピュータにダウンロードできます。価格担当者がクライアントを使用してエンタープライズ ライセンス アグリーメントの見積の起草を完了すると、EZPET 2.0 BIZ Component によって XML にシリアル化され、SQL Server 2005 を実行するサーバーに送付されて、XML SQL Server データ型で EZPET 2.0 データベースに保存されます。 開発チームは、クライアント側とサーバー側の両方で機能するように EZPET 2.0 BIZ Component をデザインしました。SQL Server 2005 の CLR 統合を使用して、EZPET クライアントとデータベース サーバーで次の機能を実行する C# コンポーネントを開発しました。 EZPET 2.0 BIZ Component はローカル コンピュータでスマート クライアントとして実行され、価格担当者が新しいエンタープライズ アグリーメントを起草するときに、再利用可能なデータを取得します。 ユーザーがアグリーメントを保存すると、そのアグリーメントが XML としてシリアル化され、ローカル コンピュータに保存されます。シリアル化したアグリーメントをさらに処理する場合は、同じコンピュータで再度開くことができます。または、シリアル化したアグリーメントを EZPET データベースをホストするサーバーに送信し、XML データ型で保存します。 レポートを作成する場合は、XML をシリアル化解除し、.NET Framework ベースのアプリケーションとして実行します。エンド ツー エンドのソリューションは、EZPET 2.0 BIZ Component という 1 つのコンポーネントで構成されます。このアプリケーションを効率的に展開するには、基になるロジックをすべて C# ビジネス コンポーネントにカプセル化することが重要です。このコンポーネントがクライアント コンピュータで実行され、XML にシリアル化し、SQL Server 2005 に返送します。SQL Server CLR を使用することでクライアントと同じコードをサーバーで実行できます。このとき、新たな C# プログラミングや Transact-SQL (T-SQL) コーディングは必要ありません。
ソリューション SQL Server の CLR 統合機能を使用する EZPET 2.0 シリアル化されたコンポーネントの保存 .NET 処理のための XML のシリアル化解除 CLR アセンブリのコンパイルと実行 レポートの作成 ソリューション (続き) CLR 統合 レポートの生成など、データベースに格納されたエンタープライズ アグリーメント情報を使用するには、EZPET 2.0 アプリケーションで SQL Server 2005 の CLR 統合機能を使用して、データベースからデータを取得し、処理します。CLR 統合とは、中核となる .NET サービスをサポートする SQL Server 2005 の機能です。 EZPET アプリケーションでは次の手順に従って、エンタープライズ アグリーメント データの保存と取得、SQL Server 2005 CLR 統合を使用したデータの処理、およびレポートの作成を行います。 1. シリアル化されたコンポーネントの保存 シリアル化された EZPET 2.0 BIZ Component を XML データ型の形式で EZPET データベースに保存します。WWLP の開発者は、EZPET 2.0 BIZ Component のシリアル化とシリアル化解除を再利用可能にする手段として使用するために、SQL Server 2005 での XML データ型のサポートを利用しました。XML データ型を SQL Server 2005 の XML スキーマ準拠を確認する機能と組み合わせて使用することで、クライアントでシリアル化された元のコンポーネントと同一の .NET コンポーネントに XML を安全にシリアル化解除できます。 2. .NET 処理のための XML のシリアル化解除 レポートの作成が必要になったときに、データベースに保存された EZPET XML を取得し、C# コードにシリアル化解除します。XML データのシリアル化を解除することで、ライセンス担当者がエンタープライズ アグリーメントを作成するのに使用した EZPET 2.0 BIZ Component と同等の .NET 互換のコンポーネントが作成されます。元のソース コードは、Visual Studio 2005 でマネージ コードとして開発されているので、この手順では新たな開発は必要ありません。シリアル化解除されたモジュールによって、元のコードとエンタープライズ アグリーメントの作成時に追加されたすべてのデータが再構成されます。 3. CLR アセンブリのコンパイルと実行 .NET コードを Microsoft 中間言語 (MSIL) アセンブリにコンパイルします。コンポーネントを CLR アセンブリにコンパイルすると、.NET マネージ コードのすべての利点を活用できるメリットがあります。SQL Server CLR はアプリケーションの実行時にアプリケーション プロセスを管理し、操作を安全かつ安定した状態で実行できるようにします。 4. レポートの作成 データを SQL Server 2005 Reporting Services に送信します。
ソリューション ソリューション (続き) CLR 統合 (続き) このスライドの図は、EZPET と CLR の統合手順を示しています。
ソリューション CLR Enterprise Agreement クラスを XML データ型にマップする SQL Server 2005 CLR コード T-SQL よりもパフォーマンスに優れた、SQL Server CLR 内での .NET コードの実行 ソリューション (続き) CLR 統合 (続き) C# で記述された次のコード例では、SQL Server 2005 CLR コードで CLR Enterprise Agreement クラスを、ライセンスでの取り決めの詳細を含むシリアル化された EZPET 2.0 Biz Component の XML データ型にマップする方法を示しています。この例では、取り決めでのデスクトップ コンピュータの台数が返されます。 using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.Xml.Serialization; using System.Data.SqlTypes; namespace DBInterface { public class DataValues { public int getDesktopCount(SqlXml eaXML) { XmlSerializer _Serializer = new System.Xml.Serialization.XmlSerializer(typeof(DealGenie.EnterpriseAgreement)); XmlTextReader _Reader = new XmlTextReader(eaXML.ToString()); DealGenie.EnterpriseAgreement DeserializedDeal = (DealGenie.EnterpriseAgreement)_Serializer.Deserialize(_Reader); return (int) DeserializedDeal.NumberOfDesktops; } } } その他の利点として、.NET アプリケーション コードはコンパイルされキャッシュされるので、SQL Server CLR 内で実行される .NET コードは T-SQL よりもパフォーマンスに優れています。T-SQL コードはインタプリタで実行されるので、パフォーマンスはそれほど優れていません。
ソリューション 460 万点の価格を数百の基本価格とビジネス ルールに縮小する 64 ビット処理 データベース サーバー、クライアント、およびデータ分析サーバーから構成されるソリューション アーキテクチャ ソリューション (続き) 64 ビット処理 EZPET 2.0 BIZ Component のインスタンスを作成する前に、460 万点のアクティブな価格を含む SQL Server データベースが数百の基本価格とビジネス ルールに縮小されます。WWLP グループではデータ量を縮小するために、SQL Server 2005 Analysis Services を実行する 64 ビットサーバーを展開しました。SQL Server 2005 Analysis Services では 64 ビット処理がサポートされます。 縮小時の問題点は、価格の点数が多すぎて、32 ビット システムではアドレス指定可能な RAM が足りなくなったことでした。32 ビット システムではすべてのデータを格納するためのアドレス指定可能な RAM が不足したため、ディスク I/O が増加し、調査用のクエリの実行速度が低下しました。64 ビット システムに移行することですべてのデータがメモリに収まり、データが冗長かどうかを判断するための分析が迅速に行われるようになりました。64 ビット サーバーでの RAM の増加により、32 ビット サーバーでは数時間かかっていたクエリが 2 ~ 3 分で実行されます。 ソリューション アーキテクチャ EZPET 2.0 は大きなデータベースを効率的に処理し、そのデータ量をコンパクトに縮小する、クライアント コンピュータでオフラインで実行される再利用可能なコンポーネントとしてデザインされました。EZPET 2.0 アプリケーションのアーキテクチャは、次のコンポーネントで構成されます。 データベース サーバー : Microsoft Windows Server 2003, Enterprise x64 Edition と SQL Server 2005 を実行するサーバー。このプラットフォームでは、ソース データベース サーバーに格納された 2,200 万点の価格データから 460 万点のアクティブな価格データが取り出されます。SQL Server 2005 では、460 万点の価格データから数百の基本レコードと関連ビジネス ルールへのフィルタ処理と縮小を行うために、大きなメモリ空間にアドレス指定を行います。縮小されたデータは、EZPET 2.0 BIZ Component に組み込めるほど小さくなります。 クライアント : Windows XP Professional と .NET Framework 2.0 を実行するローカル コンピュータ。EZPET 2.0 BIZ Component はローカル コンピュータにダウンロードされ、新しいエンタープライズ アグリーメントを作成するためにオフラインで実行されます。EZPET 2.0 クライアントでは、エンタープライズ アグリーメントが XML にシリアル化され、ローカル コンピュータに保存されます。エンタープライズ アグリーメントが完成すると、XML 形式でサーバーに返送されます。 データ分析サーバー : Windows Server 2003 と SQL Server 2005 Reporting Services を実行するサーバー。データ分析サーバーでは、.NET コードを使用する SQL Server 2005 SQL CLR 機能により EZPET 2.0 BIZ Component のシリアル化が解除され、EZPET クライアントで使用されたのと同じ .NET コードを実行する機能が提供されます。SQL Server 2005 Reporting Services により、レポート処理プラットフォームが提供されます。
利点 開発要件の削減 データの効率的な縮小 利点 Microsoft WWLP グループは SQL Server 2005 の新機能を使用することで、ビジネス上の重要な問題点を解決するアプリケーションを迅速に開発および展開しました。 開発要件の削減 WWLP 開発グループは、SQL Server 2005 の CLR 機能を使用するアプリケーションを開発することで、単一の EZPET 2.0 BIZ Component を提供することができました。このコンポーネントは EZPET クライアントを補強し、SQL Server 2005 を実行する EZPET データベース サーバーで実行されます。SQL CLR では EZPET 2.0 BIZ Component の XML からのシリアル化解除がサポートされるので、SQL Server 2005 で新たなプログラミングを行う必要がありません。 EZPET 2.0 BIZ Component がクライアントでシリアル化され、その後サーバーでシリアル化解除される処理が SQL Server CLR で行われるので、開発時間が 50% 削減されました。クライアントとサーバーで個別にソリューションを開発する必要がある場合は、プロジェクトに 500 人時のコストがかかります。EZPET 2.0 の開発には 250 人時を費やしましたが、他のプロジェクトのリソースに比べれば半分で済みました。 データの効率的な縮小 SQL Server 2005 Analysis Services を 64 ビット コンピュータで実行することにより、32 ビット システムに比べてアドレス指定できるメモリが増加しました。460 万点の価格データに縮小するのに、32 ビット システムでは数時間かかっていましたが、64 ビット システムでは数分で完了します。この速度の向上により、少なくとも 95% のスループット向上が生み出されました。
利点 効率的な配布と使用 準拠の強化 .NET コンポーネントによるパフォーマンスの向上 利点 (続き) 効率的な配布と使用 EZPET 2.0 BIZ Component はサーバーで実行され、1,000 人の価格担当者やライセンス担当者がそのサーバーから容易にデータを入手できます。これまで配布や使用が困難であった大きな Excel ブックが小さな BIZ Component に置き換わりました。 EZPET 2.0 BIZ Component では、次のメリットが実現されます。 更新された価格ブックをネットワーク経由で送受信しなくなるので、ネットワークの負荷が大幅に削減されます。 EZPET 2.0 ユーザーは、次の待機時間が必要なくなったので、毎日最低でも平均 15 分は時間の節約になります。 価格ブックのコピーをサーバーからコンピュータにダウンロードする時間 Excel で価格ブックを開く時間 Excel の自動保存オプションがオンの場合に、価格ブックが自動的に保存される時間 変更を保存する際に価格ブックの保存にかかる時間 完成したアグリーメントをサーバーにアップロードする時間 1 日に 8 時間、週 5 日間、月 4 週間、年 12 か月として、毎日 15 分の節約は、年間 1 ユーザーあたり 62.5 時間の節約になります。1,000 人のユーザーがこの時間を節約できたとすると、グループで年間 62,500 時間節約できることになります。ただし、毎日 15 分というのは最低限の時間です。実際のメリットはもっと大きくなります。 準拠の強化 SQL Server 2005 Analysis Services を 64 ビット サーバーで実行することによって、460 万点ある現在の価格を基本価格とビジネス ルールのコンパクトなセットに効率的に縮小します。このコンパクトなセットがその後 EZPET 2.0 BIZ Component にカプセル化されます。価格担当者はこの EZPET 2.0 BIZ Component を使用することで、以前に使用していた Excel 価格ブックよりもはるかに簡単にデータを取得および使用できるようになります。 EZPET 2.0 を実稼動に移行してから価格担当者が現在の価格情報を使用する機会が増えたことで、現在価格とビジネス ルールに準拠する度合いが約 50% からほぼ 100% に倍増しました。 .NET コンポーネントによるパフォーマンスの向上 シリアル化解除された EZPET 2.0 BIZ Component は、コンパイルおよびキャッシュされた .NET コードとして実行されます。このテクノロジにより、インタプリタ言語である T-SQL よりもパフォーマンスが向上します。
まとめ ビジネス上の重要な問題点を解決する、EZPET での SQL Server 2005 の使用 膨大なデータベースをコンパクトなコンポーネントに縮小する 64 ビット処理 リソースを節約し、準拠を強化する XML のシリアル化とシリアル化解除 SQL Server 2005 を使用した、他の組織での同様のソリューションの実現 まとめ EZPET 2.0 アプリケーションは SQL Server 2005 の機能を使用して Microsoft WWLP グループが抱えていたビジネス上の重要な問題点を解決します。64 ビット サーバーのサポートにより、メモリのボトルネックが解消され、膨大なデータベースをコンパクトで使いやすいコンポーネントに効率的に縮小できます。XML のシリアル化とシリアル化解除のサポートにより、開発者は価格ポリシーへの準拠を大幅に強化する再利用可能なコンポーネントを作成すると同時に開発リソースを削減できます。 ビジネスで同様の問題を抱える多くの組織は、ソリューションの作成にここで紹介したのと同じ SQL Server 2005 の機能をすぐに適用できます。
詳細情報 IT ショウケースの電子メール アドレス showcase@microsoft.com Microsoft IT の展開およびベスト プラクティスに関する追加のコンテンツについては、以下のページを参照してください。 http://www.microsoft.com/japan/ Microsoft TechNet http://www.microsoft.com/japan/technet/itsolutions/msit/default.mspx Microsoft ケース スタディ リソース http://www.microsoft.com/japan/showcase/ IT ショウケースの電子メール アドレス showcase@microsoft.com 詳細情報 Microsoft IT の展開およびベスト プラクティスに関する追加のコンテンツについては、以下のページを参照してください。 http://www.microsoft.com/japan/ TechNet: http://www.microsoft.com/japan/technet/itsolutions/msit/default.mspx ケース スタディ リソース : http://www.microsoft.com/japan/showcase/ IT ショウケースの電子メール アドレス: showcase@microsoft.com Microsoft IT ショウケースについて Microsoft IT ショウケースは、Microsoft IT 組織の主要な業務アプリケーション、展開戦略、早期導入者の経験、ベスト プラクティス、および最新の取り組みを集めたものです。 IT ショウケースには、Microsoft 社内で実装されている業務アプリケーション、製品展開の経験、およびその他の主要な IT の取り組みを示すケース スタディ、ホワイト ペーパー、プレゼンテーション、およびマルチメディア プレゼンテーションが用意されています。 Microsoft IT の経験 早期導入者 : 多くの場合、Microsoft IT は、実稼動環境に新しい Microsoft 製品を最初に実装します。また、Microsoft テクノロジに基づいて、基幹業務アプリケーションを開発します。Microsoft IT が直面している課題およびその対処方法を把握することで、同様のプロジェクトを計画して実行するときに役立ちます。 大規模な展開 : Microsoft IT では、世界中の展開 (Microsoft の製品および他のベンダの製品) を見ています。Microsoft IT が対処する問題や学んだ内容は、独自の大規模なロールアウトの準備をするときに役立ちます。
このドキュメントに記載された内容は情報提供のみを目的としており、 © 2005 Microsoft Corporation.All rights reserved. このプレゼンテーションに記載された内容は情報提供のみを目的としており、明示または黙示にかかわらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。Microsoft Excel、Visual Studio、Windows、および Windows Server は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。記載されている会社名、製品名には、各社の商標のものもあります。 このドキュメントに記載された内容は情報提供のみを目的としており、 明示または黙示にかかわらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。 © 2005 Microsoft Corporation.All rights reserved. このプレゼンテーションに記載された内容は情報提供のみを目的としており、明示または黙示にかかわらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。Microsoft Excel、Visual Studio、Windows、および Windows Server は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。記載されている会社名、製品名には、各社の商標のものもあります。