developing an interoperable blackboard proxy tool€¦ · developing an interoperable ... • other...

22
Developing an Interoperable Blackboard Proxy Tool George Kroner Developer Relations Engineer Blackboard ® Inc. Lance Neumann Sr. Software Architect Blackboard Inc.

Upload: others

Post on 15-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Developing an Interoperable Blackboard Proxy Tool

George KronerDeveloper Relations Engineer

Blackboard® Inc.

Lance NeumannSr. Software Architect

Blackboard Inc.

Page 2: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Agenda

• Building Blocks – Proxy Tools Overview• Design Approach• Architecture & APIs• Demo

Page 3: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Institutional ArchitectureLearning Environment

Authentication

Content/media

Learning applications

Mobile access/alerts

Portal

E-mail/webmail

Registration

Bursar/payment

Library

Mobile access/alerts

Page 4: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Blackboard Learn Platform

Course Delivery

Community Engagement

Advanced Tools

Lecture Discipline-specific

®

Content Management

PortfolioManagement

Outcomes Assessment

Lecture Support

Virtual Collaboration

Content Authoring

Discipline-specific

Pedagogical support

Simulations & models Course-specific

Page 5: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Plugins and App Frameworks• Portability

– Ability to reuse/repurpose across many platforms

• Architecture– Where does the app run?– Plugged-in vs linked-together– Plugged-in vs linked-together

• Security, scalability, reliability• Advantages and disadvantages• Other implications

Page 6: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Java WebappsJSR-168/286 PortletsW3 Standard Widgets

Google iGadgetsOpen SocialIMS LTI Apps

Container/Runtime

Portability

Local Remote

Easy

Blackboard Building BlocksMoodle PluginsSakai ToolsApple iPhone AppsWordPress PluginsDrupal ModulesConfluence Plugins

Facebook AppsPortability

Difficult

Page 7: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

IMS Learning Tools Interoperability

• Subsequent version of IMS Tools Interoperability 1.0 addressing many of the issues surrounding TI 1.0

• Lance Neumann co-chairs the IMS working group• Write your learning app once, run it anywhere (ideally)• Write your learning app once, run it anywhere (ideally)• Choose the application technology of your choice

(Java, .NET, PHP, The Cloud)• Single tool can be connected to multiple LMSs• Reduced development, support costs • Protection from poorly written plugins

Page 8: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tools• What are they?

– A new extension to the Blackboard Building Block Framework, LTI standards alignment when possible

– Programs that interact with Release 9 but run outside the Release 9 JVMthe Release 9 JVM

– Two types: Either with or without ‘Placements’ (entry points)

– Can self-register if the administrator permits– Can be written in any language that can utilize WSDL

based web services

Page 9: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tools

9.0 Server Providing Web Services

and Proxy Tool support

Proxy Tool Server

(java/.net/any client

language supporting wsdl

use)

SOAP over HTTP(s)

Simple HTTP(s) Callbacks

End User

Interacts with Proxy Tool Server over HTTP(s)Interacts with Blackboard

app server over HTTP(s)

Page 10: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tool Motivations• Building Block alternative to support better integration

of external, third party applications or tools– Standard integration, SSO, and communication model– Standard Web Services

• Building Block alternative for a lower barrier to adoption from administrators (lower operational risk adoption from administrators (lower operational risk to production systems)

• Support both locally hosted and centrally hosted applications, with heterogeneous technology stacks

• Support a very similar set of use cases and entry points to Blackboard Building Blocks (placements)

• Succeeds CE/Vista capabilities with open standards

Page 11: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tool Framework

• Self-registering Proxy Tools with or without placements (registerTool Web Service method)

• Without Placements: Essentially means a standalone client application utilizing web services

• With Placements: Proxy Tool server provides • With Placements: Proxy Tool server provides configuration of access points within the Learning Management System

• Callbacks methods for certain events in Blackboard environment (simple HTTP API)

Page 12: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tool Types

• Why have them without placements?– To provide client applications that can interact

with the users data in NG without using a web interfaceinterface

• Why have them with placements?– To provide a Building Block –Installed Tool -

style extension to the Release 9 interface without deploying any custom code on the Release 9 server itself

Page 13: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tool Global Properties

Page 14: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Tool Registration Flow

Page 15: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Deployment Descriptor• API registration, with a deployment descriptor• Vendor and Tool information, high level metadata

– Tool Version and description– Access URLs: http/https– Web Services Required

• Singleton actions+events • Singleton actions+events – remote-configure action– course-copied/exported/imported events

• Content-handler actions+events – create/modify/view-content actions– content-copied/exported/imported events

• Specific link placements– course_tool, system_tool, etc.

Page 16: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Authorizing Proxy Tool

Page 17: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Web APIs

• Context – get authenticated session• Content• Gradebook (subject to change)• Util• More to come

Page 18: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Proxy Tool Listing

Page 19: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

User accessing form flow

Page 20: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Comparison of Technologies

Proxy Tools• Custom code runs outside

Blackboard Learn JVM• Supports touch points at the

course, system, user, and content levels.

Installed Tools• Custom code runs inside

Blackboard Learn JVM• Inherits look & feel of core

application• Supports multiple defined content levels.

• Interacts with system data through exposed Web Services

• Stores tool data externally

• Supports multiple defined touch points plus additional application level definitions and portal module definitions

• Interacts with system data through all current direct access methods (APIs)

• Stores data on file system

Page 21: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

Demo time!

Page 22: Developing an Interoperable Blackboard Proxy Tool€¦ · Developing an Interoperable ... • Other implications. Java Webapps JSR-168/286 Portlets W3 Standard Widgets Google iGadgets

For more information, please contact:

Blackboard Developer [email protected]

Visit: http://www.edugarage.comVisit: http://www.edugarage.com