Gang Xing and Michael R. Lyu The Chinese University of Hong Kong

Slides:



Advertisements
Similar presentations
Automating Software Module Testing for FAA Certification Usha Santhanam The Boeing Company.
Advertisements

COM vs. CORBA.
Alternate Software Development Methodologies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Distributed Systems Architectures
An Experimental Evaluation on Reliability Features of N-Version Programming Xia Cai, Michael R. Lyu and Mladen A. Vouk ISSRE’2005.
II. Middleware for Distributed Systems
Project Title: Cobra Implementation on Association Service.
Software Quality Assurance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Chapter 6 : Software Metrics
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Service Architecture of Grid Faults Diagnosis Expert System Based on Web Service Wang Mingzan, Zhang ziye Northeastern University, Shenyang, China.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
BFTCloud: A Byzantine Fault Tolerance Framework for Voluntary-Resource Cloud Computing Yilei Zhang, Zibin Zheng, and Michael R. Lyu
Quality Assessment for CBSD: Techniques and A Generic Environment Presented by: Cai Xia Supervisor: Prof. Michael Lyu Markers: Prof. Ada Fu Prof. K.F.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Cohesion and Coupling CS 4311
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
Chapter 12 Review Chad Hagstrom CS 310 Spring 2008.
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
January 25, 2016 First experiences with CORBA Niko Neufeld.
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Introduction to Machine Learning, its potential usage in network area,
Experience Report: System Log Analysis for Anomaly Detection
Software Metrics and Reliability
Estimate Testing Size and Effort Using Test Case Point Analysis
CORBA: An Overview Mojtaba Hosseini.
Testing Tutorial 7.
Common Object Request Broker Architecture (CORBA)
Chapter 4 Requirements Engineering (1/3)
Distributed Computing
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Prof. Leonardo Mostarda University of Camerino
Coupling and Cohesion 1.
Software Engineering B.Tech Ii csE Sem-II
CORBA Alegria Baquero.
CORBA Within the OS & Its Implementation
Remote Method Invocation
Software Project Planning &
Software Engineering (CSI 321)
Exceptions C++ Interlude 3
Advanced Operating Systems
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Testing, Reliability, and Interoperability Issues in CORBA Programming Paradigm 11/21/2018.
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Component--based development
Exception Handling Imran Rashid CTO at ManiWeber Technologies.
Quality Assurance for Component-Based Software Development
Applying Use Cases (Chapters 25,26)
Copyright 1999 B.Ramamurthy
A handbook on validation methodology. Metrics.
Distributed Systems Architectures
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

Testing, Reliability, and Interoperability Issues in CORBA Programming Paradigm Gang Xing and Michael R. Lyu The Chinese University of Hong Kong 6th Asia-Pacific Software Engineering Conference December 7-10 1999 2019/1/17

Outline Motivation Testing CORBA Program Reliability Evaluation Interoperability Future Work Q&A 2019/1/17

Motivation Implementing distributed applications with CORBA becomes popular Testing, reliability, and interoperability for the CORBA programming paradigm remain unexplored These issues are important to develop the reliable distributed system in CORBA Why we talk about issues about CORBA? Lots of company use CORBA as its enterprise distributed system solution. Although CORBA can help develop distributed system. Mechanisms for reliability and testing important! 2019/1/17

What is CORBA? Architecture and specification Allow object in the network communicate through an "interface broker" Developed by Object Management Group (OMG) Standard architecture for distributed objects (or Components) An architecture and specification for creating, distributing, and managing distributed program objects in a network Allow programs at different locations and developed by different vendors to communicate in a network through an "interface broker" Developed by a consortium of vendors through the Object Management Group (OMG)--currently includes nearly 800 member companies ISO and X/Open sanction CORBA as the standard architecture for distributed objects (or components) 2019/1/17

Experiment Project Description 19 Programs,same specification Soccer Management System 10 operations team rules Different ORBs(Visigenic/Orbix) Different Languages (C++/Java) Based on same spec provide basic management operation lots of rules of team 2019/1/17

Program Metrics 7 programs use Iona Orbix(C++) 12 programs use Visigenic 9 uses Java for client and server 2 uses C++ for client and server 1 uses Java as client and C++ as server Table? 2019/1/17

General Software Metrics The software metrics of these 19 programs are listed in Table 2. The metrics were collected using etags and some perl scripts. These programs range from 500 to 5000 lines of code (LOC). The large size of program P12 was due to fancy user interface and on-line help commands. The distribution of the client code versus server code is 1.79. 2019/1/17

Testing the Programs Test Preparation Test Execution Result Analysis Generate Test Cases Test Procedure Test Execution Result Analysis In order to evaluate the reliability We try to testing the program 2019/1/17

Generate Test Cases Specification IDL Test Cases 2019/1/17 base on spec and ID, For each operation IDL can help general test cases 2019/1/17

Test Procedure 2019/1/17 Minimum operation use for each test case Test each operation by operation step ? Scripts automatic ? The test procedure is shown in. In order to reduce the testing work for these program versions, we define the test sequence for each operation to cover all the test cases with minimum operations. In each step of test, we only apply one test case. However, we need some extra operations for some test cases to work properly. In total we have 76 operations in the test procedure to cover all the test cases. 2019/1/17

Pass Rate Pj - number of “Pass” cases for program j. Mj -number of “Maybe” cases program j. C- total number of cases apply to the programs (57) The test cases, designed to raise exceptions, can not apply to the program because the client side of the program deliberately forbids them. In this situation, we do not know whether the server is designed properly to raise the exceptions, so we put down “maybe” as the result. The definitions of the pass rate and the reliability in this paper, therefore, consider two conditions, one including the “maybe” case and the other excluding it. Oi -number of “Pass” test cases for operation i OMi- number of “Maybe” test cases for operation i Ti - total cases for operation i 2019/1/17

