Horizontal scalability and high availability of a hospital information system
Kylmämaa, Ville (2023-12-15)
Kylmämaa, Ville
V. Kylmämaa
15.12.2023
© 2023 Ville Kylmämaa. Ellei toisin mainita, uudelleenkäyttö on sallittu Creative Commons Attribution 4.0 International (CC-BY 4.0) -lisenssillä (https://creativecommons.org/licenses/by/4.0/). Uudelleenkäyttö on sallittua edellyttäen, että lähde mainitaan asianmukaisesti ja mahdolliset muutokset merkitään. Sellaisten osien käyttö tai jäljentäminen, jotka eivät ole tekijän tai tekijöiden omaisuutta, saattaa edellyttää lupaa suoraan asianomaisilta oikeudenhaltijoilta.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202312153873
https://urn.fi/URN:NBN:fi:oulu-202312153873
Tiivistelmä
This thesis presents the transitions in system architecture and implementation of a hospital information system to achieve horizontal scalability and high availability. The requirements provoking this development arise from an oncoming substantial expansion in the user base. To accommodate this expansion, enhancing the system's scalability is imperative. The system plays a critical role in the operations of hospitals and healthcare centers necessitating high availability to ensure minimal downtime.
In order to scale horizontally, the application must evolve into a distributed system and become operable in a deployment with multiple concurrently active application servers. This is necessary to distribute the load across the application servers so that the addition of new server nodes can increase the load capacity of the system. The key challenges center upon finding an optimal balance between consistency, availability, and partition tolerance all while meeting the increased performance requirements. To enable multiple application servers to be active concurrently, new solutions are required for caching, polling of patient data, and the pushing of real-time updates to the clients.
The output of this thesis encompasses both the system architecture design and application layer implementation to achieve the specified goals of availability and scalability. This entails replacing local caching with distributed caching, implementing a protocol to evenly distribute polling tasks across active application servers, revising WebSocket communication and transferring the messages to all active application servers through a new server type, and improving database performance by implementing a data aggregate table. Consistency and fault tolerance challenges are solved in each aspect of implementation. Included are also the availability, consistency, fault tolerance, and performance testing conducted to verify and assert that the system meets the set objectives.
In order to scale horizontally, the application must evolve into a distributed system and become operable in a deployment with multiple concurrently active application servers. This is necessary to distribute the load across the application servers so that the addition of new server nodes can increase the load capacity of the system. The key challenges center upon finding an optimal balance between consistency, availability, and partition tolerance all while meeting the increased performance requirements. To enable multiple application servers to be active concurrently, new solutions are required for caching, polling of patient data, and the pushing of real-time updates to the clients.
The output of this thesis encompasses both the system architecture design and application layer implementation to achieve the specified goals of availability and scalability. This entails replacing local caching with distributed caching, implementing a protocol to evenly distribute polling tasks across active application servers, revising WebSocket communication and transferring the messages to all active application servers through a new server type, and improving database performance by implementing a data aggregate table. Consistency and fault tolerance challenges are solved in each aspect of implementation. Included are also the availability, consistency, fault tolerance, and performance testing conducted to verify and assert that the system meets the set objectives.
Kokoelmat
- Avoin saatavuus [37306]