ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for 8月 2010

Microsoft TechEd 2010 レポート – Day 3 – 4 – Special Session「今だから話したいWindows Phone 7」

leave a comment »

このセッションは、TechEd 2010の公式セッションが全て終わった、18:30~19:00に行われた「~話したりないスピーカーが贈る30分のスペシャルメッセージ~」と題されたスペシャルセッションの枠組みで行われた。このスペシャルセッションは、Room Cで「Windows Azure & クラウドAll wrap up」が砂金信一郎、大森彩子、関田文雄、西脇資哲、平野和順のスピーカーにより、Room Dで「Silverlightこれだけは聞いてくれ!」が大西彰、春日井良隆、鈴木章太郎のスピーカーにより、Room Eで「WebMatrix "超"概要~Web開発最新テクノロジ~」が井上章、奥主洋、新村剛史、武田正樹、物江修のスピーカーにより、そしてRoom Bで表記のセッションが高橋忍氏により行われた。

高橋忍氏はたいへんなガジェット好きで、折に触れWindows Phoneについての情報を発信してきた。今回のTechEd 2010の基調講演でもWindows Phone 7のデモを行った。今回のスペシャルセッションを聞き、高橋氏がマイクロソフトのエバンジェリストの立場以上に、ひとりのユーザーとしてWindows Phone 7に期待していることが伝わってくる。だがこのセッションの詳細なレポートは控えることにしよう。ただひとつだけ言えることは、近い将来、間違いなく素晴らしい製品となって私たちの目の前に現れるだろう、ということだ。

Microsoft ZUNEの発表により大きくモバイル戦略の舵を切ったように見えるMicrosoftのWindows Phone 7には大いに期待したい。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

広告

Written by Yoshio Matsumoto

2010年8月28日 at 9:28 PM

Microsoft TechEd 2010 レポート – Day 3 – 3 – T4-303「OpenData Protocol(OData)とWCF Data Servicesによるサービスの作成」

leave a comment »

ODataとは、データ共有用のRESTfulプロトコルであり、様々な環境でデータを共有するための規約。AtomPubの拡張セットである。構造化データであり、CRUD操作ができ、URIによる複雑なクエリが実行できる。キーノートでも紹介のあった、netflixのカタログページもODataのサービスを公開している。

NetflixのODataサービス
http://odata.netflix.com/Catalog/

Microsoftの製品でも数多くがODataに対応している。OData対応サーバーには、SharePoint 2010、Windows Azure Strage、SQL Azure、WCF Data Services、WCF RIA Services、SQL Server Reporting Services 2008 R2がある。またOData対応クライアントとしては、Excel + PowerPivot、OData Explorer、OData PowerShell Explorer、iPhone OData Browserなどがある。

多様な環境、全ての層を横断したデータ接続には、ADO.NETからWCF + OData Serviceによる開発に移行する。WCF Data Servicesは、サーバーデータのCRUD処理に特化したものだ。ここでVisual Studio 2010でASP.NET Webアプリケーションを開発するデモが示された。サービスを作成し、クライアント側からExcelのPowerPivotを利用する。またSharePointからODataに接続し、データを送信するデモ、Silverlightで利用するデモが行われた。

WCF Data Servicesのセキュリティについては、認証、承認、許可のレイヤーがある。クライアントはサーバーに対してODataで接続すると、IISが認証し、ASP.NETでフォーム認証などを行い、WCF Data Servicesで許可をとる。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

Written by Yoshio Matsumoto

2010年8月28日 at 9:06 PM

Microsoft TechEd 2010 レポート – Day 3 – 2 – T7-403「最新OS WES7 WEC7 .NET Micro Frameworkによるクラウド時代のデバイスUX開発」

leave a comment »

マイクロソフトといえばPC、ASP.NET、クラウドと言われるが、Windows MobileやZUNEなどモバイルデバイスもある。

Windows Platform上のデバイス開発では、パフォーマンス重視のアプリケーションを作るとき、ネイティブコードでプログラムする手法から、.NET Framework上でInteropによってManaged Codeでプログラムを書けるようになった。これによってC#によるプログラミング開発生産性は飛躍的に高くなった。これにはWES、MEC、そして.NET Micro Frameworkがある。

