We've demonstrated the use of infopipes and ISG by developing a multimedia-enhanced instant messaging (IM) system. Instant messaging systems are being focused on for future communication tools not only for PCs but also for networked consumer devices. As the first application to demonstrate the use of infopipes and ISG, we've added the image attachment functionality to the Jabber Instant Messaging (Jabber or JIM) system.
Messages are transferred from a client to another via a Jabber IM server. The IM client on PC, which client incorporates the image attachment functionality for this demonstration, may attach an image to a message for another IM client. Here, we assume the client the other side is a Palm device. In this case, the quality of an image should be adjusted to the requirement of the Palm device, which has only 160x160 pixel black and white display. Since such a networked appliance has only limited resources, it is desirable that the processing element is moved away from the client to the middle of infopipes, or wherever in the information flow that there is sufficient processing power.
Figure 5: The Use of Image Converter Infopipe with a Palm Device
More particularly, the image attachment functionality is
implemented by adding some tags, such as
Content-Body, to the
original Jabber messaging stream. The attached image is encoded in
base64 and treated as a part of the XML stream. Since the enhanced
tags represent the type and the encoding format of image, the Image
Converter Infopipe and the receiver side client can do appropriate
procedures. The following is the example of the messaging stream that
includes an attached image.
<message> <subject>Testing of the Image attachment</subject> <body>Let me send an image for testing...</body> <image> <Content-Type>Image/Jpeg</Content-Type> <Content-Transfer-Encoding>base64</Content-Transfer-Encoding> <Content-Body>0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADA P7/CQAGAAAAAAAAAAAAAAAaAAAAAQAAAAAAAAAAEAAAAwAAAAEA ... 5wMAAHQEAADyBAAAgAUAAO8FAAB8BgA</Content-Body> </image> </message>
The Image Converter Infopipe does two things: one is to reduce the size and number of color for the Palm display, and the other is to move the base64 decoding function away from the Palm to the Infopipe because of the limited processing power. In the initial implementation, only the former function was performed by the infopipe, however, we moved the function to the Infopipe after we recognize that the significant overhead exists in the function. As Figure 6 illustrates, the JIM client for the Palm device retrieves a decoded image via HTTP; thereby, execution performance of the image attachment on the Palm device has become practical. The following is the the example of the messaging stream that includes the converted image by the Image Converter Infopipe.
<message> <subject>Testing of the Image attachment</subject> <body>Let me send an image for testingc</body> <image> <Content-Type>Image/X-Bmp</Content-Type> <Content-Transfer-Encoding>X-URL</Content-Transfer-Encoding> <Content-Body>http://morimori.cc.gt.atl.ga.us/image.bmp</Content-Body> </image> </message>
Figure 6: What does the Image Converter Infopipe do ?