LOGO

sponsor.jpg

   ホーム      
 | 
  
   イベント      
 | 
  
   コラム      
 | 
  
   連載      
 | 
  
   フォーラム      
 | 
  
   VSUG      
 | 
  
   スタッフ日記      
 | 
  
   VSUG キャスト   
会員サービス
メンバー ログイン
新規会員登録はこちら
MENU
ホーム
イベント
VSUG アカデミー
VSUG Day
その他のイベント
コラム
連載
基本
LINQ
リッチクライアント
ASP.NET
フォーラム
初心者フォーラム
Visual Studio
.NET 開発
プラットフォーム運用
フリートーク・お知らせ
フォーラムの利用案内
VSUG
VSUGとは
フォーラムリーダー紹介
ガジェット
スタッフ日記
VSUG キャスト
第 1 回 近藤 和彦 氏
第 2 回 長沢 智治 氏
インフォメーション
会員規約
会員登録
プライバシーポリシー
リンクポリシー
著作権について
スポンサーについて
お問い合わせ
Text/HTML
VSUG DAY 2006 SUMMER

イベント案内

VSUG DAY 2006 Summer 開催決定!

日時:2006年6月13日(火)10:00~17:00(受付9:30)
場所:秋葉原コンベンションホール(東京 秋葉原ダイビル2F)
定員:400名
参加料:無料
イベントは終了しました。多数のご来場ありがとうございました。

セッションプログラム

9:30 受付
10:00-11:00 新しいユーザーインターフェイスの可能性
~ 新たなフレームワークの登場 ~
近藤 和彦氏・荻原裕之氏

ビジネス スタイルやライフ スタイルの変化によって、求められるユーザーインターフェイスのあり方が近年変わってきており、この流れにあわせてプレゼンテーションテクノロジも進化していきます。このセッションでは、近い将来登場する様々なプレゼンテーション テクノロジやツール ~ WPF (WinFx), Microsoft Expression, ASP.NET "Atlas" など ~を取り上げ、新たなユーザーインターフェイスの可能性と、その中で開発者に求められる資質とは何かについて考察します。
11:15-12:00 .NET開発者におくるORACLE最新事情
一志達也氏

ORACLEでは、.NET開発に役立つツールを提供していますが、その最新情報をお届けいたします。また、データベース開発者に役立つツールのご紹介や、最新ソリューションなど、業界動向も含めてお話しいたします。
12:00-13:30 昼休み
Aトラック Bトラック
13:30-14:30 C# 3.0 言語統合クエリ(LINQ) の概要
菊池 和彦氏

C# 3.0では言語統合クエリ(LINQ)として、既存のSQLと非常に近い形式で配列やリスト、データベース(DLINQ)、XML(XLINQ)を検索する事ができます。本セッションではサンプルを中心にLINQ構文を使ってどのような事ができるのかを紹介します。
WF(Windows Workflow Foundation)って何だろう?
こだか かおる氏
次期 Windows に搭載される WinFX。WinFX には、多くのフレームワークが含まれています。その中でも、地味に注目を集めているのが『WF(Windows Workflow Froundation)』 です。いったい 『WF』とは何なのか、何ができて、それを使うことで何がうれしいのか。気になる新テクノロジーを、『WF』に初めて触れる人にもわかりやすいように丁寧に解説します。
14:45-15:45 Visual StudioユーザーのためのAjax講座
八巻 雄哉氏
既存技術でありながら、新しいWebアプリケーションの可能性を切り開く方法の1つであるAjax。ASP.NETにおけるAjax開発といえば現在プレビュー版が提供されているAtlasが注目されていますが、それ以外にもすでにいくつかの実装方法が存在します。
本セッションでは、その実装方法をVisual Studio 2005を使用した具体的なデモを交えてご紹介します。ASP.NETにおけるAjax採用のポイントが分かります。
Visual Studio 2005で週休二日で週末秋葉原(アキバ)なパラダイス人生
尾島 良司氏