WESは「Windows Embedded Standard」で、現在市場に出ているPOS端末、医療機器や製造機器などで利用されている。POS端末におけるWindows Platformの利用率は80%ほど、その他では60%程度である。MESは「Microsoft Embedded Compact」で、小型端末向けのリアルタイムOSだ。マルチCPUアーキテクチャであり、Windows MobileやZUNEに使われている。.NET Micro FrameworkはRAM64kByteでも動く極小のシステムだ。

ここでWES 7のデモが行われた。WES 7は中・大規模組込み機器向けのOSで、PCデスクトップとWebの共通開発環境がある。デモではDELLのPCにWES 7をインストールしたマシンを立ち上げるところ、IEでWebブラウジングをするところ、Silverlightが実行できることが示された。またセットトップボックスのデモもあった。

次にWEC 7のデモがあった。WEC 7は小型組込み用OSで、開発にはSilverlight for Windows EmbeddedでSilverlight 3相当のXAMLが扱える。Expression BlendでXAML開発を行い、Visual Studio 2008にインポートしてSilverlightアプリケーションを開発できるRAPID開発が可能だ。GUIのデザインはSWEプロジェクトテンプレートによって行う。できたプログラムはWindows 7の仮想マシン上でWEC 7を起動して実行するデモと、組込みデバイスで実行するデモの両方が行われた。

.NET Micro Frameworkのデモでは、Visual Studio 2010のMicro Frameworkのテンプレートから作る手順が示された。C#ネイティブ開発環境が整っている。作成されたプログラムは、エミュレータによる実行デモと、いくつかの実験デバイスでの実行が行われた。ここではXAMLは使えないので、UX設計はごりごりと作るしかない。

ネットワーク間連携は、WebサービスについてはデバイスにDPWS、Device Profile for Web Serviceを利用し、Webサイト側はWCFを使う。デバイス間のアドホック連携は、数多くのデバイスがあるとき、それぞれ接続が簡単にできることが必要だ。デバイスのネットワーク接続形態としては、様々な場所でのネットワーク接続を、操作レスの容易な接続が理想だ。このためのアドホック接続テクノロジとして、DPWS、Device Profile for Web Serviceがある。これを使うと、各デバイスはネットワークに接続したとき「Hello!」のブロードキャストをし、互いに接続を完了する。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

Written by Yoshio Matsumoto

2010年8月28日 at 8:58 PM

Microsoft TechEd 2010 レポート – Day 3 – 1 – T1-402「既存業務システムのWindows Azureへの移行」

leave a comment »

クラウドコンピュータの波がやってきて、既存のITシステムは大きな見直しを迫られている。社内で独自に構築された「オンプレミス」システムなのか、ネットワークに展開されたクラウドシステムなのか、どちらかを選択しなければならない時代になった。とりわけコスト削減の要求が厳しくなり、クラウドの利用を積極的に考えなければならない。

クラウドコンピューティングが現れはじめたとき、その期待から全てのシステムをクラウドに置くということが言われた。しかし現実にはそうでなく、自社内の「オンプレミス」なシステムとクラウドの両方を組み合わせることが現実解となっている。ではオンプレミスとクラウドの使い分けをどう考えればよいのだろうか。ここで業務システムを3つのタイプに分類して考える。

まず、金融などミッションクリティカルな業務システムである。これはクラウドには不向きである。それは、クラウドでは性能保証が難しく、可用性用件が非常に難しい、自社でのデータ保有や管理の要件があることが多い、などの理由からだ。具体的には可用性の面では、クラウドでは99.9%しかない。次にクラウドならではの新しいタイプのシステムとして大規模分散計算処理の分野がある。モンテカルロ法などシミュレーション、大規模ログ解析、統計分析、学術計算領域など、伸縮自在性を生かせる領域で強みを発揮する。しかし現実はこれら両極端な業務形態に分けられるものばかりではない。

