Moodle SIF Agent

The Visual Software Moodle SIF Agent

This is an overview of of the Visual Software Moodle SIF agent rule set for ZIAgent, its current capabilities and how it works with ZIAgent.  It is also intended to give enough information to those who would want to take the XML for the rule set and start making enhancements, such as adding new rules or modifying existing rules to enhance or change its current capabilities. The VSI Moodle agent is a plug-in to the ZIAgent SIF agent runtime.  It works with either an Active Directory or Shibboleth Identity provider SIF agent and SIF agents for MIS systems (or substitutes).  If a school has the ZIAgent runtime, an Active Directory rule set is available for download from the same location as is the Moodle rule set.

Current Capabilities

The Moodle SIF agent is capable of provisioning users and assigning those users to Moodle courses.  User types include:

  • Learners
  • Teachers

These users may be assigned to courses based on:

  • School Group Type (an example might be "all learners taking Biology I")
  • School Group (an example might be "all learners taking  Biology I taught by Mrs. Smith on Monday, Wednesday and Friday in room 101 at 11AM)
  • A Learner's characteristic (when a learner turns 16, he or she is enrolled into "Basic Driver's Safety)

The first two course assignment are examples of event-driven rules (those attached to the receipt of a SIF object), whereas the last comes from a scheduled business rule (run once a day). Presently, the agent does not publish, although it could easily do so.

How Does This Plug-In Work?

ZIAgent is a configurable SIF agent.  We make it available in two versions:  a designer and a runtime version.  Once an agent is designed (using the designer version), it can be exported and it becomes portable.  This is useful for upgrading, since most of the time the configuration does not need to change from one SIF version to the next – all that is involved in the upgrade is <export from one version of the "agent shell" and import into the next>.  It also allowes us to support these software applications, like Moodle and Active Directory, with more of a "community" approach. The second version is the ZIAgent runtime version.  On this one, we lowered the cost as much as possible and made the rule sets freely downloadable after that. Structurally, the SIF agent runs under Windows Server IIS as a web site.  It installs via a MSI file and has a database that contains some configuration information and the rest information it needs to run such as mappings between the "SIF world" and the "Moodle world", audits and temporary information it needs to save for transitional periods.

SIF Objects Supported

All of the objects with the exception of the LearnerPersonal object is optional, depending on which features are to be enabled.

LearnerPersonal

Information about the learner is collected from this object – this information will be transferred to the Moodle user record

Identity

If an Identity management SIF agent is active in the system, then this object will convey information about the users credentials and the agent will allow Moodle to use them

WorkforcePersonal

Information about staff members will be collected from here and moved to the teacher's Moodle record

SchoolGroupType

This object would be generated either at conversion time or when course schedules are being generated.  It contains subject area information (not specific instances of these subject areas with times, teachers and room numbers attached).  If events are going to be handled for LearnerGroupEnrolment, then information for this object must be collected.

SchoolGroup

This object is for specific instances of a SchoolGroupType, with teachers, times and rooms attached.    If events are going to be handled for LearnerGroupEnrolment, then information for this object must be collected.

LearnerGroupEnrolment

This object shows when a learner has been enrolled in a school group.  When these events are received, the learner may be enrolled in Moodle courses either by SchoolGroupType or by SchoolGroup.

How to Set Up the Agent

When we developed the agent, we wanted to be able to support Moodle instances that we hosted in any environment.  Our restriction, however was that our software is written for a .NET Windows environment and converting it to and supporting it in multiple environments would be a time-consuming and expensive process.  Fortunately, however, Moodle has a flexible facility that allows it to point to an external database. So what we did was to have the SIF agent manage a database on the Windows Server that looks like one that Moodle expects and then have Moodle point to it.  The following screens show how Moodle would be set up for users. Moodle SIF Agent - Administration

Then, scrolling down some, you see how the other fields are mapped from table managed by the SIF agent (its fields are "GivenName" and "SurName") to the fields in Moodle.

Moodle SIF Agent - Administration

A similar process is performed for Moodle courses.

Keeping Track of Course Assignments

Lastly, we need to be able to map the SIF SchoolGroupTypes and SchoolGroups to Moodle courses, so that when a learner is enrolled into one of them through the MIS or through a timetabling application, the SIF agent can enroll him or her in the corresponding Moodle group. In the current rule set, there are two tables needed to support course assignments:

MoodleCourseOfferings

This table keeps track of the courses that are available in Moodle.  This is what some sample data might look like:

Moodle Course Offerings Table

It contains information that reflects the courses installed in Moodle that will be available for management by the SIF agent.  The MoodleIDNumber should be indexed and should be a familiar code to people who will be associating them to SchoolGroups and SchoolGroupTypes.

MoodleIDMappings

This table is populated initially through the SIF interface and completed manually if an when Moodle courses are assigned to this School Group Type or School Group.  It keeps track of any SIF objects that are connected to Moodle course enrollments.  Some sample data might look like:

Moodle SIF Agent ID Mappings

There are two types of entries in this table: ones where ObjectRefId was filled in and ones where ObjectCharacteristic was filled in.  Rows that have a value for ObjectRefId are used in event-based rules, or those attached to the receipt of SIF events, like the enrollment of a learner in a School Group.  Rows that have a value for ObjectCharacteristic are for rules that scheduled, such as (in this case) "All learners who have the GiftedTalented characteristic equal to "Yes" in his or her LearnerPersonal record get enrolled in Moodle course GT400".

Availability

Presently, this SIF agent rule set is available for the UK version of the SIF specification as a downloadable plug-in to the ZIAgent Runtime SIF agent (as is the Active Directory rule set).

VN:F [1.8.4_1055]
Rating: 0.0/5 (0 votes cast)

Print This Page Print This Page

One Response to “Moodle SIF Agent”

  1. Just testing to see if the comment facility works. Someone was saying that it didn't. This was submitted while I was not logged in.

    UN:F [1.8.4_1055]
    Rating: 0.0/5 (0 votes cast)

Leave a Reply