Abstract
Component-based system development is now a well accepted design approach in software engineering. Numerous component models have been proposed, and for most of them, specific software tools allow building component-based systems (CBS). Although these tools perform several checks on the built system, few of them provide formal verification of behavioural properties nor performance evaluation of the resulting system. In this context, we have developed a general method associating to a CBS, a formal model, based on stochastic well formed nets, a class of high-level Petri nets, allowing qualitative behavioural analysis together with performance evaluation of this CBS. The definition of the model heavily depends on the (run time) component model used to describe the CBS. In this paper, we instantiate our method to Fractal CBS and its reference Java implementation Julia. The method starts from the Fractal architectural description of a system and defines rules to systematically generate element models of the CBS and their interactions. We then apply a structured method for both qualitative and performance analysis, taking into account the given implementation of the Fractal model. The main interest of our method is to take advantage of the compositional definition of such systems to carry out an efficient analysis. The paper concentrates on performance evaluation and presents our method step by step with an illustrative example.


















Similar content being viewed by others
Notes
Figures related to the Fractal model or Fractal CBS are reproduced from documentation on the Fractal project Web site: http://fractal.objectweb.org.
References
Arnold A (2002) Nivats processes and their synchronization. Theor Comput Sci 281(1–2):31–36
Arnold A (1994) Finite transition systems: semantics of communicating systems. Prentice Hall, Hertfordshire
Barros T, Cansado A, Madelaine E, Rivera M (2006) Model checking distributed components: the vercors platform. In: 3rd workshop on formal aspects of component systems. ENTCS, Prague, September. http://hal.inria.fr/inria-00091569/en/
Baude F, Caromel D, Morel M (2003) From distributed objects to hierarchical grid components. In: Schmidt DC, Meersmanand R, Tari z et al (eds) On the move to meaningful internet systems 2003: coopis, DOA and ODBASE. LNCS, vol. 2888. Springer, Heidelberg, pp 1226–1242
Bernardi S, Donatelli S, Horváth A (2001) Implementing compositionality for stochastic Petri nets. Int J STTT (3):417–430
Bruneton E (2007) Fractal ADL tutorial, January. file://home/nasal/doc/Fractal/fractal_adl_tutorial_index_print.html
Bruneton E (2006) Tutorial: developping with fractal. http://fractal.objectweb.org/tutorial/index.html
Bruneton E, Coupaye Th, Stefani J (2004) The fractal component model, version 2.0-3. Technical report, fractal team, online documentation. http://fractal.objectweb.org/specification/
Bruneton É, Coupaye T, Leclercq M, Quéma V, Stefani J-B (2006) The fractal component model and its support in java: experiences with auto-adaptive and reconfigurable systems. Softw Pract Exp 36(11–12):1257–1284. ISSN 0038-0644. doi:10.1002/spe.v36:11/12
Chiola G, Dutheillet C, Franceschinis G, Haddad S (1993) Stochastic well-formed colored nets and symmetric modeling applications. IEEE Trans Comput 42(11):1343–1360
Dias da Silva L, Perkusich A (2005) Composition of software artifacts modelled using colored Petri nets. Sci Comput Program 56(1–2):171–189
Delamare C, Gardan Y, Moreaux P (2003) Efficient implementation for performance evaluation of synchronous decomposition of high level stochastic Petri nets. In: On-site proceedings of the ICALP2003 workshop on stochastic Petri nets and related formalisms. University of Dortmund, Eindhoven, pp 164–183
Delamare C, Gardan Y, Moreaux P (2003) Performance evaluation with asynchronously decomposable SWN: implementation and case study. In: Proc. of the 10th int. workshop on Petri nets and performance models (PNPM03). IEEE Computer Society, Urbana-Champaign, pp 20–29
Petriu D, Shousha C, Jalnapurkar A (2000) Architecture-based performance analysis applied to a telecommunication system. IEEE Trans Softw Eng 26(11):1049–1065
Fassino J, Stefani J, Lawall J, Muller G (2002) Think: a software framework for component-based operating system kernels. In: In usenix annual technical conference. citeseer.ist.psu.edu/fassino02think.html
Grassi V, Mirandola R, Sabetta A (2007) Filling the gap between design and performance/reliability models of component-based systems: a model-driven approach. J Syst Softw 80(4):528–558. ISSN 0164-1212. doi:10.1016/j.jss.2006.07.023
Object Management Group (2004) Common object request broker architecture (CORBA)—specification, version 3.1, part 1: CORBA interoperability. http://www.omg.org/cgi-bin/doc?pas/04-08-01.pdf
Object Management Group (2004) Common object request broker architecture (CORBA)—specification, version 3.1, part 2: CORBA interfaces. http://www.omg.org/cgi-bin/doc?pas/04-08-02.pdf
Haddad S, Moreaux P (1996) Aggregation and decomposition for performance evaluation of synchronous product of high level Petri nets. In: Document du lamsade 96, LAMSADE. Université Paris Dauphine, Paris. dl-sync96.ps.gz
Kupferman O, Vardi MY (1998) Modular model checking. In: Roever WP, Langmaack H, Pnueli A (eds) Compositionality: the significant difference. LNCS, vol. 1536. Springer, London, pp 381–401
Medvidović N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26:70–93
Microsoft (2007) .Net 3.0 framework. July 2007 http://msdn.microsoft.com/netframework
Sun Microsystems (2007) EJB 3.0 specification. http://java.sun.com/products/ejb/docs.html
PE Group (2002) GreatSPN. http://www.di.unito.it/~greatspn
Rugina A-E, Kanoun K, Kaâniche M (2006) Aadl-based dependability modelling. Report 06209, LAAS, Toulouse, April
Seinturier L, Pessemier N, Duchien L, Coupaye T (2006) A component model engineered with components and aspects. In: Proc. of component-based software engineering (CBSE’06. LNCS, vol. 4063, Springer, Mälardalen University, Västerås, Sweden, June. ISSN 0302-9743, 139–153. doi:10.1007/11783565_10
Smith CU (1990) Performance engineering of software systems. Addison-Wesley, Reading
Szyperski C, Gruntz D, Murer S (2002) Component software beyond object-oriented programming, 2nd ed. Addison Wesley/ACM, Reading. ISBN 0-201-74572-0
Wu X, Woodside M (2004) Performance modeling from software components. SIGSOFT Softw Eng Notes 29(1):290–301, ISSN 0163-5948. doi:10.1145/974043.974089
Author information
Authors and Affiliations
Corresponding author
Appendix: WN and SWN formal definitions
Appendix: WN and SWN formal definitions
We remind the reader with the definitions of WN and SWN. A detailed presentation of these models can be found in [10].
Definition 1 (Well-formed Petri net (WN)) A well-formed Petri net S is a tuple
(P, T, C, cd, Pre, Post, Inh, Guard, Pri, M 0) with:
-
P, T: the finite sets of places and transitions,
-
C = {C i / i ∈ I = {1, ⋯ , n}}: the set of basic colour classes; C i is possibly partitioned into n i static sub-classes: \(C_{i}=\bigcup_{j=1}^{n_{i}}C_{i,j}\),
-
cd: P ∪ T→Bag(I). \(cd(r)=C_{1}^{e_1}\times C_{2}^{e_2}\times \ldots\times C_{n}^{e_n}\) is the colour domain of a node r; e_i ∈ ℕ is the number of occurrences of C_i in the colour domain of r, where Bag(I) is the set of multisets (bags) on I.
-
Pre, Post, Inh: the input, output and inhibition standard colour functions from C(t) to Bag(C(p)).
-
Guard(t) : C(t)→{true, false} is a standard predicate associated with the transition t. By default, Guard(t) is the constant function of value True.
-
Pri: T→ℕ the priority function. By default, we assume ∀ t ∈ T, Pri(t) = 0;
-
M 0: M 0(p) ∈ Bag(C(p)) is the initial marking of p.
Definition 2 (Stochastic well-formed net (SWN)) A stochastic well-formed net is a pair (S, θ) such that:
-
S is a well-formed net.
-
θ a function defined on T such that: \(\theta(t): \tilde{cd}(t) \times \prod_{p\in P} Bag(\tilde{C}(p))\longrightarrow R^{+}\).
\(\theta(t)(\tilde{c},\tilde{M})\) represents:
-
The weight of t for the colour c in the marking M, if π(t) > 0 (t is immediate). the firing probability of t(c) in M is then: \(\frac{\theta(t)(\tilde{c}, \tilde{M})}{\sum_{(t',c'), M[t'(c')>} \theta(t')(\tilde{c'},\tilde{M})}\).
-
The firing rate of t for the colour c in M, if π(t) = 0 (t is timed): the enabling duration before the firing of t(c,M) follows an exponential probability distribution with mean \(\theta(t)(\tilde{c}, \tilde{M})\).
In this definition, \(\tilde{c}\) is the representation of the colour c in terms of static sub-classes, and \(\tilde{M}(p)\) is the representation of the symbolic marking of p in terms of tuples of static sub-classes. θ(t) depends only on static sub-classes of concerned colours.
Rights and permissions
About this article
Cite this article
Salmi, N., Moreaux, P. & Ioualalen, M. Performance evaluation of Fractal component-based systems. Ann. Telecommun. 64, 81–100 (2009). https://doi.org/10.1007/s12243-008-0070-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12243-008-0070-1