## 5 The Proposed KM MCC Platform
### Mobile Application
#### 5.3.3. Cloud Backend as a Service  
Through the interviews conducted in the Build-Measure-Learn cycles, it became clear that Chilean SME construction companies tend to buy and maintain their own servers as well as all the infrastructure needed to do so. With this strategy, they aim to work without the risk of losing or leaking sensitive data, but other problems emerge because ICT is not their core know-how. Thus, CC becomes an attractive and flexible option to support the application backend as it is secure and makes it possible to use powerful ICT Infrastructure as a Service. The implementation of this BaaS version is based on different cloud services (web and worker roles). In Azure, a cloud service role is a collection of managed, load-balanced, Platform-as-a-Service virtual machines that work together to perform common tasks. Cloud Service roles are managed by Azure fabric controller and provide the ultimate combination of scalability, control, and customization. Thus, this implemented solution coordinates existing technologies in order to achieve consistent storage and sharing of the knowledge in a way that is simple for both the ICT department and construction professionals, relying on external cloud services provided by powerful vendors, but still giving a high level of control to the construction company than a traditional SaaS. Figure 3 shows the architecture proposed where the core features of the KM platform are built into a piece of software that is deployed in cloud services, forming a cloud backend that can be accessed through Application Programming Interfaces (APIs) by different applications (e.g., mobile and web applications). For instance, the mobile API aims to send and receive the least amount of kilobytes of information possible, to counteract the effect of an Internet connection which will probably be slow or intermittent. Both mobile and web APIs communicate through a cloud-based centralized business logic layer, which is the coordination component and the only one with direct access to the database, information sources, and data processing resources. This architecture can be easily extended to support future new devices with an Internet connection, either by writing applications that consume the existing APIs or by adapting new services. With this, consistency of the information is achieved as all business logic and data is centralized. Figure 9: Sequence diagram for the mobile synchronization process. In this schema, the construction company sees the KM platform as a SaaS most of the time, which means that they do not have to constantly worry about maintaining the ICT infrastructure (i.e., updating virtual machines' OS or applying security patches), because such tasks are performed by the cloud vendor. Nevertheless, unlike other software offered using the SaaS model, the construction company ICT department has the ability to alter the features of the cloud platform being used (i.e., boost computing power on certain periods, replicate instances of the KM application, and switch between data centers) because the construction company owns the cloud environment through a cloud subscription. In other words, the construction company uses the KM platform as a black-box, but they do not lose control over what is inside this black-box. Thus, this architecture also makes it possible to consider easily expanding the system in the future, as CC has superior and flexible storage and processing capabilities that are accessible on-demand and not by the physical installation of new servers. These CC capabilities can be scaled enough to make possible the inclusion of storage and process intensive functionalities such as machine learning [88]. Based on the results of the third research cycle, we decided to incorporate machine learning and content-based recommendations into our solution. Currently, we have the first release of this feature implemented with Azure Machine Learning.