Overview
This project aims at fulfilling the need for a service that will allow customer’s software to interface with livestock traceability services of various countries through a single interface.
This is accomplished through a standardised API, which provides a consistent interface to the various traceability services. Traditionally any software provider wishing to integrate with government livestock traceability services would need to connect to each one individually and know all the intricacies of each service and how to make that work with their software. EasiTrace makes this much easier, as it integrates all of the different services into a cohesive interface which enables consumers to more easily interact with the different services. The API allows consumers to:
- Manage applications that communicate with the API
- Manage Properties and their user credentials
- Send Transactions and receive their results
Solution Components
The solution is made up of the following components:
- The API
- Queue Processing (used to send and poll Transactions)
- Individual Movement Service Implementations
API
The API Provides the following:
- Management of Applications using the service
- Management of Properties for an Application
- Manage user credentials for a property, by species and or service
- The ability to interrogate what services are available and what capabilities they provide
- The ability to request the set of fields required, or possible for a given transaction type and service
- The ability to submit transactions for a given property to a service, for the specified species
Service providers - assuming it’s a hosted service:
- To be able to tell the system about the service providers and be able to change their details
Services (e.g. BCMS, ARAMS, etc):
- To list the services supported
- For a given service, retrieve its capabilities and data requirements
Applications:
- A service may operate more than one application
- Each application has its own authentication key which it uses to access the API
- The service allows a service provider to manage applications (create/update/list/delete)
Properties:
- Manage Properties (list properties and add, update and remove properties)
- Manage the credentials for the properties to ensure that records can be sent to the appropriate services
Transactions:
- Transactions are for performing operations like registering tags, registering animals, listing animals arriving on a holding, recording animals being sent off, deaths and so on
- The core system has the general functions such as getting the available types of transactions, getting transactions and the status of a transaction and getting the animals included in a transaction
Transaction Processing
All transactions are queued to allow for load management of the underlying movement services as well as managing load on the EasiTrace system itself.
The queue takes care of ensuring that the status of each transaction is up to date and that errors are returned in a timely manner.
Should a transaction fail in a manner that it can be retried, the queuing mechanism ensures that it is re-queued for either submission or, if necessary, polling.