Education is an area in which various entities, such as courses, tasks, institution, school, department, degree programs and so forth have many relationships between them. While some of these entities are the same or similar among virtually all educational institutions, institutions also have a number of needs that are somewhat tailored to their individual circumstances. For example, an elementary school and a university have different needs.
Heretofore, there was no consistent and organized way for institutions to access such entity-related data and their relationships. What is needed is such a way, while at the same time being flexible and extensible for the varied circumstances of educational institutions.
This Summary is provided to introduce a selection of representative concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in any way that would limit the scope of the claimed subject matter.
Briefly, various aspects of the subject matter described herein are directed towards a technology by which an educational service provides contracts (an interface set) for calling functions that allow management of educational-related data. The interface set may be divided as interfaces to various services. In general, one or more roles associated with users of the educational service determine which interfaces/functions each user can call. For example, a teacher can call task-related functions to associate tasks with a course instance, whereby the students associated with that course can see their tasks.
In one aspect, the interfaces may include interfaces for calling course-related functions, profile-related functions, membership-related functions, and/or task-related functions of the educational service. For example, a course interface provides for calling functions of a course service, a profile interface provides for calling functions of a profile service, a membership interface provides for calling functions of a membership service, and or a task interface provides for calling functions of a task service.
Other interfaces that may be present in the educational service include interfaces for calling plan-related functions, group-related functions, content-related functions and/or notification-related functions. Still other interfaces may be provided for calling provisioning-related functions, institution-related functions, department-related functions, utilities-related functions, standards-related functions, degree program-related functions and/or contextual communication-related functions.
Other advantages may become apparent from the following detailed description when taken in conjunction with the drawings.
The present invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
Various aspects of the technology described herein are generally directed towards an educational service and service contracts (e.g., including defined interfaces) which provide a way to create and consume educational data for institutions and other educator/learner scenarios in a seamless manner. To this end, there is provided an educational service architecture model by which users consume and extend on data, via an extendable middle tier and extendable provider model. As will be understood, the educational services are extendable at the service level by the additional of new services or by adding new functionality to existing services. Further, the educational services are extendable at the middle tier level, in which a client user can extend existing educational services by building an additional service or application layer on top of the educational services.
It should be understood that only a relatively small number of examples are described herein, and thus any of the examples described herein are non-limiting examples. Moreover, other fields such as healthcare, finance and so forth may benefit from the technology described herein. As such, the present invention is not limited to any particular embodiments, aspects, concepts, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, structures, functionalities or examples described herein are non-limiting, and the present invention may be used various ways that provide benefits and advantages in computing and data access in general.
Taken together,
The middle tier 110, shown in additional detail in
Further, the middle tier 110 includes provider abstractions 130 for accessing leveraged services 132. Examples of leveraged services 132 include Windows Live®, Microsoft Office and so forth.
As mentioned above, the services of the educational service 101 are exposed through service contracts, which partners may use to build applications or extended services on top of the educational service 102. Note that services provided include (but are not limited to) Profile, Course, Task, Plan, Scoring, Group, Content, Contextual Communication, Notification, Provisioning, Institution, Department, Utilities, Membership, Standards and Degree Program. In one implementation, the services are grouped functionally so that partner and client can consume appropriate services. Additional details of some of the example interfaces are set forth below.
The course service is accessed through a course interface, which provides a set of APIs (application programming interfaces to functions) for creating and manipulating courses. These APIs are those relevant to some active course that is being taught, e.g., to create a course, to create an instance of a course (e.g., Economics 301 may be taught at different times, and/or with different teachers, and each is a different instance), and so on. A course may be tied to course materials, and associated with tasks, such as assignments. Various users may be added to a course, e.g., with different types of members (e.g., student, teacher, teacher's assistant, and so forth) with different roles corresponding to different course privileges from the course perspective. For example, a teacher may create and modify an assignment (task) for the course instance including scoring, but the student may not modify or delete that task; however the student can do submissions against assignments
The task service is accessed through a task interface, which provides APIs typically (but not necessarily) directed towards creating and manipulating assignments. Assignments are created as tasks by a teacher, and task instances are created for students to work on so that student activity on a task is distinct and can be tracked. This service also provides the ability to associate a task with courses, groups, institutions, a plan, a profile, a department and a degree program.
However, other types of tasks are present throughout the system that are not necessarily related to a course. For example, administrative tasks related to an institution, school department, degree program may be created and manipulated by users with the appropriate role. Any user at any level may create and manipulate personal tasks. A task may be tied to materials.
The group service is accessed through a group interface, which provides a set of APIs for creating and manipulating general groups. Groups are generally logical and potentially overlapping collections of users (for example, the participants in several course instances), and also may be used to define roles, such as instructor and student. Using group providers allows setting permissions to perform group-related actions such as adding and removing members from a group, and tying these permissions to roles defined and maintained by the group provider. For example, a study group or a hobby group may be created and accessed through this interface. Materials may be tied to a group, e.g., one study group may be assigned to one project, and another study group to another project. In one implementation, the interface allows creating/deleting groups, retrieving group properties, and retrieve groups associated with specific entities.
The profile service is accessed through a profile interface, and provides services for creating and managing personal information. A profile maintains a definition of a user in the system and the operations available to that user. A user can have multiple roles at any time for different domain objects, and can have tasks, and items associated with that user which can be accessed via the task and content service. Example profile information includes user names and passwords tied to user management providers, roles and so forth. Other examples may be the courses being taken by a student user, associated EPortfolios, the degree being sought, and so forth.
The plan service is accessed through a plan interface. The plan service provides services for creating and managing plans including course, personal, career and so forth.
The scoring is accessed through a score interface. The Score service provides services for managing scores related to any submissions tied to a task instance (assignment).
The notification service is accessed through a notification interface, and provides services for creating and managing notifications. In general, the notification service provides a simple interface to retrieve commonly desired notifications, such as past due assignments, and send emails, text messages, and so forth. Further, the notifications interface allows for clients to plug into a notifications engine and create custom notifications. The notification service also allows complex queries to be performed on the middle tier, which saves application developers the overhead associated with making multiple requests to web services and processing the data within the application or client. Notifications are typically not persisted in the data store.
The contextual communication service is accessed through a contextual communication interface, and provides services for creating and managing contextual communication. Example contextual communications are typically tied to a course or assignment, and for example may directed towards providing feedback, typically from a teacher to a student, such as regarding a submitted assignment.
The provisioning service is accessed through a provisioning interface, and provides services for provisioning. Provisioning is generally directed towards setting up an institution, e.g., migrating data, setting up email accounts, setting up host services, and so forth.
The content service is accessed through a content interface, and provides services for creating and managing educational related content. These can be associated with Tasks, Courses, groups, institutions, plan, profile, department and degree program, for example.
The department service is accessed through a department interface, which provides a set of APIs for creating and managing departments. This includes department administration functionality such as creating courses, adding members to the department, adding degree programs, and so forth.
The degree program service is accessed through a degree program interface, which provides a set of APIs for creating and managing degree programs. In other words, the degree program service creates degree program instances for students, which keep associations with department, courses and so forth. Examples data maintained in a degree program service include prerequisites, course requirements and so forth. A degree program may be tied to one or more departments.
The institution service is accessed through an Institution interface, which provides a set of APIs for creating and managing institutions, typically by an IT administrator. For example, this includes institution administration functionality such as creating departments, creating courses, adding degree programs, and so forth.
The standards interface/service is directed towards coupling the service to another standard, e.g., data maintained in another format. The utility interface/service is directed towards maintaining extended properties that may be associated with a given object. The membership interface/service is for membership management, e.g., managing the roles associated with each user, e.g., remove a department level user, add a student to a course, and so forth.
Although the interfaces and services are logically separated in one implementation, it is understood that other alternatives are feasible. For example, the functions of two or more services can be accessed through a common interface, and/or the functions of two services may be merged into a single service with more functions. As a more particular example, a hypothetical “Administration” interface may be used for calling both the “Department” and “Institution” functions. Thus, as used herein, “interface” generally refers to a way for any logic including program code to call defined functions of a “service.”
By way of an example of how these interfaces are used,
As shown in
Students also see a course details page 343 and task details page 344. However the student, who has a different role, does not have the same interfaces as the teacher. For example, the student may submit task instance submissions, but cannot add tasks, cannot update the course instance, cannot create a course plan, and so forth.
The above-described services architecture provides the ability for partners/clients to built applications on top of these services. This enables partners/clients to build education applications without the need to consider object relationships, data formats and/or how the data is persisted. The middle tier 110 provides partners/clients with a way to extend existing services from processing and provider perspective. It also supports adding various providers (e.g., providers for content storage, membership and the like).
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer 610 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 610 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer 610. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above may also be included within the scope of computer-readable media.
The system memory 630 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 631 and random access memory (RAM) 632. A basic input/output system 633 (BIOS), containing the basic routines that help to transfer information between elements within computer 610, such as during start-up, is typically stored in ROM 631. RAM 632 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 620. By way of example, and not limitation,
The computer 610 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, described above and illustrated in
The computer 610 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 680. The remote computer 680 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 610, although only a memory storage device 681 has been illustrated in
When used in a LAN networking environment, the computer 610 is connected to the LAN 671 through a network interface or adapter 670. When used in a WAN networking environment, the computer 610 typically includes a modem 672 or other means for establishing communications over the WAN 673, such as the Internet. The modem 672, which may be internal or external, may be connected to the system bus 621 via the user input interface 660 or other appropriate mechanism. A wireless networking component 674 such as comprising an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a WAN or LAN. In a networked environment, program modules depicted relative to the computer 610, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
An auxiliary subsystem 699 (e.g., for auxiliary display of content) may be connected via the user interface 660 to allow data such as program content, system status and event notifications to be provided to the user, even if the main portions of the computer system are in a low power state. The auxiliary subsystem 699 may be connected to the modem 672 and/or network interface 670 to allow communication between these systems while the main processing unit 620 is in a low power state.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents failing within the spirit and scope of the invention.
The present application is related to copending U.S. patent application Ser. No. ______ (attorney docket no. 326645.01) entitled “Educational Entity Architecture and Object Model,” filed concurrently herewith, assigned to the assignee of the present application, and hereby incorporated by reference.