6月 2006 - Posts

Adobe Flex 2 発表: やっぱ Macromedia の技術はおもしろい

Adobe Flex 2 が正式に発表されました。

初代の Flex は Adobe と合併する前の Macromedia が発売していた製品で、RIA (Rich Internet Application: マイクロソフトが云うところのスマートクライアントに近い感じの用語) のプレゼンテーション層を担当する開発・実行環境でした。

Flex は UI の構築に特化した製品です。
簡単なビジネスロジックは ActionScript で実装することが可能ですが、データベースの入出力等複雑なロジックを実現するためには別途 ASP.net や Coldfusion 等のアプリケーションサーバを用意する必要があります。

Flex は MXML という XML ベースのマークアップ言語と ActionScript を組み合わせて記述したファイルをアプリケーションサーバに配置することで、サーバサイドで Flash ファイルを動的に出力します。

マイクロソフトの製品に例えるなら、色々と違いはありますが、XAML と C#(VB.NET) との組み合わせで WPF アプリケーションを作成する感じでしょうか。

Flash コンテンツ開発環境としての Flash MX シリーズは素晴らしい製品なのですが、業務システムのフロントエンドとしての Flash コンテンツを構築するには冗長な機能が多く、「コーディング」作業でコンテンツを作成できる開発者に特化した開発環境としての Flex の登場は多くの開発者に歓迎されました。

そんなこんなで初代の Flex は凄く魅力的な製品だったのですが、欠点がいくつかありました。

まず、Macromedia の値付けが強気すぎてお客様への提案が困難でした。
開発環境と実行用のアプリケーションサーバを併せて180万円くらいの値付けになっていて、会社の部門単位や中小企業の社内システム用に素早く導入していただくような価格ではありませんでした。
せっかくイントラで歓迎されている Coldfusion を出荷しているのに勿体ないことだなあ、と思ったものです。

そして、開発者用の製品を謳っておきながら開発環境が貧弱でした。
初代 Flex の開発環境は Dreamweaver ベースの Flex Builder というものだったのですが、コードヒント(インテリセンス)の効きやデバッグ機能、そして安定性がイマイチな感じで全体的に残念感が漂っていました。

価格に関しては、今回 Adobe から発表された Flex 2 は SDK が無料で配布されることになりました(Eclipse ベースのビジュアル開発環境は有料)。
しかも、初代 Flex では実行環境として高価なアプリケーションサーバが必須だったのが、Flex 2 では任意となりました。
Flex 2 のコンパイラが開発者の手元で成果物の Flash を生成するようになったからです。
出来上がった Flash ファイルは単なる Flash ファイルですから、これを任意の Webサーバに配置すれば公開の準備が完了します。

開発環境も、有料ではありますが Eclipse 3.1 ベースの Flex Builder 2 が登場し、大幅な生産性の向上が図られています。

Flex Builder 2 を少しの間触ってみた感じだと、Visual Studio 2005 の気持ちよさには及ばないものの、初代 Flex Builder に比べると格段の進歩を実感できました。

ASP.net の生産性はもちろん凄いのですが、Flex 2 と Coldfusion を組み合わせたときの生産性と成果物のキレイさは経験しておく価値があると思います。

ちなみに、Coldfusion は CFML という XML ベースのマークアップ言語で Web アプリケーションを構築するための Java ベースのアプリケーションサーバです。
Adobe の Coldfusion は J2EE 技術を利用しますが、CFML を ASP.net の開発に活用できる BlueDragon という製品もあります。
例えば MySpace という巨大 SNS サイトは BlueDragon と .net の組み合わせで構築されています

私はマイクロソフト製品と殆ど同じだけの時間 Macromedia (Adobe) 製品を利用してきたので Macromedia 製品に強い思い入れがあります。
Macromedia の社名が消えたときは寂しく感じましたが、分かり易くて面白い製品を出す DNA は Adobe にしっかりと受け継がれているようなので安心しました。

Citrix TestDrive: the 2007 Microsoft Office system

Citrix TestDrive というサービスがあります。
Citrix Presentation Server (旧称 Metaframe) 技術 を導入前に Webブラウザから手軽に体験するためのトライアルサービスです。

使用するプロトコルなど Citrix の技術と Microsoft のリモートデスクトップ技術とで異なる点は有りますが、感覚的には リモートデスクトップ Web接続 を使ってソフトウェアの試用をする感じです。

その Citrix TestDrive で the 2007 Microsoft Office system を体験できるようになりました。

Take the 2007 Microsoft Office release out for a test drive!

リンク先で Test Drive Microsoft Office ボタンをクリックすると、TestDrive サービスが開始されます。

試用開始までの流れは以下の通りです。詳しくはウィザードの指示に従ってください。
1. Citrix Browser Plug-in (Citrix Web Client Plug-in) という Active-X コントロール をインストールする
2. Windows Live ID を入力する
3. 簡単なアンケートに答える
4. 試用開始

