エンジニアが発信する【ASP】の記事を集めました

エンジニアが作る最新ITブログ トップ>エンジニアの発信する【ASP】

2012年01月12日

大阪都構想をみて思った事

正確には橋下さんがやろうとしている事の一部を見て思った事を書こうと思う。
橋下さんがやろうとしている事、それは今のシステムを変えようとしている事だ。

僕は国を変えた事は無いが、現存のシステムを変えた事がある。その時の苦労を国を変える事と比較してみようと思ってこのエントリーを書いてみる。

1.顧客満足について
僕の作り直したものは企業向けのASPサービスである。なので、顧客は企業ということになる。
一方で国の顧客は国民である。厳密には違う部分もあるが、税金による収入を得て国民の生活を安定させていると考えれば国民が顧客となる。

この部分は国を変える時とシステムを変えるときで利害関係が違うかもしない。国を変える場合は国民の支持を得ないとならないので、国民の満足をまず考える。しかし、民間企業のシステムを変える時はまず経営者を納得させる必要がある。
な ので、本当に満足させなければならない人よりも利益を得る人から説得させる必要があった。(本来は経営者から経営方針が出てシステムを作る方が正しそうだ が、ITのシステムは現在の善し悪しを経営者が判断する事が難しく(※後述)現場から改善するケースが多々見られる。これは国も同様で住んでいる国民から 出てくるものだろう。やはり、実際に現場に居る人でなければ分からない事は多々ある。)
そういう意味では国も同様かもしれない。既得権益を得ている人を納得させるか、無理矢理既得権益を奪わなければならなそうだ。

僕はこの状態の時が一番辛いと想像していたので、経営者を納得させずに既存システムの仕事の合間に秘密で新しいシステムを作っていた。そのため経営者を説得するフェーズではある程度システムが出来ており若干説得は楽だった。
橋下さんはそれの構想を国民に示して選挙を勝ち取ったのだから、やはり凄いとしか言いようが無い。


僕がシステムを作り直したところ既存のシステムを使ってる人は新しいシステムを絶賛した。しかし、そのうちこのシステムも老齢化して同じスパ イラルが産まれるんじゃないかと作っていて思った。その理由は作り終わった後に「やっぱりここはこうした方が良かったかも」と言う点がいくつか出てきたと ころ。結局完璧なシステムは作れないんだと実感。

作り上げた政策で不完全な部分があると、他でどれだけ満足してもその部分についてだけ言及してくる輩が居るだろう。

2.悪いところの説明について
国のシステムの悪い所は専門知識が無いと分からない。例えば借金が増えて行ってる事は分かっても、その原因はなかなか分からない。素人目で言えば「不要な 予算を削れば良いんじゃないか!」とか言いたいがきっとそんな上手くは行かないんだろう。(実際に民主党が仕分けを行ってたが、あのやり方は上手く行った ようには思えない。。。。)
上記と言うのと同じように、僕が作り直そうと言ったシステムも悪いところの説明を素人にする事が難しかった。例えばプロに説明するなら「このER図を見れば、この部分が致命的で直せない事が分かるかと思います。」と図を書いて説明が出来るが、素人相手にER図と言っても通じない。
なので説明の仕方としては「今のままデータを蓄積するとそのうち溢れ出しますよ」とか言うしか無い。この適切ではない表現を使ってしまうと「溢れるとどうなりますか?」「そのうちってどれくらい持つの?」等と聞かれてしまうのでやはり説明が困難になる。

この悪い部分をいかに国民に説明をして支持を得るかと言う部分を考えるとなかなか難しい。

