我设计了一个分布式的遥感设备网络。 这些设备将生成日志并将其发送到中央数据库。 I m 使用 JMS 传输日志消息。 主数据库服务器将运行 MDB (Message Livern Bean) 处理收到的信件。 客户正在用 GPRS 发送数据。 问题在于我不想我的客户处理网络问题。 我需要一些在客户机上本地运行的中继服务, 从客户机那里接收信息, 而不屏蔽它, 并代表它进行尝试 。 ( 如果网络已关闭, 稍后再尝试发送 ) 。
信息是一个简单的 java 对象 :
public class Message {
public int x;
public int y;
public int z;
}
客户端 :
Message msg = new Message();
while (True) {
/* sense data */
msg = get_data_from_environment();
/* send data to local relay service
* This is non blocking call */
relay_service.send(msg);
}
本地中继服务 :
while (True) {
/* get message from local client */
msg = get_message_from_local_client();
result = send_msg_to_JMS_server(msg);
/* if not successful, persist it on a local queue and try some other time */
if (result.is_sent() != True)
store_msg_on_disk(msg);
}
是否有这样的信息服务 或者我应该自己写中继服务?
在此情况下使用 JMS 有效吗? 我应该设计我自己的套接字级别协议来发送信件吗?