This is the first of a series of interviews from key people who are putting Java to serious use. We're proud to have Steve Rock from EGBS for a truly interactive chat session that spanned halfway 'round the world. EGBS is responsible for building and deploying a specialized video/media server that allows, among other things, both content producers and users to easily hot link particular areas of live video.
<[email protected]> I'd like to welcome Steve Rock, vice president of EGBS. Thanks for taking the time to speak with us, Steve.
<Steve Rock> Thank you for this opportunity. I've read JDJ for the past three years. I find your magazine highly useful.
<[email protected]> Can you give us a brief overview of what EGBS is up to? I hear you're doing some pretty cool stuff.
<Steve Rock> At EGBS we specialize in video production and streaming to broadband users on the Internet.
<[email protected]> Is this using your Spectrum Server product?
<Steve Rock> Correct. As a test bed for developing our Spectrum Server Product Suite we've built two music Web sites that provide users with the choice of which music videos they wish to view, anytime, anywhere - HitMusic.com and IfItRocks.com.
<[email protected]> Very slick sites. Tell us what makes Spectrum different from more conventional streaming technologies, such as RealAudio.
<Steve Rock> The basic streaming technology is similar. We use the QuickTime format because the Java API gives us great control over the internals of the video. However, what sets our Spectrum Products apart is that we've built a framework that allows us to build highly interactive applications in which the user can mark up the video, be it video bookmarks, drawing on the video, or launching URLs, which are based on the context, in an HTML browser as the video plays.
We've basically developed a suite of tools that allows production teams or even end users to treat a video as a time-based drawing template that can be wired to any type of interactivity.
<[email protected]> So to illustrate this a little more, if we were watching the Charlie's Angels movie from a Spectrum Server and Lucy Liu picks up her mobile phone to make a call, the viewer can click on the mobile phone and be taken to the phone's Web site for more information without disrupting the flow of the movie. Is this correct?
<Steve Rock> Exactly. The user could also pause the movie as it's playing and add bookmarks with a note attached. By clicking on a bookmark in a list, the user can jump to that point in the movie. These bookmarks can be indexed and searched by keyword.
<[email protected]> Wild. So the user, not just the producer, can bookmark particular movies?
<Steve Rock> Yes. Anything a producer can do, an end user can do. The user can even make drawings on the movie, such as an editor circling a piece of the movie he or she doesn't like, and add a description. This can be saved and forwarded to other editors.
<[email protected]> What has the advertising/movie industry commentary been on this technology? It must be a godsend to them, especially with the trend in Hollywood for more product placements within mainstream movies. Your technology effectively gives them the power to capture users without forcing them to remember ugly URLs.
<Steve Rock> We've received fantastic feedback. We have several opportunities opening up for us; I can't provide the details at this point. The reason the industry is so excited is that with other tools on the market, to build all the interactivity I mentioned, a lot of manual production takes place. Everything is basically hand-coded. Our Spectrum Suite removes this manual programming process and puts the power into the end users' hands.
One exciting agreement we've just entered into is with a major film studio to produce a "Webisode" TV show on the Web that will provide the viewer with multiple paths for viewing each episode.This is a very exciting project for us because we'll be incorporating all the functionality we've been talking about.
<[email protected]> Can you provide details for that? Or is it all hush-hush?
<Steve Rock> It's a joint venture with Screen Gems, a major film studio, to produce TV shows for the Internet.The question is, we have TV, why would you want to put a TV show on the Internet. We believe the Internet and TV will merge at some point, and this project is one of the first to expand on the completely passive TV experience to immerse the viewer into the show. They can choose how the plot progresses and what plot lines to follow.
We just had a press release go out on www.hollywoodreporter.com/archive/hollywood/current/webwatch/webwatch08.asp.
<[email protected]> Let's get behind the functionality and discover what's happening in the background.
<Steve Rock> What would you like to know?
<[email protected]> Well, call us old fashioned but being a Java magazine, tell us how you're using Java in this? Take us behind the scenes as it were.What's going on in the background? How are you using Java to achieve this level of functionality?
<Steve Rock> Java is immersed in every aspect of the project. One reason we call it Spectrum is because this technology can be scaled from a stand-alone Java application that runs off a CD-ROM to a full-blown Web site with database persistence storage.
<[email protected]> Excellent. So are you using any J2EE APIs or the Java Media Interface?
<Steve Rock> The Web site is completely built upon J2EE. Our design has been modeled after the Sun Pet Store Demo but uses XML for all configuration.
<[email protected]> Spectrum is a J2EE application. Is this primarily EJBs or Servlets?
<Steve Rock> The Spectrum Web component is a combination of EJBs, Servlets, and JSP pages. All the business logic is in the EJB tier, the Web tier is mainly for presentation, and the client interface for the application is Swing.
<[email protected]> You mentioned earlier that you use the QuickTime format for the video. Is this stored within a database or fed from static files?
<Steve Rock> Well, the QuickTime format means a movie file is comprised of many tracks that are time-based. These tracks can be video tracks, audio tracks, text, etc.
<[email protected]> Where are these tracks originating?
<Steve Rock> The video itself lives in a separate static file.
<[email protected]> Are you reading this via the [java.io] interface in real time?
<Steve Rock>This is all proprietary to the QuickTime API for Java.
<[email protected]> At what point do you add your content to the live stream, for example, the hot links?
<Steve Rock> I can't divulge all the details, but we can create QuickTime Events within the reference movie. So in viewing mode, as the movie plays, we can capture these events and based on an ID number tie them to a database. At this point we can do anything we want within Java.
<[email protected]> I'm interested in looking at the overall system. You're in an environment where performance is critical. You're required to guarantee a throughput and I was wondering if you found Java to be up for the task?
<Steve Rock> Performance is critical, and Java poses no problem with that. The bottleneck isn't Java; it's usually the Internet connection.
What was more important to us was scalability from stand-alone systems to a full distributed system. Java is ideal for this because we build EJBs that almost mirror the same bean that's used in a stand-alone application.
<[email protected]> So at the heart it's the same code?
<Steve Rock> The business components are basically the same code. Of course the user interface is completely different - Servlets and JSP for the Web site and SWING for the stand-alone application components. Using the model-view-control design helped us separate these
<[email protected]> You seem to be using the complete, dare I say, spectrum of the Java API!
<Steve Rock> You got it!
<[email protected]> Can you tell us if you have noticed a significant difference between the application servers you've deployed and tested with?
<Steve Rock> I hope I don't step on any toes with this hot topic, but the answer is a definite yes!
<[email protected]> Honesty is never stepping on any toes - you're in an environment where performance is key. Tell us what you found.
<Steve Rock> iPlanet Application Server may perform quite well in production, but I don't know - I never got that far.
<[email protected]> What are you running hitmusic.com with?
<Steve Rock> Their development and deployment environments were so lousy that we couldn't build anything in a reasonable amount of time.
We're currently running hitMusic with WebObjects. This app server is fairly easy to develop with, but doesn't hold up well in production. We have to reboot it every two days because of memory leaks.
<[email protected]> With respect to specific app servers, are you using any vendor-specific libraries or are you pure J2EE?
<Steve Rock> We're trying not to use any vendor-specific code at all to give us the flexibility to change as needed.
I haven't tried moving our J2EE code across vendors yet, but it seems that required changes are minimal.
<[email protected]> Did you look at any other technology before choosing to go with Java?
<Steve Rock> Not really. A few years ago I chose to invest my time in becoming an expert in Java, and I've been greatly rewarded. As VP of engineering, I've
standardized our company on Java. I'd need a real strong case to choose another platform.
<[email protected]> And in the words of Prince George from "Blackadder" ...hurrah!
Well Steve, I'd like to thank you for taking the time to give us our first-ever JDJ-IRC chat interview.
For more information on the Spectrum Media Server visit: www.e-gbs.com/.
Alan Williamson is CEO of the first pure Java company in the UK, n-ary (consultancy) Ltd (www.n-ary.com), a Java solutions company
specializing in delivering real-world applications with real-world Java. Alan has authored two Java servlet books and contributed to the servlet API.