3.将来性について
現在の借金の増加を見ても分かる通り、現在の国は正常に動いているとは言いがたい。また上記のように僕が作り直そうとしているシステムもどれだけ持つのかの説明は難しい。「そのうち破綻する」や「そのうち動かなくなる」と言う表現を使っている以上、動かなくなるまでそのシステムを使えば良いのでは?と言う人は必ず出てくる。僕の場合は退職間近の人がまさにそうだった。
当たり前だが、動かなくなってから次のシステムを作ると言う事は政治の世界でもビジネスの世界でも通用しない。基本的に場つなぎが出来る状況にあるならそのシステムはそもそも使わなくてよかったのだ。
となると、どこかで必ずメスを入れなければならない。

このジャッジを出来る人が居ない。僕の場合はシステムを知っている事が第一条件にあるので「専門知識が無ければこのジャッジが出来ない=経営陣にはジャッジが出来ない」と言う図式が成り立ってしまった。(腕の良い経営者ならば上手く情報を集めてジャッジするのかもしれないが・・・)なので、必然的にこのジャッジを僕が行う事になった。
政治の場合は国民投票で決まるのかと思う。

この違いには善し悪しがあるだろう。専門家が判断して自分で責任を取るケースは、余程の馬鹿でない限りはそれなりの構想を練って居るため失敗はし難い。一方で専門外の人がジャッジをした場合はそれなりの賭け要素が入っていると思う。(この点に関して橋下さんは専門外の事についても相当下調べをしているように思えた。※本を出しているくらいですしね。)


僕がこのような事を行って一番感じたのは「失敗出来ない」と言うプレッシャーだった。周りには自信満々に振る舞っていたが、内心はびくびくだった。
上記にも書いている通り今のシステムでもまだ動くと言う状況で失敗をすると避難を浴びる可能性があるのだ。一企業のシステムを作り直すだけでも相当のプレッシャーを感じで仕事をしたくらいなので、橋下さんは相当なプレッシャーと戦って仕事をしているのでは無いかと思う。

力にはなれないと思うが、微弱ながら応援します。
橋下さん頑張ってください!

2011年10月03日

ASP.netでのアプリ速度

ASP.netで作成したシステムを納入/設定をする仕事もしている。顧客先のサーバーに導入しユーザー数によって課金する形式で、客先の全社LANに導入する場合と、そのシステム専用のLANを構築する場合とがある。

開発にはタッチしていないが、ソースコードを見る機会はたびたびある。なんじゃこりゃ?というひどいものである・・。というのは余談。

最近気がついたのだけれども、お客様先によって速度の差異が結構出るらしい、ということ。
あるお客様先で「XPだと速いけど7だと遅い」というケースがあり、私の担当ではなかったが現地へ行くことになった。そこで見たのは、今まで見たこともないほどそのシステムが高速に動いているXP。7はと言うと、今までから「これくらいの速度だ」と思っていた程度より起動や描画が遅めだな、というもの。
実はまだ7がXP並みには速くなっていなくて困ってはいる。
逆に、XPは遅くて7は速い、というところもある。

で、それからはいろいろな客先で設定をいじってはどうなるかをチェックしている。
ひとつ分かってきたのは
・ドメインを使っていないネットワークにおいては、LANの自動構成をOFFにすると速くなる
ようだ。

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなコードにサヨナラしよう

上記画面ではチェックが付いているが、これを外すと、ケースによっては3倍程度の高速化が図れた。
もちろん、まったく有効ではないケースもあった。


ネットワークの環境以外にもいろいろ確認すべき点はあるが、ASP.netってIEの設定に左右されるのだな、と実感したケースであった。

これからも実験をするとともに、情報は集める所存である。

  • なうで紹介
  • mixiチェック
  • ツイートする

2011年03月28日

Railsで中規模システム(?)を作ってみた。

Railsで中規模システムを作ってみたので、共有してみる。
作ったシステムはクラウド・・・というかASPというか。そんな感じのもの。
ターゲットは月間200万PVくらいのお客さんを想定したシステム。

