MINTED - Moodle Integration with Enterprise Data


Wednesday, May 02, 2007

 

Course profile plugin gets into Moodle core!

Hi all,

Fantastic news - Martin Dougiamas (Moodle creator) has asked me to get a version of the Minted course profile plugin for Moodle 1.9.... Finally, we get our plugin in to the Moodle core!



Paolo

Wednesday, March 14, 2007

 

Introducing the Minted course enrolment plugin 2.0

Within the Minted project we developed two Moodle plugins and one bundled plugin. Up until now we have only made one of the plugins and a bundled version of both plugins available to the Moodle community.

Although generating some interest and some adopters, neither have got in to the Moodle core. I believe there are several reasons for this.

The bundled plugin 1.5

1. The plugin is too big and all encompassing. For the adopters in the Moodle community it has made changes to their Moodle installation that, although documented, they were not expecting. These issues have been easy to resolve, but have in some instances given a bad impression on the forum.

2. The IMS enterprise enrolment method itself, although now in Moodle core, has not had wide take up due to the low adoption so far of the data specification it uses. In the meantime a more popular enrolment method simply called the database enrolment method, which does not use any standards, has been widely adopted.

3. The IMS enrolment plugin and Minted enrolment plugin should be more configurable - disparities already exist between the Minted and the IMS-E enrolment plugin interpretation of the IMS-E standard (I may work on this shortly).

The profile plugin 1.02

1. I feel one problem is that the profile plugin has become associated with the IMS-Enterprise enrolment method and, therefore, people not using it do not look at the profile plugin

2. The plugin gets confused with a template tool due mainly to the default activities it makes available in topic zero. It generates interest, but for the wrong reason. We could have enabled a template course site to be specified if we thought the tool was to be used for templating (and I may do that).

3. The profile plugin aims to provide a default profile for all mechanisms of course creation, user creation and user enrolment. It unavoidably requires small additions to code to all these areas, therefore, becoming a large commitment.

Minted course profile plugin 2.0

The fact the plugins have so far not been added to the Moodle core is a disappointment, especially as we feel it would improve Moodle. It would also avoid versioning problems that we will have when upgrading. I have therefore developed a new version of the Minted profile plugin, called the Minted course profile plugin 2.0. It differs from the Minted profile plugin because:

1. It allows you to define what is a basic and advanced course setting. This is a model derived from the quiz settings and is a very sensible way to simplify the setting page for your institution. I believe this to be the tour de force of the Minted course profile plugin 2.0

2. It does not set up profiles for users. Although we believe a user default is a sensible addition to Moodle, there are developments around user profiles in Moodle 1.7 and Moodle 1.8 and any work in this area would overlap. Furthermore, there is a workaround - however unpleasant - by changing default database field attributes.

3. It does not add topic-one default activities. This is mainly due to the misunderstanding it caused when advertising the plugin. And also because a templating system based on another course site, although far from intuitive, seems to be the Moodle users preferred solution.

Select here for more information, screenshots or to download the Moodle course profile plugin 2.0.

Labels: , , ,


Tuesday, December 05, 2006

 

Managing enrolments using a simple REST service

Andy has put together a useful document about managing enrolments using a simple REST service.

This is available from the Minted site discussion page too.

Tuesday, August 08, 2006

 

Web pages for the Minted project

In addition to the original JISC web pages for the Minted project, I have now put together a more detailed overview of what we've been doing with Minted. It's still work in progress, and we'll be adding to it over the next few weeks.

I've moved the location of this blog, although I've left the Atom feed in the same place.

Thursday, July 13, 2006

 

Minted project overview

Here's another version of the Minted project overview:

An overview of the MINTED project - updated

We've simplified the bridge code by separating it out into two logical entities:
  • the Data Access Layer (DAL), an institutionally specific implementation of the methods defined by the IMS Enterprise services specification
  • a generic bridge that maps the IMS Enterprise services specification to the web service end point
The abstraction is managed as a java interface, the DAL interface.

In order to get the cetis-es toolkit up and running, the institution need only to implement this interface. For example, an institution would implement the readGroup method by defining the query to extract data from their database, and then mapping the columns from the result set to the group object as defined by the toolkit.

The same interface could also manage the way in which client code interacts with the toolkit.

This would make it easier for a pre-built client to be distributed with the cetis-es toolkit, if Scott and CETIS colleagues thought this was useful.

Wednesday, June 14, 2006

 

