nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.proxy.RemoteClientServiceは、サービスをプロキシするサービスです。
用途としては、基本的にはリモートのJVM上にいるサービスを、ローカルのサービスのように呼び出すために使用します。また、応用的にはローカルのサービスにインターセプタを挟むために使用する事もできます。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.aop.Invoker | プロキシする実体を呼び出す。 |
jp.ossc.nimbus.service.aop.InterceptorChainList | インターセプタを連ねるリスト。 |
jp.ossc.nimbus.service.aop.InterceptorChainFactory | インターセプタチェインを取得する。 |
以下に簡単なサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- リモートのサービスをプロキシするRemoteClientサービス-->
- <service name="Messenger"
- code="jp.ossc.nimbus.service.proxy.RemoteClientService">
- <!-- プロキシするサービスのインタフェースを設定する
- インタフェースを持たないクラスは、プロキシできない。
- -->
- <attribute name="RemoteInterfaceClassName">sample.service.Messenger</attribute>
- <!-- プロキシする実体を呼び出すInvokerサービスのサービス名を設定する-->
- <attribute name="InvokerServiceName">#Invoker</attribute>
- <depends>Invoker</depends>
- </service>
- <!-- プロキシする実体を呼び出すInvokerサービス -->
- <service name="Invoker"
- code="jp.ossc.nimbus.service.proxy.invoker.RemoteClientMethodCallInvokerService">
- <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
- <attribute name="RemoteServerJndiName">nimbus/RemoteServiceServer</attribute>
- <attribute name="RemoteServiceName">#Messenger</attribute>
- <depends>
- <!-- RMIサーバから取得するリポジトリサービス -->
- <service name="LocalRMIRepository"
- code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
- <attribute name="Port">1099</attribute>
- </service>
- </depends>
- </service>
- </manager>
- </server>