1. Portals and repositories
TELS has developed a portal front-end called WISE 3.0 that is focused on user registrations and grouping:
- Allows registration as a student or as a teacher/researcher. These two categories of User are provided with separate, usage-specific interfaces.
- Students register as individuals but can join/use curriculum projects in groups of up to three.
- Students retain access to their current and completed projects indefinitely.
- Teachers are offered a wide range of tools that allow them to:
- Search from a library of WISE 3.0 curriculum projects
- Run one or more WISE 3.0 curriculum projects in their classroom (a "Project Run")
- Review and grade student work
- Managing students during a Project Run
- Customize existing Library projects or create new projects from scratch.
Sail Data Service (SDS) provides RESTful services to create/retrieve/update/delete students' session data from the SAIL runs and also generate reports in xml/html/pdf formats for researchers and teachers. The TELS Portal and Pas Learner Runtime consume its services. The SDS is written using Ruby on Rails and also has a web interface, which you can see here: saildataservice.concord.org. There are plans in the near future to port the SDS running in JRuby on distributed servers.
Several SAIL developer are working on using Jackrabbit in different parts of the system.
- The WISE 3.0 portal and authoring tool developers are working on using Jackrabbit to store the curriculum projects. This is being done through the Roolo interface.
- The OTrunk developers are working on using Jackrabbit to store the learner data. This would replace or supplement the SDS to provide more transparent and efficient access to the learner data.
OTrunk has an idea that, rather than having lots o separate documents that run separately, we can combine several objects into a single hierarchical object. It is relatively straightforward to do compositions, such as integrating a netlogo into a page that has graphs and other controls. By treating such autonomous java objects as, essentially, components, it is possible to compose more sophisticated objects.
In OTrunk, there are notions of content layers, such as learner data, teacher comments, etc.
See Otrunk demos here - this is link to the page that Hedieh made for the icls workshop... there are many more demos and much more technical information on the Concord Concortium O-trunk Page but can be somewhat confusing.
These are essentially OTrunk objects that are carefully laid out in a certain configuration, called PAS (Project, Activity, Step)
TELS has integrated its PAS system into OTrunk in order to take advantage of the functionality and simplicity the OTrunk system has to offer. The OTrunk system can manage POJOs which allows us to insert our PAS objects into the OTrunk system. There is good support behind the OTrunk system which allows us to tackle tasks in an efficient manner. The OTrunk system also provides a good environment for us to author in as well.
Across all the combined efforts of Berkeley and Concord, we have a fairly large collection of java-based learning tools. These are embedded within TELS curnits, and combined within OTrunk materials. But they are available as low level constituents for other researchers to build their own versions of complex interactive learning materials. Here is a page with descriptions of the various SAIL tools that are available to authors
Collaboration methods enabled by the SAIL-based WISE3 system include:
- Teachers can share their grading templates ("Ready Made Comments") for a particular project.
- Teachers can easily share their customized versions of a particular Library project, avoiding reinvention of the wheel and allowing best-of-breed ideas to float to the top of the Library Project offerings.
TELS implements authoring as follows:
TELS has an authoring tool to author o-trunk objects. Currently not all of the steps in our old WISE 2 system can be authored into o-trunk objects as of yet, but we do have plans in the near future to do so. So far, we have implemented authoring to o-trunk for the major steps that are commonly used.
Here is a list of steps that we can currently author into o-trunk objects:
Self Check (aka Self Test)
The TELS authoring tool will be launched through our portal. It will create o-trunk objects and generate otml (o-trunk markup language) files that will contain the authored project.
Concord has developed an OTrunk authoring model, as follows
4. Programming tools and development environments
The portal uses the following technologies:
Spring MVC (for presentation tier)
Acegi Security (for securing the application and defining Access-Controll Lists for permissions/ownership of domain objects)
JDBC,Hibernate,REST (for persistence)
MySQL,H2,Derby,HSQLDB (all supported databases, some have been more extensively used/tested than others)
Acegi Security gave us problems in the past for connecting to a MySQL database server, and we had to create a patch. Since Acegi has been officially recognized as the security system for Spring, and since Spring 2.5 ships with Acegi, the portal will be upgrading to Spring 2.5 in the near future. Spring 2.5 also comes with WebService support, but we are currently looking at other options, like Apache CXF, JAXWS.
Most of our programming/deployment is in Java 1.5.
We mainly use Eclipse IDE for all of our development work. Few programmers also use netbeans, emacs and other editors for specific purposes.
5. Architectures and interface paradigms - discussion
In the portal, the separation between the tiers and the different layers are logical separations, except for the EIS tier where the actual data resides. There is no physical separation since all the code will be designed to run within the same java virtual machine. However, the logical separation is intended to produce loosely coupled and highly re-usable components that adhere to good design practices and patterns. You can learn more about the portal architecture by going here: http://www.encorewiki.org/display/encore/Tels+Portal+architecture+overview
SAIL + OTrunk
We refer to the term "SAIL-OTrunk" to mean projects that are launched using the SAIL platform with OTrunk's data persistence.
One of our goals is to make the portal more SOA-like, starting with our ProjectService layer. See this discussion thread: http://groups.google.com/group/pas-portal-dev/browse_thread/thread/a776a40ce6751e50/6bdb810cf8abf752?lnk=gst&q=soa#6bdb810cf8abf752
The ProjectService currently offers services to create/edit/launch/preview/share projects of different types that reside in two datasources: local database and the roolo-cms. We see this list of communicable datasources and the types of projects expand over time.