SlideShare a Scribd company logo
1 of 58
Download to read offline
Specification and Detection of SOA Antipatterns
in Web Services
Francis Palma, Naouel Moha, Guy Tremblay, and Yann-Gaël Guéhéneuc.
ECSA 2014, Vienna, Austria.
Problem Context (1/3)
HTTP, SOAP, WSDL,
UDDI, WS-Technologies
• Service-based systems composed of Web services evolve:
- degrade design, quality of service
- cause the appearance of common poor solutions: antipatterns
- antipatterns might exist since the beginning
• Antipatterns are ineffective solutions and have negative consequences
[A. Koenig, 1995].
Specification and Detection of SOA Antipatterns in Web Services
Service Consumer
Service Provider
Service-based system
2
Problem Context (2/3)
Examples of Antipatterns in Web services:
Fine Grained Web Service*
3
God Object Web Service*
Specification and Detection of SOA Antipatterns in Web Services
 Many Methods
 Very Low Cohesion
 High Response Time
 Low Availability
 Few Methods
 Low Cohesion
 Very High Coupling
* J2EE AntiPatterns, Bill Dudney, Stephen Asbury, Joseph K. Krozak, Kevin Wittkopf, ISBN: 978-0-471-14615-5, August 2003
Problem Context (3/3)
An automatic approach to detect SOA antipatterns in Web services may
support their easy maintenance and evolution, and high reusability.
Poor performance
Hard for comprehension
Low maintainability
Hard for evolution
Expensive maintenance life
Low reusability
4
+
Specification and Detection of SOA Antipatterns in Web Services
Outline
- Our Contribution
- Related Work
- Details on our Approach (SODA-W)
- Validation
Outline
- Our Contribution
- Related Work
- Details on our Approach (SODA-W)
- Validation
Contribution
Goal: To assess the design and quality of service of Web services
• SODA-W (Service Oriented Detection for Antipatterns in Web services), a novel
and innovative approach
- inspired from SODA (Service Oriented Detection for Antipatterns), an approach
to detect antipatterns in SCA (Service Component Architecture) systems
• SOFA (Service Oriented Framework for Antipatterns), a framework,
- specifies SOA antipatterns and detect them automatically
- analyses service interfaces syntactically and semantically
- performs static and dynamic analysis
5Specification and Detection of SOA Antipatterns in Web Services
Outline
- Our Contribution
- Related Work
- Details on our Approach (SODA-W)
- Validation
Related Work on Web Services (1/2)
Specification and Detection of SOA Antipatterns in Web Services 6
Heuristics-based, Rodriguez et al.
Related Work on Web Services (1/2)
Specification and Detection of SOA Antipatterns in Web Services 6
Heuristics-based, Rodriguez et al.
Rule cards-based SODA, Moha et al.
Related Work on Web Services (1/2)
Specification and Detection of SOA Antipatterns in Web Services 6
Heuristics-based, Rodriguez et al.
Rule cards-based SODA, Moha et al.
Guidelines to improve service
descriptions & search queries
EasySOC, Rodriguez et al.
Related Work on Web Services (1/2)
Specification and Detection of SOA Antipatterns in Web Services 6
Heuristics-based, Rodriguez et al.
Rule cards-based SODA, Moha et al.
Correlation analysis between OO & WSDL metrics,
Coscia et al.
2013
2009
Survey on service cohesion,
coupling, and reusability metrics,
Sindhgatta et al.
Guidelines to improve service
descriptions & search queries
EasySOC, Rodriguez et al.
Related Work on Web Services (2/2)
Survey on service cohesion,
coupling, and reusability metrics,
Sindhgatta et al.
Specification and Detection of SOA Antipatterns in Web Services 7
Heuristics-based, Rodriguez et al.
Rule cards-based SODA, Moha et al.
Correlation analysis between OO & WSDL metrics,
Coscia et al.
- Specific SCA technology
- No semantic analysis
- Static analysis of WSDLs
- No antipatterns specification
- No analysis of design
- No semantic analysis
- Static analysis of WSDLs
- No specification of antipatterns
- No semantic analysis
- No design analysis
- No dedicated detection approach
- No design analysis
- No dedicated detection approach
2013
2009
Guidelines to improve service
descriptions & search queries
EasySOC, Rodriguez et al.
Outline
- Our Contribution
- Related Work
- Details on our Approach (SODA-W)
- Validation
Approach (1/7): SODA-W
SODA-W: Service Oriented Detection for Antipatterns in Web services
- inspired from SODA (Service Oriented Detection for Antipatterns)
8Specification and Detection of SOA Antipatterns in Web Services
Approach (2/7): Specification
1. Specify SOA Antipatterns
in Web services
Domain Analysis
Domain Specific
Language
Rule Cards of
Antipatterns
God Object Web Service corresponds to a Web service that
contains a large number of operations related to different
business abstractions. Often the client interactions break due to
frequent changes in the Web service definition, hence cause low
availability. This antipattern affects the reusability because the
operations are very low cohesive. Moreover, being overloaded
with a multitude of operations, this antipattern may also result
in high response time [Dudney et al. 2003].
BNF Grammar
9Specification and Detection of SOA Antipatterns in Web Services
Approach (3/7): Domain Specific Language
Specification and Detection of SOA Antipatterns in Web Services 10
Approach (4/7): Example Rule Cards
God Object Web Service:
1 RULE_CARD: GodObjectWebService {
2 RULE: GodObjectWebService { INTER LowCohesion MultiOperation HighRT LowA };
3 RULE: LowCohesion { COH VERY_LOW };
4 RULE: MultiOperation { NOD HIGH };
5 RULE: HighRT { RT VERY_HIGH };
6 RULE: LowA { A LOW };
7 };
Fine Grained Web Service:
1 RULE_CARD: FineGrainedWebService {
2 RULE: FineGrainedWebService { INTER FewOperation HighCoupling LowCohesion };
3 RULE: FewOperation { NOD LOW };
4 RULE: HighCoupling { CPL VERY_HIGH };
5 RULE: LowCohesion { COH LOW };
6 };
Specification and Detection of SOA Antipatterns in Web Services 11
Approach (5/7): Generation
Specification and Detection of SOA Antipatterns in Web Services 12
Approach (5/7): Generation (on going)
Model Driven Engineering (MDE)
Specification and Detection of SOA Antipatterns in Web Services 12
Parsing
1
Visiting &
Replacing
2
Templates
Models of Rule Cards
Approach (6/7): Detection
SOFA: Service Oriented Framework for Antipatterns
Specification and Detection of SOA Antipatterns in Web Services 13
Approach (7/7): Underlying Framework
14Specification and Detection of SOA Antipatterns in Web Services
Outline
- Our Contribution
- Related Work
- Details on our Approach (SODA-W)
- Validation
Experiments (1/5): Setup
 Purpose is to show,
