Macintosh Developer Online (MDOnline)


2001年10月25日発行号 - LiShellでコンテンツ配信



昨日、ちょこっと書いた、ソニーとトヨタが開発した自動車の「pod」は、AIBOのコンセプトを自動車に取り入れたということだそうです。LiShellの発表会に行ってきました。Apple出身の方ががんばっておられます。iShellはどちらかと言えば、世代的には前のものになりつつありますけど、それをベースにブロードバンドコンテンツ系のソリューションに仕上げているあたりはなかなか面白いところです。しかも、開発ツールをガリガリと使うのではないテイストが、やはり今風ではないかと感じました。
さて、MDOnlineの購読料の更新処理についても、新料金を適用するようにしました。更新は、パスワードを入力して、サイトにアクセスして下さい。基本的には今までよりも若干安くなっていますが、支払い方法によって価格は変動します。それで、BitCash対応はもう少し時間を下さい。来月の前半までには対処したいと思っています。ちなみに、WebMoneyもBitCashも、物理的な「カード」を買う以外に、オンラインでクレジットカードを使って、「バーチャル」なカードを購入することができます。従って、WebMoneyやBitCashでもステップは若干増えるとは言うものの、クレジットカードでの購入も可能となっていますし、購入者の方々は椅子に座って全ての作業を行なえます。今、WebMoneyはちょうど、10%増量キャンペーンというのをやっていますので、たとえば、8000円分を購入すると、+800円分の増量となっています。だから、7500円分を購入すると、8250円になるので、それで1年分の更新はできてしまいますね。このキャンペーンは年内いっぱいだそうです。
(新居雅行 msyk@mdonline.jp


大津真=XはUNIXでサーバで》SSHの使い方(1)

【MDOnline読者様限定コンテンツ】

――――SSHで安全なリモートログイン
かつては、「リモートログインはTelnetで」というのが一般的でしたが、世の中ぶっそうになるとそういうわけにはいかなくなってきました。Telnetはパスワードや通信が暗号化されずにそのままネットワーク上を流れるからです。ちょっと大げさなたとえですが、自分のキャッシュカードの暗証番号を背中に貼り付けて歩いているようなものです。そんなわけで、Mac OS Xでは、Telnetサービスは基本的に使用しません(/etc/inetd.confを編集してtelnetの行を有効にすればTelnetサーバを立ち上げられますが)。Telnetに代わるサービスとして、現在主流になってきているのがSSH(Secure Shell)です。SSHを使用すると、すべての通信を暗号化できます。公開鍵暗号方式を使用したより安全な認証を行うことも可能です。さらに、SSHのパッケージに含まれるsftpは従来のFTPに置き換わるファイル転送コマンドです。これを使えばアカウント情報を平文で送信するFTPともおさらばできるというわけです。
ということで、今月はSSHの使い方を説明しましょう。

――――SSHサーバを立ち上げる
Mac OS XではSSHのオープンソース版であるOpenSSHが用意されています。SSHはサーバとクライアントコマンド群から構成され、[システム環境設定]の[共有]を開き、[アプリケーション]パネルで[リモートログインを許可する]にチェックを付けるとSSHサーバが立ち上がります。

◇OpenSSH
 http://www.openssh.com/

システムを再起動する必要はありません。すぐにSSHのデーモン(sshd)が立ち上がります。これは、ProcessViewerなどでも確認できますが、Terminal上では次のようにするとよいでしょう。

% ps ax | grep sshd 〈return〉
428 ?? Ss 0:00.62 /usr/sbin/sshd
617 std S+ 0:00.01 grep ssh

――――とりあえずリモートログインしてみよう
SSHサーバが立ち上がったところで、同じくSSHがインストールされた別のマシンからログインしてみましょう。マシンが一台しかないという方は、ホスト名に「localhost」を指定して自分自身にログインすることでSSHの動作を確かめられます。コマンドは「slogin」もしくは「ssh」使用します。

slogin ホスト名

初めてホストに接続すると、「The authenticity of host ’ホスト名’ can’t be established.」といったワーニングが表示されます。これは相手先のホストのフィンガープリント(ホストの公開鍵)がローカルマシンに登録されていないが接続してもいいかという意味です。「yes」を入力すれば、~/.ssh/known_hostsに登録され次回からは聞いてこなくなります。このフィンガープリントは接続しようとしているホストがほんとうに正しいかどうかを確かめるのに使用されます。たとえば、DNSの改ざんなどにより目的のホストになりすました悪意のあるホストに接続しようとすると、フィンガープリントが異り再びワーニングが表示されるのでその時点で気づくわけです。
次にホスト「ibook」にsloginコマンドで接続した例を示します。

% slogin ibook〈return〉
The authenticity of host ’ibook (192.168.1.31)’ can’t be established.
RSA key fingerprint is 41:ac:13:c2:09:e2:68:6d:5a:21:68:bd:d2:07:73:3f.
Are you sure you want to continue connecting (yes/no)? yes ←yesを入力
Warning: Permanently added ’ibook,192.168.1.31’ (RSA) to the list of known hosts.
o2@ibook’s password: ←パスワードを入力
Welcome to Darwin!
[ibook:~] o2% ←ログイン完了!

(続く)
[大津真]

関連リンク:http://www.o2-m.com/
カテゴリ:暗合化, ネットワーク管理, 大津真=XはUNIXでサーバで


大津真=XはUNIXでサーバで》SSHの使い方(2)

――――公開鍵暗号方式で認証する
さて、このように単にsloginコマンドを使ってリモートログインするだけでも通信は暗号化されるのでセキュリティは高まります。ただし、パスワードを使ってのログインでは、そのパスワードが漏れてしまえばだれでもログインできてしまいます。UNIX系OSのパスワードファイル(/etc/passwd)の脆弱性は前々から指摘されています。最近ではシャドウ化されているとはいえ、多くのシステムでは最大文字数が8文字と短く、またインターネット上で出回っているクラッキングツールを使えば簡単に解析できてしまうと言われています。そのためSSHを使用する場合には、ユーザ認証により安全な公開鍵暗号を使うのがふつうです。
公開鍵暗号方式では「公開鍵」と「秘密鍵」という2つの鍵と、これまでのパスワードに代わる「パスフレーズ」を使用します。ここでパスフレーズとは従来のパスワードと同じようなものですが、より複雑にするため、通常は英単語を組み合わせた句や文のような長いものを指定します。もちろんパスフレーズは自分の頭の中だけににいれておきます。よく紙に書いてディスプレイに貼り付けている人がいますがとても危険ですね。もちろん忘れてしまっては意味がありませんが…。
そのパスフレーズをもとに後述するssh-keygenコマンドで公開鍵と秘密鍵という鍵のペアがテキストファイルとして自動生成されます。ここで「公開鍵」は接続先のホストに登録するもので、他人に見られてもかまいませんが、「秘密鍵」は文字通り秘密の鍵で管理を厳重にする必要があります。

〈鍵の作成〉
SSHプロトコルには大きく分けてバージョン1とバージョン2があります。これらの大きな相違は認証アルゴリズムです。バージョン1では公開鍵の交換方式としてRSA方式を使用し、バージョン2ではDSA方式を使用します。今後次第にバージョン2に置き換わっていくと思われますが、バージョン1のみしか対応していないサーバもまだまだ多くあります。なお、OS Xに付属のOpen SSHは両方のバージョンに対応しています。
ここでは両方のバージョンの鍵のペアを作成しましょう。コマンドにはssh-keygenを使用します。

まずは、バージョン1用の鍵です。ssh-keygenコマンドをオプションなしで実行します。

% ssh-keygen 〈return〉
Generating public/private rsa1 key pair.
Enter file in which to save the key (/Users/o2/.ssh/identity): 〈return〉
Enter passphrase (empty for no passphrase): ←パスフレーズを入力
Enter same passphrase again: ←もう一度パスフレーズを入力
Your identification has been saved in /Users/o2/.ssh/identity.
Your public key has been saved in /Users/o2/.ssh/identity.pub.
The key fingerprint is:
53:41:11:b3:81:45:40:78:db:88:1c:e3:4a:28:87:8a o2@g3mac

これで~/.sshディレクトリにバージョン1用鍵ペアのファイルが生成されます。

identity.pub:公開鍵
identity:秘密鍵

次に、バージョン2用の鍵です。今度は「-d」オプションをつけてssh-keygenコマンドを実行します。

% ssh-keygen -d 〈return〉
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/o2/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/o2/.ssh/id_dsa.
Your public key has been saved in /Users/o2/.ssh/id_dsa.pub.
The key fingerprint is:
04:f6:f3:54:78:bb:6d:bb:a0:7d:50:f7:14:b9:58:c8 o2@g3mac

バージョン2用の鍵ペアは次の通りです。
id_dsa.pub:公開鍵
id_dsa:秘密鍵

〈鍵の登録〉
作成した鍵の中で「公開鍵」の方をログインしたいサーバの管理者にメールなどで転送して登録してもらいます。自分で登録する場合、鍵を追加するファイルがSSHプロトコルのバージョンによって異なるので注意してください。バージョン1の場合には、「~/.ssh/authorized_keys」、バージョン2では、「~/.ssh/authorized_keys2」になります。
これらは単なるテキストファイルなのでcatコマンドなどを使用して追加すればいいでしょう。

% cat identity.pub >> ~/.ssh/authorized_keys 〈return〉
% cat id_dsa.pub >> ~/.ssh/authorized_keys2 〈return〉

〈公開鍵によるログイン〉
サーバに公開鍵を登録したら、再びログインしてみましょう。2つのバージョンの公開鍵を登録してある場合、sloginコマンドを使用するとバージョン2でのログインになります。

% ssh ibook 〈return〉
Enter passphrase for key ’/Users/o2/.ssh/id_dsa’: ←パスフレーズを入力
Welcome to Darwin!
[ibook:~] o2% ←ログイン完了

今度は、「Enter passphrase 〜」というようにパスフレーズを聞いてきます。「 password:」と表示されるようなら登録がうまくいっていません。
なお、明示的にプロトコルを指定するには「-1」もしくは「-2」オプションを指定します。

% ssh -1 ibook〈return〉 ←バージョン1プロトコルでログイン
Enter passphrase for RSA key ’o2@g3mac’: ←パスフレーズを入力
Welcome to Darwin!
[ibook:~] o2% ←ログイン完了

〈パスワード認証をできないようにする〉
より安全性を高めるにはサーバ側でパスワードによる認証をできないように設定した方がいいでしょう。それには、サーバ側の/etc/sshd_configを編集し、PasswordAuthenticationを「no」に設定します。

PasswordAuthentication no

次に、sshdを再起動します。OS Xの場合には[システム環境設定]の[共有]を開き、[アプリケーション]パネルで[リモートログインを許可する]にチェックを外して、再びチェックすれば再起動できます。Terminalで行うにはpsコマンドでプロセス番号を調べてkillコマンドでHUPシグナルを送ります。

% ps ax | grep sshd 〈return〉
428 ?? Ss 0:00.90 /usr/sbin/sshd ←428がsshdのプロセス番号
1016 std R+ 0:00.00 grep sshd
% sudo kill -HUP 428〈return〉

以上で、公開鍵方式以外の認証はできなくなります。

〈SSHのその他のコマンド〉
SSHは単にリモートログインだけのツールではありません。リモートのプログラムを実行させたり、あるいはFTPの代わりに使用することも可能です。最後にSSHに容易されているその他の機能をまとめておきましょう。詳しくはオンラインマニュアルを参照してください。

sftp:ファイル転送コマンド。ftpコマンドと同じように使用できる
scp:リモートファイルのコピーコマンド
ssh-agent:認証エージェント。セッション内でパスフレーズを記憶しておくことができる。
ssh-add:認証エージェントに鍵を記憶させるコマンド

(続く)
[大津真]

関連リンク:http://www.o2-m.com/
カテゴリ:暗合化, ネットワーク管理, 大津真=XはUNIXでサーバで


大津真=XはUNIXでサーバで》SSHの使い方(3)

――――付録
■■デーモン
システムに常駐しバックグラウンドでもくもくと仕事をこなすプログラムをデーモンと呼ぶ。デーモンには、sshdやhttpdのようなネットワークサービスのほかに、指定した日時に指定したプログラムを実行するcron、ディスクのオートマウントを行うautodiskmountなどがある。

■■psコマンド
プロセスリストを表示する。すべてのプロセスを表示するには「ax」オプションを指定する。

■■grep
指定した文字列(パターン)を含む行を表示する。基本的な書式は次の通り

grep 文字列 ファイル

■■パイプ
パイプとはコマンド同士の入出力を接続する機能。
たとえば、
ps ax | grep sshd〈return〉
とすると、psコマンドの標準出力がgrepコマンドの標準入力に接続され、プロセスリストの中で「sshd」を含む行が表示される。

■■kill
killコマンドはプロセスにシグナルと呼ばれるメッセージを送る。単に

kill プロセス番号

とするとTERMシグナルが送られプロセスが停止する。なお、暴走状態のプロセスを殺したい場合にはKILLシグナルを送る。

kill -KILL プロセス番号

また、多くのサーバプロセスではHUPシグナルを送ることにより設定ファイルを再読込させることができる。たとえば、SSHサーバの設定ファイル/etc/sshd_configを修正した場合には、次のようにしてsshdのプロセス番号を調べてHUPシグナルを送れば設定が反映される。

% ps ax | grep sshd 〈return〉
428 ?? Ss 0:00.90 /usr/sbin/sshd ←428がsshdのプロセス番号
1016 std R+ 0:00.00 grep sshd
% sudo kill -HUP 428 〈return〉

■■動作中のデーモンのプロセス番号
動作中のデーモンの多くは、プロセス番号を/var/runディレクトリに保存している。

% ls /var/run/ 〈return〉
autodiskmount.pid inetd.pid niconfig_local.xml proxy syslog
automount.pid lookupd.pid ntp.drift resolv.conf syslog.pid
cron.pid mountd.pid ntpd.pid sshd.pid utmp
httpd.pid netinfo_local.pid pppconfd sudo

% cat /var/run/sshd.pid 〈return〉
1886 ←プロセス番号

したがって、sshdに設定ファイルを読み込ませたい場合には次のようにしてもよい。

% sudo kill -HUP `cat /var/run/sshd.pid` 〈return〉

「cat /var/run/sshd.pid」がバッククォーテーション「`」で囲まれていることに注意しよう。これはシェルのコマンド置換と呼ばれる機能で、バッククォーテーション「`」で囲まれた部分が、そのコマンド実行結果に置き換わる。つまり「 `cat /var/run/sshd.pid`」が、/var/run/sshd.pidファイルの中身、つまりsshdのプロセス番号に置き換わるわけだ。

■■スタントアローンサーバとスーパーサーバ
Mac OS Xでは、httpd(Apache)やsshd(OpenSSH)など多くのネットワークサーバを動作させることが可能だ。サーバは起動方法により2種類に分けられる。1つはhttpdやsshdのように独自に起動するもの、もう一つはスーパーサーバinetdにより管理されるタイプだ。ftpdやtelnetdなどは後者になる。スーパーサーバinetdはポートを監視し接続要求があった時点でサーバを起動する。つまり必要のないプロセスを常時立ち上げておく必要がないためリソースの節約ができるわけだ。inetdの設定ファイルは/etc/inetd.confになる。初期状態ではtelnetの行がコメントになっているが「#」を外せばtelnetによるリモートログインが可能になる。またinetdから起動されるプロセスのアクセス制御はtcp_wrappersが担当する。/etc/hosts.allow、/etc/hosts.denyの2つのファイルを使用して、システム全体、あるいはサービス単位で接続を許可するホスト、しないホストを設定できる。
[大津真]

関連リンク:http://www.o2-m.com/
カテゴリ:暗合化, ネットワーク管理, 大津真=XはUNIXでサーバで


e-ラーニングやストリーミングなどをより効果的にできるコンテンツを開発・配信するLiShell(1)

2001年10月25日、リクロスは「LiShell」(リシェルと発音)を発表し、e-ラーニングやインターネット放送などに対応した開発環境の提供およびホスティングサービスを開始した。TributeWorks社の開発ツールiShellをベースにしたサービスである。iShellはオーサリングツールとして知られているが、その機能をベースに、インターネットでのコンテンツ配信を効率的に行うような開発・配信のための仕組みを提供するのがLiShellである。LiShellのエディタでコンテンツを作り、それをサーバに登録する。そして、WindowsあるいはMac OSに対応したLiShell Playerをインストールしておけば、たとえばそのコンテンツをWebサイトからクリックしてダウンロードし、パソコン上で参照できる。ブラウザ内のコンテンツでないために、全画面表示などの機能も利用できる。一方、ムービーやサウンドなどの大きな素材は標準的なストリーミングの機能を使って配信するなど、単にコンテンツをダウンロードするのではなく、インターネットの今後の標準機能とうまくマッチした作りとなっている。また、コンテンツは、テンプレートと素材が別々のファイルになっており、その意味では効率の高い開発環境であるとも言える。テンプレートで使っているテキストファイルの内容を書き直すだけで、別のコンテンツが作れ、コンテンツ制作で開発ツールを駆使するという必要はない。また、ムービー担当、テキスト担当などと素材ごとに分業したワークフローも可能だろう。e-ラーニングのコンテンツ作成などでの需要を見込んでいる。さらに手軽にコンテンツ配信が可能なように、リクロス自身がホスティングサービスを提供する。以下はプレス発表の内容に合わせて、LiShellの詳細を紹介しよう。

まずは、代表取締役の奥田哲也氏からの話から始まった。リクロスは携帯電話販売を当初から行ってきたが、3年前から法人向け営業を強化し、電話からさまざまな情報端末を扱ってソリューション提供を行うという方向性を持つようになってきた。ブロードバンドの発展で、動画やサウンドが扱えるようになり、テレビと同じようなストーリー性を持ったコンテンツ作成が必要になる。その中で、自由度の高いツールが必要と考え開発したものがLiShellである。初年度はLiShell関連事業で8億円の売り上げを目指している。
続いて、トライブワークス・ジャパンのマイケル・S・パトリック氏からの話に移った。LiShellの開発元がTribeWorksで販売がリクロスとなっている。iShellをベースにし、リクロスからの要望を取り入れてLiShellとして作り上げた。新しく加わった機能をベースに、日本だけでなく世界に向けて販売したいとした。

続いてリクロスの取締役副社長の内田耕市氏より製品内容を含めた技術的な話が行われた。まずはデモから行われた。ムービーで講師が出てきて話を始めるとともに、黒板に書くようなテキストを並列に表示するようなe-ラーングアプリケーションが紹介された。つまり、ストリーミングに連動して、プレゼンテーション画面やテキストを画面に表示するという技術をLiShellによって実現する。同様なテクノロジーはすでにあるが、LiShellには優位性があるとした。まず、LiShellプレイヤというオリジナルアプリケーションを使っていることから、ブラウザでできないような全画面表示のようなことが可能である。全画面に提示することによって、コンテンツにより集中できるような演出も可能となる。また、音楽を時間軸として、それに連動して、画像やテキストがスクロールするようなデモも示したが、これも全画面を使った効果の高さを示すためのものである。また、LiShellはウインドウのデザインを自由にできるため、特殊な形状のウインドウで動画の広告なども可能となる。ストリーミングでムービーを見ると言うのは、現在はOS付属のプレイヤで新たなウインドウで表示するのが一般的だが、LiShellを使えば全画面を使った専用プレイヤーを作ることができ、同じムービーでも演出が可能となりより効果的に画面に提示することができる。デモとして癒し系のプレゼンテーションとして、静止画と音楽をシンクロさせるものも示された。
LiShellのコンテンツはプレイヤによりWindowsでもMacintoshでも表示できる。ストリーミングは、Windows MediaないしはQuickTimeといったデファクトスタンダードを利用しており、独自技術ではない。つまり、基本的には、MacとWindows向けにムービーは別々に用意するが、コンテンツは1つ用意することで、両方のプラットフォームに対応できるようになる。
開発ツールの効率の高さについて、説明が行われた(開発ツールは「エディタ」と呼んでいる)。コンテンツの素材はそれぞれ独立したムービーやテキストのファイルで用意されている。そのため、コンテンツの修正が容易であり、あるいはコンテンツの中身だけを差し換えるといったことも、たとえばディレクトリの入れ替えだけでできる。こうした修正をしたときにも再コンパイルなどは必要がない。実際に素材ファイルを入れ替えたり、リッチテキストの中身をWordで書き換えるといったデモも行われた。また、時間の流れについても、テキストデータで記載されており、タイミングの変更もメモ帳で変えるといった素材ファイルの変更をいくつか行った。もちろん、変更結果が即座に反映される。結果的にストリーミングの入ったコンテンツの修正が容易にできると説明した。
制作は簡単にできたとしても配信が難しいというのが現実問題として出てくる。ストリーミングはそれぞれサーバを用意しなければならない。結果的に、素材ごとに異なるサーバに登録しなけらばならなくなる。こうした点を解消するため、配信を容易にするサーバについても提供する。サーバにはローカルで開発したディレクトリをそのままにサーバにコピーするだけでメディアごとに必要なサーバ機能を使っての公開ができる。レイアウトについても、エディタで変更でき、即座にコンテンツに反映されることがデモで示された。実際のストリーミングを行っているサーバは別にあるのだが、利用者から見れば1つのディレクトリに素材を入れることで、あとは自動的に適切なサーバによって配信される。さらに、専用FTPソフトを開発しており、11月に完成予定で、これを利用すると簡単にコンテンツ更新ができるようにもなる。
続いて、e-ラーニングのデモを示しながら、LiShellのその他の利点を示した。画面に講師の顔が出ていることは最初は珍しがられたが、今ではもういらないという意見も増えている。最初の何分かだけは講師の顔を出しても、その後は顔は出さないでプレゼンテーション資料を大きくするといった作り方もできる。その場合でも、ムービーの音声だけは流れる…といったつくりもLiShellでは可能となる。また、ストリーミングでは一方通行になりがちであるが、「確認問題」として講義内容の確認テストをインタラクティブに自習できるようなつくりも可能であり、さらにサーバに結果を戻すようなことも可能となっている。つまり、学習の進捗管理と理解度管理といったことも実現できる。さらに高校数学のサンプルが示され、問題が最初に表示され、問題の選択肢が5つある場合、結果に対応したムービーやプレゼンテーションを5つ用意しておいて、それぞれで分岐させるといったことも可能となる。
(続く)

関連リンク:LiShell.com
カテゴリ:データベース, メディア制作, サービス


e-ラーニングやストリーミングなどをより効果的にできるコンテンツを開発・配信するLiShell(2)

リクロスが提供するサービスの説明が行われた。配信のためのツールは作ったがISPにはまだ普及していないので、まずはホスティングサービスを提供する。そして、エディタ、アップローダ、プレイヤのそれぞれのアプリケーションを提供する。プレイヤアプリケーションは、どのコンテンツでも共通に使える。さらに、代理店制度もビジネス展開する。
すでに、アントレナー・オブ・ザ・イヤー・ジャパンでのサイトですでに利用が始まっている。表彰式等の様子をムービーで参照できるようになっている。京都大学経済学部の大学院でも来年度からの利用が予定されている。同学部ではコンテンツを大学院生が作る必要がある。コンピュータが専門でない学生でもコンテンツが作ることができるということで、LiShellの採用が決まった。テンプレートを用意しておき、コンテンツを学生が用意するといったワークフローとなっている。
今後は、2002年春を目処にサーバシステムの外販を開始する。MacintoshやWindows以外のプラットフォームへの移植、Real系などへの対応メディアの追加を予定している。また、ジェネリックメディア社と連係して動画制作の簡易化やディスクスペースの縮小も予定している。

発表の内容は以上の通りであるが、いくつか補足しておこう。まず、エディタについては当初はWindows版のみを提供予定である。iShellはMac OS版もあるのだが、開発者からの要請があれば検討をするとうことで、とりあえずのエディタの対応プラットフォームはWindows版ということになる。また、エディタおよびプレイヤのMac OS X対応については、時期的なものは明らかにはできないものの、年内くらいかもしれないということであった。iShell自体がMac OS Xネイティブ版はまだリリースされていない。しかしながら、iShellがネイティブ対応するときにはLiShellでも同様に対応が可能であろうということであった。
LiShellの入手方法だが、基本的には代理店経由ということになる。もし、LiShellを利用して開発やソリューションビジネスを行うとすれば、代理店として契約を行うことになる。LiShellは一般向けには配付されない。価格については、顧客から見れば代理店経由となるため、基本的にはソリューションの代金に含まれることになる。ライセンス形態としては、エディタに対するものではなく、コンテンツ単位のライセンスとなっている。ホームページから同時選択可能なチャンネル数を数えて、その数をもとにライセンス料を決める。1チャンネルあたりの販売価格は現実には増減するが、買い取り形態で17万円前後、月あたりのライセンスだと2万円前後の単価となるが、サイトライセンス制度もあるため、この価格は参考程度として認識していただきたい。なお、ホスティングサービスは上記の価格以外にディスクスペースや転送料などに応じて料金が発生する。
コンテンツ配信のサーバは、Windows 2000をベースにしたものであるが、通常は1台ではなく、数台のサーバが使われる。ファイルサーバ、ストリーミングサーバなどをそれぞれ別々のマシンで実現する。QuickTimeのストリーミングサーバはDarwinを使っている。したがって、結果的にはサーバについても外販する場合はシステム販売という形態になる。なお、イントラネットでWindows Mediaしか使わないような状況では1台のWindows 2000サーバで運用するということも可能だとしている。

関連リンク:LiShell.com
カテゴリ:データベース, メディア制作, サービス


KBase》WebObjects 5でJavaにコンバートしたアプリケーションでの例外について

WebObjects 5において、Objective-CのソースをJavaにコンバートした場合、アクセッサメソッドがなくkey-valueコーディングによって変数を利用しようとした場合に例外が発生する問題について、Knowledge Baseに公開された。その場合には、アクセッサメソッドを組み込むか、変数をpublic宣言するか、あるいはパッケージにKeyValueCodingProtectedAccessorクラスを組み込むかを行う。なお、3つ目の方法はパフォーマンスに影響するので、一時しのぎ的な解決法になるだろう。
(アクセッサメソッド:クラスのインスタンス変数、あるいは一般的にプロパティに対し、値を取り出したり設定したりするメソッド。たとえば、counterという変数がある場合この変数を直接アクセスするのではなく、getCounter()、setCounter(int)のようなメソッドを定義してcounter変数への値の設定や取り出しを行う。そうすることで値の設定や取り出しに特別な処理を組み込むことなどが可能で、状況に応じてアクセスを制限するような機能も組み込めるなどのメリットがある。)

関連リンク:WebObjects 5.0: Key-Value Coding Access Throws NSKeyValueCoding$UnknownKeyException
カテゴリ:Knowledge Base(旧TIL), WebObjects


KBase》WebObjects 5の稼働環境をUNIXにインストールする場合のトラブル対応

WebObjects 5の稼働システムを、SolarisやLinuxのようなUNIX系OSにインストールする場合に、インストールキーを認識しないという問題について、Knowledge Baseに対処方法が掲載された。これらのOSではCD-ROMをマウントした場合ファイル名がすべて小文字になってしまう。WebObjectsのインストール時には、ライセンスキーのチェックで大文字も含めたファイルへのアクセスが必要になるもののそれができないためにこのようになってしまう。CD-ROMのマウントに関する設定を変更して、ファイル名がすべて小文字にならないようにする必要があるのだが、SolarisとLinuxについて、それぞれ手順として、修正すべきファイルや変更すべきポイントが具体的に記載されている。

関連リンク:WebObjects 5.0 Deployment: License Key Is Not Recognized By Installation Script
カテゴリ:Knowledge Base(旧TIL), UNIX, WebObjects


REALbasicの次期バージョンVer.4のアルファ版3つ目のリリース

Real Softwareは、REALbasic 4a3をリリースした。次期バージョンのVer.4.0のアルファ版での3つ目のリリースである。コントロールでのメモリ解放やプロパティ、イベントの追加といった新しい機能が見られる。また、データベースでのカーソル利用も追加されている。

関連リンク:REALbasic 4a3 Release Notes
カテゴリ:REALbasic


ColorSyncでの優先されるCMMをシステム設定以外のものをプログラムで使う場合

Technical Q&Aに、ColorSyncでの優先するCMMの設定をプログラムからできないかという問に関する答えが掲載された。優先するCMMはユーザが設定するもので、デベロッパの要求よりもユーザの設定が優先されるべきと考え、そうしたAPIは用意していない。しかしながら、NCWConcatColorWorldというAPIを使うことで、特定のCMMを指定して、ユーザの指定した優先されるCMMとは別のものを利用することができる。ここで使用する構造体のメンバーへの値の代入方法などがプログラム付きで解説されている。

関連リンク:QA1086:Setting the preferred CMM programatically?
カテゴリ:Technical Q&A, ColorSync