Presentation is loading. Please wait.

Presentation is loading. Please wait.

Towards Bboogle 3.0.0: a Technical Walkthrough Patricia Goldweic Sr. Software Engineer AR&T, Northwestern University Brian Nielsen Manager, Faculty Support.

Similar presentations


Presentation on theme: "Towards Bboogle 3.0.0: a Technical Walkthrough Patricia Goldweic Sr. Software Engineer AR&T, Northwestern University Brian Nielsen Manager, Faculty Support."— 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 2

3 Bboogle History 3 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 4

5 Demonstration 5 SSO available

6 What was missing? 6 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 7 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 8 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 9

10 Technical Walkthrough: Architecture 10

11 Technical Walkthrough: Best Practices 11 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 12 Services Oriented Architecture Gint and 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 13 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) 14 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 int m_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 int getId() { return m_id; }

15 Technical Walkthrough: JPA code snippets (Teams service example) 15 @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 communities; @Temporal (TemporalType.TIMESTAMP) @Column(name="created") private Date created;

16 Technical Walkthrough: JPA code snippets 16 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 17 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 18 Bb Certification 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 19 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 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 20 We value your feedback! Please fill out a session evaluation.


Download ppt "Towards Bboogle 3.0.0: a Technical Walkthrough Patricia Goldweic Sr. Software Engineer AR&T, Northwestern University Brian Nielsen Manager, Faculty Support."

Similar presentations


Ads by Google