- the generality of our DSL
- the preciseness of our detection algorithms, and
- the extensibility of our DSL and SOFA framework
 Subjects:
- 10 common SOA antipatterns in Web services
 Objects:
- 13 weather-related Web services
- 109 finance-related Web services
15Specification and Detection of SOA Antipatterns in Web Services
Experiments (2/5): Hypotheses
H1. Generality
Our DSL allows the specification of various SOA antipatterns, from simple to more
complex ones
H2. Accuracy
The detection algorithms have an average precision of more than 75% and a recall of
100%, i.e., more than three-quarters of detected antipatterns are true positive and we
do not miss any existing antipatterns
H3. Extensibility
Our DSL and SOFA framework are extensible for adding new metrics and new SOA
antipatterns
16Specification and Detection of SOA Antipatterns in Web Services
Experiments (3/5): Subjects
We specify 10 SOA antipatterns:
17
1. Ambiguous Name
2. Chatty Web Service
3. CRUDy Interface
4. Data Web Service
5. Duplicated Web Service
6. Fine Grained Web Service
7. God Object Web Service
8. Low Cohesive Operations in the Same PortType
9. Maybe It's Not RPC
10. Redundant PortTypes
Ambiguous Name
Chatty Web Service
Specification and Detection of SOA Antipatterns in Web Services
 Low Cohesion
 High Accessor Methods
 High Methods
 High Response Time
 Low Availability
 Very Long or Short Signatures
 Too Many General Terms
 Verbs in Message Names
 Multiple Verbs in Operation Signatures
Experiments (4/5): Objects
Web service search engines:
 eil.cs.txstate.edu/ServiceXplorer
 programmableweb.com
 myexperiment.org
 taverna.org.uk, etc.
18
The set of Web services includes:
1. 13 weather-related Web services (keyword ‘Weather’)
2. 109 finance-related Web services (keyword ‘Finance’)
The complete list of analysed Web services is available on sofa.uqam.ca/soda-w/
Specification and Detection of SOA Antipatterns in Web Services
Experiments (5/5): Process
1. Specify 10 Web services-specific SOA antipatterns using rule cards
2. Generate detection algorithm for each antipattern
3. Apply these algorithms on 122 Web services
4. Validate detection results by analysing the suspicious services manually
5. Use precision, recall, and specificity for accuracy measurement
19Specification and Detection of SOA Antipatterns in Web Services
Outline
- Our Contribution
- Related Work
- Details on our Approach (SODA-W)
- Validation Results
Results (1/6): Detection
20
RULE_CARD: AmbiguousName {
RULE: AmbiguousName {INTER GeneralTerm ShortORLongSignature VerbedMessage MultiVerbedOperation};
RULE: ShortORLongSignature {UNION ShortSignature LongSignature};
RULE: LongSignature {ALS VERY_HIGH};
RULE: ShortSignature {ALS VERY_LOW};
RULE: GeneralTerm {RGTS HIGH};
RULE: VerbedMessage {NVMS > 0};
RULE: MultiVerbedOperation {NVOS > 1};
};
Detection of Ambiguous Name antipattern in AIP3_PV_Impact Web service.
Specification and Detection of SOA Antipatterns in Web Services
 Very Long or Short Signatures
 Too Many General Terms
 Verbs in Message Names
 Multiple Verbs in Operation Signatures
Results (2/6): Detection
31
Detection of Chatty Web Service antipattern in TaarifCustoms Web service.
RULE_CARD: ChattyWebService {
RULE: ChattyWebService {INTER LowCohesion HighDataAccessor MultiOperation LowPerformance};
RULE: LowCohesion {COH LOW};
RULE: HighDataAccessor {ANAO VERY_HIGH};
RULE: MultiOperation {NOD HIGH};
RULE: LowPerformance {INTER HighRT LowA};
RULE: HighRT {RT HIGH};
RULE: LowA {A LOW};
};
Specification and Detection of SOA Antipatterns in Web Services
• Response time is calculated using SAAJ1 API and SoapUI2.
(1) https://saaj.java.net/ (2) www.soapui.org
23
 Low Cohesion
 High Accessor Methods
 High Methods
 High Response Time
 Low Availability
Results (3/6): Hypothesis H1
H1. Generality: Our DSL allows the specification of various SOA antipatterns, from
simple to more complex ones
22Specification and Detection of SOA Antipatterns in Web Services
1 RULE_CARD: LowCohesiveOperations {
2 RULE: LowCohesiveOperations { INTER MultiOperation LowCohesivePT };
3 RULE: MultiOperation { NOD HIGH };
4 RULE: LowCohesivePT { ARIO LOW };
5 };
Results (3/6): Hypothesis H1
H1. Generality: Our DSL allows the specification of various SOA antipatterns, from
simple to more complex ones
22
1 RULE_CARD: CRUDyInterface {
2 RULE: CRUDyInterface { INTER ChattyInterface HighCRUDOperation };
3 RULE: ChattyInterface { RULE_CARD: ChattyWebService };
4 RULE: HighCRUDOperation { NCO > 1 };
5 };
1 RULE_CARD: ChattyWebService {
2 RULE: ChattyWebService { INTER LowCohesion HighDataAccessor
MultiOperation LowPerformance };
3 RULE: LowCohesion { COH LOW };
4 RULE: HighDataAccessor { ANAO VERY_HIGH };
5 RULE: MultiOperation { NOD HIGH };
6 RULE: LowPerformance { INTER HighRT LowA };
7 RULE: HighRT { RT HIGH };
8 RULE: LowA { A LOW };
9 };
Specification and Detection of SOA Antipatterns in Web Services
1 RULE_CARD: LowCohesiveOperations {
2 RULE: LowCohesiveOperations { INTER MultiOperation LowCohesivePT };
3 RULE: MultiOperation { NOD HIGH };
4 RULE: LowCohesivePT { ARIO LOW };
5 };
Results (3/6): Hypothesis H1
H1. Generality: Our DSL allows the specification of various SOA antipatterns, from
simple to more complex ones ...YES!!!
22Specification and Detection of SOA Antipatterns in Web Services
1 RULE_CARD: CRUDyInterface {
2 RULE: CRUDyInterface { INTER ChattyInterface HighCRUDOperation };
3 RULE: ChattyInterface { RULE_CARD: ChattyWebService };
4 RULE: HighCRUDOperation { NCO > 1 };
5 };
1 RULE_CARD: ChattyWebService {
2 RULE: ChattyWebService { INTER LowCohesion HighDataAccessor
MultiOperation LowPerformance };
3 RULE: LowCohesion { COH LOW };
4 RULE: HighDataAccessor { ANAO VERY_HIGH };
5 RULE: MultiOperation { NOD HIGH };
6 RULE: LowPerformance { INTER HighRT LowA };
7 RULE: HighRT { RT HIGH };
8 RULE: LowA { A LOW };
9 };
1 RULE_CARD: LowCohesiveOperations {
2 RULE: LowCohesiveOperations { INTER MultiOperation LowCohesivePT };
3 RULE: MultiOperation { NOD HIGH };
4 RULE: LowCohesivePT { ARIO LOW };
5 };
Results (4/6): Hypothesis H2
H2. Accuracy: The detection algorithms have an average precision of more than 75%
and a recall of 100%, i.e., more than three-quarters of detected antipatterns are true
positive and we do not miss any existing antipatterns
23
Experiments
Detection
Times
Detected
(True Positive)
Manually
Validated
Precision Recall Specificity
13 Weather
Web services
102.19s
7
(6)
6 85.71% 100% 98%
109 Finance
Web services
192.91s
24
(22)
22 91.67% 100% 99%
Average - - - 88.69% 100% 98.5%
Specification and Detection of SOA Antipatterns in Web Services
Results (4/6): Hypothesis H2
H2. Accuracy: The detection algorithms have an average precision of more than 75%
and a recall of 100%, i.e., more than three-quarters of detected antipatterns are true
positive and we do not miss any existing antipatterns ...YES!!!
23
Experiments
Detection
Times
Detected
(True Positive)
Manually
Validated
Precision Recall Specificity
13 Weather
Web services
102.19s
7
(6)
6 85.71% 100% 98%
109 Finance
Web services
192.91s
24
(22)
22 91.67% 100% 99%
Average - - - 88.69% 100% 98.5%
Specification and Detection of SOA Antipatterns in Web Services
Results (5/6): Hypothesis H3
H3. Extensibility: Our DSL and SOFA framework are extensible for adding new
metrics and new SOA antipatterns
24Specification and Detection of SOA Antipatterns in Web Services
Results (5/6): Hypothesis H3
H3. Extensibility: Our DSL and SOFA framework are extensible for adding new
metrics and new SOA antipatterns
24
- 10 SCA-specific SOA antipatterns
using SODA
- 10 Web service-specific SOA
antipatterns using SODA-W
Moreover, SOFA supports
the detection of,
Specification and Detection of SOA Antipatterns in Web Services
Results (5/6): Hypothesis H3
H3. Extensibility: Our DSL and SOFA framework are extensible for adding new
metrics and new SOA antipatterns ...YES!!!
24Specification and Detection of SOA Antipatterns in Web Services
- 10 SCA-specific SOA antipatterns
using SODA
- 10 Web service-specific SOA
antipatterns using SODA-W
Moreover, SOFA supports
the detection of,
Results (6/6): Validation Summary
 Specify and implement detection algorithms for 10 Web service-specific SOA
