Neotoma Enables Software Applications Development

Essential to Neotoma is the capability to access the database remotely in order to develop customized user interfaces, applications, and services. This capability is critical for at least three categories of users: (1) constituent database cooperatives that want to develop their own web front-end to the database, (2) third-party organizations that want to distribute data from the database via their own web interface, and (3) developers who want to develop standalone applications for data analysis and display, including both applications for general distribution and highly specialized applications written for particular research questions. Therefore, Neotoma will offer a suite of software development tools to enable and assist the Neotoma developer community. The suite will consist of web services, an application programming interface, and a software development kit.

Proposed web service APIs will allow community developers access to Neotoma data from their own web pages and applications. Programmers may use the pre-built libraries of code and user interface components provided in the SDK to quickly start projects; or, they may develop their own which also could be shared with the community.

Web Services
Access to Neotoma data will be provided by read-only server components exposed as web services through platform- and software language-independent APIs (see following section). For example, developers may choose to work in languages such as JavaScript, PHP, Perl, C++, Visual Basic.Net, or Java on Windows, Macintosh, or Linux operating systems. For purposes of this project, we define web services as programs developed by our team and hosted on web servers that upon receiving a request from another application via the Internet: (1) retrieve specific data from the database;(2) if necessary, perform additional operations on the data (e.g. summarization, unit conversion, advanced computation); and (3) format and transmit data back to the requesting application.

Application Programming Interfaces
Developers will interact with the Neotoma server components at the lowest level via documented APIs exposed through the web services described above. The APIs provide a set of methods and properties for retrieving data from the Neotoma database.  Individual methods will be created for specific data requests considered to be most common.  Other methods may allow custom queries to be submitted to the database. Along with the web services, the APIs will be expanded over time through collaboration with the user community.  Samples and documentation will be provided to demonstrate how to build calls and interpret returned results.

Software Development Kit
In order to further accelerate development by the community, at least one language-specific SDK with pre-built programming assets will be created. These assets save developers time by encapsulating common data access, manipulation, and presentation tasks into modular reusable application building blocks. The development environment and specific content of the SDK will not been determined until our developer community has been consulted to determine their needs and interests.