Visual Studio 2005を使用すると、それはもー楽チンにビジネス・アプリケーションを開発できちゃうんです。そう、我等が聖地である秋葉原に毎週末巡礼する余裕ができるくらい。だって、Visual Studio 2005とADO.NET 2.0ならSQLを書かなくて済むし、ジェネリックと匿名メソッドを使えばライブラリ化可能な範囲は大幅に広がるし、Windows FormsとVisual Studio 2005を使えば業務画面の作成は秒のオーダーで済む作業となるのですから。そんなの嘘だと思った方、本当だと証明します。どうかセッションを見に来てください。
16:00-17:00 インテルソフトウエア開発製品を使用したマルチ・スレッドアプリケーションの開発
菅原 清文氏
最新のプロセッサ上でアプリケーションのパフォーマンスを引き出すには、64ビット化とともにアプリケーションのマルチスレッド化が必須となります。このセッションでは、シングルスレッドアプリケーションを効率良くマルチスレッド化し、かつスレッドアプリケーション特有の問題(バグ)を検出しチューニングに役立つインテルのソフトウエア開発製品を紹介します。
~VisualStudioTeamSystem連携ソリューション~テスト・運用サポート作業を効率化する、アプリケーション解析ソリューション AppSight のご紹介
白戸 大輔氏
  いつも開発者を悩ませるのは、なかなか再現しない障害や、環境に依存した障害などです。再現するまでの操作が不明な場合、開発者は再現手順も見つけなければなりません。開発者は、いつまでも本業(=開発)に携われず、トラブル対応に苦労するばかりです。
そこで、本セッションでは、そのような障害に対しても有効な、そんな製品をご紹介します。
これを使えば、障害原因がどこにあるのか、ユーザ操作にあるのか、システム環境にあるのか、それともソースコードにあるのか、今まで以上に、迅速に切り分けることができます!

講演概要・講師紹介

近藤 和彦氏
マイクロソフト株式会社
デベロッパー&プラットフォーム統括本部
エバンジェリスト

2001 年マイクロソフト入社。入社後は開発者向けの技術サポート、およびコンサルタントを経て、現部署に異動。 現在はエバンジェリストとしてカンファレンスにおけるスピーカー活動、Web や雑誌の執筆などを通じて.NET 及び Microsoft のテクノロジに関する広範囲な活動を行っている。
荻原 裕之氏
日立ソフトウエアエンジニアリング(株)
産業システム事業部 第1産業システム本部 第2システム部
VSUG マイグレーション・COM 相互運用性フォーラムリーダー

1992年日立ソフトウェアエンジニアリング入社。入社後は言語プログラム部に所属し、開発言語そのものの作成に携わりました。その後ネクスタイドへ出向し、.NETと運命的な出会いを遂げます。出向から戻ると、社内の.NET専門部署に属し、.NETよろず相談を行い、週1ペースで.NETの技術教育を行っていましたが、今はごく普通に開発をしています。過去2回VSUG関連のセミナーで登壇させていただきました。
日本オラクル株式会社
システム事業推進本部 営業推進部
一志達也氏

国内SIerにてSEを勤めた後に、日本オラクル株式会社に入社。同社において製品マーケティングを担当。
菊池 和彦氏
Visual Studio User Group C#ボードリーダー
Microsoft Most Valueable Professional - Visual

C#1972年生まれ、現在は個人営業でプログラマーとして活動している。最近は一般的なプログラミング業務以外にプロジェクトのマネージメントも行っており、開発プロジェクトにおいて総合的に活動している。得意分野はWindowsアプリケーション全般、特にCOM等のRPCやSocket等のプロセス/ホスト間通信の技術で「境界線の住人」を自称している。 2004年 MSMVP - .NET Framework、2005年 MSMVP - Visual C#
こだかかおる氏
VSUG .NET Framework フォーラムリーダー
グレープシティ株式会社
ツール事業部 テクニカルエバンジェリスト
八巻 雄哉氏

2003年1月、PowerToolsシリーズのテクニカルサポートとして入社し、その後製品開発、マーケティングを経て、現在はテクニカルエバンジェリストとして活動。関心の対象は、いかに現場の開発者が楽をできるかということ。もちろん現役Visual Studioユーザー。
日本ユニシス株式会社
ITソリューション部 サービスビジネスイニシアティブ
尾島 良司氏

