
Service Oriented Architecture (SOA)A service-oriented architecture separates functions into distinct units (services) that allow users to combine and reuse them to produce applications. Services tend to encapsulate a single area of business logic. In terms of the applications that we develop, this may be the patient demographics, or clinical assessment, for example. The services are loosely coupled and composable, that is each service does not rely on directly on any other, and each service may be replaced by an equivalent service without affecting the application as a whole.
Odyssey provides a patient demographics service to allow for the creation, retrieval, update and deletion of patient data. It is entirely feasible that any other similar demographic services could be used in its stead – the architecture of the application would not change as a result. These services are generally accessible over a network. Our approach has been to build a series of services available over http (the same protocol as the majority of the internet), known as web services. These services encapsulate the following high-level areas of functionality:
For Odyssey 3.x, Avia Health Informatics supplies a client application that is web-delivered (via Click Once). The application is written using Windows Presentation Foundation (WPF) which is restricted to Microsoft platforms (XP and above). Underlying the services are a series of databases, currently
implemented using SQL Server 2005. These are accessed via the
Entity Framework, which is an object relational mapping (ORM)
tool supplied by Microsoft. Essentially it manages the manipulation
of data between the database and the services themselves.
|