Office スイートは規模の大きな製品なので、ローカルのコンピュータにインストールして評価するのが難しい場合があります。
インストール作業無しでソフトウェアの評価が可能な TestDrive サービスは重宝しそうです。

CutePDF: 商用利用OKで無料の PDF 作成ソフト

@IT のフォーラムで 無料で利用可能な PDFファイル作成ツールを尋ねる投稿がありました。
@IT / VBで【PDF】一括変換及び一括印刷をしたい!!

私は GhostscriptCutePDF を組み合わせる方法を提案しました。
残念ながら質問者の要望を満たすことは出来ませんでしたが、CutePDF は商用利用も無料で可能ということで便利なツールです。

CutePDF の利用方法を紹介します。

まず、CutePDF のサイトから CutePDF Writer と Ghostscript をダウンロードします。
http://www.cutepdf.com/products/cutepdf/Writer.asp
ページの左側に [Free Download] [Free Converter] という2つのリンクがありますので両方をダウンロードしてください。

ダウンロードしたファイルを CuteWriter.exe, converter.exe の順にインストールすれば準備完了です。
ここまでの作業で Windows の [プリンタと FAX] に [CutePDF Writer] という名前で仮想的なプリンタが現れるはずです。

Office文書などを印刷する際にプリンタとして [CutePDF Writer] を指定すれば紙に印刷される代わりに PDFファイルが作成されます。
その際、PDFファイルの保存場所を決定するためのダイアログボックスが表示されるので、任意のパスを指定してください。

Posted by Ryosuke Uemoto | with no comments

Office Excel Add-in for SQL Server Analysis Services その4

Office Excel Add-in for SQL Server Analysis Services その3 の続きです。

今回は What-if分析 という機能を紹介します。
What-if分析 とは、「もしもアイスクリームの単価があと100円高かったなら、この四半期の売り上げはどうなっていただろうか」といった、任意のデータを変更することによる影響を分析することです。

What-if分析 は Office Excel Add-in for SQL Server Analysis Services (以下アドイン) 独特の機能というわけではなく、Excel 2003 も元々搭載している機能ですが、アドインの What-if分析 はクライアントの Excel で行った分析の結果をサーバのキューブに書き戻す機能を搭載しており、これが標準搭載の同機能との大きな差異となります。

Excel 2003 に標準搭載の What-if分析 機能については、マイクロソフトの Office Online にデモが用意されています。
動画による解説ですから What-if分析 がどういった機能なのかを理解し易いと思います。
デモ: Excel の "what-if" シナリオを使用して直感をチェックする

アドインを利用した分析に標準搭載の What-if分析 機能を活用できれば便利なのですが、アドインを利用して表示したレポート (分析用の、ピボットテーブルのようなUI) はセルが基本的に読み取り専用となっており、値の書き換えが必須となる What-if分析 とは相性が悪いです。
もちろん、Office Excel Add-in for SQL Server Analysis Services その1 で解説しました [自由形式に変換] 機能を活用すれば標準搭載の What-if分析 機能を利用することも可能です。

ただ、前述の通り、アドインの What-if分析 には分析時に活用した値をサーバに書き戻すことで分析値を再利用する機能を備えています。
標準搭載とアドインと、それぞれの What-if分析 に利点がありますから、適材適所で活用していくことになります。

それでは解説を開始します。
まずはアドインを用いてキューブのレポートを表示します。

Office Excel Add-in for SQL Server Analysis Services によるレポート

What-if分析を行うにあたって、影響を分析するために書き換えることの出来る値は、行と列の両方をリーフレベル (leaf-level: これ以上掘り下げられないレベル) までドリルダウンしたときに表示される値だけです。
書き換えてみたい値が表示されるレベルまでドリルダウンします。
今回は画面領域の都合で「1996年2月21日、水曜日」のデータのみを表示しています。

リーフレベルまでドリルダウン

What-if分析を開始するために、メニューバーを [キューブ分析] - [What-if 分析] の順に辿り、[開始] をクリックします。

What-if分析 の開始

今回利用したキューブはサーバ側で書き戻しの機能が無効に設定されているため、注意を促すメッセージが表示されました。

注意を促すメッセージ

メッセージのダイアログを閉じると、リーフレベルのセルが黄色になりました。
着色されたセルを任意の値に変更することで、その影響を分析していきます。

リーフレベルのセルが着色される

「スポーツ飲料パワー」の金額を「9000」から「30000」に増やしてみます。
セルの値を書き換えると、オリジナルの値がポップアップします。備忘録のようなものでしょう。

影響を調査したい値を書き換える

リーフレベルの値を変更しても、この時点でセル B4 に表示されている飲料の合計金額に変化がありません。
なぜなら、SQL Server の Analysis Services を用いたキューブ分析の場合、合計金額はクライアントサイドで Excel が計算するもののではなく、サーバサイドで Analysis Services が計算するものだからです。

合計金額を更新するためにツールバーで [レポートの更新] アイコンをクリックします。