使ったテクノロジーと困った点とかを書いてみる。
使ったのはRails 2.3.5。これを製作中にRails3が正式リリースされたので残念ながら3系は見送り。いずれバージョンアップするかもしれないけれど・・・。
MySQLは5.5系だけど、正直この辺りはどうでも良い。5.5系でinnodbプラグインが入ったのでバージョンアップしたがDBに関しては特になんでも良かった。この辺りはRailsの凄さだな。

で、開発環境はmongrelで本番環境はapache2.2+passenger。まぁ、基本構成かな。
ただし、passengerはviewにコメントを入れると誤動作を起こす事があったりmongrelと微妙に違う動きをするので結局vmをたてて開発環境でもcentis5+apache2.2+passenger構成を作った。
Linuxでしか動かない場合や、本番と挙動が違う時はvmとても便利。僕の隣の人はWindowsを見限ってubuntuを入れて楽しんでた。なんかmacみたいで楽しそうだった。

ちなみに困った点としてpassengerのメモリ消費量。僕が思った以上に食う食う。ASPサービスなのでメモリ消費量が多いとちと困る。という事でunicronを使ってみたけど・・・これも同じくらいのメモリを食う。
ASPのサービス上一つのお客さんに割り当てるプロセス数が限られるという制約が無ければunicronも良いと思うんだけど。。。(unicronは一つのサービスに大して複数のスレッドを起動出来る。passengerはスレッドが使えないのでプロセスを並列に並べるしか出来ない。本当にトラフィックが多いお客さんの場合はunicronは有効。ただし、特にそんな要件が無いならデフォルトの設定がほぼベストの状態であるpassengerがおすすめ。)

railsの開発はキャッシュが基本という事なので、何度も呼び出しがあるものに関しては
def test
@test ||= Test.find(:all)
end
というようなインスタンスキャッシュをあちらこちらに書くのが基本となった。
Railsには標準でSQLキャッシュが付いているが、なにげにキャッシュを呼びにいくまでのコードが長い。なので、極力インスタンスのキャッシュを使って速度を保つ。
また、each等でまわしつつhas_manyを使う場合はincludeが基本。
class Roop
has_many :sub
end

-----------------

roop = Roop.find(:all)
roop.each { |r|
r.sub.each { |s|
# 何かの処理
}
}
なんてコードがあるなら
roop = Roop.find(:all, :include => :sub)
は基本。このincludeはネストして使用する事が出来るので
roop = Roop.find(:all, :include => {:sub => :subsub})
なんてやる事も可能。
とにかくキャッシュをふんだんに使う。rubyでは明示的にstatic領域が使えないがTESTや@@testなどのコンストやクラス変数を使えばstaticが使えるので多いに活用させる。
こうする事によって、超情報量の多いTOP画面を

秒間4アクセスで0.3秒レスポンス

を実現。passengerのプロセス数を増やしてみたら秒間100アクセスでも問題なくさばけた。
とにかくRailsでは無駄な処理を省いて同じアクセスは全てキャッシュで返すという事を全体リクエストでも1リクエストでも行う方が良い。僕は「railsのキャッシュ技法」って本が書けるくらいキャッシュを上手く使った気がする。
(メモリとトレードオフになる場合もあるので、そこは注意。キャッシュして大切なメモリを失ってしまうと元も子もない。)

後はファイル管理の部分。ファイルの管理はどこも頭を悩ませるが、基本的にはファイル情報をDBで保持させて実態はapacheに参照させるのが王道。
しかし、冗長化の構成の場合はそうは行かない。NFS等で同期をとるかファイルサーバーを用意する必要がある。
NFSはマスタ(という表現が正しいか分からないが)が落ちてしまうと、ファイルをとりにいくプロセスが張り付きになるという危険を秘めているため今回は見送り。(これは突き詰めるとログを監視すれば回避出来るが、逆に言うとそれ以外の方法では回避出来ない。)
なので今回はファイルサーバーを作る方向で対応。その時に使ったのがwebdav。wevdavはhttpプロトコルだしrailsに標準でメソッドが用意されていたので実装は1日もかからずに終わった。
しかも、イメージのアクセスが全てファイルサーバーに行くのでアプリの負荷が低いという良い事づくし。(ファイルサーバーが増えるという欠点はあるが。。。)
railsと相性が良いと思うので、冗長化する際には是非検討してみてください。

