Identifies a contained value. An {@code Envelope} object combines a status value, an identification objectand a scope name. The {@code Envelope} object allows the use of standard Javatypes when a Producer service can produce more than one kind of object. The {@code Envelope} object allows the Consumer service to recognize the kind ofobject that is received. For example, a door lock could be represented by a {@code Boolean} object. If the {@code Producer} service would send such a{@code Boolean} object, then the Consumer service would not know what doorthe {@code Boolean} object represented. The {@code Envelope} object containsan identification object so the Consumer service can discriminate between different kinds of values. The identification object may be a simple {@code String} object, but it can also be a domain specific object that ismutually agreed by the Producer and the Consumer service. This object can then contain relevant information that makes the identification easier.
The scope name of the envelope is used for security. The Wire object must verify that any {@code Envelope} object send through the {@code update}method or coming from the {@code poll} method has a scope name that matchesthe permissions of both the Producer service and the Consumer service involved. The wireadmin package also contains a class {@code BasicEnvelope}that implements the methods of this interface.
@see WirePermission
@see BasicEnvelope
@author $Id: f00816c73a580110d13750ab217369fef8f11b7e $