From SSRG Annoki

Jump to: navigation, search


Capacity Planning

People Involved

Michael Smit Andrew Nisbet

Eleni Stroulia

SOA Capacity Provisioning
SOA Capacity Provisioning

Service-oriented architectures (SOAs) are being increasingly adopted for the development of distributed applications that involve multiple partner organizations. The main challenge in configuring such applications - whether autonomously or manually - is meeting the service quality expected by the consumers.

We are working towards a methodology and corresponding tool implementation for estimating the capacity of alternative configurations of complex service-oriented applications. We use a sophisticated enterprise application with many possible configurations as our test application. The current tool prototype simulates the behavior of the application for a given configuration on an existing network topology.

This simulation is relatively coarse-grained, but is capable of tracking several performance indicators. We evaluate this simulation output against actual performance data. As large software applications are migrated to SOAs, and as partner organizations engage in more complex business relationships, these challenges could become serious problems.

Service Discovery

Service-oriented architectures enable reuse through the deployment of services in the context of a variety of workflows. Discovery of relevant services is therefore a critical activity towards enabling reuse.

We have developed a suite of heuristic methods for assessing the similarity of WSDL specifications. This suite is based on two main components: first, a structure-matching algorithm that assesses the similarity of the syntactic structure of two WSDL specifications, and second, a semantic matching algorithm that assesses the domain-specific similarity of the identifiers chosen to describe the elements of the WSDL specifications using wordnet ( Comparing the retrieval results yielded by the structure matching method and the identifier matching method, we discovered that chosen names of services, operations and data types are better indications of service's capabilities than their structures and types. Both precision and recall improved significantly when identifier-matching method is used. When the two methods are used together, as that in the fifth set of experiments, the retrieval results yielded by their combination is the close to the average of results yielded by each individual method.

Adaptive run-time workflow reconfiguration

Despite the fundamentally distributed conceptualization of service-oriented architecture, most current BPEL4WS execution engines assume that the specification of the process composition is interpreted at run time by a central middleware node. This implies inflexible composition evolution: each time a partner process must be updated, all compositions to which it participates must also be updated to avoid potential failures at run time.

The WRABBIT framework proposes an agent middleware around web-services, to enable reflective BPEL workflow execution as all web-service exchanges are viewed as agent conversations. As they communicate, agents also reflect upon their conversations based on normative models of these conversations, inferred based on the specification of the underlying BPEL workflows provided by the services they wrap; thus, agents recognize run-time "conversation" errors, i.e., errors that occur due to changes in the rules of how the partner process should be composed. Furthermore, the agents' conversation layer implements protocols and consults globally shared, declarative policy specifications to resolve such conversation failures.

Reasoning about workflows as Labeled Ordered Trees

People Involved

Rimon Mikhaiel

Eleni Stroulia

In this work, we are working on an integrated representation of service interface (WSDL) and workflow composition (BPEL) specifications as labeled ordered trees. Based on this integrated representation, we are working on a suite of methods for addressing the various problems that arise in the development of service-oriented applications:

  • service discovery is viewed as tree differencing; and
  • service composition is viewed as tree alignment.