140 likes | 334 Views
Architecture-based Reliability of web services . Presented in SRG Group meeting January 24, 2011 Cobra Rahmani. Definition Architecture-based reliability modeling Research problem Challenges Our Approach. Agenda. (Architecture-based reliability modeling)
E N D
Architecture-based Reliability of web services Presented in SRG Group meeting January 24, 2011 Cobra Rahmani
Definition Architecture-based reliability modeling • Research problem • Challenges • Our Approach Agenda
(Architecture-based reliability modeling) • "Architecture-based reliability modeling estimates system reliability taking into account the information about the architecture of the software made out of components" [1] • [1] K. Goseva–Popstojanova, A. P. Mathur, and K. S. Trivedi, “Comparison of Architecture-Based Software Reliability Models”, 12th Int’l Symp. on Software Reliability Engineering, 2001, pp. 22-31. Prevalent architecture-based analysis techniques Path-based techniques State-based techniques Definition
The primary objective of architecture-based software reliability analysis: to obtain an estimate of the application reliability based on based on Component reliabilities Application architecture Definition
Service Provider Middleware SOAP/HTTP Request Application Server Data Base Web Service Web Server SOAP/HTTP Response Shared Resources DB connection pool EJB pool Http thread pool Resource release Resource allocation • Web service reliability modeling using SPN Research problem
Web services is not standalone software and deployed into the servers • Need to define Components from web services as well as web server and application server Challenges
Since web services run on middleware, some failures in service-based software are originating from interconnection of layers and not from any specific component or layer. • (e.g. misconfiguration of shared resources) Challenges
Start Static analysis Instrumentation 3. Extract main layers and shared resources 1. Instrument AS with a profiler 4. Build interaction between layers 2. Execute WS for each test case Dynamic Analysis 6. Estimate Time Spent in each layer 7. Gather failure data for each layer 5. Estimate Transition Probabilities 8. Form Petri net model 9. Run Petri net model, gather and analyze results End Our Approach
Web server Web service Application server Instrumentation
Major layers and shared resources between layers will be extracted • Layers: Web server, Application server, Web service, DB • Shared Resources: Http/AJP thread pool in web container, EJB instance pool in EJB container, and Data Base connection pool in data access layer Static Analysis
Estimate Transition Probabilities • Using JRAT, … • Limitation: Output can be read from JRAT framework, manual work • Estimate Time Spent in each layer • Using JRAT, … • Gather failure data for each layer • Test cases, Bug repositories Dynamic Analysis
Gather reliability data from Petri net • Sensitivity analysis • Evaluation of this model with actual reliability data (tools: Jmeter, …) Form Petri net model
Experimental analysis to find out what are the major failure types of web services (based on some data released on Internet, ) There is a paper for failure types for web applications. Comparison between failure types of web applications and web services would be a good starting point • Different types of modeling: Colored Petri net, Markov Chain, or Path based modeling • Model distributed composite web services Further work