The mobile application we are designing will be a multi-component system that must be able to abide by strict security protocols and countless computations due to machine learning. To meet the requirements of our system, we have chosen specific architectures and designs for the following key decision decisions: 1) support numerous clients in an efficient, secure manner, 2) allow for capturing high-quality photos , 3) transmitting data securely, 4) processing and analyzing images with machine learning algorithms in addition to review from medical professionals, and 5) secure storage of all data. Additionally, these functions will conform entirely to the requirements specified in Mobile Application, Server Environment, Web Portal and critical non-functional requirements.
|
Design Decision ID |
Requirements Covered |
|---|---|
|
DD01 |
|
|
DD02 |
|
|
DD03 |
|
|
DD04 |
|
|
DD05 |
|
The SunSpot mobile application will be used by a large number of individuals who will periodically establish a connection to the server environment to upload high resolution photos. Knowing that our mobile application will be used by numerous individuals, we have our first design decision which entails supporting numerous clients in an efficient, secure manner. For this design decision, we have decided to utilize a client-server architecture to meet the demands of multiple users connecting to the server environment to upload large data sets from mobile devices. It will allow the system as a whole to operate efficiently and serve numerous clients simultaneously. Allowing our team to modularize the server and mobile application, providing the ability to implement future changes in one module without the need to make changes on the other side. It will also allow us to meet scalability demands once more customers begin to use the application. This architecture will allow for centralization, which will fortify data integrity and availability. Moreover, it’s design will allow for reliability by utilizing cloud infrastructure which can dynamically scale to handle more traffic or support disaster recovery.
As our mobile application will assist with a skin cancer diagnosis, it is essential that our system allows for easily capturing photos of the patient's body. Due to the proliferation of mobile devices with attached cameras into the consumer market, most individuals carry with them the ability to capture high resolution photos. It is important that the mobile application is able to determine whether or not the attached camera has the capability of capturing images at the needed resolution. Additionally, it is important that the captured photos do not exhibit any motion blur caused by movement of the hand during capture. An algorithm will run on the mobile application to ensure the quality of the photo captured and prompt the user to recapture the photo if the quality requirements are not meant. This will help prevent the machine learning algorithm from making incorrect determinations. Restricting the capture of photos to only mobile devices allows SunSpot to help ensure confidentiality and chain of custody of the photos. If the user were to capture photos on a camera and transfer those to a PC, the SunSpot application would have no control over the images. Thus giving way to the possibility of a leak of sensitive patient data. Having all data contained on one device allows for better controls to be implemented to prevent sensitive data exposure.
Since we will be dealing with patient data, we made a key design decision to prioritize security and allow for securely transmitting data between client and server. TLS (Transport Layer Security) version 1.2 or higher will be enforced to ensure the security of data in transmission between the mobile application and the server environment. Two-factor authentication will be enforced so that users are protected in case their account credentials have been compromised. Connection between the server environment and the customer’s HIS (Health Information System) will be secured with IPSEC as a VPN will be established with each customer wishing to integrate SunSpot with their patient information system. DD01 further supports this design decision as the client-server architecture is necessary to utilize both TLS and IPSEC.
Processing and analyzing images with machine learning algorithms will be the bulk operations for our system. Therefore, we needed to make key design designs that support the requirements that follow:(FUN-001), (SERENV-003), and (SERENV-004). Additionally, we will have to make design decisions which support (WEBPOR-001), (WEBPOR-002), and (WEBPOR-003). Utilizing a client-server architecture will certainly help with processing the images, as well as for machine learning and machine learning algorithms. The server will be capable of handling multiple requests and inputs in addition to processing and analyzing images it receives with machine learning algorithms. As for the design of the server, we believe python should be utilized here. Python is a powerful language which is very commonly used for machine learning and handling data. Moreover, it supports numerous, well-supported and documented libraries that can be used for assisting with processing images and machine learning. Python is an excellent and effective language to be used for creating web servers. The goal of this design decision is to have a high level of specificity when discovering areas of concern. False-negatives should be mitigated to ensure that the system is not incorrectly missing a potential case of skin cancer. False-positives are more acceptable in this case as there is an official review completed by medical professionals.
Since Sunspot will be dealing with personal medical data, we had to make key design designs that abided by strict security requirements that meet the various frameworks mentioned within FUN-005. With this in mind, we ensured our design guarantees all data being transmitted, captured, or used was encrypted while in the database and during transit. The photos will remain encrypted both on the captured device and while at rest on the server. Keys used in the encryption process will be rotated on a yearly basis. While this does lead to processing overhead when handling the images, it is a necessary practice to ensure the confidentiality and integrity of the data being processed.