Usergrid: a New Open Source Platform for Mobile and Rich Client Applications
Ed Anuff announced last week the first source code release of Usergrid, a comprehensive platform stack for mobile and rich client applications. For Ed, mobility is about delivering a rich interaction from applications running on the device with services and data in the Cloud.
These common services include:
- user management
- social interactions
- applications objects and API integrations
- content & data access
- data processing & analytics
The entire codebase is now available on GitHub at https://github.com/usergrid/stack. Usergrid is built in Java and runs on top of Cassandra. Although Usergrid has been architected as a highly scalable cloud service, it can also be deployed on a desktop and includes double-clickable app which allows you to start an engine and launch its admin console in less than two minutes. Ed explains:
Our goal is to make Usergrid available as both a cloud service and as an open source stack you can host yourself. This is very similar to the WordPress model that has proven so successful. We’re not ready to launch the cloud service yet, but we’re finally at a point where we can share the code and, by making it possible for you to run your own installation, we can let you get started right away. An Amazon AMI will soon be available too and we’ll post here when it’s ready.
Usergrid provides a core set of application objects for managing users and powering interactions, coupled with a free-form data storage system for storing, searching, and retrieving content and objects collections of any type. Usergrid provides also a simple way to log data, which enables realtime event stream analysis and track key metrics.
The application objects include:
Each object is stored in its own collection (/users, /groups...). Usergrid allows you to create any type of dynamic (custom) entity you want. Dynamic entities are automatically stored in a collection who’s name is the pluralized form of the entity type.
Usergrid's API implements an oAuth 2.0 authentication model. All requests need to pass a valid access token.
Usergrid also comes with a message queue service that is designed to provide the ability to distribute messages to applications in a way that’s is highly scalable. The service is intended to have the flexibility to power server to client notifications, social inboxes, content feeds, commenting services, as well as traditional distributed message queue operations. The framework supports Websocket for real-time delivery.