The Blackboard Learn architecture and the selected deployment option help users experience improved performance, overall system performance can be further improved by optimizing various system components.
About Learn performance optimization
Blackboard Learn supports a flexible architecture which is configurable to meet installation requirements. This architecture consists of two primary tiers - content delivery via a web server (HTTPd or Apache™ Tomcat), and a relational database. Files are served from a file server (recommended) or in the case of single or two server installations the application server. Understanding installation goals and IT requirements help in guiding your optimization and hardware selections.
Blackboard Learn architecture
For current information about supported configurations, see the Supported Technologies for Self-Hosted Systems.
Blackboard Learn's flexible application architecture enables clients to scale and optimize the performance and responsiveness of their environment:
- Distributed Processing Load: The Blackboard Learn processing model, which is based on Web 2.0 and client-rich technologies, distributes the load between the client-side browser, the application, and the database. This reduces the perceived response time for users because they can interact with the page as it loads elements asynchronously.
- Server-Side Caching: The Blackboard Learn server-side caching architecture uses Ehcache in a number of areas to reduce the number of time-consuming trips to the database to fulfill requests for data that does not change during the course of a user's session. Ehcache is a pure Java™, in-process cache that is designed for large, high concurrency systems. Each of these caching structures is configured within the bb-config.properties file and can be configured on a case-by-case basis.
- Multiple Deployment Options: The Blackboard Learn architecture supports maximum scalability and high service levels by providing a variety of deployment options, including load-balancing, application tier clustering, and virtualization. Although Blackboard Learn can be deployed in a traditional horizontal manner, it also can be clustered at the application tier to load balance from the web server to multiple JVMs, or virtualized to run multiple instances of Blackboard Learn and the web server on virtualized servers. To make the best use of available hardware resources, Blackboard Learn can be deployed using any or a combination of two or three of these options.
All application environments are different. Although the out-of-the-box configuration of any application can satisfy basic processing needs, extended uptime with fewer maintenance windows, increased numbers of users, and usage patterns can result in performance issues. To configure the system appropriately, first evaluate the specific environment and application usage.
Although scaling the Blackboard Learn deployment supports an increased number of users without adversely affecting performance, system performance can be further improved to achieve higher service levels, reduce risk, and improve user perceptions of performance, which will in turn increase user satisfaction and reduce user abandonment. To do so, optimize the performance of the components in the application tier as well as the performance of the database.
In general, Release 9.1 is more responsive and scalable than both Release 9.0 Service Pack 3 and Release 8 Service Pack 6 across all supported platform configurations. Blackboard completed more than 2000 hours of performance tests on Release 9.1, and this number will continue to increase as Blackboard produces Service Packs against the Release 9.1 code line.
Optimizing application tier performance
To achieve the best performance in the application tier, optimize each of these components.
The web server and the application container must reside on the same server.
- Web server: The primary purpose of the web server in the Blackboard Learn architecture is to provide features not available in the application container, such as Shibboleth. In Blackboard Learn, the web server used depends on the operating system environment. In a Microsoft® Windows® environment, the web server is Microsoft Internet Information Server (IIS). In a UNIX® environment, the web server is Apache™ HTTP Server. To learn more, see Configuring Microsoft IIS.
- Application container: Apache™ Tomcat is an open-source Java application container that is packaged with Blackboard Learn for all operating systems. To effectively optimize Tomcat performance, it is necessary to understand the role of the Java Virtual Machine (JVM™) and container components, such as execution threads and JDBC connections.
- Java Virtual Machine (JVM™): The Java 2 Platform, Standard Edition (J2SE™) JVM is the most critical component of the Java platform because it manages memory allocation and controls how the container handles incoming requests. If the system has been deployed using application tier clustering, the application tier might include multiple servers or JVMs that need to be optimized.
Optimizing database tier performance
In Blackboard Learn, the database used depends on the operating system environment. In a Windows environment, the database must be Microsoft SQL Server®. In a UNIX environment, the database must be Oracle®.
Optimizing addressable memory
Blackboard Learn Release 9.1 allows for the use of more addressable memory via 64-bit architecture. Blackboard encourages clients to take advantage of larger Java Virtual Machines (JVMs) that range from 2GB to 16GB in size. The preferred size is 4GB, but performance testing has been conducted with acceptable performance as high as 16GB.