towards bboogle 3 0 0 a technical w alkthrough
Download
Skip this Video
Download Presentation
Towards Bboogle 3.0.0: a Technical W alkthrough

Loading in 2 Seconds...

play fullscreen
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