|
Overview
Overview of the dissertation and project that is used as case study.
Featured Autonomous service-oriented architectures: A case study in Hackystat with case-based reasoningService-oriented Architectures (SOA) is considered as a successful approach building large-scale software systems, that span the internet, and globally improves software reuse (Erl 2005). Service-orientation is the concept of building software components that are technology independent and implement a specific business logic. The business logic is accessible only through a provided interface. The interface defines which service the component is offering. In terms of service-oriented computing and service-oriented architecture, a service provides a specific autonomous functionality (Gorton 2006). The service can be discovered, bound and used by any other software (Gorton 2006). Services can be composed, and they can be hosted by many machines, as well as one machine can host many services (Li et al. 2005.). This concept of distributed composition of services hides a huge amount of complexity in the management of these services. Users have to deal with complex configuration of services to achieve functional and quality requirements, thus the complexity of the system requires a lot of human-interference (Papazoglou and Van den Heuvel 2007). Service-oriented computing and SOA increases reusability and enables normal software engineering, by building blocks. Thus the complexity of service-oriented systems is the system itself, because the services are generally black boxes and autonomous. Increasingly, software systems are constructed by composing multiple applications which leads to the need for self-management of the system (Sadjadi and McKinley 2005). This dissertation adresses the management of service-oriented architectures and considers taking the autonomy of the services to a higher level: the autonomy of a service-oriented architecture itself. Autonomic computing, as defined by IBM (Horn 2001), is the concept of a self-managed computing system with a minimum requirement of human intervention. The goal of autonomic computing is to create smart systems that are able to take best decisions. They are developed in a way, so that human-intervention is not needed anymore for tasks that have a limit in complexity. Talking about systems without any human-interference would require the system to have consciousness, which is a philosophical aspect and far beyond this dissertation. A service-oriented architecture is composed of autonomous services which, in general, cannot be influenced because they may belong to annother organization. Sometimes a service has to be manually reconfigured, if accessible. If the service is not accessible in any form, it has to be manually replaced by another service providing the same functionality. These are time and cost consuming tasks, carried out by developers and administrators of the system. Thus, there is a need in software engineering for autonomous self-managing service oriented architectures. It became an essential research domain in software engineering resides mostly in the domain of autonomous computing and service-oriented computing. In this dissertation the core problems, different concepts and proposed solutions for achieving autonomic service-oriented architectures are presented. The researcher creates a concrete concept, composed by ideas and other different concepts found during his research. An implementation of this concepts is presented for a service-oriented system called Hackystat (Johnson 2001). Hackystat is an open source project developed by academics at University of Hawaii and a perfect example for a case study. The concrete concept is created in a way, that it can be adopted to any service-oriented architecture by generalizing common issues in service-oriented architectures. The concept also addresses it's extendibility in different scenarios. Applying theoretical concepts to a real life project achieves that the previous knowledge of the research domain is summarized and extended. Maybe conflicts of concepts by different researchers can be resolved. Furthermore the implementation of the concept can be evaluated and improved beyond the scope of this dissertation. At the beginning of chapter two, a general overview of software architecture, service-oriented computing and the better known term SOA is provided. A description of the service-oriented paradigm is presented with just one of its many implementations called Representational state transfer (REST) (Fielding 2000). The knowledge is extended to a base level to understand the issues of service-oriented architectures. In the second part the Hackystat project is presented. In chapter three, autonomic service-oriented computing, concepts and solution proposals from related work, for different scenarios and service dispositions are prestented. The dissertation focuses on Cased-based Reasoning to achieve the autonomity. The Case-based reasoning paradigm seems to be very well suited for the domain of service-oriented architectures (Anglano and Montani 2005). Chapter four describes a concrete concept in depth, adopted from chapter three and applied to Hackystat. In chapter five the difficulties, conflicts and realization of an implementation of the autonomic service-oriented concept for Hackystat are presented and explored in depth. Some Literature: Anglano, C. & Montani, S., 2005. Achieving self-healing in autonomic software systems: a case-based reasoning approach. In Proceeding of the 2005 conference on Self-Organization and Autonomic Informatics (I). pp. 267–281. Bell, M., 2008. Service-Oriented Modeling (SOA): Service Analysis, Design, and Architecture, Wiley. Erl, T., 2005. Service-oriented architecture: concepts, technology, and design, Prentice Hall PTR Upper Saddle River, NJ, USA. Erl, T., 2007. SOA: Principles of service design. Erl, T., 2005. Service-Oriented Architecture (SOA): Concepts, Technology, and Design, Prentice Hall PTR. Erl, T., 2009. SOA Glossary. Available at: http://www.soaglossary.com/default.asp July 21, 2009. Fielding, R.T., 2000. Architectural styles and the design of network-based software architectures. University of California. Gorla, A., 2008. Automatic workarounds as failure recoveries. In Proceedings of the 2008 Foundations of Software Engineering Doctoral Symposium. pp. 9–12. Gorton, I., 2006. Essential Software Architecture 1st ed., Springer. Hofmeister, C.R., 1998. Dynamic reconfiguration of distributed applications. Horn, P., 2001. Autonomic computing: IBM’s perspective on the state of information technology. IBM TJ Watson Labs, NY, 15th October. Johnson, P.M., 2001. Project Hackystat: Accelerating adoption of empirically guided software development through non-disruptive, developer-centric, in-process data collection and analysis. Department of Information and Computer Sciences, University of Hawaii. Lehman, M.M., 1996. Laws of software evolution revisited. Lecture notes in computer science, 1149, 108–124. Li, Y. et al., 2005. Self-reconfiguration of service-based systems: A case study for service level agreements and resource optimization. In 2005 IEEE International Conference on Web Services, 2005. ICWS 2005. Proceedings. pp. 266–273. Papazoglou, M.P. & van den Heuvel, W.J., 2007. Service oriented architectures: approaches, technologies and research issues. The VLDB Journal The International Journal on Very Large Data Bases, 16(3), 389–415. Sadjadi, S.M. & McKinley, P.K., 2005. Using transparent shaping and web services to support self-management of composite systems. Turski, W.M., 1996. Reference model for smooth growth of software systems. IEEE Transactions on Software Engineering, 22(8), 599. Wilson, D.R. & Martinez, T.R., 1997. Improved heterogeneous distance functions. Arxiv preprint cs.AI/9701101. |