三番目のものとして、従来からある業務システムがある。たとえば簡単な.NETアプリケーションはほぼそのままAzureに移行できるだろう。しかし本当にそんなに簡単に移行できるのだろうか、という声はよく聞かれる。たとえばデータセンターは現状では海外にしかない、可用性が一律99.9%の設定である、ストレージの容量制限がある、などだ。だがこれらの問題は、実際に使ってみないとわからない。クラウドコンピューティングのメリットは魅力だが移行してよいのか、移行できるのかという悩みがある。しかし今日の技術進歩を念頭におくと、クラウド技術の発展は急激におこっている。今できることが半年たっただけで急激に広がることは間違いないだろう。

クラウドの技術革新については、VM RoleとWindows Azure Platform Applianceという2つのキーテクノロジーが出てくると状況はかなり変わるだろう。VM RoleはIaas型に近いクラウドサービスの提供で、自由に環境を変えることができる、仮想マシン環境を提供するものである。Windows Azure Platform Applianceは、AzureをMicrosoftだけでなく、「プロバイダのAzure」や「自社内のAzure」といった形態も提供できるものだ。これによって地理的に近い場所での利用、物理的なAzureの制御、データの保有などが可能になる。

これらの見通しの中で、では、今、何をやるべきだろうか。それは「まず使ってみる」ことである。クラウドは進展が早く、現時点では適用できない領域が、半年、一年、数年後には大きく変化し、適用できる領域が大きく広がる可能性がある。また可用性が99.9%という数値があるが、では月あたり43分もシステムが止まるのか、と思うととても使えないと思うかもしれないが、実際はシステムが停止するわけではない。むしろパッチを当てることも止めることなくできる。つまり机上の検証では実感できないことが多く、その意味でも実際に使ってみる必要が大いにある。いざ導入が目前になり、検証を行うのでは遅すぎることになる。

クラウド化で何が変わるのか。たとえばツールの使い方などは技術資料を見ながら学べばよい。しかしクラウドの概念、設計やアーキテクチャの考え方のパラダイムシフトが必要になる。パラダイムシフトのポイントは3つにまとめられる。まずデータストレージ選択の考え方、次にオンプレミスとクラウド連携の考え方、三つ目に運用監視の考え方である。

まずデータストレージだが、クラウドになって最も厄介なものはデータベースの移行だ。RDBMSの基本思想は「一事実一ヶ所」である。オンプレミスのデータベースはスケールアップが基本だが、クラウドではスケールアウトを考え、この思想は全く反対だ。クラウド環境では「機能」「容量」「価格」の3つを同時に満たすことは不可能だ。たとえばオンプレミスのデータベースでは、サーバーの性能を良くすることで「機能」と「容量」の両方を高めることができるが、この場合は「価格」を下げることはできない。クラウドではSQL AzureデータベースサービスとWindows Azureストレージサービスがあり、前者は「機能」は高いが「容量」は50GBまでの制限がある。後者は「機能」は低いが容量は大きく使える。そこでデータをAzureにおくときは、業務データはSQL Azureデータベースサービスにおき、ログなど大量に蓄積する必要のあるものはWindows Azureストレージサービスに置くといった使い分けを考える。もし業務データの規模が大きく、SQL Azureデータベースの容量制限をクリアしたい場合は、データベースの水平分割が必要である。

オンプレミスとクラウドの連携をするときは、「データ連携」「処理連携」「認証連携」「運用連携」の4つの考え方が必要だ。「データ連携」ではマスタデータの同期が必要である。「処理連携」ではAppFabricサービスパスを活用したシステム間連携、「認証」ではADシングルサインオンを実現するフェデレーション認証がある。AppFabricサービスパスとフェデレーション認証は連携に関するキーテクノロジである。AppFabricサービスパスは、オンプレミス側とクラウドからの両側からAppFabricサービスパスへの接続を張るもので、オンプレミスとクラウドのデータ連携を行うために、オンプレミス側のファイヤーウォールの受信ポートを解放する必要がない技術だ。フェデレーション認証はAzure上のシステムに社内ADアカウントでシングルサイオンのログインができる技術だ。

運用監視考え方がクラウドでは大きく変わる。オンプレミスの運用では管理者はアプリケーションからミドルウエア、インフラまで全部を対象としている場合が多いと思われるが、クラウドではミドルウエアとインフラの管理はMicrosoftにまかせればよい。管理者はアプリケーションの運用に専念できる。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

