NekketuLabs>Architect's Eye

Architect's Eye

現役ITアーキテクトが独自の視点で日々の出来事とNEWSについて語るブログ

アーキテクトに求められるTCP/IPの知識

2012/01/07 16:19:04
このエントリーをはてなブックマークに追加 Share on Facebook

昨年末、以前関わっていたプロジェクトでネットワーク周りでのトラブルが発生して、そのトラブルシューティングに奔走した際、TCP/IPについて不勉強だなと実感することがあり、今回はアプリケーションレイヤーの話ではなく、下のレイヤーのトピックを取り上げてみたいと思います。

顧客の基幹システムであり、現行IBMホストをWebシステムへとマイグレーションする案件なのですが、取引先からのSSLでのアクセス以外は基本的に企業内ネットワークで完結するため、セキュリティや性能要件としては、ECサイトなどに比べれば比較的ゆるいという状況です。

まだC/Oしてないこともあり、詳細は記述できないのですが、IEがネットワークエラーを検出してしまい、アプリケーションとしてはシステムエラーとして画面を返すという状態になりました。

その調査の過程では、クライアント、サーバー、ルーターやロードバランサなどのネットワーク機器にいたるまで、各種アクセスログの取得やクライアント側のパケットキャプチャの取得・解析まで実施しましたが、真因が判明するには至らず・・・。結局、アプリケーションレイヤー(フレームワーク)で特定のエラーコードにおけるハンドリングを実装して事無きを得たのですが、やはりネットワーク、特にTCP/IPの深い知識が必要だなと感じたという次第です。

続きを表示

押さえておきたいWebデザイントレンド2011

2011/11/12 16:55:39
このエントリーをはてなブックマークに追加 Share on Facebook

2011年は、日本においてもスマートフォンとタブレット端末が爆発的に普及した年だったと思います。私自身も、2010年にiPad、2011年にスマートフォンを入手して、これからのWebデザインは、クロスブラウザ対応だけでは凌ぎ切れないという実感が湧いて来ました。もちろん、ECサイトなどであればすでに対応済みのところも多いのですが、企業内で利用する基幹システムにおいても、徐々に必要に迫られてくると思っています。

そういうわけで、今回は2011年現在で「押さえておきたいWebデザイントレンド」と題して、SIを手がけるアーキテクトの視点から、3つのキーワードと参考になりそうなサイトを取り上げてみたいと思います。

続きを表示

JSF2.0 Faceletsカスタムタグとjarファイル分割

2011/11/04 00:46:37
このエントリーをはてなブックマークに追加 Share on Facebook

1年ちょっと前にJSF2.0の記事を書いたのですが、JavaEE6のWebフレームワーク標準であるものの、やはりまだJSF2.0についての日本語情報は少ないですね。私がJSF2.0を導入したシステムも、ようやく第1弾のカットオーバーを数ヶ月前に迎えて、幸い安定稼働しています。

さて、今回はJSF2.0、特にFaceletsによるカスタムタグを、Webプロジェクト(war)に含めない場合の実装について記述したいと思います。前回の記事において、XHTMLによるコンポーネントが作れるようになったと書いたのですが、画面共通で利用する汎用的なコンポーネントを開発者向けに提供したいと考えた場合、Webプロジェクトではなく、別途jarを分けて提供したいというケースは多いのではないかと思います。

これまで大規模プロジェクトでアーキテクトとして携わってきた経験上、開発者が勝手に共通コンポーネントを改修してしまったり、誤って削除するなど、開発者が触れる場所にあるのは、全体最適化および標準化の観点からも好ましくありません。またバージョニングの観点からも、例えばMavenにてフレームワーク系のjarはバージョニングにしているケースも多いでしょうから、やはりシステム共通レベルの実装はおいそれと開発者が触れないようにしておくほうがベターです。

とはいえ、別のjarのresourcesフォルダにXHTMLを置くだけでは、warの中に含めた場合と違い、カスタムタグとして認識されないので、一工夫必要になるのですが、Webで調べてもほとんど言及されてないところなので、今回取り上げることにしました。

