[ADOS] ADOS Developer's Site - XML Stadium
ADOS Company slogan - XML Total Solution
RIGHT:[[目次>Hestia Hacks#SDKDevDuide]]|[[前>EISサンプル実装]]|[[次>チューニング]]


#contents

*概要 [#hcdescription]
Hestia Commanderはパートナー情報等のマネージメント機能に加えて、簡易EIS機能を持っています。以下にコンポーネントの関連概念図を示します。

#ref(hcfigure.png)

上図の通り、Hestia Commanderは Hestia SDK上に構築されており、SessionコンポーネントとScriptコンポーネントで構成されています。開発者は、Scriptコンポーネント上に独自のスクリプトを作成することによりプライベートプロセスを実装することができます。

開発者が作成するスクリプトでは、Sessionオブジェクトを扱う高水準関数を利用することが前提となっています。

*スクリプト実装 [#a0186adc]
ScriptコンポーネントはJBoss上のMBeanServerとして実装されています。開発者が作成するスクリプトは、サーバ上で継続的に動作するサーバコンポーネントとしても、シーケンシャル処理を一回処理して終了するような単独プログラムとしても動作することができます。
**スクリプトデプロイ [#u502b84a]
スクリプトの実体ファイルは、$HESTIA_HOME/server/default/data/scripts にインストールする必要があります。また、上記ディレクトリにはスクリプトファイルのカタログファイル(description.xml)があり、カタログファイルにスクリプト名、変数等を定義する必要があります。
***カタログファイル記述形式 [#catalog]
''description.xml''
 <scripts>
  <script>
    <name>HelloWorld</name>
    <description>First Sample</description>
    <source>/scripts/HelloWorld.py</source>
  </script>
  <script>
    ....
  </script>
 </scripts>
|設定項目|内容|h
|script|スクリプト定義。複数定義可能です|
|script.name|スクリプト名。1バイト系のみ|
|script.description|スクリプトの概要。1バイト系のみ|
|script.source|スクリプトファイル名。$HESTIA_SERVER/default/data からの相対パスで指定|
|script.param|変数定義。省略可能、複数定義可能|
|script.param.name|変数名。スクリプトから参照可能|
|script.param.description|変数定義名。スクリプト起動画面に表示される|
|script.param.optional|必須パラメタかどうかの指定をtrue/falseで。省略時は必須パラメタとなる|
|script.param.type|変数型。''text'', ''integer'', ''binary''が指定可能|
|script.param.value|変数値。省略時はテキストボックスにて変数指定、指定時は変数をプルダウンから選択可能|
例) カタログ定義例
  <script>
    <name>parameter test</name>
    <description>parameter test with empty scripts</description>
    <source>/scripts/empty.py</source>
    <internal>false</internal>
    <param>
      <name>textfield</name>
      <description>String from textbox</description>
      <type>text</type>
    </param>
    <param>
      <name>choosetextfield</name>
      <description>String from choosable text</description>
      <type>text</type>
      <value>string1</value>
      <value>string2</value>
    </param>
    <param>
      <name>integerfield</name>
      <description>integer value</description>
      <type>integer</type>
      <value>1</value>
      <value>2</value>
      <value>3</value>
    </param>
    <param>
      <name>binaryfield</name>
      <description>can upload files</description>
      <optional>true</optional>
      <type>binary</type>
    </param>
  </script>
上記スクリプトの起動時には下記のような画面が表示されます。
#ref(hcshot1.png)

**スクリプト状態遷移 [#m118d29b]
スクリプトは以下の3状態のいづれかのステータスを持ちます。
|状態|内容|h
|SessionState.STATE_ACTIVE|スクリプトがアクティブ状態であることを示します。スクリプトが明示的に終了するか異常終了しない限り、スクリプトはSTATE_ACTIVE状態をとり続け、定期的に再実行されます|
|SessionState.STATE_FINISH|スクリプトが正常終了した状態であることを示します|
|SessionState.STATE_ERROR|スクリプトの処理中に例外が発生し異常終了した状態であることを示します|

**変数 [#val]
外部よりスクリプトに渡すことのできる変数は、グローバル変数とスクリプト変数の2種類があります。グローバル変数はスクリプト起動時にScriptコンポーネントから前もって渡されるインスタンスで、スクリプト変数はカタログファイルによって定義され、ブラウザ画面から渡される変数です。
***グローバル変数 [#globalval]
|変数名|対応オブジェクト|概要|h
|svm|[[com.ados.hestia.scripts.ScriptSession:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/scripts/ScriptSession.html]]|スクリプト起動時にインスタンス化されるスクリプト自身のオブジェクトです。スクリプト自身の状態管理などを行います|
|sapi|[[com.ados.hestia.scripts.ScriptAPI:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/scripts/ScriptAPI.html]]|ScriptAPIはSessionオブジェクトを利用するための[[SessionProcessor:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/sdk/session/SessionProcessor.html]]オブジェクト取得、その他ユーティリティ機能を提供します。|
***スクリプト変数 [#scriptval]
[[カタログファイル>#catalog]]で定義された変数をスクリプトから参照できます。

Jythonの文法では変数宣言時の明示的な型宣言はありませんが、スクリプト起動画面から指定された各型は以下のように変換されスクリプトに渡されます。
|カタログ定義型|スクリプト変数型|備考|h
|text|String||
|integer|int||
|binary|[[IStore:http://wiki.a-dos.com/hestiaapi/apidocs/com/ados/hestia/utils/io/IStore.html]]|IStoreはHestia SDKに含まれるストリームを含む抽象インターフェースです。スクリプトはIStoreからストリームを取り出して処理を行います|


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Copyright 2005-2008. ADOS Co., Ltd. All Rights Reserved.