Written by Yoshio Matsumoto

2010年8月28日 at 8:10 PM

Microsoft TechEd 2010 レポート – Day 2 – 3 – T4-304「Microsoft BIを支えるReporting Services & PowerPivot~松本美穂のすぐに使えるBIシステム構築の技~」

leave a comment »

最も最初のバージョンからMicrosoft SQL Serverにかかわっており、名著「SQL Server 2000でいってみよう」など多くの技術書の著者松本美穂女史によるセッション。

PowerPivot for Excelは、サーバー側の作りこみが不要な点がパワフル。インメモリアーキテクチャで高速なデータ処理が実現できる。64ビットCPUのパワーを十分に利用することができる。またExcelのデータ上限100万件を超えるデータも対応している。

PowerPivotの概要が説明されたあと、実際にデモが行われた。画面に表示されたExcelのブックには、なんと一千万件のデータが格納されている。さらにこのテーブルをスクロールするのも高速で、まったくストレスなく表示される。これはたいへんな驚きだ。またパワーピボットの表示もすごく早く、グラフの追加や描画の更新もとても速い。このようなパフォーマンスを得られるのは、すべてインメモリで実行しているからである。したがってコンピュータのメモリが小さいと、このPowerPivotのパフォーマンスの恩恵を得ることはできない。

PowerPivotで大量のデータを分析するとき、ExcelのPowerPivot自体は高いパフォーマンスで動作しても、データの更新には時間がかかるだろう。SQL Serverへの負荷もある。そこでPowerPivotを使う場合は、分析に必要なデータだけを選んで取ってくる設計をしなければならない。またデータベースの設計者としては、このようにユーザーがExcelで大量のデータを取れる時代になったことから、データベースのセキュリティにはこれまで以上に配慮しなければならないだろう。

PowerPivot for SharePoint 2010では、分析レポートの共有とセキュアなデータ格納、バックグラウンドでのデータ更新のバッチ処理、Excel ServiceによるWebブラウザベースの共有、などがあげられる。PowerPivot for SharePointをインストールすると、テンプレートとしてPowerPivot Siteができる。管理はPowerPivot管理ダッシュボードで行う。

SQL Serverの機能拡張はいろいろあるが、特にReporting Serviceは強力に進化している。特にSQL Server 2008 R2からは、Bingマップ連携、データバー、インジケーターなどデザイン面の拡張など大きく拡張された。このReporting ServiceによるBIシステムでは、共有データソース、共有データセット、共有レポートパーツを利用してレポート作成時間を短縮することができる。またレポートキャッシュまたはクエリキャッシュ、キャッシュの更新計画機能などキャッシュ機能を活用する。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

Written by Yoshio Matsumoto

2010年8月28日 at 8:02 PM

Microsoft TechEd 2010 レポート – Day 2 – 2 – T6-302「Expression Blend 4でデザインするSilverlight 4アプリケーション」

leave a comment »

このセッションは、マイクロソフトのエバンジェリスト高橋忍氏により、Microsoft Expression 4による開発手法を初心者にもわかりやすく、かつ実務で使えるTipsを満載で紹介された。とても贅沢なセッションだった。

Expression Design 4で作成できるSilverlight 4アプリケーションで利用できるコントロールの種類は数多くあるが、実際に必要十分なコントロールの種類は60くらいだ。このように数多くのコントロールが使えることは魅力だが、むしろコントロールの種類の多さよりも、カスタマイズ性のよさを強調したい。

Silverlight 4で提供されるコントロールは、デザイン面の数多くのプロパティがある。このうちいくつかはVisual Studioでも扱うことができるが、やはりExpression Blendを使えば数多くのプロパティを編集することができる。たとえば画面上にテキストを作ったとき、これをパスに変更すれば、様々なプロパティを編集してデザインを自由に変更できる。Expression Blend 4の「アセット」にはたくさんのオブジェクトがあり、これをそのまま利用することもできるが、より本格的にデザインをするためにはExpression Designを使う。Expression Designで作成されたデザインはXAMLのデータで構成されているので、これをエクスポートしてExpresshion Blendにインポートするか、編集中のオブジェクトをコピーして貼り付けてもいい。すでにデザイン経験のあるデザイナーはPhotoshopやIllustratorでデザインを作成するが、これもExpresshion Blendにインポートすることができる。このとき、Photoshopファイルのレイヤーもそのままの形でインポートされる。