検索は基本はDBだが、キーワード検索(like検索)等はsolrを使用。rubyにはrsolrがあるのでhttpリクエストは自動的に作ってくれる。solrではキーワード管理もそうだけど、第三正規化してると遅くて仕方が無いデータ抽出しているところでも活躍。すなわち、マスタデータは第三正規化で保持しておきインデックスを第一正規化で作るような感じ。
で、2グラム検索。senも入れてみたのだが要件に添えないのと精度がいまいちなのと開発が終わってるっぽかったのでキーワードでのインデックスは作らなかった。
ってか、solrでキーワードインデックスを作ってる人って辞書変更によるインデックス再構築をどうしてるんだろう?という疑問がわいた。。。ので、この辺りは2グラムを駆使して華麗にスルー。

i18nは今回未使用。その理由はASPのためキーワード等のカスタマイズをお客さんがやりたい場合があるため。
いやー。この恩恵がないのはちょっときつかった・・・。ここは手作りi18nで泥臭く対応。
しかし、この部分は色々工夫を凝らせて楽しかった。意外と手作りでも行けるのと、手作りだと融通が利く。

SQLはプログラム内部のリテラル禁止でやった。railsはsqlを分けるレイヤーが無いのでtownsoftプラグインという僕の屋号のプログラムで対応。
これは僕がrails開発を行う時に楽になると思う機能を適当に入れてるプラグインだ。欲しい人が居たらあげます。
で、これを使ってSQLファイルを分離。SQLファイルは分離したがモデルからfind系のメソッドと同じように呼べるようにしている。
これでコードとSQLの分離をはたして可読性があがった。(これはなぜRailsには無い機能なのだろうか・・・。僕はこのプラグインを相当重宝してるが。。。)

モバイル対応はjpmobileを使って簡単に出来た。このプラグインのfind_templateメソッドのhookメソッドは一度見ておいた方が良いかもしれない。
僕はこのコードを参考にテンプレート呼び出し部分にある仕掛けをして、テンプレートをアプリから変更出来るようにした。(rubyはクラスやモジュールのhookが当たり前に出来るので、頑張って継承やポリモルフィズムを使う必要がないのだ。この辺りはとっても楽だしコードの可読性が高い。)

sslについては何も言う事無いかな。ちょっと特殊な事をしているが、別に特筆すべき事は無い。
(証明書を安くするためには工夫が必要・・・。)

あ~。あと、ハマったのがrufus-scheduler。
こいつはアプリに付いてるスケジューラーなのだが、、、Rubyには決定的なバッチサーバーが無い。
基本的にはcronで対応だが、cronはASPとは相性が悪いしアプリで管理がしにくくなる。(アプリでcronを管理するスケジューラーもあるのでASPとかで無ければそれを使うと良いと思う。僕の場合はそうは行かなかったが。)
何が問題かというとrufus-schedulerはpassengerと共に生きてるので、、、300秒間アクセスが無ければ死んでしまうのだ。すなわち、一緒にrufus-schedulerも動かなくなるのだ。(設定で勝手に死なないようにも出来るが、ASPなので他のサービスにプロセスをとられる事も考えると万全ではない。)
こうなると、スケジューラーは効果をなくす。夜間バッチが動かなくなるのだ。
これはrufus-schedulerとdelayed_jobを組み合わせる事によって解決。(もともとdelayed_jobは使ってたし。。。)

