Adaptive middleware is essential for developing distributed systems in several applications domains. The design and implementation of this kind of middleware, however, it is still a challenge due to general adaptation issues, such as When to adapt? Where to include the adaptation code? What to adapt?, and How to guarantee safe adaptations?. Current solutions commonly face these challenges at the implementation level and do not focus on the safety aspects of the adaptation. This paper proposes a holistic solution implemented in Go programming language for developing adaptive middleware centred on the adoption of software architecture principles combined with lightweight use of formalisms. Software architecture concepts work as an enabling approach for structuring and adapting the middleware. Meanwhile, the formalisation helps in providing some guarantees before and during the middleware execution. The proposed solution is evaluated by implementing an adaptive middleware and comparing its performance against existing middleware systems. As shown in the experimental evaluation, the proposed solution enables us to design and implement safe adaptive middleware systems without compromising their performance.
Nowadays, companies are increasingly offering their business services through computational services on the Internet in order to attract more customers and increase their revenues. However, these services have financial costs that need to be managed in order to maximize profit. Several models and techniques have been recently reported that aim at managing, controlling and reducing service costs. However, each of these contributions covers a specific cost aspect subject to certain constraints, while in practice more comprehensive solutions are necessary. This paper presents a survey of models and techniques to handle service costs throughout the phases of the service lifecycle. Based on this survey, we identified a number of opportunities for future research, which should eventually yield comprehensive cost solutions.
Service-Oriented Computing (SOC) was introduced some years ago as a paradigm that allows companies to expose their core competencies as services. Yet, we can only benefit from the full potential of SOC if we explore the possibility of composing services. In practice, service composition enables the development of complex systems by combining existing services, which makes it possible to integrate business processes across different companies. Several languages have been defined to specify service compositions, such as WS-BPEL and WS-CDL. However, these languages lack formal semantics, so that they do not allow the verification of the service composition behavior by means of properties such as the absence of deadlocks and livelocks. In this paper, we present a structured survey on initiatives in which formal description techniques were applied to specify and possibly verify service compositions. As a result of this study, we identified some open challenges and some topics for future work.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.