Building Blocks Conference Notes
Blackboard Developers Conference
Georgetown University, 2004
Monday, July 26
09:00–09:45 a.m.
Keynote Session
Matthew Pittinsky
- Highlights:
-
- We are in the midst of a transition from e-learning applications in individual courses to a campus-wide network learning environment involving all members of the institution
- Blackboard is now a public company
- One third of this year's conference attendees attended last year's conference as well
- The Blackboard Developers Network (BbDN) has grown from 115 (2003) to 245 (2004)
- 6141 Building Blocks SDK downloads
- 7276 Building Blocks (B2) downloads
- Of the 104 Building Blocks in the catalogue, 74 are for the Academic Suite, and 50% are free
- .NET SDK released Feb 2004
- Commitment to standards continues (IMS e-Portfolio, SIF integration)
- Top 10 Building Blocks:
-
- 10. User Performance Module (USF)
- 9. SCORM 1.2 Compliant Player 1.0
- 8. Discussion Grader (JJC)
- 7. Dictionary and Thesaurus
- 6. User Participation Portal Module (USF)
- 5. My Journal (Baylor U)
- 4. Blackboard Link Checker
- 3. Who's Online Portal Module (Seneca)
- 2. Bb Content Player (IMS, SCORM, etc.)
- 1. Advanced Group Management (FSU)
- Sneak Peaks:
-
- Application Pack strategy continues
- App Pack 2 due in about a month
- Content System SDK
- built-in SCORM support
- internationalization
- ChalkBox
- "chalktitles" offered by Houghton Mifflin, Pearson Education, Thomson Learning
- synchronize rosters, SSO, post to gradebook
- Continued development of Content System
- v1.2 Q3 2004
- v2.0 Q4 2004
- Academic Suite 7.0 due Q1 2005
- 2003–2004 Priorities:
-
- Increase access to BbDN
- Free accounts to Academic Suite clients (enterprise)
- "Not quite free" accounts to Commerce Suite clients
- Comply with evolving standards (SAKAI membership sought)
- Improve developer support
- Provide comprehensive test data
- Provide B2 training courses (such as B2 Essentials)
- Grow market receptivity (e.g., "Blackboard Enabled" program)
- Hire Building Blocks Architect/Evangelist
- Increase access to BbDN
09:45–10:30 a.m.
What is .NET?
Bruce Jackson
- Take-Home Lesson:
- .NET is a web application framework modeled after J2EE
- Important Fact Learned:
- CLR runs on Windows only
- Important Fact Learned:
- Passport is going away!
- Notes:
-
- Common Language Runtime (CLR) manages .NET "managed code"
- Primary advantage of .NET is code agnosticism
- Source code compiles to "intermediate language" (IL)
- CLR manages memory automatically (like Java)
- IL code is portable across architectures (32b, 64b, etc.)
- .NET is not yet UI independent- .NET addresses security issues (big changes coming!)
- Objects passed by value (not reference), which assumes copius bandwidth
- Service Oriented Architecture (SOA) is emphasized
- WS-Security, a form of "federated trust", is supported
- WS-Security and Liberty Alliance may be merging!
- [Even Liberty Alliance and Shibboleth are talking!]
- Kerberos remains a major player
10:45–11:30 a.m.
Data Storage and Migration (Java)
Bob Alcorn
- Take-Home Lesson:
- Data storage possibilities are somewhat limited
- Important Fact Learned:
- Can not write into the Blackboard database!
- Notes:
-
- Goals: Portability and structured data
- Types of data:
- private data (config data, e.g.)
- content data
- tool data (discussion tool, e.g.)
- extended attributes
- Private data stored in properties files in local directories (see blackboard.platform.plugin.PlugInConfig)
- Extended data provided via "registries" (see blackboard.data.registry)
- Content organized by course
- Use @X@object.attribute@X@ template variables (which have a corresponding API)
- Tool storage:
- Properties files (the lowest common denominator)
- XML documents
- 3rd party storage (e.g., Berkeley DB, Lucene)
- Migration from R5 to R6 is one-time operation
- Course Copy is a handy tool
11:30–12:15 p.m.
My First Building Block (.NET)
Biran Zhang
- Take-Home Lesson:
- .NET/C# is very similar to J2EE
- Important Fact Learned:
- Visual Studio is required for .NET development
- Notes:
-
- A Building Block (B2) is a web application
- See package blackboard.security.authorization for access control
- Possible uses of B2:
- bridge to external system
- publish a web service
- content type
- tools
- student tool
- course tool
- system tool
- communication tool
- portal module
- MS .NET framework requires Visual Studio .NET
- File structure is similar to J2EE (/WEB-INF directory, e.g.)
- MS Virtual PC development environment permits standardization
01:30–02:15 p.m.
.NET APIs in Detail
Biran Zhang
- Notes:
-
- Blackboard .NET namespace is very similar to Java API
- See blackboard.data.announcement, e.g.
- Strongly typed enumerations are useful
02:15–03:00 p.m.
Java APIs in Detail
Bob Alcorn
- Take-Home Lesson:
- A comprehensive Buidling Block will touch numerous APIs
- Important Fact Learned:
- Use new reflection-based persistence methods instead of standard persisters and loaders
- Notes:
-
- General in-depth introduction to B2 Java APIs
- Base object: blackboard.data.BbObject
- Data objects
- Content: blackboard.data.content
- Course: blackboard.data.course
- Gradebook: blackboard.data.gradebook
- Persistence objects
- Use new reflection-based persistence methods (e.g., persist)
- The persistance manager is proprietary
- Service lookups via BbServiceManager
- Other services:
- Context: blackboard.platform.context
- Session: blackboard.platform.session
- File System: blackboard.platform.filesystem
- Log: blackboard.platform.log
- Security: blackboard.platform.security
- Note: Not all clients honor cookies, so sometimes session data is encoded in the URL (URL rewriting)
- Don't use BbList and BbEnum in package blackboard.base (since J2SE 1.5 is coming)
- blackboard.base.FormattedText provides "smart" text handling
- blackboard.base.GenericComparator for sorting
- Portal: blackboard.portal.external
- Tag libraries facilitate UI standardization and integration
- XML manifest file enables deployment
03:30–04:15 p.m.
Blackboard and Content Types
Tracy Engwirda
- Notes:
-
- Updated JSPs can be dropped into place without restarting the server
- Enable the /webapps/manager context in development environment
- Custom style sheets can not be applied (in a standard way) to custom content
- External data is stored in properties files
05:00–08:00 p.m.
International Spy Museum
Appetizers, libations, and a delicious catered dinner were provided at the International Spy Museum in downtown Washington, D.C. After dinner, we toured the museum, which was very entertaining! (The highlight exhibit was a working replica of James Bond's Austin-Martin getaway car.) An hour and a half was barely enough time to scratch the surface.
Tuesday, July 27
09:00–09:45 a.m.
Java Event API
Tracy Engwirda
- Take-Home Lesson:
- The event API is a real-time alternative to the snapshot mechanism
- Important Fact Learned:
- Event API data model based on IMS specification
- Important Fact Learned:
- The "event" API is geared towards data integration, not "events" in the usual sense of the word
- Notes:
-
- In Bb6, the event API is exposed by package blackboard.admin.*
- Read:
- Advanced Integration and Data Management Manual
- Administrative API Specifications
- The event API data model mirrors the snapshot mechanism
- The data model is based on the IMS 1.01 Enterprise Specification)
- In terms of data model, the event API is an extension of the B2 API (entities and persisters)
- Classes are stored in cms-admin.jar (add this JAR file to your classpath)
- Using the event APIs:
- command-line application
- on Bb app server
- on other server via snapshot client
- Building Blocks application (but use care)
- Web Service
- RPC wrappers
- command-line application
- Event handlers are constructed with database triggers (outside of the LS)
- Event listener classes will be added in future APIs
09:45–10:30 a.m.
Blackboard 6 Authentication
Tom Scavo
- Take-Home Lesson:
- A custom authentication module should extend BaseAuthenticationModule
- Important Fact Learned:
- A lightweight web service can provide validation services to arbitrary web applications
- Notes:
-
- Blackboard 6 Standard Authentication
- Authentication Types
- Authentication API (HttpAuthModule)
- BaseAuthenticationModule
- Authentication Framework
- Blackboard 6 Custom Authentication
- LogAuthenticationModule
- AbstractAuthModule
- GenericAuthModule
- Installation
- BGSU Authentication
- BGAuth and BGAuthValidator
- BGAuthModule
- Developer's Workshop
- Blackboard 6 Standard Authentication
10:45–11:30 a.m.
Building Blocks and Web Services (Java)
Bob Alcorn
12:45–01:30 p.m.
Security and Authentication with Building Blocks (Java)
Tom Joyce
- Take-Home Lesson:
- Blackboard security built on Java security model
- Important Fact Learned:
- Custom authentication is not possible in .NET because Bb security is built on the Java security model
- Notes:
-
- General security concepts
- Authentication
- Authorization
- Privacy
- Integrity
- Declaring permissions in the manifest file is often a trial-and-error process
- Blackboard security is based on the Java security model:
- Java Secure Sockets Extension (JSSE)
- Java Cryptography Extensions (JCE)
- Java Generic Security Services (GSS) API
- CertPath API
- Java Authentication and Authorization Service (JAAS)
- Code Security Model
- Authentication services are available to Building Blocks via AccessManagerService
- Authorization services are also available to Building Blocks (see PlugInUtil)
- Two types of roles: system (e.g., admin) and course (e.g., TA)
- Security information available via java.lang.Class
- General security concepts
02:00–02:45 p.m.
Building Blocks and Blackboard—A Look Ahead
Bob Alcorn, Dan Cane, David Yaskin
- Notes:
-
- Internal event queues are coming (forced by the introduction of the Content System, which must coordinate with the Learning System)
- e-Portfolios provided by the Content System
- Selective release of content is coming
- Transaction System Account Management
- JJC's Discussion Board Grader would be useful to faculty
