My First Building Block - PowerPoint PPT Presentation

About This Presentation
Title:

My First Building Block

Description:

listitem value='/images/icon.gif'/ /icons /content-handler ... ssl='false' name='Link Checker' can-allow-guest='true' small-icon='' large-icon ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 47
Provided by: jj24
Category:
Tags: block | building | first | icon

less

Transcript and Presenter's Notes

Title: My First Building Block


1
My First Building Block
  • Presented By Tracy Engwirda

28 September, 2005
2
Overview
  • Background
  • Planning
  • UI Integration
  • Which APIs
  • Package Structure
  • Manifest Structure
  • Security Framework
  • UI Taglibs
  • Building Blocks Manager
  • .. and more

3
Terminology
  • Building Blocks Program
  • All development and integration with Blackboard
    products
  • Building Blocks Framework
  • The set of patterns and objects that allow
    interaction with all of Blackboards products
  • Building Blocks API
  • The Java and .NET interfaces
  • Building Blocks Manager
  • The management interface for Building Blocks
  • Building Block
  • An application that relies on the Building Blocks
    API
  • Blackboard Enabled
  • A quality assurance and testing program for
    Building Blocks

4
Terminology
  • Building Block Types
  • Plug-in
  • Stand alone
  • Communicate only with Learning System
  • Bridge
  • Communicates with external server(s) and Learning
    System
  • Will not function without external server

5
Planning
  • What are you project goals?
  • What are the application requirements?
  • How are you going to build your application?
  • JSP? Servlet? Web Service?
  • Where are you going to hook your application?
  • Which APIs are you going to use?

6
Planning
  • Where are you going to hook your application into
    Blackboard?

7
UI Entry Points
  • New Course Tool
  • New Course Communication Tool
  • New Control Panel Tool
  • New System Admin Tool
  • New Portal Module
  • New Content Type
  • New User Tool

8
Entry Points
  • Programmatic Entry Points
  • Specified in bb-manifest.xml
  • Manual Entry Points
  • System Administrator created

9
Course Tool
  • ltlinkgt
  • lttype value"tool"/gt
  • ltname value"Sample Tool"/gt
  • lturl value"tool_1/tool.jsp" /gt
  • ltdescription value"The description of Sample
    Tool." /gt
  • lticonsgt
  • ltlistitem value"/images/icon.gif"/gt
  • lt/iconsgt
  • lt/linkgt
  • Course ID is passed to page

10
Course Communication Tool
  • ltlinkgt
  • lttype value"communication"/gt
  • ltname value"Sample Communication Tool"/gt
  • lturl value"communication_1/tool.jsp" /gt
  • ltdescription value"The description of Sample
    Communication Tool." /gt
  • lticonsgt
  • ltlistitem value"images/icon.gif"/gt
  • lt/iconsgt
  • lt/linkgt
  • Course ID is passed to page

11
Course Control Panel
  • ltlinkgt
  • lttype value"course_tool"/gt
  • ltname value"Sample Control Panel Tool"/gt
  • lturl value"control_panel_1/tool.jsp" /gt
  • ltdescription value"The description of Control
    Panel Tool." /gt
  • lticonsgt
  • ltlistitem value"images/icon.gif"/gt
  • lt/iconsgt
  • lt/linkgt
  • Course ID is passed to page

12
System Admin Panel
  • ltlinkgt
  • lttype value"system_tool"/gt
  • ltname value"Sample Admin Panel Tool"/gt
  • lturl value"admin_panel_1/tool.jsp" /gt
  • ltdescription value"The description of Control
    Panel Tool." /gt
  • lticonsgt
  • ltlistitem value"images/icon.gif"/gt
  • lt/iconsgt
  • lt/linkgt
  • Nothing passed to page

13
Content Type
  • ltcontent-handlergt
  • ltname value"Sample Content"/gt
  • lthandle value "resource/x-bbgs-sample"/gt
  • lthttp-actionsgt
  • ltcreate value"handler/create.jsp"/gt
  • ltmodify value"handler/modify.jsp"/gt
  • ltremove value"handler/remove.jsp"/gt
  • lt/http-actionsgt
  • lticonsgt
  • lttoolbar value"/images/add_ch1.gif"/gt
  • ltlistitem value"/images/icon.gif"/gt
  • lt/iconsgt
  • lt/content-handlergt
  • Course ID and Container ID are passed to page

14
Portal Module
  • ltmodule-defsgt
  • ltmodule-type ext-ref"smpl-module"
    title"Sample Module Type" uicreatable"true"gt
  • ltjsp-dirgtmodulelt/jsp-dirgt
  • ltjspgt
  • ltviewgtview.jsplt/viewgt
  • ltadmingtadmin.jsplt/admingt
  • lt/jspgt
  • lt/module-typegt
  • lt/module-defsgt
  • Nothing is passed to page

15
User Tool
  • ltlinkgt
  • lttype value"user_tool"/gt
  • ltname value"Sample User Tool"/gt
  • lturl value"user_tool_1/tool.jsp" /gt
  • ltdescription value"The description of User
    Tool." /gt
  • lticonsgt
  • ltlistitem value"images/icon.gif"/gt
  • lt/iconsgt
  • lt/linkgt
  • Nothing passed to page

16
Custom Tab
  • System admin can change the location of a tab to
    point to a Building Block

17
Custom Course Link
  • System admin or course instructor change add a
    Building Block to the course navigation area

18
Hidden Link
  • A page does not need to be in the manifest in
    order to be loaded.

19
Planning
  • Which APIs are you going to use?

20
API Capabilities
  • Building Blocks APIs
  • Announcement (read and write)
  • Calendar (read and write)
  • Content (read and write)
  • Gradebook (read and write)
  • Session (read and write)
  • File system (read and write)
  • User (read)
  • Course (read)
  • Membership (read)
  • .. And Many, many more!

21
API Capabilities
  • How to write to User/Course/Membership?? Event
    APIs
  • Event APIs use a similar data model to the
    Building Block APIs but has a different security
    model. Data object naming conventions match IMS
    structure of snapshot data.

22
API Capabilities
  • Event APIs
  • Person (User)
  • Group (Course / Organization)
  • Membership
  • Catalog Category
  • Catalog Link
  • Data Source Key

23
Planning
  • Installation

24
Installation
  • Only system administrators can install
  • No restart required with Bb 6
  • Must confirm Building Block permissions
  • Often requires configuration
  • Installation is through the Building Blocks
    Manager

25
Building Block Manager
  • Heart of the Blackboard Platform
  • Controls security, permissions, and availability
  • Manages the hook points within the UI
  • Handles deployment

26
Building Block Manager
User Interface Hooks / Availability
Context Passing
Security Manifest Controls
Deployment Tracking
API Wrappers Convenience Methods
Data Integrity Enforcement
Content
Gradebook
Announcements
User
Course
Membership
Calendar
File System
Persistence
Plugin
Security
Session
TagLib (UI)
27
Building Block Manager
28
Structure of Building Blocks
29
Building Block Webapp
  • A Building Block is a Java Web Application
    (webapp) with one extra file
  • The extra file is bb-manifest.xml

30
Directory Layout
Shared via web
Hidden from web
31
Package Format
  • A webapp is a zip file with a specific directory
    structure
  • WinZip, PkZip, Javas Jar utility, or Ant will
    all create the correct package
  • Even though it is a zip file, the extension does
    not matter (.zip, .war, .bb will all work)

32
WEB-INF
  • Hidden from web
  • Contents
  • web.xml
  • bb-manifest.xml
  • Config directory
  • Classes directory
  • Lib directory

33
Config Directory
  • Hidden from web
  • Only accessible by the Building Block
  • Can contain anything
  • One option for storing your application data.
  • No size limit

34
Custom Code and Libraries
  • Classes
  • Stored in WEB-INF\classes
  • Jars
  • Stored in WEB-INF\lib
  • Automatically on classpath via custom classloader

35
Manifest Structure
  • bb-manifest.xml
  • Set of directives the developer provides
  • Building Blocks Configuration
  • Application Definitions
  • Content Handlers
  • UI Links
  • Portal Modules
  • Security Declarations
  • Lets Take a Look

