wood burning stoves 2.0*
The moose likes Sockets and Internet Protocols and the fly likes Instant Messaging in Java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Sockets and Internet Protocols
Bookmark "Instant Messaging in Java" Watch "Instant Messaging in Java" New topic
Author

Instant Messaging in Java

Iain Shigeoka
Greenhorn

Joined: Mar 14, 2002
Posts: 20
Howdy Y'all,
JavaRanch is giving away four copies of the book "Instant Messaging in Java: The Jabber Protocols <http://www.amazon.com/exec/obidos/ASIN/1930110464/ref=ase_electricporkchop> ".
To qualify for the drawing, all you have to do is participate in thi forum ("Sockets and Internet Protocols <http://www.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&f=8> ")!
Thanks to Java Ranch for hosting the giveaway and Manning Co. <http://www.manning.com/> for the book's!
I'm ready to answer any questions you may have, and would love to hear your comments on the book or on Instant Messaging (IM) in general.
I'm especially interested to hear people's experience developing, customizing, extending or deploying instant messaging systems.
-iain
Ruilin Yang
Ranch Hand

Joined: Jan 06, 2002
Posts: 150
Could you give us a brief description of the instant message system ?
Thanks
Ruilin
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Hello Iain. Thanks for talking to us today.
[ June 18, 2002: Message edited by: Gregg Bolinger ]

GenRocket - Experts at Building Test Data
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Are there any pure JAVA clients available that use the JABBER protocal? All I can find on the web site for jabber are C/C++ implementations of clients.
I know that there is a development library for JAVA called JabberBeans, but what about the clients themselves?
Sorry this doesn't have much to do with the book, but I thought this would be a good place to ask anyway.
Thanks.
Iain Shigeoka
Greenhorn

Joined: Mar 14, 2002
Posts: 20
Good questions.
Ruilin,
The book focuses on creating Instant Messaging in Java. I use the Jabber protocols (www.jabber.org) in the examples and as a reference for how this can be done but I tried to keep the discussion general because there are other IM protocols out there.
Jabber is an open source, XML, distributed client-server IM protocol. Each term in turn is:
open source - implementations, standards and documentation are released under GPL.
XML - All data sent in the Jabber protocols is well-formed XML.
Distributed client-server - the messaging architecture resembles email. Clients connect to central servers. Jabber servers control a "Jabber domain" and communicate between each other when messages must be passed from a user in one domain to another.
Jabber IDs follow email format so iain@shigeoka.com is a jabber Identifier for sending Jabber IM messages to user "iain" at the domain "shigeoka.com".
You can learn a lot more on it at the jabber site (www.jabber.org) or pick up my book. Seriously, if you go to a bookstore and read the first chapter it should give you a good background on Jabber and IM.
-iain
Iain Shigeoka
Greenhorn

Joined: Mar 14, 2002
Posts: 20
Gregg,
Since your question involves Java and Jabber, it's close enough to the book to count for me. JabberBeans is definitely the most common thing I've seen out there as far as Jabber in Java.
I recall someone doing some Java development using JabberBeans but I don't think it ever got past the early alpha stage.
Al Sutton has a J2ME Jabber client. So does Streampath (www.streampath.com). I think there are other J2ME Jabber clients that will be shipping soon as part of the flood of Java smartphone market push.
From what I've seen desktop clients are primarily native with C/C++ being the most common (many of them using JabberCOM).
The Jabber protocols are relatively simple to access in Java once you work around the fact that you have to incrementally parse an XML stream (most Java parsers are setup to parse an entire XML document start to finish before giving you control/access to the data).
So the real difficulty is creating a compelling, easy to use Java GUI (obviously a pretty big challenge). In fact the Jabber protocols are so simple to handle (its pretty much like writing an email client) that writing a client is really an exercise in GUI development. And I think that's why some people start in Java but most end up in Visual Basic, Delphi, or C++. I was even considering writing one in Flash.
I do think that a Java client is a very worth while product. Obvious places include J2ME, applets, servlets, and enterprises that have committed to Java for their infrastructure. I look at LimeWire (www.limewire.com) and keep my hopes alive for a great Jabber Java client.
-iain
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Thanks and in doing some searching on Google, I actually found a couple of descent JAVA clients. They could use some work, but a good start none-the-less.
Juanjo Bazan
Ranch Hand

Joined: Feb 04, 2002
Posts: 231
I would like to know what are the main points to decide wich protocol i have to choose to build my messaging app, and the pros and flaws of every candidate protocol.
Thanx!
Juanjo
[ June 19, 2002: Message edited by: Juanjo Bazan ]
Iain Shigeoka
Greenhorn

Joined: Mar 14, 2002
Posts: 20
Originally posted by Juanjo Bazan:
I would like to know what are the main points to decide wich protocol i have to choose to build my messaging app, and the pros and flaws of every candidate protocol.
[ June 19, 2002: Message edited by: Juanjo Bazan ]

It would be pretty hard to do a comprehensive survey. There are dozens if not hundreds of protocols that already exist or are being developed today.
In evalutaing I'd probably ask the following questions:
What network will I use? If you have tcp/ip you can use sockets. If you have Java at both ends you can use RMI. However you may be stuck with HTTP only, or SMS, etc.
What clients will be used? Do you need to support embedded devices? Desktop clients? Web clients?
Do you want/need/can afford to have a server? You can use peer-to-peer technologies if not (gnutella, JXTA, etc).
What level of security do you need to have? Some protocols give you better security than others.
What level of reliability do you need to have?
Can you afford to pay for your solution? There are some open source alternatives but many of the high end ones are proprietary.
What kind of data do you need to pass over the IM network? Streaming media files? Large data sets? Or just simple text chat?
Do you need to have multiple vendors for solutions? Open source like Jabber has some advantages here but other comomn technologies exist such as Java Message Service (JMS), CORBA, etc.
Do you need to have commercial support?
Do you need to integrate with other desktop or server infrastructure. Like it or not MSN Messenger and Passport is well integrated into MS products and has a lot of advantages in that light (like integration into Outlook). Yahoo messenger can integrate well into their other web offerings, Lotus IM and Domino, etc etc.
Once you answer these questions, you can start to evaluate the alternatives and narrow down the field to some small enough group to do indepth research and take it on some trials.
Sorry there aren't easy answers for this one.
-iain
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Instant Messaging in Java
 
Similar Threads
I wanna Kickstart for JSP!
Study Resources for SCDJWS Exam
And the Winners Are
"Instant Messaging in Java: The Jabber Protocols" - Release Announcement - Manning
Instant Messaging In Java - The Jabber Protocols by Iain Shigeoka