Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

Elluminate Live! on Mac OS X: Goes to the Head of the Virtual Class

Elluminate Live! is a platform-agnostic, distance-learning, and conferencing solution that combines both web-based, synchronous connections and Voice over IP (VoIP) to Mac OS X, UNIX, Linux, and PC clients. The delivery mechanism used to develop this virtual classroom environment is Java Web Start, also a platform-agnostic tool but with distinct advantages for Mac OS X developers and clients.  A multitude of easy connectivity options is the most obvious reason, but for Elluminate Live! there are other reasons why the Mac is the best and the brightest: the power of Xcode, the functionality of the Web Kit, comprehensive support for Java, and the responsiveness of the Apple Developer Connection technical support team.



Playing Fair with Java and Winning

The virtual classroom is a simple concept: Put the instructor in one place, the students elsewhere—wherever it’s convenient—and let the class begin. The pervasiveness of local area networks (LANs) and the Internet make distance learning seem like a reasonable scenario. But how do you get everyone to use the same software and hardware configuration so that you don’t run into compatibility issues that will sink the project before it gets started? The developers of Elluminate Live! found the answer by deciding early on that it was to the advantage of their customers to treat all platforms as equals.  And thanks to the strengths of Mac OS X, those decisions actually provide Elluminate’s Mac users a more-than-equal experience.  

But we’re getting ahead of ourselves.  The need to treat all platforms as equals led the company’s development team to gravitate toward Java in 2000 when coding began.

According to Elluminate Chief Technology Officer Mike Mabey, Java was full of promise and platform-agnostic, “an up-and-coming language back then. At this point, we’re very pleased we made that choice.”

The decision to use Java gave them cross-platform functionality but still left the problem of delivering to users a consistent, up-to-date experience that was also easy for IT support departments to maintain. This is where Java Web Start enters the equation. First, migrating a Java application to Java Web Start is trivial, requiring no significant changes in the development process. Second, deploying a Java Web Start-enabled application requires just a few simple steps on a web server.

Once deployed, the client experience feels no different than starting up a desktop application. In the background, however, Java Web Start identifies the environment and calculates the correct settings. The Elluminate Live! launch process then detects the client’s system requirements, downloads platform-specific resources, and optimizes bandwidth use and start times. The user doesn’t encounter any complicated installation procedures with multiple progress bars, and the virtual classroom becomes a seamless part of the user’s desktop, just like a native application.

In the best of all possible worlds, every user’s experience would be equally simple and straightforward, but in the real world, Mac OS X users have an advantage. According to Mabey, Apple’s decision to include the JVM with Mac OS X makes supporting Mac users much easier; IT managers never have to install Java support on these machines. When Elluminate Live! launches on a Windows XP Professional computer, however, the Java Web Start application must not only download platform-specific modules but also the entire JVM. Other advantages of Mac OS X include security and workstation management considerations.

“If you’re on Mac OS X, there’s no need for the Java download, which is larger than our whole application,” says Mabey. “On the other hand, if you’re on a PC, downloading and running Elluminate Live! the first time requires admin rights to get the whole JVM downloaded and installed. The same applies to updates; you have to have admin rights. But on a Mac OS X machine, it doesn’t matter what kind of user you are. You can be up and running quickly.”

Mac OS X Advantages for Developers

Although the main components of Elluminate Live! are cross-platform modules, or Java “beans,” native OS and processor-specific code is included to support multimedia and VoIP communications for each platform. According to lead Mac OS X developer Doug Zwick, the partnership between ADC Technical Support and Elluminate has been a crucial part of Elluminate’s success.

“We had problems with our application-sharing technology and some performance issues with our application pushing,” says Zwick. “So we contacted Apple’s Developer Technical Support and received a code fragment on how to use OpenGL, and that solved many issues for us. Now our application push technology is considered the leader in the industry,” says Zwick.

Zwick explains, “We also use the Web Kit for our embedded web browser. When we had challenges shoehorning the Web Kit into the Java environment and problems with plug-ins that sometimes crashed the browser, ADC Technical Support helped us debug the crashing issue and create a workaround. Eventually, the code fix was rolled into the release of Mac OS X v10.4.”

Interestingly, building VoIP support into the Mac OS X version was relatively straightforward for the developer team, while the Windows developers faced a complexity of different sound card specifications on the PC side. Similarly, Apple has carefully kept the number of JVMs to a minimum, while there is a proliferation of various JVM implementations for PCs to test against.

In addition to its efforts to build real-time communication and multimedia that facilitate student/participant interaction, the Elluminate staff has focused on creating a product that is transparent to users. The Elluminate Live! development team faced another challenge in creating a Java GUI for the next release that closely matched the Mac OS X Aqua user interface and could also be adapted to the Windows and XWindows widget styles. Apple supplies Java GUI developers using SWING with the Aqua Look and Feel (ALF) library, which customizes the Java “look” so that it really looks native to Mac OS X users.