1969年群馬県生まれ。エヴァンゲリオンの碇シンジと同じ14才で、MicrosoftのMSXに騙されてコンピュータにはまる。BASIC、ハンド・アセンブルによるマシン語を経て、法政大学(文学部日本文学科)に行かずにバイト先でC++と出会う。Borland C++の手助けで社会復帰し、日本ユニシス(株)に入社。Visual C++がVisualでないことに騙されたり、途中Javaに浮気したりの末、.NET FrameworkとVisual Studio .NET 2002と恋に落ちて現在末永く幸せに暮らしているところ。MVP Visual C#の末席に紛れ込み中。
菅原 清文氏
インテル株式会社
ソフトウェア&ソリューションズ統括部
ソフトウェア製品部 プロダクトマネージャー
株式会社電通国際情報サービス
グループ経営コンサルティング3部 情報基盤コンサルティンググループ
シニアコンサルタント
ITILファンデーション
白戸 大輔氏

WWWバンキングなど金融システムや、大規模ECサイトを中心にミッション・クリティカルなWebアプリケーションを担当。
その後、社内の横断的な技術支援、研究・開発に携わり、現在ではAppSightを中心としたSIの技術支援に従事する。
趣味は「人助け」と「働くこと」!

 

セッションレポート

■新しいユーザーインターフェイスの可能性~ 新たなフレームワークの登場 ~
 近藤 和彦氏・荻原裕之氏

奥野大介さんのレポート:
 このセッションには、新しく加わるプレゼンテーション テクノロジをどう使い分けるべきなのかという興味から参加しました。このレポートでは、特にWindowsアプリケーションの使い分けに焦点を絞ってみたいと思います。

 現在主流の.Net Framework1.1には、WinFormsと低レベルAPIのManaged DirectX9.0cがあります。
.Net Framework3.0(WinFX)では、WPFが加わります。

セッションでは、"Rich"と"Reach"という2つの軸で、各プレゼンテーション テクノロジの位置付けが説明されました。
Richとはユーザー エクスペリエンスの豊かさ、Reachとはサポートするプラットフォームの範囲で、この2軸は相反する傾向にあります。
 
 まず、DirectXが最もRichなユーザー エクスペリエンスを実現することは変わりありません。
ただし、WPFも3Dグラフィックスをサポートしますから、ゲームなど特に高度な描画と応答性を要求されるアプリケーションがターゲットになります。

 WPFは、メインストリームに位置します。
WinFormsのユーザー インターフェース機能に加えて、オーディオ、ビデオといったメディア、3Dグラフィックス、ドキュメントが統合されます。
ただし、WPFの真価を発揮するには、ハードウェア、ソフトウェアの要件が高くなります。

 WinFormsは、下位互換性へ軸足を移して行きます。
つまり、高度な表現力よりも、WPFがサポートされないWindows OSで動作することが重要な場合です。

以上、駆け足でWindowsアプリケーションにおけるWPFの位置付けを振り返ってみました。

 WPFに関しては名前ばかりが先行している印象で、正直に言えば必要性に疑問を感じていたのですが、デモに触れた上で位置付けをはっきり説明されたことで、期待感が大いに高まりました。

 WPFの応用例としては、ショールームなどを仮想空間として構築することが考えられます。空間そのものの演出効果が重要なので、3Dグラフィックスが活かせます。
オンライン販売では、個々の商品説明に高度なインタラクションを追加できます
チャート コントロールのような統計の視覚化は多くが2軸の分析です。3軸の表示が容易になれば、全く新しい種類のグラフが生まれる可能性もあります。
しかし、こうした高度なプレゼンテーションが要求するハードウェア、ソフトウェアの要件は、決して低いとは言えません。
コスト、リスクに敏感なエンタープライズ分野、プレゼンテーションの大部分をDirectXで処理するゲームなどは、しばらくWinFormsの世界に留まるのかもしれません。

■.NET開発者におくるORACLE最新事情
 一志達也氏