antipatterns
 Detect 10 Web service-specific SOA antipatterns on two sets of Web services
 13 weather-related Web services
 109 finance-related Web services
 Average precision of our detection algorithms is 88.69% and recall is 100%
 Average specificity of our rule cards is 98.5%
 Detail results and more materials on sofa.uqam.ca/soda-w/
25Specification and Detection of SOA Antipatterns in Web Services
Conclusion
Specification and Detection of SOA Antipatterns in Web Services 26
Conclusion
Specification and Detection of SOA Antipatterns in Web Services 26
Conclusion
Specification and Detection of SOA Antipatterns in Web Services 26
Conclusion
Specification and Detection of SOA Antipatterns in Web Services 26
Future Work
- Additional experiments with more Web services and SOA antipatterns
- Correction through adding recommendation support for service developers
- Focus on other SOA styles and technologies, e.g., RESTful services
Specification and Detection of SOA Antipatterns in Web Services 27
Thank You… Questions ?
Antipattern Template
Generated Code
Related Work (1/2)
SOAOO
- Adopt OO design style
- Services as first-class entities
- Highly dynamic, also static
- Adopt procedural design style
- Classes as first-class entities
- Mainly static, also dynamic analysis
Specification and Detection of SOA Antipatterns in Web Services 6
Books/Articles:
• J2EE Antipatterns, Dudney et al. 2003
• SOA Patterns, Rotem-Gal-Oz et al. 2012
• Crucial SO Antipatterns, Král and Žemlička, 2003
Detection Methods in OO:
• Kessentini et al. (2011), Munro et al. (2005), Settas et al. (2011), ...
► OO detection methods and tools cannot be directly applied to SOA:
51
52
RULE CARD: DataWebService {
RULE: DataWebService {INTER HighCohesion PrimitiveParameter HighAccessor LowParameter};
RULE: HighCohesion {COH HIGH};
RULE: PrimitiveParameter {ANPT HIGH};
RULE: HighAccessor {ANAO HIGH};
RULE: LowParameter {ANP LOW};
};
RULE CARD: LowCohesiveOperations {
RULE: LowCohesiveOperations {INTER MultiOperation LowCohesivePT};
RULE: MultiOperation {NOD HIGH};
RULE: LowCohesivePT {ARIO LOW};
};
RULE CARD: AmbiguousName {
RULE: AmbiguousName {INTER GeneralTerm ShortORLongSignature VerbedMessage MultiVerbedOperation};
RULE: ShortORLongSignature {UNION ShortSignature LongSignature};
RULE: LongSignature {ALS VERY HIGH};
RULE: ShortSignature {ALS VERY LOW};
RULE: GeneralTerm {RGTS HIGH};
RULE: VerbedMessage {NVMS > 0};
RULE: MultiVerbedOperation {NVOS > 1};
};
RULE CARD: DuplicatedService {
RULE: DuplicatedWebService {INTER IdenticalPortType IdenticalOperation};
RULE: IdenticalPortType {ARIP HIGH};
RULE: IdenticalOperation {ARIO HIGH};
};
53
RULE CARD: ChattyWebService {
RULE: ChattyWebService {INTER LowCohesion HighDataAccessor MultiOperation LowPerformance};
RULE: LowCohesion {COH LOW};
RULE: HighDataAccessor {ANAO VERY HIGH};
RULE: MultiOperation {NOD HIGH};
RULE: LowPerformance {INTER HighRT LowA};
RULE: HighRT {RT HIGH};
RULE: LowA {A LOW};
};
RULE CARD: CRUDyInterface {
RULE: CRUDyInterface {INTER ChattyInterface HighCRUDOperation};
RULE: ChattyInterface { RULE CARD: ChattyWebService};
RULE: HighCRUDOperation {NCO > 1};
};
RULE CARD: RedundantPortType {
RULE: RedundantPortType {INTER MultiPortType HighCohesivePT};
RULE: MultiPortType {NPT > 1};
RULE: MultiOperations {NOPT > 1};
RULE: HighCohesivePT {ARIP VERY HIGH};
};
RULE CARD: MaybeItsNotRPC {
RULE: MaybeItsNotRPC {INTER HighRT HighCRUDOperation HighParameter};
RULE: HighRT {RT HIGH};
RULE: HighCRUDOperation {NCO VERY HIGH};
RULE: HighParameter {ANP HIGH};
};
54
SCA vs. Web Services
55
Comparison with State-of-the-art approaches
Threats to Validity
 External Validity:
Generalisation to other large set of Web services
 Internal Validity:
Detection depends on services provided by SOFA . We experimented on a
representative set of Web service-specific antipatterns
 Construct Validity:
Rule cards are subjective. We define rule cards based on thorough literature review
and domain analysis
Specification and Detection of SOA Antipatterns in Web Services 26
Related Work (1/2)
Specification and Detection of SOA Antipatterns in Web Services 6
Books/Articles:
• J2EE Antipatterns, Dudney et al. 2003
• SOA Patterns, Rotem-Gal-Oz et al. 2012
• Crucial SO Antipatterns, Král and Žemlička, 2003
Detection Methods in OO:
• Kessentini et al. (2011), Munro et al. (2005), Settas et al. (2011), ...
Related Work (1/2)
SOAOO
- Adopt OO design style
- Services as first-class entities
- Highly dynamic, also static
- Adopt procedural design style
- Classes as first-class entities
- Mainly static, also dynamic analysis
Specification and Detection of SOA Antipatterns in Web Services 6
Books/Articles:
• J2EE Antipatterns, Dudney et al. 2003
• SOA Patterns, Rotem-Gal-Oz et al. 2012
• Crucial SO Antipatterns, Král and Žemlička, 2003
Detection Methods in OO:
• Kessentini et al. (2011), Munro et al. (2005), Settas et al. (2011), ...
► OO detection methods and tools cannot be directly applied to SOA:

More Related Content

Similar to Specification and Detection of SOA Antipatterns in Web Services

Realizing Service Finder at ESTC 2008
Realizing Service Finder at ESTC 2008Realizing Service Finder at ESTC 2008
Realizing Service Finder at ESTC 2008Emanuele Della Valle
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptPtidej Team
 
Reliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software ApplicationsReliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software ApplicationsCSEIJJournal
 
A new approach to gather similar operations extracted from web services
A new approach to gather similar operations extracted from web servicesA new approach to gather similar operations extracted from web services
A new approach to gather similar operations extracted from web servicesIJECEIAES
 
web service recommendation via exploiting location and qo s information
web service recommendation via exploiting location and qo s informationweb service recommendation via exploiting location and qo s information
web service recommendation via exploiting location and qo s informationswathi78
 
Basic Network Support Certification
Basic Network Support CertificationBasic Network Support Certification
Basic Network Support CertificationVskills
 
Webservicerecommendationviaexploitinglocationandqosinformation
WebservicerecommendationviaexploitinglocationandqosinformationWebservicerecommendationviaexploitinglocationandqosinformation
WebservicerecommendationviaexploitinglocationandqosinformationShakas Technologies
 
Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...
Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...
Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...CA Technologies
 
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Tom Eston
 
Evaluation of a Framework for Integrated Web Services
Evaluation of a Framework for Integrated Web ServicesEvaluation of a Framework for Integrated Web Services
Evaluation of a Framework for Integrated Web ServicesIRJET Journal
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture Prabhat gangwar
 
Investigating the Change-proneness of Service Patterns and Antipatterns
Investigating the Change-proneness of Service Patterns and AntipatternsInvestigating the Change-proneness of Service Patterns and Antipatterns
Investigating the Change-proneness of Service Patterns and AntipatternsFrancis Palma
 
JPJ1453 Web Service Recommendation via Exploiting Location and QoS Information
JPJ1453 Web Service Recommendation via Exploiting Location and QoS InformationJPJ1453 Web Service Recommendation via Exploiting Location and QoS Information
JPJ1453 Web Service Recommendation via Exploiting Location and QoS Informationchennaijp
 
Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference Gerardo Pardo-Castellote
 
International Journal of Computer Science, Engineering and Information Techno...
International Journal of Computer Science, Engineering and Information Techno...International Journal of Computer Science, Engineering and Information Techno...
International Journal of Computer Science, Engineering and Information Techno...ijcseit
 
WEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEW
WEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEWWEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEW
WEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEWijcseit
 
Web service discovery methods and techniques a review
Web service discovery methods and techniques a reviewWeb service discovery methods and techniques a review
Web service discovery methods and techniques a reviewijcseit
 

Similar to Specification and Detection of SOA Antipatterns in Web Services (20)

Realizing Service Finder at ESTC 2008
Realizing Service Finder at ESTC 2008Realizing Service Finder at ESTC 2008
Realizing Service Finder at ESTC 2008
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
Reliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software ApplicationsReliability Improvement with PSP of Web-Based Software Applications
Reliability Improvement with PSP of Web-Based Software Applications
 
A new approach to gather similar operations extracted from web services
A new approach to gather similar operations extracted from web servicesA new approach to gather similar operations extracted from web services
A new approach to gather similar operations extracted from web services
 
web service recommendation via exploiting location and qo s information
web service recommendation via exploiting location and qo s informationweb service recommendation via exploiting location and qo s information
web service recommendation via exploiting location and qo s information
 
Basic Network Support Certification
Basic Network Support CertificationBasic Network Support Certification
Basic Network Support Certification
 
Webservicerecommendationviaexploitinglocationandqosinformation
WebservicerecommendationviaexploitinglocationandqosinformationWebservicerecommendationviaexploitinglocationandqosinformation
Webservicerecommendationviaexploitinglocationandqosinformation
 
Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...
Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...
Tech Talk: Leverage the combined power of CA Unified Infrastructure Managemen...
 
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
 
Evaluation of a Framework for Integrated Web Services
Evaluation of a Framework for Integrated Web ServicesEvaluation of a Framework for Integrated Web Services
Evaluation of a Framework for Integrated Web Services
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture
 
Soca14.ppt
Soca14.pptSoca14.ppt
Soca14.ppt
 
Soca14.ppt
Soca14.pptSoca14.ppt
Soca14.ppt
 
Investigating the Change-proneness of Service Patterns and Antipatterns
Investigating the Change-proneness of Service Patterns and AntipatternsInvestigating the Change-proneness of Service Patterns and Antipatterns
Investigating the Change-proneness of Service Patterns and Antipatterns
 
JPJ1453 Web Service Recommendation via Exploiting Location and QoS Information
JPJ1453 Web Service Recommendation via Exploiting Location and QoS InformationJPJ1453 Web Service Recommendation via Exploiting Location and QoS Information
JPJ1453 Web Service Recommendation via Exploiting Location and QoS Information
 
C09
C09C09
C09
 
Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference Remote Procedure Call over DDS - London Connext DDS Conference
Remote Procedure Call over DDS - London Connext DDS Conference
 
International Journal of Computer Science, Engineering and Information Techno...
International Journal of Computer Science, Engineering and Information Techno...International Journal of Computer Science, Engineering and Information Techno...
International Journal of Computer Science, Engineering and Information Techno...
 
WEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEW
WEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEWWEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEW
WEB SERVICE DISCOVERY METHODS AND TECHNIQUES: A REVIEW
 
Web service discovery methods and techniques a review
Web service discovery methods and techniques a reviewWeb service discovery methods and techniques a review
Web service discovery methods and techniques a review
 

More from Francis Palma

Using Interactive GA for Requirements Prioritization
Using Interactive GA for Requirements PrioritizationUsing Interactive GA for Requirements Prioritization
Using Interactive GA for Requirements PrioritizationFrancis Palma
 
Using Interactive Genetic Algorithm for Requirements Prioritization
Using Interactive Genetic Algorithm for Requirements PrioritizationUsing Interactive Genetic Algorithm for Requirements Prioritization
Using Interactive Genetic Algorithm for Requirements Prioritization Francis Palma
 
Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...Francis Palma
 
Specification and Detection of SOA Antipatterns
Specification and Detection of SOA AntipatternsSpecification and Detection of SOA Antipatterns
Specification and Detection of SOA AntipatternsFrancis Palma
 
Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentFrancis Palma
 
Detection of SOA Antipatterns
Detection of SOA AntipatternsDetection of SOA Antipatterns
Detection of SOA AntipatternsFrancis Palma
 
Unifying Service Oriented Technologies for the Specification and Detection of...
Unifying Service Oriented Technologies for the Specification and Detection of...Unifying Service Oriented Technologies for the Specification and Detection of...
Unifying Service Oriented Technologies for the Specification and Detection of...Francis Palma
 
A Study on the Taxonomy of Service Antipatterns
A Study on the Taxonomy of Service AntipatternsA Study on the Taxonomy of Service Antipatterns
A Study on the Taxonomy of Service AntipatternsFrancis Palma
 
Specification and Detection of Business Process Antipatterns
Specification and Detection of Business Process AntipatternsSpecification and Detection of Business Process Antipatterns
Specification and Detection of Business Process AntipatternsFrancis Palma
 
Are RESTful APIs Well-designed? Detection of their Linguistic (Anti)Patterns
Are RESTful APIs Well-designed? Detection of their Linguistic (Anti)PatternsAre RESTful APIs Well-designed? Detection of their Linguistic (Anti)Patterns
Are RESTful APIs Well-designed? Detection of their Linguistic (Anti)PatternsFrancis Palma
 
Detection of REST Patterns and Antipatterns: A Heuristics-based Approach
Detection of REST Patterns and Antipatterns: A Heuristics-based ApproachDetection of REST Patterns and Antipatterns: A Heuristics-based Approach
Detection of REST Patterns and Antipatterns: A Heuristics-based ApproachFrancis Palma
 
Detection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL PerspectiveDetection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL PerspectiveFrancis Palma
 

More from Francis Palma (12)

Using Interactive GA for Requirements Prioritization
Using Interactive GA for Requirements PrioritizationUsing Interactive GA for Requirements Prioritization
Using Interactive GA for Requirements Prioritization
 
Using Interactive Genetic Algorithm for Requirements Prioritization
Using Interactive Genetic Algorithm for Requirements PrioritizationUsing Interactive Genetic Algorithm for Requirements Prioritization
Using Interactive Genetic Algorithm for Requirements Prioritization
 
Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...Interactive Requirements Prioritization Using Search Based Optimization Techn...
Interactive Requirements Prioritization Using Search Based Optimization Techn...
 
Specification and Detection of SOA Antipatterns
Specification and Detection of SOA AntipatternsSpecification and Detection of SOA Antipatterns
Specification and Detection of SOA Antipatterns
 
Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software Development
 
Detection of SOA Antipatterns
Detection of SOA AntipatternsDetection of SOA Antipatterns
Detection of SOA Antipatterns
 
Unifying Service Oriented Technologies for the Specification and Detection of...
Unifying Service Oriented Technologies for the Specification and Detection of...Unifying Service Oriented Technologies for the Specification and Detection of...
Unifying Service Oriented Technologies for the Specification and Detection of...
 
A Study on the Taxonomy of Service Antipatterns
A Study on the Taxonomy of Service AntipatternsA Study on the Taxonomy of Service Antipatterns
A Study on the Taxonomy of Service Antipatterns
 
Specification and Detection of Business Process Antipatterns
Specification and Detection of Business Process AntipatternsSpecification and Detection of Business Process Antipatterns
Specification and Detection of Business Process Antipatterns
 
Are RESTful APIs Well-designed? Detection of their Linguistic (Anti)Patterns
Are RESTful APIs Well-designed? Detection of their Linguistic (Anti)PatternsAre RESTful APIs Well-designed? Detection of their Linguistic (Anti)Patterns
Are RESTful APIs Well-designed? Detection of their Linguistic (Anti)Patterns
 
Detection of REST Patterns and Antipatterns: A Heuristics-based Approach
Detection of REST Patterns and Antipatterns: A Heuristics-based ApproachDetection of REST Patterns and Antipatterns: A Heuristics-based Approach
Detection of REST Patterns and Antipatterns: A Heuristics-based Approach
 