で、そのdelayed_jobでもハマった。こいつは普通の使い方をしていれば良いのだが起動時にアプリのSQLが走ると起動しなくなる。
モデルのクラスメソッドにSQLを書くだけで動かなくなるのだ。(通常は無いが、has_manyの条件をSQLでとりにいったりすると動かなくなる。)


という事で使ったテクノロジーをまとめると・・・
ruby on rails 2.3.5
passenger
solr
delayed_job
rufus-scheduler
jpmobile
webdav
open_flush_chart
townsoftプラグイン
ssl
etc...

とかを使ってrailsで中規模サイトを作ってみました。
構成で困ってる人が忌ましたら、是非情報共有しましょう♩
(早くrails3もがっつり触りたいなー。でも、今のところrails3のメリットがそこまで無いな。KVSとかを使ってるところは恩恵があるのかな。)
同じテーマの最新記事
  • なうで紹介
  • mixiチェック
  • ツイートする

2011年01月28日

2011年01月27日のツイート

@nobusue: Groovy言語とAspectJの人気が今ひとつな本当の理由 - 達人プログラマーを目指して URL 2011-01-27 03:00:11 via Hatena @nobusue: WASの管理スクリプト開発入門 / ゼロからのスクリプト作成: Jython による IBM WebSphere Application Server 向けの管理スクリプトの作成 URL 2011-01-27 01:14:12 via Hatena @nobusue: m ...

2010年11月04日

昨今の品質(質)

ASP、SaaS、クラウドなどが最近は多くなってきており、様々なサービスがされている。
そこでも「質」というものが問われる。

例えば。
個人情報を取り扱うような場合。どんなことを考えるだろうか?
・通信を暗号化できる方がいい。
・ローマ数字が使える方がいい。マンションやアパート名で使われているケースがあるからだ。
・第2水準以上の文字が使える方がいい。言わずもがな、氏名に使われるから。

いわば、提供されるサービスで実現したいことでもある訳だ。しかし、数年前はこれすら公開されずに「ASPサービス」などと名乗っている企業があった。結局、SSLを使っている程度で、住所や氏名は使い物にならなかった。今もそれなりにやっているようだが、事情が苦しいのは見て取れる。

そう、質というのは、こういうものにも適用できる。


その質を合意するのがSLAである。サービスレベル合意書、つまりどんなサービスをどういうレベルで提供するか、を双方合意の上で決定するものだ。パッケージソフトではなく、開発するソフトウェアについてはこれを交わしておかないと運用に入ってからトラブルの源となる。
また、SLAで合意形成を図るには、RFPで要件を定めておく必要もあるだろう。

そうなってくると「顧客が求めたもの」だけが質の基準になる、とも言える。実際、そのように定義しているものもあるが、それだけでは不足するケースがある。


例えば医療機関で電子カルテや診療報酬請求のサービスをSaaSで提供する、とした場合。現場のドクターや事務方から、医療に関する要件は出てくる。ベンダーはその通り作る、というだけで事足りるかというと、不足するのである。
大きな問題として、医療機関はカルテ等の情報が「個人情報」であるという認識が薄い傾向にあり、また個人情報として「機微な情報」であるという意識も更に薄い。となると、そこから「機微な個人情報であるので、これだけ厳重にしないと」という要件は、少なくとも医療機関側からは出てこない。しかし法的要件という制約がある。
特にカルテは改ざんできない仕組みも要求される。また、SaaSなどを運営するデータセンターはプライバシーマークの取得が必須であるとか、いろいろ制約事項がある。また、医療系のソフトではインタプリタ言語はNGとされているということを知る人は少ないかも知れない(少なくとも数年前)。

質から要件の話にちょっとそれたが、「要件を満たす」ということも「質」の一部であるのだ。





同じテーマの最新記事

2010年11月02日

品質に対する感覚 2

IT、特にソフトウェアの技術者は品質といえば「バグがないこと」だけを考えがちであるが、そうではない。