安田敏行さんのレポート:
一志達也氏の「NET開発者におくるORACLE最新事情」についてレポートします。
データベースの世界では圧倒的な世界シェアを誇るORACLE社だけあって、一志さんのお話は歯切れもよく堂々のプレゼンテーションでした。もちろん私の会社でも基幹データベースはOracleのデータベースです。しかし工場の生産システム程度ではAccessでは物足りないが、Oracleでは敷居が高い。お気軽なSQLサーバを使ってきたのが現状です。Oracle8iの頃、SQL*PlusをDOS窓で色々操作しましたがGUIがイマイチの印象でした。今回一志さんのお話を伺い、ずいぶん印象が変わりました。オラクルは「Window」と「.NET」の完全にコミットしているとのことですが、我々Visual Studioユーザにとって身近な存在になりつつあると思います。Oracle機能の活用としてOracle Data Provider for .NET(ODP.NET)。開発生産性の向上としてOracle Developer for Visual Studio.NET(ODT)。開発言語の統一としてOracle Database Extension for .NET(ODE.NET)。等のツールが無償で提供されておりVisual Studioの世界でOracleデータベースのアプリが効率よく開発出来ることを知
 りました。早速Otn.oracleのHPでODTのデモ動画を見ましたがまったく違和感のない操作で、Oracleの敷居がぐっと身近になりました。その他冒頭にOracle の戦略としての製品群の説明がありました。業務アプリケーション(Oracle Fusion Application)とデータベース(Oracle Grid)の中間にある統合されたソフトウエア群がOracle Fusion Middlewareでありデータ統合、プロセス統合、セキュリティー統合、データ可視化、など企業情報システムに不可欠な要素をオープンかつスタンダードな技術を利用してSOA(Service Oriented Architecture)を実現するという、ちょっと難しいお話もありました。
■C# 3.0 言語統合クエリ(LINQ) の概要
菊池 和彦氏

村田健二さんのレポート:
業務システムではデータベースはほぼ100%と必要であると思います。その中でいつも悩むのは、どのデータベースを使用するかということです。
データの量にもよりますが、まずは社内での開発者のスキル(質)と、実際にSQLをコーディングできる人数(量)を考えながらデータベースを決定していたのですが、言語による記述の違いにはいつも悩んでおりました。
その違いも高度なSQLの作成で悩むのならわかるのですが、[日付を取得する]と言う簡単なSQLでさえも、微妙に記述が違います。統一してくださいよ・・・と思っているのは私だけではないと思います。

このため、今までSQLSERVER使っていたけどやっぱりOracleにしますということになってしまったら、これまで作成したSQLをすべて見直さなければならないという悲惨なことになっていました。
さらにSQLは文字列であるのでC#の開発環境にある一括変更などにも対応できません。
とにかくシステムを開発する上で、データベースは切っても切り離せないものであるにも関わらず上記に記載したよう数多くの問題が発生していました。

LINQのデータベースの種類に関わらず・・・というのは大変魅力だと思います。言語により異なるSQLの記述から逃れることができるのはもちろんのこと、例えば同じシステムでも顧客のデータ量によってデータベースを変えるということが容易にできるようになります。これは今までやりたくてもやれなかったことになるのではないでしょうか。

また、データベースとは少し違った形で使用されるXMLがあります。私はアプリケーションの初期情報や、バージョンと言ったものを保持するのに使用しております。そういった情報を保持するためにデータベースのテーブルを追加して、フィールドを決めて・・・となりますとデータベース内はごちゃごちゃしてしまいますし、レコードが1件しかないデータを持つのになぜデータベース?と疑問に思っていたためです。
XMLの読み込みも少し癖があり、習得するためにはSQLとはまた違った知識が必要になります。

XMLにはXLINQと言うものがきちんと用意されており、こちらも非常に簡単なコードでデータの取得やXMLの作成ができることが判明いたしました。

ただ現在は英語の開発環境を使うほうが良いということで、英語のできる人が増えているとはいえ一般のシステム開発には少し敷居が高いかも知れません。また、LINQを扱うにはやはりSQLやXMLの知識もある程度必要になると思います。SQLを覚え、XLMを覚え、さらにLINQの構文まで覚えるのか・・・と感じる人も多いのではと思いました。
ですが、LINQの構文自体は難しくなくコードも少ないためこれから日本語でもガンガン使える環境が整えば使用する人もたくさん出てくると思います。
また、速度にも若干問題があると言うことだったのですが、社内で使用するものや小規模なシステムであればほとんど気にすることはないのではないかと思います。

現在開発中のものもありそれがリリースされればもっと便利になるようです。データベース周りの多くの問題がこれで解決していくのではないかと思います。

■WF(Windows Workflow Foundation)って何だろう?
こだか かおる氏

安田敏行さんのレポート:
1月にPASSJ Conference 2006 with VSUGに参加させていただき、無料セミナーにしては規模が大きく、内容の濃い有意義なお話を聞くことが出来ました。今回も予想に違わずプレゼンも楽しく拝聴でき素晴らしい内容でした。次回の開催も是非参加したいと思います。

