Accessibility
 
Home / Developer Center / Blackboard Sample Application

Developer Center Article

Timothy Chi

Timothy Chi
Senior Director of Technology
Blackboard Inc

 
Using Blackboard Building Blocks with Macromedia Flash MX Technology


Developing web-based, data-driven applications using Macromedia Flash MX Technologies has now reached a new level. A joint development effort between Macromedia and Blackboard, Inc. produced a real-world application for managing group data within Blackboard through a Macromedia Flash MX interface (using Macromedia Flash Remoting). This application is the first of it's kind: one that bridges the new Macromedia Flash MX technologies with Flash Remoting capabilities and mapping objects and calls through to the Blackboard Building Blocks API interface.

What is Blackboard Building Blocks?
Blackboard Building Blocks is a free framework for developing external applications and "hooking" them directly into Blackboard. More specifically, the Blackboard Building Blocks framework provides an API suite and documentation for packaging and deploying applications within the Blackboard platform. Blackboard Building Blocks allows third-party vendors, developers, and institutions to use the Blackboard platform to build new applications, extend existing technologies, and integrate them into external (back-office) systems.

Creating and deploying an application (otherwise know as a System Extension) for the Blackboard platform is a multi-step process that includes planning, code development, packaging, and deployment. The planning and code development portions mimic basic Java development projects, while the packaging and deployment utilize the Java Servlet 2.2.x specification for Webapps.

To date, over 20 System Extensions have been created. Utilizing the numerous objects and methods exposed via the Building Blocks API's, these applications and tools extend the Blackboard platform in areas such as content management, instant messaging, and handheld support. Additional documentation and examples for creating and deploying System Extensions are available at at the Blackboard Building Blocks wesbite.

Building a Macromedia Flash-based System Extension
Blackboard and Macromedia sought out to jointly develop a Macromedia Flash-based System Extension that could leverage the power of the Macromedia Flash environment and use the hooks that were available using the Blackboard Building Blocks API. The main design goal was to develop a "drag and drop"-based user interface for managing groups within Blackboard. The new proposed Group Management interface would be easier to use, reduce the number of clicks required, add new randomization functionality, and condense the number of necessary screens to three.

Communicating between Blackboard Building Blocks and Macromedia Flash MX
The first problem that we encountered was identifying a way for the Macromedia Flash client to be able to communicate with the Java Building Blocks layer. This problem was solved with Macromedia Flash Remoting. This technology, deployed within the System Extension as a servlet, allowed for the Macromedia Flash environment (ActionScript) to map remote calls to Java objects that were created. Since System Extensions are deployed as "webapps" already, including the Flash Remoting servlet inside, the Blackboard System Extension package required nothing more than placing the Flash Remoting JAR file (the file flashgateway.jar) in the /WEB-INF/lib directory and then editing the web.xml file to register the servlet.

 

Example 1.1 : Inside the web.xml file for a Blackboard System Extension (code sample opens in new window)

 

Creating the Data Access Layer
Next, we spent some time mapping out the ActionScript objects and the corresponding Java objects. We spent most of the time matching up data types and identifying the methods that would be needed.

After this step was completed, Blackboard developed all of the custom Java objects, using the Building Blocks API's in order to access, store, and retrieve data from Blackboard. Essentially, this acted as a data-access layer that provided an additional abstraction layer to the Blackboard API's. We created a Façade class that included methods getCourse, createGroup, removeGroup, updateGroup, createAssignments, removeAssignment. These methods encapsulated the basic functionality of the Group Management tool.

 

Example 1.2 : Java Code using Building Blocks to for the createGroup method (code sample opens in new window)

 

Creating a launch point
In order to launch the Macromedia Flash client, Blackboard also created a "launch.jsp" page that contained the <OBJECT> and <EMBED> tags for launching the client. In order to pass the initial course Id and gatewayURL into the application, Blackboard used a new feature of Macromedia Flash MX called "Flash vars." On the "launch.jsp" page, we included some <PARAM> tags that would pass the course Id and gatewayURL into the Macromedia Flash application for initialization.

 

Example 1.3 : Inside the launch.jsp page (code sample opens in new window)

 

Deploying against Weblogic on the Blackboard server
The last step in getting everything to work was to modify the application server's security policy in order to allow Macromedia Flash Remoting to access local Java objects. The Blackboard platform uses the Weblogic application server. In this case, the weblogic.policy file needed to be slightly altered to grant Macromedia Flash Remoting the proper privileges to access methods in the Façade class.

 

Example 1.4: Inside the weblogic.policy file (code sample opens in new window)

 

In the end, the Group Management Tool was packaged up as a System Extension (WAR) file. It includes a 30-day trial version of Macromedia Flash Remoting.


Conclusion
Blackboard is enthusiastic about the new world of potential that the Macromedia Flash environment exposes to e-Education. Macromedia Flash breaks the traditional barriers imposed by HTML, bringing more interactivity, dynamic content, and easier to use tools directly into the Blackboard platform. New interfaces incorporating "drag-and-drop" capabilities, sound cues, and graphic animation can now be "hooked" into the Blackboard platform.



About the author
As Blackboard's Senior Director of Technology, Timothy Chi is instrumental in guiding the company's product direction. He co-founded Blackboard, Inc. in June of 1998 and has since headed up the Research and Development department, evaluating new technologies for the e-Learning market, as well as establishing key strategic partnerships within the Internet industry. Timothy graduated from Cornell University with a Bachelors degree in Operations Research and Industrial Engineering.