SharedContext実装サービス jp.ossc.nimbus.service.context.SharedContextService

jp.ossc.nimbus.service.context.SharedContextServiceは、SharedContextデフォルト実装サービスです。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.publish.RequestConnectionFactoryService他のJVM上のSharedContextと通信するために使用する
jp.ossc.nimbus.service.keepalive.ClusterServiceクラスタされている共有コンテキストの状態を監視する。
jp.ossc.nimbus.service.context.ContextStoreコンテキスト情報を永続化する。
jp.ossc.nimbus.service.cache.CacheMapコンテキスト情報をキャッシュする。
jp.ossc.nimbus.service.queue.Queueインタプリタ実行の同時実行数を制御するための受付キュー
jp.ossc.nimbus.service.interpreter.Interpreterインタプリタ実行で使用するインタプリタ
jp.ossc.nimbus.service.context.SharedContextUpdateListenerコンテキスト情報の変更通知を通知する

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

  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. <!-- コンテキスト情報を保持するContextサービス -->
  8. <service name="Context"
  9. code="jp.ossc.nimbus.service.context.SharedContextService">
  10. <!-- コンテキスト情報の変更を送受信するRequestConnectionFactoryサービスのサービス名を設定する -->
  11. <attribute name="RequestConnectionFactoryServiceName">#RequestConnectionFactory</attribute>
  12. <!-- コンテキスト情報の共有を管理するClusterサービスのサービス名を設定する -->
  13. <attribute name="ClusterServiceName">#Cluster</attribute>
  14. <depends>RequestConnectionFactory</depends>
  15. <depends>Cluster</depends>
  16. </service>
  17. <!-- リクエストコネクションファクトリサービス -->
  18. <service name="RequestConnectionFactory"
  19. code="jp.ossc.nimbus.service.publish.RequestConnectionFactoryService">
  20. <attribute name="ServerConnectionFactoryServiceName">#ConnectionFactory</attribute>
  21. <attribute name="MessageReceiverServiceName">#MessageReceiver</attribute>
  22. <depends>#ConnectionFactory</depends>
  23. <depends>
  24. <!-- コンテキスト情報の変更を受信するMessageReceiverサービス -->
  25. <service name="MessageReceiver"
  26. code="jp.ossc.nimbus.service.publish.MessageReceiverService">
  27. <attribute name="ClientConnectionFactoryServiceName">#ClientConnectionFactory</attribute>
  28. <attribute name="StartReceiveOnStart">true</attribute>
  29. <depends>ClientConnectionFactory</depends>
  30. </service>
  31. </depends>
  32. </service>
  33. <!-- ClientConnectionFactoryをクラスタ化するClientConnectionFactoryサービス -->
  34. <service name="ClientConnectionFactory"
  35. code="jp.ossc.nimbus.service.publish.ClusterConnectionFactoryService">
  36. <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
  37. <attribute name="ClusterServiceName">#Cluster</attribute>
  38. <attribute name="ClientConnectionFactoryServiceName">#ConnectionFactory</attribute>
  39. <attribute name="Multiple">true</attribute>
  40. <attribute name="FlexibleConnect">true</attribute>
  41. <depends>
  42. <!-- RMIサーバにリモートオブジェクトを登録するRepositoryサービス -->
  43. <service name="LocalRMIRepository"
  44. code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
  45. <attribute name="CreateRegistry">true</attribute>
  46. <attribute name="Port">1099</attribute>
  47. </service>
  48. </depends>
  49. <depends>
  50. <!-- Clusterサービス -->
  51. <service name="Cluster"
  52. code="jp.ossc.nimbus.service.keepalive.ClusterService">
  53. <attribute name="MulticastGroupAddress">239.0.0.10</attribute>
  54. <attribute name="JoinOnStart">false</attribute>
  55. </service>
  56. </depends>
  57. </service>
  58. <!-- コンテキスト情報の変更を送受信するServerConnectionFactory及びClientConnectionFactoryサービス -->
  59. <service name="ConnectionFactory"
  60. code="jp.ossc.nimbus.service.publish.tcp.ConnectionFactoryService" />
  61. </manager>
  62. </server>


コンテキスト/SharedContext