Oracle connectivity Part 2 - with Tomcat

Once you've decided what driver you want to use (see previous post) the rest of it is pretty straightforward!

The Tomcat documentation outlines what needs to be done in the doc "JNDI Datasource HOW-TO".

I'm using Tomcat v4.x so the documentation is:

http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html

Monday, June 12, 2006

 

Oracle connectivity Part 1

Part of the Minted project involves integration with an oracle database.

The first step is to download one of Oracle's JDBC drivers.

These are available from
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

Which driver do you need?

There are three factors to consider here:
  • whether you need a "thin" or "OCI" driver
  • the version of the Oracle RDBMS that you need to connect to
  • the version of JDK that you are using
There's a helpful FAQ which I recommend, and what follows is a summary of information in it.
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq_0.htm

Thin or OCI

The Thin driver is 100% java, so can run on any Java VM. It requires TCP/IP connectivity.

The OCI driver uses a specific set of OCI libraries written in C that will be dependant on the OS of the oracle server.

It is therefore generally easier to use the Thin driver.

RDBMS compatibility

Details of the Oracle RDBMS compatibilities with the drivers:

http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq_0.htm#02_02

At the time of writing, the most recent set of drivers is version 10.2.0 which the Oracle site says is compatible with this list of RDBMS versions:
10.2.0
10.1.0
9.2.0
9.0.1
8.1.7



JDK compatibility

Each of the JDBC distributions includes a number of different drivers aimed at different versions of the JDK.

At the time of writing, only 10.2.0. contains a driver for Java 1.5 (aka 5)

This is the driver ojdbc14.jar



Download and test

I opted for ojdbc14.jar. In order to download it from
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html
you have to agree to the Oracle Technology Network Development and Distribution License Terms, which include a US export controls restriction.

Once you have downloaded the jar, you can test it with the following code:


import java.sql.*;
class OracleConnect {
public static void main (String args []) throws SQLException
{
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());

Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@yrserver.network.com:1521:orcl", "scott", "tiger");
// @machineName:port:SID, userid, password

Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select * from emp");
while (rset.next())
System.out.println (rset.getString(1)); // Print col 1
stmt.close();
}
}


When you compile and run it, you obviously need to ensure that the driver is in your classpath:


javac -cp /home/me/jars/ojdbc14.jar:. OracleConnect.java


java -cp /home/me/jars/ojdbc14.jar:. OracleConnect


Friday, May 26, 2006

 

IMS Enterprise enrolment

Here is a list of changes we have made so far to the IMS Enterprise enrolment module in addition to those mentioned in posts in the 17th and 22nd March and the some of the issues that arise for me:

Changes:

- Include more member roles so:

01 - Learner = student
02 - Instructor = course tutor (staff)
05 - Manager = convenor
08 - Teaching assistant = course tutor (associate tutor)

and insert new roles into mdl_user_teachers.role *1

- Use sussex_courses.description to create ‹full› ‹description› and populate mdl_course.summary

- Update mdl_course.fullname, mdl_course.summary *2, mdl_course.category,
mdl_course.startdate if changed

- Unenrol students and staff associated with a particular course if they are not
in central records *3

- Update mdl_user.email if changed *4

Issues arising:

*1 In addition we need a new role for departmental co-ordinators that help faculty upload files. We will probably need a new field in the central records system to identify these people.

*2 It is unclear to me if the course summary should be updated with the latest course description or if the course summary should be customisable by the course administrators.

*3a Equally, I am unclear if students should be able to ‘enrol’ themselves on the online element of the course without being formally enrolled on the course itself. If so, perhaps we shouldn‘t ‘unenrol’ them. Having said that, it is not a big deal ‘re-enrolling’ as it is all doen through LDAP and posts and marks are not lost.

*3b Another related point is that some tutors of courses are not formally associated with the course, but will want administrative access to their courses and perhaps shouldn‘t be removed either.

*4 Finally, I am unsure what, if any, user fields should be updated. Probably, MLE and VLE email addresses should be updated at the same time, so currently email is updated by the central record system, but this may not be sensible.

Also:

We will add the profile URL of staff to mdl_user.url

We will need a one-off update rule that will change the idnumber from course code to course code plus term and year for the first run

I will look into updating the module for PHP 5 using simpleXML

Monday, May 08, 2006

 

Starting to work on a client

