Towards bboogle 3 0 0 a technical w alkthrough
Download
1 / 20

Towards Bboogle 3.0.0: a Technical W alkthrough - PowerPoint PPT Presentation


  • 49 Views
  • Uploaded on

Towards Bboogle 3.0.0: a Technical W alkthrough. Patricia Goldweic Sr. Software Engineer AR&T, Northwestern University Brian Nielsen Manager, Faculty Support Services AR&T, Northwestern University. Overview. Bboogle History and Demo What was missing?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Towards Bboogle 3.0.0: a Technical W alkthrough' - vesta


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Towards bboogle 3 0 0 a technical w alkthrough

Towards Bboogle 3.0.0: a Technical Walkthrough

Patricia Goldweic

Sr. Software Engineer

AR&T, Northwestern University

Brian Nielsen

Manager, Faculty Support Services

AR&T, Northwestern University


Overview
Overview

  • Bboogle History and Demo

  • What was missing?

  • How we approached it: Bboogle Teams

    • Teams Demo

  • Putting it all together: Bboogle and Bboogle Teams

  • Technical Walkthrough

    • Architecture

    • Development best practices used

  • Future Roadmap


Bboogle history
Bboogle History

  • Open source project started by Northwestern (2009)

    • In production at NU by June 2009

  • Northwestern developed Bboogle Teams in 2010-2011

    • Initially independent from the LMS

    • Eventually integrated with Blackboard groups

  • Blackboard contributed certified block in 2011 (2.0.0+)

    • The Bb – NU partnership resulted in an easier to install package

  • NU integrated Bboogle and Bboogle Teams in 2012


Bboogle history1
Bboogle History

What is Bboogle? A Bb-Google Apps integration that provides:

  • Instructor tools to embed Google Apps content in Bb courses

  • Automatic adjustment of permissions in Google

  • Integration with Google Single Sign On

  • (optional) Automated Google Apps user provisioning


Demonstration
Demonstration

SSO available


What was missing
What was missing?

  • A convenient way to collaborate in small teams using Google Apps resources

  • Teams could be fluid, or time-constrained

  • Shared spaces in Google Apps for each such team

  • A way to expose these resources within the LMS


How we approached it bboogle teams
How we approached it: Bboogle Teams

Bboogle Teams Concepts

  • Community: course or academic program, cohort, etc.

  • Team: group of people within a given community

  • Breakout:set of (time-constrained) disjoint teams, which partitions a community

  • Communities and teams are built on GA groups

  • A team has a corresponding GA site, GA calendar and GA collection


How we approached it bboogle teams1
How we approached it: Bboogle Teams

Integrating Bboogle Teams with the LMS

  • A Bb course is mapped to a Bboogle Teams community

  • A Bb group set is mapped to a Bboogle Teams breakout

  • A Bb group is mapped to a Bboogle Teams team

  • To update team memberships, one (re) synchronizes a Bb group set with its mapped breakout

  • Course tool: exposes team content to course

  • Control panel tool: used for (re) synchronization




Technical walkthrough best practices
Technical Walkthrough: Best Practices

Services Oriented Architecture

  • Gint and Teams services as independent of the LMS

  • When fully enabled, services can be contacted via http

    Example Gint service requests:

  • (provisioning) group Signup Request, verification

  • (sharing) share content with GA group

    Example Teams service requests:

  • Community, breakout and team creation

  • Team membership verification, ownership requests

  • Membership synchronization


Technical walkthrough best practices1
Technical Walkthrough: Best Practices

Services Oriented Architecture

  • Gintand Teams have Java client libraries

    • local and remote clients are supported (2.1.0)

  • Teams uses Gint to interact with Google services.

  • If fully enabled, Teams is a set of restful web services

  • Gint was expanded to support Teams functionality

    • Scheduling of requests

    • GA Content creation


Technical walkthrough best practices2
Technical Walkthrough: Best Practices

Use of the Java Persistence Framework

  • JPA is used as an ORM, Eclipselink as JPA provider

  • Programming is done at a higher level of abstraction

    • POJO methods used to access content

    • JPQL is used for (few) database queries; no JDBC

    • persistence.xml file used to configure JPA provider

  • Blackboard contributed hook to Bb’s database in JPA

    • BlackboardSessionCustomizer class for Eclipselink

    • schema.xml


Technical walkthrough jpa code snippets gint service example
Technical Walkthrough: JPA code snippets(Gint service example)

import javax.persistence.*;

@Entity

@Table (name="nwu_gintlink")

public class GintLink extends TransactionalObject {

private String m_contentUrl; // content url for the link

private String m_creatorId; // Google id of the content’s creator

private intm_id; // generated primary key

// ************ Getters and Setters *****************

@Column(name="contentUrl")

public String getContentUrl() {

return m_contentUrl;

}

@Id

@GeneratedValue(generator="nwu_gintlink_seq")

@Column(name="id")

public intgetId() {

return m_id;

}


Technical walkthrough jpa code snippets teams service example
Technical Walkthrough: JPA code snippets(Teams service example)

@Entity

@Table (name="nwu_btperson")

public class Person implements JSonUtilSerializable{

@Id

@Column(name="id")

private String id; // The Google id (complete email address) of the community member

@OneToMany

@JoinTable (

name="nwu_btperson_community",

joinColumns= @JoinColumn(name="personId", referencedColumnName="id"),

inverseJoinColumns= @JoinColumn(name="communityId", referencedColumnName="id")

)

private Collection<Community> communities;

@Temporal (TemporalType.TIMESTAMP)

@Column(name="created")

private Date created;


Technical walkthrough jpa code snippets
Technical Walkthrough: JPA code snippets

Creating an object (e.g. GintLink) and saving it in the database:

import javax.persistence.*;

EntityManager manager;

GintLink link = new GintLink(contentURL, creatorId);

manager.persist(gintLink);

Finding all the Bboogle Teams communities associated with a Person record:

import javax.persistence.*;

Person person;

Collection<> communities = person.getCommunities();

NOTE: no sql queries were used in the above examples (they’re not needed!)


Technical walkthrough jpa code snippets1
Technical Walkthrough: JPA code snippets

Example use of JPQL in Gint service:

Import javax.persistence.*;

Query linkQuery = manager.createQuery("SELECT l FROM GintLink l where l.contentUrl = ?1 and l.creatorId = ?2");

linkQuery.setParameter(1, contentURL);

linkQuery.setParameter(2, userid);

List<?> links = linkQuery.getResultList();

NOTE: JPQL queries use the classes’ public property names

JPA configuration examples:

See persistence.xml, schema.xml and BlackboardSessionCustomizer included in Bboogle’s distribution


Bboogle roadmap
Bboogle Roadmap

BbCertification of Bboogle 3.0.1 (when?)

Improving instructional use

  • Admin tools to help manage Google resources

  • Creation of Google content from within Bb

  • Support primary/secondary Google domains

  • Make Bboogle a group-level tool

    Keeping up with Google’s platform

  • Provisioning auth upgrade

  • Migrate over to newer Google apis


Bboogle contacts
Bboogle Contacts

Blackboard Certified Building Block

  • Distributed with Bb software updates

    Bboogle 3.0.1: (no Blackboard support)

  • Subversion checkout : https://source.at.northwestern.edu/svn/os/bb-gint/trunk

    Open source project site: (contributors welcome)

    http://projects.oscelot.org/gf/project/bboogle

    Join project’s mailing list and monthly adopters meetings

  • Third Wednesday of each month, 2 pm CDT

    [email protected]

    [email protected]



ad