A Learning Management System (LMS) is a software package, usually on a large scale, to allow the management of learning content and resources. Most systems are web-based to facilitate "anytime, anywhere" access to learning content and administration. At a minimum, it usually allows for the delivery and tracking of e-learning courses and content, and may also allow for the management of instructor-led training classes as well. In the most comprehensive of LMS', one may find tools such as competency management, skills-gap analysis, succession planning, certifications, virtual live classes, content management, content authoring, and resource allocation (venues, rooms, textbooks, instructors, etc.). Most systems allow for learner self-service, facilitating self-enrollment and access to courses.
LMS' are based on a variety of development platforms, from J2EE-based architectures to .NET, and usually employ the use of a robust database back-end. While most systems are commercially developed, free and open-source models do exist. Other than the most simplistic, basic functionality, all LMS' cater to and focus on different educational, administrative, and deployment requirements.