New York University
Computer Science Department
Courant Institute of Mathematical Sciences
Course Title: Extreme Java Course Number: g22.3033-007
Instructor: Jean-Claude Franchitti Session: 5
One of the two basic problems that the virtual classroms environment is intended to solve is how to integrate SMIL presentations into a two-dimensional chat room framework used for education purpose. One of the chat room frameworks suggested for the implementation of the virtual classrooms environment is the one distributed by onchat.com. You are encouraged to visit www.onchat.com, to become a member, create your own room, and obtain onchat a pager to communicate with your online "buddies". Once you create a room, you can make it private and allow selected members (a.k.a., “buddies”) to access it.
As an alternative, you can use a similar graphical chat environment called thePalace. Communities.com, the company that distributed thePalace has been keeping a low profile while preparing the release of a new product based on a J2EE-compliant scalable architecture. After careful evaluation of various online 2D and 3D graphical chat environment, it appears that onchat.com provides an environment that is very similar to thePalace and is based on a simpler architecture. In particular, thePalace client software was written in C++ and required the use of JNI to interact with Java programs. The virtual classrooms specification posted is based on thePalace software. You should review the overall architecture suggested in that document for illustration purpose. Note that you are also free to evaluate and use other online graphical frameworks to implement your project. In particular, we are only looking at extending the onchat framework in this document. We plan to study the CORBA, RMI, and EJB-based frameworks in more detail as they can be more easily extended via Java programming to support the virtual classrooms application services described in the proposal and specification documents.
To understand the context for the virtual classrooms e-Business application, you should think about communities-based environment as virtual worlds in which various users can share information and perform activities in real-time. Most recently, MP3-based distributed framework (see www.audiogalaxy.com) have focused on enabling the real-time sharing of music. This type of activity combined with chat, and the ability to evolve in a 2D or 3D framework to visit various rooms are all part of systems classified as online community-based systems. In this particular context, the goal of the virtual classrooms application is to explore the benefit of using XML and Java technologies to support the sharing of multimedia presentations, which may include a mixture of audio, video, and graphics.
The virtual classrooms application also suggests the use of XML to support the management of deferred chat logs. Basically, graphical chat room users may decide to visit a room to attend multimedia presentations. As they do so, they may come up with questions and ask them while they visit the online classroom. A possible solution would be to allow these log files to be managed as XML documents that could be collected from the various online students and merged into a single Q&A XML file. An online instructor would use these Q&A files as a basis for providing his answers and publishing them periodically by making them available as links in the online classroom.
The remaining part of this document focuses on suggesting various preliminary solutions for enabling the integration of SMIL presentations in an online graphical classroom.
Solution Decision Criteria:
Clearly, there are many ways to solve this problem. You should first determine what makes one method more appropriate than another. The following are relevant decision criteria:
1. Adding SMIL presentations to an SMIL archive should be fast and easy.
2. If this were a "real world" scenario, we would want the integration of SMIL documents to require minimal knowledge of the architecture of the graphical chat environment and minimal technical skill so that anyone could create presentations and integrate them.
3. We want to have a highly continuous application: we never want to have to shut down our graphical chat server.
4. We want to stay as thin client as possible to reduce maintenance and deployment costs.
5. The SMIL document requires minimal manipulation to be usable so that our system is fully compliant with SMIL so that anyone can submit SMIL presentations. Also, the more manipulation we have to do, the more room there is for error and the longer it takes for SMIL presentations to be published.
6. Our SMIL documents should be fast and easy for our users to access.
There are several entry points into a typical graphical chat framework. Here are some alternative solutions to our integration problem:
A. Client-side integration via vendor published API.
The idea would be to write Java client code that launches a browser and points it to a URL for a SMIL presentation. In fact, VB 6 has a browser object for which you can set a default location. So, you could create a ChatClientBrowser in VB and call it from your Java client code. If we wanted to make the presentations which come dynamic, you could write a client-side Java program which communicates with a servlet that pulls the locations of SMIL presentations out of a database via JDBC.
A. Server-side integration via vendor published API.
B. You can include client hyperlinks that point to a URL for a SMIL presentation. Users with G2, Soja or GRINS installed can view the presentation after downloading it.
C. You can add a hyperlink to a servlet, which generates a dynamic list of SMIL files in the file system. The SMIL presentations are located on a Web server which also has the SOJA Applet installed.
Evaluation of Candidate Solutions:
A. Client-side API:
1. Adding SMIL presentations requires entry of the location into a database. That means we have to create and maintain a database and database front-end application. (Not to mention, front end application users.)
2. Adding SMIL documents could require no technical knowledge if we made the database front end easy enough to use.
3. We never have to shut down the graphical chat server to add, update or delete SMIL presentations.
4. Our client becomes a little larger. We could write a batch program which puts the java client code in the plugins/startup folder. However, this approach is platform-specific and we would need to rewrite the batch file for the Mac if we decide to deploy on it.
5. SMIL documents require no modification.
6. The user can quickly access SMIL presentation.
Overall: This is a decent solution, but work intensive and client-heavy. It also requires the availability of a client API, which is not available for the onchat software.
B. Server-side API: Due to the lack of documentation available from onchat.com, this option is not recommended.
C. Multiple SMIL hyperlinks:
1. Adding SMIL presentations is easy: you just have to add hyperlinks to the within the client rooms:
2. This solution adds hyperlinks to the client, and requires the user to download G2, GRINS, SOJA or any other SMIL player.
3. The SMIL document may require modification by the user when he downloads it. The three SMIL viewers have different levels of support for SMIL. For instance, SOJA will not play .wav files, so if a user downloads a SMIL presentation with a .wav file in it, she will have to go into the code and remove the <audio> tag in order for her SOJA player to play the file. It is clearly better for such administrative tasks to be done on the server side one time instead of multiple times on the client by potentially less skilled people.
4. User access of SMIL presentations is relatively easy – presentations should open right away after being downloaded.
Overall: This solution requires too much administration and Server down time.
D. Single hyperlink to servlet list:
1. Adding SMIL presentations is as easy as porting them once to the Web server.
2. We have to make hyperlink entries similar to the one discussed in C.
3. Room owners are responsible for adding servlet hyperlinks to their rooms.
4. This is a thin client solution. Users do not even need the SMIL player because we can install SOJA on the Web server. Moreover, we can test the presentations in SOJA before deploying them: So, we know that the SMIL viewer is compliant with the presentations and we know exactly how the SMIL presentations will appear in the viewer. As we have learned from the IE/Netscape browser wars, it is much easier if you do not have to think about browser idiosyncrasies.
5. The SMIL presentations will require little rework. Even more important, the people doing the rework will be the ones who know how to code SMIL, the presentation creators.
6. SMIL presentations are relatively easy for users to access. They just have to click the hyperlink in the chat room and then choose the presentation they want to view.
Overall: Choice ‘D’ is the best option because it requires very little maintenance and is thin client.
Solution Choice and Implementation:
Assuming choice D is selected.
Step 1: Install Apache and Jrun on Windows ’98.
Step 2: Install SOJA on the server, in a subdirectory under Apache’s htdocs directory.
Step 3: Include a hyperlink to a servlet in your own chat room. This servlet (located in the servlets directory of Jrun) is supposed to dynamically query another directory under htdocs for .html files and return a menu of hyperlinks to these files.
The user would simply click the room hyperlink while in a graphical chat room and then click one of the menu items from the pop-up browser which displays the servlet’s results. The menu item the user clicks will navigate her browser to a .html file that contains a SOJA applet tag that points to a SMIL presentation.
This solution should work on UNIX, but does not work on Windows ’98 because Java’s Runtime.exec() method does not seem to return buffered data on Windows ’98. There does not seem to be any information regarding this issue on Javasoft’s site to no avail.
Modify the previous solution architecture by replacing the servlet with a RegistryCreator.class. The user runs this program at the command line and it generates a SMIL presentation that contains the menu of hyperlinks. The drawback of this approach is that the user needs to rerun this program every time she wants to add a SMIL presentation to the archive. The program also deletes the existing registry.smil file and the links it contains before replacing it. This could potentially cause some OS level file sharing problems. The program would have to be run when users were not accessing the system. This increases the amount of time you have to wait to publish a new presentation.
SMILregistry.smil OnChat Server Popup browser OnChat client SOJA Applet RegistryCreator.class registry.htm SMIL Archive SMILL SOJA Applet Popup browser Menu hyperlink Servlet Apache 2 3 4 1