Original Title : HTTP-In and LSL Communications (2009-07-07) Second Life Server 1.27が導入間近となり、このアップデートのある重要機能についての情報を公開すべきと考えました。それは HTTP-In についです。HTTP-In はwebサーバのミニチュアとも言える機能をLSLで実現することのできるスクリプト・セットのコードネームです。簡単な技術詳細について知りたいと思われるならばこちらのWikiページ [翻訳] とこちらのJIRA 、また直接サンプル をご覧ください。 HTTP-inとは?ずばり、長い間待ち望まれていた llHTTPRequest の片割れです。llHTTPRequest が外部webサーバからLSLを使ってデータを取得するものでしたが、http_request では外部サーバ-または他のLSLスクリプト-からの要求にLSLで応答できるものです。 (※普通のwebサーバと)何が違いますか?一般的なwebサーバとは目的が異なります。つまり、(HTTP-Inでは)-サイズの小さいwebページではなく-プレーン・テキストのみを扱います。将来的に機能拡張を行うだけの潜在能力はありますが、この版での一番の目的はサーバ間のデータをやりとりすることです。 なぜこの機能が必要ですか?いくつかの理由があります。 拡張性LSLスクリプトと外部webとの通信手段は他にもあります。LSLのXML-RPCは、Residentsが必要とするサービス・レベルの拡張とメンテナンスが難しく、導入に当たってあまりにも効率が悪いのです。E-Mailがもうひとつの手段ですが、LSL XML-RPCよりは効率がよいですが、それでもまだ必要とされるサービス・レベルを確保することが難しい。 そしてこの2つ方法とも、増え続けるリクエストを処理するためにあるべき能力をcentral serviceから割かなければなりません。HTTP-Inは根本的に違います。処理のボトルネックとなるcentral serviceがありませんし、regionが新設されるたびに我々のリクエスト処理能力を増やせるのです。 柔軟性誤解しないでください、リクエストの総量と頻度によって拡張性には限界があります。 しかしHTTP-Inは、RESTといったような業界標準の多様な通信パターンがサポートされており柔軟性があり、かつ将来性が-我々が用意しているllHTTPRequestとは別の手段よりはあります。 単純性今日のSecond Lifeでは、LSLで双方向の通信を行おうとすると大抵は複数の通信手段を組み合わせるか双方向通信に見せかけるた片方向通信でめポーリングをしなければなりません。またはemail処理を行う20ものスクリプトを1オブジェクトに詰め込むか。HTTP-InはllHTTPRequestと対になり、LSLスクリプトでLSLスクリプトと外部サーバとの間の通信を実現するための複雑性を簡単に軽減することができます。 高速でセキュアなオブジェクト間通信HTTP-InではllHTTPRequestを使って高速かつ簡単にオブジェクト間-同一のリージョン、または、gridのどこにあろうと-の通信が行えます。emailと違ってスクリプトがsleepすることもありませんし、say/shoutのような範囲の制限もなく盗み聞きされる心配もありません。スクリプトは複数のURLを異なるアクセス・レベルに振り分けることができますし、短時間だけアクセス可能にすることもできます。 どのような場面で使うべきですか?もしSecond Lifeの外部サービスと通信を行うLSLスクリプト-例えば外部webページと連動するベンダー、レンタル・システム-を作成・メンテナンスをしているならば、HTTP-Inがお役に立てるでしょう。標準チャット・チャンネルよりもセキュアで複雑なスキームを作成しているならばこの機能があなたのシステムを単純化してくれるでしょう。 webサイトからinworldのオブジェクトをコントロールしたり変化させたり、またはSecond Lifeからの生情報をwebページに反映させたりしたいならば、この機能が実現を楽にしてくれるでしょう。LSLのXML-RPCやe-mail機能を使っているならば*絶対に*HTTP-Inを使ってみるべきです。HTTP-Inに関する質問、アドバイスなどが必要でしたら mailing list、secondlifescripters@lists.secondlife.com へお気軽にご参加ください。 ええ?! llEmailは廃止されるかもしれないのですか?!いいえ。llEmail および e-mail イベントは残されます。この機能はデータ通信以外の場面でとても有用であり、また変更が難しいため(?)、我々はこの機能をコントロールします。いくつかのプロジェクトからe-mailを利用する、より良い代替手段が示唆にされており、我々のe-mailシステムの使用率と負荷は自然に減少すると期待しています。 しかしこの機能を軽視する計画はまったくありません。 ええ?! LSL XML-RPCは廃止されるのですか!これまで廃止することをほのめかしてはいないはずです。でもここで言及しましょう。LSL XML-RPCの利用をできれば終わらせたいと思っております。すぐには行われません。今後数ヶ月にも行われません。十分な警告・ファンファーレ(告知)・コミュニティからのフィードバックなしには行われません。HTTP-Inを利用していただいてLSL XML-RPCからのコンバートが難しい(あるいはその他の理由で困難な)場合は、お気軽に私(※Kelly Linden)に直接コンタクトを頂くか、mailinst list secondlifescripters@lists.secondlife.com へご参加ください。コンバートへの助力はいたしますし、なぜコンバートが不可能なのかというフィードバックも必要としています。このことはまだ決定にはなっていませんが、我々の複雑なバックエンド基盤、幾つかのサービスを減らすことは、はかりしれない価値があるのです。 もう使ってみることができますか?HTTP-Inを使用できるServer 1.27は aditi(βグリッド)ですでに稼動していますが、ごく最近のアカウントはaditiにアクセスできないかもしれません、またSecond Lifeグリッド全体にServer 1.27が導入されるまで待つ必要があるかもしれません。aditiにログインするには、ログイン画面でCtrl-Shift-Gを押し、表示されるドロップダウン・リストからAditiを選択してください。サーバのバージョン(Help -> About Second Life)を確認していただいて、1.27 region か 1.26 region かを必ず確認してください。HTTP-Inを利用したスクリプトはどのバージョンのviewerでも作成できますが、1.23以降のviewer以外では正しくsyntaxのハイライト表示が行えません。ご感想をお聞かせください! |