アニメーションは状態の変化に対する表現であり、タイムラインに設定されたキーフレーム間のアニメーションである。マークやテキストなどが移動するアニメーションは、キーフレームに設定されたデザインの位置を画面上でドラッグして移動するだけである。直線的な動きに「イージング」を与えて躍動感のあるアニメーションにすることも簡単だ。これらのアニメーションは「ストーリーボード」というオブジェクトに保存される。

複数の図形に統一的なイメージを与えたい場合は、デザインを「スタイル」というテンプレートに保存し、適用することができる。これは図形を右クリックして「スタイルの編集」を選択し、「空アイテムの作成」で作成する。スタイルを変更してしまった後に「空アイテムの作成」をしてしまったときは、「ローカル値に変換」オプションでスタイルをセットすることができる。

よく使われる重要なオブジェクトに「ボタン」がある。作成した図形を「コントロールオブジェクト」に変換することは簡単で、図形を右クリックし「コントロールの作成」で変更することができる。これで図形をクリックしたときにボタンの機能を果たすことはできる。しかしボタンをクリックしたときに、押されたという実感をユーザーに与えるデザインはそれなりに作成しなければならない。ボタンには「Normal」「MouseOver」「Pressed」「Dissabled」といった4つの通常のステートと、「Unfocused」「Forcused」のフォーカスステートがある。たとえばマウスをボタンに重ねたとき「MouseOver」のステートに遷移するので、この状態ではボタンを少し大きくするデザインを、マウスをクリックしたときは「Pressed」のステートに遷移するので、こちらは右下に少しずれたデザインを適用する。こうすることで通常のボタンがクリックされたデザインができる。こうした一連の設定は個別に行うと煩雑であり、かつ異なるデザインになると統一性が損なわれるので、各状態の違いの部分だけをテンプレートとしてパッケージできるようになっている。また遷移時間の設定もでき、イージングも適用することができる。

2つのコントロールを特定のプロパティで関連付けると、スライダコントロールを動かすことでプログレスバーの長さが変わり、テキストボックスの数値を変化させることができる。これらもコードを記述することなく、画面上のプロパティを編集することで実現できる。

メディアエレメントはビデオ再生のオブジェクトである。このオブジェクトには動画の再生、停止などのメソッドが実装されている。これらのメソッドにアクセスするのが「ビヘイビア」の概念である。このようにメソッドを持つオブジェクトからボタンコントロールにビヘイビアを適用するとき、二重丸のアイコン「アートボードピッカー」を利用すると直感的に適用することができる。アートボードピッカーをドラッグしてビヘイビアをコントロールしたいボタンオブジェクトにオーバーするのだ。

パネルコントロールは複数のエレメントを子要素として持ち、グリッドを使ってデザインを決定することができる。動的にユーザーに操作させたくないグリッドエリアは、ロックアイコンを使って動かないように固定することができる。

画面を遷移するコンテンツを作りたいときは、FrameコントロールとPageコントロールを使う。Frameコントロールの中に複数のPageコントロールを作成し、切り替えるという手法だ。

データの取り扱いについては、SilverLightで扱うことができるデータはXMLデータソースかオブジェクトデータソースである。データを利用したアプリケーションを作るときは、サンプルデータツールを使ってデザインすることができる。

最後に実用的なSilverlightアプリケーションとして、写真を表示する「フォトビューワー」を作るデモが行われた。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

Written by Yoshio Matsumoto

2010年8月26日 at 11:59 PM

Microsoft TechEd 2010 レポート – Day 2 – 1 – T6-302「Visual Studio 2010の新しいテスト機能によるソフトウエア品質の向上」

leave a comment »

Visual Studio 2010はテスト機能が充実している。数多くの新機能をもつVisual Studio 2010のテスト機能について、マイクロソフトのエバンジェリスト近藤和彦氏がセッションを行った。

