Projects

Web Service Composition

Service-oriented computing promises rapid development of software application. New services can be developed by combining many interoperating, autonomous, distributed, reusable services on the Internet. Emergency earthquake services, for example, may be composed of multiple services: Google maps to show the location of patients; a hospital service showing available spaces at hospitals; and a traffic system outlining current road conditions. Someone could then use such a system to allocate patients to the best hospital within the shortest time. The fundamental challenge is to compute new value-added services by selecting and combining existing services that not only satisfy users’ functional requirements but also meet non-functional expectations, e.g., lowest price, lowest response time, and available and reliable all the time.

In the era of Big Data, the number and complexity of data-intensive services on the Internet is increasing rapidly. Traditional service composition approaches have come to a performance bottleneck, due the mass data. Data-intensive services bring new challenges because composition with data-intensive services across multiple network nodes must consider the costs of dependency checking, consistency enforcement, data transfer and storage. We will investigate the optimisation problems of data-intensive service composition and develop heuristic algorithms for solving them.

Cost-Effective Multi-Cloud Deployment of Data-intensive Software Applications

Cloud computing is a modern computing paradigm of deploying software applications. Multiple cloud platforms are available with different computing resources, different pricing schemes, different quality of providing cloud services (e.g. response times) and different interoperability requirements. Multi-cloud deployment is the vision where cloud users can dynamically use and share resources from multiple clouds simultaneously to run their applications in a cost-effective manner. While their is growing interest to adopt multi-clouds, current approaches are not mature. We will investigate the optimisation problems of multi-cloud deployment of data-intensive applications, and develop multi-objective evolutionary methods for finding cloud resources as per their demands.

Resource Allocation in Clouds

Containers are lightweight and provide the potential to reduce more energy consumption of data centers than Virtual Machines (VMs) in container-based clouds. The on-line resource allocation is the most common operation in clouds. However, the on-line Resource Allocation in Container-based clouds (RAC) is new and challenging because of its two-level architecture, i.e. the allocations of containers to VMs and the allocation of VMs to physical machines. These two allocations interact with each other, and hence cannot be made separately. In this project we develop EC-based methods to effectively solve the RAC problem (static and dynamic), considering VM overheads, VM types and an affinity constraint.

Social Network Detection