The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Web software systems generally reside in highly volatile environments, their incoming traffic may be subject to sharp fluctuations from reasons that cannot always be captured or predicted. Cloud computing provides a solution to this problem by offering flexible resources, like containers, which can be quickly and easily scaled according to the current workload needs. Automating this process is a key...
Following recent technological advancements in software systems, like microservices, containers and cloud systems, DevOps has risen as a new development paradigm. Its aim is to bridge the gap between development and management of software systems and enable continuous development, deployment and integration. Towards this end, automated tools and management systems play a crucial role. In this work,...
In the era of Big Data, software systems can be affected by its growing complexity, both with respect to functional and non-functional requirements. As more and more people use software applications over the web, the ability to recognize if some of this traffic is malicious or legitimate is a challenge. The traffic load of security controllers, as well as the complexity of security rules to detect...
Virtualization of resources in cloud computing has enabled application developers to commission and recommission resources at will and on demand. This virtualization is a coin with two sides. On one hand, the flexibility in managing virtual resources has enabled application developers to more efficiently manage their costs; they can easily remove unnecessary resources or add resources temporarily...
Elasticity is a key component of modern cloud environments and monitoring is an essential part of this process. Monitoring demonstrates several challenges including gathering metrics from a variety of layers (infrastructure, platform, application), the need for fast processing of this data to enable efficient elasticity and the proper management of this data in order to facilitate analysis of current...
Web technologies along with the virtualization ofcomputation and storage resources have allowed extensive flexibilityin the development, deployment and delivery of softwaresolutions. On one hand, this flexibility has allowed engineersto commission and repurpose resources on demand and atwill. On the other hand, the flexibility has given rise to newbusiness models and interesting implications in the...
The volatility of web software systems, for example due to traffic fluctuations, can be addressed through cloud resource elasticity. Cloud providers offer specific services to automate the process of elasticity, so that application developers can efficiently and effectively manage their cloud resources. Current autoscaling methods mostly employ rule-based or threshold-based techniques. In this work,...
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...
REST has become a very popular architectural style for service-oriented systems, primarily due to its ease of use and flexibility. However, the lightweight nature of its syntax does not necessitate the use of systematic methods and tools. In this work, we argue that such tools can greatly facilitate complex engineering tasks, including service discovery and evolution. We present the WSDarwin set of...
Service orientation is one of the most popular paradigms for developing modular distributed software systems. In spite of the substantial research effort dedicated to the development of methods and tools to support SOAP-based service-oriented application development, in practice, Restful services have surpassed SOAP-based services in popularity and adoption, primarily due to the simplicity of their...
Service-oriented architectures have emerged as a popular development paradigm for modular, extendible distributed systems, relying on interoperable components. However, their evolution is a challenging problem, due to the fact that their constituent parts typically reside outside a single entity's domain of ownership and control. In my thesis, I have developed WSDarwin, a framework to support the...
As primarily modular and distributed architectures, service-oriented architectures may impose new challenges in software evolution. Since web services evolve independently, this may cause disruptions to the proper function of consuming software. In this paper, we present \wsd, an Eclipse plug-in to support the evolution of service clients, including (a) identifying the differences between two service...
Service-oriented systems are fundamentally distributed in nature, relying on external services accessible through their public interfaces. Distributed ownership and lack of implementation transparency imply special challenges in the evolution of such systems. In order to alleviate the challenge faced by the consumers of their services, providers should, in principle, take into account the impact that...
The distributed nature of service-oriented architectures imposes some very interesting challenges to the participants of a service system, i.e., the provider and the client. For example, the service may change in a way that no longer satisfies the client's needs, either due to its reduced offered functionality or quality, due to its reduced availability or due to its increased price. In this case,...
Refactoring is recognized as an essential practice in the context of evolutionary and agile software development. Recognizing the importance of the practice, modern IDEs provide some support for low-level refactorings. A notable exception in the list of supported refactorings is the “Extract Class” refactoring, which is conceived to simplify large, complex, unwieldy and less cohesive classes.In this...
The service-oriented architecture paradigm prescribes the development of systems through the composition of services, i.e., network-accessible components, specified by (and invoked through) their WSDL interface descriptions. Systems thus developed need to be aware of changes in, and evolve with, their constituent services. Therefore, accurate recognition of changes in the WSDL specification of a service...
Evolutionary changes in object-oriented systems can result in large, complex classes, known as "God Classes". In this paper, we present a tool, developed as part of the JDeodorant Eclipse plugin, that can recognize opportunities for extracting cohesive classes from "God Classes" and automatically apply the refactoring chosen by the developer.
Several types of 3D software visualizations have been developed to communicate information about the products of a software project and, sometimes, the development process itself. These visualizations have been limited in the degree of interactivity they enabled (primarily panning and zooming) and in their accessibility (since in most cases they assumed a particular client platform). In this paper...
Software development is fundamentally a collaborative task. Developers, sometimes geographically distributed, collectively work on different parts of a project. The challenge of ensuring that their contributions consistently build on one another is a major concern for collaborative development and implies concerns with effective communication, task administration and exchange of documents and information...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.