レポートの更新アイコン

[レポートの更新] ダイアログが表示されてプログレスバーが再計算の進捗を教えてくれます。

レポートの更新ダイアログ

サーバサイドで合計金額が再計算され、結果が Excel に反映されました。

合計金額が更新される

最後に What-if分析 の後始末をします。
この操作を行わないと Excel を終了することが出来ません。

What-if分析を終了するために、メニューバーを [キューブ分析] - [What-if 分析] の順に辿り、[終了] をクリックします。
キューブの書き戻し機能が有効になっていれば、ここで [書き戻しのコミット] を選択して分析値を再利用することも出来ます。

What-if分析 のキャンセル

[レポートの更新] ダイアログが表示されてプログレスバーが再計算の進捗を教えてくれます。

レポートの更新ダイアログ

分析前の状態に戻りました。

分析終了

Developer Express CodeRush: Visual Studio 2005 のテキストエディタを拡張するツール

Developer Express Inc.CodeRush という Visual Studio 2005 のテキストエディタを拡張するツールを提供しています。

Developer Express CodeRush

バージョンが 2005 になって益々コーディングの支援機能に磨きがかかってきた Visual Studio ですが、CodeRush を導入することでコーディング時の細かな不便さが解消します。

それでは主な機能を紹介します。
機能が多いので今回は開発者を視覚的に支援する機能を紹介します。

視覚に関する機能
・Region Painting
C# の "region" ディレクティブ (VB.net では "Region") で囲まれた領域を展開したときの見た目を格好良く見易く変更する機能です。

・Flow Break Evaluation
C# の "continue", "break", "throw", "return" (VB.net では "Raise", "Return", "Exit Sub", "Exit Do"など) といったフローをブレークするキーワードを通過した後で処理がコードのどの部分へ繋がるのかを視覚化する機能です。

・Visibility Icons
"internal" や "protected" といったキーワードが宣言されたメンバの左側に、キーワードに対応するアイコンを表示する機能です。
表示されたアイコンをクリックすればコンテキストメニューが開き、一覧から選択するかたちでキーワードの変更を行えます。

・Quick Nav Preview
Ctrl+. の操作で現在開いているファイル中の型やメンバを一覧表示する機能です。

・Structural Highlighting
コードのブロックを構造的にハイライトする機能です。

CodeRush の製品紹介ページに画像付きの紹介文があります。
Flashアニメーションで実際の動作イメージを確認できる機能もあります。
CodeRush Visualization Tools

また、同じく Developer Express Inc. 製の Refactor! というリファクタリングを支援する製品が Sugi@ぱぱんぶぃびぃ Blog で紹介されています。
VB2005: Refactor! for Visual Basic 2005 Beta 2

ターミナルサービスの導入に必要なサーバのスペックを見積もる

ターミナルサービスの導入準備に役立つ情報 を補完する情報です。

HP が中小レベルの環境でターミナルサービスを導入する際に必要なサーバのスペックを自動的に見積もるツールをwebアプリケーションとして公開しています。

Small and Medium Business (SMB) HP ProLiant Sizer for Microsoft Windows Server 2003 Terminal Services

このツールの質問に答えるかたちでユーザー数等のパラメータを設定していくと、最適だと思われるスペックでサーバを提案してくれるという寸法です。

ただ、本当に必要なスペックというのは、どのアプリケーションをどういう頻度で実行するのか、ターミナルサービスを運用するサーバはターミナルサービス以外のサービスを兼ねることがあるのか、といった、このツールのパラメータに無い部分に大きく依存しますから、ツールが提案してくれたスペックを叩き台として活用するのが良いと思います。

MSDE 2000 でエラーが発生: TCP/IP ポートが別のアプリケーションによって使用される

運用中の MSDE 2000 にネットワーク越しのアクセスが出来なくなりました。
サーバのイベントビューアに下記のエラーメッセージが記録されていました。

日付:2006/06/06
時刻:16:31:28
ユーザー:N/A
コンピュータ:SERVER
説明:
19012 :
SuperSocket 情報 : TCP ポート 1433 でバインドに失敗しました。

早速 Microsoft のサポート技術情報を検索して、このエラーに関する情報を入手しました。
[PRB] TCP/IP ポートが別のアプリケーションによって使用される

原因
SQL Server が起動される前に、別のアプリケーションまたはサービスによりポートが使用されています (ポート 1433 は SQL Server 用に予約されていますが、Winsock アプリケーションは 1024 以降のランダムなポートを使用するため、Winsock アプリケーションがポート 1433 にバインドされることがあります)。

問題はどのアプリケーションが 1433/TCP を使用しているかです。
ググるとヒントになりそうな情報がいくつか出てきました。

TCP ポート 1433 でバインドに失敗しました。

SQL server port 1433

どうやらサーバに導入したウイルス対策ソフト NOD32 の IMON という通信監視サービスが原因のようです。
IMON を停止して様子をみてみます。

Posted by Ryosuke Uemoto | with no comments