関心空間はコンピュータのクチコミも満載!

新着

... もっとみる
ログイン | ユーザー登録(無料)

オーバーレイ・システム

オーバーレイ・システム

もともとは、昔の主記憶容量の小さなコンピュータで、プログラムを分割してロード実行するシステムのこと。

転じて、MacintoshのAppleScriptによる自動処理システム(「グローバルIPアドレス」の項、参照)における、プログラム集約化について私が「勝手に」呼んでいる概念。

AppleScriptによる自動処理システムは、そのプログラムレベルを高度化させていったところ、24時間ノンストップで勝手に作業を行うロジック・ロボットに進化。従来では手作業で行っていたような仕事を自動化し、マシンの台数を増やすことで「より高速」に「より複雑な」タスクを「自動で」こなせるようになった(これらを総称して、ロボットシステムと呼んでいる。フィジカルなロボットではなく、ロジカルなロボットとご理解いただきたい)。

ただし、システム稼働初期においてはデバッグや環境の調整などの都合上、1台のマシンで1つの作業フローを走らせることになる。とくに、システムの安定性を確保する必要から、1時間に1回起動するタスクでも専用に1台のMacintoshを割り当てておくことがなかば常識化していた(これには、非力な古いマシンでもタスクを回せるというメリットもあった)。

しかし、いいかげん台数が増えて2桁の大台に達するようになると、自宅で大量のMacintoshを常時稼働させることによるストレス……騒音の問題や電気容量の問題などがついてまわる。PC/ATより遙かに静かなMacintoshとはいえ、最近のG3/G4マシンの騒音はPCI Mac数台分に匹敵し、ワンルームでそれらを稼働させた際のノイズはストレスフルである。そこで毎日寝起きしている自分にとっては、かなり差し迫った問題(汗)。

そこで、バグが取れて安定稼働するようになったタスクたちを1台のMacintosh上に集約し、まったく性格の異なる各種タスクを切り換えながら実行するようにしてみた。これが、ここで言うオーバーレイ・システムである。

Webサイトを自動更新するタスクAでは、データベースとFTPアプリケーションが、ユーザーからのリクエストに随時応答するタスクBでは、データベースとメールアプリケーション……といったように、制御用AppleScript+使用アプリケーション+データ(ドキュメント)を1つのセットとして、これを切り換えながら起動・実行することで、従来複数台のマシンを要していた仕事を1台に集約化できる。

とにかく、単発のアプリケーション起動やファイルのオープンだけではこれらのスケジュール管理はカバーし切れない。既存のcron系アプリケーションの多くがそのレベルの処理をカバーしてくれないことから、「自分で作るしかないか(汗)」ということで、その部分は仕方なくAppleScriptで直書きしている。各タスクの処理優先順位の制御など、かなり簡略化した形ではあるものの実装を行っている(ただし、汎用性に欠ける専用のシステムになっている。なんてこったい!)。

そこで、高度というと語弊があるかもしれないが「機能のリッチなcron系アプリ」というものが必要であることを、USのAppleのAppleScript製品担当であるSal Soghoianの来日時に直接会って話をしたのだが、その必要性はうまく伝わらなかった。まことに残念。もう少しうまく説明できるとよかったのだが……。そこまで真剣に使い込んでいるユーザーがいると思っていなかったのだろうか(汗)

オーバーレイ・システムによって、常時稼働するMacintoshの台数を抑え、騒音を低下し、安眠を確保しようとしたこの試みも、結局のところ「どうせ、非同期分散システムが多いんだから、夜間はパワーオフ」という割り切りによって、技術的な努力ほどには成果を上げていない(「閉店の音楽」の項、参照)。

事実、稼働マシン数の削減という意味でのオーバーレイは、努力ほどの成果をもたらさなかった。だが、これ以上(11台)マシンを増やさないための努力としては、成果をあげているという評価はできるだろう。

複数タスクを1台に集約化するオーバーレイとはまったく別のアプローチとして、複数台に1つのタスクを分散して処理速度を稼ぐ「分散処理」の試みも行われている。

とくに、Classic MacOSにおいては、複数プロセス実行時のプロセス間の競合によるタイムロスが少なからず発生するため、AppleEventによる指令専用マシンとデータベース専用マシン、メール送信専用マシンといったように……本来は1台のマシン上で動いていたものを複数台に分散すると1台の時よりも良好なパフォーマンスを発揮するという検証データが得られている。

(もちろん、プロセス間の競合を最大限に回避するプログラム上の手法もある。だが、AppleScriptの実行速度が高速化した結果、ほぼ並行してアプリとスクリプトが処理を行う状態になっている……)

ただし、プロセス間の競合によるタイムロスの少ない構造を持つMacOS X上では、タスクがある程度の規模になるまでは、分散させるよりも1台のマシン上で集約的に稼働させた方がパフォーマンスが出る可能性がある(ネットワーク間の通信にかかるコストよりも単一マシン内でプロセス間通信するコストの方が低いというのが前提)。

現に、MacOS X上のEntourageに対してAppleScriptで大量のメール配信を指令したところ、同一のハードウェア上でMacOS 9を動かしてメール配信専用ソフトウェアを用いて送信を行うよりも、高速であることが実証された(送信が終了したのではなく、内部のいずれかのレイヤーでバッファリングしている可能性はある。ただし、AppleScript側もすぐに解放され、Entourageの送信も視覚的には終了しているように見える)。

Cなどの言語ではなくシステムレベルのマクロ言語であるAppleScriptによって、高度な処理を手軽に行うことができ、運用面での工夫によってさらなる成果を収めつつある。オーバーレイ・システムはその運用面での努力の1つといえよう。

オーバーレイ・システム

このページに
携帯でアクセス

2次元バーコード対応の携帯で読み取ってください

  • 2002/05/17更新
  • 2002/05/17登録
  • 2563クリック

このキーワードを共有する

トラックバック (0)

まだトラックバックされていません。

トラックバックURL
http://www.kanshin.com/tb/keyword-105146

キャンペーン


ロケットニュース24

未来検索 ガジェット通信
ページの先頭へ ページの先頭へ