This solution is a result of parallel development
efforts involving ADI and one of its
long time customers, targeted at developing
an IM application for Windows powered Pocket
PC (v 3.0) and Palm OS devices running OS
version 3.0. The development work is based
upon the IMIP-PLUS open protocol.
IMIP (Instant Messaging Interoperability
Protocol) - an open protocol developed by
IM-Unified (an interoperability forum in
which the client is a founding member together
with Yahoo, MSN and Excite@home). IMIP -
Plus - an IMIP extension, which supports
additional unique features that are proprietary
to the client’s IM server platform.
Clients, which implement the IMIP protocol,
can cater to various IM service providers
such as Yahoo, MSN, ICQ, AIM, Odigo etc.
IMIP - Plus is an extension to IMIP providing
additional functionality like simultaneous
connections to multiple IM providers and
other specific features like searching user.
The development work was carried out in
an environment where the severs were undergoing
constant up-gradation in order to support
various features and resolve server side
issues/bugs. This reflected in heavy change
management and had to be handled very closely.
The support for various IM services like
Yahoo, ICQ, AIM, and MSN was carried out
in iterative phases i.e. one IM service
at a time, as compared to supporting all
services at a stretch. Keeping this in mind
the design of the client application was
spilt into three subsystems viz. API Library,
Bridge and the User Interface. This approach
served a two-fold purpose; firstly, any
IM service supported on the server side
could be easily supported by the client
with minimal changes on the User Interface.
Secondly, since the development of the client
application is across platforms viz. Palm
OS and Windows CE, effort minimization could
be achieved during the client development.
This maximum code reusability resulted in
quick development and low maintenance issues.
The design goals were achieved very practically,
where in the IM services were supported
successively, as and when the server supported
them. Also, separating the User Interface
with well defined exposed bridge interfaces
resulted in faster development across platforms.
In-spite of the extreme change management
involved, the development activity was never
affected with all changes recorded, notified
and accommodated in the project schedule
in a planned and phased manner. |