こだか かおる氏の「WF(Windows Workflow Foundation)って何だろう?」についてレポートします。
冒頭からウィットに富んだ話に、おもわず聞き入ってしまいました。最初に感じたのはVisio2003に新しく搭載されたUMLテンプレートに近いなと思いました。あれは図を描けばコードファイルも出来るけれどVisioでプログラム開発するのかよって感じでした。でも こだかさんの話からちょっと違うぞ。ちゃんと話は聞かなくちゃモードに移行しました。ようするにWindows-Vistaで提供される dotNET FrameWork3.0環境下ではVisual Studio2005を利用してVisioのように絵を描くとワークフローアプリケーションが作成出来るらしい。
ワークフローというのは、業務や処理の流れを図表示・ルール化したもので、出張決裁書とか稟議書のたぐいのあれです。今回はデモを二つやって頂きました。第1はシーケンシャルワークフローです。UMLのアクティビティ図と同じような感じでワークフローを記述できます。順番に進んでいくような処理、例えばウィザードのようなものに適しているようです。第2はヒューマンワークフロー(ステートマシンワークフロー)です。UMLの状態遷移図のイメージです。データがその状態に応じて遷移していくような処理、例えば稟議書の決済システムのようなものに適しているようです。我々の周囲の業務の効率化のツールとして色々可能性が広がりそうです。これまでは、一部の技術者によるオレオレワークフローや専門企業のパッケージワークフローの技術であったのが、マイクロソフトの基盤技術としてVisualStudioとのシームレスな統合環境が実現出来ることは大きな意義があると思います。

■Visual StudioユーザーのためのAjax講座
八巻 雄哉氏

日比谷貴昭さんのレポート:
1/25に行われましたPASSJ Conference 2006 with VSUGに続き、今回で2回目の参加になります。

八巻さんの話で、ASP.NETがAjaxと呼ばれる前からAjax的動作をしていること、
また、ASP.NET2.0からよりAjaxに近い機能を実装できるということの説明がありました。

ASP.NET1.xでは以下の2つの例を上げて説明がありました。
(以下、課題と解決方法を丸番号と矢印で記載致します。)
1)更新処理を行うと入力状態を保持するようにしないと入力状態が初期化されてしまう
⇒ビューステートにより、入力状態が保持され、初期化されない

2)更新による画面全体のリロード処理のため、スクロールが初期状態に戻ってしまう
⇒SmartNavigationプロパティにより、スクロール状態保持ができる
 ※ASP.NET2.0ではMaintainScrollPositionOnPostBackプロパティとなり、
  SetFocusメソッドにより、Redirect後のFocusを指定することが可能になった

(1)(2)などからASP.NET1.xではAjax的実装に近い形で実装ができるようになったのですが、
よりAjax的実装をするということで問題提起と解決方法をデモ見ながら説明がありました。
3)更新に対し、ボタンクリックなどによるユーザーの操作が必要
⇒クライアントコールバックの実装により、非同期通信をとりながら、
 入力のKeyUpまたはKeyDownから入力文字をサーバーに返し、
 必要な情報を返し、その情報分のみ更新できることにより、
 ユーザー操作の手段が以前のTextChangeのみといった方法にプラスされる

4)一部分の更新のために、画面全体の更新処理を行っているため、
 サーバー負荷の軽減と速度が課題
⇒ASP.NET2.0ではDataGridView,DetailsView,TreeViewの標準コントロールにより、
 非同期通信でソートとページング処理での更新が可能になり、
 View内のみ情報を更新することができる

5)画面全体をリロードしているため、画面にちらつきが残る
⇒(3)(4)から非同期通信により、ページのリロードを行わないことで
 ページのちらつきがなくなる

これ以外にもAtlasを利用したデモやグレープシティのコンポーネントの、
LiveControls1.0の紹介がありました。

今回のセッションでAjax的実装がいかに便利であるかを知ることができました。
Ajaxを利用することで入力支援をすることができたり、
また、画像の再描画なしに変更することなどが実現できるのではないでしょうか。
その一方で、非同期通信を行うことにより、httpレスポンスが増え、それに伴って、
入力支援ではよりDBアクセスが増えることになります。
処理によってはDBをデータ・キャッシングするなどの対応を考慮するなど、
サーバー負荷の面で検討すべき点もかかえているのではないではないかと思いました。

■Visual Studio 2005で週休二日で週末秋葉原(アキバ)なパラダイス人生
尾島 良司氏

