Groups and Permissions ("GAP") is the name given to 2 related frameworks that grew out of the effort to write an authorization service for uPortal. The groups framework presents an API for querying and maintaining a system of grouped entities. It is a "lower level" API that can be used to support a variety of activities including authorization and managing arbitrary collections of things, like buddy groups or address lists. By contrast, the permissions framework presents a simple API to do one thing: authorization. Its reference implementation makes use of the groups API.