Detection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL PerspectiveDetection of Process Antipatterns: An BPEL Perspective
Detection of Process Antipatterns: An BPEL Perspective
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Specification and Detection of SOA Antipatterns in Web Services

  • 1. Specification and Detection of SOA Antipatterns in Web Services Francis Palma, Naouel Moha, Guy Tremblay, and Yann-Gaël Guéhéneuc. ECSA 2014, Vienna, Austria.
  • 2. Problem Context (1/3) HTTP, SOAP, WSDL, UDDI, WS-Technologies • Service-based systems composed of Web services evolve: - degrade design, quality of service - cause the appearance of common poor solutions: antipatterns - antipatterns might exist since the beginning • Antipatterns are ineffective solutions and have negative consequences [A. Koenig, 1995]. Specification and Detection of SOA Antipatterns in Web Services Service Consumer Service Provider Service-based system 2
  • 3. Problem Context (2/3) Examples of Antipatterns in Web services: Fine Grained Web Service* 3 God Object Web Service* Specification and Detection of SOA Antipatterns in Web Services  Many Methods  Very Low Cohesion  High Response Time  Low Availability  Few Methods  Low Cohesion  Very High Coupling * J2EE AntiPatterns, Bill Dudney, Stephen Asbury, Joseph K. Krozak, Kevin Wittkopf, ISBN: 978-0-471-14615-5, August 2003
  • 4. Problem Context (3/3) An automatic approach to detect SOA antipatterns in Web services may support their easy maintenance and evolution, and high reusability. Poor performance Hard for comprehension Low maintainability Hard for evolution Expensive maintenance life Low reusability 4 + Specification and Detection of SOA Antipatterns in Web Services
  • 5. Outline - Our Contribution - Related Work - Details on our Approach (SODA-W) - Validation
  • 6. Outline - Our Contribution - Related Work - Details on our Approach (SODA-W) - Validation
  • 7. Contribution Goal: To assess the design and quality of service of Web services • SODA-W (Service Oriented Detection for Antipatterns in Web services), a novel and innovative approach - inspired from SODA (Service Oriented Detection for Antipatterns), an approach to detect antipatterns in SCA (Service Component Architecture) systems • SOFA (Service Oriented Framework for Antipatterns), a framework, - specifies SOA antipatterns and detect them automatically - analyses service interfaces syntactically and semantically - performs static and dynamic analysis 5Specification and Detection of SOA Antipatterns in Web Services
  • 8. Outline - Our Contribution - Related Work - Details on our Approach (SODA-W) - Validation
  • 9. Related Work on Web Services (1/2) Specification and Detection of SOA Antipatterns in Web Services 6 Heuristics-based, Rodriguez et al.
  • 10. Related Work on Web Services (1/2) Specification and Detection of SOA Antipatterns in Web Services 6 Heuristics-based, Rodriguez et al. Rule cards-based SODA, Moha et al.
  • 11. Related Work on Web Services (1/2) Specification and Detection of SOA Antipatterns in Web Services 6 Heuristics-based, Rodriguez et al. Rule cards-based SODA, Moha et al. Guidelines to improve service descriptions & search queries EasySOC, Rodriguez et al.
  • 12. Related Work on Web Services (1/2) Specification and Detection of SOA Antipatterns in Web Services 6 Heuristics-based, Rodriguez et al. Rule cards-based SODA, Moha et al. Correlation analysis between OO & WSDL metrics, Coscia et al. 2013 2009 Survey on service cohesion, coupling, and reusability metrics, Sindhgatta et al. Guidelines to improve service descriptions & search queries EasySOC, Rodriguez et al.
  • 13. Related Work on Web Services (2/2) Survey on service cohesion, coupling, and reusability metrics, Sindhgatta et al. Specification and Detection of SOA Antipatterns in Web Services 7 Heuristics-based, Rodriguez et al. Rule cards-based SODA, Moha et al. Correlation analysis between OO & WSDL metrics, Coscia et al. - Specific SCA technology - No semantic analysis - Static analysis of WSDLs - No antipatterns specification - No analysis of design - No semantic analysis - Static analysis of WSDLs - No specification of antipatterns - No semantic analysis - No design analysis - No dedicated detection approach - No design analysis - No dedicated detection approach 2013 2009 Guidelines to improve service descriptions & search queries EasySOC, Rodriguez et al.
  • 14. Outline - Our Contribution - Related Work - Details on our Approach (SODA-W) - Validation
  • 15. Approach (1/7): SODA-W SODA-W: Service Oriented Detection for Antipatterns in Web services - inspired from SODA (Service Oriented Detection for Antipatterns) 8Specification and Detection of SOA Antipatterns in Web Services
  • 16. Approach (2/7): Specification 1. Specify SOA Antipatterns in Web services Domain Analysis Domain Specific Language Rule Cards of Antipatterns God Object Web Service corresponds to a Web service that contains a large number of operations related to different business abstractions. Often the client interactions break due to frequent changes in the Web service definition, hence cause low availability. This antipattern affects the reusability because the operations are very low cohesive. Moreover, being overloaded with a multitude of operations, this antipattern may also result in high response time [Dudney et al. 2003]. BNF Grammar 9Specification and Detection of SOA Antipatterns in Web Services
  • 17. Approach (3/7): Domain Specific Language Specification and Detection of SOA Antipatterns in Web Services 10
  • 18. Approach (4/7): Example Rule Cards God Object Web Service: 1 RULE_CARD: GodObjectWebService { 2 RULE: GodObjectWebService { INTER LowCohesion MultiOperation HighRT LowA }; 3 RULE: LowCohesion { COH VERY_LOW }; 4 RULE: MultiOperation { NOD HIGH }; 5 RULE: HighRT { RT VERY_HIGH }; 6 RULE: LowA { A LOW }; 7 }; Fine Grained Web Service: 1 RULE_CARD: FineGrainedWebService { 2 RULE: FineGrainedWebService { INTER FewOperation HighCoupling LowCohesion }; 3 RULE: FewOperation { NOD LOW }; 4 RULE: HighCoupling { CPL VERY_HIGH }; 5 RULE: LowCohesion { COH LOW }; 6 }; Specification and Detection of SOA Antipatterns in Web Services 11
  • 19. Approach (5/7): Generation Specification and Detection of SOA Antipatterns in Web Services 12
  • 20. Approach (5/7): Generation (on going) Model Driven Engineering (MDE) Specification and Detection of SOA Antipatterns in Web Services 12 Parsing 1 Visiting & Replacing 2 Templates Models of Rule Cards
  • 21. Approach (6/7): Detection SOFA: Service Oriented Framework for Antipatterns Specification and Detection of SOA Antipatterns in Web Services 13
  • 22. Approach (7/7): Underlying Framework 14Specification and Detection of SOA Antipatterns in Web Services
  • 23. Outline - Our Contribution - Related Work - Details on our Approach (SODA-W) - Validation
  • 24. Experiments (1/5): Setup  Purpose is to show, - the generality of our DSL - the preciseness of our detection algorithms, and - the extensibility of our DSL and SOFA framework  Subjects: - 10 common SOA antipatterns in Web services  Objects: - 13 weather-related Web services - 109 finance-related Web services 15Specification and Detection of SOA Antipatterns in Web Services
  • 25. Experiments (2/5): Hypotheses H1. Generality Our DSL allows the specification of various SOA antipatterns, from simple to more complex ones H2. Accuracy The detection algorithms have an average precision of more than 75% and a recall of 100%, i.e., more than three-quarters of detected antipatterns are true positive and we do not miss any existing antipatterns H3. Extensibility Our DSL and SOFA framework are extensible for adding new metrics and new SOA antipatterns 16Specification and Detection of SOA Antipatterns in Web Services
  • 26. Experiments (3/5): Subjects We specify 10 SOA antipatterns: 17 1. Ambiguous Name 2. Chatty Web Service 3. CRUDy Interface 4. Data Web Service 5. Duplicated Web Service 6. Fine Grained Web Service 7. God Object Web Service 8. Low Cohesive Operations in the Same PortType 9. Maybe It's Not RPC 10. Redundant PortTypes Ambiguous Name Chatty Web Service Specification and Detection of SOA Antipatterns in Web Services  Low Cohesion  High Accessor Methods  High Methods  High Response Time  Low Availability  Very Long or Short Signatures  Too Many General Terms  Verbs in Message Names  Multiple Verbs in Operation Signatures
  • 27. Experiments (4/5): Objects Web service search engines:  eil.cs.txstate.edu/ServiceXplorer  programmableweb.com  myexperiment.org  taverna.org.uk, etc. 18 The set of Web services includes: 1. 13 weather-related Web services (keyword ‘Weather’) 2. 109 finance-related Web services (keyword ‘Finance’) The complete list of analysed Web services is available on sofa.uqam.ca/soda-w/ Specification and Detection of SOA Antipatterns in Web Services
  • 28. Experiments (5/5): Process 1. Specify 10 Web services-specific SOA antipatterns using rule cards 2. Generate detection algorithm for each antipattern 3. Apply these algorithms on 122 Web services 4. Validate detection results by analysing the suspicious services manually 5. Use precision, recall, and specificity for accuracy measurement 19Specification and Detection of SOA Antipatterns in Web Services
  • 29. Outline - Our Contribution - Related Work - Details on our Approach (SODA-W) - Validation Results
  • 30. Results (1/6): Detection 20 RULE_CARD: AmbiguousName { RULE: AmbiguousName {INTER GeneralTerm ShortORLongSignature VerbedMessage MultiVerbedOperation}; RULE: ShortORLongSignature {UNION ShortSignature LongSignature}; RULE: LongSignature {ALS VERY_HIGH}; RULE: ShortSignature {ALS VERY_LOW}; RULE: GeneralTerm {RGTS HIGH}; RULE: VerbedMessage {NVMS > 0}; RULE: MultiVerbedOperation {NVOS > 1}; }; Detection of Ambiguous Name antipattern in AIP3_PV_Impact Web service. Specification and Detection of SOA Antipatterns in Web Services  Very Long or Short Signatures  Too Many General Terms  Verbs in Message Names  Multiple Verbs in Operation Signatures
  • 31. Results (2/6): Detection 31 Detection of Chatty Web Service antipattern in TaarifCustoms Web service. RULE_CARD: ChattyWebService { RULE: ChattyWebService {INTER LowCohesion HighDataAccessor MultiOperation LowPerformance}; RULE: LowCohesion {COH LOW}; RULE: HighDataAccessor {ANAO VERY_HIGH}; RULE: MultiOperation {NOD HIGH}; RULE: LowPerformance {INTER HighRT LowA}; RULE: HighRT {RT HIGH}; RULE: LowA {A LOW}; }; Specification and Detection of SOA Antipatterns in Web Services • Response time is calculated using SAAJ1 API and SoapUI2. (1) https://saaj.java.net/ (2) www.soapui.org 23  Low Cohesion  High Accessor Methods  High Methods  High Response Time  Low Availability
  • 32. Results (3/6): Hypothesis H1 H1. Generality: Our DSL allows the specification of various SOA antipatterns, from simple to more complex ones 22Specification and Detection of SOA Antipatterns in Web Services 1 RULE_CARD: LowCohesiveOperations { 2 RULE: LowCohesiveOperations { INTER MultiOperation LowCohesivePT }; 3 RULE: MultiOperation { NOD HIGH }; 4 RULE: LowCohesivePT { ARIO LOW }; 5 };
  • 33. Results (3/6): Hypothesis H1 H1. Generality: Our DSL allows the specification of various SOA antipatterns, from simple to more complex ones 22 1 RULE_CARD: CRUDyInterface { 2 RULE: CRUDyInterface { INTER ChattyInterface HighCRUDOperation }; 3 RULE: ChattyInterface { RULE_CARD: ChattyWebService }; 4 RULE: HighCRUDOperation { NCO > 1 }; 5 }; 1 RULE_CARD: ChattyWebService { 2 RULE: ChattyWebService { INTER LowCohesion HighDataAccessor MultiOperation LowPerformance }; 3 RULE: LowCohesion { COH LOW }; 4 RULE: HighDataAccessor { ANAO VERY_HIGH }; 5 RULE: MultiOperation { NOD HIGH }; 6 RULE: LowPerformance { INTER HighRT LowA }; 7 RULE: HighRT { RT HIGH }; 8 RULE: LowA { A LOW }; 9 }; Specification and Detection of SOA Antipatterns in Web Services 1 RULE_CARD: LowCohesiveOperations { 2 RULE: LowCohesiveOperations { INTER MultiOperation LowCohesivePT }; 3 RULE: MultiOperation { NOD HIGH }; 4 RULE: LowCohesivePT { ARIO LOW }; 5 };
  • 34. Results (3/6): Hypothesis H1 H1. Generality: Our DSL allows the specification of various SOA antipatterns, from simple to more complex ones ...YES!!! 22Specification and Detection of SOA Antipatterns in Web Services 1 RULE_CARD: CRUDyInterface { 2 RULE: CRUDyInterface { INTER ChattyInterface HighCRUDOperation }; 3 RULE: ChattyInterface { RULE_CARD: ChattyWebService }; 4 RULE: HighCRUDOperation { NCO > 1 }; 5 }; 1 RULE_CARD: ChattyWebService { 2 RULE: ChattyWebService { INTER LowCohesion HighDataAccessor MultiOperation LowPerformance }; 3 RULE: LowCohesion { COH LOW }; 4 RULE: HighDataAccessor { ANAO VERY_HIGH }; 5 RULE: MultiOperation { NOD HIGH }; 6 RULE: LowPerformance { INTER HighRT LowA }; 7 RULE: HighRT { RT HIGH }; 8 RULE: LowA { A LOW }; 9 }; 1 RULE_CARD: LowCohesiveOperations { 2 RULE: LowCohesiveOperations { INTER MultiOperation LowCohesivePT }; 3 RULE: MultiOperation { NOD HIGH }; 4 RULE: LowCohesivePT { ARIO LOW }; 5 };
  • 35. Results (4/6): Hypothesis H2 H2. Accuracy: The detection algorithms have an average precision of more than 75% and a recall of 100%, i.e., more than three-quarters of detected antipatterns are true positive and we do not miss any existing antipatterns 23 Experiments Detection Times Detected (True Positive) Manually Validated Precision Recall Specificity 13 Weather Web services 102.19s 7 (6) 6 85.71% 100% 98% 109 Finance Web services 192.91s 24 (22) 22 91.67% 100% 99% Average - - - 88.69% 100% 98.5% Specification and Detection of SOA Antipatterns in Web Services
  • 36. Results (4/6): Hypothesis H2 H2. Accuracy: The detection algorithms have an average precision of more than 75% and a recall of 100%, i.e., more than three-quarters of detected antipatterns are true positive and we do not miss any existing antipatterns ...YES!!! 23 Experiments Detection Times Detected (True Positive) Manually Validated Precision Recall Specificity 13 Weather Web services 102.19s 7 (6) 6 85.71% 100% 98% 109 Finance Web services 192.91s 24 (22) 22 91.67% 100% 99% Average - - - 88.69% 100% 98.5% Specification and Detection of SOA Antipatterns in Web Services
  • 37. Results (5/6): Hypothesis H3 H3. Extensibility: Our DSL and SOFA framework are extensible for adding new metrics and new SOA antipatterns 24Specification and Detection of SOA Antipatterns in Web Services
  • 38. Results (5/6): Hypothesis H3 H3. Extensibility: Our DSL and SOFA framework are extensible for adding new metrics and new SOA antipatterns 24 - 10 SCA-specific SOA antipatterns using SODA - 10 Web service-specific SOA antipatterns using SODA-W Moreover, SOFA supports the detection of, Specification and Detection of SOA Antipatterns in Web Services
  • 39. Results (5/6): Hypothesis H3 H3. Extensibility: Our DSL and SOFA framework are extensible for adding new metrics and new SOA antipatterns ...YES!!! 24Specification and Detection of SOA Antipatterns in Web Services - 10 SCA-specific SOA antipatterns using SODA - 10 Web service-specific SOA antipatterns using SODA-W Moreover, SOFA supports the detection of,
  • 40. Results (6/6): Validation Summary  Specify and implement detection algorithms for 10 Web service-specific SOA antipatterns  Detect 10 Web service-specific SOA antipatterns on two sets of Web services  13 weather-related Web services  109 finance-related Web services  Average precision of our detection algorithms is 88.69% and recall is 100%  Average specificity of our rule cards is 98.5%  Detail results and more materials on sofa.uqam.ca/soda-w/ 25Specification and Detection of SOA Antipatterns in Web Services
  • 41. Conclusion Specification and Detection of SOA Antipatterns in Web Services 26
  • 42. Conclusion Specification and Detection of SOA Antipatterns in Web Services 26
  • 43. Conclusion Specification and Detection of SOA Antipatterns in Web Services 26
  • 44. Conclusion Specification and Detection of SOA Antipatterns in Web Services 26
  • 45. Future Work - Additional experiments with more Web services and SOA antipatterns - Correction through adding recommendation support for service developers - Focus on other SOA styles and technologies, e.g., RESTful services Specification and Detection of SOA Antipatterns in Web Services 27
  • 47.
  • 50. Related Work (1/2) SOAOO - Adopt OO design style - Services as first-class entities - Highly dynamic, also static - Adopt procedural design style - Classes as first-class entities - Mainly static, also dynamic analysis Specification and Detection of SOA Antipatterns in Web Services 6 Books/Articles: • J2EE Antipatterns, Dudney et al. 2003 • SOA Patterns, Rotem-Gal-Oz et al. 2012 • Crucial SO Antipatterns, Král and Žemlička, 2003 Detection Methods in OO: • Kessentini et al. (2011), Munro et al. (2005), Settas et al. (2011), ... ► OO detection methods and tools cannot be directly applied to SOA:
  • 51. 51
  • 52. 52 RULE CARD: DataWebService { RULE: DataWebService {INTER HighCohesion PrimitiveParameter HighAccessor LowParameter}; RULE: HighCohesion {COH HIGH}; RULE: PrimitiveParameter {ANPT HIGH}; RULE: HighAccessor {ANAO HIGH}; RULE: LowParameter {ANP LOW}; }; RULE CARD: LowCohesiveOperations { RULE: LowCohesiveOperations {INTER MultiOperation LowCohesivePT}; RULE: MultiOperation {NOD HIGH}; RULE: LowCohesivePT {ARIO LOW}; }; RULE CARD: AmbiguousName { RULE: AmbiguousName {INTER GeneralTerm ShortORLongSignature VerbedMessage MultiVerbedOperation}; RULE: ShortORLongSignature {UNION ShortSignature LongSignature}; RULE: LongSignature {ALS VERY HIGH}; RULE: ShortSignature {ALS VERY LOW}; RULE: GeneralTerm {RGTS HIGH}; RULE: VerbedMessage {NVMS > 0}; RULE: MultiVerbedOperation {NVOS > 1}; }; RULE CARD: DuplicatedService { RULE: DuplicatedWebService {INTER IdenticalPortType IdenticalOperation}; RULE: IdenticalPortType {ARIP HIGH}; RULE: IdenticalOperation {ARIO HIGH}; };
  • 53. 53 RULE CARD: ChattyWebService { RULE: ChattyWebService {INTER LowCohesion HighDataAccessor MultiOperation LowPerformance}; RULE: LowCohesion {COH LOW}; RULE: HighDataAccessor {ANAO VERY HIGH}; RULE: MultiOperation {NOD HIGH}; RULE: LowPerformance {INTER HighRT LowA}; RULE: HighRT {RT HIGH}; RULE: LowA {A LOW}; }; RULE CARD: CRUDyInterface { RULE: CRUDyInterface {INTER ChattyInterface HighCRUDOperation}; RULE: ChattyInterface { RULE CARD: ChattyWebService}; RULE: HighCRUDOperation {NCO > 1}; }; RULE CARD: RedundantPortType { RULE: RedundantPortType {INTER MultiPortType HighCohesivePT}; RULE: MultiPortType {NPT > 1}; RULE: MultiOperations {NOPT > 1}; RULE: HighCohesivePT {ARIP VERY HIGH}; }; RULE CARD: MaybeItsNotRPC { RULE: MaybeItsNotRPC {INTER HighRT HighCRUDOperation HighParameter}; RULE: HighRT {RT HIGH}; RULE: HighCRUDOperation {NCO VERY HIGH}; RULE: HighParameter {ANP HIGH}; };
  • 54. 54 SCA vs. Web Services
  • 56. Threats to Validity  External Validity: Generalisation to other large set of Web services  Internal Validity: Detection depends on services provided by SOFA . We experimented on a representative set of Web service-specific antipatterns  Construct Validity: Rule cards are subjective. We define rule cards based on thorough literature review and domain analysis Specification and Detection of SOA Antipatterns in Web Services 26
  • 57. Related Work (1/2) Specification and Detection of SOA Antipatterns in Web Services 6 Books/Articles: • J2EE Antipatterns, Dudney et al. 2003 • SOA Patterns, Rotem-Gal-Oz et al. 2012 • Crucial SO Antipatterns, Král and Žemlička, 2003 Detection Methods in OO: • Kessentini et al. (2011), Munro et al. (2005), Settas et al. (2011), ...
  • 58. Related Work (1/2) SOAOO - Adopt OO design style - Services as first-class entities - Highly dynamic, also static - Adopt procedural design style - Classes as first-class entities - Mainly static, also dynamic analysis Specification and Detection of SOA Antipatterns in Web Services 6 Books/Articles: • J2EE Antipatterns, Dudney et al. 2003 • SOA Patterns, Rotem-Gal-Oz et al. 2012 • Crucial SO Antipatterns, Král and Žemlička, 2003 Detection Methods in OO: • Kessentini et al. (2011), Munro et al. (2005), Settas et al. (2011), ... ► OO detection methods and tools cannot be directly applied to SOA: