In the latter half of the 1980s and into the early 1990s, the Quantum Link online service for Commodore 64 computers offered user-to-user messages between concurrently connected customers,  which they called “On-Line Messages” (or OLM for short), and later “FlashMail.”  (Quantum Link later became America Online  and made AOL Instant Messenger (AIM), discussed later). While the Quantum Link service ran on a Commodore 64 , using only the Commodore’s PETSCII text-graphics, the screen was visually divided into sections and OLMs would appear as a yellow bar saying “Message From:” and the name of the sender along with the message across green singles sign in the top of whatever the user was already doing, and presented a list of options for responding. As such, it could be considered a type of graphical user interface (GUI), albeit much more primitive than the later Unix , Windows and Macintosh based GUI IM software. OLMs were what Q-Link called “Plus Services”  meaning they charged an extra per-minute fee on top of the monthly Q-Link access costs.
Modern, Internet-wide, GUI-based messaging clients as they are known today, began to take off in the mid 1990s  with PowWow , ICQ , and AOL Instant Messenger . Similar functionality was offered by CU-SeeMe in 1992; though primarily an audio/video chat link, users could also send textual messages to each other. AOL later acquired Mirabilis , the authors of ICQ;  a few years later ICQ (now owned by AOL) was awarded two patents  for instant messaging by the U.S. patent office. Meanwhile, other companies developed their own software;  ( Excite , MSN , Ubique , and Yahoo ), each with its own proprietary protocol and client ;  users therefore had to run multiple client applications if they wished to use more than one of these networks. In 1998, IBM released IBM Lotus Sametime ,  a product based on technology acquired when IBM bought Haifa-based Ubique and Lexington-based Databeam. 
The protocol was standardized under the name Extensible Messaging and Presence Protocol (XMPP).  XMPP servers could act as gateways to other IM protocols, reducing the need to run multiple clients.  Multi-protocol clients can use any of the popular IM protocols by using additional local libraries for each protocol.  IBM Lotus Sametime’s etime Gateway support for XMPP. 
Many instant messaging services offer video calling features, Voice Over IP ( VoIP ) and web conferencing services.  Web conferencing services can integrate both video calling and instant messaging abilities. Some instant messaging companies are also offering desktop sharing , IP radio, and IPTV to the voice and video features. 
The term “Instant Messenger” is a service mark of Time Warner and may not be used in software not affiliated with AOL in the United States. For this reason, in ed Gaim (or gaim) announced that they would be renamed ” Pidgin “.
Each modern IM service generally provides its own client,  either a separately installed piece of software, or a browser-based client. These usually only work with the supplier company’s service, although some allow limited function with other services.  Third party client software applications exist that will connect with most of the major IM services.  Adium , Digsby , Jappix , Meebo , Miranda IM , Pidgin , Qnext and Trillian are a few of the common ones.
Standard, complimentary instant messaging applications offer functions like file transfer, contact list(s), the ability to hold several simultaneous conversations, etc.  These may be all the functions that a small business needs, but larger organizations will require more sophisticated applications that can work together.  The solution to finding applications capable of this is to use enterprise versions of instant messaging applications.  These include titles like XMPP, Lotus Sametime , Microsoft Office Communicator , etc., which are often integrated with other enterprise applications such as workflow systems.  These enterprise applications, or enterprise application integration (EAI), are built to certain constraints, namely storing data in a common format.