続きを表示

スマートフォン対応 - (1)HTML5対応モバイルJavaScriptフレームワークの選定

2011/09/16 15:35:10
このエントリーをはてなブックマークに追加 Share on Facebook

通勤の際、スマートフォンを持っている人を持っている人を見かける機会が増えてきました。かく言う私も、今年2月にスマートフォンを購入しているのですが、やはりWebブラウジングしていると、PC向けサイトを見ると、文字サイズが小さいのでまずはズームして・・・なんてことをしなくてはならず、少々つらいものがあります。

もともとiPadは所有していたのですが、解像度がXGAなのであまり気にならず、特段PC以外の端末によるWebアクセスに対してはさほど興味がなかったのですが、スマートフォンを実際に利用してみるとやはり気になってきます。

例えば、Google、Yahoo!などの大手サイトは、当然スマートフォン対応を早くからしており、 PCと同じURLにアクセスすれば、自動的にスマートフォン表示(純粋にredirectしているだけのケースもありますが)になります。日本でも今年は爆発的にスマートフォンがヒットしていることを考えると、そろそろWebサイトのスマートフォン対応は真剣に考える必要があると思います。

また、ソーシャルゲームのGREEでも、ここ数ヶ月で既存ゲームのスマートフォン対応を済ませており、SI業界よりもWeb業界のほうが顕著に反応していることがわかります。

※参考:「個人のセンスよりも数千万人のデータの方を信じる」、これがGREEの作り方
※参考:2015年にはインターネット接続でモバイルがPCを上回る――IDC予測

前置きが長くなりましたが、NekketuLabsについても、先日スマートフォン対応を済ませました。今後、既存Webサイトのスマートフォン対応をするときの参考になると思いますので、私がどのように対応したのかを今回は取り上げてみたいと思います。

※スマートフォンからアクセスすると下図のように見えます。

続きを表示

アーキテクトから見たJSF2.0

2010/08/15 22:02:42
このエントリーをはてなブックマークに追加 Share on Facebook

今年の4月より、大規模プロジェクトのアーキテクトとして忙しい日々を送っています。

今回、現時点(2010/08)では日本では書籍どころか、Webでもさほど情報がないJavaServerFaces2.0(JSF2.0)をWebのフレームワークとして採用することにしました。元々、今の会社ではJSF1.1,1.2の実績はそれなりにあるのですが、2.0は初の採用になります。

JSF1.x時代といえば、ライブラリはApache MyFacesを利用し、その拡張ライブラリであるMyFaces Tomahawkを利用するという形態が一般的だったかと思います。今の会社でも多かったのはそのパターンで、Tomahawkに含まれる各種コンポーネントをさらに拡張してプロジェクト用のタグライブラリを作成して、それを開発者に使用させるという形でした。

JSF2.0となると、すでにRIではなくなったMyFacesではなく、新たにRIとなったMojarraを利用するというのが品質・パフォーマンス面でベターと判断し、今回のプロジェクトではMojarraの各種コンポーネントを拡張することにしました。別プロジェクトで開発したコンポーネントは当然Tomahawk依存ですから、ConverterやValidatorを除けば、ほとんど流用できるものはないので、フルスクラッチで開発しています。

さて、ここ数ヶ月、私自身がJSF2.0と格闘してきて、自分なりに色々と見えてきた部分があるので、これからJSF2.0を採用しようとしている方々向けに、何回かに分けて情報を提供できればと思います。今回はまずJSF2.0のメリットを紹介しようと思います。

続きを表示

工程・進捗管理ツールの選定

2009/10/04 18:49:17
このエントリーをはてなブックマークに追加 Share on Facebook

工程・進捗管理ツールと言えば、MS Projectが有名ですが、ライセンスの問題で使えないことも多いですよね。そこで、落ち着く先はExcelになるというのがある種のパターンなわけですが、ガントチャートのバーをオートシェイプで扱うのが面倒ですし、そもそもExcelで扱うものじゃないだろうという思いがあり、私は嫌いです。

