Table of Contents

About Neotoma Developer Resources

Essential to the Neotoma Database project is the capability to access the database remotely from other software applications, services, and user interfaces. This capability is critical for many categories of users such as:

scientists who want to bring the most current data into anaytical workflows and tools like R

constituent database cooperatives that want to develop their own web front-end to the database

third-party organizations that want to distribute data from the database via their own web interface

developers who want to develop standalone applications for data analysis and display

Therefore, Neotoma is actively developing a suite of software development tools to enable and assist the Neotoma developer community. The suite consists of web services, an application programming interface, and a software development kit.

Web service APIs 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 is 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 R, 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 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 resources have been created to satisfy the most commonly requested data. Along with the web services, the APIs will be expanded over time through collaboration with the user community. Samples and documentation are 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 be determined once our developer community has been consulted to determine their needs and interests.