SAPPARCHI: A scalable platform to execute applications on Computacional Smart City Environments
Smart city, Fog, Cloud, Edge Computing
In the Smart Cities environment, applications development and execution face important challenges related to 1) Big Data Concept: The huge amount of processed and stored data with various data sources and data types; 2) Multi-domains: the many involved domains (Economy, Traffic, Health, Security, Agronomy, etc); and 3) Multiples processing methods like Data Flow, Batch Processing, Services, and Microservices. In facing these challenges, many platforms, middlewares, and architectures have been proposed to run applications in the Smart City’s environment. Despite all the progress already made, the vast majority of solutions have not met the functional requirements of Application Development, Application Deployment, and Application Runtime. Some studies point out that in a universe of 97 platforms, only 20.6% met the functional requirements of Application Development, Application Deployment, and Application Runtime. And, when those requirements are related to Scalability (non-functional), this number goes to 0.01%. Due to the lack of solutions that explore these requirements, all these concerns on Smart City’s Application Developing are passed on to the various stakeholders. For example, while Service Providers are concerned with: How to measure, charge, deploy, scale-up or scale-down, and execute to efficiently use the Computing Infrastructure, for developers it is important to know: How to implement, execute, scale application components, where to store their data, and where to deploy (Cloud, Fog, or Edge). In this work, we seek to outline and answer some of these questions. To this, we propose to build an evolutionary model for organizing and executing applications in the context of Smart Cities, the Smart City Application Architectural Model (Sapparchi). Sapparchi is an integrated architectural model for Smart Cities applications that define multi-processing levels (at the moment can support Edge, Fog, and Cloud). In addition, solutions are presented for monitoring, deploying, and scaling applications deployed at Cloud, Fog, and Edge levels. Finally, we present the Sapparchi middleware platform for developing, deploying, and running applications in the smart city environment with a focus on self-scaling and multi-processing computacional levels (From Cloud to Edge)