I've been working with a simple client package that Scott sent as part of his rebuilt cetis-es SDK for Axis 1.3. (See Deploying the rebuilt SDK using Axis 1.3 for details.)

This consisted of two classes, Test and Enterprise.

I'd been working on building some more functionality into a local version of the ReadPersonsForGroupHandler, and as Scott's test client used that service call too I was able to test my fledgling service with it too.

Obviously any correctly running client implementation should work with any correctly running service implementation (where the same soap requests are implemented) - though would there be version problems across Axis versions / cetis-es versions ?

So Alex and I could swap client implementations at some point (though mine would not be very thrilling at this stage ..)

And so for the future of the cetis-es distribution, would it therefore be worth having a fuller client available for download so that people could use it to test their deployments more easily?

I then decided to transfer the two classes Test and Enterprise into Eclipse and modify them a bit.

When I did this, I was getting an error in Enterprise.java on line
PersonManagementServiceSyncSoapStub svc = (PersonManagementServiceSyncSoapStub)loc.getPersonManagementServiceSyncSoap(new java.net.URL(_endpoint));

The error was:
"The type javax.xml.rpc.ServiceException cannot be resolved. It is indirectly referenced from required .class files"

In order to resolve this error I had to add the jaxrpc.jar from the Axis 1.3 library directly into my build path. (I didn't need to import javax.xml.rpc.* from it though, just having it in the path was sufficient to resolve the error).

I'm just noting it here for future reference.

Friday, May 05, 2006

 

IMS Enterprise Service SOAP requests ...

At the moment, I haven't yet written any client code, although I have got some client code working from an example that Scott sent us.

I'm working on implementing the Membership service to test out a problem Alex is having, described in this cetis-es SourceForge forum thread.

And I want to be able to send correctly formed SOAP requests to the service via tcpmon, the utility that comes with Axis for communicating directly with the port that your service is listening on.

I thought this would be a good way of confirming whether or not it was the client code that was causing the problem Alex is experiencing.

I thought that I'd be able to use the SOAP requests that are given on the IMS Enterprise Service homepage in the Examples section, such as http://www.imsglobal.org/es/esv1p0/examples/readGroupRequestSync.txt. But these don't seem to work quite as I'd expect, throwing parser errors when I send them into the running webservice using tcpmon.

I've added a posting to the SourceForge thread about it ... and will update here if I get any clearer.

Thursday, May 04, 2006

 

Deploying the rebuilt SDK using Axis 1.3

Scott has been working on a rebuilt version of the cetis-es toolkit, and I've just successfully deployed it in Tomcat 4.1.31 and Axis 1.3.

It took a few hours, mostly spent sorting out some parsing issues with web.xml files and getting HSQLDB running properly.

I found the documentation very easy to follow, and think Scott's new version is going to be a great help to anyone interested in trying out the cetis-es toolkit.

Friday, April 28, 2006

 

Next steps with the cetis-es toolkit

After meeting up with Scott and Alex, my first action was to get myself properly set up using the Eclipse IDE (integrated development environment), which I really can't recommend highly enough. I also installed the Sysdeo Tomcat Plugin, which allows you to control Tomcat from Eclipse and to get the output from catalina.out into a window on your Eclipse desktop.

So having successfully deployed the minimal example, I next wanted to build a connection to a local database, and get that running.

Although our eventual goal is to connect to an Oracle database, for short-term development I decided it would be quickest to work with a MySQL database running on the same server as my Tomcat installation.

I did run into some problems and got extremely prompt and helpful advice from Scott. The cetis-es SourceForge site is where we normally post messages about problems, but that was down when I was doing the work, so we had an exchange via email which I will update into SourceForge when I get a chance, and put a link in to this blog entry.

See http://sourceforge.net/forum/forum.php?thread_id=1491884&forum_id=350729

My errors were to do with using Axis 1.2.1, which was a choice I made right at the start of my attempts to get the installation sorted out because it was so hard to find a mirror site with Axis 1.1 on it. Given that it is now hard to find Axis 1.1, it's great that Scott is working on making the toolkit compatible with later versions of Axis.

I was also having problems getting the MySQL connection set up, which I solved by looking more carefully at the Tomcat notes on setting up an Initial Context with the JNDI API and notes on server configuration generally.

As I haven't built any client code yet, I'm using the TCP Monitor utility that's distributed as part of Axis. It's invoked as:


%> java org.apache.axis.utils.tcpmon



Now I've got this working, my next step is to build a client to invoke the service.

Saturday, April 22, 2006

 

To Bolton ... and Beyond

Back from leave and straight off to two days in Bolton, the first being a day spent with Scott and Sam in CETIS, along with Juliettte and Alex from JoinIn. This was extremely useful, getting an overview of how the "bridge" code works in the cetis-es toolkit, and getting a sense of what we need to do to build our own versions of the bridge.

Thursday, April 06, 2006

 

Record status

Carol may know some of the answers to my questions, but I have decided to blog this because I think it is of general interest and it is a bit of a stream of consciousness.

It seems likely that Moodle records will be updated nightly. This is because making live queries on the central database will mean too many modifications to the Moodle code. As you have probably gathered from our previous blogs we intend to query the central database, create an ims specification xml file with the data and populate the moodle database. The records that we pass are standard user, group and membership. The records will either be new or modified and some records will need to be deleted. The questions I have revolve about how we determine what needs to happen to each record.

How can we determine if a record is new or updated?*

Is there a time stamp indicating when it was created/updated on the central database? And does this include membership changes? If so, we could easily determine the correct rec_status for the record. If not, should we compare the database query results with the previous xml file nodes and create the new xml file, setting the rec_status of each record accordingly or should we create an xml file with all the query results and compare the xml file with the moodle database and insert, update or do nothing accordingly?

How can we determine if a record should be deleted?

Users presumably will be deleted when they have graduated or left. There is a 'deleted' field in the user table. When do we want to use this and when do we want to completely delete them?

When do we want to delete courses?** Carol suggested and I agree that occurences of courses should be kept until the last person who sat on that course has graduated or left. Can we simply delete courses that have started but have no students (membership) associated with it?

When do we want to delete membership? We are of the opinion that students should have access to the occurrence of their course until they have graduated or have left.*** But how can we identify people who have sat on an occurrence of a course and, therefore, keep their membership and those who have started and dropped a course and, therefore, delete their membership? I.e. Does the central database store membership of past course occurrences (Edit: and I see from Carol's post on the 17th March it does and this question for us may be irrelevant)?

* We will need to update the IMS Enterprise enrolment plugin to handle updates of courses and users.
** What process will be in place for staff copying materials from one occurrence of a course to another - will the restore and backups on a request basis be sufficient?
*** Would we want the individual to be able to include course materials in their e-portfolio? This begs the question: what happens to their e-portfolio when they leave?

Wednesday, March 29, 2006

 

Minimal deployment notes

I talked to Sam (Easterby-Smith) at the Enterprise SIG meeting in Oxford yesterday.

Sam said it would be useful for me to write up the notes on deploying the Minimal Deployment.

As posted earlier, I originally used versions:

Tomcat 4.1.31
Axis 1.2.1
running with JDK 1.3.1

Sam and I agreed I'd write the instructions based on most recent stable versions of the application server etc.

I have reset my CurrentJDK symbolic link back to 1.4.2, and the minimal deployment still works.

Wednesday, March 22, 2006

 

Publishing data mappings and adapters

Scott made this good suggestion via email on 15th March, and I'm just posting it here so that we keep it in mind:


I think also when yourselves and BEWT have completed your data mappings you should publish those, and eventually the adapters themselves too. We always hoped that people would contribute working server-end adapters for various systems (SITS, EBS, Oracle Student, SCT etc) so we could have them downloadable from SF, rather than everyone having to first do a mapping and roll your own data. The problem is a lot of MIS vendors do so much DB customization for each customer site.

 

Progress report into the transfer of data into Moodle

Carol, Andy and I have been testing the transfer of data from our central record system into Moodle. Carol wrote some SQL queries to extract data, Andy used these commands and XMLRPC to populate an IMS Enterprise specification XML file and serve it via a secure web page. I used the data to populate the Moodle database using a modified version of Moodle's IMS Enterprise enrolment plugin.

Here is how the plugin has been modified:

WAS: It used the IMS Enterprise short description tag to pass the course name into mdl_course.fullname.
NOW: It uses the IMS Enterprise long description tag to pass the course name into mdl_course.fullname, the IMS Enterprise short description tag to pass the course code into mdl_course.shortname and the ID to pass the course code plus the term and year (occurrence) into mdl_course.idnumber.

WAS: It used set values to populate the course settings (format: topic, section: 1, etc.)
NOW: It uses the category course profile to populate the course settings (if the profile exists).

WAS: It created one News forum on each course.
NOW: It creates Moodle course modules/activities that the category course profile specifies (if the profile exists).

WAS: It used the day that the Moodle course was created as the course start date.
NOW: I have added a new option to the enrolment plugin so that the administrator can specify whether to use the course start date as defined in the category course profile (if the profile exists) or use the course start date as passed by IMS data (the actual course start date)

WAS: It used the database column defaults when adding Moodle users (students and staff)
NOW: It uses the site user profile if it exists when adding Moodle users (students and staff)

WAS: It used regular expression matching to extract the XML data and did not take into account that the XML may be using CDATA.
NOW: It still uses regular expression matching, but does take into account that the XML may be using CDATA. Andy Collington pointed out it would have been wiser to use something like minixml to extract the data rather than parsing regular expressions. I may look into this shortly.

 

Minimal IMS Enterprise web service .. deployed

With help from Scott (see thread http://sourceforge.net/forum/forum.php?forum_id=350729), we've now got the minimal IMS Enterprise web service running.

The platform used was:
Tomcat 4.1.31
Axis 1.2.1
running with JDK 1.3.1

I had to make a couple of changes to the deployment descriptor web.xml in the enterprise-war WAR to get it to work on Tomcat.

Most significantly, I needed to reorganise the elements within web.xml so that it complied strictly with the element order as given in the DTD, and add in entries for AxisServlet from the axis installation's web.xml.

Perhaps someone with experience of using different servlet containers/application servers would be able to comment on whether the version of Tomcat I'm using takes a "stricter" approach to the ordering of elements from the DTD than - say - JRun?

(Also the sub-element order for the element specified by the DTDs themselves changed from servlet v2.3 to v2.4, I think.)

The deployment method used is briefly touched on in the Axis Installation document as section "Advanced Installation: adding Axis to your own Webapp".

I'll draft a set of detailed Tomcat/Axis deployment instructions (initially via Scott to check for accuracy/completeness) if anyone would find this useful.

Monday, March 20, 2006

 

Deploying the minimal IMS Enterprise web service

Over the last few weeks I've been getting Tomcat and Axis installed, and running through the examples given in their respective installation guides in order to test that I've got them installed correctly and also to try to haul myself up the learning curve ..

At the moment, I'm working with

Tomcat 4.1.31
Axis 1.2.1
running with JDK 1.3.1

I'm currently trying to get Scott's "Minimal IMS Enterprise Web Service" deployed.

There's a useful article on doing this at:
http://www.cetis.ac.uk/content2/20040624131946

However, I've not yet got the deployment to work, and have posted some questions on cetis-es sourceforge forum.

As part of encouraging use of the toolkit, maybe it would be good to identify a couple of likely servers/engines (e.g. Tomcat+Axis, JRun, JBoss) and a recommended version for each. And then provide quite detailed descriptions of the deployment for each?

I see from the JoinIn blog (27th Feb) that Alex had a few issues with the minimal deployment on JRun and JBoss too. Alex - if you're out there - do you think a detailed deployment guide for a few defined servers/engines would be useful?

Friday, March 17, 2006

 

Representing courses in Moodle

The overall aim of MINTED is to capture sufficient detail from the university's database so that we can properly represent the entities "person", "course" and "teaching group" in Moodle, and so that the memberships of persons to courses and groups is correct.

On the university database, courses are represented as having instances, where an instance is a particular incarnation of a given course, e.g. with a particular set of learning outcomes and assessments.

Each given instance of a course can then run 0, 1 or many times. Each time it runs, it runs in an occurrence. For example, a given course might run in the Spring Term of academic year 05/06. To represent this we associate the instance of the course with the appropriate occurrence code, in this case SPR05/06.

When the database represents memberships of students on courses, it obviously does so using the appropriate occurrence record for the course.

In Moodle, there appears to be a slightly flatter structure, without the notion of the occurrence built in to the data structure.

However, it must surely be a requirement of a mature e-learning system that students who took a course in their 1st year can re-visit the course during their 3rd year perhaps as part of their revision. So we will need to manage multiple occurrences of the same course on Moodle.

The table below shows mappings from the database via IMS Enterprise and into Moodle Course Settings:

A table showing mappings between the administration database, IMS Enterprise and Moodle

Wednesday, March 15, 2006

 

More on course and user profiles

Paolo and I had a good meeting today looking in a bit more detail at his Course and User profiles, mostly concentrating on the Course stuff.

We thought quite a bit about "Start Date" and agreed that this should be set by default to the start date of the course, as transferred from the database via IMS Enterprise.

At the moment course availability is managed by a simple radio button. After discussion, we thought that probably it would make sense to say that by default courses were available from the start_date passed in via IMS Enterprise, but that this would be editable by individual staff.

We talked about providing an option for making it available N days before the start of the course.

Paolo said he'd do a mock up of what the screen would look like, and we could then try it out on various staff to get feedback on usability. We didn't want to make things too complex.

I've subsequently been looking at the "Define Course Profile by Category" screen from Paolo's work, while thinking through what the mappings are going to be from the Administration database to Moodle via Dan's IMS Enterprise enrollment plugin and Paolo's default settings.

Got a couple of questions:

The form for "Define course profile" shows a pair of fields labelled "Date range"

Is this the Date Range for when to allow Course Enrollments, if the radio button "Course enrollment" is set to Date Range? Will this date range have any other use?

If it is totally related to Course Enrolments, would it be worth indenting it so that this is more obvious? (Or is that not a Moodle way of doing things?)

(Ideally the irrelevant options would be displayed greyed out, and as the user changed options this would be updated dynamically, but this won't work on a pure html page!)

Tuesday, March 14, 2006

 

Creating course and user profiles

It turns out modifying the database was a big no, no... so I decided to create course, user and activity module profile tables. All these (apart from user) were indexed by department (in Moodle terminology: categories). This is a major improvement suggested by Carol and really enhances Moodle.

It works really nice with Dan's IMS Enterprise enrollment module and could work equally well with manual user and course creation, the LDAP or external database enrollment mechanisms with some minor tweaks, and because of this I put the functions in the main Moodle lib folder. I will develop these other enrollment mechanisms if any requests are made for them on the forum.

I have posted my profiles_plugin on the Moodle forums:

http://moodle.org/mod/forum/discuss.php?d=41658

Paolo

Monday, February 27, 2006

 

Creating default Moodle profiles

Hi!

Carol expressed surprise to me that Moodle creates courses and users with relatively arbitrary profiles. Indeed, the profiles often change according on the mechanism by which you are creating users or courses.

There are two reasons for this:

1. The course and user creation mechanisms populate the course and user tables with the developers' own preferred values. Their choice to do this has probably been influenced by the fact that the database column default values are not the choice of the local Moodle administrator in any case.
2. There is no Moodle interface to choose and arrange default Moodle course blocks (displays and activities in the side bars).

It seemed sensible, therefore, to do a number of things:

1. Create a Moodle interface for local administrators to choose the database column default values for the course and user tables.
2. Create a Moodle interface to the programming mechanism that has been developed to choose and arrange default Moodle course blocks.
3. Create a Moodle interface to determine topic and week zero activities.
4. Modify the Moodle IMS Enterprise Enrolment plugin to work with these.

On creating the Moodle interfaces it occured to us that we should pose the question: how safe is it to modify the Moodle database? And that we should at least warn admin to do it in a quiet period and create a backup of the database.

We also wondered, given the varied flavours of teaching and study at our institution, whether default profiles should depend on department. This we thought may be particularly useful when seeking buy-in and a feeling of ownership from departments and academics within that department.

Tuesday, February 21, 2006

 

.. or getting Tomcat running

OK, so in the last post I looked at preliminary issues around getting JBoss running as your Java application server.

But what about using Tomcat as your application server?

On the Tomcat site, there's the following info about which version you need to use:





















Servlet/JSP Spec

Apache Tomcat version
2.4/2.0 5.5.x
2.3/1.2 4.1.x
2.2/1.1 3.3.x


I've posted a message onto the cetis-es sourceforge forums asking whether anyone has any information on this and other version requirements for the various candidate application servers.

Monday, February 20, 2006

 

Getting JBoss running

In this blog, we're going to take things step by step, in the hope that by describing the process we've gone through in some detail will be useful for groups out there who want to try out using web services such as the cetis-es but haven't got much previous experience.

Just a reminder that the cetis-es source is availabe at https://sourceforge.net/projects/cetis-es/.

and that there's a useful article on getting started with the CETIS Enterprise SDK at http://cetis-es.sourceforge.net/.

So let's start from the beginning - Gettinga Java Application Server Running.

In this case, JBoss. But you could use Tomcat or others ..

First of all, this is a good article on the role that JBoss is going to be playing in your deployed web service, and how to get it going:
java.net:JBoss At Work Part 1: Installing and Configuring JBoss. This article was written when JBoss v4.0.1 was current.


This is a really useful post from the BEWT project on getting the CETIS-es toolkit working on JBoss:
BEWT: Deploying on JBoss Application Server.
This points out that the toolkit needs JBoss version 3.2.x

I have a feeling that it may not spell this out on the CETIS site.

<<>>

So I've downloaded JBoss v 3.2.8 from http://www.jboss.com/products/jbossas/downloads, and found a very useful
manual for JBoss v3.2.x: JBoss documentation site entitled "JBoss AS Getting Started Guide" for v3.2.x.

Right now I'm just running it on my PowerBook (on Mac OS X v10.4)

Not sure whether or not anyone else will be trying to do this, but if you are, here is what I had to do.


Step 1 - get the right version of JDK



If you're currently using Tiger, you'll have a range of Java JDK versions available to you. I think but am not certain, that JBoss v 3.2.8 requires JDK version 1.3.x <<>>

You can tell what version you currently have setup by typing:

%java -version

in a terminal window.

If you need to change version, then go to directory:

/System/Library/Frameworks/JavaVM.framework/Versions/


This contains a directory for each of the JDK versions you have installed on your Mac. It also has a number of symbolic links pointing to these versions. The most significant of these is the symbolic link CurrentJDK.

Is there a way to switch between versions dynamically? I've had a look around, and the best approach seems to be to re-set this CurrentJDK directory, e.g by running a command such as:

%sudo ln -sf 1.3.1 CurrentJDK

Health Warning: Of course, if you subsequently upgrade your system in some way then the linking of CurrentJDK could be altered, or worse still, the upgrade might work unpredictably if the setting of CurrentJDK isn't as expected.

More of a Health Warning: If you make this change, some of your existing applications may not work as you expect them to. I have found that with CurrentJDK set to 1.3.1, the (excellent) Mac Project Management Software Merlin throws an error on importing MPP files. (note added 29th March 2006)

Step 2 - set your JAVA_HOME environment variable



From reading this blog
http://mamamusings.net/archives/2004/04/28/installing_tomcat_5_on_os_x.php
it sounds like you can do this best of all via /Library/Java/Home - which is a bit baffling, but I assume it's yet more symbolic linking going on

setenv JAVA_HOME /Library/Java/Home
(assuming you're using csh or tsch)


Basically as long as JAVA_HOME is set, the JBoss installation all works straight from the download.


Step 3 - set your JBoss environment variable



setenv JBOSS_HOME /usr/local/jboss-3.2.8

(or whereever you decided to install it)

I've got JBoss running - it isn't doing anything, but it's running and I can see it via
http://localhost:8080/jmx-console/

Friday, February 17, 2006

 

More on Moodle enrolment

Current version of Moodle Enrolment Module: 0.6
This assumes version 1.1 of the IMS Enterprise specification, whereas the CETIS SDK produces data in format 1.0

Seems like the versioning of CETIS SDK is going to be quite a crucial issue for us.

We also have to keep an eye on the Moodle versions we are using.

<< Check versions with Paolo and update entry>>

We noticed that an issue with using this enrolment module was that default student/staff and course settings couldn't be applied, for example a setting such as "Hide email address". This led us on to looking into how the Profiles for people and courses were managed in Moodle generally.

It turned out that we couldn't find default Profiles within Moodle, which seems odd.

Paolo is investigating this further.

Monday, February 13, 2006

 

Using the Moodle IMS Enterprise Enrolment Module

Had a meeting with Paolo today and we looked at the Moodle IMS Enterprise Enrolment Module that has been made available by Dan Stowell from UCL. Dan made version 0.6 of this available via the following Moodle forum post:

http://moodle.org/mod/forum/discuss.php?d=37291

For anyone interested in tracking discussion of this in the Moodle forums, an earlier thread with lots of input on it is:

http://moodle.org/mod/forum/discuss.php?d=34351

Friday, February 10, 2006

 

MINTED launch

Welcome to MINTED!

This project is funded by JISC under the E-Learning Programme, in the Frameworks and Tools strand.

The diagram below gives an overview of the project.

An overview of the MINTED project

Archives

February 2006   March 2006   April 2006   May 2006   June 2006   July 2006   August 2006   December 2006   March 2007   May 2007  

This page is powered by Blogger. Isn't yours?