“With Java interfaces, there always has to be a certain amount of compromise,” Mabey contends. “But the ADC technical support team was an incredible partner when it came to skinning Elluminate Live! with an Aqua look and feel. They helped us implement a theme closer to Apple’s Human Interface Guidelines. They even focused on important details, such as the spacing of buttons and scroll bars that would work well on a Mac OS X machine, but also make sense on Windows or Linux.”

Learning to Speak Multilingual Intel

Elluminate’s 18-member development team had no trouble producing versions of its Java-based Mac OS X applications for Apple’s new Intel-based Macs. At the same time, Apple’s software developers had already ported the JVM bundled with Mac OS X v10.4 to the new processor architecture. Java Web Start detects the Intel processor, downloads the correct native code and it just works.

For Mac OS X-specific development, the Elluminate team uses Xcode. Final product builds are done using GCC and make for external targets, along with custom makefiles for each. And even though the audio code was written for the legacy Sound Manager stack, the Carbon framework worked well for the Intel port.

“For the native code, we needed to rebuild all of our libraries for the Intel processors,” Zwick explains. “We had two instances of endian issues that were easily fixed; other than that, it just worked. Java Web Start downloads the specific libraries for either Intel or PowerPC, and that gives us a 20 percent reduction in download size. Even though the Intel change came rather suddenly, the tools Apple supplied were up to the challenge. Apple certainly has a commitment to Java; there’s active development going on. With each release of the JVM, things have gotten better, and development appears to be accelerating.”

Inside Elluminate Live!

The whiteboard collaboration area, in which students and teachers can sketch out ideas or equations, is a key element of Elluminate’s virtual classroom. Instructors can use the whiteboard as a “push” window. There is also a “direct messaging” window for texting and a “participant info” window that shows who is online and what capabilities participants are granted by the classroom administrator. Elluminate Live! also features a web push technology that opens URLs locally on participants’ computers and has the capability of pushing Real Time Streaming Protocol (RTSP) URLs to QuickTime Player. The proprietary communications framework is designed to exceed user expectations in terms of higher-quality images and pushed application windows, lower network latencies, and the clearest audio, whether it is recorded speech, live speech using VOIP, or music accompanying multimedia.

“‘No user left behind’ is our motto,” says Mabey, “which means that we are always focusing on the quality of experience. The teacher or meeting admin has visual indicators as to whether everyone is online, as well as granular control over access to each virtual classroom’s resources. There are status indicators that update on-the-fly, and there is the ability to promote/demote participants in the classroom, mute audio, or even create breakout sessions for two or more participants. We even have time-shift capabilities for audio and video, where a user can catch up on an audio stream by briefly listening to what we call ‘the Chipmunks’ or skip frames to come into sync with other participants’ video viewers.”

The real-time experience also applies to participants who enter and leave the virtual classroom or meeting room.

“Closing the Elluminate Live! window and ‘leaving the room’ may not necessarily require logging back into the meeting or classroom on the next launch,” says Mabey, “although, because it’s real time, things may look different when someone comes back in.”

In addition to the client-side Java Web Start environment, Elluminate Live! features a cross-platform server process that functions perfectly on Xserve G5 hardware. The Elluminate Live! server software is almost 100 percent Java and is entirely resident in memory. Making the server software compatible with Mac OS X Server simply required that the developers repackage it in a different installer. More and more IT managers are now deploying the Elluminate Live! server on Xserve G5s.

“It is very easy to get it up and running on the Xserve platform,” Zwick says. “There isn’t any native code necessary. When we distribute server software for Windows, Solaris, or UNIX, we need to include a JVM, but not for Mac OS X Server, which makes installation quicker and easier.”

Going Beyond the Classroom

Elluminate Live! is first and foremost a tool designed by educators for educators in schools, universities, and corporations. As the program grows in capability and the number of Elluminate Live! licenses increases, the company wants to maintain its focus on instruction. Future projects might include branching out into assessment systems or content delivery. The Elluminate user group community, which is made up of teachers and IT managers from all over the world, often helps the Elluminate team come up with new ideas.

“One day, they took a vote and named themselves the Elluminati,” says Mabey. “It was their idea. They are active and vocal and help us out with development and testing quite a bit. Right now, we’re all focused on distance education, although in the future we’d like to move more into traditional education, such as typical classrooms and lecture halls, where our solution could be used much as it would for distance learning but with students who are physically present and participating with laptops, PDAs, or Tablet PCs.”

For more information about Elluminate Live! see the Elluminate website.