Reliability Management of Composite Consumer Applications
Consumer computing is a research field focused on empowering ordinary application consumers, especially those that are not educated programmers, to build applications adapted to their specific needs. Consumer applications are component-based systems, constructed by combining the existing applications into new added value workflows. They are usually run in dynamic environments where building components are accessed over a shared medium, like the Internet, and often are not under supervision of the developer. Furthermore, component reusability is an important consumer computing concept as it simplifies application development, but also enables development of very complex consumer applications. Therefore, one of the principal challenges in sustainable consumer application development is to maintain a proper level of application’s non-functional properties. The goal of this doctoral thesis is to produce a methodology for development of reliable consumer applications. To support development of complex consumer applications, the method needs to scale with the increased number of building components and workflow complexity. The proposed approach is a design-time iterative reliability management method that consists of consecutive steps of reliability estimation, detection of architectural weaknesses, and application improvement. In order to achieve scalability, an application analysis approach based on heuristic algorithms that leverage graphical structure of the reliability model is presented. Feasibility of the proposed method is extensively evaluated both on artificial and real-world data sets.