BLACKBOARD INTEGRATION REPORT VERSION 1.1 AUTHOR: ANTHONY XIAO LAMS INTERNATIONAL 09 JUNE 2005 REVISION HISTORY Name Date Reason For Changes Version Anthony Xiao 09 June 2005 Initial Draft 1.0 Anthony Xiao 19 Aug 2005 Completed the remaining section, updated the screenshots 1.1 CONTENTS 1 2 3 4 5 6 INTRODUCTION ...............................................................................................................1 1.1 Scope ..........................................................................................................................1 1.2 What need to be designed ..........................................................................................1 1.3 Constraints .................................................................................................................1 USE CASES ......................................................................................................................2 2.1 Create a LAMS sequence in a course ........................................................................2 2.2 Participate in a LAMS sequence in a Course ............................................................3 2.3 Monitor a LAMS sequence .........................................................................................4 INTEGRATION LOOK AND FEEL .......................................................................................5 3.1 Creating a LAMS sequence in a course .....................................................................5 3.2 Participate in a LAMS sequence in a Course ............................................................9 3.3 Monitor a LAMS sequence .......................................................................................11 USER AND LESSON MANAGEMENT ...............................................................................13 4.1 User Authentication .................................................................................................13 4.1.1 Blackboard Side ........................................................................................... 13 4.1.2 LAMS Side .................................................................................................. 13 4.2 User Provisioning ....................................................................................................13 4.2.1 Static Provisioning ....................................................................................... 14 4.2.2 Dynamic provisioning .................................................................................. 14 4.3 User Privilege Mappings .........................................................................................14 4.4 Blackboard Courses, LAMS Classes and User Class Membership .........................15 LAMS MODIFICATIONS ................................................................................................16 BLACKBOARD AND LAMS INTERACTIONS ...................................................................18 6.1 Participating, Monitoring and Authoring LAMS sequence .....................................18 6.2 Creating LAMS sequence .........................................................................................19 Figure 3.1-1: The Instructor goes to the course Control Panel. Clicks on a content area (eg: Assignments) in the “Content Area Box” 6 Figure 3.1-2: Select LAMS from the list of contents. 7 Figure 3.1-3: Fill in the options and click on submit. 8 Figure 3.1-4: LAMS Authoring Module displaying after the “Edit selected design” or “Create a new design” button is clicked. 9 Figure 3.2-1: The Assignments Content Area showing LAMS content 10 Figure 3.2-2: LAMS Activity Sequence running within Blackboard’s content frame 11 Figure 3.3-1: LAMS Monitor running within Blackboard 12 Figure 6.1-1: Participating, Monitoring and Authoring LAMS sequence 18 Figure 6.1-2: Dynamic User Provisioning 19 Figure 6.2-1: Getting the list of workspaces and sequences. 20 Figure 6.2-2: Create the learning session 20 LAMS 1.0.1 and Blackboard Integration 1 INTRODUCTION 1.1 Scope Blackboard (http://www.blackboard.com) is a learning management system. LAMS is to be integrated with Blackboard using Building Blocks, with LAMS activity sequence acting as a content extension within Blackboard. The initial integration will be done using Blackboard 6.2.3 build 23 and LAMS 1.0.2. This will document describe the requirements and overall design of the integration. 1.2 What need to be designed LAMS and Blackboard integration is about Blackboard being able to call LAMS within courses managed by Blackboard. The following areas need to be addressed by the integration: User Authentication LAMS should not require users to log in – it should carry over the user and their privileges from Blackboard. Creation/Authoring of Sequences The teacher must be able to create LAMS learning designs, or sequences from within a Blackboard course. This will require the integration of the LAMS authoring module into Blackboard. A teacher must also be able to select an existing design for using in a Blackboard course. This involves LAMS functionality, which is currently made available via monitoring. Lesson Management The LAMS activity in Blackboard will need to trigger the automatic set up of a lesson, along with the appropriate session class. Learner The integration must support Blackboard user being able to participate in a LAMS sequence. This will involve the LAMS content extension in Blackboard to call the LAMS Learner module. 1.3 Constraints Blackboard is an existing system, which runs on IIS in Windows or Apache in Linux. LAMS runs on J2EE Application Server, including (in the case of LAMS 1.0.1) EJB support. Currently LAMS runs on JBOSS 3.0.8 with Tomcat 4.1.24. It is best to run LAMS and Blackboard on separate servers. So an integration that is capable of working across servers is required. The two systems can only use HTTP as communication medium because only HTTP is common to both systems. Web Service, HTTP Request, HttpXMLRequest (JavaScript) are the technology that will be used because they all run on top of HTTP. Page 1 LAMS 1.0.1 and Blackboard Integration 2 USE CASES The Use Cases below outline common uses of the Blackboard and LAMS integration. Primary Actor Author / Editing Teacher Use Cases Create a LAMS sequence in a course Learner Participate in a LAMS sequence in a Course Staff / Non-Editing Teacher Monitor a LAMS sequence Table 2-1: List of use cases 2.1 Create a LAMS sequence in a course Use Case ID: LAMS1.0.1_BB0001 Use Case Name: Create a LAMS sequence in a course Created By: Anthony Xiao Date Created: 09/06/2005 Last Updated By: Date Last Updated: Actors: Author / Editing Teacher Description: Preconditions: 1. Instructor is logged into Blackboard 2. In the Control Panel page Postconditions: 1. Normal Flow: 1. The instructor selects any content (Course Information, Assignment, etc…) in the Content Area. 2. Instructor creates a new content, and selects the LAMS content extension. 3. Select LAMS in the dropdown list. 4. Instructor opts to create a new design (using a button on the screen). 5. The LAMS authoring interface is displayed. Teacher creates a new design, saves it and closes the authoring interface. 6. The list of sequences shown to the teacher is updated. 7. Teacher selects a sequence from the list and indicates that this sequence should be used as the new content. 8. The Blackboard content details are saved. During the saving process, a new session class and lesson are set up in LAMS to run this sequence. Alternative Flows: 1. Instead of creating a new design, the teacher could select an existing design and choose to edit the design. This Page 2 LAMS 1.0.1 and Blackboard Integration would also bring up the LAMS authoring interface. The rest of the steps remain the same. 2. The teacher does not have to create or edit a design at all – the teacher could just select an existing design, skipping from steps 4 to 6. Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Assumptions: Notes and Issues: 2.2 Participate in a LAMS sequence in a Course Use Case ID: LAMS1.0.1_BB0002 Use Case Name: Participate in a LAMS sequence in a Course Created By: Anthony Xiao Date Created: 09/06/2005 Last Updated By: Date Last Updated: Actors: Learner Description: Preconditions: 1. Learner is logged into Blackboard 2. Learner is in the appropriate Content Area Postconditions: 1. Normal Flow: 1. Learner selects a LAMS sequence in the Content Area. 2. The LAMS learner module is opened within a frame in Blackboard. The module automatically goes to the selected lesson. 3. The learner then interacts with the LAMS sequence in the normal LAMS manner. Alternative Flows: 1. Exceptions: Includes: Priority: Frequency of Use: Page 3 LAMS 1.0.1 and Blackboard Integration Business Rules: Special Requirements: Assumptions: Notes and Issues: 2.3 Monitor a LAMS sequence Use Case ID: LAMS1.0.1_BB0003 Use Case Name: Monitor a LAMS sequence Created By: Anthony Xiao Date Created: 09/06/2005 Last Updated By: Date Last Updated: Actors: Instructor / Teaching Assistant Description: Preconditions: 1. Instructor/TA is logged into Blackboard 2. In the Control Panel page Postconditions: 1. Normal Flow: 1. Instructor/TA clicks the LAMS Monitor link in the course tools box. 2. The LAMS monitoring interface is displayed within a frame in Blackboard. 3. Instructor/TA interacts with LAMS Monitor in the normal LAMS manner. Alternative Flows: 1. Exceptions: Includes: Priority: Frequency of Use: Business Rules: Special Requirements: Assumptions: Notes and Issues: Page 4 LAMS 1.0.1 and Blackboard Integration 3 INTEGRATION LOOK AND FEEL LAMS will run as a content extension with in a Blackboard course. This means a Blackboard course will be able to run LAMS Activity Sequence along with other content extension such as Test, Survey, Links, etc… Content extensions are added to Content Areas such as Course Information, Syllabus, Assignments, etc… This means that multiple LAMS contents can be added to any Content Area that supports content extensions. Blackboard contents runs in its own frame. The Integrated LAMS and Blackboard will be running LAMS as a content extension within the Blackboard content frame. Hence LAMS fits into Blackboard nicely with Blackboard and course menu still available to the Blackboard users. NOTE: The breadcrumbs bar is lost when LAMS is running in the content frame. Each of the use cases above will be further discussed below in more details along with screen shots. The screenshot shows the sequence of normal flow for each use case in section 2. 3.1 Creating a LAMS sequence in a course Creating LAMS content is very similar to creating any other content. The following screenshots demonstrate how LAMS Contents will be created. Once the LAMS Content is created in Blackboard the LAMS lesson will start automatically on the LAMS Server. Page 5 LAMS 1.0.1 and Blackboard Integration Figure 3.1-1: The Instructor goes to the course Control Panel. Clicks on a content area (eg: Assignments) in the “Content Area Box” Page 6 LAMS 1.0.1 and Blackboard Integration Figure 3.1-2: Select LAMS from the list of contents. Page 7 LAMS 1.0.1 and Blackboard Integration Figure 3.1-3: Fill in the options and click on submit. Page 8 LAMS 1.0.1 and Blackboard Integration Figure 3.1-4: LAMS Authoring Module displaying after the “Edit selected design” or “Create a new design” button is clicked. The options to be completed when creating a new sequence are; Workspace – the workspace that contains the desired LAMS activity sequence Design – the desired LAMS activity sequence. Besides selecting an existing LAMS activity sequence the instructor also has the options to create a new or edit the selected LAMS activity sequence, those two actions will popup the LAMS authoring module to the instructor. Once the instructor has created or updated a sequence he can click on the refresh design list button the get the latest list of designs. The instructor can do all this without leaving Blackboard. Name – The name of this content to be displayed to other users within this course. Description – The description of this content. The instructor can also select the standard Blackboard options like “make LAMS visible”, ”Track number of views” and “Date restrictions”. 3.2 Participate in a LAMS sequence in a Course Once the LAMS content is created, they can be viewed by going into the appropriate content area and click on the name of the LAMS content created. Page 9 LAMS 1.0.1 and Blackboard Integration Figure 3.2-1: The Assignments Content Area showing LAMS content Page 10 LAMS 1.0.1 and Blackboard Integration Figure 3.2-2: LAMS Activity Sequence running within Blackboard’s content frame 3.3 Monitor a LAMS sequence The instructor can open the LAMS Monitor by clicking on “LAMS Monitor” link inside the Course Tools box in the course control panel page (see figure 3.1-1). This will shows the LAMS monitor within Blackboard listing the active sequences for the course. Page 11 LAMS 1.0.1 and Blackboard Integration Figure 3.3-1: LAMS Monitor running within Blackboard Page 12 LAMS 1.0.1 and Blackboard Integration 4 USER AND LESSON MANAGEMENT 4.1 User Authentication Blackboard and LAMS will use their own authentication mechanism. All URL calls to LAMS will first go through the Blackboard/LAMS authentication protocol. Blackboard will only request one of the three available URL to access LAMS. The three available LAMS URLs are learner, author and monitor. See the Participating, Monitoring and Authoring LAMS sequence section for more detail and sequence diagram. 4.1.1 Blackboard Side Each time Blackboard sends a HTTP request to LAMS. The base request will contain the Server ID, Username, Timestamp, Request Method (learner, author or monitor) and MAC (Message Authentication Code) as part of its parameters. This base request will be used as the authentication protocol between Blackboard and LAMS. The MAC will be used to ensure the integrity of each parameter in the base request. This MAC is generated by hashing the concatenated parameters together with a LAMS supplied secret key. i.e; MAC = HASH{URL + SERVER ID + USERNAME + TIMESTAMP + SECRET KEY} The full HTTP request will consist of the base request plus additional parameters. The additional parameter varies depending on the request method. Learner will append the Learning Session ID and Course ID. Author will append the Learning Design ID to edit exiting designs or nothing to creating new designs. Finally Monitor will append the Course ID. 4.1.2 LAMS Side The authentication protocol in LAMS will only accept HTTP requests from Blackboard that has all required parameters in the base request. LAMS will use the parameters received and the secret key to generate a MAC. If the received MAC and generated MAC are identical this means the request is genuine. Then LAMS will check whether the username attached exist in LAMS. If the user doesn’t exist then LAMS will create it using dynamic provisioning. Then login mechanism is trigger to let the user into LAMS. 4.2 User Provisioning User provisioning deals with problem of how users are synchronized between LAMS and Blackboard. LAMS will provide two different user provisioning methods. The first and preferred method is static provisioning which involves creating or updating the users in bulk using the provided Excel template. The second method is dynamic provisioning which involves creating the user on the fly if user profile is missing in LAMS. Page 13 LAMS 1.0.1 and Blackboard Integration 4.2.1 Static Provisioning Static Provisioning is about synchronizing all users’ account details in LAMS using the provided Excel template. System Administrator will need to populate the Excel template automatically or manually with all the user details. The template is then uploaded into LAMS for user creation, update or removal. This process should be carried out periodically to ensure the up-to-date integrity of user profiles. Compare to dynamic provisioning this method is more efficient because the bulk update could be carried out during off peak usage. 4.2.2 Dynamic provisioning Dynamic provisioning is convenient for users. This ensure valid users in Blackboard (validated by the MAC in HTTP request) will have access to LAMS even the user has not been created using static provisioning. When LAMS detected a valid Blackboard user is trying to gain access but he does not exist in LAMS. Then LAMS will request the user’s details from Blackboard. After the user’s details and been obtained LAMS will insert the user into its Database. This operation is less efficient compare to static provisioning because user creation will affect performance on both Blackboard and LAMS and the user itself will have to wait until the dynamic provisioning process has finished. Dynamic provisioning doesn’t offer user update, because a user’s data is only fetched if the user doesn’t exit. See the Participating, Monitoring and Authoring LAMS sequence section for more detail and sequence diagram. 4.3 User Privilege Mappings Blackboard and LAMS 1.0x use very different user privilege scheme. Blackboard has a more complex privilege structure compare to LAMS. Blackboard has many levels of roles, Primary Institution, Secondary Institution, System and Course Roles. The first three levels are system wide role which will not apply for most users. The course role is a function of the user and the course he/she is in (e.g.: The user is enrolled in two courses, soft1001 and info2001 he could be a student in info2001 and could be tutoring soft1001). LAMS 1.0x only have four different roles (Admin, Staff, Author and Learner) system wide. In another word a user’s roles will be consistence for all classes. The difference of user privilege scheme between the two systems makes it hard to create a one-to-one mapping of the roles. Users can only access LAMS through Blackboard therefore LAMS can leverage on Blackboard’s privilege system. Users created using dynamic provisioning will be given a configurable default role say Learner. Users created using static provisioning could have admin, staff, author, and/or learner role. The roles will be filled out in the Excel spreadsheet. Since users can not log into LAMS directly the extra functionality that the users have base on their roles will not be available to them. Extra functionality such as LAMS Author and Monitor will only be available to Blackboard user who has access to Blackboard’s Course Control Panel. Page 14 LAMS 1.0.1 and Blackboard Integration 4.4 Blackboard Courses, LAMS Classes and User Class Membership Not all Blackboard courses (a.k.a. course) will create a LAMS sequences. When a course creates its first LAMS sequences a LAMS class (a.k.a. class) will need to be created. Basically the relationship between courses to classes is one to zero or one. Since not all courses needs a class then there is no need to create the classes before hand. When a course first creates a LAMS sequence then LAMS knows this course requires LAMS’ service. LAMS will create a class for the course on the fly. The class membership for users will also be added on the fly when a user accesses the first sequence for the first time. Page 15 LAMS 1.0.1 and Blackboard Integration 5 LAMS MODIFICATIONS Several parts of LAMS need to be retouched in some way or form. Some are small like extending the length of the usernames and others are bigger like the authentication protocol. Many issues arise which leads to LAMS modifications. Some of the issues are; how is LAMS going to ensure the integrity of requests from external systems? How are external systems identified? How are users from external systems identified? How will user provisioning work? How users’ and their roles and permissions synchronized? How does users get authenticated? A brief list of modifications and new functionalities added to LAMS is listed below; Handling External System LAMS have no previous knowledge of supporting external systems. To be able to support multiple external systems such a Blackboard or Moodle the external systems are identified by their Server ID. Each request from the external system will carry its Server ID, which will allow LAMS to retrieve secret key, organization ID, username prefix, callback URLs etc… Users, classes, designs and sequences will all be created under the organization identified by their Server ID. This will allow a single instance of LAMS to serve more than one external systems. Class Creation LAMS will have no knowledge of the classes that exist in Blackboard until one of its course tries to create a sequence. Once LAMS knows a certain course exists then it will create the corresponding class. Course to Class Mapping A LAMS Class has different identifier to an external course. To identify the correct class that corresponds to the external course, mapping is required. User Provisioning See the user and lesson management section External User to LAMS User Mapping Users are identified by their unique username. But when handling multiple systems the unique username is not so unique after all. To solve this username prefix will be attached before each username to prevent username collision between the systems. LAMS Authentication See the user and lesson management section Web Services Page 16 LAMS 1.0.1 and Blackboard Integration Certain level of internal LAMS functionality will be carried out by the external system. To allow external systems to invoke internal functions those functions will need to be exposed. Also see the Blackboard and LAMS Interactions section. Flash UI LAMS 1.0x uses Flash to interact with users. LAMS doesn’t support users jumping straight into a sequence. Previously the users have to navigate to a design in Authoring or sequence in Learner UI in Flash. Now users can participate in a sequence or author a design directly in from Blackboard. Hence the LAMS Flash UI has to be modified accommodate this. Page 17 LAMS 1.0.1 and Blackboard Integration 6 BLACKBOARD AND LAMS INTERACTIONS To offer the functionality listed in the user case, both Blackboard and LAMS will need to provider certain services to each other. The services will interact with each other in the background which doesn’t require explicit user inputs. This allows the users to interact with the two systems transparently. The interaction between the two systems will be described in more detail below along with sequence diagrams. 6.1 Participating, Monitoring and Authoring LAMS sequence Participating, Monitoring and Authoring LAMS sequence with in Blackboard is the matter of displaying the requested LAMS User Interface (UI) with in a frame in Blackboard. The two sequence diagrams below illustrate this process. Dynamic provisioning is part of the authentication process but it’s separated into its own diagram for readability. Figure 6.1-1: Participating, Monitoring and Authoring LAMS sequence Page 18 LAMS 1.0.1 and Blackboard Integration Figure 6.1-2: Dynamic User Provisioning 6.2 Creating LAMS sequence Creation of LAMS sequence in Blackboard is complicated than the other use cases. Sequence creation involves getting the list of workspaces and sequences from LAMS. Then tell LAMS to create the learning session. Below are two sequence diagrams that show those two interactions. Page 19 LAMS 1.0.1 and Blackboard Integration Figure 6.2-1: Getting the list of workspaces and sequences. Figure 6.2-2: Create the learning session Page 20