An Open Source Google Apps Integration (Bboogle) University

An Open Source Google Apps Integration
(Bboogle)
Patricia Goldweic, Sr. Software Engineer, Northwestern
University
Overview
•
•
•
•
•
•
•
•
Introduction
Main Features
Demo
High Level Architecture
Project Components
How to Use Bboogle in your Institution
Future Directions
Questions
Northwestern University
• Northwestern University is a private R1 institution with two
campuses, one in Chicago, and the other in Evanston, IL, the first
suburb immediately north of Chicago.
– 15,500 students, 60% undergraduate
– Northwestern has been using Blackboard as its primary CMS since
Spring 1999.
– Northwestern became a Google Apps for Education campus in Spring
2007, for students only, not faculty or staff.
– Although faculty can obtain accounts in this domain, currently
Gmail is not provided to faculty
Introduction
Why Integrate Blackboard with Google Apps?
• To leverage the collaboration features offered by Google Apps
– To provide data sharing capabilities in Google Docs not implemented in
Blackboard.
– To allow students to see class activities integrated into their personal
calendars.
– To offer wiki features via Google Sites as soon as a Google Sites API’s
are available.
• To model an approach to sharing that is common in many scholarly
communities
• To offer instructors an easy means of providing information that
integrates seamlessly into the students’ information environment
Main Features
• Links in Blackboard to Google Apps Documents and Calendar
– A convenient browser ‘bookmarklet’ hooks a Google Doc/Calendar to a
Blackboard course site.
– Blackboard custom content types are also available for the same
purpose.
– Links allow an instructor to provide automatic sharing of Google Docs
and Calendars to enrollees in a Blackboard course.
• Single Sign On to Google Apps domain
– Supports automated creation of Google accounts when needed
(configurable)
High Level Architecture
SSO UML diagram
Linking UML Diagram (content tool)
Linking UML Diagram (bookmarklet)
The Bboogle Building Block
• Custom content tools for linking Google content: documents,
calendars and sites.
• A ‘bookmarklet’ alternative to the traditional Blackboard custom
content tools, which allows content linking while within the Google
Apps user interface.
• Course tools that provide SSO to Google Apps Sites, Documents
and Calendar services.
The Bboogle Building Block
• The ‘SSO Bridge’ Servlet
– Runs whenever a user clicks on any of the Bboogle bookmarks/links, including
the SSO course tools, and provides the front-end logic to the Google SSO
process
– If automated provisioning is used, it ensures that the user clicking has a Google
Apps account
– Transfers control to Google ONLY after verifying that that the user is allowed to
access to the document
– Uses the Google Integration Service to handle user provisioning and
authorization issues that are handled during user clicks.
• The ‘Linking Servlet’
– Runs whenever an instructor chooses to create a bookmark/link to Google Apps
content: calendars, documents and sites.
– Creates a course document to hold the bookmark/link
– Uses the Google Integration Service to handle authorization issues (e.g.
requests to share document/calendar with the Blackboard class).
The Google Integration Server
• Mediates all communication between the building block and Google
• Uses a small embedded database to store information to:
– Keep track of Google content publication and access in Blackboard
courses
– Efficiently manage building block requests to avoid unneeded
communication with Google
– Provide usage information that could later be used by reporting tools
Google Integration Database Details
What gets Stored?
• The existence and activation record for a given Google account
• The pairing of a piece of Google content + its owner
• The publication of one such pair to a certain BB course, with a
particular collaborator role
• The successful execution of a sharing request concerning a
particular publication record + a particular Google collaborator
account
Google Integration Server Requests
What types of requests does it handle?
• Checks for the existence/activation of a specified Google account
• Creation of Google Apps accounts
• Bookmark/link creation bookkeeping (using its database)
• Requests to obtain a user’s document or calendar details from
Google Apps
• Requests to share documents/calendars with a group of users
Example Walkthrough: instructor navigates
to Google calendar and uses bookmarklet
Within the building block:
• Requests are made to the Google Integration server to verify account
ownership, and obtain Google Calendar details for the instructor.
• A new course document is created in the Blackboard course, containing a
link to the Google document or calendar. A request is then made to the
Google Integration server to share the content with the Blackboard course.
Within the Google Integration Server
• An account record is retrieved/created verifying that the user has a Google
account (GintAccount)
• An ownership pair (GintLink) and a publication record (GintPublication) are
created before the new course document is created by the building block.
• A sharing record (GintShareRecord) is created/retrieved for each user
enrolled in the class, linked to the corresponding publication record.
How to use Bboogle in your institution
• Possibly customize the mapping between Blackboard user ids and
Google user ids (requires implementation of a Java interface)
• Decide on your SSO solution:
– Customize your current Google SSO solution so that it can work well
with BBoogle. OR
– For testing purposes, you can use the provided SSO solution. You can
also use it as a ‘reference’ implementation that helps you come up with
your production-ready version. Be sure to properly register your Google
SSO solution in the Google Apps administrator panel.
• Install the BBoogle building block and the Google Integration Server
(a web application) and configure application parameters.
Future Directions
• Support SSO to Gmail and other Google Apps services
• Offer linking to other types of Google content as soon as services
expose permission apis (e.g. Google Sites)
• Explore the possibility of hosting the Google Apps Integration server
in the Google Apps Engine
• Possibly create additional tools to facilitate the ‘publishing’ of Google
content to Blackboard courses.
• Explore the possibility of offering a sharing tool for students
How to get Bboogle
• Bboogle is hosted at the Oscelot projects site
http://projects.oscelot.org/gf/project/bboogle
• The Subversion repository can be found at
https://source.at.northwestern.edu/svn/os/bb-gint
• You can contact us for more details at:
– [email protected] or
– [email protected]