話はそれるが、「全てのバグを発見することは極めて難しい」とされている。ただ、ソフトウェアはいわば論理式なので、数学的に正しければよし、とする考え方もある。あまりそこは細かく言い出すと宗教論争に近くなる部分もあるので、敢えて「顕在化しているバグがない」と表現している。

さて、顕在化しているバグがないなら、高い品質と言えるだろうか?これは、顧客に何を提供しているか、という観点で考えればまだ不足していることが見えてくるだろう。


それを考えて頂くために、2つの実例を挙げる。

------
例1:あるソフトウェア
展示会等では非常に使いやすく、業務効率が高そうなソフトウェア。
ただし、操作がもの凄く分かりにくい。画面の文言、挙動など、画面ごとにばらつきがあり、覚えにくいうえ、[ヘルプ]で表示されるのはバージョン情報のみ。
マニュアルもあるのだが、例えば印刷において、A0など、あらゆる用途で出力できるとマニュアル上に明記されているものの、通常の動作で出力できるのはA3,A4のみ。他のサイズは特種な操作が必要になる。


------
例2:あるツール
データを変換するためのツールで、客先のデータを入れ替える際にそのツールを使うようにという話があった。
しかし、実際に使うと動作が遅く、データ件数によっては顧客の業務を止めてしまうことになる。他の方法であれば現地での対応時間を5分で済ませられるものが、60~80分もかかる。



上記、利用者が「使いたい」と思うだろうか?

「それは品質ではない」と反論される方もいらっしゃるかも知れない。しかし、数ある品質の定義の中でも、上記は「品質」の範疇に入る。


現在、ASP,SaaS、クラウドなどと表現されるサービスに置き換えて考えればどうだろうか。使いにくい、時間がかかる、というのならそれは「サービスが悪い」のであり、そのサービスとは「サービスの品質」が悪い、ということになる。

なお、SQuBOKに記載があったが、今では「品質」というと誤解があるので「質」という言葉を使うように改めているらしい。

質に対する考え方、指標、観点はまだまだこんなものではない。実務との融合を図っていける情報発信をできればと考えている。






2010年09月05日

猛暑2

温度計が 39 ℃。
今年は酷いわ。

7/25 には 42 ℃と書いてある。
http://blog.livedoor.jp/aspplus/archives/51668544.html

8 月は記録する余裕なかったけど、いったいどれほどだったのだろう。
恐ろしい。

2010年09月02日

richcopyを使ってみる

世の中、Copyツールといえばいくつか有名どころがある。例えばFastCopyはその名の通り速さが売りだ。コンピュータの内部構造などを考えたプログラミング技法を用いているのだろう。速いだけではなくパソコンの資源をあまり食わないように配慮されていたりと、なかなか優れモノらしい。

さて、そんな中、マイクロソフトのrichcopyというこれまた無料のソフトウェアを見つけた。設定を保存できたり、ファイルの同期を取ってくれたり、中でも重宝しそうなのがFTPサイトとも接続できるらしい。元々はマイクロソフトの社員(日本人)が作って社内で使っていたものらしい。

早速ダウンロードをしてインストール。実行すると起動画面がマイクロソフトらしくない感じ。どこのお姉さんだ?社員?
さて、早速FTP接続しようと[オプション]を押してみる。しかし、ヘルプと明らかに画面が違う。

私が表示している画面

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


ヘルプに表示されている画面

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


なんでやねん!と天を仰いでも仕方がない。どこかのブログでアドバンスドモードにしないと云々とあった。そう、デフォルトではベーシックモードだから出ないらしい。その切り替えはメニューバーの[表示]で行う。
※アドバンスドモードの情報元はここ 感謝:http://mcp-exam.paslog.jp/article/1138274.html 


$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


これでヘルプと同じように表示されるようにはなった。


確かにFTPサイトともつながり、Webサイト上に置いてはいるが公開していない自前ツールを仕事場へコピーすることができた。