村田健二さんのレポート:
私のこれまでの開発経験では、Eclipseが最も使いやすい開発環境でした。今回の開発から、初めてVisual Studio 2005を使いはじめたのですが今までで最も使いやすいのではないかと思っております。

Visual Studio 2005で私が最も気に入っているところはデータバインディングという考え方が実現されたからです。これにより、簡単な業務アプリケーションやプロトタイプは本当に短期間で作ることができます。

実際に現在の開発で、プロトタイプとして2種類の画面を作成したのですが、2つあわせて1日もかかりませんでした。もちろん、バインディングを行っていますので、データの追加、更新、削除の機能も実装されております。後はこれに、機能を付加していけばよいわけです。

本来であればDBに接続して、SQLを作成して、SQLを発行して、それからデータセットをもらって、テキストボックスやコンボボックスに、データベースの値を入れて・・・などの処理を記述する必要があるのですが、バインディングをすることによりこれらすべてのコードから開放されます。

このバインディングを使用しているときに以前から気になっていたのがSQLを動的に作成する場合についてです。なにしろSQLも自動で作成してくれるため、Where句を条件によって変更するなんてことは不可能かと思っておりました。
デザイナークラスを時間をかけて修正したら、一瞬で元に戻ってしまったり、select * from test where @where と書いて、@whereの部分をプログラムで変更しようとしてみたり・・・。
(わかる人にはわかると思うのですが・・・)

結局それは今回のセミナーにもありましたPartialクラスを使用することにより解決いたしま
した。これが今回のセミナーでの一番の収穫でした。社内に持ち帰って報告したら大変喜ばれ早速実装いたしました。

その他にもJAVAと同様の機能としてイテレータやGenerics等の説明もありましたが、これについての使い方は従来どおりという感じでした。

バインディングに関して一つだけ、改善して欲しい点を上げますと、バインディングするたびにBindingSorceとTableAdapterができてしまい、どれがどれだかわからなくなります。作成時には余り気にする必要はないのですが、なにかまとまった形で表示されるなどの工夫があればよいかと思います。

■インテルソフトウエア開発製品を使用したマルチ・スレッドアプリケーションの開発
菅原 清文氏

井上 章さんのレポート:
このセッションでは、インテル社製のソフトウェア開発製品を使ったマルチスレッドアプリケーション開発におけるパフォーマンスチューニングと最適化手法について、インテルの菅原氏よりデモを交えての解説が行われました。

ソフトウェア開発サイクルで軽視されがちなパフォーマンスチューニングですが、デュアルコアからマルチコアへと進化するプロセッサ環境で、その能力を生かすにはアプリケーションのマルチスレッド化とパフォーマンスチューニングが大変重要になってくるでしょう。

その第1段階として、まずアプリケーションのパフォーマンス解析を行いボトルネックがどこにあるかを調べることが重要となります。ここで紹介されたのが「VTune パフォーマンス・アナライザー」です。このパフォーマンス・アナライザーでは、コードビュー、タイムラインビュー、コールグラフなどの各種解析結果の表示が Visual Studio に統合され、アプリケーションのボトルネックを簡単に検出することが出来ます。豊富なグラフ表示で解析結果を表示してくれますので、デモを見ていても視覚的に分かりやすくアプリケーションを解析できると感じました。

第2段階として、パフォーマンス解析結果からどこをスレッド化するべきかを判断し、最適なスレッド化方法を検討することになります。マルチスレッド化の方法として API を使用して直接ソースコードを修正する方法も可能ですが、ここでは自動並列化としてコンパイラに任せてしまう方法と、OpenMP を使う方法が紹介されました。

まず、自動並列化による方法は、インテルコンパイラのオプションとして -Qparallel と指定することで有効になります。この方法は至って簡単ですが完全にコンパイラ任せになるため、並列化箇所を細かく制御したい場合には不向きになります。
一方、OpenMP を使った並列化では、プラグマで OpenMP ディレクティブを指定することで明示的に並列化を行う部分を指定できます。この OpenMP は
http://www.openmp.org/ で規格化されている手法で、今後の普及に期待が持てるでしょう。インテルコンパイラで OpenMP を有効にするには、オプションで -Qopenmp を指定しますが、この OpenMP は Visual C++ 2005 でも完全サポートされているとのことで、この場合のコンパイラオプションは -openmp となります。