Test Result for Each Team From Table 4 we see that Team 16 and Team 19 have low pass rate as they fail to process many exceptions properly. In addition, Team 13 has many “maybe” cases due to their special user interface which avoids many illegal test cases designed to test for exception handling. Test Results for Each Team 2019/1/17 Maybe: Some Test cases not applicable

Test Results for Each Operation Operation Pass Rate= A/B discussion From Table 5 we can see that the operations CreateTeam and MovePlayer have the lowest pass rates. The reason is the complexity of these operations, as they need to consider more for the process of normal cases and exceptions. Furthermore, the CreateTeam operation has a large number of “Maybe” results as many programs forbid the test cases which would raise exceptions. 2019/1/17

Defects Classification Exceptions Server Side Missing Extra or Wrong Client Side Wrong Memory Management Ref Count Language Mapping Other This happens when the server side program does not throw the necessary exception. This situation usually comes from the IDL definition problem as addressed above. On the other hand, the implementation may also fails to check if there should be an exception. Extra exception is considered as a wrong one since the client will not be able to recongnize the unexpected exception. The server throws an unexpected exception. This defect seldom occurs. The programmers forget to catch some kind of the expected exception. The programmers catch the exception, but give an incorrect response. This kind of defect occurs when a special process is needed in the exception handling code. "_duplicate()/_release()," sequencs/string/array user interface,parameter process, etc. 2019/1/17

Distribution of Defects Exception: server: missing extra or wrong client: wrong Memory management: traditional/CORBA CORBA: reference count; squence, array, string Other From Table 6, we can see that over 70 percent of the total defects come from exception handling. This indicates that exception handling routines are the most difficult part of CORBA programming for distributed systems. Distribution of Defects *Missing/Extra or Wrong +Missing/Wrong 2019/1/17

Distribution of Defects Exception: Memory management other 2019/1/17

Reliability Develop the Operational Profile Define the Reliability of the Program Analyze the Results Software reliability [LYU96] is the probability of failure-free software operation for a specified time in a specified environment. We use the similar procedure specified in [MUSA97] to evaluate software reliability in our experiment. We note, however, that it is not easy to obtain execution time for CORBA programs, as many factors affect the operation execution time. They include, for example, programming language, platform, ORB implementation, user implementation, etc. Since it is difficult for us to get an accurate execution time measure for each operation in these programs, we evaluate the reliability of each accepted program based on the defects we get from our test and the probability of each operation. We test and evaluate the client and server for each program as a whole, and assume that each test case has the same execution time for the same program. 2019/1/17

Operational Profile Operation Profile: List of occurrence probabilities of each element in the input domain of the program. Because the application in our experiment is a new information management system, the operational profile can not be obtained from any historical data. Consequently, we have to estimate the occurrence probability of each operation. This is shown in Table 7. 2019/1/17

Reliability Evaluation Rj - Reliability for program j Rj' - Reliability for program j (treat “maybe” as pass) OPi,j-“Pass” test cases for operation i , program j Mi,j-“Maybe” test cases for operation i , program j Ti - total cases for operation i i- Probability for operation I n-number of operation Software reliability is the probability of failure-free software operation for a specified time in a specified environment. Since it is difficult for us to get the accurate execution time of each operation in these programs, evaluate the reliability of each accepted program by the defects we get from our test and the probability of each operation. We test and evaluate the client and server for each program as a whole, and assume that each test case has the same execution time for the same program. 2019/1/17

Evaluation Results 2019/1/17

Evaluation Results 2019/1/17

Comparison We also list the average reliability for Visiginic/Orbix program, and Java/C++ programs, as shown in Table 9. From Table 9, we can see that the reliability of Visiginic programs is higher than that of Orbix programs. Moreover, the reliability of the teams using Java is higher than those using C++. The result does not necessary mean that using Visiginic and Java is better than using Orbix and C++. Instead, this may be due to the CORBA mapping for C++, which is more complicated than that for Java. Moreover, the programmers are generally more familiar with Java than with C++. 2019/1/17

Why Interoperability? Same Specification Try to Exchange the Client and Server Availability Higher Reliability Server/Client lead to higher system reliability? 2019/1/17

Interoperability Evaluation The difficulty of Interoperability: 1: very difficult to inter-operate 2: possible to inter-operate, but with considerable effort 3: interoperable with moderate effort. 4: interoperable with some effort. 5: readily interoperable with minimal effort. 2019/1/17

Evaluation Results From Table 10 we can see that there is clearly a lack of interoperability among these 18 program versions (indicated by the low mark of 1.42), even though they are developed based on the same specification requirements. Programs P3, P6, P7, P11, P14, P17, P19, in particular, are extremely difficult to inter-operate with other program versions. Only a few pairs of programs achieve higher interoperability marks, but they are sparse. Same ORB better, subset P2,P10,P12 is better 2019/1/17

Difficulties in Interoperability IDL Interface Attribute/Operation Exception Other Between ORBs CORBA Service Specification 2019/1/17

Summary Introduction to CORBA Testing the CORBA program Evaluating the reliability Evaluating the interoperability 2019/1/17

Future Work Testing Techniques Reliability Evaluation Techniques Apply Software Fault Tolerance Techniques Reliability Model Implement Software Reliability Middleware 2019/1/17

Thank You! 2019/1/17