36
bb-manifest.xml File
lt?xml version"1.0" encoding"ISO-8859-1"?gt ltmanif
estgt ltplugingt ltname value
"Blackboard Link Checker"/gt lthandle
value "link-checker"/gt ltdescription
value "This plugin is for checking and disabling
external links in Blackboard."/gt ltversion
value "2.0.4"/gt ltrequiresgt
ltbbversion value"6.0.0"/gt lt/requiresgt
ltvendorgt ltid value"bb"/gt
ltname value"Blackboard Research and
Development"/gt lturl
value"http//www.blackboard.com/" /gt
ltdescription value"Blackboard Research and
Development Team" /gt lt/vendorgt
lthttp-actionsgt ltconfig
value"admin/config.jsp"/gt ltremove
value"admin/remove.jsp"/gt
lt/http-actionsgt ltapplication-defsgt
ltapplication handle"linkchecker"
type"course" use-ssl"false" name"Link Checker"
can-allow-guest"true" small-icon""
large-icon""gt
37
bb-manifest.xml File
lt?xml version"1.0" encoding"ISO-8859-1"?gt ltmanif
estgt ltplugingt ltname value
"Blackboard Link Checker"/gt lthandle
value "link-checker"/gt ltdescription
value "This plugin is for checking and disabling
external links in Blackboard."/gt ltversion
value "2.0.4"/gt ltrequiresgt
ltbbversion value"6.0.0"/gt lt/requiresgt
ltvendorgt ltid value"bb"/gt
ltname value"Blackboard Research and
Development"/gt lturl
value"http//www.blackboard.com/" /gt
ltdescription value"Blackboard Research and
Development Team" /gt lt/vendorgt
lthttp-actionsgt ltconfig
value"admin/config.jsp"/gt ltremove
value"admin/remove.jsp"/gt
lt/http-actionsgt ltapplication-defsgt
ltapplication handle"linkchecker"
type"course" use-ssl"false" name"Link Checker"
can-allow-guest"true" small-icon""
large-icon""gt
38
bb-manifest.xml File
ltapplication-defsgt
ltapplication handle"linkchecker" type"course"
use-ssl"false" name"Link Checkergt
ltdescription lang"en_US"gtLink Checker tool
installed with the Link Checker
Pluginlt/descriptiongt ltlinksgt
ltlinkgt lttype
value"course_tool"/gt ltname
value"Link Checker"/gt lturl
value"links/checklinks.jsp" /gt
ltdescription value"Checks and disables links in
Blackboard." /gt lticonsgt
ltlistitem value"images/link-logo.gif"/gt
lt/iconsgt
lt/linkgt lt/linksgt
lt/applicationgt lt/application-defsgt
ltpermissionsgt
ltpermission type"persist" name"Content"
actions"modify"/gt ltpermission
type"attribute" name"user.authinfo"
actions"get"/gt ltpermission
type"socket" name"" actions"connect"/gt
lt/permissionsgt lt/plugingt lt/manifestgt
39
bb-manifest.xml File
ltapplication-defsgt
ltapplication handle"linkchecker" type"course"
use-ssl"false" name"Link Checkergt
ltdescription lang"en_US"gtLink Checker tool
installed with the Link Checker
Pluginlt/descriptiongt ltlinksgt
ltlinkgt lttype
value"course_tool"/gt ltname
value"Link Checker"/gt lturl
value"links/checklinks.jsp" /gt
ltdescription value"Checks and disables links in
Blackboard." /gt lticonsgt
ltlistitem value"images/link-logo.gif"/gt
lt/iconsgt
lt/linkgt lt/linksgt
lt/applicationgt lt/application-defsgt
ltpermissionsgt
ltpermission type"persist" name"Content"
actions"modify"/gt ltpermission
type"attribute" name"user.authinfo"
actions"get"/gt ltpermission
type"socket" name"" actions"connect"/gt
lt/permissionsgt lt/plugingt lt/manifestgt
40
bb-manifest.xml File
ltapplication-defsgt
ltapplication handle"linkchecker" type"course"
use-ssl"false" name"Link Checkergt
ltdescription lang"en_US"gtLink Checker tool
installed with the Link Checker
Pluginlt/descriptiongt ltlinksgt
ltlinkgt lttype
value"course_tool"/gt ltname
value"Link Checker"/gt lturl
value"links/checklinks.jsp" /gt
ltdescription value"Checks and disables links in
Blackboard." /gt lticonsgt
ltlistitem value"images/link-logo.gif"/gt
lt/iconsgt
lt/linkgt lt/linksgt
lt/applicationgt lt/application-defsgt
ltpermissionsgt
ltpermission type"persist" name"Content"
actions"modify"/gt ltpermission
type"attribute" name"user.authinfo"
actions"get"/gt ltpermission
type"socket" name"" actions"connect"/gt
lt/permissionsgt lt/plugingt lt/manifestgt
41
Security Framework
  • Security must be explicitly declared in the
    bb-manifest.xml file.
  • XML Format corresponds closely with the format
    for Standard Java policy files
  • Security will be enforced by the JVM

42
UI Taglibs
  • XML style tags that can be placed on a jsp page.
  • Blackboard supplies two sets of taglibs
  • bbUI for making pages fit in with the product
  • bbData for giving pages context and virtual
    installation information
  • Specify your own in web.xml

43
More information
  • Building Blocks Website http//www.blackboard.com/
    developers/
  • Building Blocks Catalog
  • Software Development Kit (SDK)
  • Blackboard Developer Network (BbDN)http//behind.
    blackboard.com/
  • Learning System Developer License
  • Communities, Knowledge Base, Code Snippets, White
    Papers, Beta Software
  • Other Community Resources
  • Open Source User Group and BBUG forums
    http//www.bb-opensource.org/

44
Why Start from Scratch?
  • Start with a sample Building Block
  • Reuse existing code
  • Customize to meet your needs

45
Enough of the theory!
Lets take a look at some real code
46
Questions?
Write a Comment
User Comments (0)
About PowerShow.com