Home > 保険システム開発室NEWS > 月別一覧

2008年09月のあいそるニュース

Rubyによるログ解析システム

2008-09-29 08:47

Ruby 当社ではRubyによる業務システムへの適用ソリューションを研究中です。 当初は社内にRubyの経験者がいなかった為、定期的に勉強会を行い、 まずは社内システムを開発してノウハウを蓄積しました。

当社はこのような学習目的でシステムを開発する場合は、完成後に社内で継続的に使用できるものを作ります。
当社がRuby言語で開発した最初のWebアプリケーションは、下記のオリジナルのログ解析システムです。 ログ解析システムは既に沢山世の中で出ていますので、他とは違う社内ならではのオリジナルの仕様を検討しました。

PWStats

当社は多数のお客様のサイトを保守しておりますが、開発したログ解析システムは弊社が保守しているサイトの ページビューを相対的に比較し、日別または月別にランキング形式に表示される機能としました。 相対的にデータがランキング表示されるアイデアは以外と面白く、毎日確認してしまいます。

またWebサーバのログだけでなく、社内のルータのログも解析する仕組みも作りました。 これは、社員がアクセスしている社外のWebサーバのランキングが表示される仕組みであり 社員に人気のWebサイトが毎日分かる仕組みになっています。このアイデアも面白く、やはり毎日確認してしまいます。

PWStats Error 尚、当社が初めてRubyで開発した本格的なWebアプリケーションであることを記念して、 万が一エラーが発生した場合は寺尾聡のルビーの指輪の音楽が流れるようになっています。

Posted by T.S

ローカルルータ

2008-09-22 08:10

社内ネットワーク構成 弊社は総務部を除いて大きく3つの部署が存在します。
それぞれの部署のLANはネットワークセグメントが分かれており、 その間にローカルルータが配置されております。

弊社のような小規模な会社ではローカルルータは安いブロードバンドルータで十分です。 社内ではBUFFALO BBR-4MGという超お手ごろ価格のブロードバンドルータをローカルルータとして2台使用しています。

価格は三千円台で購入できますが(現在は実売価格は二千円台)、Webの管理画面によるルーティングテーブルの設定等も可能で RIP等のルーティング・プロトコルにも対応しており、 単純なローカルルータとしては十分な機能です。速度的にも全く問題ありません。

BUFFALO BBR-4MG 有線ブロードバンドルータ

Posted by T.S

UMLはどの程度使われているか

2008-09-15 07:07

分析や設計でよく使用されるUMLはドキュメント成果物として実際の開発現場ではどのくらい使用されているのでしょうか。 大規模エンタープライズ・システム開発の現場は、プロジェクトの推進チームや管理チーム等によって成果物が定義される為、プロジェクトによってまちまちのようです。

さて、では弊社はどうかと言いますと、今現在主にドキュメント成果物として採用しているUMLのダイアグラムは以下の2種類のみです。 尚設計ドキュメントとしてのみ使用しており、分析では使用しておりません。

  • クラス図
  • シーケンス図

下図は弊社が作成した実際の設計書の一部です。
UMLドキュメント

弊社では小さなプロジェクトではユースケース記述と共にユースケース図を使用したりしますが、大規模システムで主に使用するのは上記2種類のみです。他にも配置図(デプロイメント図)等も作成したりしますが、それはプロジェクトで1枚か2枚でありそれ以外のダイアログラムは滅多に作成しません。

数年前には私たちも積極的にUMLを導入しようとした時期もありましたが、最終的にメリットを感じたダイアグラムは今のところ上記の2種類である気がします。

クラス図やシーケンス図を使用する理由は、クラスの静的構造やその動き等を表現したい状況がわりと頻繁にあり、それを表現する決められたフォーマットがUMLの他には無いからだと思います。逆にそれ以外のダイアログラムはそもそも成果物として表現する機会が少なかったり、直感的にもっと別のわかりやすい表現ができたりなどの理由が挙げられます。

リバースエンジニアリングで出力したクラス図 クラス図やシーケンス図に関して初心者がよく陥る失敗として、プログラム全体を網羅して正確に書こうとしてしまい、最終的に作成者の自己満足で終わってしまうことです。

現在ではリバースエンジニアリングツールにより自動的にこれらのダイアグラムを出力できますが、そのようにソース全体を網羅して出力されたドキュメントは未知のソースを分析するという用途以外にあまり意味がありません。

設計時に記述するクラス図やシーケンス図の役割は、重要なところを抜き出し余計なところを省いて記述することにより、設計として重要な部分を明確化することにあると思います。

よって私たちが設計時に記述するクラス図やシーケンス図は、プログラムの一部分であり余計な部分は思い切って省略して記述しています。また主にフレームワーク等の制御関連の処理でのみ使用され、ビジネスロジックで使用されることはありません。

無論上記は弊社の開発現場の話であり、私たちがUMLの長所を理解していないことが原因かもしれません。
ともあれ結局は要件定義書や設計書は内容が重要であり、表現方法のUMLを使用する/しないを問うのはあまり意味が無い事かもしれません。

Posted by T.S

サーバ監視カメラ導入

2008-09-01 21:57

弊社には会議室の奥に小さなサーバルームがあります。セキュリティを考慮し当然サーバ管理者が部屋やラックに施錠をしていますが、ちょっとした好奇心からUSBのWebカメラを利用して自作の24時間監視カメラを作りました。

最近のUSBのWebカメラはLinuxから簡単に使えるUVC(USB Video Class)という規格に対応したものが多く出てきており、しかもFedora9ではデフォルトでUVCドライバがインストールされているので、思いのほかすんなり動いてくれました。

上記の写真をよく見ると、Webカメラは吸盤とクリップで固定されているという手作り感に溢れています。またカメラは尊敬するブライト艦長が守っているので安心です。

この通り、安上がりなわりには綺麗な映像です。

夜間になると部屋が真っ暗になって何も分からないので、暗くなったら自動的に明かりがつくセンサーライトも設置しました。もちろん、省エネを考慮した省電力タイプです。写真の通り、夜でもなんとか映ります。

というわけで下記の通り、4,200円で素敵な監視カメラが作れました。

サーバ 社内に転がってた古いHPのサーバ 0円
OS Fedora 9(オープンソース) 0円
Webカメラ Logicool Qcam E 3500 約3,000円
ストリーミングサーバ FFmpeg(オープンソース) 0円
センサーライト ヤザワ センサーナイトライト NL4 約1,200円

今は監視カメラの映像が24時間録画され尚且つ最長一ヶ月自動的に保存される仕組みを、昼休みにコツコツ作ってます。

Posted by T.S

このページの上部へ