We might have used Lightweight Directory Access Protocol [LDAP] used to control user authentication and entitlements for enterprise applications.
Albeit open source ldap can fulfill extensive access control mechanism complex entiltments for enterprises, it potentially lacks concurrency enforcement for which many of us, would have employed other custom solutions [like tracking session id/access id with respect to application usage etc]
eMeta attempts to bridge the gap between access & concurrency controls through its unified approach via its
eRights suite.The product description goes as below.....
"eRights is an enterprise-information commerce software package for the online information industry. It provides authentication, access control, concurrency control.
It helps IT product enterprises to implement sophisticated personalized licenses
and allow organizations to extract products from large databases of information.
eRights directly addresses the problems of selling and distributing information
online by recognizing that information products are built from elements of
content and application services that can be packaged in different ways to
address different markets. eRights optimizes the many paths and usage terms and
makes user, access, and product information available to other components of
content distribution systems, such as personalization and content management
software, content protection technologies, and payment systems."
Lets analyze a custom implementation on eRights :-
Resource
The bottom of hierarchy starts with resource - that can have id and name. This is atomic unit of access control that can be devised.
Product
The set of resources are grouped together and called a product - this can be real world business entity.
User
This represents individual user / role that can access the product. Apart from regular name, id, password, details it can also store as much customer info as possible.
Group
The set of users - called as Group that represents a team/organiztion unit/ a department etc.
Other than individual user access - group login/password also can be configured.
License
The users and/or groups are assigned a product or set of products with set of rules governing validity time period, trial/preferred access, concurrent usage, number of logins etc which is called Licensing.
Concurrency Maintenance:
When a user logs in, an eRights session can be tied with the user record which can keep track of concurrency.
Programming interfaces:
eRights offers application programming interfaces for many standard programming languages [Java, .Net, Perl etc] which enables application developers seamlessly integrate eRights into their application suite.
Conclusion
Concurrency control is certainly a step ahead on product marketing and its worth to consider unified solutions like eRights.
More info:
http://www.emeta.com