1 / 13

VO サービスの立ち上げ方

VO サービスの立ち上げ方. データセンター 白崎裕治. SkyNode toolkit. VO Interface に準拠したサービスの立ち上げは結構難しい。 サービスのインターフェイス部分は出来合いのソフトウエアを使うのが妥当。 JVO では SkyNode サービスを簡単に立ち上げるための Toolkit を開発し、公開している。 http://jvo.nao.ac.jp/download/skynode-toolkit/. JVO SkyNode Architecture. SIAP/SSAP/SkyNode OUT. SkyNode IN.

rosalie
Download Presentation

VO サービスの立ち上げ方

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VOサービスの立ち上げ方 データセンター 白崎裕治

  2. SkyNode toolkit • VO Interface に準拠したサービスの立ち上げは結構難しい。 • サービスのインターフェイス部分は出来合いのソフトウエアを使うのが妥当。 • JVO では SkyNode サービスを簡単に立ち上げるための Toolkit を開発し、公開している。 • http://jvo.nao.ac.jp/download/skynode-toolkit/

  3. JVO SkyNode Architecture SIAP/SSAP/SkyNode OUT SkyNode IN SIAP/SSAP IN Translator Parameter Interface ADQL VOTable VOTable Formatter QL Converter Controller upload JDBC JDBC SQL for backend DB Resource ResultSet Data Metadata ResultSetMetaData

  4. 主要な Java Class • org.apache.axis.transport.http.AxisServlet • jp.ac.nao.jvop3.service.skynode.SkyNodeSoapImpl • jp.ac.nao.jvop3.gateway.SOAPGatewaySkyNode • jp.ac.nao.jvop3.controller.skynode.SkyNodeImpl • jp.ac.nao.jvop3.controller.skynode.QuerySkyNode • jp.ac.nao.jvop3.controller.skynode.ResultSetForSkyNode • jp.ac.nao.jvop3.controller.skynode.ResultSetMetaDataForSkyNode • jp.ac.nao.jvop3.controller.skynode.DataFormatter

  5. SkyNodeSoapImpl • SOAP エンジンから直接呼び出されるクラス。 • http://jvo.nao.ac.jp/skynode/services/@serviceName@ • wsdd file または web GUI で指定。 • アクセス先 DB 名は wsdd file にパラメータとして定義 etc/deploy-template.wsdd … <service name="@serviceName@" provider="java:RPC" style="wrapped" use="literal"> <parameter name="skynode.db" value="@DB@"/> <parameter name="className"value="@serviceClass@"/> ...

  6. SOAPGatewaySkyNode • AXIS Java オブジェクトから JAXB Java オブジェクトへの変換 • AXIS SOAP エンジンは SOAP メッセージを受け取ると, メッセージの解析を行い XML から Java へのデータマッピングを行う。 • ADQL-x  AXIS Java の SelectType オブジェクト • SkyNode 内部の実装は JAXB の SelectType オブジェクトを利用。(使いやすい、カスタマイズしやすい)。 • 内部実装(JAXB)をインターフェイス(AXIS) から独立にすることで、AXIS のバージョンアップしやすい。

  7. SkyNodeImpl • 実際に検索を行うためのロジックを呼び出す。 ResultSet performQuery(SelectSQL select) { Connection conn = connManager.getConnection(dbms, dbname, 10) StatementForSkyNode st = (StatementForSkyNode) conn.createStatement() ResultSetForSkyNode rs = st.executeQuery(selectType) VOTABLEType vot = DataFormmatter.getVOTable(rs) return vot; }

  8. QuerySkyNode • ADQL を Backend DBMS が理解できる SQL に変換し検索を実行するクラス (abstract)。 • これを継承した QuerySingle (検索テーブルひとつの場合), QueryMulti (クロスマッチ検索用) が実際に使われる。 • etc/jvo.properties ファイルで指定できる。

  9. Region 検索 t1 (2) REGION(‘BOX 30 10 0.1’) t3 t2 Select * from (select t2.id from t2, t3 where t2.htm between t3.low and t3.upp) t4 natural join t1 (1) (1) Select “id” from t2 with t2.htm between t3.low and t3.upp (2) Select records from t1 corresponding to the selected “id”

  10. jvo.properties • prefix=/usr/local/skynode/ • work.dir=work • tmp.dir=tmp • deploy.template=etc/deploy-template.wsdd • jdbc.driver.pgsql=org.postgresql.Driver • jdbc.url.pgsql=jdbc:postgresql://localhost:5432/ • jdbc.user.pgsql=yshirasa • jdbc.passwd.pgsql= • metadata.db.name=metadb • dbms.metadb=pgsql • connection.max=10 • query.class.default=jp.ac.nao.jvop3.controller.skynode.QueryMulti • logger.properties=etc/log4j.properties

  11. struts-config.xml <plug-in className="jp.ac.nao.jvop3.controller.skynode.PlugInForSkyNode"> <set-property property="jvoProperties" value="/usr/local/skynode/etc/jvo.properties"/> </plug-in>

  12. web.xml <servlet> <servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-name> <servlet-class> org.apache.axis.transport.http.AxisServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> … <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>

  13. ディレクトリ構成 • Skynode_dev • src ソースコード • lib ライブラリ (jar ファイル) • doc ドキュメント (instruction.txt) • etc コンフィギュレーションファイル • sample サンプルデータ、サンプルSQL等 • war SkyNode service war file • build*.* コンパイル用のファイル • init-cshrc 初期設定スクリプト

More Related