a blackboard building block™ crash course for web developers murali yellepeddy, architect

20
A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Upload: aditya-battersby

Post on 14-Dec-2015

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

A Blackboard Building Block™ Crash Course for Web Developers

Murali Yellepeddy, Architect

Page 2: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Agenda

• Blackboard Building Block Introduction

• Hooks into the platform

• B2 Manager

• Blackboard® API

• Tag libraries

• Security

• Q&A

Page 3: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Introduction

• If you've ever built a webapp for Tomcat®, WebLogic®, WebSphere®, etc Or a portlet for uPorta®l, Liferay®, etc - you've essentially already built a Blackboard Building Block

• Blackboard® itself is nothing more than a bunch of webapps running on Tomcat

Page 4: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Blackboard® Architecture

Client

Bb App Server(s) Bb DB Server

Oracle® /SQL*

Server®

Apache /IIS

Static files .html

Tomcat.jsp pages

/webapp pagesLocale images

Collab Server

chat & virtual classroom

Page 5: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

• B2s are most-closely-related to a portlet in that it's a simple webapp with 1 extra XML file that tells Blackboard where your app will hook into it

Blackboard Building Block Contents

webapp

Manifest (XML)

Page 6: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

BB-Manifest.XML

• Describes the web application to the Blackboard plug-in manager

– Metadata

• Allows to extend functionality

– Custom Content– Links– Portal Modules– Register to Notifications– Gradable Items

• Security

– Entitlements– Permissions

Page 7: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Basic Structure of a Blackboard-Manifest File

<?xml version="1.0" encoding="ISO-8859-1"?>

<manifest>

<!-- core extension information -->

<plugin>

<!-- general information: name, handle, etc. -->

<http-actions> ... </http-actions>

<!– Register to Notifications -->

<extension-defs> ... </extension-defs>

<!-- Custom Portal Modules -->

<module-defs> ... </module-defs>

<!–- Score Providers -->

<score-providers> ... </score-providers>

Page 8: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Basic Structure of a Blackboard-Manifest File

<!-- custom content handlers -->

<content-handlers>

<content-handler> ... </content-handler>

</content-handlers>

<!-- Tools defined by this extension -->

<application-defs>

<application> ... </application>

</application-defs>

<permissions> ... </permissions>

</plugin>

</manifest>

Page 9: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Example Code

• Hello World Mashup content handler

• Adds a course tool

Page 10: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Blackboard® B2 Manager

Page 11: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

What to use to build it..

• Just like a webapp, you can use whichever framework technology you want to use - Struts & Spring are the most common.

• You can also use straight JSPs for the most basic of projects, but using MVC is recommended as a better practice

• Similarly, you can easily add supporting libraries such as those from the Apache Commons projects to avoid reinventing the wheel for common tasks. Note, a lot of libraries already ship with Blackboard® Learn™(check /blackboard/apps/tomcat/lib)

Page 12: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Blackboard® Look & Feel

• Easy to render the user interface using the Blackboard tag libraries - similar to the JSTL libraries (Java) or SharePoint web part Web UI Controls used to render HTML.

• The tag libraries inherit the look/feel, usability, and accessibility of the core product

• You can also roll your own UI using straight HTML if desired

Page 13: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Example Code

Page 14: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Javascript

• Blackboard uses Prototype.

• You can layer additional AJAX technologies on top of it such as Scriptaculous for slick web 2.0-like behavior.

• Would not recommend using JQuery as sometimes Prototype and JQuery don't interact so well. Another one to look at is AjaxTags.

Page 15: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Blackboard® API to Access Blackboard Data

• Base persistence objects are defined in the package, blackboard.persist, with sub-packages including

– announcement– calendar– content– course– gradebook– user

Page 16: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Context vs Persistence

Context tag– Current Session– Current Page– Who am I?– Where am I?

Persistence objects– Permanent Data

Store– Retrieve or

update data– Single objects

• UserId given UserName

– Lists of objects• All users in a

course• All courses for a

user

Page 17: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Permissions

• Wrapper around Java security

• Allows administrators to allow or deny a building block based on what it is trying to access

Page 18: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

References

• Documentation and API reference

– http://www.edugarage.com

• Tag libraries: – Current versions on your Blackboard Learn Server

…/blackboard/content/WEB-INF/config/taglibs – Generate documentation (html-format)

https://taglibrarydoc.dev.java.net/

Page 19: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Questions ?

Page 20: A Blackboard Building Block™ Crash Course for Web Developers Murali Yellepeddy, Architect

Please provide feedback for this session by emailing [email protected]

The subject of the email should be title of this session:

A Building Block Crash Course for Web Developers