1. Problem Context
SODA: A Tool Support for the Detection of SOA
Antipatterns
Mathieu Nayrolles1,3, Francis Palma 1,2, Naouel Moha1, Yann-Gaël Guéhéneuc2
1 LATECE
, Département d'informatique, Université du Québec à Montréal, Canada
2 Ptidej Team, DGIGL, École Polytechnique de Montréal, Canada
3 CESI.eXia, Ecole Superieur d'Informatique, France
2. Problem Context (1/2)
Service-based System
Service Requester
HTTP, SOAP, WSDL, UDDI,
WS-Technologies
Service Provider
Service Based Systems (SBSs) evolve to fit new user requirements, execution
contexts:
- may degrade design and quality of service (QoS)
- may cause the appearance of common poor solutions:
Antipatterns
- Antipatterns hinder the future maintenance and evolution of SBSs
2
Francis Palma,
Specification and Detection of SOA Antipatterns
3. Problem Context (2/2)
Tiny Service
Multiservice
Examples of SOA Antipatterns:
Tiny Service: Small service with few methods which requires several coupled
services to complete an abstraction.
Multiservice: Implements a multitude of methods, is not easily reusable
because of low cohesion of its methods, is often unavailable due to overload
3
Francis Palma,
Specification and Detection of SOA Antipatterns
4. Introduction: Contribution
With the goal to detect SOA Antipatterns in SBSs:
- SODA (Service Oriented Detection for Antipatterns), a
SODA Tool
novel and innovative approach.
- SOFA (Service Oriented Framework for Antipatterns), a
SODA
Approach
framework,
- to specify SOA antipatterns and detect them automatically
- to perform static and dynamic analysis
SOFA
Framework
- SODA tool to perform detection using a Graphical User Interface (GUI).
4
Francis Palma,
Specification and Detection of SOA Antipatterns
5. SODA: Our Approach
Rule
Card
SBS
Detection
Algorithm
3. Detection
Templat
e
2. Generation
Textual
Description of
Antipatterns
1. Specifications
SODA: Service Oriented Detection for Antipatterns
Suspicious
Services
5
Francis Palma,
Specification and Detection of SOA Antipatterns
6. SOFA: Underlying Framework
Main Components:
(1) Automated generation of detection algorithms
(2) Computation of static and dynamic metrics
(3) Specification of rules
6
Francis Palma,
Specification and Detection of SOA Antipatterns
8. SODA Tool: Principal Features
- Direct import of an SBS as a Jar package.
- Straight forward detection interface for the
users, handy both for beginners and experts.
- Expose all the detection details, i.e., metric values, corresponding rule
cards, textual descriptions of antipatterns etc.
- Supports both well-known metric based and execution trace based
analysis of SBSs.
- Exposes all the execution traces, association rules generated from
those traces, and relations among them, that is also useful to the users to
better understand the SBS analyzed.
8
Francis Palma,
Specification and Detection of SOA Antipatterns
9. SODA Tool (1/7)
Enlists the SOA
antipatterns
that can be
detected.
9
Francis Palma,
Specification and Detection of SOA Antipatterns
13. SODA Tool (5/7)
Values for all
metrics (from the
associated rule
card), for each
service
13
Francis Palma,
Specification and Detection of SOA Antipatterns
14. SODA Tool (6/7)
Exposes the
generated
association
rules.
14
Francis Palma,
Specification and Detection of SOA Antipatterns
15. SODA Tool (7/7)
Helps to visualize
the suspicious
service(s) within
the analyzed SBS.
15
Francis Palma,
Specification and Detection of SOA Antipatterns
16. Results (1/3): Detection
Detection of Bottleneck Service: Mediator and Patient DAO
16
Francis Palma,
Specification and Detection of SOA Antipatterns
17. Results (2/3): Detection
Detection of Duplicated Service: Mediator and Communication
17
Francis Palma,
Specification and Detection of SOA Antipatterns
20. Future Work
- Add more SOA antipatterns to SOFA
- Develop an Eclipse plugin to support SOA antipatterns detection
- Adapt other technologies, e.g., RESTful services, SOAP services
in the SODA tool
- Introduce refactoring module in SODA
20
Francis Palma,
Specification and Detection of SOA Antipatterns