ClientConnectionFactory、ServerConnectionFactory実装サービス jp.ossc.nimbus.service.publish.udp.ConnectionFactoryService

jp.ossc.nimbus.service.publish.udp.ConnectionFactoryServiceは、UDPプロトコルでメッセージの1対多配信を実現するClientConnectionFactory及びServerConnectionFactory実装サービスです。
UDPマルチキャスト(UDPブロードキャストも可)を使った1対多配信と、UDPユニキャストを使った1対多配信の機能を持ちます。

このサービスは、送信側サーバに定義します。
そのため、送信側のアプリケーションは、このサービスを取得して、ServerConnectionFactoryとして使用できます。
しかし、受信側のアプリケーションは、このサービスが定義されたサーバと異なるリモートサーバ上で稼働するため、このサービスを直接取得する事はできません。このサービスは、JNDIサーバ(RMIサーバも可)にClientConnectionFactoryのリモートオブジェクトを登録するので、受信側のアプリケーションは、JNDIサーバからClientConnectionFactoryをlookupして、使用します。

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

下位サービスインタフェース用途
jp.ossc.nimbus.service.queue.Queue非同期送信、並列送信をサポートするための内部キューとして使用する。
jp.ossc.nimbus.service.io.Externalizerメッセージの直列化/非直列化に使用する。
jp.ossc.nimbus.service.repository.RepositoryJNDIサーバにClientConnectionFactoryのリモートオブジェクトをバインドするために使用する。

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

  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. <!-- UDPマルチキャストで1対多配信を行うClientConnectionFactory及びServerConnectionFactoryサービス -->
  8. <service name="ConnectionFactory"
  9. code="jp.ossc.nimbus.service.publish.udp.ConnectionFactoryService">
  10. <!-- クライアントコネクションファクトリを登録するRMIサーバリポジトリサービスを設定する -->
  11. <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
  12. <!-- マルチキャストグループアドレスを設定する -->
  13. <attribute name="MulticastGroupAddress">224.1.1.1</attribute>
  14. <depends>LocalRMIRepository</depends>
  15. </service>
  16. <!-- RMIサーバに登録するリポジトリサービス -->
  17. <service name="LocalRMIRepository"
  18. code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
  19. <attribute name="CreateRegistry">true</attribute>
  20. <attribute name="Port">1099</attribute>
  21. </service>
  22. </manager>
  23. </server>


メッセージ配信/ServerConnectionFactory
メッセージ配信/ClientConnectionFactory