コピー元もフォルダを細かく設定できるなど便利だ。ただ、あまり複雑にするとエラーが出た。そのあたりは運用でカバーするとしよう。外部サーバーにWebサイトを持っている私には重宝しそうだ。



[richcopyに関する紹介]
http://www.atmarkit.co.jp/fwin2k/win2ktips/1152richcopy/richcopy.html
http://technet.microsoft.com/ja-jp/magazine/2009.04.utilityspotlight.aspx


[richcopyと他のコピーツールの比較]
http://netlog.jpn.org/r271-635/2009/08/_robocopy_richcopy_bunbackup.html
http://norimaki2000.blog48.fc2.com/blog-entry-781.html

[ダウンロード~開発者のブログページ]
http://blogs.technet.com/b/ken/archive/2009/06/12/4-0-216.aspx
同じテーマの最新記事

2010年08月25日

2010-08-24ブログから

  1. こんぶにかわってこんぶがツイート。 『たくさん ごはんを たべました 』#MEGU_GAME
  2. 【個人的に好きなツール】広告効果測定なら、アドエビス。オプションのログエビスも、簡単な指標を見るだけなら、使い勝手よし。一方で、安価なASPサービスなので、大規模クライアントになると、時々パフォーマンスで難が出ることも。稼働率100%でないと困る!という方は、ご遠慮願いたい。
  3. 2010-08-23ブログから: ナンバーズの中吊り広告。「たいそう、当たる」。理解するのに、数秒必要だった。「たいそう」って言葉、相当久々に触れました。 22:50 via Twitter for iPhone パート... http://bit.ly/cthisq
  4. 【ローソンARG】ルフィに代わって、ローソンARGワンピースアプリで仲間集めの冒険に出発しました! http://lawson.jp/op/#lawson_onepiece

Powered by t2b

同じテーマの最新記事

2010年08月19日

バッチ処理を考える

ExcelのShell関数を使い、処理が終わるまで待たせることができるのは先日書いたが、そうすると前の処理が終了してから次の処理を流す、ということも可能になる。対象はShellで呼び出せるものならいいので、DosコマンドでもPowerShellでも、実行形式のプログラムでもよいだろう。
そうすると、簡易的なジョブスケジューラーも作れてしまうのではないか。それもたいしたコードでなくてもいい。また、パラレルで動いていいものはパラレルで動作させることができるよう、スケジュールの記述を工夫すればよい。

ただ、問題がある。大型汎用機でのバッチ処理では、プログラム言語ではなくOSがエラーを返す。正常終了したか否かはプログラムに記載せずとも、ちゃんとジョブを呼ぶ側へ正常終了、ワーニング、エラーなどのステータスを返却してくれていたし、予定していた資源よりも多く使おうとしていたらそれも記録されるようになっていた。
オープン系ではそれをどうすればいいのだろう?プログラムではそれなりのコードを返すことはできる。しかし、ExcelのShell関数ではその取得は望めない。WaitForSingleObjectならどうだろうと調べると、なんかできるかもしれなさそうだ。
http://msdn.microsoft.com/ja-jp/library/cc429427.aspx

Excelを使う必要があるかというとないが、まあ、Jobを登録したり、状態をシート上で監視できるってことでどうだろう。そもそもサーバーにはOffice製品を入れないこともあるのでどうなんだか・・。


しかしながら、もしかするとプログラム側でも何か意識しておかないといけないかもしれないが、これで大型汎用機でのバッチ処理もどきができるかもしれない。本格的にやろうとするとジョブ監視プログラムも作成した方がいいのだろうけれど、・・。

PowerShellで変なツールをいくつか作っているので、それと組み合わせて試してみようと思う。
同じテーマの最新記事

エンジニアが作る最新ITブログ トップ>エンジニアの発信する【ASP】

メンバー紹介

タグパネル

ランキング

エンジニアが作る最新ITブログ DODA