# Modeling and Security in Cloud Ecosystems
## 1 Introduction  
Due to their convenience and relative low cost, cloud computing systems have become very successful in attracting small and medium businesses and academic institutions. Their emergence has brought a variety of products or services that complement or extend their basic services. Some clouds are also connected to other (maybe more specialized) clouds and may support cyber-physical systems, as well as a variety of user devices or intelligent machines. We have now what is called a software ecosystem. Ecosystems were initially defined from a biological perspective: systems formed by the interaction of a community of organisms with their physical environment ([[http://wordnetweb.princeton.edu/perl/webwn](http://wordnetweb.princeton.edu/perl/webwn)]([http://wordnetweb.princeton.edu/perl/webwn](http://wordnetweb.princeton.edu/perl/webwn))). The term was later applied to software systems: \"a collection of software systems, which are developed and co-evolve in the same environment\" [1]. For software product lines: \"An ecosystem is the expansion of a software product line architecture to include systems outside the product which interact with the product\" [2]. Software ecosystems areadvantageous to suppliers who can offer a larger variety of products or services, and to consumers who can find more products to help them reach their business goals. Companies such as Microsoft and Apple have been building ecosystems around their products for many years and more recently telecommunications companies such as Cisco [3], Ericsson [4], and others, have been building extensive software ecosystems. Software ecosystems also include economic and socio-technical aspects [5]; but those aspects are not considered here. In cloud ecosystems their complementary systems may not be produced by the same vendor and may use different protocols, although able to interact with other products in the ecosystem. These complementary systems are a growing set, where new types of products or services constantly appear and provide some useful functions for some types of users. Some of those products may be housed in real devices but they also can be virtualized and executed in any system, including standard processors or cyber-physical systems. Several authors, e.g., [5; 6; 7] have indicated that the lack of reference architectures or other abstract models inhibit the wider adoption of software ecosystems and deny the possibility of exploiting their full potential. This need motivates our work: Architectural models based on patterns are a powerful representation when building or using cloud ecosystems and similar complex systems [8]. A pattern is an encapsulated solution to a software problem. We started by describing models for clouds [9] and then expanded them to describe cloud ecosystems [10]. After a careful search we have not found similar models (see Section 4). We have expanded our initial ecosystem to cover fog systems [11] and containers [12]. Most of the components of this system have already been modeled as patterns by ourselves but some are missing, we identify here the new patterns we need. We present here a systematic method to build ecosystem models for clouds, using patterns and reference architectures, which is our main contribution. We discuss the value of these models with respect to several objectives, which are useful for understanding and analyzing significant aspects of the ecosystem. We do not claim completeness, an ecosystem is open-ended and our model will continue growing when we identify more functions and their patterns. As indicated, an important value of our model is for analyzing security aspects of an ecosystem and we intend to answer several security questions with it. Our long term objective is to develop a holistic security view across all the elements of the ecosystem and we are starting with security in a fog controlling a variety of devices. In particular, we intend to define policies on what data from the cloud can be sent to the devices or what data from the devices can be sent to the cloud.