Flash is widely considered the technology of choice for real-time audio and video, but Java's open standards-based approach is essential to many developers and clients. In this Java solutions profile, four developers explain how they're using Java to build real-time Web conferencing and collaboration software, and also reveal their wish list for improved client-side media support on the Java platform.
"Without Java, WebHuddle would not exist," says John McCaughey, creator of this open source Web conferencing tool. "Java's rich runtime library and cross-platform, cross-browser support allowed [WebHuddle] to be developed in less than two years."
|About Java solutions profiles|
|The Java platform supports a tremendous range of application development, some of it famously visible and some working quietly behind the scenes. Java solutions profiles give you a window into how other developers are using Java, especially in some of the lesser known domains. See the Project specs worksheet to learn about the development platform and systems architecture for projects profiled here.|
"The only other contender in my mind would have been Flash. As we see on YouTube and other sites, Flash performs well. In the end, I don't think Flash is quite as platform-independent as Java is. Thus, it would have required much more testing to get it to work correctly on all platforms," says Malcolm Patterson, one of the main developers of Internet phone service The Switchboard.
"The Java Runtime Environment provides quite good native-coded libraries for image manipulation, image and data compression, and socket and HTTP networking," says Ed Hardebeck, vice president of engineering for Glance, a desktop sharing tool. "Java Platform (JRE) classes in
java.util.zip were particularly important to us in in choosing Java as a platform."
Another reason why developers are choosing Java for Web conferencing: Users can quickly join conferences without having to download and install large-sized, complex software. This entices people who are more accustomed to accessing Web services, like webmail, through their browsers.
"The extensive class libraries available in the [JRE] allow us to produce a very small and lightweight client. This removes almost all download time and allows the users to get into a session almost instantly," says Hardebeck.
Java meets Flash
Even though Vyew uses Flash as part of its service, its developers also built the service using Java in order to scale back on download times. "It allowed us to provide our customers with powerful features that normally only an installable desktop app could provide. It integrates smoothly with our Flash Web app for a continuous communication link from the desktop to all logged-in Flash clients," says Tim Hon, product manager of Simulat Inc., the company behind Vyew.
"Flash speaks to Java in two scenarios," says Hon. Getting Flash to the Java server on the backend "is done over a standard TCP/IP network socket, using an XML-based protocol. This is working great."
"Issues we had to deal with on the Flash-to-Java backend are mainly character encoding issues, such as Unicode vs. Latin, which aren't a big deal."
Vyew's developers are experimenting with having the Java applet open a local socket connection directly to Flash.