[go: up one dir, main page]

WO2003092245A2 - Procede de generation d'un modele de performance a partir d'un modele fonctionnel - Google Patents

Procede de generation d'un modele de performance a partir d'un modele fonctionnel Download PDF

Info

Publication number
WO2003092245A2
WO2003092245A2 PCT/FR2003/001251 FR0301251W WO03092245A2 WO 2003092245 A2 WO2003092245 A2 WO 2003092245A2 FR 0301251 W FR0301251 W FR 0301251W WO 03092245 A2 WO03092245 A2 WO 03092245A2
Authority
WO
WIPO (PCT)
Prior art keywords
model
requests
execution
service
behavior
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/FR2003/001251
Other languages
English (en)
Other versions
WO2003092245A3 (fr
Inventor
Wei Monin
Fabrice Dubois
Daniel Vincent
Pierre Combes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Priority to EP03747148A priority Critical patent/EP1497732A2/fr
Priority to AU2003249151A priority patent/AU2003249151A1/en
Priority to US10/511,033 priority patent/US7536292B2/en
Publication of WO2003092245A2 publication Critical patent/WO2003092245A2/fr
Publication of WO2003092245A3 publication Critical patent/WO2003092245A3/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation

Definitions

  • the invention lies in the field of performance analysis by simulation of a system, such as for example a telecommunication system comprising a plurality of distributed hardware and software components and cooperating to provide a service to one or more users .
  • the invention more specifically relates to a method for generating a performance model from a functional model of such a system.
  • the performance study allows to know in a precise way the distribution of the resources of the system and thus to identify possible bottlenecks.
  • a second objective is economic. It is a question of determining the optimal configurations of the resources, in order to maximize their efficiency and thus avoid the purchase of additional equipment.
  • the dimensioning of the resources consists in determining the quantitative parameters necessary for the desired quality of service such as for example the size of the buffers, the number of servers, the distribution of the treatment entities on the different machines, etc.
  • a performance study is carried out either on a model or on the real system by measurements.
  • the transient behavior When it is on a model, one can generally observe two types of behavior of the studied system, the transient behavior and the stationary behavior. The first is for short periods and the second for long periods.
  • the most sought-after approaches include mathematical techniques, discrete simulation, and graph-based analysis.
  • Notations for expressing models are often of the following types: - queuing systems,
  • Queuing systems remain one of the most powerful mathematical formalisms for quantitatively analyzing a very wide variety of systems.
  • a computer system can be considered, in a very abstract way, as a set of hardware and software resources
  • the formalism of the Petri nets is based on a graphical representation which makes it possible to understand the behavior of the system. This formalism is particularly suitable for systems whose behavior is strongly characterized by aspects of competition, synchronization, communication and cooperation.
  • the system can be analyzed qualitatively (absence of interlocking, operating safety, etc.).
  • a major handicap in the petri dish is the explosion of the number of states to consider when the complexity of the system increases.
  • the analytic approach generally consists in expressing the behavior of the system in the form of an exact mathematical model resulting in closed formulas.
  • the behavior of the system is then reduced to a set of variables linked together by equations.
  • the main advantage of this analytical approach lies in the fact that it does not require a sophisticated support tool during the modeling and problem solving phases, which is particularly suitable for the upstream phases of application design. With this approach, it suffices to apply the formula to determine the quantities sought and especially to know the relative influence of the different parameters.
  • This approach which currently requires strong assumptions (independence of events, server conservability, etc.), proves feasible for systems with a relatively simple functional architecture such as, for example, the study of switching systems of networks of networks. transport.
  • the real-test approach consists, by means of an observation infrastructure (probes), to measure directly on the real system.
  • the observation is generally done either at the software level or at the operating system level, or at both levels at the same time.
  • This approach has the advantage of obtaining real results, in particular for the limit processing capacity of the system (scaling up).
  • Measuring performance on a real system requires having a complete implementation of the system to be tested (hardware and software), therefore the study can be conducted only after the event, and may involve purchases of expensive equipment.
  • the realization of a probe to inspect the system is a difficult task because the instrumentation must not significantly disturb what is measured. In particular, the distribution of the machines requires a satisfactory synchronization of clocks.
  • any software or hardware modification entails additional implementation costs in terms of interoperability and portability, reconfiguration, and adjustments.
  • the test programs must be developed and tested themselves and are strongly linked to the actual code of the application, which is even more restrictive than the development and development processes. putting into operation of an application are short. It is therefore often necessary to develop the application and the test programs in parallel, which leads to strong synchronization constraints at the level of the development organization.
  • the actual tests suffer from a limitation that comes from the fact that only simple configurations can be considered. For example, the processing capacity is evaluated by testing the behavior of the system when service requests arrive simultaneously. On the other hand, to know the evolution of the response time
  • the simulation approach seems by far the most used for evaluating the performance of all kinds of systems and involves modeling the behavior of the system, most often using a queuing system or a Petri net, then experimenting the model by varying a set of parameters corresponding to the different configurations of the system.
  • the parameters can be processor speed, network transmission rate, process scheduling policy, number and topology of machines, rate and rate of arrival queries, etc.
  • the simulation is easier to understand, and more powerful than the analytical method.
  • the formulation of the model to be simulated is not expressed in the form of equations but of programs, which makes it possible to construct a model as close as possible to the real system studied. It is much less expensive in hardware and software than the test approach because it exploits a model (an abstraction, a virtual representation) instead of a real system. This approach provides a powerful tool for predicting performance from the design of the system to be studied to completion.
  • the execution time of a simulation is not related to the actual processing times of the application.
  • the simulation approach allows for a more large number of scenarios by simply varying the parameters of the model.
  • the development of a model often makes it possible to state conjectures about the system in question and to have a better understanding of some of the answers to the problem of performance.
  • the simulations will confirm or refute these conjectures.
  • Other elements, such as the distribution of end-to-end response time or loss rate, are most often very difficult to quantify and only the simulation makes it possible to highlight them.
  • the simulation approach takes place in four phases: • the development of the system's behavior model: it starts with the selection of the entities of the system (a software component, a process, etc.) that it is wise to model, in relation to the specific objectives of the performance study. The elaboration continues with the description of the functioning of these entities, as well as their interactions.
  • the entities are chosen according to the desired fineness of the results of the simulation, but also according to the initial data that can be provided. Parameters are significant features of system elements (eg, unit processing time of an entity on a processor, number of servers, etc.), which are likely to influence the simulation results.
  • the models are generally represented either by queuing systems (QNAP, SIMSCRIPT, SES / orkbench), or by PLCs (OPNET), or by Petri nets.
  • this data corresponds in particular to the processing times of the programs on the processors and to the transmission delays if routing through networks take place. They are measured by unit tests.
  • simulations and the collection of statistical results the behavior of the system is observed by running the model using a simulator and varying its parameters; the results of each simulation are analyzed and performance results are deduced for the selected configurations.
  • validation of the simulation model the confidence that can be granted to the results of simulations requires validation of the model. It consists in carrying out some carefully selected representative real tests and in comparing these real results with those obtained by simulation.
  • the simulation approach is a good compromise between the cost of implementation and the value of the results.
  • it allows to study the behavior of a system or an application under a large variety of configurations. This without having all the infrastructure system target (hardware and software) and, for applications, without doing the full development.
  • it is ideal for comparing different technologies or products, as well as for sizing and optimizing the system being developed.
  • Timed SDL [F. Bause and P. Buchholz, "Qualitative and Quantitative Analysis of Timed SDL Specifications," in N. Gerner, HG Hegering, J. Savolvod, (Eds.) Springer-Verlag, 1993] implements a form of timed transition systems, constructed at from an SDL specification in which at each transition, an exponential duration is attached. It does not include notions of resources or burden. From an intermediate representation in the form of an automaton, the tool performs qualitative and quantitative analyzes using Markovian type algorithms.
  • the 15 blocks run in a multitasking mode. Channel delays and reliability characteristics can be added.
  • the model runs on a virtual machine that is derived from the SDL model.
  • the systems can be simulated or run on existing hardware emulators (Intel ® , Motorola ® and Siemens ® ). They are stimulated by traffic generators and are interconnected by transmission links
  • DO-IT Toolbox [A. Mitschele-Thiel and B. MUlier-Clostermann, "Performance Engineering of SDIJMSC Systems,” Journal on Computer Networks and ISDN Systems, Elsevier, 1998] performs performance evaluation of specified systems in MSC and SDL. Its originality is to start from MSCs that are available very early in the life cycle, adding load annotations and specifying the resources available for specific executions of the system. It provides a simple performance evaluation technique for the analysis of bottlenecks and optimization of implementations, based on deterministic time of service assumptions.
  • EaSy-Sim [C. Schaffer and R. Raschhofer, A. Simma, "EaSy-Sim A Tool Environment for the Design of Comnplex, Real-Time Systems", Proceeding International Conference on Computer Aided Systems Technologies, Innsbruck, Springer-Verlag, 1995] is a coupling between the GEODE environment for SDL and the SES / Workbench simulator.
  • the SDL environment is used for functional verification and validation, while SES / Workbench models the non-functional part to evaluate performance.
  • the coupling is implemented by message exchanges between the executable code of the application obtained by GEODE and the SES / Workbench simulator.
  • This tool can be applied to an MSC specification in which response time requirements are added for real-time systems [C.
  • EDT Erystron Transfer Tool
  • M. Hendaz "5 Dynamic Annotation for Performance Evaluation of Specified Systems in Estelle", doctoral thesis at Paris 6 University, 1996.
  • the translator transforms an Estelle model into an intermediate model, annotated with
  • the simulator / debugger (Edb) based on the semantic model defined in the Estelle standard, contains a set of special functions allowing
  • LQN LayerQN
  • SPEED Software Performance Engineering Early Design
  • CU Smith and LG Williamns, "Performance Engineering Evaluation of ObjectOriented Systems with SPE-ED,” Computer Performnance Evaluation Modeling Techniques and Tools, no. 1245, Springer-Verlag, Berlin, 1997] is a tool for evaluating architecture and alternative solutions for the design of object systems.
  • the functional specification of the system is in the form of sequence diagrams representing traces of executions
  • the tool transforms the specification model into a performance model represented by a queuing system.
  • a combination of analysis and simulation can identify potential performance issues, such as bottlenecks.
  • TLC Race-Based Load Characterization
  • LQN layered performance model
  • the traces - Message Sequence Charts - are obtained by simulation of an SDL model, but must be annotated in order to explain the causal dependencies that exist between the different actions performed. By an analysis of the detailed events of the simulation, the annotations of the traces are produced according to an incremental marking principle, which is similar to the blood staining technique used in radiography, the angiogram.
  • communication schemes conventional in software systems, are identified, in practice, each message is assigned a type, which can be "RPC" (remote procedure call), "Forward” (RPC propagated to a third party), "Reply” (response to a RPC), or " Async "(asynchronous transmission of a message).
  • RPC remote procedure call
  • RPC forward
  • Reply response to a RPC
  • Async Async
  • the Markov hypotheses are omnipresent. They can possibly be checked on simple systems. However, they generally do not apply in the case of complex systems in which many interactions take place. To make Markov's hypothesis then returns to consider a rather rough approximation of the real system, for want of a better one.
  • most approaches introduce temporal annotations within the functional model. The resulting performance model generally has far too much functional detail, which is irrelevant from the point of view of performance, which undermines the effectiveness of simulation programs.
  • the latest TLC approach is appealing in that it considers a finite set of scenarios, rather than a complete description of the system.
  • the targeted LQN model introduces high-level concepts which, in order to promote the human understanding of the system, are both rigid and artificial performance analysis, and restrictive in terms of expressiveness.
  • the TLC approach seeks to automate the identification of the causal links between the different events of a scenario, which seems very delicate in the general case.
  • the reaction of a system to a stimulus is often conditioned not only by this stimulus but also by the internal state of the process; however, the TLC approach focuses on identifying trigger factors of the external stimulus type (messages).
  • the object of the invention is to overcome the shortcomings of the systems of the prior art described above by means of a method adapted to service platforms, the main result of which is the automatic production of a performance model. , from a functional model of the studied system.
  • the generated performance model is dedicated to the software simulators of the market based on the queuing systems.
  • the functional model is expressed in the form of sequence diagrams with temporal data. Sequence diagrams can be derived from dynamic and complete modeling of the SDL or UML system.
  • the method according to the invention comprises the following steps: - Distributing the representative requests of the system into a finite number of groups and identifying, for each group of requests, the corresponding execution flow, the distribution of said requests being determined by the service invoked and by the characteristics of the customer's own behavior, and the execution flow for each group of requests corresponds to the sequence of executions of software entities, in sequence and / or in parallel, induced by a request of the group.
  • the performance model derived from the intermediate model developed is dedicated to pre-existing software simulators using queuing network techniques.
  • the distribution of the system's requests into a finite number of groups of requests is determined by the service being invoked (its nature), and by the characteristics of the customer's own behavior which influence the way in which it is realized. the service invoked.
  • the execution flow for each group of requests is determined by the sequence of executions of software entities, in sequence and / or in parallel, induced by a request of the group.
  • the topology of the queuing model derived from the transformation is entirely determined by the execution streams corresponding to the groups of requests.
  • the derivation of a performance model dedicated to a pre-existing simulator based on queuing network techniques can be automated by adapting the proposed matching rules.
  • the phase formalism is realized by means of an extension of the MSC (Message Sequence Charts) formalism, and the formalization of the graph of the phases and execution flows of a service using HMSC (High Level Message Sequence Charts) formalism is represented as a tree with:
  • the formalization tree may further comprise:
  • At least one node followed by several arcs oriented in parallel at least one node followed by several oriented arcs according to the choice of the next phase depending either on a condition external to the system (linked for example to a characteristic of the client) or an internal condition related to the current state of the system.
  • the intermediate model developed comprises the formalized execution flows, associated with temporal data characterizing the behavior of software entities and their interactions, at least one specification of the resources describing the physical materials, and at least one environment specification representing user behavior.
  • FIG. 2 schematically illustrates an intermediate model defined by the method according to the invention
  • FIG. 3 schematically illustrates the association of the different elements of the intermediate model and the primitives of the SES / Workbench simulator based on queuing systems
  • FIGS. 4a to 4h schematically illustrate the rules of correspondence between the annotated events characterizing the behavior of software entities and primitives of the SES simulator
  • FIG. 5 schematically illustrates an SES sub-model derived from a formalized execution stream by applying matching rules illustrated in FIGS. 4a to 4h
  • FIG. 6 represents an SES sub-model of the overall system architecture obtained by applying matching rules illustrated in FIG. 3
  • FIG. 7 schematically illustrates the phase tree representing the different steps for the realization of an audio-conference service according to the process of the invention
  • FIGS. 8 to 10 represent the execution flows extracted from the phase tree for the audio-conference service
  • FIGS. 11 to 20 show diagrams of the phases of the behavior of the service provided
  • FIG. 21 shows the resource declaration, execution flows, and sub-model of the global architecture of an audio conferencing platform in the SES model
  • FIGS. 23 to 25 represent the SES sub-models derived from the various formalized execution streams by applying matching rules illustrated in FIGS. 4a to 4h.
  • the method according to the invention uses queuing systems. This choice is linked to the fact that most of the most advanced performance simulators on the market use the queue network model for the most part. These workshops show a notorious maturity, both in terms of the wealth of features, quality of analysis and robustness. Recall that a model of a queuing system focuses on the aspects that have an effect directly or indirectly on the consumption of the resources of the system (processors and memories of the machines, bandwidth of the transport networks).
  • the method according to the invention makes it possible to model essentially:
  • a distributed software system typically consists of a set of software entities
  • Clients are queries sent by users invoking services provided by the system.
  • the topology of the queued system it is determined entirely by the execution traces. Indeed the arrival of a request in the system causes the execution of actions on the servers. These actions can evolve simultaneously (in parallel) or synchronize in sequence. Each execution trace is thus represented by a server tree.
  • the overall topology of the queuing network is such that all traces of execution are covered. Before modeling the model, it still needs to be completed with an environment model and a resource model. The first characterizes user behavior, in terms of throughput and statistical distribution of inter-arrival times.
  • the second specifies the duration of execution of each entity when the machine is entirely dedicated to it (unit tests), the transmission delays characterizing the capacity of the networks and the scheduling policy of the competing treatments.
  • This data can be integrated into the functional model of the system. Simulation involves injecting a very large number of queries into the model. One optimizes the use of the resources of the system by seeking a good configuration (or parameterization) of the various elements of the model. The quality of the overall configuration is evaluated in student by simulation its impact on the load of the servers, on the occupancy rate of the buffers, and on quantities characterizing the quality of service: the response times of a particular component or the system (from end to end), the maximum processing capacity (volumetry), etc.
  • the approach proposed by the invention is applicable to systems whose behavior can be reasonably summarized by a limited set of execution scenarios. Ideally, the chosen scenarios will evolve independently of each other. Nevertheless, systems involving dependencies between scenarios are acceptable (in the event of interaction between two clients for example), as long as these dependencies remain clearly expressible by the designer. In this sense, the service platforms constitute a concrete field of application for the implementation of the invention. Indeed, the use of this type of platform can often be characterized by a reasonable number of scenarios, which correspond to the different cases of use of the platform (in other words, to the processing of the different requests issued by the users when invoking services), and which weakly depend on each other.
  • the true starting point for the Generation of a queued performance model consists in distributing the requests representative of the system in a finite number of groups of requests and in identifying (step 2), for each group of requests, the corresponding execution flow.
  • This makes it possible to determine the overall topology of the queued system so that all the execution traces induced by representative queries are reflected therein.
  • Representative queries are those whose transmission frequency in the system is significant.
  • the distribution of these requests is determined on the one hand by the service invoked; and on the other hand, by the characteristics of the customer's own behavior that influence the way in which the service is performed (see the example of Audio Conferencing).
  • the execution flow for each group of requests it corresponds to the sequence of executions of software entities, in sequence and / or in parallel, induced by a request of the group.
  • each service of the system is represented in the form of a tree with the following characteristics: the nodes of the tree represent the phases constituting the service.
  • a particular node, the initial node, is the phase that initiates the service; an oriented bow leading from a knot to a other represents the sequential sequence of two phases
  • FIGS. 8 to 10 illustrate the execution flows extracted from the phase tree (FIG. 7) in the example of the audio-conference service. Formalization of execution flows
  • Step 4 of the method (FIG. 1) consists in formalizing the execution flows using a notation that makes it possible to highlight the interactions between the different software entities involved in the execution flows and the information characterizing the execution. consumption of system resources.
  • this formalization is based on the Message Sequence Charts
  • MSC is optimal if the chart is produced as a system run trace.
  • an executable specification of the system can be produced in SDL, which happens to be a formalism closely related to MSCs in terms of semantics.
  • SDL tools are able to produce simulation traces in the MSC format. These same tools also offer the possibility of manually editing such diagrams, and it is thus possible to proceed without using the simulation of an SDL model.
  • the events that appear on an MSC chart focus on functional aspects: sending or receiving messages, actions, arming, or timing out, and so on. In reality, this level of information is irrelevant or insufficient for a performance model: for example, the name of the messages does not matter.
  • chaining conditions which specify to what extent the execution of a stream can continue.
  • a chaining condition is either waiting for the expiration of a delay or the validity of a Boolean expression. It can be seen as a door blocking the pursuit of execution, and the components of the condition as the keys that must be collected to cross that door. These keys must be defined by the designer and serve to indicate the realization of certain facts which then contribute to the validation of the chaining condition. These keys will typically be represented by Boolean flags such as for example_connected_user. nb_max_tentatives_atteint, etc.
  • Step 6 of the method is to define an intermediate model to allow the automatic transition to a performance model.
  • this model is composed of the formalized execution flows (10) characterizing the behavior of software entities and their interactions, a resource specification (12) describing the physical materials, and a environment specification 14 representing user behavior.
  • the resource model contains the following declarations: - machines, buffer size and simultaneous processing scheduling policy of these machines; transport networks and their topologies for connecting machines; software entities (single-threaded programs), and their distribution over resources;
  • Step 8 of the process ( Figure 1) consists in defining rules of correspondence between the elements of the intermediate model and the primitives of a general-purpose simulator based on queuing systems. The transformation becomes automatic when these matching rules are applied. The latter apply - as well to all simulators in this category: all are based on the same basic concepts, only the mode of representation of these concepts differs. The consistency of the transformation is based on semantic rules
  • Figure 3 schematically illustrates the rules of correspondence between the intermediate model and SES / Workbench "nodes".
  • R ⁇ machine_l, ..., machine_m ⁇
  • F ⁇ flowFormExec_l, ..., flowExecFormalized_n ⁇ all the machines of the system declared in the resource model and the set of formalized execution flows system services:
  • the environment model 14 is associated with a "source” node 20, possibly followed by a “submodel” node 22.
  • the latter is useful in more complex cases, for example in the case of requests structured in sessions or several levels ;
  • the resource model 12 containing the declaration of the set R of m machines is associated with a set of m nodes "service” denoted by a logical name (server_j for example), for all j;
  • the primitive "EXEC (t)” is associated with a sequence of two nodes: a "user” node, followed by a “service reference_to” node.
  • the user node is used to specify the value of t corresponding to the code execution time, while the service reference node refers to the service node declared in the module corresponding to the machine hosting the process that performs the EXEC (t) rupe
  • the primitive "DELAY (t)" is associated with a node “delay” ( Figure 4d) and the value of t is the parameter of the node.
  • the chaining condition “EXPECT” is associated with a "block” node, where it is expressed by a Boolean expression c given as a parameter of the node (FIG. 4e).
  • the sequential sequence of events is represented by an arc between the nodes ( Figure 4f).
  • the choice of a sequence of events among N possible sequences is represented by N arcs starting from the node where the choice takes place.
  • the conditions determining a choice are specified in the corresponding arc ( Figure 4g).
  • FIG. 4h illustrates the separation of the stream into N parallel branches.
  • FIG. 5 illustrates the sequence corresponding to the submodel of a formalized execution stream completed by an "enter” node and by a “return” node which respectively represent the input and the output of the submodel.
  • Figure 6 illustrates the overall architecture of the system, which brings together the runtime submodels and the environment sub-model.
  • Example of application Audio-conference platform Informal presentation of the audio-conference service.
  • the Audio-conference service allows a specific number of users, with prior agreement, each on their own side and at an agreed date and time, to dial a number to establish a communication to a conference bridge .
  • the reservation of a conference bridge previously made by one of the participants, which specified the date, time, duration and number of participants.
  • the realization of the conferencing session service offered by the Audio-conferencing platform depends on the role (nature) of the client invoking it:
  • This classification makes it possible to identify the different types of requests.
  • one type of query may interact with another. For example, the processing of the request of a simple participant in an audio-conference session is suspended until the arrival of the organizer of this session.
  • a special role is assigned to the Conference Organizer.
  • the 'Conference can not begin before the arrival of the Organizer, that is to say that the participants can not be connected to the conference bridge as one organizer is absent.
  • the conference is closed after the hang-up of the Organizer, and participants still in line will then be disconnected from the conference deck.
  • the subscription which consists mainly of the reservation of an access number to the conference bridge, takes place through the service provider.
  • the data is consequently retrieved from the database.
  • a participant dials the access number to the programmed conference (NAS service access number). This number is composed of a service-specific OZABPQ prefix, while the MCDU suffix is
  • the service translates the service access number to the real conference bridge access number (NAC).
  • NAC real conference bridge access number
  • the service rejects the call with a saturation message.
  • SDF Service Data Function
  • the data modifiable by the call processing are in a database accessible in read and write by call processing scripts, this database must provide greater access performance. This last type of data is represented here by the maximum number of participants, and by the state of the resource.
  • the first step is to identify the elementary phases and their organization into a phase tree.
  • Figure 7 illustrates the global phase tree which describes the sequence of the different phases by specifying the internal or external alternatives. External conditions are recognized by the fact that the resulting arches carry statistical percentages.
  • an external alternative identifies whether the user is the organizer (P2) or a simple participant (P4). If the user is a participant, an internal alternative ⁇ nbParticipants ⁇ MAXl ⁇ , whose option depends on the execution of other scenarios, identifies whether the maximum number of participants is reached or not. If this number is reached, a phase for sending a saturation message is initiated (P6). If this maximum number is not reached (P5), a second internal alternative ⁇ organizerPresent ⁇ makes it possible to identify if the organizer is already present. If it is already present, the participant is connected to the bridge (P. 7, with prior in a greeting). If the organizer is absent, a waiting message is sent to the participant (phase P8).
  • an external condition ⁇ participantPatient ⁇ makes it possible to distinguish the case where the participant is waiting for the arrival of the organizer (phase P10) and enters the conference (phase P7) at the arrival of the Organizer, of the case where the participant is rather of the "impatient" type, that is to say he hangs up after the announcement of delay broadcast in phase P9.
  • the number of participants is reduced by one.
  • the queries in the example are divided into three groups: queries sent by an organizer; requests sent by a single patient participant; and queries sent by a simple impatient participant. From the global phase tree, the three corresponding execution streams are then extracted by keeping only one branch of each external alternative: execution flow induced by the arrival of the organizer (FIG. 8) ; flow of execution induced by the arrival of a single patient participant ( Figure 9); flow of execution induced by the arrival of a simple impatient participant ( Figure 10).
  • the second step of the process consists in identifying the keys and doors that influence the behavior of a use case from the behavior of one or more other use cases.
  • a key related to the presence of the organizer is identified.
  • the P3 phase, performed at the arrival of the organizer, includes the PUBLISH task (organizerPresent).
  • nbParticipants is increased by 1 when connecting a user (non-organizer), unless it is already worth its maximum allowed value (MAXI). This test is represented by an internal alternative in the phase tree.
  • FIGS 11 to 20 show diagrams of formalization of the phases of service behavior, the MSCs associated with different phases of service behavior will be given with a simplified view of the signal names. Similarly, not all exchanges are indicated so as not to burden the schemes.
  • the instances considered in these MSCs are: - the Service Data Function (SDF), the Service Control Function (SCF), the SRF (Service Resource Function or Platform) voice) and USERs.
  • SDF Service Data Function
  • SCF Service Control Function
  • SRF Service Resource Function or Platform
  • the signal exchanges correspond to: the interrogations of the database: • calling (callingNumber) queries the base on the calling number (P2, P4); • caller type is the answer of the base, it can take the values ORGANIZER (if the caller is the organizer) or PARTICIPANT (if the caller is not the organizer).
  • Voice message exchange via the voice platform send_message to the voice platform, msg_info to the user (P6, P7, P9).
  • FIG. 11 shows the formalization of the invocation phase of the service.
  • Figure 12 represents the formalization of the "Organizer Identification” phase.
  • Figure 13 represents the formalization of the "IdentificationParticipant” phase.
  • Figure 14 represents the formalization of the "OpeningConferenceOpening" phase.
  • Figure 15 represents the formalization of the phase "ConnexionParticipant”.
  • FIG. 16 represents the formalization of the "DisconnectionSuiteASaturation" phase.
  • Figure 17 shows the formalization of the phase "EntreeDansLaConference”.
  • Figure 18 represents the formalization of the "AdvertRetardOrganizer" phase.
  • FIG. 19 represents the formalization of the "WaitingOrganizer” phase.
  • FIG. 20 represents the formalization of the "AbandonWaiting” phase.
  • Figure 21 shows the general view of the intermediate model (in SES / Workbench). It contains: the statement of resources, the three streams of executions and the sub-model of the global architecture of the udio-conference platform.
  • the SDF, SCF, and SRF processes each run on one machine.
  • FIG. 22 An internal view of the overall architecture of the platform is shown in Figure 22.
  • the initSession node initiates the creation of the maximum number of concurrent sessions allowed by the platform.
  • the callSessionCode generates calls for each open session and the node interAppOrdre models the length of time between consecutive calls in a session and the rank of the organizer.
  • each end of session represented by the closingSession node, triggers the creation of a new session represented by the creationSession node.
  • Figures 23, 24, and 25 respectively show the three sub-models resulting from the transformation of the execution flows of
  • the organizer a patient participant, and an impatient participant.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un procédé de génération d'un modèle de performance à partir d'un modèle fonctionnel d'un système comportant une pluralité d'entités matérielles et logiciels réparties coopérant pour fournir un service à au moins un utilisateur. Le procédé selon l'invention comporte les étapes suivantes :- Répartir les requêtes représentatives du système en un nombre fini de groupes et identifier, pour chaque groupe de requêtes, le flot d'exécution correspondant, - Formaliser les flots d'exécutions à l'aide d'une notation permettant de mettre en évidence, d'une part, les relations causales entre les différentes entités logicielles du système impliquées dans les flots d'exécution, et d'autre part, les informations caractérisant la consommation des ressources du système,- Elaborer un modèle intermédiaire, - Automatiser la transformation du modèle intermédiaire élaboré en un modèle de performance.

Description

PROCEDE DE GENERATION D'UN MODELE DE PERFORMANCE A PARTIR D'UN MODELE FONCTIONNEL
DESCRIPTION Domaine technique
L'invention se situe dans le domaine de l'étude des performances par simulation d'un système, tel que par exemple un système de télécommunication comportant une pluralité de composants matériels et logiciels répartis et qui coopèrent pour fournir un service à un ou plusieurs utilisateurs.
L'invention concerne plus spécifiquement un procédé de génération d'un modèle de performance à partir d'un modèle fonctionnel d'un tel système.
Etat de la technique antérieure
Lors • de la réalisation puis du déploiement d'un système, il faut s'assurer qu'il possède les capacités fonctionnelles attendues, mais aussi qu'il tiendra la charge dans les conditions d'exploitation. Si les performances chutent, il peut même arriver que le système ne remplisse plus les services prévus. Une étude de performance a pour premier objectif de prévoir les phénomènes d'écroulement du système afin d'éviter tout dysfonctionnement.
L'étude de performance permet de connaître d'une façon précise la répartition des ressources du système et d' identifier ainsi les éventuels goulots d'étranglement. Un second objectif est d'ordre économique. Il s'agit de déterminer les configurations optimales des ressources, afin de maximiser leur efficacité et ainsi d'éviter l'achat d'équipements supplémentaires. Le dimensionnement des ressources consiste à déterminer les paramètres quantitatifs nécessaires pour la qualité de service désirée tels que par exemple la taille des tampons, le nombre de serveurs, la répartition des entités de traitement sur les différentes machines, etc.
Une étude de performance s'effectue soit sur un modèle, soit sur le système réel par des mesures. Lorsque c'est sur un modèle, on peut généralement observer deux types de comportement du système étudié, le comportement transitoire et le comportement stationnaire. Le premier porte sur des périodes courtes et le second sur des périodes longues. Les approches les plus sollicitées sont notamment les techniques mathématiques, la simulation discrète, et l'analyse basée sur des graphes .
Les notations pour exprimer les modèles sont souvent des types suivants : - systèmes à files d'attente,
- réseaux de Pétri temporises,
- automates temporises,
- modèles hiérarchiques ou descriptions textuelles dans des langages spécialisés. L'évaluation des performances dépend de la technique utilisée qui doit être choisie en tenant compte des caractéristiques de l'application considérée. Les techniques de résolution sont classées en trois catégories principales : - la méthode analytique,
- les tests réels, et - la simulation.
La méthode analytique fait appel le plus souvent à la théorie des systèmes à files d'attente, ou aux réseaux de Pétri stochastiques. Les systèmes à files d'attente restent l'un des plus puissants formalismes mathématiques permettant d'analyser quantitativement une très grande variété de systèmes. Par exemple, un système informatique peut être considéré, de manière très abstraite, comme un ensemble de ressources matérielles et logicielles
(serveurs) utilisées par des tâches ou des programmes
(clients) . Les ressources étant en nombre limité, les programmes vont entrer en concurrence pour l'accès à ces ressources, et l'on résout cette concurrence par des files d'attente.
Le formalisme des réseaux de Pétri repose sur une représentation graphique qui permet de bien comprendre le comportement du système. Ce formalisme convient notamment aux systèmes dont le comportement est fortement caractérisé par les aspects de concurrence, de synchronisation, de communication et de coopération. Le système peut être analysé qualitativement (absence d' inter-blocage, sûreté de fonctionnement, etc.). Un handicap majeur du réseau de Pétri réside dans l'explosion du nombre d'états à examiner lorsque la complexité du système augmente.
L'approche analytique, enfin, consiste généralement à exprimer le comportement du système sous forme d'un modèle mathématique exact aboutissant à des formules closes. Le comportement du système est alors réduit à un ensemble de variables liées entre elles par des équations. L'atout principal de cette approche analytique réside dans le fait qu'elle ne nécessite pas d'outil de support sophistiqué lors des phases de modélisation et de résolution du problème, ce qui convient particulièrement aux phases amont de la conception d'une application. Avec cette approche, il suffit d'appliquer la formule pour déterminer les quantités recherchées et surtout pour connaître l'influence relative des différents paramètres. Cette approche, qui requiert couramment de fortes hypothèses (indépendance des événements, conservâtivité des serveurs, etc.), s'avère praticable pour des systèmes à l'architecture fonctionnelle relativement simple tels que par exemple l'étude des systèmes de commutation des réseaux de transport. En outre, la méthode analytique s'avère bien adaptée à l'étude des «pires cas» de comportement du système, en faisant des approximations simplificatrices et pessimistes. Cependant, les systèmes logiciels se prêtent beaucoup moins bien aux méthodes analytiques, car ils présentent beaucoup de variantes de comportement . En effet, le comportement du système d'exploitation dépend fortement de l'architecture de la machine, sur laquelle on ne dispose souvent que de très peu d'informations. Aussi, les interactions entre les différents processus peuvent être très complexes et difficiles à caractériser par des lois probabilistes.
Dans les systèmes répartis, des complications supplémentaires apparaissent du fait de la coopération entre des systèmes hétérogènes où seule une vue partielle de l'état du système est disponible au niveau de chaque composant . Dans le cas des services de télécommunication, il est également difficile de caractériser le comportement des clients qui génèrent le trafic des requêtes.
A l'opposé de la méthode analytique, l'approche par tests réels consiste, moyennant une infrastructure d'observation (sondes), à faire des mesures directement sur le système réel. L'observation se fait généralement soit au niveau logiciel, soit au niveau du système exploitation, soit aux deux niveaux en même temps. Cette approche a pour avantage l'obtention de résultats réels, notamment pour la capacité de traitement limite du système (montée en charge) . La mesure des performances sur un système réel nécessite de disposer d'une implantation complète du système à tester (matériels et logiciels) , par conséquent l'étude ne peut être menée qu'a posteriori, et peut impliquer des achats de matériels coûteux. La réalisation d'une sonde pour inspecter le système est une tâche difficile car l'instrumentation ne doit pas perturber de manière significative ce que l'on mesure. En particulier, La répartition des machines nécessite une synchronisation d'horloges satisfaisante. De plus, toute modification logicielle ou matérielle entraîne un surcoût de mise en oeuvre en termes d'interopérabilité et de portabilité, de reconfiguration, et de réglages. En outre, les programmes de tests doivent être développés et eux-mêmes testés et sont fortement liés au code réel de l'application ce qui est d'autant plus contraignant que les processus de développement et de mise en exploitation d'une application sont courts. Il faut donc souvent développer en parallèle l'application et les programmes de tests, ce qui induit de fortes contraintes de synchronisation au niveau de l'organisation du développement. Enfin, les tests réels souffrent d'une limitation qui provient du fait que seules des configurations simples peuvent être considérées. Par exemple, la capacité de traitement est évaluée en testant le comportement du système lorsque des demandes de service arrivent simultanément. Par contre, pour connaître l'évolution du temps de réponse
(temps maximum, temps moyen, répartition...), de l'occupation des tampons et du taux de pertes, il faut générer un très grand nombre de requêtes pour que les résultats statistiques des tests soient représentatifs. D'autre part, il faut aussi générer des flux d'arrivée de ces requêtes selon des scenarii représentatifs du comportement des utilisateurs. Ces flux sont caractérisés notamment par le taux d'arrivée moyen et le rythme (déterministe, en rafale, aléatoire sur une durée, exponentiel...). Ces contraintes imposent de disposer de plusieurs machines clientes, car le nombre de processus actifs par CPU est souvent limité à quelques centaines. Il faut également pouvoir les synchroniser pour que le comportement des utilisateurs généré soit proche de la réalité, ce qui est très difficile à mettre en œuvre.
L'approche par simulation semble de loin la plus utilisée pour l'évaluation des performances de toutes sortes de systèmes et consiste à modéliser le comportement du système, le plus souvent à l'aide d'un système à files d'attente ou d'un réseau de Pétri, puis à expérimenter le modèle en faisant varier un ensemble de paramètres correspondant aux différentes configurations du système. Par exemple, pour des systèmes logiciels, les paramètres peuvent être la vitesse de calcul des processeurs, le débit de transmission des réseaux, la politique d'ordonnancement des processus, le nombre et la topologie des machines, le taux et le rythme d'arrivée des requêtes, etc.. La simulation est plus aisée à appréhender, et plus puissante que la méthode analytique. En effet, la formulation du modèle à simuler ne s'exprime pas sous forme d'équations mais de programmes, ce qui permet de construire un modèle aussi proche que possible du système réel étudié. Elle est beaucoup moins coûteuse en matériel et en logiciel que l'approche par tests car elle exploite un modèle (une abstraction, une représentation virtuelle) au lieu d'un système réel. Cette approche fournit un outil puissant pour la prédiction des performances depuis la conception du système à étudier jusqu'à sa réalisation.
Des simulateurs logiciels généralistes sont apparus depuis 1980 et on peut citer par exemple QNAP
[http : /www.hyperformix. corn] , SIMSCRIPT [http: /www. caci . com/index_main. shtml] , OPNET
[http: /ww . opnet . corn] , et SES/ orkench
[http: /www.hyperformix. corn] .
Contrairement aux campagnes de tests, le temps d'exécutions d'une simulation n'est pas lié aux temps réels des traitements de l'application. Ainsi, l'approche par simulation permet de réaliser un plus grand nombre de scénarii en faisant simplement varier les paramètres du modèle. La mise au point d'un modèle permet souvent d'énoncer des conjectures sur le système considéré et de pressentir plus facilement certains éléments de réponses au problème de la performance. Les simulations permettront de confirmer ou d' infirmer ces conjectures. D'autres éléments, tels que la distribution du temps de réponse de bout en bout ou du taux de perte, sont le plus souvent très difficiles à quantifier et seule la simulation permet de les mettre en évidence .
L'approche par simulation se déroule en quatre phases : • l'élaboration du modèle de comportement du système : elle commence par la sélection des entités du système (un composant logiciel, un processus, etc.) qu'il est judicieux de modéliser, par rapport aux objectifs précis de l'étude de performance. L'élaboration se poursuit par la description du fonctionnement de ces entités, ainsi que de leurs interactions. Les entités sont choisies en fonction de la finesse désirée des résultats de la simulation, mais aussi en fonction des données initiales qui peuvent être procurées . Les paramètres sont des caractéristiques significatives des éléments du système (par exemple, temps de traitement unitaire d'une entité sur un processeur, nombre de serveurs, etc.), qui sont susceptibles d'influencer les résultats de simulation. Les modèles sont représentés généralement soit par des systèmes à files d'attente (QNAP, SIMSCRIPT, SES/ orkbench) , soit par des automates (OPNET) , soit par des réseaux de Pétri .
• l'acquisition des données quantitatives pour alimenter les simulations : pour des systèmes logiciels, ces données correspondent notamment aux temps de traitement des programmes sur les processeurs et aux délais de transmission si des acheminements à travers des réseaux ont lieu. Elles sont mesurées par des tests unitaires. Un test unitaire de traitement, ou de délai de transmission, correspond respectivement au temps d'utilisation du processeur (unité centrale), ou du réseau quand la ressource est entièrement dédiée au processeur.
• les simulations et la collecte des résultats statistiques : on observe le comportement du système en exécutant le modèle à l'aide d'un simulateur et en faisant varier ses paramètres ; on analyse les résultats de chaque simulation et on en déduit des résultats de performance pour les configurations choisies . • validation du modèle de simulation : la confiance que l'on peut accorder aux résultats de simulations nécessite une validation du modèle. Elle consiste à réaliser quelques tests réels représentatifs soigneusement choisis et à confronter ces résultats réels avec ceux obtenus par simulation.
De manière générale, l'approche par simulation constitue un bon compromis entre coût de mise en oeuvre et valeur des résultats. En faisant varier divers paramètres, elle permet d'étudier le comportement d'un système ou d'une application sous une grande variété de configurations. Ceci sans avoir toute l'infrastructure cible du système (matériel et logiciel) et, pour les applications, sans en faire le développement complet. Par ailleurs, elle convient parfaitement lorsque l'on veut comparer des différentes technologies ou produits, 5 ainsi que pour dimensionner et optimiser le système en cours d'élaboration.
Les principales difficultés de l'approche par simulation résident dans la capture du comportement du système à étudier, l'obtention des mesures
10 quantitatives unitaires et la connaissance statistique du comportement des clients du système. En effet, tout modèle de simulation est une approximation du système réel, et la fidélité du modèle à la réalité dépend fortement de la finesse des connaissances disponibles
15 sur le fonctionnement du système. Or les systèmes logiciels sont souvent des produits qui se présentent sous forme de « boîtes noires », c'est-à-dire de programmes exécutables dont on ne dispose pas des spécifications. L'introduction d'outils de traces pour
20 comprendre les mécanismes et les comportements internes et pour disposer des mesures unitaires sur tous les éléments qui composent le système dans la modélisation t-" est une tâche indispensable et délicate. En outre, la connaissance du comportement des utilisateurs joue
25 également un rôle primordial pour alimenter les simulations, loi d'arrivée des requêtes, répartition des scenarii utilisateur, etc. En effet, ces éléments ont une incidence non négligeable sur la performance du système, notamment en ce qui concerne les temps de
30 réponse. Cette connaissance ne peut être fournie que par des mesures sur un système réel. Or, en général très peu de statistiques sont disponibles à ce sujet. De . plus, pour de nouvelles applications, une modélisation anticipée des profils des utilisateurs est nécessaire. Le passage d'un modèle basé sur les aspects fonctionnels d'un système à un modèle de performance a fait l'objet de plusieurs travaux cités à titre d'exemples ci-après.
Timed SDL (TSDL) [F. Bause and P. Buchholz, "Qualitative and Quantitative Analysis of Timed SDL Spécifications", in N. Gerner, H. G. Hegering, J. Savolvod, (Eds.) Springer-Verlag, 1993] implémente une forme de systèmes de transitions temporises, construits à partir d'une spécification SDL dans laquelle à chaque transition, est attachée une durée exponentielle. Il n'inclut pas de notions de ressources ou de charge. A partir d'une représentation intermédiaire sous la forme d'automate, l'outil effectue des analyses qualitatives et quantitatives en utilisant des algorithmes de type Markovien.
DL-net [H. M. Kabutz, "Analytical performance évaluation of concurrent communicating Systems using SDL and stochastic Pétri nets", Doctoral Thesis, department of Computer science, University of Cape Town, Republic Of south Africa, 1997] transforme un modèle SDL appauvri (soumis à de fortes restrictions sur les types de données) en un modèle QPN (Queuing Pétri Nets), c'est-à-dire un réseau de Pétri muni de files d'attente. C'est seulement à ce second niveau que sont introduites les informations stochastiques de durée. Un outil convertit ce modèle en une chaîne de Markov qui est ensuite résolue. La sémantique de la description SDL originale peut être différente de celle de SDLnet, mais des solutions pragmatiques acceptables ont été proposées, du point de vue des auteurs de cette 5 approche .
SPECS (SDL Performance Evaluation of Concurrent Systems) [Butow M., Mestern M., Schapiro C, Kritzinger P. S., «Performance Modeling from Formai Spécifications », FORTE-PST y' 96, Kaiserslautern, Germany, October
10 1996] permet de modéliser les ressources (les machines) par des blocs SDL et les tâches s'exécutant sur une machine par des processus à l'intérieur d'un même bloc. Les processus dans des blocs différents s'exécutent de manière concurrente, alors que les processus du même
15 bloc s'exécutent dans un mode multitâche. Des délais de canaux et des caractéristiques de fiabilité peuvent être ajoutés. Le modèle s'exécute sur une machine virtuelle qui est dérivée du modèle SDL.
SPEET (SDL Performance Evaluation Tool) [M.
20 Steppler, M. Lott, nSPEET - SDL Performance Evaluation
Tool", in A. Cavalli, A. Sarma (Ed.), SDL'97 - Time for
Testing, Proceeding of the 8th SDL Forum, Elsevier,
«-" 1997.] a pour objectif principal l'analyse de performances de systèmes spécifiés en SDL s'exécutant
25 dans un environnement temps-réel. Les systèmes peuvent être simulés ou exécutés sur des émulateurs de matériels existants (Intel®, Motorola® et Siemens®) . Ils sont stimulés par des générateurs de trafics et sont interconnectés par des liens de transmission
30 correspondant à des canaux physiques. Les utilisateurs peuvent définir facilement des sondes à l'intérieur de la description formelle et introduire des indications de charge .
Les approches de [E. Heck, "Performance Evaluation of Formally Specified Systems — the intégration of SDL with HIT", doctoral Thesis, University of Dortmund, Krehl Verlag, 1996.] et de [Martins J. , «A System Engineering Methodology Intégrâting performance évaluation and Formai Spécification », PhD Thesis, l'Ecole polytechnique fédérale de Lausanne, Avril 1996] introduisent un cadre conceptuel (HIT) visant une synthèse des techniques de description formelle et d'évaluation de performance où les propriétés issues de ces deux mondes seraient préservées. Un outil transforme un modèle SDL en un modèle HIT possédant une structure hiérarchique pertinente pour l'étude de performances. Une traduction
(manuelle pour l'instant) a également été proposée vers un modèle OPNET, ce qui permet de bénéficier de simulateurs performants. QUEST [M. Diefenbruch, "Fonctional and
Quantitative Vérification of Time-and resource Extended SDL Systems with Model-checking ", in : K Irmscher, (Ed.), Proceeding of Messung, Modellierung und Bewertung van Rechen-und Kommunikationssyste,nen, Freiberg, Germany, VDE-Verlag, 1997] est basé sur un langage, QSDL (Queueing SDL) , qui est une extension du langage SDL. En ajoutant des annotations indiquant les machines qui fournissent des services, des disciplines de service, la gestion des files d'attente dans le modèle SDL, le modèle QSDL permet d'évaluer par simulation la performance du système correspondant spécifié en SDL. Il permet également de valider et de vérifier un système SDL temporisé par model checking.
DO-IT Toolbox [A. Mitschele-Thiel and B. MUlier-Clostermann, «Performance Engineering of SDIJMSC Systems», Journal on Computer Networks and ISDN Systems, Elsevier, 1998] effectue l'évaluation de performance de systèmes spécifiés en MSC et en SDL. Son originalité est de partir des MSC qui sont disponibles très tôt dans le cycle de vie, en y ajoutant des annotations de charge et précisant les ressources disponibles pour des exécutions spécifiques du système. Il fournit une technique simple d'évaluation de performance pour l'analyse de goulots d'étranglement et l'optimisation d' implémentations, à partir d'hypothèses de temps de service déterministes.
EaSy-Sim [C. Schaffer and R. Raschhofer, A. Simma, "EaSy-Sim A Tool Environement for the design of Comnplex, Real-Time Systems", Proceeding International Conférence on computer Aided Systemns technologies, Innsbruck, Springer-Verlag, 1995] est un couplage entre l'environnement GEODE pour SDL et le simulateur SES/Workbench. L'environnement SDL est utilisé pour la vérification et la validation fonctionnelle, alors que SES/Workbench modélise la partie non fonctionnelle pour évaluer la performance. Le couplage est implémente par des échanges de messages entre le code exécutable de l'application obtenu par GEODE et le simulateur SES/Workbench. Cet outil peut s'appliquer à une spécification MSC dans lequel des exigences de temps de réponse sont ajoutées pour des systèmes temps réel [C.
Schaffer "MSC/RT: A Real-Time extension to Message Séquence Charts (MSC) , Internai Report TR 140-96, Institut fur Systemwissenschaften, . Johannes kepler universitât Linz, 1996] .
EDT (Estelle Developement Tool) [M. Hendaz , « 5 Annotation Dynamique pour Evaluation de Performance des systèmes spécifiés en Estelle », thèse doctorat à l'Université Paris 6, 1996.] est un ensemble d'outils basés sur le langage Estelle. Le traducteur transforme un modèle Estelle en un modèle intermédiaire, annoté de
10 façon à assigner des temps d'exécutions non nuls aux transitions. Les temps peuvent avoir différentes distributions. Le simulateur/débogueur (Edb) , basé sur le modèle sémantique défini dans la norme Estelle, comporte un jeu de fonctions spéciales permettant des
15 simulations interactives et aléatoires dans le cadre de l'évaluation de performance.
Configuration Planner [H. M. El-Sayed, D. Cameron and C M. Woodside, "A uto ated performance modeling from scénarios and SDL design of distributed
20 Systems ", proceeding of International Symposium on
Software Engineering for Parallel and Distributed
Systems (PDSE'98), Kyoto, April 1998] est une approche
≈-' visant, pour des systèmes temps réel « temps mou » et « temps dur », à transformer de manière automatique un
25 modèle fonctionnel spécifié en MSC en un modèle de performance LQN (LayeredQueueing Network) . La simulation des modèles LQN permet d'optimiser, selon le critère du temps de réponse, la répartition et l'ordonnancement des tâches sur l'ensemble des
30 ressources (les machines) du système. Dans ce modèle la contrainte de mémoire est ignorée < SPEED (Software Performance Engineering Early Design) [C. U. Smith and L. G. Williamns, "Performance Engineering Evaluation of ObjectOriented Systems with SPE-ED" , Computer Performnance Evaluation Modelling Techniques and Tools, no. 1245, Springer-Verlag, Berlin, 1997] est un outil permettant d'évaluer l'architecture et des solutions alternatives pour la conception des systèmes à objets. La spécification fonctionnelle du système est sous forme des diagrammes de séquences représentant des traces d'exécutions
(scénarios). L'outil transforme le modèle de spécification en un modèle de performance représenté par un système à files d'attente. Une combinaison d'analyse et de simulation permet d'identifier des problèmes de performance potentiels, comme les phénomènes de goulot d'étranglement.
TLC (Trace-Based Load Characterization) est une approche travaillant sur des traces d'exécutions du système, qui servent de base à la construction d'un modèle de performance en couches (LQN, ou Layered
Queuing Network) . Les traces — Message Séquence Charts — sont obtenues par simulation d'un modèle SDL, mais doivent être annotées afin d'expliciter les dépendances causales qui existent entre les différentes actions réalisées. Par une analyse des événements détaillés de la simulation, les annotations des traces sont produites selon un principe de marquage incrémental, qui s'apparente à la technique de coloration du sang utilisée en radiographie, l' angiogramme . Une fois ces chaînages causaux établis, des schémas de communication, classiques dans les systèmes logiciels, sont identifiés, en pratique, chaque message se voit attribuer un type, qui peut être « RPC » (appel de procédure distante) , « Forward » (RPC propagé à un tiers) , « Reply » (réponse à un RPC) , ou « Async » (émission asynchrone d'un message). Sur la base de cette classification, un modèle LQN est produit automatiquement, paramétré puis analysé sur le plan des performances. Le modèle LQN est une spécialisation du modèle classique à files d'attente, adapté à la description d'architectures logicielles traditionnelles, telles que les systèmes client- serveur.
Inconvénient des techniques antérieures Les approches de l'art antérieur citées ci- dessus consistent soit à effectuer des analyses directement sur un modèle, soit à simuler un modèle avec un simulateur spécifique.
Dans le premier cas, les hypothèses de Markov sont omniprésentes. Elles peuvent éventuellement être vérifiées sur des systèmes simples. Cependant, elles ne s'appliquent généralement plus dans le cas de systèmes complexes à l'intérieur desquels de nombreuses interactions ont lieu. Faire l'hypothèse de Markov revient alors à considérer une approximation assez grossière du système réel, faute de mieux. Quant au second cas, la plupart des approches introduisent des annotations temporelles à l'intérieur du modèle fonctionnel. Le modèle de performance qui en résulte comporte généralement beaucoup trop de détails d'ordre fonctionnel, sans pertinence du point de vue des performances, qui obèrent l'efficacité des programmes de simulation. Il faut bien garder à l'esprit qu'un modèle fonctionnel et un modèle de performance ont des objectifs fondamentalement différents : du point de vue performance, on suppose que le système fonctionne correctement et par conséquent, les détails de fonctionnement (l'ensemble des propriétés logiques) n'importent pas, seules comptent la durée pendant laquelle une tâche détient le CPU et la politique d'ordonnancement qui gère les tâches simultanées. De même, on ne considère pas les cas marginaux, qui se produisent rarement et dont 1 ' influence sera négligeable statistiquement. Or, ces cas peuvent être nombreux et leur modèle fonctionnel peut être très complexe.
La dernière approche TLC séduit par le fait qu'elle considère un ensemble fini de scénarios, plutôt qu'une description complète du système. Toutefois, le modèle de files d'attente en couches qui est visé (LQN) introduit des concepts de haut niveau qui, dans le but de favoriser la compréhension du système par l'humain, s'avèrent à la fois rigides et artificiels vis-à-vis de l'analyse des performances, et restrictifs en termes d' expressivité . Enfin, l'approche TLC cherche à automatiser l'identification des liens de causalité entre les différents événements d'un scénario, ce qui nous semble très délicat dans le cas général. En effet, la réaction d'un système à un stimulus, bien souvent, n'est pas conditionnée que par ce stimulus, mais également par l'état interne du processus ; or, l'approche TLC s'attache à cerner essentiellement les facteurs déclenchants de type stimulus externe (messages) . En fait, la difficulté consiste à exprimer sur les scénarios toute l'information de causalité nécessaire à la simulation de performance, tout en parvenant à faire abstraction des détails fonctionnels du système3. Comme nous le décrivons dans la suite, notre approche face à ce problème est plus pragmatique, l'identification des liens précis de causalité, très difficile pour une machine, se révèle en général assez naturelle pour le concepteur humain. Aussi est-il préférable de mettre à contribution le savoir-faire et l'intuition de ce dernier, dans la mesure où il semble le plus apte à fournir le bon niveau d'information. Le but de l'invention est de pallier les insuffisances des systèmes de l'art antérieur décrit ci-dessus au moyen d'un procédé adapté aux plates- formes de services, dont le résultat principal est la production automatique d'un modèle de performance, à partir d'un modèle fonctionnel du système étudié. Le modèle de performance généré est dédié aux simulateurs logiciels du marché basés sur les systèmes de files d'attente. Le modèle fonctionnel s'exprime sous forme de diagrammes de séquences assortis de données temporelles. Les diagrammes de séquence peuvent être dérivés d'une modélisation dynamique et complète dû système faite en SDL ou en UML.
Exposé de l'inventio Le procédé selon l'invention comporte les étapes suivantes : - Répartir les requêtes représentatives du système en un nombre fini de groupes et identifier, pour chaque groupe de requêtes, le flot d'exécution correspondant, la répartition desdites requêtes étant déterminée par le service invoqué et par les caractéristiques du comportement propre du client, et le flot d'exécution pour chaque groupe de requêtes correspond à l'enchaînement d'exécutions d'entités logicielles, en séquence et/ou en parallèle, induit par une requête du groupe.
Formaliser les flots d'exécutions à l'aide d'une notation permettant de mettre en évidence, d'une part, les relations causales entre les différentes entités logicielles du système impliquées dans les flots d'exécution, et d'autre part, les informations caractérisant la consommation des ressources du système, telles que la durée d'occupation de CPU lorsqu'une entité logicielle est active.
Elaborer un modèle intermédiaire comportant en plus des flots d'exécution formalisés, une spécification de ressources décrivant les matériels physiques du système et une spécification de l'environnement représentant le ' comportement des utilisateurs . - Automatiser la transformation du modèle intermédiaire élaboré en un modèle de performance.
Préférentiellement , le modèle de performance dérivé du modèle intermédiaire élaboré est dédié aux simulateurs logiciels pré-existant utilisant des techniques de réseaux de files d'attente. Selon une caractéristique de l'invention, la répartition des requêtes du système en un nombre fini de groupes de requêtes est déterminée par le service invoqué (sa nature) , et par les caractéristiques du comportement propre du client qui influencent la manière dont se .réalise le service invoqué. Le flot d'exécution pour chaque groupe de requêtes est déterminé par l'enchaînement d'exécutions d'entités logicielles, en séquence et/ou en parallèle, induit par une requête du groupe.
Selon l'invention, la topologie du modèle à files d'attente dérivée de la transformation est entièrement déterminée par les flots d'exécution correspondant aux groupes de requêtes. Selon l'invention, la dérivation d'un modèle de performance dédié à un simulateur pré-existant basé sur des techniques des réseaux de files d'attente est automatisable par adaptation des règles de correspondance proposées . Selon un mode de réalisation, le formalisme des phases est réalisé à l'aide d'une extension du formalisme MSC (Message Séquence Charts) , et la formalisation du graphe des phases et des flots d'exécution d'un service à l'aide du formalisme HMSC (High level Message Séquence Charts) est représentée sous la forme d'un arbre comportant :
- une pluralité de nœuds représentant les phases constituant le service ;
- au moins un arc orienté menant d'un nœud à un autre représentant l'enchaînement en séquence de deux phases ; L'arbre de formalisation peut comporter en outre :
- au moins un nœud suivi de plusieurs arcs orientés en parallèle, - au moins un nœud suivi de plusieurs arcs orientés en fonction du choix de la phase suivante dépendant soit d'une condition externe au système (liée par exemple à une caractéristique du client) , soit d'une condition interne liée à l'état courant du système.
Ainsi, le modèle intermédiaire élaboré comporte les flots d'exécution formalisés, associés à des données temporelles caractérisant le comportement d'entités logicielles et leurs interactions, au moins une spécification des ressources décrivant les matériels physiques, et au moins une spécification d'environnement représentant le comportement des utilisateurs .
Un avantage par rapport au modèle LQN réside dans la disponibilité sur le marché de plusieurs ateliers de simulation industriels, à la maturité et à la puissance éprouvées. Des outils comme QNAP ou SES/Workbench proposent des fonctionnalités d'analyse avancées permettant de modéliser une très grande variété de systèmes complexes, ainsi que la possibilité de. configurer très finement le modèle, par exemple, les politiques d'ordonnancement des tâches peuvent être redéfinies de façon algorithmique, si aucune ne s'avère suffisamment réaliste parmi les politiques prédéfinies. Brève description des dessins
D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre, prise à titre d'exemple non limitatif en référence aux figures annexées dans lesquelles :
- la figure 1 illustre schématiquement le procédé selon l'invention ;
- la figure 2 illustre schématiquement un modèle intermédiaire défini par le procédé selon l'invention ; la figure 3 illustre schématiquement l'association des différents éléments du modèle intermédiaire et des primitives du simulateur SES/Workbench basé sur des systèmes à files d'attente ; les figures 4a à 4h illustrent schématiquement les règles de correspondance entre les événements annotés caractérisant le comportement d'entités logicielles et des primitives du simulateur SES ;
- la figure 5 illustre schématiquement un sous-modèle SES dérivé d'un flot d'exécution formalisé en appliquant des règles de correspondance illustrées dans les figures 4a à 4h ; - la figure 6 représente un sous-modèle SES de l'architecture globale du système obtenu en appliquant des règles de correspondance illustrées dans la figure 3 ; la figure 7 illustre schématiquement l'arbre des phases représentant les différentes étapes pour la réalisation d'un service Audio-conférence selon le procédé de l'invention ;
- les figures 8 à 10 représentent les flots d'exécution extraits de l'arbre des phases pour le service Audio-conférence ; - les figures 11 à 20 représentent des schémas de formalisations des phases du comportement du service fourni ;
- La figure 21 représente la déclaration des ressources, les flots d'exécutions et le sous- modèle de l'architecture globale d'une plate-forme d' audioconférence dans le modèle SES ;
La figure 22 représente un sous-modèle SES de l'architecture globale de la plate-forme d'audio-conférence ;. - Les figures 23 à 25 représentent les sous-modèles SES dérivés des différents 'flots d'exécution formalisés en appliquant des règles de correspondance illustrées dans les figures 4a à 4h.
Expose détaillé de modes de réalisation particuliers
Pour modéliser un système étudié, le procédé selon l'invention utilise les systèmes à files d'attente. Ce choix est lié au fait que les simulateurs de performances les plus avancés du marché exploitent pour la plupart le modèle des réseaux de files d'attente. Ces ateliers font preuve d'une maturité notoire, tant sur le plan de la richesse des fonctionnalités, que de la qualité de l'analyse et de la robustesse. Rappelons qu'un modèle d'un système à files d'attente se concentre sur les aspects qui ont un effet direct ou indirect sur la consommation des ressources du système (processeurs et mémoires des machines, bande passante des réseaux de transport) .
Le procédé selon l'invention permet de modéliser essentiellement :
• la répartition des entités logicielles dont la coopération réalise le service sur les différentes machines;
• les interactions, ou relations de causalité, qui existent entre ces entités logicielles,
• les durées de traitement unitaire,
• les politiques d'ordonnancement des tâches concurrentes,
• la capacité des réseaux sous-jacents (caractérisée par les délais de transmission et la politique de routage) ,
• le comportement des utilisateurs caractérisé par le. débit d'arrivée des requêtes, et par la distribution de la durée qui sépare deux arrivées consécutives.
Un système logiciel réparti se compose généralement d'un ensemble d'entités logicielles
(processus, composants, etc.) s'exécutant sur un ensemble de machines connectées par des réseaux de transport. Ce type de système se modelise en associant un serveur muni d'une file d'attente à chaque couple composé d'une entité logicielle et d'une machine sur laquelle s'exécute l'entité. Deux entités logicielles hébergées sur une même machine sont considérées comme deux serveurs distincts. Pour chaque serveur ainsi défini, son service et sa file d'attente correspondent respectivement à l'exécution de l'entité et à la mémoire de la machine.
Les clients sont les requêtes envoyées par les utilisateurs invoquant des services fournis par le système. Quant à la topologie du système à files d'attente, elle est déterminée entièrement par les traces d'exécution. En effet l'arrivée d'une requête dans le système provoque l'exécution d'actions sur les serveurs. Ces actions peuvent évoluer simultanément (en parallèle) ou se synchroniser en séquence. Chaque trace d'exécution est ainsi représentée par une arborescence de serveurs. En définitive, la topologie globale du réseau de files d'attente est telle que toutes les traces d'exécution sont couvertes. Avant de procéder à la simulation du modèle, celui-ci doit encore être complété d'un modèle d'environnement et d'un modèle de ressources. Le premier caractérise le comportement des utilisateurs, en termes de débit et de distribution statistique des temps d' inter-arrivées . Le second précise la durée d'exécution de chaque entité lorsque la machine lui est entièrement dédiée (tests unitaires) , les délais de transmission caractérisant la capacité des réseaux et la politique d'ordonnancement des traitements concurrents. Ces données peuvent être intégrées dans le modèle fonctionnel du système. La simulation consiste à injecter un très grand nombre de requêtes dans le modèle. On optimise l'utilisation des ressources du système en cherchant une bonne configuration (ou paramétrage) des différents éléments du modèle. La qualité de la configuration globale s'évalue en étudiant par simulation son impact sur la charge des serveurs, sur le taux d'occupation des tampons, et sur des quantités caractérisant la qualité de service: les temps de réponse d'un composant particulier ou du système (de bout en bout) , la capacité de traitement maximum (volumétrie) , etc.
Pour des logiciels répartis quelconques, l'identification des interactions ou relations de causalité entre les entités logicielles peut être très complexe, voire impossible. En fait, la démarche proposée par l'invention est applicable aux systèmes dont on peut raisonnablement résumer le comportement par un ensemble restreint de scénarios d'exécution. Idéalement, les scénarios choisis évolueront indépendamment les uns des autres. Néanmoins, les systèmes impliquant des dépendances entre scénarios sont acceptables (en cas d'interaction entre deux clients par exemple) , tant que ces dépendances demeurent clairement exprimables par le concepteur. Les plates-formes de services constituent en ce sens un champ d'application concret pour la mise en œuvre de l'invention. En effet, l'utilisation de ce type de plate-forme peut souvent être caractérisée par un nombre raisonnable de scénarios, qui correspondent aux différents cas d'utilisation de la plate-forme (autrement dit, au traitement des différentes requêtes émises par les utilisateurs lors de l'invocation des services) , et qui dépendent faiblement les uns des autres . Comme cela est illustré schématiquement par la figure 1, le véritable point de départ, pour la génération d'un modèle de performance à files d'attente, consiste à répartir les requêtes représentatives du système en un nombre fini de groupes de requêtes et à identifier (étape 2), pour chaque groupe de requêtes, le flot d'exécution correspondant. Ceci permet de déterminer la topologie globale du système à files d'attente afin que s'y reflètent toutes les traces d'exécution induites par des requêtes représentatives. Les requêtes représentatives sont celles dont la fréquence d'émission dans le système est significative. La répartition de ces requêtes est déterminée d'une part par le service invoqué ; et d'autre part, par les caractéristiques du comportement propre du client qui influencent la manière dont se réalise le service invoqué (voir dans l'exemple d'Audioconférence) . Quant au flot d'exécution pour chaque groupe de requêtes, il correspond à l'enchaînement d'exécutions d'entités logicielles, en séquence et/ou en parallèle, induit par une requête du groupe.
Répartition des requêtes et identification des flots d'exécution :
Pour la première étape (n°2 sur la figure 1) , chaque service du système est représenté sous la forme d'un arbre aux caractéristiques suivantes : les nœuds de l'arbre représentent les phases constituant le service. Un nœud particulier, le nœud initial, correspond à la phase qui initie le service ; un arc orienté menant d'un nœud à un autre représente l'enchaînement en séquence de deux phases
- lorsque plusieurs arcs sont issus d'un même nœud N, cela correspond soit à l'exécution en parallèle de toutes les phases suivantes, soit à un choix de l'exécution d'une et une seule des phases suivantes. Dans ce dernier cas, le choix de la phase suivante est lié à une condition portant soit sur une propriété liée au comportement de l'utilisateur, la condition est alors dite externe, soit sur l'état courant du système, dans ce cas, la condition est dite interne .
Les requêtes sont naturellement regroupées sur la base des choix effectués au niveau des conditions externes. Les flots d'exécution correspondants peuvent être extraits de l'arbre global en parcourant celui-ci à partir du nœud initial, et en ne retenant qu'un seul successeur à chaque condition externe rencontrée. Par conséquent, un flot d'exécution est un sous-arbre de l'arbre global caractérisé par la transformation systématique de tout alternative externe parmi N successeurs en un enchaînement en séquence vers un seul de ces successeurs. Lors du parcours, tout autre aspect structurel de 1 ' arbre est en revanche conservé (enchaînement en séquence vers un nœud simple, enchaînement parallélisé vers plusieurs nœuds en simultané, enchaînement conditionné par l'état interne du système) . Les figures 8 à 10 illustrent les flots d'exécution extraits de l'arbre des phases (figure 7) dans l'exemple du service Audio-conférence. Formalisation des flots d'exécution
L'étape 4 du procédé (figure 1) consiste à formaliser les flots d'exécution à l'aide d'une notation permettant de mettre en évidence les interactions entre les différentes entités logicielles impliquées dans les flots d'exécution et les informations caractérisant la consommation des ressources du système. Dans le mode de réalisation décrit, cette formalisation est basée sur les Message Séquence Charts
(MSC). Cependant, d'autres formalismes de diagrammes de séquence pourraient être utilisés. La cohérence d'un
MSC est optimale si le diagramme est produit en tant que trace d'exécution du système. En phase de conception, une spécification exécutable du système peut-être produite en langage SDL, qui se trouve être un formalisme étroitement lié aux MSC sur le plan de la sémantique. En pratique, tous les outils SDL sont capables de produire des traces de simulation dans le format MSC. Ces mêmes outils offrent en outre la possibilité d'éditer manuellement de tels diagrammes, et c'est ainsi que l'on pourra procéder à défaut d'exploiter la simulation d'un modèle SDL. Les événements qui apparaissent sur un diagramme MSC portent essentiellement sur des aspects fonctionnels : émission ou réception de message, action, armement ou expiration de temporisation, etc. En réalité, ce niveau d'information est non pertinent ou insuffisant pour un modèle de performance : par exemple, le nom des messages n'a pas d'importance. Pour rendre possible la production d'un modèle de performance, il est nécessaire de préciser, pour les événements concernés : la durée d'occupation du processeur engendrée par le traitement de l'événement. les conditions d'enchaînement, qui spécifient dans quelle mesure l'exécution d'un flot peut se poursuivre. Une condition d'enchaînement porte soit sur l'attente de l'expiration d'un délai, soit sur la validité d'une expression booléenne. Elle peut être vue comme une porte faisant obstacle à la poursuite de l'exécution, et les composantes de la condition comme les clés qui doivent être rassemblées pour franchir cette porte. Ces clés doivent être définies par le concepteur et servent à indiquer la réalisation de certains faits qui contribuent alors à la validation de la condition d'enchaînement. Ces clés seront typiquement représentées par des indicateurs booléens tels que par exempleutilisateur_connecté . nb_max_tentatives_atteint , etc. la publication de faits, qui peuvent avoir un effet déclencheur sur le déblocage d'autres flots. Le traitement d'un événement peut contribuer à remplir les conditions d'enchaînement qui bloquent l'exécution d'une autre entité. Dans l'analogie avec les clés, cela correspondrait à l'acte de fournir certaines clés aux autres entités du système, de « publier des faits ». - la terminaison éventuelle d'une des branches parallèles dans un flot d'exécution. Ces quatre types d'information sont indispensables au modèle de performance, pour calculer le temps de réponse, la répartition de charge des machines, la longueur des tampons, etc. Le procédé définit cinq clauses correspondantes (dont deux pour les conditions d'enchaînement), qui constituent ainsi l'extension de la notation pour formaliser les flots d'exécution : EXEC (occupation du processeur), EXPECT (condition d'enchaînement sur une expression booléenne), DELAY (condition d'enchaînement sur l'écoulement du temps), PUBLISH (publication de faits), et END (terminaison de la branche du flot) . Les figures 11 à 20 illustrent les flots d'exécution formalisés dans l'exemple d'un modèle fonctionnel du service Audioconférence.
Elaboration du modèle intermédiaire
L'étape 6 du procédé (figure 1) consiste à définir un modèle intermédiaire destiné à permettre le passage automatique à un modèle de performance. Sur la figure 2, on voit que ce modèle est composé des flots d'exécution formalisés (10) caractérisant le comportement d' entités logicielles et leurs interactions, d'une spécification des ressources (12) décrivant les matériels physiques, et d'une spécification d'environnement 14 représentant le comportement des utilisateurs.
Le modèle de ressources contient les déclarations suivantes : - les machines, la taille des tampons et la politique d'ordonnancement des traitements simultanés de ces machines ; les réseaux de transport et leurs topologies permettant la connexion des machines ; les entités logicielles (programmes à unique fil d'exécution), ainsi que leur répartition sur les ressources ;
- les capacités des machines exprimées par rapport aux temps de traitement unitaires des tâches (formalisées par EXEC) ; - les capacités des liens de transmission exprimées par rapport aux délais de transmission ;
Dans le modèle d'environnement, qui caractérise le trafic de requêtes généré par les utilisateurs, il faut préciser les données suivantes :
- le débit d'arrivée des requêtes ;
- le rythme d' arrivée ; il est caractérisé entièrement par la distribution de la durée séparant deux arrivées consécutives ; - les attributs ; ce sont des variables propres à chaque requête ; ils permettent notamment d' identifier les différentes classes de requêtes déterminées par les flots d'exécution ; d'autres variables servent à exprimer les conditions booléennes de synchronisation entre des branches parallèles d'un même flot d'exécution. la proportion de chaque classe de requêtes (cette répartition est fournie par des observations ou des estimations quant à l'usage futur de la plate-forme) Transformation automatique en un modèle de performanceL' étape 8 du procédé (figure 1) consiste à définir des règles de correspondance entre les éléments du modèle intermédiaire et les primitives d'un simulateur généraliste basé sur des systèmes à files d'attente. La transformation devient automatique lorsqu'on applique ces règles de correspondance. Ces dernières s'appliquent - aussi bien à tous les simulateurs de cette catégorie : tous sont fondés sur les mêmes concepts de base, seul le mode de représentation de ces concepts diffère. La cohérence de la transformation repose sur des règles de sémantique
(non explicitées dans le présent document) , qui permettent de détecter les spécifications erronées conduisant à des modèles de performance incomplets ou dénués de sens. Nous illustrons ici la démarche dans le cas d'utilisation du simulateur SES/Workbench.
La figure 3 illustre schématiquement les règles de correspondance entre le modèle intermédiaire et des « nœuds » SES/Workbench. En désignant respectivement par R={machine_l, ..., machine_m} et F={flotExecFormalisé_l, ..., flotExecFormalisé_n} l'ensemble des machines du système déclarées dans le modèle de ressources et l'ensemble des flots d'exécution formalisés des services du système :
- Le modèle d' environnement 14 est associé à un nœud « source » 20, suivi éventuellement d'un nœud « submodel » 22. Ce dernier est utile dans les cas plus complexes, par exemple dans le cas de requêtes structurées par sessions ou à plusieurs niveaux ;
- Le modèle de ressources 12 contenant la déclaration de l' ensemble R de m machines est associé à un ensemble de m nœuds « service » dénotés par un nom logique (serveur_j par exemple) , pour tout j ;
- Chaque flotExecFormalisé_i 10 est associé' à un nœud « submodel » dénoté par un nom logique
(flotExec_i par exemple) pour tout i ;
- Chaque nœud « submodel » associé au flot d'exécution formalisé est développé, en faisant les correspondances suivantes entre événements du flot d'exécution formalisé et primitives SES. Les différentes associations sont décrites par les figures 4a à 4h.
En référence à la figure 4a, la primitive « EXEC(t) » est associée à une séquence de deux nœuds : un nœud « user », suivi d'un nœud « service reference__to ». Le nœud user permet de spécifier la valeur de t correspondant à la durée d' exécution de code, tandis que le nœud « service reference_to » fait référence au nœud service déclaré dans le module qui correspond à la machine hébergeant le processus qui effectue le « EXEC(t) ».
La publication de faits « PUBLISH » est associée (figure 4b) à un nœud « user » contenant le programme C adéquat. Ce programme modifie les variables qui représentent les clés ou faits à publier.
La fin de branche de flot « END » est associée à un nœud « sink » (figure 4c) .
La primitive « DELAY(t) » est associée à un nœud « delay » (figure 4d) et la valeur de t est le paramètre du nœud. La condition d'enchaînement « EXPECT » est associée à un nœud « block », où elle s'exprime par une expression booléenne c donnée en paramètre du nœud (figure 4e). L'enchaînement en séquence des événements est représenté par un arc entre les nœuds (figure 4f) . Le choix d'un enchaînement des événements parmi N enchaînements possibles est représenté par N arcs partant du nœud où le choix a lieu. Les conditions déterminant un choix sont spécifiées dans l'arc correspondant (figure 4g) .
Enfin la séparation du flot en N branches parallèles est représentée par un nœud « split » (figure 4h) . La figure 5 illustre la séquence correspondant au sous-modèle d'un flot d'exécution formalisé complétée par un nœud « enter » et par un nœud « return » qui représentent respectivement l'entrée et la sortie du sous-modèle. La figure 6 illustre l'architecture globale du système, qui rassemble les sous-modèles flots d'exécution et le sous-modèle d'environnement.
Exemple d'application : plate-forme d'Audio-conférence Présentation informelle du service d' audioconférence .
Le service d'Audio-conférence permet à un nombre déterminé d'usagers, sur accord préalable, chacun de son côté et à une date et heure convenues, de composer un numéro d'appel afin d'établir une communication vers un pont de conférence. La réservation d'un pont de conférence ayant préalablement, été effectuée par l'un des participants, qui a précisé la date, l'heure, la durée et le nombre de participants . La réalisation du service d'établissement d'une session de conférence, offert par la plate-forme d'Audio-conférence, dépend du rôle (de la nature) du client qui l'invoque :
- est-il organisateur de la session ? - est-il un simple participant ?
- est-il autorisé à participer à la session ? Cette classification permet d'identifier les différents types de requêtes. Par ailleurs, il se peut qu'un type de requête interagisse avec un autre. Par exemple, le traitement de la requête d'un simple participant à une session d'Audio-conférence est suspendu jusqu'à l'arrivée de l'organisateur de cette session.
Un rôle particulier est affecté à l'Organisateur de la conférence. La' conférence ne peut commencer avant l'arrivée de l'Organisateur, c'est-à- dire que les participants ne peuvent pas être connectés au pont de conférence tant que 1 ' Organisateur est absent . La conférence est fermée après raccrochage de l'Organisateur, et les participants encore en .ligne seront alors déconnectés du pont de conférence. La souscription, qui consiste principalement en la réservation d'un numéro d'accès au pont de conférence, s'opère par l'intermédiaire du fournisseur de service. Les données sont en conséquence récupérées dans la base de données. Traitement d'appel
Le traitement d'appel se décompose suivant les phases suivantes (remarque : on ne s'intéresse, pour cette étude de cas, qu'à l'ouverture de conférences, et 5 non à leur évolution ni à leur clôture) :
1) Un participant compose le numéro d'accès à la conférence programmée (numéro d'accès au service NAS). Ce numéro est composé d'un préfixe de type OZABPQ spécifique au service, tandis que le suffixe MCDU est
10 spécifique à la conférence souscrite. Le service effectue la traduction du numéro d'accès au service en numéro réel d'accès au pont de conférence (NAC) .
2) Plusieurs cas sont possibles:
- Tant que le nombre de participants est inférieur à la 15 capacité maximale du pont de conférence et que l'Organisateur n'a pas invoqué le service, un message- est émis qui annonce le retard de l'organisateur, puis un second invitant à attendre l'ouverture de la conférence.
20 Quand l'Organisateur se présente, les participants en attente sont alors connectés au pont de conférence (ainsi que l'Organisateur). La conférence
- est dite ouverte .
- Si le nombre de participants déjà connectés atteint 25 le nombre maximal défini par le souscripteur, le service rejette l'appel avec un message de saturation.
Messages spécifiques au service
Les libellés des messages spécifiques au 30 service sont les suivants :
- accueil : "vous avez composé un numéro d'accès à une conférence, veuillez ne pas quitter".
- saturation : "le numéro composé est saturé, nous ne pouvons donner suite à votre appel" .
- incident : "suite à un incident, nous ne pouvons donner suite à votre appel". annonce : "votre organisateur n'est pas encore connecté..." .
- attente : "veuillez ne pas quitter, vous serez mis en communication avec vos correspondants dès ouverture de la conférence..." .
Données
Les données spécifiques au service sont :
- les n° d'accès au service - les n° traduits (le numéro réseau du pont) le nombre maximal de participants par pont de conférence
- l'état de la ressource associée au pont de conférence
- la table des annonces - les tables d'analyse nationale, internationale et spéciale (pour des contrôles éventuels sur le numéro appelant) .
Ces données sont de différents types, suivant que leur modification se fait ou non par les scripts du traitement d'appel. Les données non modifiables par le traitement d'appel sont dans une base de données appelée ici SDF (Service Data Function) , elles sont accessibles en lecture par les scripts du traitement d'appel et en écriture pas des scripts de gestion. Les données modifiables par le traitement d'appel sont dans une base de données accessible en lecture et écriture par les scripts du traitement d'appel, cette base de données doit fournir des performances d'accès plus importantes. Ce dernier type de donnée est représenté ici par le nombre maximal de participants, et par l'état de la ressource.
Application des étapes du procédé
A partir de la description informelle du service, la première étape consiste à identifier les phases élémentaires et leur organisation en un arbre de phases.
Tous les comportements des utilisateurs ne sont pas pris en compte, seuls sont exprimés les cas d'utilisation les plus représentatifs. En particulier, les raccrochages sont pris en compte en phase de conversation et en phase d'attente, cas de raccrochage les plus pertinents d'un point de vue utilisateur.
La figure 7 illustre l'arbre global des phases qui décrit l'enchaînement des différentes phases en précisant les alternatives internes ou externes. On reconnaît les conditions externes au fait que les arcs qui en sont issus portent des pourcentages statistiques.
Après une phase de connexion PI, une alternative externe permet d'identifier si l'utilisateur est l'organisateur (P2) ou un simple participant (P4) . Si l'utilisateur est un participant, une alternative interne {nbParticipants<MAXl} , dont l'option dépend de l'exécution d'autres scénarios, identifie si le nombre maximum de participant est atteint ou non. Si ce nombre est atteint, une phase pour l'envoi d'un message de saturation est initiée (P6) . Si ce nombre maximum n'est pas atteint (P5) , une deuxième alternative interne {organisateurPresent} permet d'identifier si l'organisateur est déjà présent. S'il est déjà présent, le participant est connecté au pont (P.7, avec en préalable un message d'accueil). Si l'organisateur est absent, un message d'attente est émis vers le participant (phase P8) . De cette phase, une condition externe {participantPatient} permet de distinguer le cas ou le participant attend l'arrivée de l'organisateur (phase P10) et entre dans la conférence (phase P7) à l'arrivée de l'Organisateur, du cas où le participant est plutôt du type "impatient", c'est-à- dire qu'il raccroche suite à l'annonce de retard diffusée en phase P9. Dans ce cas, le nombre de participants est diminué d'une unité. Encore une fois, on suppose que seules les performances des phases liées à l'établissement de la conférence nous intéressent dans cet exemple, ce qui explique que l'arbre ne contienne aucune phase liée à l'évolution ultérieur de la conférence .
Les requêtes dans l'exemple sont réparties en trois groupes : requêtes envoyées par un organisateur ; requêtes envoyées par un simple participant patient ; et requêtes envoyées par un simple participant impatient. A partir de l'arbre global des phases, on extrait alors les trois flots d'exécution correspondants en ne gardant qu'une branche de chaque alternative externe : - flot d'exécution induit par l'arrivée de l'organisateur (figure 8) ; flot d'exécution induit par l'arrivée d'un simple participant patient (figure 9) ; flot d'exécution induit par l'arrivée d'un simple participant impatient (figure 10) .
Identification des clés et portes des phases concernées La deuxième étape du procédé consiste à identifier les clés et portes qui influencent le comportement d'un cas d'utilisation à partir du comportement d'un ou plusieurs autres cas d'utilisation. Dans le cas du service d'Audioconférence, on identifie une clé liée à la présence de l'organisateur. La phase P3 , exécutée lors de l'arrivée de l'organisateur, inclut la tâche PUBLISH (organisateurPrésent) .
Une telle publication permettra de débloquer la phase PlO qui inclut une tâche « EXPECT (organisateurPrésent) ».
La variable nbParticipants est augmentée de 1 lors de la connexion d'un utilisateur (non organisateur) , sauf si elle vaut déjà sa valeur maximum autorisée (MAXI) . Ce test est représenté par une alternative interne dans l'arbre de phases.
Formalisation des phases
Les figures 11 à 20 représentent des schémas de formalisation des phases du comportement du service, les MSC associés à différentes phases du comportement du service seront donnés avec une vue simplifiée sur le nom des signaux. De même, tous les échanges ne sont pas indiqués afin de ne pas alourdir les schémas. Les instances considérées dans ces MSC sont : - le SDF (Service Data Function ou base des données de service) , le SCF (Service Control Function ou plate-forme d'exécutions des services), le SRF (Service Resource Function ou plate-forme vocale) et les USER (utilisateurs) .
Les échanges de signaux correspondent : aux interrogations de la base de données : • appelant (numêroAppelant) interroge la base sur le numéro appelant (P2,P4) ; • typeAppelant est la réponse de la base, elle peut prendre les valeurs ORGANISATEUR (si l'appelant est l'organisateur) ou PARTICIPANT (si l'appelant n'est pas l'organisateur) . aux échanges de messages vocaux en passant par la plate-forme vocale : send_message vers la plate-forme vocale, msg_info vers l'utilisateur (P6, P7 , P9) . - aux échanges pour la synchronisation par les portes :
• PUBLISH (organisateurPrésent) permettra de publier le fait que l'organisateur vient de se connecter. • EXPECT (organisateurPrésent) permet le blocage de 1 ' exécution de 1 ' entité SCF jusqu'à l'arrivée de l'organisateur. . La figure 11 représente la formalisation de la phase d'invocation du service. La figure 12 représente la formalisation de la phase « IdentificationOrganisateur ». La figure 13 représente la formalisation de la phase « IdentificationParticipant » .
La figure 14 représente la formalisation de la phase « OuvertureDeLaConférence » . La figure 15 représente la formalisation de la phase « ConnexionParticipant » .
La figure 16 représente la formalisation de la phase « DeconnexionSuiteASaturation » .
La figure 17 représente la formalisation de la phase » EntreeDansLaConference » .
La figure 18 représente la formalisation de la phase « AnnonceRetardOrganisateur » .
La figure 19 représente la formalisation de la phase « AttenteOrganisateur » . La figure 20 représente la formalisation de la phase « AbandonSurAttente » .
Modèle de performance dérivé du modèle fonctionnel
La figure 21 représente la vue générale du modèle intermédiaire (dans SES/Workbench) . On y trouve : la déclaration des ressources, les trois flots d'exécutions et le sous-modèle de l'architecture globale de la plate-forme d' udio-conférence . Dans cet exemple, les processus SDF, SCF et SRF s'exécutent chacun sur une machine.
Une vue interne de l'architecture globale de la plate-forme est représentée par la figure 22.
Le nœud initSession initie la création du nombre maximum de sessions simultanées autorisées par la plate-forme. Le nœud appelsDuneSession génère les appels pour chaque session ouverte et le nœud interAppOrdre modelise les durées qui séparent les appels consécutifs d'une session et le rang auquel arrive l'organisateur. Enfin, chaque fin de session, représentée par le nœud fermetureSession déclenche la 5 création d'une nouvelle session représentée par le nœud creationSession.
Les Figures 23, 24, et 25 montrent respectivement les trois sous-modèles résultant de la transformation des flots d'exécutions de
10. l'organisateur, d'un participant patient, et d'un participant impatient.

Claims

REVENDICATIONS
1. Procédé de génération d'un modèle de performance à partir d'un modèle fonctionnel d'un système comportant une pluralité d'entités matérielles 5 et logicielles réparties coopérant pour fournir un service à au moins un utilisateur, caractérisé en ce qu'il comporte les étapes suivantes :
- Répartir les requêtes représentatives du système en un nombre fini de groupes et identifier,
10 pour chaque groupe de requêtes, le flot d'exécution correspondant, la répartition desdites requêtes étant déterminée par le service invoqué et par les caractéristiques du comportement propre du client, et le flot d'exécution pour chaque groupe de requêtes
15 correspond à l'enchaînement d'exécutions d'entités logicielles, en séquence et/ou en parallèle, induit par une requête du groupe,
- Formaliser les flots d'exécution à l'aide d'une notation permettant de mettre en évidence, d'une
20 part, les relations causales entre les différentes entités logicielles du système impliquées dans les flots d'exécution, et d'autre part, les informations
- caractérisant la consommation des ressources du système, telles que la durée d'occupation de CPU
25 lorsqu'une entité logicielle est active.
Elaborer un modèle intermédiaire comportant en plus des flots d'exécution formalisés, une spécification de ressources décrivant les matériels physiques du système et une spécification de
30 l'environnement représentant le comportement des utilisateurs. - Automatiser la transformation du modèle intermédiaire élaboré en un modèle de performance.
2. Procédé selon la revendication 1, caractérisé en ce que le modèle de performance dérivé du modèle intermédiaire élaboré est dédié aux simulateurs logiciels pré-existant utilisant des - techniques de réseaux de files d'attente.
3. Procédé selon la revendication 1, caractérisé en ce que la répartition des requêtes du système en un nombre fini de groupes de requêtes est déterminée par le service invoqué et par les caractéristiques du comportement propre du client qui influencent la manière dont se réalise le service invoqué.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que le flot d'exécution pour chaque groupe de requêtes est déterminé par l'enchaînement d'exécutions d'entités logicielles, en séquence et/ou en parallèle, induit par une requête du groupe.
5. Procédé selon la revendication 4, caractérisé en ce que la topologie du modèle à files d'attente dérivé de la transformation est entièrement déterminée par les flots d'exécution correspondant aux groupes de requêtes .
6. Procédé selon la revendication 4, caractérisé en ce que la dérivation d'un modèle de performance dédié à un simulateur pré-existant basé sur des techniques des réseaux de files d'attente est automatisable par adaptation des règles de correspondance proposées .
7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que le formalisme des phases est réalisé à l'aide d'une extension du formalisme MSC (Message Séquence Charts) .
8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce que la formalisation du graphe des
5 phases et des flots d'exécution d'un service à l'aide du formalisme HMSC (High level Message Séquence Charts) est représenté sous la forme d'un arbre comportant :
- une pluralité de nœuds représentant les phases constituant le service ; 10 - au moins un arc orienté menant d'un nœud à un autre représentant l'enchaînement en séquence de deux phases ;
9. Procédé selon la revendication 8, caractérisé en ce que l'arbre de formalisation comporte
15 en outre :
- au moins un nœud suivi de plusieurs arcs orientés en parallèle,
- au moins un nœud suivi de plusieurs arcs orientés en fonction du choix.de la phase suivante
20 dépendant soit d'une condition externe au système, soit d'une condition interne liée à l'état courant du système . σ 10. Procédé selon l'une des revendications 1 à
9, caractérisé en ce que le modèle intermédiaire
25 élaboré comporte les flots d'exécution formalisés caractérisant le comportement d'entités logicielles et leurs interactions, au moins une spécification des ressources décrivant les matériels physiques, et au moins une spécification d'environnement représentant le
30 comportement des utilisateurs.
PCT/FR2003/001251 2002-04-23 2003-04-18 Procede de generation d'un modele de performance a partir d'un modele fonctionnel Ceased WO2003092245A2 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP03747148A EP1497732A2 (fr) 2002-04-23 2003-04-18 PROCEDE DE GENERATION D UN MODELE DE PERFORMANCE A PARTIR D& apos;UN MODELE FONCTIONNEL.
AU2003249151A AU2003249151A1 (en) 2002-04-23 2003-04-18 Method of generating a performance model from a functional model
US10/511,033 US7536292B2 (en) 2002-04-23 2003-04-18 Method of generating a performance model from a functional model

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR02/05063 2002-04-23
FR0205063A FR2838844B1 (fr) 2002-04-23 2002-04-23 Procede de generation d'un modele de performance a partir d'un modele fonctionnel

Publications (2)

Publication Number Publication Date
WO2003092245A2 true WO2003092245A2 (fr) 2003-11-06
WO2003092245A3 WO2003092245A3 (fr) 2004-04-08

Family

ID=28686286

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2003/001251 Ceased WO2003092245A2 (fr) 2002-04-23 2003-04-18 Procede de generation d'un modele de performance a partir d'un modele fonctionnel

Country Status (5)

Country Link
US (1) US7536292B2 (fr)
EP (1) EP1497732A2 (fr)
AU (1) AU2003249151A1 (fr)
FR (1) FR2838844B1 (fr)
WO (1) WO2003092245A2 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765093B2 (en) 2005-09-19 2010-07-27 Itt Manufacturing Enterprises, Inc. Network modeling system and method of simulating network operation with configurable node models

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4100630B2 (ja) * 2004-05-14 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Uml設計方法
IL173711A (en) * 2006-02-13 2010-11-30 Rafael Advanced Defense Sys Real time simulating method and system
US7493249B2 (en) * 2006-06-23 2009-02-17 International Business Machines Corporation Method and system for dynamic performance modeling of computer application services
US8443073B2 (en) * 2006-10-02 2013-05-14 Sap Ag Automated performance prediction for service-oriented architectures
US7877250B2 (en) 2007-04-23 2011-01-25 John M Oslake Creation of resource models
US7974827B2 (en) * 2007-04-23 2011-07-05 Microsoft Corporation Resource model training
US7996204B2 (en) * 2007-04-23 2011-08-09 Microsoft Corporation Simulation using resource models
US8276124B2 (en) * 2007-06-20 2012-09-25 Microsoft Corporation Constructing petri nets from traces for diagnostics
US8548777B2 (en) * 2007-09-28 2013-10-01 Rockwell Automation Technologies, Inc. Automated recommendations from simulation
US20090089029A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Enhanced execution speed to improve simulation performance
US7801710B2 (en) * 2007-09-28 2010-09-21 Rockwell Automation Technologies, Inc. Simulation controls for model variability and randomness
US8069021B2 (en) * 2007-09-28 2011-11-29 Rockwell Automation Technologies, Inc. Distributed simulation and synchronization
US20090089031A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Integrated simulation of controllers and devices
US7809534B2 (en) * 2007-09-28 2010-10-05 Rockwell Automation Technologies, Inc. Enhanced simulation models for automation
US20090089234A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Automated code generation for simulators
US9258181B1 (en) * 2007-12-06 2016-02-09 Alorica Business Solutions, Llc Managing agent login to multiple conference call bridges
JP5034955B2 (ja) * 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
US8265974B2 (en) * 2009-11-13 2012-09-11 Bank Of America Corporation Technological infrastructure consumption index
FR3061784B1 (fr) * 2017-01-12 2021-11-26 Bull Sas Procede d'evaluation de la performance d'une chaine applicative au sein d'une infrastructure informatique
US20210294655A1 (en) * 2020-03-23 2021-09-23 Baker Hughes Oilfield Operations Llc Prioritizing execution of multiple groups of analytic models
CN112395778B (zh) * 2020-11-20 2023-07-25 重庆理工大学 一种复杂产品众包设计过程建模及其众包任务处理方法
CN116107850A (zh) * 2022-12-14 2023-05-12 中国工商银行股份有限公司 容量测试模型的构建方法及装置、电子设备、存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061724A (en) * 1997-01-29 2000-05-09 Infovista Sa Modelling process for an information system, in particular with a view to measuring performance and monitoring the quality of service, and a measurement and monitoring system implementing this process
US6393386B1 (en) * 1998-03-26 2002-05-21 Visual Networks Technologies, Inc. Dynamic modeling of complex networks and prediction of impacts of faults therein
US6324496B1 (en) * 1998-06-18 2001-11-27 Lucent Technologies Inc. Model checking of hierarchical state machines

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765093B2 (en) 2005-09-19 2010-07-27 Itt Manufacturing Enterprises, Inc. Network modeling system and method of simulating network operation with configurable node models

Also Published As

Publication number Publication date
WO2003092245A3 (fr) 2004-04-08
AU2003249151A1 (en) 2003-11-10
FR2838844B1 (fr) 2005-07-08
AU2003249151A8 (en) 2003-11-10
FR2838844A1 (fr) 2003-10-24
EP1497732A2 (fr) 2005-01-19
US20050256692A1 (en) 2005-11-17
US7536292B2 (en) 2009-05-19

Similar Documents

Publication Publication Date Title
WO2003092245A2 (fr) Procede de generation d&#39;un modele de performance a partir d&#39;un modele fonctionnel
Müller et al. Comprehensive explanation of SLA violations at runtime
Raffelt et al. Dynamic testing via automata learning
CN113407327A (zh) 一种建模任务和数据分析的方法、装置、电子设备及系统
US7881440B2 (en) Method for automatic graphical profiling of a system
Marzolla Simulation-based performance modeling of UML software architectures.
Lei et al. Performance and scalability testing strategy based on kubemark
Happe et al. A pattern-based Performance Completion for Message-oriented Middleware
Petriu et al. Scenario-based performance engineering with UCMNav
Herzog et al. Performance validation tools for software/hardware systems
Walter Automation in software performance engineering based on a declarative specification of concerns
Hardwick et al. Modeling the performance of e-commerce sites
Guelen Informed CQRS design with continuous performance testing
Achkar Model based testing of web applications
Miller et al. Architectural effects on requirements decisions: An exploratory study
Saifan et al. Model-based testing of distributed systems
Bhuta et al. A framework for identification and resolution of interoperability mismatches in COTS-based systems
de Araújo Ferreira Recovery of Software Architecture from Code Repositories
da Costa Guidelines for Testing Microservice-based Applications
US20090228314A1 (en) Accelerated Service Delivery Service
Vale Designing Microservice Systems Using Patterns: An Empirical Study on Architectural Trade-Offs
Anderson Performance modelling of reactive web applications using trace data from automated testing
Merayo et al. A formal framework to test soft and hard deadlines in timed systems
Bocchi et al. A formal approach to modelling time properties of service oriented systems
Deivard et al. Diagnostics Framework for Time-Critical Control Systems in Cloud-Fog Automation

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REEP Request for entry into the european phase

Ref document number: 2003747148

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2003747148

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003747148

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10511033

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Ref document number: JP