Considerations on Software implementation for Data exchange in bovine identification database BOVEX Import Bovex.Italy.presentation; public void Main(String[] args) { System.out.println(“ HELLO BOVEX WORLD !!! \n “); } hjkjhg
Directorate of informatics - Greece Introduction Greece has begun to use Traces from 01/04/2004 Greece participates in BOVEX project since Oct 2011, first test and implementation begun The ministry in 2012 decided to upgrade the Animal Registration System DB in new Technology using Object Database technology (NeoDatis) The ministry has a great interest to track the movements of Bovines and to achieve interoperability between IT systems among their Competence Authorities Greece mainly EXPORTS Bovine to Bulgaria, Romania and Hungary Greece IMPORTS from Italy, Spain, France, Czech Republic and Poland Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
Objectives for the Greek Ministry Provide a multilateral exchange for electronic passports/ear tag data between national authorities In order to: track false declarations in livestock from farmers detect meat origin in the market track movements from/to slaughter houses achieve traceability of food track Animal By Products ensure public health Verify correctness of transmitted passport /ear tag data avoid double entries of passport /ear tag data in difference national DB simplify controls using alerts from the system to the end-user (veterinarian) Link with TRACES for transaction verification (legality and correctness) have a full set of movement data for Bovines implement a national Risk Analysis System to control high risk bovine establishments Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
public void Technical_Presentation(); Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
Directorate of informatics - Greece Learning from experience Internal processes of each member state, for example A Member state and B Member state . Another kind of scenarios shown message exchange between systems These type of systems often suffer from state synchronization problems Our first approach was to introduce old fashioned daemons, to request data and update the fresh received state into DB (OLD , SLOW, And never fully update) Our new approach to sync state is using the Observer Pattern. ( An approach that needs active Bovex users) Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
Directorate of informatics - Greece Learning from experience SYNC WITH OBSERVERS Algorithm While (HappyBovexUser uses the LocalBovex) { for (each User Request/Response Cycle) sendTheDataToTheUser(); notifyObservers(Req/Resp DATA); } Internal processes of each member state, for example A Member state and B Member state . Another kind of scenarios shown message exchange between systems These type of systems often suffer from state synchronization problems Our first approach was to introduce old fashioned daemons, to request data and update the fresh received state into DB (OLD , SLOW, And never fully update) Our new approach to sync state is using the Observer Pattern. ( An approach that needs active Bovex users) THIS APPROACH NEEDS MANY AND ACTIVE USERS IT IS A COMPLEMENTARY APPROACH TO SYNC DATA STATE Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
Directorate of informatics - Greece State synchronization Algorithm While (HappyBovexUser uses the LocalBovex) { for (each User Request/Response Cycle) sendTheDataToTheUser(); notifyObservers(Req/Resp DATA); } Internal processes of each member state, for example A Member state and B Member state . Another kind of scenarios shown message exchange between systems These type of systems often suffer from state synchronization problems Our first approach was to introduce old fashioned daemons, to request data and update the fresh received state into DB (OLD , SLOW, And never fully update) Our new approach to sync state is using the Observer Pattern. ( An approach that needs active Bovex users) THIS APPROACH NEEDS MANY AND ACTIVE USERS IT IS A COMPLEMENTARY APPROACH TO SYNC DATA STATE Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
public void Our_Bovex(); Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
SOAP STUBs (Web Services) GOALS and Architecture for our Bovex Web 2 Rich internet, administration User Interface “Cron-like” daemons for automatic daily data sync Local Database (National) for fast reporting Web Service STUBS accessible via REST API for internal apps Web Services message mediator for Logging and application Level firewalling Reporting and Spreadsheet exports Production and development based on open source technologies and products Regular cycle releases for bug fixing and new features SOAP STUBs (Web Services) WEB 2 UI Auto Sync Daemon Message Mediator BOVEX EU (End Points)
SOAP STUBs (Web Services) Goals and Architecture Easy search for Bovex Ear Tags, Certificates etc. “Cron-like” daemons for automatic daily data sync Web Service STUBS accessible via REST API for internal apps Web Services message mediator for Logging and application Level firewalling Reporting and Spreadsheet exports (*) Production and development based on open source technologies and products SOAP STUBs (Web Services) WEB 2 UI Auto Sync Daemon Message Mediator BOVEX EU (End Points)
Architectural decisions and lessons learned from Traces Traces National DB has been build using Object Database (NeoDatis) Advantages: Easy adoption of new versions and schema alterations Fast prototype and development of Model, based only on Object Oriented Programming Acceptable IO speed Easy to maintain if you are a ….Developer Disadvantages : Scalability issues or lack of scalability Very sensitive DB Files Slow performance on large files (>1GB) with text searches Lack of professional administration tools and exports
Architectural decisions We kept from our Traces development experience Web 2 Rich Application Interface And our new persistence layer approach is based on Graph / Document/ Object Based engine Object Oriented design and programming Graph based modeling with Edges and Vertexes Scalability (HA and remote clusters) fast search and extraction Monitoring and Administration tools Ability to query on graphs JSON Formatted Rest Web Services communication with database Extremely fast Queries on data and relationships Visualization of Data Open Source NoSQL implementation
Architectural decisions The architectural decision stack is : Design for performance ( Graph/Document/Object Based engine for data persistence ) Security based on JaaS Scalability inherited from EE Java Web 2 User experience Rest Web services (JSON Format) for third party apps This is our Version Hellenic Bovex System Version 1.0
Technology Enterprise Java Ajax Based User Interface JSON Rest API for third party systems of our Ministry or external government systems Logging for each request / response pair in detail ( Full http protocol logging)
Public Bovex_Version_1 Directorate of informatics - Greece Directorate of informatics – th.katsifoli@minagric.gr
Use Cases
Use Cases
Level 1 Conceptual use cases
Epilogue –Road Map We are going in pre production 18/06/2015. This Version will have Sync Daemons and notifications to administrator team for retrieve/acknowledge requests. All previous data will be queried automatically in periods of 30 days in order to have our local database up to date Link to TRACES as quality check and more in depth data REST API for authorized 3d party systems of our Ministry Our first version statistics of data exchange Next release will be in full production phase and will include: Hooks on VET System thgough JSON Rest API’s Full Reporting and exports More statistics
Q&A Import Bovex.Italy.presentation; public Answer respondToAnswer(String question) { if ( more Questions ) return answer ; } else { goto: next slide ; }
Thank you very much for your attention