Using existing software to
build a virtual community for telemedicine
P.G. Hoekerd Telematics MSc. final thesis June 2013
Graduation committee University of Twente Dr. Ir. B.J.F. van Beijnum Prof. Dr. Ir. H.J. Hermens Biomedical Signals and Systems group Dr. Ir. M.J. van Sinderen
Abstract
In the recent years, the field on telemedicine has become an interesting area for research. Telemedicine is considered one of the solutions to maintain the current level of healthcare despite the aging population. Another application in the field of telemedicine is to help people to do more exercises, which will decreases chronic diseases and increase the standard of living. When doing research in the field of telemedicine, new applications will be developed. For these applications to be used optimally, they should be incorporated into a single platform. This would allow the applications to collaborate, and offer a single point of access to the user. Therefore there is the need for a platform which can be extended with applications used for research in the field of telemedicine.
In this platform, users are put into different groups, each group having a specific goal. Within each group, different users can have different roles. An online group with a specific goal and guided by policies can be considered a Virtual Community. Virtual Communities are particularly effective for telemedicine applications concerning group therapy; studies have shown that for chronic diseases requiring lifestyle changes, group therapy is an effective approach. A virtual community is typically carried out on a web based platform.
There are three distinctly different directions which can be taken to acquire a platform which can be used to extend with telemedicine functionality. The first approach is to build a platform from scratch, which has the disadvantage of requiring much work developing it. Another approach is to join an existing hosted platform, which has the disadvantage of being completely reliable on the provider of this platform. A final approach is to use an existing software platform, and host this platform ourselves. This approach has none of the disadvantages mentioned above, and this research takes this approach and investigates the possibilities, as well as the advantages and disadvantages of the existing software platform which can be used.
In this research, advice about the platform used to build a Virtual Community for telemedicine is given. This advice consists of two parts; advice is given about both which platform is most suitable to be used as a platform to be extended with telemedicine applications, as well as advice about the advantages and disadvantages of using that platform compared to building one from scratch. To be able to provide the advice about the suitability of a platform, first a set of requirements for this platform is composed by investigating previous researches. Next, research is done into existing platforms and a list of potential platforms is composed by first defining several search directions, creating a set of search terms based on these directions, and using these terms to search online. Using the requirements, the existing platforms are analyzed, and the most suitable platforms are taken. To be able to provide advice about the suitability of the remaining platforms, a case study is done. First, a typical scenario of a telemedicine application is defined. Using this scenario, a set of use cases is defined, which are implemented for the taken platforms. The required work and results are used to make a final statement about the most suitable platform, as well as a statement about how suitable the approach taken to use an existing platform is and the suitability of this most suitable platform.
ii
Table of Contents 1 Introduction ...... 1 1.1 Motivation ...... 1 1.2 Background ...... 2 1.3 Problem Statement ...... 4 1.4 Research question ...... 5 1.5 Approach ...... 7 1.6 Thesis Structure ...... 9 2 Requirements ...... 10 2.1 Introduction ...... 10 2.2 Scope & Existing papers ...... 10 2.3 Approach ...... 11 2.4 Requirements from previous research papers ...... 13 2.5 Additional requirements ...... 20 2.6 Summary ...... 22 2.7 Conclusion ...... 24 3 Platform selection and evaluation ...... 25 3.1 Introduction ...... 25 3.2 Search directions ...... 27 3.3 Platform selection ...... 28 3.4 Round 1: Quick evaluation ...... 31 3.5 Round 2: Priority A evaluation ...... 33 3.5.1 Elgg ...... 34 3.5.2 Dolphin ...... 36 3.5.3 WordPress – BuddyPress ...... 37 3.5.4 Mahara ...... 38 3.5.5 Anahita ...... 40 3.5.6 Drupal – Commons ...... 41 3.5.7 Oxwall...... 42 3.5.8 Liferay ...... 43 3.5.9 GateIn ...... 44 3.5.10 Summary ...... 45 3.5.11 Discussion...... 46 3.6 Conclusion ...... 49 4 Platform analysis ...... 50 4.1 Introduction ...... 50 4.2 Approach ...... 50 4.3 Multi Criteria Analysis ...... 52
iii
4.3.1 Priority based linear additive multi criteria analysis ...... 52 4.3.2 MCA conclusion ...... 53 4.4 Multi Criteria Analysis discussion ...... 53 4.5 Conclusion ...... 58 5 Case study ...... 59 5.1 Introduction ...... 59 5.2 Case study description ...... 59 5.2.1 Scenario ...... 59 5.2.2 Use cases ...... 60 5.2.3 Summary ...... 63 5.3 Drupal case study ...... 64 5.3.1 Development environment ...... 64 5.3.2 Use cases ...... 64 5.4 Liferay ...... 69 5.4.1 Development environment ...... 69 5.4.2 Use cases ...... 70 5.5 Summary ...... 76 5.5.1 Development environments ...... 76 5.5.2 Evaluation per use case ...... 76 5.5.3 Summary ...... 77 5.6 Conclusion ...... 78 6 Conclusion, discussion and recommendations ...... 79 6.1 Conclusion ...... 79 6.2 Discussion ...... 82 6.3 Recommendations ...... 83 7 Terminology ...... 85 8 Bibliography ...... 86 9 Appendices ...... 90 9.1 Appendix A: Primary and secondary sources ...... 90 9.2 Appendix B: Search results ...... 92 9.3 Appendix C: Requirement evaluation results ...... 94 9.4 Appendix D: Analysis results ...... 95
List of figures Figure 1: MVC platform component overview ...... 2 Figure 2: General approach ...... 7 Figure 3: Evaluation approach ...... 25 Figure 4: Search approach ...... 26
iv
Figure 5: Platform composition summary ...... 31 Figure 6: Quick evaluation summary ...... 33 Figure 7: Elgg ...... 35 Figure 8: Dolphin ...... 36 Figure 9: WordPress ...... 37 Figure 10 :Mahara ...... 39 Figure 11: Anahita ...... 40 Figure 12: Drupal ...... 41 Figure 13: Oxwall ...... 42 Figure 14: Liferay ...... 43 Figure 15: GateIn ...... 45 Figure 16: Priority A requirements evaluation summary ...... 49 Figure 17: MCA approach ...... 51 Figure 18: Priority based MCA ...... 53 Figure 19: Platform score per priority ...... 55 Figure 20: Platform analysis summary ...... 58 Figure 21: Drupal module file structure ...... 64 Figure 23: A Simple hello world use case in Drupal ...... 65 Figure 22: Drupal use case 1 implementation ...... 65 Figure 25: Drupal roles ...... 66 Figure 24: Drupal use case 2 implementation ...... 66 Figure 26: Drupal use case 4 implementation, getting group users ...... 67 Figure 27: Drupal use case 4 implementation, getting user roles ...... 67 Figure 28: Drupal use case 5 implementation ...... 67 Figure 29: Drupal use case 6 implementation ...... 68 Figure 30: Drupal use case 7 implementation ...... 69 Figure 31: File structure of a Liferay project with 1 portlet ...... 70 Figure 32: A simple Liferay portlet ...... 71 Figure 33: Liferay use case 1 implementation, view.jsp ...... 71 Figure 34: Liferay use case 4 implementation, getting group id ...... 73 Figure 35: Liferay use case 4 implementation, display users and roles ...... 73 Figure 36: Liferay use case 5 implementation, developer code ...... 74 Figure 37: Liferay use case 5 implementation, complete code ...... 74 Figure 38: Liferay use case 6 implementation, Liferay‐portlet.xml ...... 75 Figure 39: Case study evaluation summary ...... 78 Figure 40: Elimination results ...... 81
List of tables Table 1: MVC component description ...... 3 Table 2: Unmodified requirement from previous researches ...... 16 Table 3: Redefined requirement from previous researches ...... 17 Table 4: Merged requirement from previous researches ...... 18
v
Table 5: Split requirements from previous researches ...... 19 Table 6: Additional requirements ...... 22 Table 7: Base platform requirements ...... 24 Table 8: Platform selection search terms ...... 29 Table 9: Potential platforms ...... 30 Table 10: Community builders & CMS with community builder extension ...... 32 Table 11: Enterprise portals ...... 32 Table 12: Abbreviated requirements ...... 34 Table 13: Elgg priority A evaluation ...... 35 Table 14: Dolphin priority A evaluation ...... 37 Table 15: WordPress priority A evaluation ...... 38 Table 16: Mahara priority A evaluation ...... 39 Table 17: Anahita priority A evaluation ...... 40 Table 18: Drupal priority A evaluation ...... 42 Table 19: Oxwall priority A evaluation ...... 43 Table 20: Liferay priority A evaluation ...... 44 Table 21: GateIn priority A evaluation ...... 45 Table 22: Platform roles evaluation ...... 47 Table 23: Platform number of bug reports ...... 48 Table 24: Dominance analysis ...... 56 Table 25: Drupal and Liferay dominance analysis ...... 56 Table 26: Per requirement dominance analysis ...... 58 Table 27: Use case summary...... 63 Table 28: Case study use case results ...... 77
vi
1 Introduction
1.1 Motivation In the upcoming years Western Europe will have the problems of an aging population; the labor force will decrease, while the number of elderly people will increase. By 2050, for the Netherlands, the number of elderly people (69+) relative to the labor force (20‐69) is expected to have increased from 16% to 37% [1], an increase of over 125%. Since elderly people generally need more healthcare, the total amount of required healthcare will increase, whereas the labor force being able to provide this healthcare will decrease due to the decreasing workforce. Therefore if the current level of healthcare is to be maintained in the future, healthcare must be delivered more efficient. One way to potentially increase the efficiency of healthcare is by delivering it from a distance, a concept also known as telemedicine.
A possible scenario in telemedicine is to use remote monitoring to monitor patients at home where they would be monitored in a hospital at this moment. By not requiring a hospital bed, hospitals can treat more patients with the same amount of resources, thus increasing the efficiency of healthcare.
With remote monitoring, like most healthcare, multiple parties are involved. Some of the typical parties are doctors and patients, but also nurses and other healthcare personnel, as well as relatives and friends can play a role. These parties all serve a common goal, to improve a patient’s health; the exact definition of this goal depends on the situation. So there is a group of people who are interacting to achieve a common goal, each party with a certain role. This is more or less the definition of a Virtual Community (VC) as defined by [2] quoted by [3] which is defined as “An online community is ‘a group of people, who come together for a purpose online, and who are governed by norms and policies’”. Since this is a Virtual or Online community for remote monitoring, which is a part of telemedicine, this scenario can be considered a “VC for telemedicine”.
Studies have shown that for some scenarios treatment using a group approach is more effective than treatment using an individual approach [4]. One of these scenarios is when a patient has to make lifestyle changes as a result of a chronic disease, or when recovering from a disease. A VC can be used to provide support in several ways. It can be used to provide informational support by providing information, either from healthcare professionals or from other patients. It can also be used to provide emotional support via forums where one can share experiences, or via (instant) messaging services. There are several VC’s around that offer these 2 types of support [5] [6]. A more interesting type of support from a biomechanical engineering point of view is instrumental support. Instrumental support is defined in [7] as: “Instrumental support involves the provision of tangible aid and services that directly assist a person in need. It is provided by close friends, colleagues and neighbors”. These services can be in the form of ICT services, and the tangible aid in the form of ICT solutions. It is possible to have devices equipped with sensors that gather (medical) data, which can then be used to provide instrumental support. For example when used over a longer period of time, progress can be tracked, and this progress can be used to motivate a patient. In that case, the service is a progress tracking service and the tangible aid the motivation from peers. Another possible use of this data is when used in a group context, gathered data can be shared among peers, and peer pressure can be used to motivate a patient into making the required lifestyle changes. Finally, instrumental support can be used to give real time
1 of 95 feedback to a patient by a health care professional. By giving immediate feedback, possible errors can be corrected as soon as possible, thus increasing the efficiency of an exercise. 1.2 Background This section gives some background information required to understand the scope of this research. First, the different components of a MVC for telemedicine are given; the terms of these components are used later in this report. Next, the definition of mobile in Mobile Virtual Community used in this research is given.
Component overview This section describes the components of a platform for MVC for telemedicine. The terms used for these components are used later in this report, and this section explains the role of each component, and the interactions between them.
Figure 1: MVC platform component overview
Figure 1 shows the components of a MVC for telemedicine. It consists of 3 tiers; a client tier, services tier, and data access tier. It is a modified version of the 3 tier design ( [8]quoted by [9]) commonly used in software engineering. Within each tier, several components are defined. There can be multiple instances of each component within the MVC for telemedicine, unless mentioned otherwise.
2 of 95
Name Description Client tier This tier consists of the clients using the MVC for telemedicine. Service tier This tier consist of components that process and present data from the data tier to the client tier, as well as processing acquired biomedical data from the mobile devices at the client tier. Data access tier The data access tier is responsible for storing and retrieving any data used by the web tier. Fixed client A fixed client is a client on a fixed connection using a PC or laptop. A fixed client uses a browser to connect to the web tier. Generally speaking, a fixed client will not send biomedical data. Mobile Client A Mobile client is a client on a mobile connection using a mobile phone or tablet. A mobile client generally connects to the web tier using a dedicated app, but a browser can also be used. Web presentation The web presentation services consist of the MVC access platform, and any other services website related to the MVC, but not integrated in the MVC access platform. Data acquisition The data acquisition services consist of components that provide functionality to services process acquired data. It can communicate with the base platform for user authentication. MVC access The MVC access platform is the presentation component of the web service. When platform a client uses a browser to connect to the platform, this component is viewed. In a typical MVC for telemedicine, there is only MVC access platform. The research focuses on this component. Base platform The base platform will be extended with the newly developed extensions. The base platform provides functionality typical for any MVC, not functionality specific for a MVC for telemedicine. The base platform functionality includes, but is not limited to, user and community management. It can also offer functionality to offer informational support, such as a Wikipedia extension or a built in forum. In a typical MVC for telemedicine, there is only one base platform. Developed Developed extensions are newly developed applications specifically designed to extensions add telemedicine functionality to a MVC. These extensions extend the base platform, and do not work independent from the base platform. Data acquisition The data acquisition service collects biomedical data from the sensors of the service mobile devices. Not necessarily part of the MVC access platform. By not being part of the MVC access platform, better scalability and easier development can be achieved. Uses generally uses WSDL/SOAP, REST/JSON or other web services to communicate with the mobile clients. Standard The standard database is general purpose database required and used by the base database platform, and can be used by the developed extensions if required. In a typical MVC for telemedicine, there is only one standard database. Medical database A medical database is a database specifically designed to store medical data. For example, this can be a secure database, or a database with functionality for storing medical data. External data Any data source outside the scope of the project. External data sources are usually source accessed using web services. MVC website In a typical low performance environment, these elements run on one machine. Not connected from a logical point of view. Table 1: MVC component description
3 of 95
Mobility To send the acquired data from a mobile device to a VC, the VC must be reachable from this mobile device. Furthermore, a possible scenario is to have the VC platform give live feedback during exercises. Exercises are almost never done in front of a PC or laptop; whereas it is likely a person doing exercises has the possibility to carry a Smartphone. By making the platform reachable by Smartphone, live feedback can be given. Ideally, the platform must be able to be reached from anywhere, at any time. If the platform is indeed reachable from anywhere at any time, the platform becomes a Mobile Virtual Community (MVC).
It is assumed the mobile device has the ability to reach the VC platform from anywhere anytime, in other words, it has a mobile internet connection. However, while the assumption is true most of the time, it is not a strict requirement. Guaranteeing a connection 100% of the time introduces new requirements on the connection, for example automatic fallback to another type of connection, which are outside the scope of this project. 1.3 Problem Statement In the introduction several scenarios were described in which instrumental support was given. It did however not describe how this support should be given. To discover how this support should be given, research has to be done. Part of this research consists of developing new applications to extend the functionality of the MVC for telemedicine. There are various possibilities for new applications, ranging from applications that run solely on the MVC base platform, like an application to share experiences, to applications that gather (medical) data from sensors on a mobile device, and send this data to the MVC application. Since the goal of these applications is to research the options to offer support in an MVC, a research base MVC platform is required to deploy and test these newly developed applications. At this moment it is not clear what type of platform should be used to deploy these applications on. This leads to the goal of this research:
“To provide advice about the ‘base platform’ used to develop applications in the field of Mobile Virtual Communities for telemedicine to researchers interested in developing these applications”
There are several approaches for developing a “base platform”, each approach with its advantages and disadvantages.
Build a MVC from scratch Building a MVC from scratch is the most straightforward approach. Its advantages are clear, when all the code is self created, there is full control over every aspect of the developed code. With the goal of the MVC platform in mind, which is to support the development of new MVC applications, it is possible to make design choices specific for a MVC for telemedicine at the core of the MVC platform. The main disadvantage of developing a complete MVC from scratch is the amount of work required to develop a complete platform. Since this platform will only be used to develop and test new applications, the cost to build this platform would be relatively high.
Extend existing MVC software One of the main advantages of using an existing platform instead of designing one from scratch is that it has the potential to safe work in development. This existing platform can either be a generic MVC or a MVC for telemedicine. In either case, a MVC for telemedicine platform shares some features with the existing platform, like user management and grouping. If it would be possible to re‐use those features, developing a MVC will be less costly.
4 of 95
There are however some disadvantages. Since medical information is being used, which is sensitive information, security is an issue. Any security issues in the existing platform will also be in the MVC platform. Therefore, investigating the security of the existing platform will be important. Another disadvantage could be the lack of backwards compatibility. Since security is an issue, keeping the platform up‐to‐date is mandatory. When the base platform is updated, it is desirable that all developed extensions will continue to work. Thus backwards compatibility is desirable. One final thing to consider is that it is very unlikely that a platform will meet all the requirements. Therefore it will be likely that changing existing code will be mandatory. As more and more changes are being made, maintaining the platform will become more costly, up to the point where maintenance of an existing platform will become more expensive than developing one from scratch. Throughout the development of the platform this should be kept in mind, and actions be taken accordingly.
Joining an existing MVC for telemedicine A final approach can be to join an existing MVC platform or service, either one specifically designed for telemedicine, or a more generic one. This approach requires the least amount of work, since a fully working MVC will be joined. This approach however has some disadvantages which make it unsuitable to be used. Primarily, the complete reliability on the provider of this existing MVC makes it unsuitable. If the provider makes any changes, or ceases to exist, any developed extensions must be changed as well. Another disadvantage is the access of this provider to the potentially sensitive medical data stored by the developed extensions. This data can be used for data mining or sold to 3rd parties, which is undesirable. While these issues can be solved with a good contract with the service provider, this approach is still undesirable. Finally, hosted virtual communities are usually not open source, and can thus limit the development of applications.
The conclusion can be drawn based on the qualitative arguments given that joining an existing MVC service or platform is an unsuitable approach, and the disadvantages of developing a MVC from scratch most likely outweighs the advantages. Thus, the 2nd approach, extending existing MVC software is most likely the best option. The previously mentioned goal of this research will be made more specific based on this approach taken. The goal of this research is now:
“To provide advice about the most suitable existing mobile virtual community builder platforms which can be used as a base platform to be extended to develop applications in the field of MVC’s for telemedicine to researchers interested in developing these applications”
1.4 Research question The previous section defined the goal of this research. From this goal the following research question is derived: Which existing platform is most suitable to be used as a base platform for a Mobile Virtual Community for telemedicine?
Sub questions To be able to answer the main research question, ‘Which platform is most suitable to be used as a base platform for a Mobile Virtual Community for telemedicine?’, several sub questions need to be answered first. The first aspect that needs to be answered, before determining which platform is most suitable, is what makes a platform most suitable. To be able to do so, the requirements of a MVC for telemedicine need to be determined. This leads to the first question:
5 of 95
RQ1: What are the requirements of a MVC for telemedicine?
Doing a full research to find the requirements of a MVC for telemedicine –such as a case study or interviews‐ is beyond the scope of this research. Fortunately, previous researches have been done on the topic of MVC’s for telemedicine. This leads to the following question:
RQ2: What resources are available to determine these requirements?
Since it is not unlikely the scope and goal of this research differs from the resources, it is possible some requirements are more relevant or less relevant. This leads to the following question:
RQ3: How relevant are the requirements mentioned in the research literature?
To answer the question which platform is most suitable, first a list of platforms from which the most suitable platform can be chosen needs to be composed. It is possible there are several distinctly different directions to look for possible platforms for a MVC for telemedicine. These directions also depend on the requirements found earlier; platforms from some directions cannot be used to fulfill the requirements. This leads to the following question:
RQ4: What are possible directions to look for the base platform?
In each direction, several platforms will be available from which the most suitable platform can be chosen. To be able to find the most suitable platform, a list of all potentially suitable base platforms must be composed. This leads to the following question:
RQ5: Which platforms are available as a possible base platform for the MVC for telemedicine?
Once these platforms have been determined, an evaluation must be done to determine which platform is most suitable. In this research, two evaluations will be done. The first evaluation will be done by taking the previously determined requirements, and use these to evaluate the found platforms. The second evaluation will do a more thorough analysis, and do a case study to determine how well they can be used to be extended with telemedicine functionality. For the first evaluation, to be able to give a statement about which platform is most suitable, first a method must be found to objectively evaluate the platforms. For the second evaluation, first the use cases to be used need to be determined. This leads to the following two research questions:
RQ6: Which method should be used to evaluate the platforms using the requirements?
RQ7: Which use cases should be used to evaluate the platforms in the case study?
As mentioned before, the platform will be used to build extensions to provide telemedicine functionality. Earlier in the research, the advantages of the platforms are already researched. When developing new code, often limitations and problems of the platforms arise which were not clear at the beginning. To avoid giving incorrect advice based on the requirements alone, an evaluation is done to find these limitations and problems. This leads to the following research question:
RQ8: Which problems arise when developing extensions with telemedicine functionality on this platform?
6 of 95
Finally, by using the results from applying the method to be used to evaluate the platforms using the requirements and the results of the case study, the following question can be answered:
RQ9: According to the requirements and case study, which platform is most suitable to be used as a base platform?
The research questions will be addressed in this research in numerical order, with the exception of RQ1, which will be answered after the resources of RQ2 are determined. In this section the main research question and several sub questions were given. How these questions will be answered will be described in the approach in the next section. 1.5 Approach This section gives the approach used in this research. First the general approach will be described, which shows the different phases of the research. This is followed by a more detailed description about these phases of the approach. General Approach Figure 2 gives a schematic overview of the approach used in this research:
Figure 2: General approach
This research starts by composing a list of requirements (1). After this list is composed, a list of existing platforms potentially suitable to be used as base platforms is composed (2). Some of the requirements from (1) will be used in the existing platform evaluation to eliminate unsuitable platforms from the list of possible platforms (3). The platforms that were not eliminated are analyzed using all requirements at (4). A set of real life use cases is composed at the case study at (5), aimed to analyze one or more platforms in detail at (6). The number of platforms analyzed depends on the results of the existing platform analysis (4). Finally, the conclusions are drawn at (7).
The overlapping goal of steps 3, 4 and 6 is to decrease the size of the list from step 2 until there is 1 platform left. Each step will more thoroughly investigate a platform compared to the previous step. Since the time spent investigating a single platform will increase each step it is preferred to minimize the number of platforms each step. By using an elimination approach where the number of platforms investigated each step decreases, the total time required is minimized.
7 of 95
Requirements phase This research starts by composing a list of requirements to be used for the evaluation and analysis of the existing platforms. No extensive use case composition is done to determine these requirements; instead the requirements are determined by looking into papers with a similar topic. The papers used are researches conducted at this department at the University of Twente. From these papers, the requirements will be taken. However, it is unlikely these papers will have exactly the same goal and scope, so not all requirements will be relevant, and only the relevant requirements will be taken. It is also possible the scope and goal of this research will result into some requirements not mentioned in a previous research. These additional requirements will also be added to the list of requirements. Even after picking only the relevant requirements from the previous researches, not every requirement will be equally relevant. Therefore, every requirement ‐ the ones from the previous researches and the ones from our own research‐ will be prioritized on relevance. At the end of this phase, a list of requirements and their priorities is composed, which can be used in the evaluation, analysis and case study phase. At this phase, research questions 1,2 and 3 are addressed.
Evaluation phase The evaluation phase starts by composing a list of potential base platforms. During the composition the first set of platforms is already excluded if they are outside the scope of this research and these platforms will not be mentioned in this report. One or more evaluation steps will be used to decrease the size of this list, until the list only consist of platforms that can be used as a base platform. These platforms will be analyzed in the analysis phase. At this phase, research questions 4 and 5 are addressed, and research question 6 is partially addressed.
Analysis phase In the analysis phase, a Multi Criteria Analysis (MCA) will be done to determine which platform is most suitable to be used as a base platform. Each requirement will be given a grade depending on how well the platform meets this requirement. The method(s) used in the MCA will give each platform a score. Based on this score, the conclusion of the MCA will be drawn. This result will be verified by checking the values and methods used. At this phase, the remainder of research question 6 is addressed and research question 9 is partially answered. Case study phase Before drawing the final conclusion of this research, which platform is most suitable to be used as a base platform for the MVC for telemedicine, a case study will be introduced to test if the highest scoring platform from the analysis to be used as a base platform is suitable in practice. The goal of this case study is to do a more thorough analysis of the platforms, and to determine if the platforms to build extensions for telemedicine on are suitable. If two or more platforms scored equal in the analysis, the use cases of the case study will be applied to these platforms, and the results of these use cases will determine which platform is most suitable. This phase is implemented by describing a real life scenario, from which the key aspects are taken, which will then be used to derive the use cases, leading to the answer of research question 7. These use cases will then be implemented on a live platform, and the
8 of 95 required work and difficulties found are given. Based on these results, research question 8 is answered, along with the remainder of research question 9.
Conclusion Based on the results of the results of the analysis phase and case study, the conclusion of the research will be drawn and the research questions answered. Also, a small discussion is done concerning the results of the research and some recommendations are given. 1.6 Thesis Structure Chapter 2 discusses the first phase of this research, the requirements phase. In chapter 3 the list composition of potential platforms and results of the evaluation phase are described. Chapter 4 discusses the results of the analysis phase. In chapter 5, the case study composition and analysis is described. Finally, chapter 6 answers the research questions and draws the conclusion of this research. This chapter also discusses this conclusion and the research done, and provides recommendations where required.
9 of 95
2 Requirements
2.1 Introduction This chapter describes the requirements for the MVC for telemedicine and the base platform used to build it. These requirements will then be used in chapters 3 and 4 to evaluate and analyze existing platforms to find the most suitable one. First section 2.2 introduces two papers from which the requirements will be taken. This section also gives the exact scope of the research. Next, section 2.3 describes the approach used for selecting, rewriting and prioritizing these requirements. This approach is carried out and section 2.4 gives the resulting requirements and their priorities. Since the scope of this research is different from these 2 papers, some additional requirements might arise; these are given in section 2.5. Finally, section 2.6 gives a complete list of all requirements with their priorities. 2.2 Scope & Existing papers
Existing papers This section gives existing papers in the field of MVC’s for telemedicine. If a paper is considered relevant based on its goal and scope, and if the paper has a list of requirements, these requirements are used in this research. The first paper to be explored for requirements is a research done at this university by C. Dulawan [10]. This paper explores how MVC concepts can be applied in doing telemedicine. It is one of the first researches on the concept of MVC’s for telemedicine. In the paper, several use cases are introduced, from which requirements are deduced. These use cases, and therefore the requirements, focus on the remote monitoring aspect of a MVC for telemedicine, including monitoring vital signs and sending alarms based on these signs. While vital sign monitoring, being a requirement unique for a telemedicine MVC is outside the scope of this research, some requirements are still useful. The research does not address the concept of using MVC’s for group recovery therapy.
The second paper to be explored is a requirements analysis deliverable [11] done for the BraveHealth [12] project. The BraveHealth website describes its goal as follow: ‘BRAVEHEALTH proposes “a patient‐ centric vision to CVD management and treatment, providing people already diagnosed as subjects at risk with a sound solution for continuous and remote monitoring and real time prevention of malignant events”’. One of the components to be developed is a Virtual Community where data from remote monitoring is displayed and various types of support are given. Just like the first paper, a case study is done to discover the requirements. The deliverable is at this moment classified and unpublished. However, since the group where this MSc. thesis research is done is one of the participants of BraveHealth, and thus has access to the deliverable, the requirements can still be used in this research.
Especially the BraveHealth deliverable does extensive research to determine the requirements. Another aspect researched in the BraveHealth project, and discussed in [13], is the prediction of user acceptance of the MVC. A questionnaire is given to patients from several focus groups, to determine if and when they would use the MVC. The results of these questionnaires also influenced the use cases used to create the requirements. From these two sources the requirements of the MVC for telemedicine can be acquired. Both sources do a case study from which the requirements are taken, which gives a good base for the determination of
10 of 95 the requirements. While this may not result in all the requirements of an MVC for telemedicine, it is a good start. If during the derivation of the requirements it becomes clear some requirements are missing, these requirements are added in section 2.5: Additional requirements. In the next section, the method used to acquire and prioritize these requirements is given.
Scope A conclusion from section 1.3 was that extending an existing platform as a base platform is most likely the best approach. It also mentioned two possible directions for a base platform for the MVC for telemedicine; a generic MVC or a MVC specifically designed for telemedicine. MVC’s for telemedicine are not widely used at this moment, thus it is unlikely an existing MVC for telemedicine usable as a base platform will be found. Thus, this research will focus on extending a generic MVC as a base platform.
The scope on generic MVC’s also has an impact on the requirements of the existing base platform and their importance. In the next paragraph existing papers are explored for requirements. These papers are on MVC’s for telemedicine and have some requirements unique for the field of telemedicine. Since it is very unlikely requirements unique in the field of telemedicine will be met by the base platform, these requirements will be given either a low priority or removed completely and be deemed outside the scope of this research, which focuses on extending generics MVC’s. Another aspect of these papers is developing and deploying mobile applications for this MVC for telemedicine. Since these mobile applications only affect the base platform when communicating with the base platform, any requirements concerning mobile applications –besides communicating with the base platform ‐ will be considered outside the scope of this research. One final difference in scope is the scale of the project. The BraveHealth project envisioned a large scale application, which also puts requirements on the hardware and software used. This research has a smaller scale, and requirements on the hardware are no longer considered important. 2.3 Approach The previous section gave two resources containing requirements for a MVC for telemedicine. This section describes the method used acquire and prioritize these requirements. From each research, the requirements are looked up and are literally copied into this research. As mentioned in the requirements approach section in section 1.5, not all requirements are equally relevant, and a prioritizing method will be used to denote the importance of each requirement. A two step approach will be used to prioritize the requirements. The first step is to determine if the requirement is at all relevant. A requirement is not relevant if it is outside the scope of this research as defined in section 2.2. If a requirement is relevant, the second step is performed, giving a priority to the requirement. While determining if a requirement is relevant, the motivation why it would be relevant is usually the same as the motivation for the priority of a requirement. Thus, writing both down is redundant and in the report, the result of both steps will be given at the same time. A priority scheme based on the MoSCoW prioritization [14] method will be used to assign priorities to each requirement. The MoSCoW method is a method commonly used in software development for requirement prioritization. Usually, the priorities are determined in consultation with the stakeholders. In this research however, this is not the case. Instead, a motivated estimation of the priority is done for each requirement, and the motivation is given. The MoSCoW method has 4 prioritization levels that can be given to a requirement:
M ‐ MUST have this. S ‐ SHOULD have this if at all possible.
11 of 95
C ‐ COULD have this if it does not affect anything else. W ‐ WON'T have this time but would like in the future.
These 4 priorities combined with the step determining if a requirement is relevant leads to the following 5 priorities used in this research: Priority A: Must meet this requirement. These requirements will be used in chapter 3 to evaluate and chapter 4 to analyze existing platforms. Priority B: Should meet this requirement. These requirements will be used in chapter 4 to analyze existing platforms. Priority C: Could meet this requirement, but less important than priority B. These requirements will be used in chapter 4 to analyze existing platforms. Priority D: The MVC for telemedicine should meet this requirement; however, it is not important for the base platform to meet this requirement. These requirements will be used in chapter 5 to help define the scenario from which the use cases are derived. Priority E: This requirement is not relevant (anymore), and will not be adopted in the list of requirements used in this research.
Another aspect is to define when a requirement is met, or not met, and what to do if a requirement is partially met. For this research the decision was made that there are three possible options here, either a requirement is met, not met or partially met. To avoid inconsistent results, the decision was made not to further divide partially met requirements, for example into mostly met and mostly not met. Some requirements, due to their definition, can only be met or not met, not partially met. For priority D requirements, which will not be used in the evaluation and analysis but only to help define the setting for the scenario from which the use cases are derived, the decision was made not to define when a requirement is met, since this will not be used. Obviously, requirements with priority E, which are obsolete, do not require the definition when a requirement is met.
Before the priorities are given, an operation can be applied to the requirements to make them more suitable for this research. Possible operations are:
Redefinition: In some cases a small redefinition of the requirement is preferred to meet the scope of this research, by either adding, removing or rewriting parts of the original requirement. Another possibility for a redefinition is when parts of the requirement are outdated, and need to be updated. If a redefinition is the case, the motivation behind it is given.
Merge: If a requirement is present in both researches or if the scope of a previous research is more detailed than this research, multiple requirements can be merged into one more abstract requirement. If a merger is applied, the motivation behind the merger is given.
Split: If the scope of this research is more detailed than the scope of the previous researches, it is possible a requirement is split into multiple more granular requirements. Once again, the motivation behind the operation is given when it is applied.
12 of 95
2.4 Requirements from previous research papers This section lists and prioritizes the requirements from the previous researches. First the requirements which are taken without any operation are described, followed by the redefined, merged and split requirements. For each of those 4 categories, first the requirements taken from C. Dulawan are analyzed, followed by the requirements from the BraveHealth project.
Unmodified requirements This section gives the requirements that did not need a redefinition/merger or split, in other words the unmodified requirements.
The following layout is used to describe the requirements, their priority and the motivation behind the priority:
Unmodified requirements example Example requirement Motivation behind the priority Requirement fulfilled: When is a requirement fulfilled. priority Requirement partially fulfilled: When is a requirement partially fulfilled. Requirement not fulfilled: When is a requirement not fulfilled.
The next table gives the requirements that did not need a modification:
Unmodified requirements The platform should allow creation of a sub‐community. In the introduction, group therapy was mentioned as one of the possible applications for the MVC for telemedicine. To offer effective group support, it must be possible to create the groups to give this support, or sub‐communities. Without sub‐ communities, all users would be in 1 community, making it very hard to offer granular support. It is almost impossible to offer group support if the requirement is not met, thus the platform must meet this requirement, giving it priority A. A Requirement fulfilled: The platform can create sub communities Requirement partially fulfilled: Requirement not fulfilled: The platform cannot create sub communities The platform should allow creation and management of user profiles. User profiles can improve the social interaction within a (sub)‐community by allowing users to find other users with the same interests, location or illness. They can also be used to contact a user directly. This allows users to find peers to provide emotional support, which is one of the types of support of a MVC for telemedicine. If this requirement is not met, providing emotional support will difficult, so the platform must meet this requirement, giving it priority A. A Requirement fulfilled: The platform can create and manage user profiles. Requirement partially fulfilled: Requirement not fulfilled: The platform cannot create or manage user profiles. The platform should be able to identify who should be alarmed in case of an emergency. Sending an alarm in case of an emergency is one of the requirements mentioned earlier in section 2.2 that are unique for telemedicine and are beyond the scope of this research. However, for a MVC for telemedicine which can be used for remote D monitoring this requirement is still relevant. Therefore it given priority D. The platform should be able to transfer viewing session without interruption. This requirement refers to the monitoring of vital signs, and being able to view vital signs without interruption. Monitoring vital signs is one of the requirements mentioned earlier in paragraph 2.2 that are unique for telemedicine and are beyond the D scope of this research. However, for a MVC for telemedicine which can be used for remote monitoring this requirement is still relevant. Therefore it given priority D. The platform should be able to support multiple devices associated with one role. This requirement refers to the monitoring of vital signs, and being able to view vital signs without interruption. Monitoring vital signs is one of the requirements mentioned earlier in paragraph 2.1 that are unique for telemedicine and are beyond the D scope of this research. However, for a MVC for telemedicine which can be used for remote monitoring this requirement is still relevant. Therefore it given priority D. These services should at least be present: vital sign delivery service, viewing service and interaction service. It is not useful to put constraints on the minimum of required services at this moment. E It should be possible to restrict access to the sub‐community. In medicine, where information is sensitive, it must be impossible for unauthorized users to view the data shared in this sub‐ A community. Therefore the platform must be able to restrict access to sub‐communities, to avoid unauthorized users to access
13 of 95
the data, giving it priority A. Requirement fulfilled: It is possible to restrict access to the sub‐community to authorized users. Requirement partially fulfilled: Requirement not fulfilled: It is not possible to restrict access to the sub‐community to authorized users. Access: the BMVCs must be accessible using a desktop, notebook, tablet PCs and SmartPhone. Since all base platforms tested will be web based, and all the devices listed in the requirement should be able to read webpage’s, this requirement is a bit superfluous. On the other hand, if a platform does not support one of the devices listed above, it will severely lower its usability. Therefore the platform must meet this requirement, and is given priority A. A Requirement fulfilled: The platform is accessible from a desktop, notebook, tablet PCs and SmartPhone. Requirement partially fulfilled: Requirement not fulfilled: The platform is not accessible from a desktop, notebook, tablet PCs or SmartPhone. Translations: There is the need for a translation service. Further decisions are needed so as to determine if this can be done off‐ line or needs to be online (near real‐time), whether it must be human translation by an authorized translator etc. A translation service can be useful, but since the platform is only intended to be used at this university, at most 2 languages will be used (Dutch and English) and it is no longer mandatory. It could still be useful, since it saves some time in building the MVC that uses multiple languages, for example Dutch and English. However, translating the content into 1 other language is C manageable, thus it is given a low priority, priority C. Requirement fulfilled: The platform has a built in translation service Requirement partially fulfilled: Requirement not fulfilled: The platform does not have a built in translation service. Help‐functionality: users must have the possibility to get help in using the system, either through a context‐aware help function or via (context‐aware) help‐desk. This help functionality is about help in using the system only. If a user does not know how to use the platform, that user will not use all the capabilities of the platform. Having help functionality can extend the users knowledge of the platform and increase the overall usability of the platform. So this is an important requirement. However, since the amount of users will be limited, help can be given outside the platform, making built‐in help functionality not mandatory. Therefore, since this is requirement is important but not mandatory, the platform should meet it, giving it priority B. B Requirement fulfilled: The platform has help functionality services available, and help pages already implemented Requirement partially fulfilled: The platform has help functionality services available, but help pages are available externally or help functionality services are available but not implemented. Requirement not fulfilled: The platform does not have help functionality services available, and no help pages are available externally. Users, especially patients, have full understanding and insight in who is able to read what information about himself or herself, and can exercise control over who is able to see what within the context of a mobile virtual community. This requirement is important, since medical information is privacy sensitive, and a patient has the right to manage this information. Being able to view who is able to read information and exercise control over it is however optional. If the requirement is not met the platform can still be used. Therefore, since it is an important but not mandatory requirement, the platform should meet this requirement, giving it priority B. B Requirement fulfilled: Users can read and exercise control over who is able to see what information Requirement partially fulfilled: Information about who can read what information is stored in the database, but is not readily available to the end user and an extension has to be built to makes this read and exercise control over this information Requirement not fulfilled: There is no information available about who is able to see what data. Whenever required, for instance based on an in‐depth privacy and security analysis, information between endsystems (mobile devices and desktops) is exchanged in a security enhanced application protocol (such as https). Since sensitive medical data may be exchanged, a secure connection is important to guarantee this data cannot be intercepted by a 3rd party. If this requirement is not met, passwords and sensitive medical information could be intercepted by a 3rd party, leading to the leakage of privacy sensitive information. Therefore, the platform must meet this requirement, giving is priority A. A Requirement fulfilled: HTTPS is supported by the platform, and the pages to be transferred via HTTPS can be customized from the platform. Requirement partially fulfilled: HTTPS is supported, but list of pages to be transferred via HTTPS cannot be customized from the platform. Requirement not fulfilled: The platform cannot be used via HTTPS. Whenever required (again, based on an in‐depth privacy and security analysis), health related data of patients is stored in a secure manner in the MVC database. Since sensitive medical data may be used and stored, a secure database is important. However, this sensitive medical data can be stored in an external secure database, so it is not important for an existing base platform to meet this requirement. Since it is not crucial but still advantageous for a platform to meet this requirement, the platform could meet this requirement, giving C it priority C. Requirement fulfilled: The platform can store data encrypted. Requirement partially fulfilled: There are 3rd extensions available for secure storage. Requirement not fulfilled: The platform does not support secure storage. Using a mobile device(e.g. Tablets) users must be able to be connected to their virtual communities 24/7 This is a requirement on the mobile devices, not on the base platform. Therefore it is not relevant for the requirements, can E be removed and is given priority E.
14 of 95
User‐Interaction modes: the user interface must support request‐response, solicit‐response, publish‐subscribe, one‐way and notifications. In other words, all standard interaction modes need to be supported. A client will communicate with the base platform in 2 possible ways, by using a browser to view the base platform or by using a dedicated application that uses web services. A dedicated application would be custom made and would not impose any E additional requirements on the base platform, besides the availability of webservices, which is covered by another requirement. In most cases, a browser only supports request‐response, making it impossible to meet this requirement, and thus making this requirement obsolete. Therefore it is given priority E. Also, mixed (i.e. simultaneous) access must be supported. This requirement is considered to specific and therefore outside the scope of this research. Thus it is given priority E. E Various types of support must be supported, for patients the four basic types of support relevant are: informational support, instrumental support, emotional support and feedback support. Giving various types of support is one of the requirements mentioned earlier in section 2.2 that are unique for telemedicine D and are beyond the scope of this research. However, for a MVC for telemedicine which can be used for remote monitoring this requirement is still relevant. Therefore it given priority D. Mobile device: For the access and interaction with the Mobile Virtual Community Platform a dedicated mobile application needs to be deployed on the mobile device in use so as to take optimal advantage of the functionalities supported by the platform (such as timely notifications and the like). While this is an important requirement for a successful MVC for telemedicine, it is not an important requirement for the base D platform. Creating mobile applications for the MVC is outside the scope of this research, which focuses on finding a base platform to be extended. Deploying a mobile application does not depend on this base platform. Therefore, since it is outside the scope of this research, but still useful for an MVC for telemedicine, it is given priority D. Mobile device: In order to be implementation technology independents, standardized protocols for the interaction and communication between mobile device and the Virtual Community Platform are required. Web based communication between the mobile device and VC is already standardized. Any non web based communication, such as communication between a dedicated mobile application and the base platform will be completely developed by the D application developers. Therefore, since it is outside the scope of this research, but still useful for an MVC for telemedicine, it is given priority D. Mobile device: For mobile applications, the interaction / communication must be based on WSDL and SOAP. REST is considered a potential candidate for the (near) future. One of the functionalities of a MVC for telemedicine is to gather instrumental data. This data is acquired by a body area network (BAN) and collected at a mobile device. To communicate between this mobile device and the MVC platform, a SOA should be used. By using a standardized protocol, extending and managing extensions built for the MVC become easier. If the base platform would already support SOA’s, this would decrease the time required to build these extensions. It is however not mandatory to use a SOA for communication between the mobile device and the base platform. Therefore, since it is preferred, B but not required, the platform should meet this requirement, giving it priority B. Requirement fulfilled: The platform has support for SOAP/REST web services, and web service functions available for the core functionality of the platform. Requirement partially fulfilled: The platform supports custom SOAP/REST web services, but no web services are already implemented. Requirement not fulfilled: The platform does not support SOAP/REST. Mobile device: Mobile application development must be fully aligned with the requirements of the other modules in the project. E.g. It is known that running C# and Java application components on Windows mobile devices gives poor performance. As mentioned in the scope definition in chapter in section 2.2, any requirements concerning mobile applications are E considered outside the scope of this project. Therefore it is given priority E. Mobile device: Mobile Devices we use and have used in the past for development testing and Telemedicine trials are: HTC Smart Phones (various types), QTek and iPAQ. As mentioned in the scope definition in chapter in section 2.2, any requirements concerning mobile applications are E considered outside the scope of this project. Therefore it is given priority E. The Virtual Community Platform will run on multiple application / web servers. The scope of the research originally describing this requirement envisioned a large scale deployment of the MVC where scalability was an issue. This research focuses on finding a base platform to develop new extensions for research on MVC’s for E telemedicine. This research on MVC’s for telemedicine is small scale, and scalability is no longer an issue. Therefore, this requirement has become obsolete, and is given priority E. The Virtual Community Platform will be realized using J2EE technology This requirement was introduced in the original research for 2 reasons, scalability and remote management. In the motivation of the previous requirement it was described why scalability is no longer an issue. The reason to require remote management E has the same motivation; in a large scale environment it improves scalability. Since this is no longer an issue, this requirement has become obsolete, and given priority E. The preferred application servers and database This requirement is moved to the additional requirements. Servers in use for the software development This requirement was introduced to specify the hardware of the servers to host the MVC for telemedicine. Since this research E focuses on a base platform which runs on any x86 PC, this requirement is no longer relevant, and is given priority E. Software Development Environments. E
15 of 95
The base platform does not depend on a software development environment used to build new extensions, and therefore this requirement is no longer relevant and given priority E. Table 2: Unmodified requirement from previous researches
Redefined requirements This section gives the requirements that required a redefinition due to the difference in scope between the original research and this research or the fact they were outdated.
The following layout is used to describe the redefined requirements, the reason behind the redefinition, the new requirement, its priority and the motivation behind the priority:
Redefined requirements example Example requirement Motivation behind the redefinition New requirement Motivation behind the priority priority Requirement fulfilled: When is a requirement fulfilled. Requirement partially fulfilled: When is a requirement partially fulfilled. Requirement not fulfilled: When is a requirement not fulfilled.
The following table gives the results of this redefinition:
Redefined requirements The platform should provide synchronous or asynchronous communication service such as chat service and instant message for inviting community members to join sub‐community. This requirement will be made more abstract to not limit the type of communication used to invite community members. New requirement: The platform should be able to send invitations to users to join a sub community. By sending invitations to users the opportunity is given for them to decline the invitation to join a community. Furthermore, they are notified they can join a sub community. This requirement is not mandatory, since this the B platform will be used on a small scale, and other methods can be used to inform a user to join a sub community. However, meeting this requirement is still an advantage, and the platform should meet this requirement, thus giving it priority B. Requirement fulfilled: The platform can send invitations to any user to join a sub community. Requirement partially fulfilled: The platform can send invitations to users to join a sub community, but can only send them to a specific group of users, or only a specific fixed group of users can send the invite. Requirement not fulfilled: The platform does cannot send invitations to users to join a sub community. The platform should provide asynchronous communication service such as email for inviting non‐community members to join the main community. This requirement will be made more abstract to not limit the type of communication used to invite community members. New requirement: The platform should be able to send invitations to users to join the main community. By sending invitations to users the opportunity is given for them to decline the invitation to join a community. Furtermore, they are notified they are invited to join a MVC. This requirement is not mandatory, since this the platform B will be used on a small scale, and other methods can be used to inform a user to join the virtual community. However, meeting this requirement is still an advantage, and the platform should meet this requirement, thus giving it priority B. Requirement fulfilled: The platform can send invitations to any user to join the platform. Requirement partially fulfilled: The platform can send invitations to users to join the platform, but can only send them to a specific group of users, or only a specific fixed group of users can send the invite. Requirement not fulfilled: The platform does cannot send invitations to users the platform. User Roles: The following user roles must be supported by the BMVC Platform: patient, cardiologist, therapist, nurse, family member, and friend. By not limiting the user roles, flexibility will be increased, and does not impose limitations on the platform later on. Therefore, the requirement is made more abstract to not limit the user roles. New requirement: Different user roles must be supported by the BMVC platform, including, but not limited to, patient, cardiologist, therapist, nurse, family member, and friend. A Restricting access to sensitive medical data is an important requirement of the MVC for telemedicine. By introducing different roles, it becomes easier to manage access control to sensitive data. Therefore the platform must meet this requirement, and it is given priority A. Requirement fulfilled: The platform can create custom roles. Requirement partially fulfilled:
16 of 95
Requirement not fulfilled: The platform does cannot create custom roles. Ease‐of‐use / usability: The user‐interface must be intuitive and easy to use, short learning curve is required. To meet this requirement, a UI that meets this requirements must be developed. This is not a requirement on the platform by itself. However, to not be limited in the development of this UI and end up with a UI that does not meet the requirement mentioned above, the platform must have the ability to fully customize the UI. New requirement: The platform must have the ability to fully customize the UI At this moment it is not completely clear what applications will be developed in this project. By having a fully A customizable UI, extension developers will not be limited by the UI later on in the project. Requirement fulfilled: To our knowledge, every aspect of the UI of the platform is customizable Requirement partially fulfilled: The platform has some small limitations regarding the customization of the UI. Requirement not fulfilled: The platform has clear limitations regarding the customization of the UI. User role, skills, age and gender may affect the user interface requirements. Usability must be evaluated objectively and quantitatively. This requirement will be made more abstract; it is very unlikely existing platforms have the ability to change the UI according to age or skills. New requirement: : The platform must have the ability to have user specific UI’s Some of the potential users of the MVC are elderly people with decreased visual abilities. Those users require a user specific UI with for example increased font size to use the MVC platform more effective. If a platform has the ability to A create custom UI’s per user, an extension can be made to set those custom UI’s according to age/skill, meeting the original requirement. Therefore this is a requirement that must be met by the platform, and it is given priority A. Requirement fulfilled: The platform has the ability to have user specific UI’s. Requirement partially fulfilled: Requirement not fulfilled: The platform does not have the ability to have user specific UI’s. Table 3: Redefined requirement from previous researches
Merged requirements This section gives the requirements that required a merger. A merger was applied when a requirement was present in both researches or if the scope of a previous research is more detailed than this research.
The following layout is used to describe the merged requirements, the reason behind the merger, the new requirement, its priority and the motivation behind the priority:
Merged requirements example Example requirement A Example requirement B …. Priority Motivation behind merger of new New requirement Motivation behind the priority requirem Requirement fulfilled: When is a requirement fulfilled. ent Requirement partially fulfilled: When is a requirement partially fulfilled. Requirement not fulfilled: When is a requirement not fulfilled.
In the next table, the results of the mergers are given:
Merged requirements The platform should allow configuration of sub‐community such that preferences and constraints can be made regarding roles and services. The platform should be able to store the preferences and constraints imposed on the created sub‐community Since these 2 requirements are almost equal, they will be merged into the following requirement. New requirement: The platform should allow configuration of sub‐community such that preferences and constraints can be made and stored regarding roles and services. In medicine, where information is sensitive, it is very important to put constraints on information provided by services and A who is able to view and modify this information. If this requirement is not met, granular access to roles and services is impossible, and unauthorized access to these roles and services could be possible. Therefore the platform must be able to put constraints on the roles and services in a sub‐community, giving it priority A. Requirement fulfilled: The platform has the ability give custom privileges per role within a sub‐community. Requirement partially fulfilled: Requirement not fulfilled: The platform does not have the ability give custom privileges per role within a sub‐community. The platform should be capable of analyzing the vital signs in order to detect an emergency situation. The platform should be able to collect the vital signs of the patient D
17 of 95
The platform should be able to store the vital signs of the patient The platform should be able to stream vital signs of the patient These 4 requirements are all related to vital sign monitoring. They will be merged into one requirement to reduce the number of requirements. New requirement: The platform should be able to collect, store, stream and analyze the vital signs of the patient. Collecting, storing, streaming and analyzing vital signs are all requirements unique for telemedicine. As mentioned earlier in section 2.2, requirements unique for telemedicine are beyond the scope of this research. However, for a MVC for telemedicine which can be used for remote monitoring this requirement is still relevant. Therefore it given priority D. The platform should be able to have information about the patient’s location The platform should be able to detect the caregiver’s location. Both requirements are related to detecting the location of a device. For an existing platform, the role of a device is not important. Thus, they will be merged into one abstract requirement. New requirement: The platform should be able to detect the location of a mobile device. While this is an important requirement for a MVC for telemedicine, it is also a very specific requirement focused on mobility, C and unlikely to be implemented by any existing platforms. Furthermore, is can easily be implemented it when required. Thus, it is given priority C. Requirement fulfilled: The platform has the ability to detect the location of a mobile device. Requirement partially fulfilled: Requirement not fulfilled: The platform does not have the ability to detect the location of a mobile device. There should be at least one patient role in the sub‐community There should be at least one caregiver role in the sub‐community There should be at least one producer role in the sub‐community There should be at least one consumer role in the sub‐community These four requirements are all related to the minimum occurrence of a role within a community. They will be merged into E one abstract requirement. New requirement: There should be at least one patient, caregiver, producer and consumer role in the sub‐community This requirement is part of the “The platform should allow configuration of sub‐community such that preferences and constraints can be made and stored regarding roles and services.” requirement, and is thus obsolete, giving it priority E. Table 4: Merged requirement from previous researches
Split requirements This section gives the requirements that required a split. If the scope of this research is more detailed than the scope of the previous researches, it is possible a requirement is split into multiple more granular requirements. Once again, the motivation behind the operation is given when it is applied.
The following layout is used to describe the split requirements, the reason behind the split, the new requirements, their priority and the motivation behind the priorities:
Split requirements example Example requirement Motivation behind split New requirement A Priority Motivation behind the priority Requirement fulfilled: When is a requirement fulfilled. requirem Requirement partially fulfilled: When is a requirement partially fulfilled. ent A Requirement not fulfilled: When is a requirement not fulfilled. New requirement B Priority Motivation behind the priority Requirement fulfilled: When is a requirement fulfilled. requirem Requirement partially fulfilled: When is a requirement partially fulfilled. ent B Requirement not fulfilled: When is a requirement not fulfilled. New requirement … Priority Motivation behind the priority Requirement fulfilled: When is a requirement fulfilled. requirem Requirement partially fulfilled: When is a requirement partially fulfilled. ent … Requirement not fulfilled: When is a requirement not fulfilled.
The next table gives the requirements that required a split:
18 of 95
Split requirements Language: The BMVC platform must support the languages of countries where the trials will take place and the project’s language. Hence, Italian, Polish and English must be supported. The platform will now only be used in the Netherlands, so supporting Italian and Polish is no longer relevant. However, being able to set the language of the platform is still important. From this, 2 requirements are derived. New requirement: The platform must support multiple languages. Since the platform will be used in the Netherlands, the Dutch language must be supported, in the sense that it must be possible to change to interface to Dutch. Furthermore, since newly developed applications might be made by international students who do not master the Dutch language, English should also be supported. Thus, a multiple languages service is required. If this requirement is not met, it can lead to problems in the development of new extensions or the usage of the platform. Therefore this platform must be met, giving it priority A. A Requirement fulfilled: The platform supports multiple languages and these languages can be set per user. Requirement partially fulfilled: The platform supports multiple languages but these languages cannot be set per user, or are not supported at the same time. Requirement not fulfilled: The platform does not support multiple languages. New requirement: The platform should have an UI in the Dutch language It is an advantage if the platform already has an interface in the Dutch language since that will save time translating the platform. However, it is not mandatory, since it can always be added later on; assuming the requirement to support multiple languages is met. Since it is an advantage, and not mandatory to meet this requirement, it is given priority B. B Requirement fulfilled: The platform as at least 95% translated into Dutch. Requirement partially fulfilled: The platform has a Dutch translation available, but this translation is not complete. Requirement not fulfilled: The platform does not have a Dutch translation available. The human‐machine interfaces must adapt according to the capabilities of the device used (hence, for some devices only a subset of functionalities may be accessible). Depending on the capabilities of the mobile device, all or just most essential interactions are supported. User‐Interaction modes: the user interface must support request‐response, solicit‐response, publish‐subscribe, one‐ way and notifications. In other words, all standard interaction modes need to be supported. A client will communicate with the base platform in 2 possible ways, by using a browser to view the base platform or by using a dedicated application that uses web services. A dedicated application would be custom made and would not impose any additional requirements on the base platform, besides the availability of web services, which is covered by requirement MVCB3. The new requirements are specifically designed when accessing the platform by using a browser on a device with limited screen size, such as a mobile device. New requirement: The platform should be able to detect the type of device connected. It is not possible to serve a different UI to a device with limited screen size if the type of device connected is not known. However, this functionality can always be added later to the platform, so it is not given the highest priority. Requirement fulfilled: The platform has an extension available to detect the type of device connected. Requirement partially fulfilled: The platform does not have an extension available to detect the type of device connected, but B 3rd party software is available to detect the type of device connected, Requirement not fulfilled: The platform does not have any functionality, either an extension or 3rd party software, available to detect the type of device connected. New requirement: The platform must have the ability to provide a different UI for devices with a limited screen size, such as mobile devices. Serving a different UI to devices with limited screen size is an important requirement. Adding functionality to serve different UI’s to devices with limited screen size to an existing platform is complicated; therefore this requirement is given the highest priority. A Requirement fulfilled: The platform has the ability to provide a different UI. Requirement partially fulfilled: Requirement not fulfilled: The platform does not have the ability to provide a different UI. New requirement: The platform should have a UI specifically designed for devices with a limited screen size, such as mobile devices. The previous new requirement defined that a platform must have the ability to provide another UI to mobile devices. If a platform already has this UI specifically designed for mobile devices, this would safe time in development. However, it can always be designed later on, so it is not given the highest priority. B Requirement fulfilled: The platform has one or more UI’s specifically designed for mobile devices. Requirement partially fulfilled: Requirement not fulfilled: The does not have any UI’s specifically designed for mobile devices. Table 5: Split requirements from previous researches
19 of 95
Summary This section explored two researches for requirements and gave each requirement a priority. Some requirements were redefined; others were merged or split. Section 2.6 gives a summary of the requirements and their priorities. The next section introduces and prioritizes some additional requirements not mentioned in this section. 2.5 Additional requirements The previous section used the requirements from two researches to compose a list of requirements for a base platform for a MVC for telemedicine. This list does however not give a complete list of requirements for the base platform to be used for a MVC for telemedicine which this research investigates for the following reasons: The requirements from both papers focus on developing a MVC specifically for telemedicine, and thus the requirements are focused towards the telemedicine aspect of the MVC. This paper however has a scope towards extending an existing, general purpose MVC into a MVC telemedicine. This difference in scope introduces some additional requirements. Both papers assumed – at least when making the requirements‐ the MVC would be built from scratch. The fact that for this research an existing platform will be used to build the MVC means there is no longer full control over every aspect of the platform and introduces a dependence on a 3rd party that develops this platform. Being dependant on a 3rd party introduces additional requirements on that 3rd party and their software platform. Some of these requirements are technical requirements while other requirements are non technical requirements on the 3rd party itself, such as licensing.
Thus, some additional requirements are introduced to verify if an existing platform can be used as a base platform for the MVC for telemedicine. These requirements are discussed in this section. The same layout as in section 2.4 will be used.
Example additional requirement Example requirement priority Motivation behind the priority
The next table gives the 11 additional requirements:
Additional requirements The platform must be secure. Previously, this was an implicit requirement; neither paper mentions security as a requirement, possibly it was assumed that the developed code would be secure. This assumption is no longer guaranteed since some code will be developed by a 3rd party, it is now an explicit requirement on the existing platform. The platform will handle potentially sensitive medical data; therefore a platform which is as secure as possible is mandatory. The platform must meet this requirement, giving it priority A A. Requirement fulfilled: The platform is secure. Requirement partially fulfilled: Requirement not fulfilled: The platform is not secure. Any security leaks that are published must be fixed fast Only in a perfect world, software is 100% secure. Therefore, there will always be security leaks. If these leaks are fixed as fast as possible, the damage from these leaks is as minimal as possible. Therefore, the platform must meet this requirement and it is given priority A. A Requirement fulfilled: Critical security leaks are usually fixed within acceptable time. Requirement partially fulfilled: Critical security leaks are usually fixed beyond acceptable time. Requirement not fulfilled: Critical security leaks are usually not fixed at all. The platform’s code must be backwards compatible As mentioned in the previous two requirements, security is an important requirement of the base platform. To guarantee A security, security updates need to be applied. Often security updates are only released for the latest version or latest two
20 of 95
versions of a platform, so updating the platform to a new version is mandatory. The MVC platform will be used for research and development by PhD’s and master/bachelor students for their thesis. Once they finish their thesis – and thus their developed code‐ they might not be related to the MVC development anymore. However, their developed code might still be used. If due to updates at the base platform the created extensions will stop working, it can take considerable effort to fix it, since knowledge about the code is not available anymore. So, since it is mandatory to update the base platform, and it is undesired if existing code should be changed, the platform must stay backwards compatible to decrease the work required to maintain the MVC, and it is given priority A. Requirement fulfilled: The platform is completely backwards compatible. Requirement partially fulfilled: The platform is partially backwards compatible. Requirement not fulfilled: The platform does not give any guarantees about backwards compatibility, or is not backwards compatible. The platform should have recent updates If a platform has recent updates, it is more likely that new extensions will be made by 3rd parties, and security leaks will be fixed. A platform that does not have any recent updates is more likely to be discontinued, which results in security leaks not getting patched and ultimately an unsafe and unsuitable platform. Since security is an important requirement of the base platform, this requirement must be met, and it is given priority A. A Requirement fulfilled: The platform has recent updates, last updates less than 3 months ago. Requirement partially fulfilled: The platform does have updates, but not very recent. The last update was more than 3 months but less than 12 months ago. Requirement not fulfilled: The platform did not have any updates over the last 12 months. It should not be too complicated to build our own extensions. As mentioned before, the platform will be used as a development platform by students/P.H.D.’s. Since actually developing these new applications is only a small part of their research, it is not desirable for them to spend a high amount of time developing these applications. Therefore, it is preferable that making new extensions is not too complicated. Since it if preferable, and not mandatory to meet this requirement, it is given priority B. Requirement fulfilled: The platform does not have a steep learning curve, has a simple architecture and multiple tutorials are B available. Requirement partially fulfilled: The platform does not meet one of the requirements above; it has a steep learning curve, complicated architecture or has no tutorials available. Requirement not fulfilled: The platform has a steep learning curve, complicated architecture and no tutorials available. The platform must be free for non commercial use Since the platform will be used as a research platform at this university, revenues will be limited, if any at all. Therefore, the cost should be as low as possible. This motivation alone does not justify this requirement, since a small budget would be available for the base platform if required. However, some of the requirements previously mentioned in this research require a running platform to be verified. For example, it is not possible to verify the requirement “It should not be too complicated to build our own extensions” unless the extensions can be tested, which requires a running platform. Since running a platform A requires the platform to be installed, and therefore acquired, it must be free, or a free trial must be available, giving it priority A. Requirement fulfilled: The platform is free for non commercial use. Requirement partially fulfilled: Requirement not fulfilled: The platform is not free for non commercial use. The extensions useful to this project should be free Like the previous requirement, the extensions useful to this project must be free, or a free trial must be available. However, extensions are not mandatory for the base platform to be a potential base platform; they are optional to be installed. Therefore, since it is important for the base platform to have free extensions available useful to this project, but not mandatory, it is given priority B. B Requirement fulfilled: The platform has more than 10 potentially useful extensions freely available. Requirement partially fulfilled: The platform has some, but less than 10, potentially useful extensions freely available. Requirement not fulfilled: The platform has no potentially useful extensions freely available. The platform must be written in PHP or Java The extensions developed must use the same programming language as the base platform to be able to make calls to the base platform. To make the development of new extensions easier, these extensions ‐and thus the base platform‐ must be written in a programming language where the developers are skilled in. PHP is one of the most commonly used programming languages, and if a developer has skills in a programming language, PHP is most likely one of them. Thus PHP is one of the languages in which the base platform can be written. Java is also an option, since it is taught to students at this university. If A programming language would be used where the extensions developer has no experience in, this would significantly hinder the development of new extensions. Thus it is given the highest priority, priority A. Requirement fulfilled: The platform is written in PHP or Java. Requirement partially fulfilled: Requirement not fulfilled: The platform is not written in PHP or Java. The platform should support databases from multiple vendors Since it is not certain which telemedicine extensions will be developed in the future, it is preferable not to be limited to one database vendor, in case a required feature is not supported by this vendor. Extensions can still use their own custom C database, decreasing the importance of this requirement. Thus, since it is given priority C. Requirement fulfilled: The platform supports more than 2 different database vendors.
21 of 95
Requirement partially fulfilled: The platform supports 2 different database vendors. Requirement not fulfilled: The platform supports only 1 database vendor. The platform API should be well documented Having good documentation can greatly decrease the work required to develop new extensions. If this requirement is not met, developing extension can become too time consuming. Therefore, it is given priority A. Requirement fulfilled: The platform has a good API and multiple tutorials available. A Requirement partially fulfilled: The platform does have a good API or multiple tutorials available, but not both. Requirement not fulfilled: The platform does not have a good API and no multiple tutorials available. The platform should offer support to build mobile applications The scope of the project includes building mobile applications which communicate with the MVC base platform. Therefore, it is an advantage but not mandatory, to have a platform that already offers support to build mobile applications, and it is given priority C. C Requirement fulfilled: The platform offers support to build mobile applications. Requirement partially fulfilled: Requirement not fulfilled: The platform does not offer support to build mobile applications. Table 6: Additional requirements
This section introduced, motivated and prioritized an additional 11 requirements. These requirements, along with the requirements from section 2.4 will be used to evaluate and analyze existing VC platforms to be used as a base platform. The next section summarizes the requirements from both sections. 2.6 Summary The previous two sections described the requirements for a MVC for telemedicine and the base platform used to build it, the priorities of these requirements and the motivation behind these priorities. This section summarizes, orders and labels these requirements. Also some small cosmetic changes will be made. These changes include updating the requirements to MoSCoW terminology (priority A requirements use the term must, priority B the term should, etc), the term BMVC to MVC and some additional small changes to create a more uniform list.
The list on the next page will be used in the next chapters when evaluating and analyzing the existing platforms.
ID Requirement Priority A MVCA1 The platform must allow creation of a sub‐community. MVCA2 The platform must allow creation and management of profiles. MVCA3 It must be possible to restrict access to the sub‐community. MVCA4 The platform must be accessible using a desktop, notebook, tablet PCs and SmartPhone. Whenever required, for instance based on an in‐depth privacy and security analysis, MVCA5 information between endsystems (mobile devices and desktops) is exchanged in a security enhanced application protocol (such as https). The platform must have the ability to provide a different UI for devices with a limited screen MVCA6 size, such as mobile devices. MVCA7 The platform must support multiple languages. Different user roles must be supported by the MVC platform, including, but not limited to, MVCA8 patient, cardiologist, therapist, nurse, family member and friend. MVCA9 The platform must have the ability to fully customize the UI. MVCA10 The platform must have the ability to have user specific UI’s. The platform must allow configuration of sub‐community such that preferences and MVCA11 constraints can be made and stored regarding roles and services. MVCA12 The platform must be secure.
22 of 95
MVCA13 Any security leaks that are published must be fixed fast. MVCA14 The platform’s code must be backwards compatible. MVCA15 The platform must have recent updates. MVCA16 The platform must be free for non commercial use. MVCA17 The platform must be written in PHP or Java. MVCA18 The platform API must be well documented.
Priority B Users should have the possibility to get help in using the system, either through a context‐ MVCB1 aware help function or via (context‐aware) help‐desk. This help functionality is about help in using the system only. Users, especially patients, should have full understanding and insight in who is able to read MVCB2 what information about himself or herself, and can exercise control over who is able to see what within the context of a mobile virtual community. For mobile applications, the interaction / communication should be based on WSDL and MVCB3 SOAP. REST is considered a potential candidate for the (near) future. MVCB4 The platform should be able to send invitations to users to join a sub community. MVCB5 The platform should be able to send invitations to users to join the main community. MVCB6 The platform should be able to detect the type of device connected. The platform should have a UI specifically designed for devices with a limited screen size, MVCB7 such as mobile devices. MVCB8 The platform should have an UI in the Dutch language. MVCB9 The extensions useful to this project should be free. MVCB10 It should not be too complicated to build our own extensions.
Priority C There is the need for a translation service. Further decisions are needed so as to determine if MVCC1 this can be done off‐line or needs to be online (near real‐time), whether it must be human translation by an authorized translator etc. Whenever required (based on an in‐depth privacy and security analysis), health related data MVCC2 of patients should be stored in a secure manner in the MVC database. MVCC3 The platform should be able to detect the location of a mobile device. MVCC4 The platform should support databases from multiple vendors. MVCC5 The platform should offer support to build mobile applications.
Priority D MVCD1 The platform should be able to identify who should be alarmed in case of an emergency. The platform should be able to transfer viewing session without interruption. The platform should be able to support multiple devices associated with one role. Various types of support should be supported, for patients the four basic types of support MVCD2 relevant are: informational support, instrumental support, emotional support and feedback support. For the access and interaction with the Mobile Virtual Community Platform a dedicated mobile application needs to be deployed on the mobile device in use so as to take optimal MVCD3 advantage of the functionalities supported by the platform (such as timely notifications and the like).
23 of 95
In order to be implementation technology independents, standardized protocols for the MVCD4 interaction and communication between mobile device and the MVC access platform are required. The platform should be able to collect, store, stream and analyze the vital signs of the MVCD5 patient. Table 7: Base platform requirements 2.7 Conclusion This chapter started by defining the scope of this research and introduced 2 researches from which the requirements of this research were taken. The approach used to take these requirements, as well as the approach used to prioritize these requirements was also described. Next, the requirements from the researches were analyzed to determine their importance. Section 2.4 gives the results of this analysis ‐ the priority of a requirement and the motivation behind this requirement‐. Some additional requirements were introduced because they were outside the scope of the researches used for section 2.4. Section 2.5 described and prioritized these requirements Finally section 2.6 summarized, ordered and labeled all relevant requirements.
Now there is a complete set of requirements for the base platform. The priority A requirements will be used in chapter 3 to evaluate the existing platforms. In chapter 4, Priority A, B, and C requirements will be used for the score given to each platform. Finally, the Priority D requirements will be used in chapter 5 to create the scenario from which the use cases are derived.
24 of 95
3 Platform selection and evaluation
3.1 Introduction The previous chapter composed a set of requirements which will be used to evaluate existing VC builder platforms for their potential to be used as a base platform. This chapter composes and evaluates a list of potential VC base platforms using part of this set of requirements. Based on this evaluation, a set of platforms is composed to be analyzed in chapter 4.
First, section 3.2 gives the approach used to compose the list of potential base platforms and the approach used to evaluate these platforms. Section 3.3 starts the search for potential base platforms by defining 3 search directions in which to look for these platforms. Section 3.4 composes a set of search terms; First two of the 3 search directions are merged to simplify the search and for each of the two remaining directions this set is composed. Next, the search is carried out and the resulting list of primary and secondary sources is given. From these sources, a list of platforms found is composed. The next phase of the research is the evaluation of these platforms. To reduce the work required for this phase, an elimination approach of 2 rounds is used; first a quick evaluation using 5 requirements, followed by a complete evaluation. Section 3.5 evaluates the platforms using these 5 requirements which the platform must fulfill and are easily verifiable. Section 3.6 evaluates the platforms that met all 5 requirements using all priority A requirements. This section gives, besides the results of this evaluation, a small description of each platform, as well as some of its unique features. Using the results of the requirements evaluation, a list of platforms to be analyzed in chapter 4 is composed. At the end of this section, a small discussion concerning some of the requirements is done. Finally, section 3.7 gives a summary of the work done in this chapter and the results acquired. Approach This section describes the approach used for the composition of the list of potential base platforms and the evaluation of these platforms. First the approach used to compose the list of base platforms is described followed by the approach of the 2 steps of the evaluation. The following figure gives a schematic overview of the approach used:
Figure 3: Evaluation approach
Platform selection The goal of the search for potential base platforms is to find the names of potential base platforms, as well as to find a reference to the main site of that platform. In this search, two types of sources will be used. The first type of source is a primary source, in other words a source directly referring to a potential
25 of 95 base platform. The second type of source is a secondary source, in other words a source that has references to potential base platforms, but is not a base platform itself. By using these 2 types of sources, the number of potential base platforms to be investigated is maximized, and this research is made as thorough as possible.
For each type of source, a set of search terms is composed to find these sources. It is possible a search term for a primary source refers to a secondary source and vice‐versa, in which case the search approach for the latter will be used. Section 3.4 gives the search terms used.
The following figure describes the search approach used for both types of source.
Figure 4: Search approach
Primary sources The results of the search terms for primary sources contain 2 types of relevant results, platforms and secondary sources. If the result is a secondary source, the approach mentioned later in this section for the secondary sources is followed. If the result is not a secondary source, the source is checked for relevance, and if it is relevant, it is added to the set of platforms to be checked at the first round of the evaluation. A source can be considered not relevant for the following reasons: The source is not about a possible base platform. The source is already found earlier for this search term, and it is no longer relevant since it would introduce duplicate sources. This occurs most often when a source links to a sub site of a platform, not that main site. The source is outside the scope of the project, in most cases because the source is hosted and not self hosting. In section 1.3 the choice was made only to look for self hosting platforms, and hosted platforms, which can be found with the same search terms, are not considered relevant.
Secondary sources The results of the search terms for secondary sources are first checked if they were already investigated before with a different search term. If this is not the case, it is verified that the source is relevant. If this is the case, the source will be investigated and the platforms mentioned will be checked for relevance the same way the platforms mentioned for the search terms for the primary sources are checked. Once again, if the source is relevant, it is added to the set of platforms to be checked at the first step of the evaluation. A secondary source can be considered irrelevant for the following reasons: The source is not about a comparison site for a possible base platform.
26 of 95
The secondary source was already found for this search term, and it is no longer relevant since it would introduce duplicate sources.
For each type of source, each search term is entered into Google, and the first 50 results found are analyzed.
Round 1: Quick evaluation The first round consists of a quick evaluation of the platforms introduced at the platform selection that will be evaluated using a small set of requirements. The requirements were chosen because they have both mandatory and are easy to verify. All platforms will be evaluated using the following requirements: MVCA1: The platform must allow creation of a sub‐community. MVCA7: The platform must support multiple languages. MVCA15: The platform must have recent updates. MVCA16: The platform must be free for non commercial use. MVCA17: The platform must be written in PHP or java.
If a platform does not meet one of these 5 requirements, it is no longer a potential candidate and will thus not be evaluated at the priority A evaluation in section 3.6. Furthermore, if the research shows that for any reason a platform is unsuitable to be used, it will not be evaluated at the complete evaluation.
Round 2: Complete evaluation During the second evaluation round, each platform that met all 5 requirements from the first round has all the 18 priority A requirements from chapter 2 evaluated. The results of the evaluation are used to compose a list of platforms to be analyzed in chapter 4. Platforms that have a high fulfillment of the requirements are more likely to be added to the list than platform that has a low fulfillment of requirements; if a platform meets all the requirements it is likely to be added to that list. Not all requirements can be checked by researching the information given about a platform; some requirements need a working platform to be tested. In some cases there are 2 directions to get a working platform. Some platforms have a working demo on their website which can be used to evaluate the requirements. Another direction is to install the platform on a dedicated server. Installing a platform on a dedicated server has several advantages. First of all, there is full control over the platform; the demo sites often have limited control over all the administrator functionality and are reset every x minutes. Furthermore, these demo sites don’t allow new extensions to be installed. By installing the platform on a dedicated server these limitations do not exist. Also, not all platforms have a working demo on their website, and those platforms need to be installed anyway. Evaluating the requirements of some platforms on a demo site, and some on the dedicated server can lead to an unequal comparison. Therefore, every platform to be evaluated is installed on the dedicated server. 3.2 Search directions This section gives a short description of the 3 types of base platforms this research considers to be used as a base platform for developing extensions a MVC for telemedicine. The reason to not limit the search to the most obvious direction –community builders‐ is to not limit the options, and make this research as thorough and extensive as possible. This section also describes some of the advantages and disadvantages of each direction.
27 of 95
Community builder A Community builder is a piece of software designed to create online social networks. It offers services like profiles, group web pages, group blogging and friends. Usually they offer support to extend the existing functionality with new features making them the ideal potential candidates as a base platform.
Content Management Systems A Content Management Systems (CMS) is a piece of software designed for creating, publishing and modifying content on a website. A CMS is not designed to have typical online community features like profile pages and grouping. There are however several Content Management Systems that have extensions available that offer functionality to create online communities. One of the main advantages of using a CMS is that they are generally more popular than community builders, and have a more active support and developer community. Therefore, since they have a more active community, they are more extensive, more professional, and all in all more mature. One of the disadvantages is that a CMS, whose primary goal is to deliver content does not have community building as a primary goal and community building extensions are not always available. Even when extensions are available, extending those with new functionalities can be harder than extending a community builder, since you will be extending an extension, and where the CMS platforms are often designed to be extended (it is one of their features), the developed extensions often are not (they are designed to be an end product).
Enterprise portals While enterprise portals (EP) are not designed to be used as community builders, they have some interesting fundamental features. An enterprise portal page typically offers a framework that can be used to place different pieces of information on, these pieces are called portlets. A portlet is a pluggable UI software component that displays the data from a specific application. Each community can have its own portal, each portal having portlets specific for that community. This offers great flexibility for the community pages. Enterprise portals have some more interesting features. Since they are designed to be used in businesses where data is sensitive, data and user access control is one of the key features. Another feature is the provision of single sign on (SSO), which can be used by the extensions which are to be developed. If an enterprise portal can be found that also supports social networking, this portal can be used as a base platform for the MVC for telemedicine. If this social networking is offered by an extension to the enterprise portal, the disadvantage mentioned for CMS’s, extending an extension is also true for enterprise portals. 3.3 Platform selection The previous section split community builders and CMS with community builder extensions due to different features and approaches. However, due to their overlap in functionality they are often grouped in secondary sources and their search terms overlap. This research will follow this approach. Thus, the search for suitable base platforms is split into 2 directions: first community builders and CMS with community builder extensions will be researched followed by a research into enterprise portals. Both search directions will use the search approach described in section 3.2.
Search terms To find the primary sources several derivative terms for VC’s, such as “community builder” , ”social networking”, “social community”, “virtual community” and “online community” are used in combination with a term defining the requirement for a piece of software to build this virtual community such as “software” or “platform”. Enterprise portals are already pieces of software, so to find the primary sources for enterprise portals, adding the term “software” or “platform” was not required. However, there are 2 properties a typical enterprise portal does not have, which are required for the enterprise
28 of 95 portal to be suitable to be used as a base platform. First, a typical enterprise portal is not free, which is a requirement of the base platform, so the term “free” is added as a search term. Second, a typical enterprise portal does not have VC functionality, so the terms “social” and “CMS” were introduced.
To find the secondary sources, a set of search terms to specifically find secondary sources is introduced. These terms were “comparison”, “review” and “list of”. To find the platforms, these terms were combined with the terms to find the primary sources of that type.
This results in the following set of search terms for each type of base platform and source:
Primary source search terms Secondary source search terms Community community Builder community software comparison builder & community software community software review CMS with community builder platform list of community software community community builder software social networking software builder social networking platform comparison extension social network engine social networking software review social networking software list of social networking software social community builder software virtual community software social community builder platform comparison virtual community platform virtual community software review virtual community software list of virtual community software online community builder online community builder online community builder platform comparison online community builder software online community builder review list of online community builders Enterprise free enterprise portal list of free enterprise portals portal enterprise portal cms free enterprise portal comparison enterprise cms free enterprise portal review social enterprise portal list of enterprise portals enterprise portal comparison enterprise portal review
Table 8: Platform selection search terms
Each search term was entered into the Google [15] search engine separately. For each search term, the first 50 results were analyzed. While doing the research, it became clear that after 50 results the number of relevant results decreased significantly. The approach described in section 3.2 was used to find the primary and secondary sources. A total of 26 secondary sources was found, a complete list of these sources is given in appendix A. The search results can be found in appendix B.
Combining the relevant platforms found at these secondary sources and the primary sources resulted in the following platforms found:
29 of 95
Community builder & community builder Enterprise portal extension platform Around Me Exo platform Anahita GateIn Dolphin Hippo CMS Community Engine Jetspeed 2 Drupal ‐ Commons Liferay Dzoic Plone Elgg Impress CMS Inoshi Jcow Joomla lovdbyless Mahara Mugshot NetworkX Newsgator Oxwall phpFox phpibazi socialengine Telligent evolution Tiki Wiki Wordpress‐ buddypress Xoops‐Yogurt Table 9: Potential platforms
References to these primary sources can be found in appendix A.
Summary This section introduced a set of search terms used to find potential base platforms. Each search term was entered into Google, and the results were analyzed, which lead to a number of primary and secondary sources. These sources were used to compose a list of 24 Community builder & CMS with community builder extensions and 6 Enterprise portals. These platforms are the potential base platforms and will be evaluated in the next section.
Discussion In some cases, a platform was mentioned at comparison sites, but was not found in any of the Google search sources. Two possible reasons for this difference were found: A platform is a CMS with an extension for community building. Since this extension is often not as popular as a CMS or community builder platform, it is not mentioned at the first 50 Google search results. A secondary source however investigates platforms with a certain functionality, in which the CMS with the extension is found Some sources are outdated, and some platforms mentioned are no longer maintained, and have become unpopular. Google does not show these platforms at the first 50 results.
The following figure gives a schematic overview of the current position in the elimination approach. At the end of each round of the elimination, this figure will be given.
30 of 95
Figure 5: Platform composition summary 3.4 Round 1: Quick evaluation This section gives the results of the first round of the evaluation, the quick evaluation round. For every platform found in the previous section, the following table is used to describe the results of the quick evaluation of that platform: G1 G2 G3 G4 G5 To next Name Comments round
The G1 – G5 fields describe if the platform meets the 5 requirements used in the quick evaluation. These requirements are:
G1: The platform must be free for non commercial use G2: The platform must allow creation of a sub‐community. G3: The platform must support multiple languages. G4: The platform must have recent updates G5: The platform must be written in PHP or Java
If one of the requirements is not fulfilled, the investigation of that platform is terminated to reduce the work required. This leads to empty requirement fields in the table with the results. Any comments concerning a platform, or a further explanation of the outcome of the evaluation of a requirement is put in the comments field. Finally, the conclusion of the quick evaluation, whether a platform should be evaluated for priority A requirement in the next section, is put in the last field.
Community builders & CMS with community builder extension In the following table the results of the evaluation of the 5 quick evaluation requirements are given for the Community builders & CMS with community builder extension platforms:
Free/non Sub‐ Multiple Recent Next PHP / Java commercial community languages updates round No* Yes Around Me * Discontinued 2 years ago No Anahita Yes Yes Yes Yes Yes Yes Dolphin Yes Yes Yes Yes Yes Yes No* Community Engine *Ruby on Rails No Drupal ‐ Commons Yes Yes Yes Yes Yes Yes Dzoic No Yes Yes Yes No Elgg Yes Yes Yes Yes Yes Yes Yes No* Yes Yes Yes Impress CMS * With the profile addon, sub‐communities called tribes should be able to be created. However, No this did not work.
31 of 95
Free/non Sub‐ Multiple Recent Next PHP / Java commercial community languages updates round Inoshi Yes No No Jcow No No Yes No* Yes Yes Yes Joomla * Grouping is only possible with paid extensions, such as Community Builder [16]. No lovdbyless Yes No Yes No Mahara Yes Yes Yes Yes Yes Yes Mugshot Yes No No NetworkX Yes Yes No No Newsgator No Yes Yes No Oxwall Yes Yes Yes Yes Yes Yes phpFox No Yes No phpibazi Yes No Yes No socialengine No No Telligent evolution No Yes Yes No Yes No* Yes Yes Yes * It is possible to group people by adding them to a permission group, and limiting access to Tiki Wiki pages/modules to this permission group. However, this is not a straightforward approach and No will most likely lead to problems. Therefore, Tiki Wiki is given a no on the ‘creation of a sub community’ requirement. Wordpress ‐ Yes Yes Yes Yes Yes Yes buddypress Yes No Yes Yes Yes Xoops‐Yogurt No Table 10: Community builders & CMS with community builder extension
Enterprise portals
The following table gives the results of the evaluation of the 5 quick evaluation requirements for the Enterprise portals.
Free/non Sub‐ Multiple Recent PHP /
commercial community languages updates Java Exo platform No Yes Yes Yes Yes No GateIn Yes Yes Yes Yes Yes Yes Hippo CMS Yes No Yes Yes Yes No Yes Yes No* Yes Jetspeed 2 * Last update Q1 2011. Q2 and Q4 releases were never released. So no updates in over 1 year No Liferay Yes Yes Yes Yes Yes Yes Yes Yes No* Plone *Python No Table 11: Enterprise portals
32 of 95
There are 9 platforms that met all 5 requirements described earlier. These platforms are: Anahita Dolphin Drupal – Commons Elgg Mahara Oxwall Wordpress – Buddypress Liferay GateIn
Conclusion This section performed the first round of the evaluation. Using 5 requirements, the initial list of 24 community builder & CMS with community builder extension platforms at the start of this section is reduced to 7 platforms; these platforms will be investigated in the next round. From the initial list of 6 enterprise portals at the start of this section, 2 platforms will be investigated in the next round. This leads to a set of 9 platforms in total.
Figure 6: Quick evaluation summary 3.5 Round 2: Priority A evaluation The previous section did the first round of the evaluation by introducing 5 requirements all platforms must meet. This section continues the evaluation of the platforms for the 7 community builder & CMS with community builder extension platforms and 2 enterprise portals that met all requirements from the first round. For each platform, the priority A requirements are evaluated and the results of this evaluation are given. A small summary of the platform together with a screenshot of the platform and a description of the experiences with the platform are also given. The order in which platforms are evaluated is based on the number of times they were mentioned in the sources, starting with platforms mentioned most often. If a platform meets all priority A requirements it will be analyzed in the next chapter. At the end of the section a list of all platforms to be analyzed in chapter 4 is composed. Appendix C gives a summary of the fulfillment of the priority A requirements for all platforms.
33 of 95
To reduce the size of the tables describing the results of the priority A evaluation, an abbreviated version of the requirements is used. The table on the next page gives the original requirement and the abbreviated requirement:
Original requirement Abbreviated requirement MVCA1: The platform must allow creation of a sub‐community. MVCA1: Sub‐community creation MVCA2: The platform must allow creation and management of profiles. MVCA2: profile creation and management MVCA3: It must be possible to restrict access to the sub‐community. MVCA3: restrict access to sub community MVCA4: MVCs must be accessible using a desktop, notebook, tablet PCs and SmartPhone. MVCA4: Accessibility MVCA5: Whenever required, for instance based on an in‐depth privacy and security MVCA5: Https support analysis, information between endsystems (mobile devices and desktops) is exchanged in a security enhanced application protocol (such as https). MVCA6: The platform must have the ability to provide a different UI for devices with a MVCA6: Different UI for mobile devices limited screen size, such as mobile devices. MVCA7: The platform must support multiple languages. MVCA7: Multiple languages MVCA8: Different user roles must be supported by the MVC platform, including, but not MVCA8: Different roles limited to, patient, cardiologist, therapist, nurse, family member, friend. MVCA9: The platform must have the ability to fully customize the UI. MVCA9: Fully customize UI MVCA10: The platform must have the ability to have user specific UI’s. MVCA10: User specific UI MVCA11: The platform must allow configuration of sub‐community such that preferences MVCA11: Constraints on sub‐communities and constraints can be made and stored regarding roles and services. MVCA12: The platform must be secure. MVCA12: Secure platform MVCA13: Any security leaks that are published must be fixed fast. MVCA13: Security leaks fixed fast MVCA14: The platform’s code must be backwards compatible. MVCA14: Backwards compatibility MVCA15: The platform must have recent updates. MVCA15: Recent updates MVCA16: The platform must be free for non commercial use. MVCA16: Free MVCA17: The platform must be written in PHP or Java. MVCA17: PHP or Java MVCA18: The platform API must be well documented. MVCA18: Well documented API Table 12: Abbreviated requirements
3.5.1 Elgg Elgg [17] is an open source social networking engine developed by the Elgg Foundation project. Elgg is free to use under the terms of the GNU General Public licensev2 [18] and MIT License [19]. Elgg has several features which make it an interesting option as a base for the MVC for telemedicine. It has a flexible and abstract data model, which can make extending it easier. It also has the possibility to set access control on all entities in this data model, thus allowing very granular access to sensitive data. It has a web services API which allows simple communication with external data sources. Finally, it was mentioned the most at the sources.
34 of 95
Figure 7: Elgg
Out of the box, Elgg has a sleek and simple blue and white design. It has several buttons for basic functionalities like groups and members. On the front page a list with recent activities and a log in form are shown. After logging in, access restricted data, like private groups and members are shown. The administrator panel is simple – to the point where it is too simple and missing some features, at least compared to the other VC’s. One of the strengths –but also one of its possible weaknesses‐ is the fact that every extension in Elgg is a plug‐in, from the groups to the UI and from the garbage collector to the language packs. All extensions are in 1 list, which makes the plug‐in page a bit cluttered.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, HTTPS login is supported, however it is not possible to customize which information is sent using HTTPS MVCA6: Different UI for mobile devices Yes MVCA7: Multiple languages Yes MVCA8: Different roles No, this might be done using access controls, but not out of the box MVCA9: Fully customize UI Yes MVCA10: User specific UI Yes MVCA11: Constraints on sub‐communities No MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, No guaranteed backwards compatibility between the major releases . [20] MVCA15: Recent updates Yes, the latest release was less than 1 month old MVCA16: Free Yes, GPLv2 MVCA17: PHP or Java Yes, it is written in PHP MVCA18: Well documented API Yes, API and several tutorials available. [21] Table 13: Elgg priority A evaluation
35 of 95
3.5.2 Dolphin Dolphin [22]is a software package for building social networks developed by Boonex. It is free to use after registering. It was considered in the previous research [10]done by this C. Dulawan as a base platform for the MVC for telemedicine. The research concluded that Dolphin did not meet the requirements at the time. However, this research was done in 2008, which is 5 years ago. Since then, the platform has undergone continuous development, and the requirements might have been met now, so it was decided to take another look. One of the interesting features is that Dolphin offers mobile apps for iPhone and Android. Also, dolphin offers the usual features of a VC builder, like grouping, forums, and a selection of extensions to offer more usability.
Figure 8: Dolphin
The first thing that draws attention after installing Dolphin is a front‐page that shows a lot of items, from all members to Boonex news. These items make the front page look cluttered. Fortunately, they can be removed from the admin page. The Boonex banners however cannot be removed unless a paid subscription is acquired. Navigating the website does not feel intuitive; sometimes a great amount of time is spent finding a simple feature, like the admin page. The reviews about Dolphin are mixed. On the one hand people like the features Dolphin offers, and the fact that it is free. On the other hand people claim the code is not nicely written, and making your own extensions can be hard.
36 of 95
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, it can be set per page, but only by editing the code. [23] MVCA6: Different UI for mobile devices Partially, it is possible to offer a specific UI, so once the type of device is detected, a different UI can be provided MVCA7: Multiple languages Yes MVCA8: Different roles Yes MVCA9: Fully customize UI Partially, it is not possible to remove the Boonex logo unless a paid subscription is acquired MVCA10: User specific UI Yes MVCA11: Constraints on sub‐communities No MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, the new version will have a major overhaul, and will most likely not be backwards compatible, but until then it was mostly backwards compatible [24] MVCA15: Recent updates Yes, the last update was less than 1 month old MVCA16: Free Yes, but only with the Boonex logo on every page MVCA17: PHP or Java Yes, it is written in PHP MVCA18: Well documented API Partially, to our knowledge, there is no API page. A developer has to look into the source code to find it Table 14: Dolphin priority A evaluation
3.5.3 WordPress – BuddyPress WordPress [25] is one of most popular blogging tools currently available. It is distributed under the GPLv2 License. WordPress is not suitable to be used as a community builder by itself, but with the BuddyPress [26] extension it becomes a potential base platform. BuddyPress is an extension to WordPress which adds user registration, message posting and grouping.
Figure 9: WordPress
37 of 95
The default theme of WordPress shows a blue and white UI, comparable to Elgg. The top menu is easy to navigate, with just 5 buttons. Creating a new group page in WordPress is hard. Since WordPress is one of the most popular blogging tools around, a wide range of extensions and themes are available.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Yes, by using [27] MVCA6: Different UI for mobile devices Yes MVCA7: Multiple languages Partially, WordPress does support multiple languages, but not at the same time, at least not out of the box MVCA8: Different roles Yes MVCA9: Fully customize UI Yes MVCA10: User specific UI Partially, there are add‐ons to have user specific UI's, but these have no recent updates [28] [29] MVCA11: Constraints on sub‐communities No MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, not always backwards compatible, as proven in [30]and [31] MVCA15: Recent updates Yes, the latest update is less than 3 months ago MVCA16: Free Yes, releases under GPLv2 MVCA17: PHP or Java Yes, written in PHP MVCA18: Well documented API Partially, documentation is available, but only inside the code Table 15: WordPress priority A evaluation
3.5.4 Mahara Mahara describes itself as follows on their website: First established in mid 2006, the Mahara project started as collaborative venture funded by New Zealand's Tertiary Education Commission's e‐learning Collaborative Development Fund (eCDF), involving Massey University, Auckland University of Technology, The Open Polytechnic of New Zealand, and Victoria University of Wellington. Since July 2007, Kineo Pacific has worked with Catalyst IT to guide the further development of Mahara. It is distributed under the GPL3 license.
Mahara [32] is a highly modular, extensible personal learning environment. It is aimed towards building virtual communities in the field of education and offers the usual features of a VC builder: profiles, groups and forums as well as some features unique in the field of education, such as institutions and student ID’s. If Mahara would be used as a base platform these features should be removed.
38 of 95
Figure 10 :Mahara
The default theme –Mahara comes with 7 themes‐ shows a clear green and white UI. The default page is the user’s dashboard, which shows an activity stream and the actions a user can take, such as joining a group. At the top of the screen a 2 layer menu is shown which is easy to navigate. New pages can be made using a drag and drop interface where blocks can be dropped onto a page. It is also possible to restrict access to these pages to users, groups or institutions.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, it is possible to set https access per page via the apache configuration, but there is no extension available to do so from the platform itself MVCA6: Different UI for mobile devices Partially, default theme is compatible for mobile devices MVCA7: Multiple languages Yes MVCA8: Different roles Partially, it is possible to give custom roles by inserting them into the database MVCA9: Fully customize UI Yes MVCA10: User specific UI Yes MVCA11: Constraints on sub‐communities Per community, it is possible to set which group of users can view which page MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, no guaranteed backwards compatibility between the major release MVCA15: Recent updates Yes MVCA16: Free Yes MVCA17: PHP or Java Yes, written in PHP MVCA18: Well documented API Partially, there are developer pages but no real API [33] Table 16: Mahara priority A evaluation
39 of 95
3.5.5 Anahita Anahita [34] is an open source social networking platform developed by Rmd Studio Inc and Peerglobe Technology Inc. It is distributed under the GPL3 license. Originally based on a modified version of Joomla! 1.5, it is now a standalone platform where Joomla code is being replaced by custom code. With the groups extension it is possible to create sub‐communities.
Figure 11: Anahita
The functionality of Anahita is limited. While you can make groups, you cannot add pages to this group. It is not possible to create custom roles, nor limit access to parts of the group to certain roles. Furthermore, it is not possible to invite users to join the main community, or ‐to our knowledge‐ invite users to join a sub‐community.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, it is possible to set https access per page via the apache configuration, but there is no extension available to do so from the platform itself MVCA6: Different UI for mobile devices Yes MVCA7: Multiple languages Yes MVCA8: Different roles No MVCA9: Fully customize UI Yes MVCA10: User specific UI No MVCA11: Constraints on sub‐communities No MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility No MVCA15: Recent updates Yes, the latest release is less than 1 month old MVCA16: Free Yes MVCA17: PHP or Java Yes, written in PHP MVCA18: Well documented API Yes Table 17: Anahita priority A evaluation
40 of 95
3.5.6 Drupal – Commons Drupal [35] is an open source CMS distributed under the GPL. It offers the possibility to be extended by making modules. One of the modules is already developed is Commons [36], which adds profiles and groups to Drupal. Commons is open source and developed by Acquia. With thousands of extensions available, Drupal is one of the most complete platforms available.
Figure 12: Drupal
After installation multiple themes are available. The theme shown in the screenshot above is the “Commons Connect” theme. At first glance Drupal looks like any community builder, there are groups, profiles and an activity stream. However, when you start to look at the administration page, Drupal’s strength becomes more apparent. There are a lot of features available for managing users, group and other functionalities. With available extensions, Drupal has a strong User‐Access Control (UAC). Out of the box, Drupal did not meet several requirements. However, for most of them, an extension was available to fulfill the requirement.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Yes, with add‐ons it is also possible to set what information should be sent using https. [37] MVCA6: Different UI for mobile devices Yes, with [38] MVCA7: Multiple languages Yes MVCA8: Different roles Yes, With OG user roles you can set user roles per sub community. [39] MVCA9: Fully customize UI Yes, Multiple themes. Able to configure the menu/parts of the site from the UI. And finally, since
41 of 95
it is open source, anything can be edited. MVCA10: User specific UI Yes, it is possible to set the UI per user MVCA11: Constraints on sub‐communities Yes, with OG user roles you can set roles per user sub community. [39] MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, no backwards compatibility between major releases. [40] MVCA15: Recent updates Yes, last update less than a month old MVCA16: Free Yes, GNU public license MVCA17: PHP or Java Yes, written in PHP MVCA18: Well documented API Yes, well documented API and reference available Table 18: Drupal priority A evaluation
3.5.7 Oxwall Oxwall [41] is a free open source software package for building social networks. It is operated by the non‐profit Oxwall foundation. It offers the usual features of a VC builder, like group pages, profiles and a newsfeed. There is support for multiple languages and themes and a simple User‐Group‐Role model. Around 150 extensions and some themes are available.
Figure 13: Oxwall
The default theme used by Oxwall has a clear and intuitive design. The built‐in drag and drop editor makes building new pages fast and easy. The default page is the user’s dashboard, it shows some links to other pages and news feed showing friend and group updates. However, when the evaluation is done,
42 of 95
the limitations of the platform become clear. Oxwall has no developer API, nor is it possible to set different UI’s per user. Furthermore, it is not clear if the code is backwards compatible.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, the platform should work on https, but no functionality to add https to specific parts of the platform MVCA6: Different UI for mobile devices Partially, work in progress MVCA7: Multiple languages Yes MVCA8: Different roles Yes MVCA9: Fully customize UI Yes MVCA10: User specific UI No MVCA11: Constraints on sub‐communities No MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Unclear, no information can be found about backwards compatibility MVCA15: Recent updates Yes, the latest release was 3 months old MVCA16: Free Yes MVCA17: PHP or Java Yes, it is written in PHP MVCA18: Well documented API No API available Table 19: Oxwall priority A evaluation
3.5.8 Liferay Liferay Portal Community Edition [42] is a free, open source enterprise portal developed by Liferay Inc. It is one of the few free enterprise portals available. Even though it is an enterprise portal, it still offers the usual functionality of a Community builder like group pages, profiles and an activity stream.
Figure 14: Liferay
Installing Liferay is quite straightforward when using a bundled edition, just download, unzip and run. Making groups in Liferay is done different compared to the previous tested platforms. At the previous
43 of 95 platforms, when making a new group, a new instantiation of the group webpage template was made. At Liferay, when creating a new group, the developer creates a whole new set of web pages, and gives users access to these web pages. An advantage of this approach is the increased flexibility since you can now change all the features of a group page. A disadvantage of this approach is the additional overhead when creating a new group. Liferay offers a very strong UAC. For each element on a group page, you can set which user or group can do what action with that element. Another advantage of Liferay is its extensive admin panel.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, best solution seems to be to use an apache server and then forward it using virtual servers. An out‐of‐the‐box solution is not available. [43] MVCA6: Different UI for mobile devices Yes. It is possible to set mobile themes. It is possible to limit access to certain functionalities to mobile/fixed. It is possible to set mobile device rules MVCA7: Multiple languages Yes MVCA8: Different roles Yes, globally and per community MVCA9: Fully customize UI Yes, multiple themes and multiple layouts offer flexibility regarding the UI. 100% customization could not be verified nor invalidated MVCA10: User specific UI Yes MVCA11: Constraints on sub‐communities Yes MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, no backwards compatibility between the major releases, deprecation process between them. [44] MVCA15: Recent updates Yes, latest release less than 3 months old MVCA16: Free Yes MVCA17: PHP or Java Yes, written in Java MVCA18: Well documented API Partially, there is a generated javadoc, but the actual documentation about what the classes/functions do is limited Table 20: Liferay priority A evaluation
3.5.9 GateIn GateIn UXP [45] is an open source enterprise portal based on the GateIn Portal and provides additional applications to build social intranets. GateIn Portal itself is an open source website framework sponsored by eXo and Red Hat. Like Liferay, communities are made by creating a new set of websites called a portal, and giving a user access to these websites. The same advantages and disadvantages of this approach as mentioned in section 3.6.8. still apply. GateIn portal offers the usual features for an enterprise portal, such as SSO, user and group management and multiple templates. The UXP extension converts the enterprise portal into a VC, by adding functionality like a social activity stream.
44 of 95
Figure 15: GateIn
GateIn, like Liferay, comes with a sample community to show its capabilities. Creating a new community is straightforward. One aspect where GateIn differs from the other platforms is the lack of an administration panel. The administration is done via a menu which is accessible for administrators on any page. The options available in this menu are limited.
Priority A requirement Requirement met MVCA1: Sub‐community creation Yes MVCA2: profile creation and management Yes MVCA3: restrict access to sub community Yes MVCA4: Accessibility Yes MVCA5: Https support Partially, Https is supported, but only for the complete platform, not per page MVCA6: Different UI for mobile devices Partially, work in progress https://community.jboss.org/wiki/GateInMobileSpecifications MVCA7: Multiple languages Yes MVCA8: Different roles Yes MVCA9: Fully customize UI Yes MVCA10: User specific UI Maybe. The reference guides claims it is possible, and refers to the user guide on how it should be done. The user guide contains no information about user specific UI's. So this requirement could neither be confirmed not invalidated MVCA11: Constraints on sub‐communities No MVCA12: Secure platform MVCA13: Security leaks fixed fast MVCA14: Backwards compatibility Partially, Backwards compatible within every major release, no guarantees between major releases MVCA15: Recent updates Yes MVCA16: Free Yes MVCA17: PHP or Java Yes, written in Java MVCA18: Well documented API Yes, API [46]and reference guides available Table 21: GateIn priority A evaluation
3.5.10 Summary This section started with 9 potential base platforms. A small summary of each platform was given, together with a screenshot of the platform and a description of the experiences with the platform. Each platform was evaluated using priority A requirements. Based on the results of this evaluation, the platforms can be put into 3 groups: Platforms meeting all requirements. Platforms meeting all requirements, except the requirements concerning roles and privileges. Platforms not meeting one or more requirements besides the requirements concerning roles and privileges.
45 of 95
For each group, a small summary of that group and the platforms belonging to that group are given.
Platforms meeting all requirements. These platforms met all priority A requirements, and will therefore be analyzed in chapter 4. The following platforms belong to this group: Drupal Liferay
Platforms meeting all requirements except the requirements concerning roles and privileges. These platforms met all requirements except 2 requirements concerning roles and privileges. The requirements concerned are “MVCA8: Different user roles must be supported by the MVC platform, including, but not limited to, patient, cardiologist, therapist, nurse, family member, friend.“ and “MVCA11: The platform must allow configuration of sub‐community such that preferences and constraints can be made and stored regarding roles and services.”. Based on the requirements these platforms should not be further investigated, since all priority A requirements are mandatory and must be met as defined in chapter 2. But since the majority of the platforms are in this group, the amount of platforms to be analyzed in the next chapter would be too limited. Excluding these platforms now might exclude a platform that has other ‐greater‐ advantages and should not be excluded. This issue is further discussed in section 3.6.11.
The following platforms belong to this group: Elgg Dolphin Mahara WordPress GateIn
Platforms not meeting one or more requirements besides the requirements concerning roles and privileges. These platforms did not meet some priority A requirements besides MVCA8 and MVCA11 and are considered unsuitable and will thus not be analyzed in chapter 4. There are 7 platforms that are more suitable according to the requirements and the impact of the exclusion of these platforms is acceptable. The following platforms belong to this group: Anahita Oxwall
Another aspect to be discussed is the fact that MVC12 and MVC13 are not answered for any of the platforms. No approach could be found to objectively answer these requirements, and they are therefore excluded from the evaluation. This issue is further discussed in the next section.
3.5.11 Discussion This section discusses the two issues concerning the evaluation of the priority A requirements in the previous section. The first issue to be discussed was mentioned in the previous section concerning roles and privileges. The second issue to be discussed is about the requirements concerning security.
46 of 95
Roles and privileges The previous section mentioned 5 platforms that met all requirements except 1 or 2 requirements concerning roles and privileges, MVCA8 and MVCA11. If the requirements definition from section 2.3 would be taken as given, these platforms should be excluded, since these requirements were defined as requirements the platform must meet. These are several reasons that led to the decision to include these platforms nonetheless. The goal of this research is to find the most suitable base platform. To find the most suitable platform, some requirements were introduced. To be able to objectively exclude platforms from the analysis from chapter 4, the decision was made to require that all priority A requirements must be met. However, it is possible a platform does not meet one of the priority A requirements, but scores significantly better on the other requirements. This platform would then be more suitable, but would still be removed from the analysis. In this case, there are 5 platforms that do not meet one specific (and in the case of Elgg, 2, where the other requirement, MVCA8, is related) requirement, MVCA11. Therefore, it was decided to exclude these 2 requirements from the requirements that eliminate a platform for further investigation. In the analysis in the next chapter, these 2 requirements will still be included in the score. By using this approach, more platforms are still potential candidates, but the platforms not meeting these two requirements do receive a disadvantage in the score of the analysis of chapter 4. If a platform does have other advantages that would make it a more suitable platform, this will also manifest in the score of this analysis.
The following table summarizes for each platform which feature related to roles and privileges is implemented and which feature isn’t. Also for MVCA8 and MVCA11 the corresponding feature is given.
Anahita Elgg Dolphin Mahara Oxwall Drupal WordPress Liferay GateIn Yes, Yes, Admin, Multiple roles Yes Admin Yes staff and Yes Yes Yes Yes Yes
and user user Via insertion Custom roles MVCA8 No No Yes into the Yes Yes Yes Yes Yes database Yes, Yes, user Roles per sub Yes, user Member, No No and No Yes Yes Yes community and admin Mod and admin admin Custom roles Via insertion Yes, with per sub No No No into the No OG_user_roles No Yes Yes community database extension Privileges per Yes, Yes, with role per sub No No some No No OG_user_roles No Yes Yes community privileges extension Custom Yes, with privileges per No No No No No nodeaccess Yes Yes Yes role extension It is possible Yes, with Custom to restrict nodeaccess privileges per MVCA11 No No No access to No and No Yes No role per sub pages to OG_user_roles community groups/users extensions Table 22: Platform roles evaluation
Security In the set of requirements, two requirement concerning security are listed: “MVCA12: The platform must be secure.” and “MVCA13: Any security leaks that are published must be fixed fast.”. Security is an important issue, but for several reasons, it was impossible to give an objective score to each platform. These requirements were therefore excluded from the round 2 evaluation, and will not be analyzed in
47 of 95 the next chapter. In this section, two possible approaches to give an objective score are given, and a discussion is done why these approaches cannot be used.
Approach 1: count number of bugs The most straightforward approach to determine if a platform is safe is to count the number of bugs reported. Most security issues come from unresolved bugs in the code. Especially when a bug is reported in public and therefore known to a bug abuser, but not yet fixed, the risk of that being exploited is great. Therefore, the number of reported and unresolved bugs could be used to determine the number of security issues, and thus the security of the platform.
Elgg, Mahara, Drupal, WordPress, Liferay and GateIn have a bug tracker. The reported bugs from the bug tracker could be counted to get a result. The table on the next page shows the number of open and closed issues for each platform, both for the critical, major and the less important bugs (minor and trivial). A bug is considered open when it is unresolved, not yet fixed or not yet closed otherwise.
Anahita Elgg Dolphin Mahara Oxwall Drupal WordPress Liferay GateIn [47] [48] [49] [50] [51] [52] [53] [54] Number of major bugs 863 330 1050 1661 3571 Number of open major bugs 73 36 300 143 379 Number of closed major bugs 790 294 750 1518 3192 Number of critical bugs 193 22 3850 386 896 Number of open critical bugs 9 2 98 18 52 Number of closed critical bugs 184 20 3752 368 844 Table 23: Platform number of bug reports
Anahita, Dolphin and Oxwall did not have a bug tracker available. We could not get the GateIn bug tracker to accept custom queries, so it was impossible to determine the number of open and closed bugs.
There are several reasons why this table cannot be accurately used to determine how secure a platform is: 1. There is no automated functionality to verify if a bug is exploitable or concerning security at all. Analyzing all bug reports for all platforms would require too much work. 2. Some platforms are more extensive than others, and will therefore have more bug reports. 3. Some platforms are more popular than others, and will therefore be used more often, and bugs will be reported more often. 4. The time between the first bug report and now might differ per platform; therefore some platforms will have more bugs because they are older. This problem could be solved by only taking the bug reports after a certain date which is the same for all platforms. This date has to be chosen such that every platform is already using the bug reporting system at this date.
These 4 reasons lead to the conclusion that it is impossible to create an objective result based on the results of table 23.
Approach 2: research the effort put into security Another approach is to research how much effort each platform puts into security. But once again, due to the difference in scope and popularity, the results will be hard to compare. Reason 2 and 3 from the previous paragraph also apply here, if a platform is more poplar and more people use it, hackers have more potential gain from hacking these platforms. Also, if a platform is more extensive, the chance of finding a potential exploit is larger. Therefore, a large popular CMS like Drupal or WordPress is forced to
48 of 95 put more effort into security than a less popular platform like Elgg or Mahara. How much more effort these platforms should put into security is hard to give an objective statement about. All of the 9 platforms put at least some effort into security.
To be able to give an objective statement about the requirement, an extensive research would have to be done which considers all the aspects mentioned earlier in this section. The work required for this research would be disproportional to its importance; it influences only two requirements. Therefore, doing a thorough research on the security of the platforms is considered outside the scope of this research. Since an approach to get an objective verdict about the security of a platform could not be found, the requirements concerning security, MVCA12 and MVCA13 have been excluded from the evaluation in section 3.6. Nor will these 2 requirements be taken into account in chapter 4, despite the fact these two requirements are priority A requirements. 3.6 Conclusion This chapter started by describing the approach used to find and evaluate potential base platforms. Three directions to look for potential platforms were defined, followed by search terms used to find these platforms and resources mentioning these platforms. The resulting primary and secondary sources were listed, from which a list of potential base platforms was composed. Next, a 2 round evaluation of the found platforms was done to reduce the list of platforms to be analyzed in the next chapter. In the first round, 30 platforms were evaluated using 5 requirements. 21 of the 30 platforms were eliminated for further investigation in the next round. In the second round, the 9 remaining platforms were evaluated using all priority A requirements. From these 9 possible platforms, 2 platforms initially passed this second round of the evaluation, and another 5 platforms passed the evaluation after some consideration. These 7 platforms will be analyzed using all requirements in the next chapter: Elgg Dolphin Mahara Drupal WordPress GateIn Liferay
Figure 16: Priority A requirements evaluation summary
49 of 95
4 Platform analysis
4.1 Introduction The previous chapter composed a list of potential base platforms, and by using the priority A requirements from chapter 2, this list was reduced to 7 platforms. This chapter attempts to reduce the list of potential platforms to 1 platform, which would be the most suitable platform to be used as a base platform.
The chapter starts by describing the approach to find this most suitable platform using a Multi Criteria Analysis (MCA) [55]. Section 4.2 gives the motivation to use a MCA, as well as the approach used for this MCA. Section 4.3 executes this approach, and gives the results of this analysis. This analysis will give one or more suitable platforms. A MCA only gives an indication and not a final result, so the results have to be verified. This verification is done, and the results are given in section 4.4. Section 4.5 gives the conclusion of this verification, and thereby the conclusion of chapter 4. 4.2 Approach Chapter 2 composed a set of requirements and grouped these requirements into 5 groups, priorities A‐ E. From these 5 groups, priority D and E are not relevant in the analysis of the base platforms, either because they are specific for a MVC for telemedicine and not relevant for a base platform or are obsolete. The requirements of remaining three groups, priorities A,B and C will be used in the analysis of the platforms done in this chapter using a Multi Criteria Analysis. A Multi Criteria Analysis can be used to solve problems involving multiple criteria; in the case of this research, each requirement is a criterion. Solving is in this case interpreted as finding the best candidate, or best platform. A MCA can use multiple methods to get an objective and verifiable result. The goal of this MCA is to give each platform a score, from which a conclusion concerning the most suitable platform(s) can be drawn.
Grading First, for each platform, each requirement is given a grade on a three point scale depending on how well that requirement is met. If a requirement is completely met, it receives a grade of 2. If a requirement is not met, it receives a grade of 0. There are three occasions for a requirement to receive a grade of 1.First; if a requirement is partially met it will receive a grade of 1. Next, if a requirement will most likely be met in the future (when there is work is progress) it will also receive a grade of 1. Finally, if a requirement is met now but is expected not to be met in the future (functionality supporting the requirement no longer maintained) it will also receive a grade of 1. These grades will be used in the comparison methods of the MCA.
Dominance analysis A logical first method would be to do a dominance analysis. The goal of a dominance analysis is to find candidates –in this case platforms‐ that perform equal or better on all criteria –in this case requirements‐. If platform A would score at least equal on all requirements compared to platform B, and has at least 1 requirement where it scores higher than platform B, the logical conclusion is to exclude platform B. Platform B has no advantage over platform A and Platform A would dominate platform B. This is a straightforward way to exclude platforms to reduce the platforms to be analyzed. This approach however has some drawbacks. The main drawback is that a dominance analysis might exclude platforms that should not be excluded because the difference is small. If platform A would be the most suitable platform, and a platform B would score equal to platform A on all requirements except for one, then the dominance analysis would exclude platform B from the conclusion of the MCA, while the
50 of 95 difference between these platforms is so small they are still both potential base platforms. The requirements are not the only factors that determine if a platform is most suitable, they provide a good indication and are verifiable, but there are other factors, for example the use cases investigated in chapter 5. The goal of the MCA is to find the most suitable platform, or if the difference between multiple platforms is too small, find the most suitable platforms. The case study from chapter 5 would then give the final conclusion which platform is most suitable. So if only a dominance analysis is done, the conclusion of the MCA would be different from the expected conclusion drawn. Nevertheless, a dominance analysis is a powerful method, and will still be done, since its results are independent of any weights used by the methods mentioned later, which might not be reliable. The results of this analysis however will not be used to exclude platforms, but as a tool to help with the verification of the conclusion achieved by using other methods.
Linear additive method The goal of the MCA is to give one or more scores to each platform, and use these scores to draw a conclusion about the most suitable platform. To acquire these scores, a calculation must be done based on the grades given to the requirements. A simple summation of the grades would be the most straightforward. However, not all requirements are equally important and to take this difference into account, each requirement, or group of requirements is given a weight, and this weight is multiplied by the score. In a MCA, this is called a linear additive model. The comparison method used in this research is a linear additive model on each priority group of requirements. In this case each priority group, priority A, B and C is given a certain weight and the score is calculated. The resulting single score can be used to objectively compare the platforms.
Based on these scores the most suitable platform(s) to be used as a base platform are selected according to the MCA. This conclusion however only gives an indication which platform(s) is/are most suitable, different methods and weights can give different outcomes and the conclusion of the MCA must therefore be verified. This verification is done by doing an evaluation of certain requirements; the requirements where the most suitable platform(s) score lower than every other platform. If this evaluation does not raise any objections to why this/these platforms should not be the most suitable base platforms, the conclusion of the analysis is that this/these platforms are indeed the most suitable platform(s) to be used as a base platform for the MVC for telemedicine. Another aspect that will be verified is the impact of the weights and 3 point grading scale used.
Figure 17: MCA approach
51 of 95
4.3 Multi Criteria Analysis This section does the Multi Criteria Analysis by following the approach mentioned in the previous section. First, each requirement is given a score depending on how well a requirement is met. A complete list of scores can be found in appendix D. Section 4.3.1 gives the results of method used for this MCA, the priority based linear additive method.
4.3.1 Priority based linear additive multi criteria analysis The method used in this MCA is the linear additive model grouped by the priorities of the requirement. First the summarized scores for each priority for each platform are calculated: