1 / 20

Towards Bboogle 3.0.0: a Technical W alkthrough

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?

vesta
Download Presentation

Towards Bboogle 3.0.0: a Technical W alkthrough

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. Demonstration SSO available

  6. 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

  7. 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

  8. 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

  9. How we approached it: Bboogle Teams

  10. Technical Walkthrough: Architecture

  11. 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

  12. 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

  13. 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

  14. 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; }

  15. 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;

  16. 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!)

  17. 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

  18. 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

  19. 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 pgoldweic@northwestern.edu bnielsen@northwestern.edu

  20. We value your feedback!Please fill out a session evaluation.

More Related