The Enterprise Services specification is the definition of how systems manage the exchange of information that describes people, groups, and memberships within the context of learning. The Enterprise Services specification is constructed following the recommendations documented in the Abstract Framework. This means that this specification is based upon the concepts of:
- Interoperability - Enterprise Services focuses on the exchange of information between Enterprise systems. There are no assumptions in the specification on how the data is managed within the Enterprise systems;
- Service-oriented - Enterprise Services defines the exchange of information in terms of the services being supplied by the collaboration of the systems. This takes the form of Person Management Services, Group Management Services and Membership Management Services;
- Component-based - the set of services will be supplied such that they can be combined to form a range of services. The Person Management Services, Group Management Services and Membership Management Services can be combined to provide other services and the Enterprise Service will have other services added to it in later releases;
- Layering - the Enterprise Service and its constituent services (Person, Groups and Membership) are part of the Application Services layer; Behaviors and Data Models - the Enterprise Services are defined in terms of their behaviors and data models. The behaviors cause changes in the state of the data model and the state of the data model will only be altered as a result of a clearly defined behavior;
- Multiple Bindings - the Enterprise Services information model is to be defined using the Unified Modelling Language (UML). This enables reliable mapping of the information model into a range of different bindings. The bindings of immediate importance are to the Web Services Description Language (WSDL);
- Adoption - the Enterprise Services are based upon the original Enterprise specification data model. While there are significant changes the underlying data model has been maintained and the core Person, Group and Membership structures remain.
Version 1 was approved by the Technical Advisory Board in July 2004. The Enterprise Services v1.0 specification Final Release has a WSDL/XSD binding that supports synchronous messaging only. The asynchronous message binding specification has remained as a Public Draft until sufficient implementation feedback has been received from the community. The asynchronous message binding documentation is available under the ESv1.0 Public Draft 2 materials further down this page.
Questions and Feedback:
Post errata, questions, and comments to our Public Forums here.
Enterprise Services - Version 1 Final Specification - HTML
- Enterprise Services Specification
- Enterprise Services Core Use Case Descriptions
- Enterprise Services Conformance Specification
- Common Data Definitions Information Model
- Group Management Services WSDL Binding
- Group Management Services Information Model
- Person Management Services WSDL Binding
- Person Management Services Information Model
- Membership Management Services WSDL Binding
- Membership Management Services Information Model
- Enterprise Services Best Practice and Implementation Guide
Version 1 Final -Enterprise Specification XSDs
COMMON DATA FILES
- imsCommonSchemav1p0.xsd
- imsMessBindSchemav1p0.xsd
GROUP MANAGEMENT SERVICE FILES - imsGroupManDataSchema_v1p0.xsd
- imsGroupManMessSchema_v1p0.xsd
- imsGroupManAbstractSync_v1p0.wsdl
- imsGroupManServiceSync_v1p0.wsdl
MEMBERSHIP MANAGEMENT SERVICE FILES - imsMemberManDataSchema_v1p0.xsd
- imsMemberManMessSchema_v1p0.xsd
- imsMemberManAbstractSync_v1p0.wsdl
- imsMemberManServiceSync_v1p0.wsdl
PERSON MANAGEMENT SERVICE FILES - imsPersonManDataSchema_v1p0.xsd
- imsPersonManMessSchema_v1p0.xsd
- imsPersonManAbstractSync_v1p0.wsdl
- imsPersonManServiceSync_v1p0.wsdl
WSDL AND XSD FILES - wsiwsdlv1p1.xsd
- wsisoapv1p1.xsd
- XMLSchema.dtd
- XMLSchema.xsd
- datatypes.dtd
Enterprise Services Final Release XMI Files
Enterprise Services Final Release Source Code Support
Examples
Group
Person
Membership
Enterprise Services Version 1 - Public Draft 2 Specification - HTML
Version 1.0 Public Draft 2 contains Asynchronous Binding Files. Only the Asynchronous Binding materials should be used from this document set.; you should us the Enterprise Services v1 Final Specification above for the Synchronous materials.
- Group Management Services WSDL Binding
- Membership Management Services WSDL Binding
- Person Management Services WSDL Binding
ESv1.0 Public Draft 2 -1EdTech Enterprise Specification Asynchronous XSDs
COMMON DATA FILES
- imsCommonSchema_v1p0.xsd
- imsMessBindSchema_v1p0.xsd
GROUP MANAGEMENT SERVICE FILES - imsGroupManDataSchema_v1p0.xsd
- imsGroupManMessSchema_v1p0.xsd
- imsGroupManAbstractAsyncReq_v1p0.wsdl
- imsGroupManAbstractAsyncRes_v1p0.wsdl
- imsGroupManServiceAsyncRes_v1p0.wsdl
- imsGroupManServiceAsyncReq_v1p0.wsdl
MEMBERSHIP MANAGEMENT SERVICE FILES - imsMemberManDataSchema_v1p0.xsd
- imsMemberManMessSchema_v1p0.xsd
- imsMemberManAbstractAyncReq_v1p0.wsdl
- imsMemberManAbstractAyncRes_v1p0.wsdl
- imsMemberManServiceAyncReq_v1p0.wsdl
- imsMemberManServiceAyncRes_v1p0.wsdl
PERSON MANAGEMENT SERVICE FILES - imsPersonManDataSchema_v1p0.xsd
- imsPersonManMessSchema_v1p0.xsd
- imsPersonManAbstractAsyncRes_v1p0.wsdl
- imsPersonManAbstractAsyncReq_v1p0.wsdl
- imsPersonManServiceAyncRes_v1p0.wsdl
- imsPersonManServiceAyncReq_v1p0.wsdl
WSDL AND XSD FILES - wsiwsdlv1p1.xsd
- wsiwsdlv1p1.xsd
- XMLSchema.dtd
- XMLSchema.xsd
- datatypes.xsd
EXAMPLES
Change Group(s)Identifier
- changeGroupIdentifierReqAckAsync.txt
- changeGroupIdentifierRequestAsync.txt
- changeGroupIdentifierRequestSync.txt
- changeGroupIdentifierResAckAsync.txt
- changeGroupIdentifierResponseAsync.txt
- changeGroupIdentifierResponseSync.txt
- changeGroupsIdentifierReqAckAsync.txt
- changeGroupsIdentifierRequestAsync.txt
- changeGroupsIdentifierRequestSync.txt
- changeGroupsIdentifierResAckAsync.txt
- changeGroupsIdentifierResponseAsync.txt
- changeGroupsIdentifierRequestSync.txt
Change Membership(s)Identifier
- changeMembershipIdentifierReqAckAsync.txt
- changeMembershipIdentifierRequestAsync.txt
- changeMembershipIdentifierRequestSync.txt
- changeMembershipIdentifierResAckAsync.txt
- changeMembershipIdentifierResponseAsync.txt
- changeMembershipIdentifierResponseSync.txt
- changeMembershipsIdentifierReqAckAsync.txt
- changeMembershipsIdentifierRequesAsynct.txt
- changeMembershipsIdentifierRequestSync.txt
- changeMembershipsIdentifierResAckAsync.txt
- changeMembershipsIdentifierResponseAsync.txt
- changeMembershipsIdentifierResponseSync.txt
Change Person(s)Identifier
- changePersonIdentifierReqAckAsync.txt
- changePersonIdentifierRequestAsync.txt
- changePersonIdentifierRequestSync.txt
- changePersonIdentifierResAckAsync.txt
- changePersonIdentifierResponseAsync.txt
- changePersonIdentifierResponseSync.txt
- changePersonsIdentifierReqAckAsync.txt
- changePersonsIdentifierRequestAsync.txt
- changePersonsIdentifierRequestSync.txt
- changePersonsIdentifierResAckAsync.txt
- changePersonsIdentifierResponseAsync.txt
- changePersonsIdentifierResponseSync.txt
Create By Proxy Group(s)
- createByProxyGroupReqAckAsync.txt
- createByProxyGroupRequestAsync.txt
- createByProxyGroupRequestSync.txt
- createByProxyGroupResAckAsync.txt
- createByProxyGroupResponseAsync.txt
- createByProxyGroupResponseSync.txt
- createByProxyGroupsReqAckAsync.txt
- createByProxyGroupsRequestAsync.txt
- createByProxyGroupsRequestSync.txt
- createByProxyGroupsResAckAsync.txt
- createByProxyGroupsResponseAsync.txt
- createByProxyGroupsResponseSync.txt
Create By Proxy Membership(s)
- createByProxyMembershipReqAckAsync.txt
- createByProxyMembershipRequestAsync.txt
- createByProxyMembershipRequestSync.txt
- createByProxyMembershipResAckAsync.txt
- createByProxyMembershipResponseAsync.txt
- createByProxyMembershipResponseSync.txt
- createByProxyMembershipsReqAckAsync.txt
- createByProxyMembershipsRequestAsync.txt
- createByProxyMembershipsRequestSync.txt
- createByProxyMembershipsResAckAsync.txt
- createByProxyMembershipsResponseAsync.txt
- createByProxyMembershipsResponseSync.txt
Create By Proxy Person(s)
- createByProxyPersonReqAckAsync.txt
- createByProxyPersonRequestAsync.txt
- createByProxyPersonRequestSync.txt
- createByProxyPersonResAckAsync.txt
- createByProxyPersonResponseAsync.txt
- createByProxyPersonResponseSync.txt
- createByProxyPersonsReqAckAsync.txt
- createByProxyPersonsRequestAsync.txt
- createByProxyPersonsRequestSync.txt
- createByProxyPersonsResAckAsync.txt
- createByProxyPersonsResponseAsync.txt
- createByProxyPersonsResponseSync.txt
Create Group(s)
- createGroupReqAckAsync.txt
- createGroupRequestAsync.txt
- createGroupRequestSync.txt
- createGroupResAckAsync.txt
- createGroupResponseAsync.txt
- createGroupResponseSync.txt
- createGroupsReqAckAsync.txt
- createGroupsRequestAsync.txt
- createGroupsRequestSync.txt
- createGroupsResAckAsync.txt
- createGroupsResponseAsync.txt
- createGroupsResponseSync.txt
Create Membership(s)
- createMembershipReqAckAsync.txt
- createMembershipRequestAsync.txt
- createMembershipRequestSync.txt
- createMembershipResAckAsync.txt
- createMembershipResponseAsync.txt
- createMembershipResponseSync.txt
- createMembershipsReqAckAsync.txt
- createMembershipsRequestAsync.txt
- createMembershipsRequestSync.txt
- createMembershipsResAckAsync.txt
- createMembershipsResponseAsync.txt
- createMembershipsResponseSync.txt
Create Person(s)
- createPersonReqAckAsync.txt
- createPersonRequestAsync.txt
- createPersonRequestSync.txt
- createPersonResAckAsync.txt
- createPersonResponseAsync.txt
- createPersonResponseSync.txt
- createPersonsReqAckAsync.txt
- createPersonsRequestAsync.txt
- createPersonsRequestSync.txt
- createPersonsResAckAsync.txt
- createPersonsResponseAsync.txt
- createPersonsResponseSync.txt
Delete Group(s)
- deleteGroupReqAckAsync.txt
- deleteGroupRequestAsync.txt
- deleteGroupRequestSync.txt
- deleteGroupResAckAsync.txt
- deleteGroupResponseAsync.txt
- deleteGroupResponseSync.txt
- deleteGroupsReqAckAsync.txt
- deleteGroupsRequestAsync.txt
- deleteGroupsRequestSync.txt
- deleteGroupsResAckAsync.txt
- deleteGroupsResponseAsync.txt
- deleteGroupsResponseSync.txt
Delete Group(s)Relationship
- deleteGroupRelationshipReqAckAsync.txt
- deleteGroupRelationshipRequestAsync.txt
- deleteGroupRelationshipRequestSync.txt
- deleteGroupRelationshipResAckAsync.txt
- deleteGroupRelationshipResponseAsync.txt
- deleteGroupRelationshipResponseSync.txt
- deleteGroupsRelationshipReqAckAsync.txt
- deleteGroupsRelationshipRequestAsync.txt
- deleteGroupsRelationshipRequestSync.txt
- deleteGroupsRelationshipResAckAsync.txt
- deleteGroupsRelationshipResponseAsync.txt
- deleteGroupsRelationshipResponseSync.txt
Delete Membership(s)
- deleteMembershipReqAckAsync.txt
- deleteMembershipRequestAsync.txt
- deleteMembershipRequestSync.txt
- deleteMembershipResAckAsync.txt
- deleteMembershipResponseAsync.txt
- deleteMembershipResponseSync.txt
- deleteMembershipsReqAckAsync.txt
- deleteMembershipsRequestAsync.txt
- deleteMembershipsRequestSync.txt
- deleteMembershipsResAckAsync.txt
- deleteMembershipsResponseAsync.txt
- deleteMembershipsResponseSync.txt
Delete Person(s)
- deletePersonReqAckAsync.txt
- deletePersonRequestAsync.txt
- deletePersonRequestSync.txt
- deletePersonResAckAsync.txt
- deletePersonResponseAsync.txt
- deletePersonResponseSync.txt
- deletePersonsReqAckAsync.txt
- deletePersonsRequestAsync.txt
- deletePersonsRequestSync.txt"
- deletePersonsResAckAsync.txt
- deletePersonsResponseAsync.txt
- deletePersonsResponseSync.txt
Read Group(s)
- readGroupReqAckAsync.txt
- readGroupRequestAsync.txt
- readGroupRequestSync.txt
- readGroupResAckAsync.txt
- readGroupResponseAsync.txt
- readGroupResponseSync.txt
- readGroupsReqAckAsync.txt
- readGroupsRequestAsync.txt
- readGroupsRequestSync.txt
- readGroupsResAckAsync.txt
- readGroupsResponseAsync.txt
- readGroupsResponseSync.txt
Read Membership(s)
- readMembershipReqAckAsync.txt
- readMembershipRequestAsync.txt
- readMembershipRequestSync.txt
- readMembershipResAckAsync.txt
- readMembershipResponseAsync.txt
- readMembershipResponseSync.txt
- readMembershipsReqAckAsync.txt
- readMembershipsRequestAsync.txt
- readMembershipsRequestSync.txt
- readMembershipsResAckAsync.txt
- readMembershipsResponseAsync.txt
- readMembershipsResponseSync.txt
- readMembershipsForPersonReqAckAsync.txt
- readMembershipsForPersonRequestAsync.txt
- readMembershipsForPersonRequestSync.txt
- readMembershipsForPersonResAckAsync.txt
- readMembershipsForPersonResponseAsync.txt
- readMembershipsForPersonResponseSync.txt
- readMembershipsForGroupReqAckAsync.txt
- readMembershipsForGroupRequestAsync.txt
- readMembershipsForGroupRequestSync.txt
- readMembershipsForGroupResAckAsync.txt
- readMembershipsForGroupResponseAsync.txt
- readMembershipsForGroupResponseSync.txt
Read Person(s)
- readPersonReqAckAsync.txt
- readPersonRequestAsync.txt
- readPersonRequestSync.txt
- readPersonResAckAsync.txt
- readPersonResponseAsync.txt
- readPersonResponseSync.txt
- readPersonsReqAckAsync.txt
- readPersonsRequestAsync.txt
- readPersonsRequestSync.txt
- readPersonsResAckAsync.txt
- readPersonsResponseAsync.txt
- readPersonsResponseSync.txt
- readPersonsForGroupReqAckAsync.txt
- readPersonsForGroupRequestAsync.txt
- readPersonsForGroupRequestSync.txt
- readPersonsForGroupResAckAsync.txt
- readPersonsForGroupResponseAsync.txt
- readPersonsForGroupResponseSync.txt
Replace Group(s)
- replaceGroupReqAckAsync.txt
- replaceGroupRequestAsync.txt
- replaceGroupRequestSync.txt
- replaceGroupResAckAsync.txt
- replaceGroupResponseAsync.txt
- replaceGroupResponseSync.txt
- replaceGroupsReqAckAsync.txt
- replaceGroupsRequestAsync.txt
- replaceGroupsRequestSync.txt
- replaceGroupsResAckAsync.txt
- replaceGroupsResponseAsync.txt
- replaceGroupsResponseSync.txt
Replace Membership(s)
- replaceMembershipReqAckAsync.txt
- replaceMembershipRequestAsync.txt
- replaceMembershipRequestSync.txt
- replaceMembershipResAckAsync.txt
- replaceMembershipResponseAsync.txt
- replaceMembershipResponseSync.txt
- replaceMembershipsReqAckAsync.txt
- replaceMembershipsRequestAsync.txt
- replaceMembershipsRequestSync.txt
- replaceMembershipsResAckAsync.txt
- replaceMembershipsResponseAsync.txt
- replaceMembershipsResponseSync.txt
Replace Person(s)
- replacePersonReqAckAsync.txt
- replacePersonRequestAsync.txt
- replacePersonRequestSync.txt
- replacePersonResAckAsync.txt
- replacePersonResponseAsync.txt
- replacePersonResponseSync.txt
- replacePersonsReqAckAsync.txt
- replacePersonsRequestAsync.txt
- replacePersonsRequestSync.txt
- replacePersonsResAckAsync.txt
- replacePersonsResponseAsync.txt
- replacePersonsResponseSync.txt
Update Group(s)
- updateGroupReqAckAsync.txt
- updateGroupRequestAsync.txt
- updateGroupRequestSync.txt
- updateGroupResAckAsync.txt
- updateGroupResponseAsync.txt
- updateGroupResponseSync.txt
- updateGroupsReqAckAsync.txt
- updateGroupsRequestAsync.txt
- updateGroupsRequestSync.txt
- updateGroupsResAckAsync.txt
- updateGroupsResponseAsync.txt
- updateGroupsResponseSync.txt
Update Membership(s)
- updateMembershipReqAckAsync.txt
- updateMembershipRequestAsync.txt
- updateMembershipRequestSync.txt
- updateMembershipResAckAsync.txt
- updateMembershipResponseAsync.txt
- updateMembershipResponseSync.txt
- updateMembershipsReqAckAsync.txt
- updateMembershipsRequestAsync.txt
- updateMembershipsRequestSync.txt
- updateMembershipsResAckAsync.txt
- updateMembershipsResponseAsync.txt
- updateMembershipsResponseSync.txt
Update Person(s)
- updatePersonReqAckAsync.txt
- updatePersonRequestAsync.txt
- updatePersonRequestSync.txt
- updatePersonResAckAsync.txt
- updatePersonResponseAsync.txt
- updatePersonResponseSync.txt
- updatePersonsReqAckAsync.txt
- updatePersonsRequestAsync.txt
- updatePersonsRequestSync.txt
- updatePersonsResAckAsync.txt
- updatePersonsResponseAsync.txt
- updatePersonsResponseSync.txt