
Virtualization is the nucleus of the cloud computing for providing its services on-demand. Cloud-based distributed systems are predominantly developed using virtualization technology. However, the requirement of significant resources and issues of interoperability and deployment make it less adopt- able in the development of many types of distributed systems. Dockerization or Docker Container-based virtualization has been introduced in the last three years and gaining popularity in the software development community. Docker has recently introduced its distributed system development tool called Swarm, which extends the Docker Container-based system development process on multiple hosts in multiple clouds. Docker Swarm-based containerized distributed system is a brand new approach and needs to be compared with the virtualized distributed system. Therefore, this paper presents the simulation and evaluation of the development of a distributed system using virtualization and dockerization. This simulation is based on Docker Swarm, VirtualBox, Ubuntu, Mac OS X, nginx and redis. To simulate and evaluate the distributed system in the same environment, all Swarm Nodes and Virtual Machines are created using VirtualBox on the same Mac OS X host. For making this evaluation rational, almost similar system resources are allocated to both at the beginning. Subsequently, similar servers nginx and redis are installed on the Swarm Node and Virtual Machine. Finally, based on the experimental simulation results, it evaluates their required resources and operational overheads; thus, their performance and effectiveness for designing distributed systems.
IoT applications are essentially characterized by their highly dynamic nature, in which the configurations of both network and software systems may change. In the context of IoT software services, modifications can occur during application lifespan due to updates and amendments. Hence, third-party applications and services depending on the changed services need to take appropriate coordination and adaptation actions. Existing solutions do not focus on coordinated coevolution within resource constrained environments. Addressing this issue in a resource-efficient manner is the objective of our proposed notification management mechanism. It detects and informs dependent third-party applications automatically about service changes and categorizes them into crucial and minor changes. Furthermore, it maintains a list of possibly affected clients without consuming further resources on the IoT device the service is running on. Special attention is also paid to the usability and integrability of our mechanism for clients as well as for providers.
Service-oriented architecture (SOA) together with agile development practices have shown a largely favorable strategy for organizations looking for improving time-to-market and business agility. SOA is an architectural style for building software applications using coarse-grained services which are bind together through orchestration or choreography mechanisms. Agile development methods promote early and continuous increments which means that successive cloud service increments need to be integrated into an existing cloud services architecture. This paper presents an Architecture Description Language (ADL), as an extension of the SoaML language, to specify how an increment architecture will be integrated into an existing cloud services architecture. In addition, we introduce a support tool that uses this specification to automatically generate: i) the new services choreography; and ii) the deployment and needed reconfiguration scripts that change service invocations according to the integration specification. The use of this ADL is shown in the Microsoft Azure© platform using an excerpt of a reservation system for a travel operator as an illustrative example.
Several planning and performance analysis tools and techniques are available to execute sophisticated "what-if" analysis, in order to dynamically reconfigure cloud applications, modify them, and update their adaptation policies. However, in order to utilize these tools and techniques, appropriate analytical models for such cloud software systems must first be built. Constructing such models is difficult, as it requires the knowledge of: (i) the architecture of the system (i.e., deployment model), (ii) the specifications of the platform, (iii) the behavior of the application at runtime, and (iv) the formalism and notations of the target analytical model. This is further complicated in the cloud due to: (i) the fluid nature of the cloud application models and platforms, (ii) the large number of platform providers, and (iii) the successive upgrade to the underlying platforms. In our previous research work, we developed an architectural framework and a modeling language for the cloud configuration space called StratusML. This paper aims at extending StratusML to support generating analytical performance models for cloud applications by reusing the information used to configure the platform for the deployment and the operation. We show through an example, how to use StratusPM to model cloud performance and how the new extension can help reducing the efforts needed to specify analytical performance models for cloud applications.
This presentation discusses a strategy for migrating to a service-oriented architecture. The starting point is legacy code in a procedural or object-oriented language. The result is a set of web services that can be accessed in a private or public cloud. The technique used is to cut out selected portions of code and to wrap them behind a service interface. The code itself can be left in the original language. The service interface is in WSDL. The speaker describes how to go about selecting code for reuse and how to extract that code from its current environment. Case studies are given for the languages COBOL and Java. The presentation then goes on to describe how to test the services using a web service testing tool which generates artificial requests from the service interface definition and validates the responses against the assertions provided by the tester.
Software evolution projects need to be supported by integrated toolchains, yet can suffer from inadequate tool interoperability. Practitioners are forced to deal with technical integration issues, instead of focusing on their projects' actual objectives. Lacking integration support, the resulting toolchains are rigid and inflexible, impeding project progress. This paper presents SENSEI, a service-oriented support framework for toolchain-building, that clearly separates software evolution needs from implementing tools and interoperability issues. It aims to improve interoperability using component-based principles, and provides model-driven code generation to partly automate the integration process. The approach has been prototypically implemented, and was applied in the context of the Q-MIG project, to build parts of an integrated software migration and quality assessment toolchain.
Measuring the quality of cloud computing provision from the client's point of view is important in order to ensure that the service conforms to the level specified in the service level agreement (SLA). With a view to avoid SLA violation, the main parameters should be determined in the agreement and then used to evaluate the fulfillment of the SLA terms at the client's side. Current studies in cloud monitoring only handle monitoring the provider resources with little or no consideration to the client's side. This paper presents MonSLAR, a User-centric middleware for Monitoring SLA for Restful services in SaaS cloud computing environments. MonSLAR uses a distributed architecture that allows SLA parameters and the monitored data to be embedded in the requests and responses of the REST protocol.
The incessant trend where software engineers need to redesign legacy systems adopting a service-centric engineering approach brings new challenges for software architects and developers. Today, engineering and deploying software as a service requires specific Internet protocols, middleware and languages that often complicate the interoperability of software at all levels. Moreover, cloud computing demands stringent quality requirements, such as security, scalability, and interoperability among others, to provide services and data across networks more efficiently. As software engineers must face the problem to redesign and redeploy systems as services, we explore in this paper the challenges found during the migration of an existing system to a cloud solution and based on a set of quality requirements that includes the vendor Lock-in factor. We also present a set of assessment activities and guidelines to support migration to the Cloud by adopting SOA and Cloud modeling standards and tools.
As data continues to grow rapidly, NoSQL clusters have been increasingly adopted to address the storage and processing demands of these large amounts of data. In parallel, cloud computing is also increasingly being adopted due to its flexibility, cost efficiency and scalability. However, evaluating and modelling NoSQL clusters present many challenges. In this work, we explore these challenges by performing a series of experiments with various configurations. The intuition is that this process is laborious and expensive and the goal of our experiments is to confirm this intuition and to identify the factors that impact the performance of a Big Data cluster. Our experiments mostly focus on three factors: data compression, data schema and cluster topology. We performed a number of experiments based on these factors and measured and compared the response times of the resulting configurations. Eventually, the outcomes of our study are encapsulated in a performance model that predicts the cluster's response time as a function of the incoming workload and evaluates the cluster's performance less costly and faster. This systematic and effortless evaluation method will facilitate the selection and migration to a better cluster as the performance and budget goals change. We use HBase as the large data processing cluster and we conduct our experiments on traffic data from a large city and on a distributed community cloud infrastructure.
Building software systems by composing third-party cloud services promises many benefits. However, the increased complexity, heterogeneity, and limited observability of cloud services brings fully automatic adaption to its limits. We propose architectural run-time models as a means for combining automatic and operator-in-the-loop adaptations of cloud services.
Mixed redundancy strategy is generally used in cloud-based systems, with different node switch mechanism from traditional mixed strategy. However, related researches often concentrates on traditional mixed redundancy strategy in which cold standby components is working only after all active nodes fail. So a model is developed to evaluate the reliability and performance of cloud-based degraded system subjected to mixed active and cold standby redundancy strategy with continual monitoring and detection mechanism. It is assumed that the node switching process is triggered once some active nodes fail and there are available standby nodes. A continuous-time Markov chain is built on top of the state transition process and both transient and steady state availability and expected job completion rate are used to evaluate system metrics with or with repair facilities. A numerical method is used to solve the model and sensitivity analysis is conducted on different redundancy strategy. Illustrative examples using real-world data were presented to explain the process of calculating the probability of each state and the different kinds of availability and performance. The comparison with traditional mixed redundancy strategy proved that the system behavior was different using different kinds of mixed strategy and the analysis model for traditional strategy was not suitable for strategies in cloud-bases system.
Over the last years several standards and reports have been published and released (ISO CCRA, TOSCA), where best practices with respect to Cloud based application design, devel-opment and deployment are described. Other frameworks such as ITIL or EFQM provide recommendations for identifying, planning, delivering and supporting IT services to the business through adaptation of the business models and processes. All this best practices are scattered through different sources and there is not a unique criteria covering all the aspects.This paper proposes a maturity assessment approach supported by tools based on standards widely adopted in the industry. It covers best practices in the three dimensions and ranks the possible solutions in terms of the most suitable alternatives for cloud based solutions. The maturity assessment has been also complemented with the functionality of capturing user information, and transforming it in useful information in terms of reports and files for the migration process.
One of the challenges of testing in a SoA environment is that testers do not have access to the source code of the services they are testing. Therefore they are not able to measure test coverage at the code level, as is done in conventional white-box testing. They are compelled to measure test coverage in other ways which satisfy the constraints of black-box testing. We propose some alternate means of measuring test coverage by focusing on the structure and content of the service interface without regarding the code. The result is a new way of measuring test coverage which can apply to testing in a SoA environment.
In this paper, a sustainability driven approach is proposed to measure the viability of cloud migration. The decision on cloud migration is based on sustainability dimensions, i.e., economic, environmental, social and technology, and risks associated with in these dimensions. We use Analytic Hierarchy Process and fuzzy scale to prioritize the sustainability dimensions based on a migration context to calculate Total Sustainability Index (TSI). TSI is then used to determine the viability of cloud migration according to three different scales, i.e., convincing, moderate, and ineffective. Finally, we used a practical migration use case from Ministry of Health (MoH), Malaysia to demonstrate the applicability of our work. The results from the studied context concluded that economic and business continuity are the key influential concerns for a sustainable cloud migration.
The vision of service-oriented computing has been largely developed on the fundamental principle of building systems by composing and orchestrating services in their control flow. Nowadays, software development is notably influenced by service-oriented architectures (SOAs), in which the quality of software systems is determined by the quality of the involved services and their actual composition. Despite the efforts on improving their individual quality, adding or replacing services in an evolving system can introduce failures, thus compromising the satisfaction of the system's functional and extra-functional requirements. These failures erode the trust in the SOA vision. Thus, a key issue for the industrial adoption of SOA is providing service providers, integrators, and consumers the means to build confidence that services behave according to the contracted quality conditions. In this paper we present a first version of PA SCA NI, a framework for specifying and executing test specifications for service-oriented systems. From a test specification, PA SCA NI generates a configuration of testing services compliant with the Service Component Architecture (SCA) specification, which can be composed to integrate different testing strategies, being these tests traceable in an automated way. Our evaluation results show the applicability of the framework and a substantial gain in the tester's effort for developing tests.
We have come a long way from the service oriented architecture model, and we are now witnessing the proliferation of service eco-systems and socio-technical systems being considered within the context cloud provisioned environments. The management and compliance issues that were applicable in the past are now of limited use and need be adapted due to the complexity of the interdependencies of the constituent framework components, services, processes, and stakeholders. This keynote will first set the stage for defining and understanding the problem of evaluating compliance and managing such systems, identify technical challenges, and discuss research issues and future opportunities.
Both short and long term information of the transportation network is needed by commuters and planners. In order to obtain this information, there is a pressing need to consolidate, mine and analyze data collected from multiple sources. To enable these activities under a single umbrella, we propose a data platform in this position paper that transforms data into information. Finally, we discuss the research challenges facing our platform.
Porting applications from one cloud platform to another is difficult, making vendor lock-in a major impediment to cloud adoption. Model-driven engineering could be used to determine how applications might run on different platforms, if platform schemas could be matched. However, schema matching typically relies on linguistic and structural similarities, and cloud schema terms diverge so much that such matching is impossible. To address this challenge, we introduce Prison Break: a novel, semi-automated and generic schema matching process. Prison Break solves the divergent vocabulary problem by using web search results as a similarity metric, thus incorporating domain knowledge without constructing a dictionary, lexicon or thesaurus. We tested Prison Break by matching schemas from two major cloud providers: Windows Azure and Google Application Engine. We determined that Prison Break helps solve the vendor lock-in problem by reducing the manual efforts required to map complex correspondences between cloud schemas. This brings us one step closer to automatic model migration across cloud platforms.
SOA has been seen as one of the main approaches for managing "system of systems" (SoS) i.e. Large scale IT landscapes. The extension of SOA to include the concept of process orientation could be the next evolutionary step for SOA. Before starting to define reference architectures for process-oriented SOA in SoS it would be advantageous to learn more about the current state of process handling in a SoS. The objective of the current paper is to describe the different approaches to implementing processes in a SoS. The term processing chain is introduced as an abstract representation of processes in SoS. A classification of processing chains is defined and an approximate distribution of different "processing chains" is presented in a case study based on the analyzed SoS. Also, the paper addresses the question which processing chain type would be appropriate in a certain context based on the underlying requirements.
Energy efficiency is a primary concern for the ICT sector. In particular, the widespread adoption of cloud computing technologies has drawn attention to the massive energy consumption of data centers. Although hardware constantly improves with respect to energy efficiency, this should also be a main concern for software. In previous work we analyzed the literature and elicited a set of techniques for addressing energy efficiency in cloud-based software architectures. In this work we codified these techniques in the form of Green Architectural Tactics. These tactics will help architects extend their design reasoning towards energy efficiency and to apply reusable solutions for greener software.