>> Home
  + Past histories
  + Links

>> download

>> documents
  + Archtecrure Guide
  + Configuration
  + Tutorial
  + API Guide
  + Seasar Service

>> samples
  + Naval Battle
  + Chat

>> BBS
  + geoboard
    (旧掲示板)

>> Mail To Amoi
Home > Past histories
過去の更新履歴 Past histories
2003/05/25
大幅にリファクタリングしました。β004としてアップします。
あと、システム管理用Flashクライアントで、新規Sockletの配備が可能になりました。
初期設定ファイルを書き換え、管理用クライアントで接続し、reload configします。その後、Name欄に新規Sockletの配備名を入力し、restart sockletボタンをクリックすると、新しいSockletがその配備名で配備されます。あと、見栄えも良くしてみました(笑)

2003/05/23
システム管理用Flashクライアント作ってみました。相変わらず見た目がアレなのはご勘弁ください。
SystemCommandSockletも変更しましたし、それ用のメソッドがMainに追加されていますので、β003としてアップしておきます。
展開しましたディレクトリのgpss-ctrl.swfが管理用クライアントです。
現在起動しているSocklet一覧や、それに接続している人数が把握できます。もちろん、接続人数はリアルタイムに変わりますです。

「あもい」はFlashのListBoxコンポーネントの使い方を覚えた!スキルポイント2pt up(w

2003/05/22
久しぶりの更新です。(・3・)さんからのご要望を受けまして、β002をアップします。更新箇所は以下の通りです。
  1. SocketProcessorImplクラスの外部からのアクセスを不可に変更。
  2. Socklet#preRemoveClientでの例外をキャッチするように変更。
  3. デフォルト名のSockletが配備されている時に、システムコマンド処理Sockletが配備されないバグ修正
  4. 初期設定ファイルでソケットのタイムアウトを設定可能に。
    接続用初期コマンドのタイムアウト時間は<system>ノードのtimeout属性で、
    各Sockletのタイムアウト時間は<socklet>ノードのtimeout属性で指定できます。
  5. デフォルトのSocklet名を「Default」に変更
    初期設定ファイルで、"Default"と言う配備名のSockletを配備すると、これがデフォルトになります。
  6. 初期設定ファイルでデフォルトのSocklet無効化可能に。
    初期設定ファイル<system>ノードにdefault属性追加しました。
    この属性の値をinvalidateにすると、配備されてない配備名を指定した時、デフォルトSockletを使用しません。
  7. sendAndWaitのバグ修正
  8. 単一のSockletのみ再起動を可能に
    管理用のFlashクライアントは少々お待ちください。
  9. ScriptSockletクラス新設
    RhinoJsSocklet / FesiJsSockletの親クラスとしました。
苦労したのは8ですね。普通のSockletは無問題なんですが、スクリプトSockletをどうしようかと…結局、スーパークラスを導入することで解決しました。かなりソースは汚め=バグが潜んでいる可能盛大になっています(w

2003/05/21
クライアント側のスクリプトユーティリティ「SockletService.as」をアップします。
ダウンロードページをご覧ください。

21:00 追記)チュートリアルですが、第2〜4章はすっ飛ばして、第5章出来ました。

2003/05/20
リンク追加しました。 クールなびじゅつかん館長さんのサイトです。
あと、さりげなく「はじめに」の文章に追加しました。

2003/05/17
だめだ、チュートリアルが出来てから、なんて思ってたら、いつまでたってもβが公開できない!
っつぅわけで、β001公開しちゃいます。
α010からの更新箇所は以下の通りです。
  1. FesiJsSocklet, RhinoJsSocklet修正 - (・3・) ◆RTquCoolEEさん
  2. SocketProcessorの初期化パラメータが重複キーを許可しなかったので、それを許可するように変更。
  3. 上に伴い、InitParamContainerインターフェース及びInitParamContainerImplクラス追加
    SocketProcessorとSocketDeployInfoが、同一のインターフェースで初期化パラメータを取得可能になりました。
  4. Socklet#afterDeployedLinks(Map linkedSocklets)インターフェースメソッド追加
    init(List)で追加配備されたSockletを予め取得できるようになります。
あと、サイトのデザインなんかも更新しちゃいました。
一応まだ中途半端ですが、戒めの意味も込めましてチュートリアルも公開します。

2003/05/14
α010をアップします。 多分ver1.00における「仕様変更」はこれが最後になると思います。もちろん機能強化、はまだまだありますけど。
このバージョンで問題がなさそうでしたら、βに格上げしたいと思います。
  1. log4jを使用したログ出力に対応
    それに伴い、初期設定ファイルの仕様変更しました。
     ルートに<log4j>ノード追加
     <system>ノードの下に、<logger>ノード追加
     <socklet>ノードの下に、<logger>ノード追加
  2. SockletDeployInfoのパッケージをjp.wda.gpssへ変更
追記: JsAplication、RhinoJsApplication、SystemCommandApplicationの各クラスの名前を変更しました。
α010.1としてソースだけアップしておきます。

2003/05/13
α009をアップします。
  1. JsApplication, RhinoJsApplication修正 - (・3・) ◆RTquCoolEEさん
  2. 初期設定ファイル<system>ノードに子ノード<command>追加
    システムコマンドSockletの実行を許可されるIPアドレスを指定できるようにしました。
さらにですね、(・3・)さんから、スクリプトSockletのサンプルを頂きました!
解凍して出来ましたファイルのうち、saitama.fjsをGPSSのscriptsフォルダに置いて、multisaitama.swfを複数立ち上げてみてください。

2003/05/11
(・3・) ◆RTquCoolEEさんよりのご要望を踏まえまして、α008をアップします。
  1. SockletDeployInfo#setInitParam()メソッド追加
    SockletDeployInfo#addInitParam()では、どんどんパラメータを追加してしまいますので、既にあるパラメータを上書きできるメソッドを用意しました。
  2. Socklet#destroy() / GeneralSocklet#destroy()メソッド追加
    Sockletの終了化処理を行ないます。
  3. checkConnectionやdoCommandで、偽を返したときに、メッセージ送信を待ってからクライアントを終了するように修正
3.が一番大きなバグフィックスです。
やっぱり机上だけでは問題点は分かりませんね。

あとgeoの掲示板の使い方が(やっと)分かりましたので、ゲストブックのほかにSockletの疑問ご意見掲示板を立ち上げました。

追記:サンプルが出来上がりました。

2003/05/10
α007で、大幅に機能増加です。
  1. JsApplication, RhinoJsApplication修正 - (・3・) ◆RTquCoolEEさん
  2. GeneralSockletからSockletインターフェースを分離
    より柔軟にSockletの作成が可能になります。
  3. SystemCommandApplicationをGeneralSocklet継承クラスではなくSockletインターフェース直接実装クラスに変更
  4. GeneralSocklet#getMain()を廃止
  5. SocketProcessor#hasInitParam(String key)メソッド追加
    初期化パラメータが設定されているかどうか確認します。
  6. GeneralSocklet#getOtherSocklet(String appname)メソッド追加
    サーバに配備されている、他のSockletを取得します。
    これで、Socklet間で連携した作業などが行なえます。
    ただし、取得したSockletから、取得する側のSockletが許可されている場合に限ります。
  7. Socklet#allowAccessFromOtherSocklet(Socklet from)メソッド追加
  8. GeneralSocklet#allowAccessFromOtherSocklet(Socklet from)メソッド追加
    むやみやたらにSocklet間の連携が出来てもまずいと思いますので、
    このメソッドを使用して連携の許可・不許可を設定できます。
    デフォルトでは常に不許可です。
  9. GeneralSocklet#init()を抽象メソッドでは無くし、GeneralSocklet中で実装。
    初期化作業が必要ない場合には、このメソッドをオーバーライドする必要はなくなりました。
  10. GeneralSocklet#init(List linkedSocklets)メソッド追加
    Sockletの初期化を行ないたい場合は、init()かinit(List)のどちらか一つを使用してください。
一番大きな変更は、Sockletの初期化メソッドとしてinit(List)が追加されたことです。
従来どおりのinit()も残してありますので、どちらかの1つのメソッドをオーバーライドしてください。
優先順位はinit(List)の方が高いので、こちらをオーバーライドすると、init()は呼ばれません。

また、Socklet同士の連携を出来るようにしてみました。
#initの変更もこのためです。
α007についているサンプルはまだ途中ですが、jp.wda.gpss.samples.ContoroledChatSampleをちょっと見てみてください。
この機能を用いると、チャットルーム用のSockletと、その入室状況を取得するためのSockletを分離する、というようなことが出来ます。
#で、ますますドキュメントがややこしくなる、と…なるべく分かりやすくなるように気を付けますです、はい。

2003/05/08
ただいま、チュートリアルを書いています。
で、やっぱり「ソケットアプリケーション」では長いしもっさりしてるので、「Socklet」と呼ぶことにしました。
それに伴い、大幅に仕様変更です。変えるならイマノウチ…
と言うわけで、α006から、SocketApplicationのクラス名をGeneralSockletに変更しちゃいました。
中身はα005から変わっていません。
初期設定ファイルの<application>ノードも<socklet>ノードと記述するように変更です。

「α」が取れるまでは、まだ仕様変更があるかもしれませんがご容赦ください。

(・3・) ◆RTquCoolEEさんから、JsApplication、RhinoJsApplicationの修正版を頂きました。
外部スクリプトファイルの読込ができるようになりました!

もひとつ。
GeneralSockletにgetClients(String)メソッドを追加しました。
これでFinderオブジェクトを作らなくても、接続中の任意のクライアント一覧が取得できます。

2003/05/07
やっとこさドキュメントを公開しますよ。
GPSSのアーキテクチャ(と言うほどたいそうなものではありませんが…)のご説明と、初期設定ファイルの仕様、あとAPIドキュメントです。
「ここんとこ分かりにくいから、もっと詳しく説明しろや!」ってのがありましたら、遠慮なくご連絡ください。

2003/05/06
ドキュメントさらに鋭意作成中...
(・3・) ◆RTquCoolEEさんから、こんどはMozillaで使用されている、Rhinoスクリプトエンジンを使用するアプリケーションを頂きました。
jp.wda.gpss.system.RhinoJsApplicationがそれです。
で、どうせなら、とECMAスクリプトファイルをディレクトリに置くだけで、アプリケーションとして登録されるようにしてみました。

もひとつ大きな変更は、接続中のクライアントを検索する部分です。
「(username == amoi | username == RTquCoolEE) & p.room == chat & a.state != sleep」
ってな感じで、文字列で検索条件を指定できるようにしてみました。

あとは、Finder周りのコメントと細かいデバッグを少々。

2003/05/02
ドキュメント鋭意作成中(w
アプリケーションのデバッグ用に、Flashクライアントを作り変えました。
初期接続コマンドも設定できるようにしてみました。

で、せっかくなんで、(・3・) ◆RTquCoolEEさんにいただいた、ECMAScriptアプリケーションを追加したものをアップしておきます。
細かいデバッグもあったので、α004とします。

2003/05/01
1.00α003をアップしました。
仕様変更を行なってしまいました。既にアプリケーションを作ってみた方、ごめんなさい。
これ以降は、APIメソッドの追加はあっても、削除はしないで@deprecatedを使うようにします。

変更内容は以下の通りです。
Finderまわりがごちゃごちゃしてて嫌なんですが、これらの使用方法はドキュメントを待っていただくか、jp.wda.util.ZTestをご参照ください。

2003/04/30
1.00α002をアップしました。
このバージョンから、CommonsなどのJakartaユーティリティを使用しています。(Digesterなど)
ですので、アパッチソフトウェアライセンスも書庫に一緒に入っています。
ドキュメントなどは…明日作りますので、少々お待ちください。
2003/04/30 TODO追加
2003/04/29 公開開始