分布式计算原理与应用大作业2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
量的英汉词汇对应表。RMI 和 CORBA 有多种实现途径,尽量通过百度发现更多、更好的方式,并 对其优劣进行对比。
2、写一个多播应用程序:多个进程使用多播通讯进行一次选举,有两个候选人(Jones 和 Smith),每一个进程通过多播消息进行投票(消息内容:投票者和投票)。每一个进程能够跟踪 每一位候选人的得票计数(包括它自己的投票)。在选举结束时(多播组的所有成员完成了投 票),每一个进程独立地进行得票计算,然后在它的屏幕上显示投票结果(例如,Jones10, Smith 5)。画出应用程序的体系结构图及组件间的调用关系图(UML)。编写应用程序,并调试。
Reader 回应
<Elpas> <Type>Command</Type> <Subtype>Activate</Subtype> <DeviceId>00:11:22:33:44:55</DeviceId> <HostMAC>00:11:11:11:44:55</HostMAC> <RequestID>12345</RequestID>
</Elpas>
(3)命令:测试 PC 与 reader 之间的连通 test
<Elpas> <Type>Command</Type> <Subtype>Test</Subtype> < DeviceId >00:11:11:11:44:55</ DeviceId > <ClearStats>1</ClearStats> <Repeat>Close</Repeat> <RequestId>12345</RequestId>
Opposite Event Tamper Restore Noise Lowered Voltage Restored
RS-485 Error Restore
Receiver Error restore
d. 反馈(feedbacks):输入反馈,Open/Close/Open of Resistor/Short of Resistor
2) PC 产生的消息 a. 命令 Reset Activate Output(Relay,beep) Test b. 改变参数 Set Date and Time Set RSSI Threshold Set Noise Limit Set Server IP/Port Buzzer Style RF/IR Receiver sensitivity c. 查询参数
并回答如下问题:(实现 30 分,回答下列问题 10 分,共计 40 分)
a、投票程序如何允许参与者加入一个多播组?
b、投票程序如何同步选举的开始,以保证每一个进程准备好接受多播组的任何成员的投票。
c、运行程序中,每一个进程独立的得票统计都一样吗?同学可以假定得票统计一直彼此一致吗? 请解释。
d、什么 Java 可靠多播服务,什么是 Java 不可靠多播服务。
1、分别采用 Java Socket API 、RMI 技术和 CORBA 实现远程词典应用,场景描述: 假设有一台应用服务器以 Socket API /RMI/CORBA 的方式向客户端提供英汉互译词典的服务。
请同学们尝试完成服务器端程序的编码和一个客户端应用的编码,并分别部署到两台计算机上进 行测试。画出应用程序的体系结构图及组件间的调用关系图(UML)。编写应用程序,并调试。 试阐述开发应用程序时如何选择 Socket API 、RMI 与 CORBA。服务接口声明如下。(Socket 实现 15 分,RMI 实现 15 分,CORBA 10 分,共计 40 分)
3、 模拟主动 RFID(Active Radio Frequency Identification)网络与计算机之间的通讯与控制。 应用数据报文协议 UDP 完成通讯,并应用 XML 解析器分析主动 RFID 网络与计算机之间传 递的消息。 (20 分,写 sax 分析器给 5 分,完成 pc 与 reader 之间的控制、通讯给 15 分)
Reader 回应
Power up message
(2)命令:激活 reader 输出端口 activate <Elpas>
<Type>Command</Type> < DeviceId >00:11:11:11:44:55</ DeviceId > <Subtype>Activate</Subtype> <Port>1</Port> <State>Close</State> <Duration>3000</Duration> <RequestId>12345</RequestId> </Elpas>
<RawData>DE5394614900</RawData> <Group>19</Group> <Data>FE</Data> </Elpas> (2)徽章事件 <Elpas> <Type>BadgeEvent</Type> <DeviceId>00:11:22:33:44:55</DeviceId> <HostMAC>00:11:11:11:44:55</HostMAC> <Time>22:10:59</Time> <Id>00D330</Id> <EventType>Motion</EventType> <EventValue>1</EventValue> <Data>111</Data> </Elpas> (3)系统事件 <Elpas> <Type>SystemEvent</Type> <Subtype>Supervision</Subtype> <DeviceId>00:11:22:33:44:55</DeviceId> <HostMAC>00:11:11:11:44:55</HostMAC> <Time>18:49:36</Time> <Tamper>0</Tamper> <Voltage>0</Voltage> <DeviceIp>192.168.1.34</DeviceIp> <Messages>1289</Messages> <CRCErrors>0</CRCErrors> <NoAnswer>0</NoAnswer> </Elpas> (4)系统事件 <Elpas> <Type>SystemEvent</Type>
标准(unicast) Incoming: 7777;Outgoing: 7778 主动 RFID 网络如下图所示:
功能简介
1) 读写器(Controller,也称为 Reader)产生的消息 Controller 产生消息,并将消息发送到计算机 PC。这些消息是最常见的信息。 a. 徽章消息(Badge Messages):Controller 把接收到的每一条徽章消息发送到 PC,此消 息是系统中最基本的信息。 b. 徽章事件(Badge Events):与徽章消息相对应的是徽章事件,当以下状态之一发生变 化,Controller 把接收到的徽章事件发送到 PC。 Button press/Button release Motion/motionless Low Battery Badge lost, badge first seen c. 系统事件(System Events) Supervision Troubles Trouble description:
Trouble Tamper High Noise Level
Low Voltage Bus Capacity Exceeded
Send Command
RS-485 Error
Lost Away
Receiver Error
Description
Device cover is open Current noise level is above normal, may cause a badge message loss Device voltage dropped below the critical level An attempt to connect more than 16 devices to the RS-485 bus Device has failed to send ACK in response to Activation command Communication problems between RF reader and one of his slave devices Device didn't send any unicast messages for a specific period of time RF receiver failure
上述的基本功能都有一个 XML 实现
基本的 XML 标签:
Device Id: 唯一标识源或目标设备。 以太网设备:以太网 MAC 地址,例如:00:11:22:33:44:55
HostMac:消息源是从设备,则此标签的值是指主设备 SlaveId:消息目的地址是从设备,此标签值标识从设备 Type: 消息类型 (IPChange, Set parameters,Get Parameters,command) Subtype: 有关消息类型的额外信息 RequestId: 一些 PC 命令需要进行确认,这个标签值唯一地标识这样的命令:PC 稍
<EventData>123</EventData>
<EventMessage>Tamper</EventMessage>
</Elpas>
PC 发送到 Reader 上的命令
(1)命令:复位 reset <Elpas>
<Type>Command</Type> <SlaveId>00:11:11:11:44:55</SlaveId> <Subtype>Reset<源自文库Subtype> <Param>All</Param> <RequestId>12345</RequestId> </Elpas>
后可以验证“确认”(acknowledge)已经被 Reader 接收。 PacketId: 此标签值用来跟踪徽章标签消息的编号。由于使用 UDP 协议,PC 使用此
标签值来发现以太网的通讯问题和可能丢失的消息。
下面若干 XML 消息供模拟仿真使用: Reader 收集的数据,并发送到 PC (1)徽章消息 <Elpas> <Type>BadgeMessage</Type> <DeviceId>00:11:22:33:44:55</DeviceId> <HostMAC>00:11:11:11:44:55</HostMAC> <Motion>1</Motion> <Battery>1</Battery> <Buttons>3</Buttons> <Id>00D330</Id> <RSSI>221</RSSI> <Noise>43</Noise> <PacketId>4567</PacketId>
实现
主动 RFID 网络设备与 PC 之间的接口是基于类 XML 格式的,这种格式的 XML 文件没有 XML 标 准文件的 headers,不提供有关名字空间及编码的解释。每一个 XML 包文件限制最多有 32 个 元素,并且没有一个包的根。
这些 XML 包通过 UDP /IP 协议在 PC 和 Reader 之间传递。此协议是无连接协议,在服务器侧 不需要维护成千上百个连接,也不需要缓存来保存重传的数据包,“确认” (Acknowledge) 不需要在所有类型的数据包中实现,只需要在特殊的命令包中实现。
<Subtype>Trouble</Subtype>
<DeviceId>00:11:22:33:44:55</DeviceId>
<HostMAC>00:11:11:11:44:55</HostMAC>
<Time>23:45:47</Time>
<EventType>Tamper</EventType>
public interface Translator {
/**
*
* @param str 需要被翻译的单词
* @return 英汉互译后的内容,如果词典中不包含此单词返回 null
*/
public String translate(String str);
}
说明: 服务器端词典的容量不是考察的重点,可以使用数据库技术也可以使用 Map 在内存中保存少
相关文档
最新文档