私も今回のタスクでチームの進捗管理を行うということで、redMineを開発PCに入れて運用をしようとしています。とはいえ、顧客にredMineで出力したガントチャートを見せても、粒度が細かくてわかりにくいし、そこまでオープンにしたくない(笑)ということもあり、少々手間ではありますが、別のツールで顧客への進捗報告用のガントチャートを作成しようと思い、フリーのツールを調べてみました。
(前職ではGanntProjectを使っていましたが、ここ数年で色々と状況も変わっているだろうということで)

 

OpenProj 1.4

MS Projectのファイルの読み込みが可能で、最もMS Projectに近いツールです。リソース・工数管理もできて、機能的には申し分ないところまできていますが、日本語化がイマイチなことと、1枚に印刷することができないのがネックです。また、PDF出力のメニューはありますが、製品版じゃないと使えないので注意です。

顧客への提出資料という意味では、日本語&印刷がイマイチなのはつらいのと、イナズマ線がないのが厳しいかなという印象です。まぁ個人的にはイナズマ線はどうでもいいのですが、顧客が求めるケースが多いんですよね。。。

GanntProject 2.0.10

OpenProjほどではないものの、リソース管理はできて、MS Projectのファイル読み込みが可能なツールです。OpenProjよりは機能を絞っている分シンプルで使いやすいのですが、印刷時に「GanntProject」のロゴが入るのがちょっとなというところです。でも、数年前と比べて、大きく変わった感じはありませんが、確実に使いやすくなってきていますね。

Projectscape Free Edition

MS Projectとの互換性はありませんが、多くの人がこれだけの機能があれば十分というレベルをうまく見極めているツールです。フリー版では印刷時に無料版と強制的に印字されてしまうため、顧客報告には使用しづらいのが難点ですかね。せめて、製品名とURLくらいならよいのですが。

ともあれ、印刷&顧客提示がなければ、OpenProjやGanntProjectよりも使いやすいと感じました。印刷用に1ライセンス(自腹で)買うのもアリだとは思います。

Ganna

これまで紹介してきた中でも最もシンプルなツールです。とはいえ、リソース管理もできるし、印刷も期間と拡大率により、ある程度自由にコントロールできるところもよいです。凝ったことはできませんが、進捗のサマリを作るには必要十分かなと思います。

続きを表示

カットオーバー後の品質保証

2009/09/23 15:27:19
このエントリーをはてなブックマークに追加 Share on Facebook

現在私は、数ヶ月前にカットオーバーしたシステムの品質保証というやっかいな仕事に取り組んでいます。。。

まぁよくある話なのですが、納期最優先で気合いと根性によりなんとかカットオーバーして、クリティカルな障害は出ていないものの、ポツポツとしょぼい障害が発生するという状況が続いており、顧客から品質について見直せというクレームが出ているわけです。

ちなみに、アーキテクチャ視点から見たこのシステムは、Java製で、WebフレームワークはStrutsを使用しており、ORマッパーやDI・AOPなどの比較的新しい技術は利用していないため、ゴリゴリの実装になっていました。PLに聞いたところ、新技術を利用することによる技術的問題を抱える余裕がないため、枯れた技術で構成したとのことです。まぁ個人的には、枯れた技術を利用してももっとやりようがあったとは思いますが、後の祭りですね。

とりあえず、MavenやHudsonを導入して、JUnitで単体テストクラスを作って(今はありません)などというタスクになるといいうことで、引き受けたわけですが、提案資料を作っている最中に大きな障害が発生し、ソースレビューだとか機能テストのやり直しだとか、もうちょっと根本的なところから手を付けることになりそうです。

よくよく考えてみると、上記に挙げた単体テストの自動化&レポート作成などの仕組みは、開発フェーズにおけるプロセス改善として、品質を作り込むための事前予防的なアプローチです。対して、今回の私のミッションは、すでにカットオーバーしているシステムの品質をチェックして、問題があれば直すということで、最初から後手のアプローチになっているわけですね。

