プロキシ機能 クライアント側サービス jp.ossc.nimbus.service.proxy.RemoteClientService

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インターセプタチェインを取得する。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- リモートのサービスをプロキシするRemoteClientサービス-->
  8. <service name="Messenger"
  9. code="jp.ossc.nimbus.service.proxy.RemoteClientService">
  10. <!-- プロキシするサービスのインタフェースを設定する
  11. インタフェースを持たないクラスは、プロキシできない。
  12. -->
  13. <attribute name="RemoteInterfaceClassName">sample.service.Messenger</attribute>
  14. <!-- プロキシする実体を呼び出すInvokerサービスのサービス名を設定する-->
  15. <attribute name="InvokerServiceName">#Invoker</attribute>
  16. <depends>Invoker</depends>
  17. </service>
  18. <!-- プロキシする実体を呼び出すInvokerサービス -->
  19. <service name="Invoker"
  20. code="jp.ossc.nimbus.service.proxy.invoker.RemoteClientMethodCallInvokerService">
  21. <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
  22. <attribute name="RemoteServerJndiName">nimbus/RemoteServiceServer</attribute>
  23. <attribute name="RemoteServiceName">#Messenger</attribute>
  24. <depends>
  25. <!-- RMIサーバから取得するリポジトリサービス -->
  26. <service name="LocalRMIRepository"
  27. code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
  28. <attribute name="Port">1099</attribute>
  29. </service>
  30. </depends>
  31. </service>
  32. </manager>
  33. </server>


プロキシ/RemoteClientService