* Create a class that implements Message and stores the information that should flow across the network. Be careful to follow the guidelines for messages specified in Message
On the side that is sending the message:
* Create a MessagePacker for this type of message. It must tell us which type of QualifiedObservableReport it processes and have a pack() method that translates that QualifiedObservableReport into the appropriate Message.
* Put your MessagePacker in the communication.packers package so that it will be detected by MessagePackerSet
On the side that is receiving the message:
* Create a MessageHandler that processes the incoming message.
* Put your MessageHandler in the communication.handlers package so that it will be detected by MessageHandlerSet