IntelliTraceはデバッグの履歴を保持し、デバッグの途中で過去の状態を確認することができるものだ。今日的なソフトウエア開発では、作成したプログラムのテストを開発者だけでなく他のテスト実行者によって行われることもある。このとき、開発者ではないテスト実行者が行ったテスト結果も、統一的に管理してみることができるものだ。

アプリケーションを作ってテストをするとき、変数などの値を見たいことがある。あるアプリケーションのテストをし、何らかのエラーがおこったとき、もう一度最初から実行しなおし、気になる変数の値を参照したいと思ったとする。このとき調べたい変数がアプリケーション内部の固定された変数であればいいが、データベースの値であって、しかも実行のたびに変化するようなデータであったときには、再度実行した場合でも最初の結果と同じ結果を得ることはできない。このようなとき、IntelliTraceでは実行ステップを順番に元に戻りながら値を確認することができる。

IntelliTraceでは、ツールのオプションで収集する情報を取捨選択することができる。ただし収集する情報が多ければ、記録されたデータサイズも大きくなるので、データサイズには注意が必要である。

次に「コード化されたUIテスト」がある。「テスト」メニューの「新しいテスト」で「コード化されたUIテスト」を実行すると、画面の右下にいくつかのコントロールのアイコンが表示される。このアイコンのうち「レコーディング」のアイコンをクリックすると、アプリケーションの動作を記録することができる。これを「記録されたステップの表示」で見ることができ、ビルドして実行するとUIテストの操作が再現される。「アサーションの追加」オプションを利用すれば、テキストボックスの値などアプリケーション中の特定のコントロールの値が正しいかどうかを決めてテストすることもできる。

これだけでは単にあるテスト操作の記録にすぎないが、自動生成したパラメーターを変更し、テスト条件を変えて数多くのテストケースのテストを自動実行することもできる。テストしたいパラメーターの値をCSVファイルで作成しておき、データ接続文字列の定義をして異なる条件でのテストの自動実行を実現できる。

Visual Studio LabManagement 2010は、テスト環境の仮想化と一元管理を実現するサーバーだ。ソフトウエアのテスト環境は、個々のテストマシンの状態によって結果が異なる場合がある。あるテスト環境でエラーが報告されても、別のテスト環境ではエラーが再現されないこともあるだろう。開発者とテスト担当者が異なるとき、これらの問題は深刻である。そこで複数のテスト担当者がいても同じテスト結果が得られるように、テスト環境を仮想化し一元管理することに意味があり、問題の再現性が向上する。またOSのバージョン違いなど様々なテスト環境を作ってテストすることもやりやすい。具体的にはバーチャルマシンを作り、組み合わすことでテスト環境を構築する。バーチャルマシンはいつでも復元することができるので、常にクリーンな環境でテストを繰り返すことができ、問題発生の瞬間のレジストリの値などスナップショットを記録することもできる。

Microsoft Test Manager 2010は、テストの計画、実施、追跡などのテストプロセスを包括的に管理するものだ。まずテスト機能としてテストの計画を立て、それぞれのテストに対して具体的なテスト項目を記述していくことでテストプロセスを組み立てていく。できたテストプロセスは「夜間バッチ」によって全体テストを自動で行うことができる。もっとも上位にあるのはTeam Foundation Serverで、その下にチームプロジェクト、テスト計画、テストスイート、テスト計画、と構築していく。「構成の定義」でテストしようとするマシン環境のハードウエアとOS、ブラウザなどソフトウエアの構成を定義する。また具体的なテストケースを「テスト設定の定義」で作成する。この「構成の定義」と「テスト設定の定義」をマトリクスで組み合わせ、さまざまなケースに対応するテストを実行させる。テストケースやテストスイートをグループ化してまとめてテストをしたり、テストケースに優先順位を割り当てる、手動テストの担当者を割り当てる、などのマネジメントもできる。

Microsoft TechEd 2010 Japan 公式サイト
http://www.microsoft.com/japan/teched/2010/

Written by Yoshio Matsumoto

2010年8月26日 at 11:50 PM