The Addama (Adaptive Data Management) Service Architecture provides
web applications and services, and defines REST APIs to facilitate
Rapid Application Development.
The core web application (addama-rest) defines REST interfaces for the storage of resources, including Retrieval, Persistence and Search interfaces. The underlying data store is a Java Content Repository (JCR). The JCR is a data store that can represent relational data and files in a navigable Node Tree with dynamic Property assignment.
The core web application (addama-rest) defines REST interfaces for the storage of resources, including Retrieval, Persistence and Search interfaces. The underlying data store is a Java Content Repository (JCR). The JCR is a data store that can represent relational data and files in a navigable Node Tree with dynamic Property assignment.
The Addama REST API offers functionality to manage the life cycle of resources. Resources can be:
- files
- images
- tabular data
- structural data
Content Repositories
A Repository is similar to a traditional Database server; it is physically constrained to a single server, and it has similar Security mechanisms. An Addama service deployment allows for the management of many repositories within a single web domain.Every content repository is assigned a URI of the form:
/addama-rest/my-repo
These URIs can be made into a proper URL by attaching the domain hosting the repository. Addama only uses URI references
to allow repositories to be portable to other domains.
http://my-domain.org/addama-rest/my-repo
Each resource is assigned a URI (provided or automatically generated) which extends the repository URI, for example:
/addama-rest/my-repo/path/The/Path/To/My/Resource
/addama-rest/my-repo/uuid/1122-3311-3342-1232 - Automatically generated identifier, guaranteed unique within a repository
JSON
Addama responds to requests using JavaScript Object Notation (JSON).JSON has been chosen as a transport language (instead of XML) because it is lightweight, dynamic, and easily interpreted from any language or deployment model. It is more human-readable, easy to transform to user interfaces (forms, views, etc), and rapidly becoming the standard for RESTful web services.