以上の手法でマルチスレッド化が終わった後、第3段階としてそれらスレッド化によるプログラムの正当性の検証が必要になります。ここでは「インテル デバッガー」と「インテル スレッド・チェッカー」が紹介されました。インテル デバッガーは同時実行されているスレッドのうち任意のスレッドを指定してデバッグが出来るため、マルチスレッドアプリケーションのデバッグが行いやすくなります。また、インテル スレッド・チェッカーはスレッド間の同期に関する問題点などの検出が可能で、マルチスレッド化による複雑なバグの検出を容易にしてくれるでしょう。

一連のマルチスレッド化とそのデバッグが終わった後、それらのチューニングによるパフォーマンスが最適かどうかを確認することも大切な作業となります。ここで紹介されたのが「インテル スレッド・プロファイラー」です。これは、スレッド間の同期によるボトルネックなどを素早く検出し、グラフィカルに表示してくれるツールで、これを使ってパフォーマンスに問題がある箇所を検出して再度チューニングを行い、これらの繰り返しで最適なパフォーマンスを発揮するアプリケーションを開発することが出来るのは魅力です。

インテル社製のソフトウェア開発製品には、もう一つアプリケーションのパフォーマンスチューニングに便利な「インテル パフォーマンス・ライブラリー」とよばれる各種の数学関数群やマルチメディア処理に適したライブラリがあります。このライブラリは全てスレッドセーフな設計となっており、最も高速で簡単にパフォーマンスチューニングを行うことができるとのことで、実際のデモでも最も高速な結果を示していました。

また、これら一連のパフォーマンスチューニングと最適化の中心となる「Windows 版 インテル コンパイラ 9.1」では、VS6/2002/2003/2005 の全ての Visual Studio の C++ 開発環境に完全統合され互換性も保たれている上、豊富な最適化オプションを備えており、インテル製プロセッサ環境でのアプリケーションが最大限の性能を発揮できるようになっているところにも魅力を感じました。

今後、アプリケーションのパフォーマンス向上には、いかにプロセッサのリソースを効率よく利用するかが重要となってくると思われます。特にデュアルコアそしてマルチコア化へと進むプロセッサ環境では、マルチスレッド化はアプリケーションのパフォーマンスチューニングに最も有効な手段となるでしょう。しかしながら残念なことに、シングルスレッドでのみ動作するアプリケーションがまだまだ多いのは事実ですし、マルチスレッドアプリケーションを開発するための環境も十分整っているとは言えないのが現状です。
このような中で、今回のセッションで紹介されたインテル社製のソフトウェア開発製品は、使用して決して損はない開発ツールであると言えるでしょう。

最後になりますが、「VSUG DAY 2006 Summer」全体を通して、とても楽しませていただきました。今後も VSUG の活動をオンライン、オフラインともに楽しみにしております。また、私も VSUG の会員として積極的に活動に参加させていただきたいと思います。

■~VisualStudioTeamSystem連携ソリューション~
テスト・運用サポート作業を効率化する、アプリケーション解析ソリューションAppSight のご紹介
白戸 大輔氏

金野清隆さんのレポート:
障害発生時に、原因の分析を行うために、多方面でログを取っておいて、その分析ができると言う「AppSight」という製品の紹介でした。
実はしばらく前に、類似製品のデモを見たことがありましたが、そちらに比べるとより開発者向けを意識しているように感じられました。
デモで障害を発生させて、その原因分析を本製品の機能を使いながら見ていくというセッションでしたが、自分でも経験したことがあるような障害を題材としていたので、興味を惹かれました。
基本的には、色々な観点から集めたログを見ていくという形ですが、フィルタリングも強力そうです。
また、実際に障害が起きたときの画面動作を再現させることもできるので、オフショア開発におけるコミュニケーション齟齬をなくすためにも使える、というお話もありましたが、それは面白い視点だなと思います。オフショアでは、ドキュメントよりもユニットテストの力が大きくなるのではないかと思っていましたが、このような製品の力も使えるのかなと思いました。
VSTSとの連携についても期待していたのですが、その点あまりお話がなかったのがちょっと残念でした。
デモは面白かったですし、こういう製品がどういうログを収集するか、というのを意識しておくと普段の開発においても危険ポイントを意識できるのでは、と言う面でも大変勉強になりました。

内容多岐に渡り、楽しい一日でした。

ログイン | © 2005-2008 Visual Studio User Group. All rights reserved. 著作権について | プライバシーポリシー | リンクポリシー | お問合せ