Blackboard is moving towards a new integration model using REST APIs to improve the user experience. This includes launching a new developer platform, API gateway, and developer forum. The presentation discussed the various integration options available now such as LTI, building blocks, web services, and frameworks. It provided guidance on choosing the right integration path based on factors like the user experience, target platform, and architectural goals. Resources were shared to help developers get started with the REST APIs.
2. Philosophy of Integration Evolution
2
Strong comittment to supporting the development community that dates back to 2003
With our commitment to deliver Learn on SaaS and with the Ultra experience, we are
significantly improving the user experience
To support that experience, we’re delivering a new integration model – Representational
State Transfer (REST)
To do that, we’ve launched a new Bb Developer Platform, an API gateway, and a developer
forum on Bb Community.
3. 3
The Integration Landscape
Learn now has a number of approaches to
integration capabilities available now
They each have their pros and cons which
impact your decision to use one over the other
4. IMS LTI Integration
Strategic partnership with
publishers / Content Market
Wide variety of Integration
options through APIs
(Building Blocks)
REST / SOAP Web Services
Admin Integration Frameworks (SIS,
Grades Journey)
Integration
Framework
The Integration Landscape
5. The Integration Landscape
IMS Global Consortium standard
Vendor agnostic remote, out-of-process tool communication
Consumer/Provider model – Blackboard Learn is a consumer
Tool links can be registered system-wide or at the course level
LTI – Learning Tools Interoperability
6. Built around Blackboard’s proprietary Java API – requires Java
Apps installed into the application via a customer GUI in the Admin panel
Run in-process as part of Blackboard Learn
Deployment points and tag libraries allow Building Blocks to create pages that render in
Learn
The Integration Landscape
Building Block APIs
10. • Development in Java
• Installed into Learn
Building Block APIs
11. The Integration Landscape
11
SOAP Web Services
XML-encoded method calls sent over HTTP
UDDI for service discover, WSDL for service description
Consumer/Provider model – Blackboard Learn can be either
Provide a limited set of APIs compared to Building Blocks
13. The Integration Landscape
REST
An architectural style of building web services
REST APIs are integration interfaces built using REST principles
Blackboard REST APIs are not just for Learn – other cloud products
Runs out-of-process – nothing is installed in the Learn instance
Programing language agnostic
16. Grades Journey – supporting assessment & grades management
HR/ERP
Library
Timetable
SIS
Grades
Column
Provisioning
Grades
Exchange
Flat File, SOAP or REST
web services
Blackboard Confidential
• Grades approval,
release
• Optional read-only
after post
17. Tools to manage your REST Integration
https://developer.blackboard.com/portal/displayApi
Open API
Examples of data structures
- oAuth
- Users
- Courses
- Content and Assignments
- Enrolments
- Groups
- Grades
- Data sources
20. Choosing the Right Path
20
User Experience: Original or Ultra
Target Platform: 9.1 or SaaS
Architectural Goals: In or Out of
Process
• You have a full range of options for
how you integrate with Learn –
some older, some newer
• Each option has pros and cons that
will impact your decision as to
which to use
• The approach to take depends on
three major factors
29. For more information please contact me:
Michael.Garner@blackboard.com
@mikegarnr
Editor's Notes
Deployment points and tag libraries allow Building Blocks to create pages that render in Learn
REST Principles
1. Uniform Interface
Individual resources are identified using URLS. The resources (database) are themselves different from the representation (XML, JSON, HTML) sent to the client. The client can manipulate the resource through the representations provided they have the permissions. Each message sent between the client and the server is self-descriptive and includes enough information to describe how it is to be processed. The hypermedia that is hyperlinks and hypertext act as the engine for state transfer.
2. Stateless Interactions
none of the clients context is to be stored on the server side between the request. All of the information necessary to service the request is contained in the URL, query parameters, body or headers.
3. Cacheable
Clients can cache the responses. The responses must define themselves as cacheable or not to
prevent the client from sending the inappropriate data in response to further requests.
4. Client-Server
The clients and the server are separated from each other thus the client is not concerned with the data storage thus the portability of the client code is improved while on the server side the server is not concerned with the client interference thus the server is simpler and easy to scale.
5. Layered System
At any time client cannot tell if it is connected to the end server or to an intermediate. The intermediate layer helps to enforce the security policies and improve the system scalability by enabling load-balancing
6. Code on Demand
an optional constraint where the server temporarily extends the functionality of a client by the transfer of executable code.
Rate Limits may be mentioned
Developer accounts limited to 10000 requests in 24hrs
Production tools can be raised if needed.
Support numerous methods of exchange:
Flat files
SOAP web services
REST web services
Support multiple formats of exchange, prioritising newer standards and generic exchange first
Availability of REST APIs is an on-gong work in progress
To date we’ve delivered on a core set of REST APIs
I’m also happy to announce we just released REST APIs for Collaborate (**need more here)
We’ll be delivering more REST APIs as part of our roadmap
If you’re a SaaS customer, you’ll see them delivered periodically as part of our continuous delivery model
If you’re a self-hosted or managed-hosted customer, we’ll make the latest REST APIs available with our bi-yearly updates
While we’ll continue to support Building Blocks and SOAP web services, we’re going to put most of our ongoing effort behind REST APIs and LTI; these will be our preferred methods of integration
Brainstorming activity….2 questions to keep in mind