とはいえ、顧客に対して、「品質が上がってよかった」もしくは「品質に問題がないことがわかってよかった」のいずれかの納得感を持ってもらわねばなりません。これらを定量的に実感してもらうためには、何らかの品質指標を使うという手もあるのですが、これを可視化するとこちらとしても困るとか、今後もその指標に縛られるから嫌だとか、PM・PLからいちゃもんをつけられたため、工学的な手法も微妙だったりします。

そんなこんなで、内部的な事情も考慮しつつ、障害分析の深掘りから見えてくる傾向と対策により品質チェックをするという方向で提案しようとしています。これで顧客からどんな反応が返ってくるかドキドキですが。。。

■参考リンク

Wikipedia:ISO 9126

■参考にした文献

ソフトウェア品質保証入門

単体テスト仕様書の「表紙」

2009/08/20 21:28:55
このエントリーをはてなブックマークに追加 Share on Facebook

そこそこの規模の開発をやっていれば、単体テスト仕様書の作成は避けては通れないですよね。もちろん、私もこれまで様々なプロジェクトで様々なフォーマット、粒度、考え方で単体テストを実施する機会がありました。つい最近、私が2年ちょっと関わっていたプロジェクトが終わったのですが、最終フェーズで単体テスト仕様書の見直しタスクというものがあり、そのタスク内において、単体テストの実装と仕様書の乖離がないか、そもそも仕様書がなかったりしないかなどを実施していました。

今回このネタを語ってみようと思ったきかっけは下記のCodezineの記事です。

テンプレートから学ぶ 受注する開発者のためのテスト仕様書

まだ始まったばかりの連載のようなのですが、テスト計画書のアウトラインや第1回の記事を見て、トラジショナルな感じかなという印象と、大規模システムのときに意外と問題となる点についてはやっぱり書いてないなぁという印象を受けました。
(紹介した記事の趣旨は「テンプレートから学ぶ」なので、批判するつもりは毛頭ありません)

そんなわけで、私が経験したプロジェクトの中でこの単体テスト仕様書の「表紙」の問題について、少しご紹介しようと思います。

続きを表示

身近にあったSilverlightの活用事例

2009/08/16 04:20:00
このエントリーをはてなブックマークに追加 Share on Facebook

このサイトを設立するにあたり、お勧めの技術系書籍を楽天のウィジェットで実現しようと思い、楽天のマイページからアフェリエイトに行ったところ、楽天セレクトウィジェットというSilverlightを利用したものがあり、ついつい興味深さから採用してしまいました。当サイトのトップページ等で右側に表示されているものです。(表示されていない場合は、この機会にインストールはいかがでしょうか?こちらからどうぞ)

ちなみに、最新のSilverlightのバージョンは3で、先月にリリースされていますが、楽天セレクトウィジェットについては、下記の記事で紹介されている通り、ver2で2009/4/28からサービスインしていたようですね。

楽天市場アフィリエイター向けツール”楽天セレクトウィジェット”、4月28日サービスイン(Silverlight2)!

 

その他、ちょっと調べてみたところ、YahooやGyaOなど、動画配信サービスを中心にすでに採用され始めています。

マイクロソフトとヤフーの担当者に聞く「Silverlight」戦略

USENが「GyaO」をSilverlightへシフト,Mac対応とDRMに期待

 

RIAと言えば、まだまだFlashの牙城を切り崩すのは難しいだろうなぁと思って真剣にウォッチしていませんでしたが、BtoCでの利用が進めば、BtoBでの利用へと一気に進む可能性がありそうですね。

私がWPF/Silverlightと初めて出会ったのは数年前のMS Conferenceで電子カルテのデモを見たときでしたが、こうして日本でも採用が進んでいるところを見ると、やはり自分で試しておきたいところです。BtoBでも、情報系での利用を考えれば、かなり夢が広がるものの、画面設計とその標準化はしんどいかなぁと思ってしまいますが・・・。