Skip to content

Implementation of a hierarchical network to gather and process data related to the Covid-19 pandemic from multiple hospitals, utilizing middleware technologies such as the Glassfish server, Java Message Service (JMS) for communication, and Enterprise Java Beam (EJB).

Notifications You must be signed in to change notification settings

codiceSpaghetti/CovidTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CovidTracker

Introduction

The project aims to establish a distributed system with a hierarchical organization that tracks data related to the Covid-19 pandemic such as the number of positive, negative, and inconclusive test results, and fatalities, from multiple hospitals. The network then processes this data to generate statistical aggregations.

To cover the Italian territory we provide a three layers hierarchy composed by:

  1. A national node.
  2. Three area nodes (north, center and south).
  3. Twenty region nodes, one for each region.

Here there is an overview of the Architecture of the whole system:

image

Please, check the Documentation for a complete view.

Implementation

The application is hosted on a Glassfish server (version 5.1)

Communication

For the Communication Layer we decided to implement a Message Driven Communication exploiting JMS with asynchronous send and synchronous receive.

Erlang Server

We made use of an Erlang Server to provide the “on-node services” needed to elaborate the statistical aggregations required by other nodes. Each node interacts with its specific Erlang Server.

Moreover we provide the possibility to register a different Erlang node for every possible operation, in case there is the need to distribute the load among more than just one server.

Synchronization/Coordination

The Nation node at the end of every day sends a registry closure request to all the nodes.

The synchronization between nodes is guaranteed thanks to the use of EJBs, that are hosted inside the EJB Container of glassfish that guarantees a correct synchronization between threads that access to the same resources.

Distributed database

For the Database, we decided to have it distributed through the whole hierarchy. Every node has its own Key-Value database (LevelDB) in which it stores the daily report and the result of the aggregations (in order to respond to a request for aggregation received several times by communicating with Erlang only once).

About

Implementation of a hierarchical network to gather and process data related to the Covid-19 pandemic from multiple hospitals, utilizing middleware technologies such as the Glassfish server, Java Message Service (JMS) for communication, and Enterprise Java Beam (EJB).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages