WO1998053399A2 - Operational analysis of software-controlled systems - Google Patents
Operational analysis of software-controlled systems Download PDFInfo
- Publication number
- WO1998053399A2 WO1998053399A2 PCT/GB1998/001367 GB9801367W WO9853399A2 WO 1998053399 A2 WO1998053399 A2 WO 1998053399A2 GB 9801367 W GB9801367 W GB 9801367W WO 9853399 A2 WO9853399 A2 WO 9853399A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- model
- performance
- class
- models
- Prior art date
Links
- 238000004458 analytical method Methods 0.000 title claims description 12
- 238000000034 method Methods 0.000 claims abstract description 335
- 238000013461 design Methods 0.000 claims abstract description 61
- 238000004891 communication Methods 0.000 claims abstract description 25
- 238000005516 engineering process Methods 0.000 claims abstract description 16
- 230000003993 interaction Effects 0.000 claims description 51
- 238000010586 diagram Methods 0.000 claims description 46
- 230000009471 action Effects 0.000 claims description 27
- 238000012360 testing method Methods 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 15
- 230000001131 transforming effect Effects 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000010365 information processing Effects 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims 4
- 239000002131 composite material Substances 0.000 abstract description 9
- 230000003466 anti-cipated effect Effects 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 description 103
- 230000008569 process Effects 0.000 description 63
- 238000013519 translation Methods 0.000 description 49
- 241000220317 Rosa Species 0.000 description 30
- 230000001360 synchronised effect Effects 0.000 description 25
- 238000006243 chemical reaction Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 9
- 238000004088 simulation Methods 0.000 description 9
- 239000000203 mixture Substances 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 241000283726 Bison Species 0.000 description 4
- 210000001072 colon Anatomy 0.000 description 4
- 230000002688 persistence Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000638 stimulation Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 240000005809 Prunus persica Species 0.000 description 1
- 235000006040 Prunus persica var persica Nutrition 0.000 description 1
- 235000013290 Sagittaria latifolia Nutrition 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000015246 common arrowhead Nutrition 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0233—Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
Definitions
- This invention lies in the field of apparatus for, and methods of, operational analysis of software-controlled systems and finds particular application in apparatus for, and methods of, performance analysis of systems such as those used in information technology and communications.
- ATM Asynchronous Transfer Mode
- Such systems are complex to design, build and modify. They typically consist of complex software application program(s) residing on hardware platform(s) distributed over one or more communications networks. These networks are often physically distributed across a wide area such as a city or a country.
- failings arise in relation to the performance of the system rather than the functionality of the system. For instance, failure to meet response time specifications, failure of the system to be scaleable, bottle necks within networks etc.
- Such failings in the performance of a system are often the result of unforeseen interactions between modules of the software application program(s) and the hardware platform(s) of the system.
- Other failings in system performance, particularly in communications systems, arise from the response of the system to surge loading and shock loading by system operators.
- the performance model consists of three interacting sub-models. These are the software model, the architecture model and the usage model.
- Wohlin's software model is a program representing the performance characteristics of the application programs used within the communications system.
- Wohlin's architecture model is a program representing the performance characteristics of the hardware platforms and network configurations used within the communications system.
- Wohlin's usage model is a program representing user behaviour and interaction with the system. It is this behaviour and interaction with the communications system that generates system loading characteristics.
- a design aid would ideally utilise system design information generated by system design tools. For example: 1 ) operational information defined within software applications; and
- Each set of information is generated by a separate tool, for example software applications may be designed using Computer Aided Software Engineering (CASE) tools and a system's architecture may be designed using a network design tool.
- CASE Computer Aided Software Engineering
- a client ⁇ server software application generally contains a single definition of a client and a single definition of a server.
- the client software and the server software may each be installed several times over on several different hardware platforms.
- the software application it is typical for the software application to contain little, if any, information on the topology of the network on which it is, or is to be, installed.
- networks are designed to operate independently of the software applications that are running on them. Accordingly there is little support within network design tools for incorporating detailed information about all of the various modules within the software applications that each platform within the network may need to support.
- a method of generating performance models of information technology or communications systems comprising the steps of: 1 ) inputting to modelling apparatus at least a first data set of operational information of said system;
- this method provides that at least a first data set comprises a software application and wherein said method further comprises the step of:
- this method further provides that at least a second data set comprises a definition of said system's architecture and wherein said method further comprises the step of:
- the method further comprises the steps of:
- step 6) further comprises the steps of:
- this step is a process of detecting used classes.
- system performance simulation apparatus for use in analysing performance in an information technology or communications system, the apparatus comprising: i) a data store for storing at least a first model of a first aspect of the system and at least a second model of a second aspect of the system; ii) means for extracting or generating, and storing, linkage information for linking the first and second models; and iii) transformation means for transforming said first and second models, using said linkage information, into a performance model of the system.
- the apparatus further comprises performance testing means for performance testing the system, using said performance model.
- the apparatus further comprises result loading means for returning performance test results to the data store.
- the data store is adapted to store a third model of a third aspect of the system.
- the three models may then comprise an applications model, an execution environment model and a workload model. These three model types are clearly important in the construction of a performance model of the overall system.
- the models of the various aspects of the system may be generated by any appropriate modelling tool, or tools, and these tools need not necessarily generate models having a common format.
- the system may therefore also be provided with means for ensuring that the storage of the models in the data store is done according to a common format, to facilitate the transformation to a performance model. This may be done by providing one or more download mechanism(s) for downloading the output of said one or more modelling tools, the download mechanism(s) providing a conversion function for the output of any modelling tool not already conformant to said common format. It is preferable that the performance results returned to the data store are accessible to the modelling tool used to generate each model so that a new or modified model could be generated which takes the performance results into account.
- the performance results are available to each modelling tool. This is supported by embodiments of the present invention in which a view of the performance results which relates to the source models can be provided by linking the results, in the data store, to source constructs.
- CMDS Composite Model Data Structure
- That single data structure may comprise for instance the applications model, environment model and workload model mentioned above, together with linkage information relating all three models to each other.
- CMDS enables the operational performance aspects of a system to be modelled and evaluated while maintaining the association with the other aspects of the system
- the single data structure further comprises routing information in respect of components of the environment model.
- the linkage information comprises routing or address information for components of the applications model with respect to components of the environment model as well as routing information for components within the environment model alone.
- Embodiments of the present invention are preferably based on an object- oriented approach to software development modelling.
- Object oriented software technology is now widely established and is described for instance in the book entitled “Object-Oriented Analysis and Design” by Grady Booch, published in 1994 by Benjamin/Cummings.
- An object-oriented ("00") approach to software development models a system as a number of objects which interact.
- the basic engineering building blocks of an 00 system are classes and objects.
- An object comprises data together with methods for operating on the data.
- a class defines methods and data attributes common to a set of objects of similar type.
- An object is an instance of a class.
- Embodiments of the present invention involve in particular "Unified Modelling Language” (UML), an industry-standard language for specifying, visualising, constructing and documenting the artifacts of software systems.
- UML Unified Modelling Language
- Development of UML has been led by Rational Software Corporation and information about UML can be obtained for instance via the Worldwide Web at www.rational.com/uml.
- the CMDS preferably comprises UML constructs, and thus can be used to generate a performance model which reflects the structure of an object-oriented application.
- the performance model may be embodied for example in Information Processing Graph (IPG) notation.
- IPG Information Processing Graph
- QNM Quality Network Models
- DES Discrete Event Simulation
- Analytic tools referred to for instance in the book “Performance Engineering of Software Systems” by Connie Smith, published in 1 990 by Addison Wesley.
- the use of IPG notation allows a solution tool (performance testing means) such as the SES Workbench tool to be used, this tool being further identified later in this specification.
- the approach of the transformation process can then include the generation of a QNM of the system, represented in IPG notation.
- a file is created, using the SES query language, to represent the system model. This file can then be input to the SES Workbench tool (the performance testing means) to generate a model for solution.
- the specific SES Workbench tool can be replaced by any general purpose DES tool since it should be possible to derive a suitable simulation model from an IPG description. For instance, it could be replaced by a Petri-Net based simulator.
- a method of generating a performance model of an information technology or communications system comprises the steps of: i) storing in a data store at least a first model of a first aspect of the system and at least a second model of a second aspect of the system; ii) extracting or generating, and storing in the data store, linkage information for linking the first and second models; iii) transforming said first and second models, using said linkage information, into a performance model of the system.
- At least one of the models comprises an interaction (or "scenario") diagram to trace, in the system, the execution of a scenario in time for instance as a sequence of messages between objects.
- the method may then further comprise performance testing the system, using the performance model, and the modification of the first or second model, and/or of the interaction diagram and repetition of steps i) to iii) above.
- This modification and rerunning of the performance testing, from the design environment through to the performance testing environment, is a particularly beneficial capability of embodiments of the present invention. It can enable design engineers to take performance results into account without having to have, or to contract in, the different skills of the performance engineer.
- Figure 1 is a representation of a hardware platform and network configuration of an information technology system of the type to which a performance analyser of the present invention may be applied;
- Figure 2 is a representation of of the software application programs which reside on the hardware platforms of Figure 1 ;
- Figure 3 is a high level view of the performance analyser architecture in it's three functional sections;
- Figure 4 is a files and conversion tools view of the architecture of Figure
- FIG. 5 is schematic view of the hardware environment in which the performance analyser sits
- FIGS 6 to 8 show the operations happening at each of the three sections of Figure 3;
- Figures 9 to 1 3 show example outputs of the source design tools Rose and Configurator
- Figure 14 shows a model parameters file for use in converting a CMDS data structure into the SES environment;
- Figures 1 5 to 22 show aspects of a generated performance model in the SES environment;
- Figure 23 shows a user interface for viewing the performance analyser from the source to the SES environments;
- Figure 24 an example CMDS data structure once populated;
- Figures 25 to 31 show CMDS classes and objects and their behaviours from the source environment
- Figure 32 shows a state chart from the source environment
- Figure 33 shows a CBN example
- Figure 34 shows a system scenario
- Figures 35 and 36 show translation mechanisms for translating Rose and Configurator files
- FIGS. 37 to 45 show various aspects from the SES environment
- Figures 46 to 49 show examples from worked scenarios;
- Figure 50 outlines the CMDS to SES translation process;
- Figure 51 shows an object interaction
- Figures 52 to 73 show the aspects set out in their respective titles.
- Figure 74 shows a default ORB submodel.
- AOU Access Operations Unit
- PSTN Public Switched Telephone Network
- FIG. 1 The hardware environment of the AOU is shown in Figure 1 .
- This hardware environment known as an “execution environment” (EE)
- EE execution environment
- FIG. 1 The hardware environment of the AOU is shown in Figure 1 .
- This hardware environment known as an “execution environment” (EE)
- EE comprises hardware platforms 100-1 30 and their interconnection via a local area network 140 and a wide area network 135.
- the AOU is a client/server arrangement from an operator's point of view. It consists of a number of clients 1 10 communicating with one or more server 1 1 5.
- the servers 1 1 5 are in communication with databases 1 20, customer support systems 1 25, works management systems 1 30, switching management centres (not shown in Figure 1 ) and at least one access network analysis server 100.
- the software modules which run in the execution environment of Figure 1 are shown in Figure 2. These constitute applications and can be referred to as the application layer. They are distributed across the hardware platforms of the execution environment. These software modules interact. It is these interactions which define the functional behaviour of the system. For the purpose of performance analysis the interactions between the software modules may be considered as consisting primarily of two categories of behaviour: 1 ) the transmission of data from one software module to another; and 2) the processing of this data.
- the performance of the AOU will be affected by workload. For instance, the speed of the AOU will depend partly on how much data is being passed across the network. If there is more data than the network can efficiently cope with, then the speed of the system will be adversely affected.
- the speed of the AOU will depend partly on the speed with which the data can be processed. If the data cannot be processed fast enough then the speed of the AOU will be adversely affected.
- the speed of the processing is determined, at least in part, by both the volume of the data to be processed and the speed of the processor that is processing the data.
- a performance model estimates performance characteristics such as the speed and response times with which a system, such as the AOU of Figures 1 &2, will operate. To do this, a performance model will typically simulate the amount of data that is generated by the system, where this data flows to within the system and how long the system takes to process it. This can be achieved using a statistical technique known as Discrete Event Simulation (DES). Tools supporting DES techniques are often adapted to receive, as input, performance models known as Queued Network Models (QNM). The DES tool executes the QNM and generates statistical data relating to the QNM.
- QNM Queued Network Models
- a performance analyser automatically generates a QNM representation of a system being analysed.
- the QNMs are automatically created from at least three sets of input data, which respectively relate to the application software, the execution environment on which the application software is installed and the anticipated workload of the system.
- the input data to the performance analysers may be derived directly from system design tools such as software design CASE tools, and network design tools. This allows actual system design information to be fed directly into the performance analyser. Hence the performance analysers can be seen to derive performance models directly from design information with limited, if any, assistance from performance engineering experts.
- the performance analyser consists of three sections: Section 1 - input of data from the source tools; Section 2 - a Composite Model Data Structure (CMDS) and operations on it; and Section 3 - a Performance Results Generator.
- CMDS Composite Model Data Structure
- the first section consists of four parts, one for input of data in relation to each of four different aspects of a system. These aspects are a software application 305, an execution environment 310, a work load specification 31 5 and a system scenario 320.
- the tool used for source input of each of the first three types of components above is Rational Rose version 4.0, using the UML notation, and for the System Scenario tool, BT Configurator version 1 .2 which is described in co- pending patent application GB 9707550.1 , and incorporated herein by reference.
- the BT configurator tool is similar to the Rose tool but has different lexical rules and grammar. These together with a library are given later in this specification, under the heading "Configurator Grammar".
- Input of the source data to the CMDS is achieved via a number of conversion or translation programs.
- the translation process takes the data files saved by the tool used to generate the source data as input, generates a database representation of it, and maps elements of the source data to elements in the CMDS.
- elements of the CMDS are created from elements of the source data.
- There is a database used to support the CMDS usually referred to herein as the "Permabase” database, and which is also used as an intermediate step in the translation process from the source tools to the CMDS.
- Commercially available object oriented data bases and tools such as 02 and Versant may be used to provide the Permabase functionality.
- the modelling tool used is SES Workbench version 3.1 .4. It is necessary to translate the CMDS 300 to a structure for use in the modelling tool environment and this is done by mapping information from the CMDS into a performance model by using the SES query language.
- Figure 4 shows a files and conversion tools view of the overall architecture of the performance analyser. (The files are shown by two parallel lines, the conversion tools by rounded corner boxes). Files 400, 405, 410, 41 5 output by the source tools are converted and loaded as a CMDS file 420. Loading involves populating the CMDS data structure 300 by means of four conversion operations: • Detect Used Classes 330
- the information in the CMDS data structure is then mapped into a performance model 425 which can be supported by the SES workbench environment. This is done by creating query language files 430 which can be used by a query interpreter to generate the SES model 425.
- the performance analyser may itself be supported in a distributed system, for instance communicating by means of a Local Area Network (LAN) 500.
- LAN Local Area Network
- the design tools 530, 535 are loaded on a server 505 which is local to a user's client workstation 510.
- Data storage 51 5 is available over the LAN 500 and the performance modelling environment 345 is also remote from both the client workstation 510 and the server 505 carrying the design tools 530, 535.
- the data stores and functionality can be loaded wherever there is sufficient capacity and acceptable access.
- the performance analyser might be supported at a single location with tools, performance modelling environment 520 and data storage 51 5 all residing on the user's local server 505. Referring to Figures 6, 7 and 8, the three sections of Figure 3 can be expanded as follows.
- the design engineer works within the Rose tool to generate design files 600, 605, 610.
- the design engineer works in the Configurator tool to create system scenario file outputs 61 5. Looking at generation of the application components file 610, this is a normal use of the Rose design tool.
- the Rose design tool is intended for modelling software applications and specifies an application in terms of application objects and the relationships between them. The objects and relationships are determined by the design engineer.
- Figures 9 and 10 show examples of a class diagram and an interaction diagram created within the Rose tool by the design engineer for the particular example of retrieving a page from a server.
- the class diagram shows the object classes that need to be present, in this case client, server, page address and page classes.
- the client and server classes have an interaction indicated.
- the interaction diagram shows a sequence of interactions in chronological order, for the "retrieve page" example, triggered by an external event 1000, between the classes of the class diagram of Figure 9.
- CMDS data structure 300 a class diagram for the execution environment output file 600 shows platform components defined by platform type and attributes.
- the workload output file 605 comprises a class diagram of relevant workload components. These platform and workload components are usually fairly static and can be defined in a library.
- FIG. 1 2 show an open thinker 1 200 and a closed thinker 1 205 workload components. Although these show the same attributes, they have different names, these different names determining that different behaviour will be relevant. This becomes apparent when the library components represented by the workload component names are pulled in. The library component definitions will show different behaviour for an open thinker from a closed thinker.
- the system scenario In practice, it is the system scenario which pulls together application, workload and execution environment components.
- the system scenario relates the components in a representation of the whole system, for loading in the CMDS data structure.
- the system scenario diagrams developed within the Configurator tool 535 are therefore important since they relate the components from the workload and execution environment to objects of the application layer.
- one workload component 1 300 can be seen.
- this workload component In the page request (or "cache") example described above, this workload component relates to an object in the class "client" from the application source model 610. Since this is a specific instance of the object class client, it is shown as an object 1305 and given an individual object name "cl 1 ".
- the object 1 305 from the application source model 610 relates to a platform component, in this case from the class "PC". This is shown in the system scenario diagram as a platform instance 1 310 and given a unique platform name "PC1 ". In running an example of the cache exercise, further execution environment components have to be specified. These are two network instances 1 31 5, 1 320 and a platform instance 1 325 of the class "SUN" (this being a specific type of server). Lastly, a second application object, this time of the class "server” 1 330, relates to the SUN execution environment component 1 325.
- the output files 600, 605, 610, 61 5 from the source tools Rose and Configurator 530, 535 are converted to files in a PERMABASE database format 565, 570, 575, 585, 580 prior to populating the CMDS data structure 300.
- the data structure 300 provides a kind of interface between the output of the Rose and Configurator tools and the input to the SES performance environment. To do that, it needs to hold the output of the Rose and Configurator tools in a way which can be fed to the SES environment and the Permabase database format provides an intermediate conversion.
- the CMDS data structure 300 provides a framework for information which has to be populated with the data contained in the output of the Rose and Configurator tools.
- Figure 7 shows four stages in the population process, "CMDS1 " through to "CMDS4".
- the first areas of the CMDS data structure 300 to be populated are class lists, interactions written in Common Behaviour Notation (CBN), and linked object structures representing the system scenarios from Configurator.
- CBN Common Behaviour Notation
- the main conversion step on first loading data to the data structure is therefore step 1 as shown, the conversion of the interaction diagrams to CBN.
- the first of these reflects the fact that the performance model needs to be able to model the performance of all the classes which may be involved in relation to a platform component, during running of a software process. It would be possible to model all classes in relation to all platform components but that would make the performance model unwieldy. Alternatively, it would be possible to look at the scenario diagrams and only model the classes which are shown there to be involved in relation to each platform component. However, that would not take account of all classes. For instance, it will not take account of classes which arise during running of the software, called herein "dynamic objects", such as pages which are delivered from a remote site.
- dynamic objects such as pages which are delivered from a remote site.
- the solution in embodiments of the present invention is to pull in data from the interaction diagrams and to use that data to search recursively the behaviour of the classes which arise in relation to a platform.
- the "Detect Used Classes” step therefore increases the number of classes in the linked object structure to accommodate for instance the creation of dynamic objects, and classes which "nested" within other classes.
- Step 3 reflects the fact that the performance model needs every class instance to be taken into account.
- the output of the Configurator tool allows submodels to be hidden within modules. It also allows multiple instances to be represented just once. Step 3 pulls out every instance and gives it a unique identifier, for instance related to the platform it resides on and, if there are multiples, a number in a sequence.
- Step 4 is important in that the performance model needs to be able to track routes between platform components, in order to predict traffic effects for instance.
- the generation of a routing table is done from the system scenarios, simply looking at the routes available between platform components.
- the catalogue level introduces another of the inventive aspects of the present invention, the ORBware module 1 500.
- a routing table is constructed in the CMDS data structure 300 which gives connectivity between platform components, in order to run a performance model it is necessary also to know where the application components are in relation to each other.
- ORB Object Request Broker
- Each platform component has associated with it an Object Adapter (OA) which sits between the platform component and the application layer.
- OA Object Adapter
- the OA holds information about all the application components located at its platform component. If an incoming transaction arises for one of it's application components, the OA can send it to the correct one.
- the OA can supply the information as to what platform the target application component is sitting on.
- the routing table information can be used to reach the remote platform and then the OA at the remote platform determines which of it's application components should act on the transaction.
- Figures 1 6 to 22 show examples of levels at which the meta model for a generated performance model for the cache example can be viewed by the user.
- Figure 1 6 shows submodels of each of the execution environment instances. It is possible to view each submodel in turn and the user can access a Queued Network Representation (QNM) for each one present.
- QNM Queued Network Representation
- Figure 17 shows submodels from the workload layer and Figure 18 shows one of these expanded into it's QNM.
- the submodel information as expanded, for execution environment components and workload environment components, can be pulled in from a library created using the SES Workbench environment.
- Figure 19 shows an application module and
- Figure 20 shows the server submodel. This latter shows the application behaviour for the server class, compiled from the source models.
- the notation is that known for showing a system running, in particular the paths between components and behaviours. Transactions (units of work) arise and follow arcs from icon to icon which indicate a sequence of behaviour for dealing with the transaction. Behavioural icons might for instance represent queuing, blocking queues, waiting and branches.
- Figure 21 shows system scenario modules for the cache example and Figure 22 shows part of the linkages between the different layers for the "cachel " submodel. In essence, Figure 22 shows delays etc for transactions flowing through topology arcs between objects from all the environments.
- embodiments of the present invention can present a very powerful user interface by means of which performance models can be run, source models modified and the performance model rerun.
- the four buttons to the left of Figure 23 2300 allow the user to view each of the source models by starting up the relevant design tool (Rose or Configurator).
- the source models can be modified as necessary and loaded to the CMDS data structure 300.
- the CMDS button 2305 allows the user to view interim files and these can be loaded to the SES environment.
- the "model” button 2310 connects the user to UNIX and generates an SES model in the Workbench environment.
- an example of activation of the CMDS button 2305 starts a browser and gives the user the structure of the system as stored in the CMDS data structure 300.
- the information required in a UML application design for a performance model to be generated is: A specification of the components which make up the application; and specification of how those components behave and interact with each other.
- the amount of data mainly affects the time taken to transmit it around the system, and the time taken to process it is mainly dependant upon the speed of the processor doing the processing.
- Objects are a composition of related data and functionality (methods), the specification of which is contained in a Class specification. All Objects are instances of a Class, the behaviour - functionality - remains the same, but with differing data values.
- the data size of, or Space used by a class can be given as one of its properties, or calculated from the size of its attributes. This size could be used when passing (transmitting) objects of this type between other objects, or to keep track of a memory resource on a Platform.
- the execution time of a method can be given as one of its properties, or calculated from its behaviour.
- the actual time taken will depend upon the platform the object is executing on, so the execution time needs to be given in platform independent units, then the platform can specify how many of these units it can process per second. Given that this is the case, the actual units used makes no difference provided there is consistency between the object and the platform as the units will cancel out of the equation. However, the choice of units does depend on the ability of the Application designer to estimate the quantity for the method to execute in, and the ability to specify how many per second a platform can execute.
- the UML as it stands allows the specification of various (designer defined) properties on a class, these can be used to indicate the thread management style of that class.
- a primitive class can be one which represents a portion of the system which is not to be modelled but nevertheless has functionality used by the modelled part, with a predictable (or previously predicted/modelled/worked out) execution time. In terms of performance modelling, these primitive classes have no behaviour description beyond a specification of the time complexity of their methods.
- Non-primitive classes have their behaviour described in terms of other classes (which eventually resolve to primitive ones), or rather calls to methods on objects belonging to the other classes.
- the methods may also include a time complexity value indicating some additional work done by the method, that is not included in the behaviour description.
- CBN Generation In terms of performance modelling, it is preferable that there be consistency between these three. This may be achieved using compatible defined semantics for each method.
- the Execution Environment is the collection of physical components that the (or a number of) application(s) executes upon. This consists primarily of Platforms - on which the processing is carried out, and Networks - which allow the platforms to communicate with each other.
- ORB layer In-between the Objects of the Application and the Platform of the EE there is a notional ORB layer.
- This layer consists of an OA (Object Adapter) residing at each platform, and a Name Server.
- OA Object Adapter
- the ORB provides location transparency to each of the objects within the system - all method calls to another object go via the ORB.
- the Name Server informs the ORBs where to forward method calls to, in order that they reach the target object.
- a Platform consists of: a processor for executing the work units specified for object methods at a specific rate; a connection to one or more networks; and an
- a Network may be as simple as a straight forward link between platforms, or it may consist of a number of links connected via bridges, switches, platforms etc.
- Platform Attributes speed - The speed of the processor, rate at which work units are executed.
- Methods transmit -- Send a method call to an object via a connected network, process -- Execute a number of work units on this platform.
- Attributes speed ⁇ Rate at which data can be transmitted, delay -- delay incurred by data transmitted over this network.
- Methods transmit - Send data (method call) across this network.
- the workload layer consists of the definition of "classes" of user behaviour.
- the performance analyser provides two user models, an open and a closed thinker model. Both models cyclically think and activate a method on an object, the closed model waits for a response from the method before continuing with the cycle (equivalent to a synchronous method call), where as the open thinker model does not (equivalent to an asynchronous method call). Both models take as parameters a think time, and a distribution type for that time.
- the 3 layers, Workload, Application, and Execution Environment define components which can be used to build a system. To get a Performance model of a system, it is necessary to have a definition of the system itself, not just a definition of its components.
- the UML does have some mechanisms which address the allocation of Application components to Platforms (or Processors), but does not address the whole system, leaving out: the definition of how those Platforms are connected; the initial state of the system (in order for an application to execute there need to be objects, not just classes); and how the application is to be driven.
- the System Scenario definition from the configurator tool defines the instances of the components that exist to make up the system, and defines how those components are connected together.
- a system contains:
- the CMDS is the core of the performance analyser tool set, it provides a complete model of the system, containing all the information from each source tool, combined into a consistent model.
- the CMDS is a data model built on an object oriented database.
- the CMDS data model is defined in the UML diagrams of Figures 25 to 34.
- Rose To Intermediate Database The files saved by Rose (mdl files) are well structured and are suited to storage in an intermediate database. It consists of a number of nested (what it calls) Objects', each of which can be converted to an entity in an intermediate database in a straightforward one to one mapping.
- the conversion process uses a bison + + and flex + + defined grammar (decendants of yacc and lex that are c + + oriented, "F/ex+ + a C+ + extension to the lexical analysers Flex and Lex M.E. "Lesk and E. Schmidt. Lex - A Lexical Generator. Technical report, Rational Software Corporation, 1995", and “Bison* + a C+ + extension to the parsers Bison detailed in the reports: “Charles Donnelly and Richard Stallman. Bison the YACC-compatible Parser Generator. Technical report. Free Software Foundation, November 1995” and “Yacc Stephen C. Johnson. YACC: Yet Another Compiler-Compiler, technical report.
- This tool is very similar to the Rose to intermediate database translation tool, except it uses a different set of lexecal and grammar rules - see below .
- the configurator file (dwg file) is also divided into sub units which map well to Entities, Attributes, and Attribute values. Figure shows the components of this tool.
- This tool takes the intermediate database representations of the Rose input and maps the Rose entities to CMDS entities, or to be more exact, CMDS entities are created from the Rose entities. Many entities in Rose map to their duplicates in the CMDS, this is because the component representation in the CMDS is based on the UML OO notation, which is supported (in part) by Rose.
- Statechart states list states list, with items converted to State
- This tool takes the intermediate database representation of the Configurator input, and maps the Configurator entities to CMDS entities, likewise - to the components to CMDS tool - the CMDS entities are created from the Configurator ones.
- Configurator Symbol to CMDS Entity mappings The following sections define which Configurator entities are used to create the CMDS entities.
- Connection entity pointer to the Workloadjnstance paired with this object via a Connection entity.
- This algorithm gives each platform instance a pointer to the definition of each class that is used on it.
- the algorithm recursively searches the behaviour of each class on the platform to find the classes used within those classes, until all have been detected. This process is started by the list of classes of the objects residing on the platform as defined in the System Scenario.
- a class is considered used by a platform, if at any time an object of that class resides on the platform. This will occur if: a) An object is dynamically created. b) An object is returned 'By Value'. c) An object is passed as a method parameter 'By Value'.
- This algorithm flattens out the hierarchy in the System Scenario and duplicates the multiple instances, so that each instance in the CMDS System Scenario representation contains a unique instance for every one defined.
- the hierarchy relates to the manner in which the configurator defines system scenarios. It permits a system scenario to be defined as a series of submodels, each of which may contain further submodels.lt is these submodels within submodels that provide the hierarchy that is flattened by this process. Similarly, the submodels need to be multiplied up.
- the instance names have to be unique, this is achieved by extending the names by adding the name of the subsystem they are within when flattened out, and by adding a number when duplicating multiple instances.
- Multiply Subsystems For each subsystem within this one Multiply subsytems repeat 'number of instances'-1 times duplicate this subsystem realign duplicates entity pointers add new subsystem to this ones components realign original subsystems entity pointers Realign Entity Pointers
- connections to each internal component remove the connection to this access point from the external component
- Multiply Platform Instances For each platform repeat 'number of instances'-1 times duplicate platform add instance number to new platform name create duplicate objects and workloads equivalent to those attached to original platform attach them to new platform add instance number of platform to object and workload names add all new objects to the system scenario add connections to new platform to networks platform is connected to add instance number to original platform add instance number of original platform to original object and workload names
- CBN Common Behaviour Notation
- Guard operations list of operations in message guard list. Remove the guard list from the message.
- Statement message converted to a statement.
- the routing table simply generates from the system scenario information a set of all the shortest routes between each combination of Platform pairs.
- a route consists of a from and to platform name, and a number of network name steps.
- the search algorithm is a breadth first search.
- This conversion process is described in greater detail below. However, an overview of this process shows that a QNM model of the system being analysed is generated in a text-based format. This QNM forms input to a DES tool.
- the performance analyser uses the SES workbench detailed above. Accordingly, the performance analyser generates a QNM using the SES query language.
- the SES model collects the following results: i) time to execute any method call made, ii) processing time taken by a method on a platform iii) transmission time of a message + data across a network iv) utilisation of platforms v) utilisation of networks
- the first three sets contain: mean; standard deviation; minimum; maximum; variance; sample size, where as the utilization sets contain: period in use; number of periods; shortes period; longest period; utilization (period in use / simulation time).
- object petal object
- L_PAR OBJECT object details R PAR ⁇
- list contents object list I stringjist I tuplejist
- $$ new Attribute_List_Att; ToAttribute_List_Att($$).Add($1); ⁇
- value set entries value set entry
- value_set_entry INTEGER
- Design_Parameters Values to be set in the Object.
- Constructor Parameters - Parameters to be passed to the constructor of this object when created. Documentation - User notes.
- Platform_Name The 'Unique' (within this subsystem) name of the Platform Object.
- PlatformjDlass The Class of the Platform Object.
- Number Of Instances The number of instances of this platform and objects on it the symbol is to represent.
- Networkjnstance Network Name The 'Unique' (within this subsystem) name of the Network Object.
- Network Class The Class of the Network Object.
- Network_Class The Class of the Network Object.
- SubSystem_Name The 'Unique' (within this subsystem) name of the Subsystem.
- Number_Of Instances The number of instances of this subsystem the symbol is to represent.. Documentation - User notes.
- Access_Point_Name The 'Unique' (within this subsystem) name of the Access Point Plug. Documentation - User notes.
- Access_Point_Name The 'Unique' (within this subsystem) name of the Access Point Socket. Documentation - User notes.
- CBN captures the common constructs of the differing UML notations for interaction diagrams and state charts. It then describes the mapping from each UML behaviour notation into this common form. This could be viewed as specifying some tighter semantics on the UML notation, and Breu et al (Ruth Breu et al; Towards a Formalization of the Unified Modeling Language; http://www4.informatik.tu-muenchen.de; Institut fur Informatik Technische Univrtsitat Munchen) addresses some of these issues.
- the syntax of the CBN is specified in a form akin to BNF (Backus - Naur Form).
- the specification of a syntax plays two roles: one, to aid the specification of the construct; and two, to give a method of writing the behaviour specifications.
- behaviour is captured in classes, that is to say, things which exhibit behaviour are objects of a particular class, and that class describes the objects behaviour.
- Behaviour occurs as a result of stimulation (possibly self stimulation in the case of an active object - one with its own thread of control), and this stimulation is via method calls.
- Methods (or Operations) are defined for each object, and the behaviour of the object is defined within these methods.
- a class consists of a number of methods and attributes, methods define the behaviour, and attributes contain the 'state', of the object.
- An attribute is a relationship with another object, these can be either, By Reference or By Containment.
- references will point nowhere, and need to be assigned to an object before use.
- a contained object is one which has its lifetime tied to that of its parent, i.e. when the parent gets created, so do all of its children, there is no need to assign them separately.
- the syntax used by the performance analyser is:
- inheritancejist String ⁇ A class name. ⁇ I String ',' inheritancejist ⁇ A list of class names. ⁇
- attribute_name String ;
- a Common Behaviour Notation action is a, ⁇ method_call ⁇ method call or ⁇ sequential ⁇ sequential construct or ⁇ parallel ⁇ parallel construct or ⁇ conditional ⁇ conditional statement ⁇
- a method call can be made Asynchronously, or Synchronously.
- Asynchronous calls cause a new thread to be created, the current thread fires and forgets the method call then continues with its own behaviour, the called method generates a new thread in the target object.
- Synchronous calls keep the same thread taking it with the call and bringing it back with the return.
- An Asynchronous method call does not return a result, methods which do return a result can be called asynchronously, but the result is not sent back to the calling object.
- An Asynchronous method call does not make use of the Exception catching clauses.
- Synchronous method call There are different forms of Synchronous method call.
- the basic form is for the method to be called, if the object cannot (or will not) accept the call - i.e. its busy - then the thread is queued and blocked indefinitely, until the method is accepted. This can of course lead to deadlock, and gives a reason for having alternatives.
- Two such alternatives are, Balking and Timeout.
- a Timeout method call carries an extra time parameter indicating the length of time it stays queued until accepted, if the time is exceeded the call is rejected, and an exception is raised in the calling method.
- a balking method call is a special case of a Timeout, with time set to 0, if the object cannot accept the call immediately, it is rejected. Assignment
- assignment There are two forms of assignment: one which creates a copy of the object; and one which just creates a new name for the object.
- assignment is treated as a construct in its own right, but it can be seen (both forms) as a method call.
- y.thisO returns the object refered to by the name y (as does 'this' inside a classes methods) and gives it an additional name x; and y.cloneO returns a copy of y (taken from the idea in Java) and gives it the (first) name x.
- a method may return a result, in order for this to happen the method behaviour must specify the object (result) to be returned.
- This return statement can be seen an asynchronous method call, the target being the calling object of this method, and the result passed as a parameter.
- result_name String ; ⁇ A name used to refer to the object returned as a result of the method call. ⁇
- parameters String ⁇ The name of an object to pass as a parameter (or a const value). ⁇ String ",” parameters ⁇ A sequence of ", " separated names of objects (or const values). ⁇
- a condition statement consists of a number of options, the first option with a clause that equates to True is the path taken. This implies the clause expression can be simply a method call that returns a boolean value.
- the syntax may be extended and as defined herein the equivalent behaviour can be supported by the specification of additional methods.
- an Iteration Clause could be viewed as being the same as a Condition Clause, i.e. if the clause equates to True then Iterate, otherwise stop.
- This construct is a way of synchronising threads.
- the current thread waits until the methods listed have been called.
- An object can only guard on its own methods. There are two choices as to how the Guard should work, illustrated by the situation when the Guarded method occurs before the Guard is reached - what should happen?
- each object will have its own identity - it will be uniquely identifiable in some way - but may be referred to by a number of names depending on the context it is referred to in.
- the name given in these cases may not be all that is required in order to uniquely identify the object, but by including a selection of the names of the parent object, method, and platform (for distributed systems), a unique name can be made.
- An object may be referred to by its global name, or by an alias to name, there are 3 ways in which an object may acquire an additional 'alias' name:-
- Interaction diagrams give descriptions of sections of behaviour through a number of different objects, if the total of all these 'slices' of behaviour is taken, we can get a complete picture of the system behaviour, or rather, a complete picture of all of the behaviour that the designer is interested in, as this is all he/she has described in the interactions.
- One purpose of the performance analyser is to provide performance modelling at an early stage in the design life cycle of a system and performance models of 'incomplete' designs, or more exactly, designs which do not have all the detail specified may be required. In particular this affects how the model chooses which path through the system to take. Conditional tests may not have enough detail in order to be evaluated, in which case the choice will have to depend on a probability.
- Sequential actions are indicated by sequence numbers.
- the hierarchical numbering system indicates two things: the hierarchy shows which messages are as a result of which other messages; and the numbers indicate the sequential order the messages are sent in at any particular hierarchy level.
- Parallel actions are indicated by the addition of characters. These are added after the sequence number at a particular level. Two messages having the same sequence number, but with an additional character indicating the difference, are assumed to be sent in parallel.
- a guard on a message is indicating that the message will not be sent until the messages listed in the guard have been sent. It is preferable for a message number to be in a guard list, if that message will at some time be sent to the client object.
- the clause is a pair of values - P(x,y) - interpreted as, the Probability that random variable 'x' has the value 'y'. Where x appears more than once in a single name space, it should be interpreted as the same variable tested against different values.
- the parameter 'y' may be a name which is given a value somewhere else, but must be a constant value. This can be seen as similar to a case or switch statement, giving:
- Statecharts If a class exhibits state like behaviour then its behaviour can be represented by a Statechart, however, Statecharts were not designed to represent class or object behaviour, and consequently classes with Statechart described behaviour have certain limitations. It is also necessary to define how the Statechart notation maps to class and object notation.
- Harel Dispos Harel, Eran Gery; Executable Object Modeling with Statecharts; Proc. 18 th Int. Conf. Soft. Eng., IEEE Press, March 1 996) and Peach (Barbara Peach, Bernhard Rumpe; State Based Service Description; Formal Methods for Open Object-based Distributed Systems Volume 2; 1 997).
- Harel paper ties Statecharts to his own 00 notation, and the Paech paper defines a new State machine like notation which ties in to the UML notation. Breu et al (see above) also talks about Statecharts, but again they have their own “similar state diagrams”.
- the performance analyser uses the Rose tool for input, so it is preferable that Statecharts be tied to the UML as these are the notations represented in the tool.
- the semantics are close to the method described in Harel, but recognises certain limitations which are backed up by observations made in the Paech paper.
- the Statechart describes the behaviour of the object.
- the behaviour seen when a method is called will depend upon which state the object is in.
- a state attribute is added to the class, and this is tested when a method is invoked, the result of that test indicates the consequent behaviour, some of which will be to set the state attribute to the new state.
- An event maps to a method call.
- a transition maps to a conditional statement within a method. It has three parts: first, the test clause which tests the state attribute; second, the send_event caused by the transition if it is taken; and third assignment of the state attribute to the new state.
- the choices in this case can be considered independent, they are made upon the internal state of the "cache" - is the page request already stored in the cache, and is the date of the page stored in the cache fresh or not. Consequently the choice can be a probability contained within the cache, that determines the cache state when asked for a page - at this level of detail.
- a more detailed design of the system might see the probabilities distributed between cache and server, and some data values, like a date, and page_address introduced.
- CMDS Composite Model Data Structure
- SES Workbench The translation process from Composite Model Data Structure (CMDS) to SES performs a function that maps the relevant information in the CMDS into a performance model that is supported by SES Workbench.
- the performance analyser proceeds via an intermediary step which utilizes the SES Query Language. Use of this intermediary step supports automated generation of an SES model.
- the mapping function produces a query language file that is used by the query interpreter to generate an SES model giving the complete CMDS to SES translation process as illustrated in Figure .
- the SES performance model produced by the translation has a structure which is referred to as a "Meta Model".
- the meta model is a framework within which a performance model of an object oriented (oo) system may be generated.
- the four layers of the input tools, namely Application, Workload, Execution Environment and System Scenario are explicitly modeled in the SES model produced by the translation process.
- the resultant SES model also makes use of predefined library components for Workload, Application and Execution Environment layer classes. These are SES representations of the library classes declared in the Rose source specifications for the Application and Execution Environment, and for the Workload objects declared in the Configurator System Scenario specification.
- the translation process creates a fifth component in the performance model, a notional Object Request Broker (ORB) layer.
- This component provides management of inter- object communication for distributed Application layer objects.
- the meta model itself is an object oriented approach to performance modeling and describes the system to be modeled as a collection of objects that interact by means of method calls.
- the meta model represents the change in state and behaviour, over time, of the objects as a result of method calls made on them. All model elements are considered as objects including those from the Workload and Execution Environment layers, such as users, platforms, networks etc.
- a PC might be seen as an object that has the method process, the behaviour of which is to delay for a period that is a function of the size of data requiring processing (a parameter passed to the method call) and the processing power of the PC object (an attribute of the object itself).
- the meta model representation of a platform object, pd , of class PC processing an amount of data, data_size, for an Application layer object, a, of class AA, is illustrated by the object interaction diagram of Figure .
- the user of a web browser application object might be seen as an object of class User which makes the method call page_request(URL) on an object of class WebBrowser.
- object of class User which makes the method call page_request(URL) on an object of class WebBrowser.
- These relationships are represented in the meta model with Workload/Application, Application/Execution Environment, and Execution Environment/Execution Environment objects interacting directly with one another.
- method calls between Application objects take place via the ORB layer which is seen to exist between the Application and Execution Environment layers. As mentioned previously, this layer is automatically added as part of the translation process in order to provide a mechanism to cope with the distributed nature of applications and application objects that are created and destroyed dynamically.
- the ORB layer consists a number of Object Adapter (OA) objects, one for each platform object, which are considered to "support" all of the Application layer objects on that platform.
- OA Object Adapter
- a method call between two Application layer objects is first made on the supporting OA for the calling object, which determines the location of the target object and associated platform.
- the method call transmit is then made by the OA on its associated platform, with the original method call name and its parameters the parameters of this new method call.
- the transmission of method calls between platforms uses the network graph defined in the source system scenario and a routing table derived from it (Note: the network graph referred to here is the entire collection of individual execution environment objects rather than any individual network object (e.g. a LAN, WAN, etc.) which are considered to be nodes of the graph, and the arcs the connections between network objects specified in the system scenario).
- the routing table specifies a route from each platform in the system scenario to every other platform in the system scenario. Routes are automatically generated by finding the path containing the minimum number of nodes. For paths of the same "length", the route first found is used.
- Figure shows a network graph and the routes generated for platform pea. Each route entry in the routing table consists of a list of platform and network object names. The first two names are the source and destination platform names whilst the remaining names are the names of the network objects (i.e. the graph nodes of Figure ) that constitute the route.
- the route from pea to pcb would be:
- the routing table is passed as a parameter to the SES model and is accessible by each platform object.
- a platform transmitting a method call uses unshared data to store the appropriate route declared in the routing table as a stack on the transaction. From the example of Figure and given the network graph of
- the route stack is used by the nodes in the network graph to direct the transmission transaction. At each node the top of the stack is popped and the new top used to select the arc taken to the next network node (see the section titled “System Scenario Generation” below and Figure ). Popping the top of the route stack of a transaction is the network functionality added to network objects as part of the translation process as described in the section titled “Execution Environment Generation” below.
- the meta model is realized using a multi-module structure, each module representing a different source model layer (and the additional ORB layer), and is driven by the system scenario module produced by the translation process.
- the system scenario component is captured in an SES Main Module, whilst the Workload, Application, ORB and Execution Environment layers are represented in SES Modules.
- the library classes are defined in a separate SES catalog referred to as the CMDStoSES library which categorizes them as belonging to either Workloads, Applications, ORBs, Platforms or Networks, each of which is captured in an SES Module.
- the CMDStoSES library also contains an SES Module that defines global declarations for the performance model.
- the translation process also generates references to library classes that have been defined in the CMDStoSES library catalog using SES Modules.
- the library classes are referenced using the Remote Modules:
- the SES system scenario is created using the corresponding system scenario description in the CMDS.
- the CMDS can be viewed as containing three major divisions of the information used by the translation process, as illustrated in Figure (Note: each of the system scenarios has a corresponding route derived from its topology.)
- Each of the System Scenarios within the CMDS is a list of the objects composing the given scenario.
- Each entry in the list contains values of object attributes and a link to the corresponding class description where appropriate (objects whose classes are defined in libraries do not contain these links, i.e. the links are only present for certain Application layer objects) .
- the objective of the translation process in creating the SES SystemScenario is similar to its purpose in the terms of the source tools in that it brings together the individual component definitions in the system (i.e. the objects) into a single configuration.
- the translation process creates modules for each of the layers and within these are SES performance models for each of the objects of that layer, as specified in the Configurator system scenario.
- these models exist as separate components and it is the function of the SES SystemScenario main module to link them together into single model. This is done by mirroring the system scenario configuration specified in the source tool using submodel reference nodes to refer to the appropriate components.
- a submodel reference node is created for each of the objects in the CMDS system scenario list belonging to the Workload and Execution Environment layers, and is named relevant to its CMDS source object (source object name may be prefixed by "RefTo ") .
- a submodel reference node is created to represent each OA object, thus one is created for each platform instance in the scenario list and named relevant to its associated platform ( "RefTo_” + platform name + "OA”).
- Application layer objects can be created and destroyed dynamically throughout the life cycle of a model, individual submodel reference nodes cannot be used to represent these objects as they cannot be created or destroyed during execution of ob
- submodel reference nodes are created for each class of object that will be on a given platform, i.e. not only those objects explicitly indicated in the CMDS system scenario, but also those that are dynamically created during the execution of the model. These nodes are named using the convention: name of class + " objects on " + name of platform.
- Connections using topology arcs, are made in both directions between Workload and Application layer nodes as indicated in the CMDS system scenario and between Execution Environment nodes. Similar direct connections are also made between Application layer nodes and their supporting platforms (again as indicated in the CMDS system scenario). Finally, the OA nodes are incorporated linking to their associated platform and the classes of objects which are supported by said platform (all of these connections are also made in both directions). Given the multiple arcs leading from nodes, the condition field of each arc is set. Recall that method calls between objects are represented by transactions, and the system scenario submodel represents the objects within the system. Thus the arc conditions use the name of the target object associated with a transaction.
- each reference node is labeled with its name followed by the name of the submodel node it references.
- Figure also contains two additional nodes; the first is a source node used to populate the model with an initial transaction, whilst the second is a reference to the model initialization node mentioned above.
- the submodel SystemScenariolnitialisation initializes the model by stimulating the creation of all those Application layer objects that initially populate the system as indicated by the CMDS system scenario.
- the SystemScenariolnitialisation submodel uses the single transaction generated by the Source node "WLSource" (see Figure (3.4)) to create additional transactions for each object to be created.
- Each new transaction represents a Constructor method call to create the new object and has as parameters for the attribute values of the object. These attribute values are supplied by a parameter file created as part of the translation process from the attribute values supplied in the CMDS system scenario.
- the constructor transactions are then routed to the appropriate OA, via the additional topology arcs from the SystemScenariolnitialisation submodel reference to each OA reference, and then on to the object class submodel reference.
- the SystemScenariolnitialisation submodel also uses the single "WLSource" transaction to stimulate the Workload layer objects. Similarly, additional transactions are spawned for each Workload layer object referenced in the SystemScenario submodel and proceed directly to them from the SystemScenariolnitialisation submodel reference.
- the Workload module contains SES models of all the Workload layer objects indicated in the CMDS system scenario list. Since all workload classes are defined to be library components, the SES models for them are contained within the CMDStoSES library module "Workloads" and referenced in the performance model catalog page by a remote module (see the section titled "The Translation”). Each workload class definition in the "Workloads" library is contained within a submodel type node, and individual instances of these are declared for use in the performance model generated by the translation process. Thus the Workload module generated by the translation process simply contents submodel instance nodes for each of the workload objects in the CMDS system scenario list. The name of each node is the same as its CMDS name, and its type is set to the submodel type workload model of the CMDStoSES library that corresponds to the library component class declared in the CMDS.
- the translation process generates a module "Workload” whose contents consist of a single submodel instance node “u 1 " which is an instance of the submodel type, "User".
- the submodel type "User” is declared in the CMDStoSES library module "Workloads" which is referenced using an SES remote module (note that the workload library module might also contain other workload types as indicated by the additional submodel type nodes "ClosedWL” and "OpenWL”).
- the instance node "u 1 " of node type "User directly maps to the object "u1 " whose class (or type) is User.
- the ORB layer of the meta model is comprised solely of Object Adapters (OA), of which there is one for each Execution Environment platform.
- OAs are the mechanism that enable Application layer objects to communicate with one another without any knowledge of how the system is distributed.
- OAs use and manage two tables of information that register which Application layer objects are supported by which OA, and which OAs are associated with which Execution
- Table 1 .1 Objects and ORBs
- Table 1 .2 ORBS and Platforms
- FIG. 1 A transaction entering the OA represents a method call made by an Application layer object.
- the OA first determines whether the calling object is local (i.e. on the same platform and thus has the same OA) or remote. This is done by comparing its name with that of the OA supporting the calling object (determined from the information stored in Table 1 .1 ). The appropriate arc, "Caller Local” or "Caller Remote”, can then be taken. Note the third arc is used during the initialization of the model to create the Application layer objects that initially populate the model since no objects exist to make these constructor calls.
- Constructor method calls proceed to the UpdateORBTable node where tables 1 .1 . and 1 .2 are updated and then to the ToLocalFromLocal which forwards the transaction onto the Application layer to create the object itself (note this route is also taken during the initialization process as mentioned in the preceding paragraph).
- Destructor calls proceed to the UpdateTables node where the entries for the appropriate object is removed from tables 1 .1 and 1 .2.
- the supplier or target object is determined to be either local or remote and the appropriate arc taken (i.e.
- the methods can be neither Constructor or Destructor thus it is only necessary to check that the supplier (or target object) is local.
- the method call is unpackaged in the ToLocalFromRemote node, as in Figure 2.2 of the translation process document before exiting. If the supplier is not local (i.e. the "Wrong ORB" arc is taken) then an error has occurred, and a notification is made.
- Execution Environment Generation As with the Workload and ORB layers (see sections titled “Workload Generation” and “ORB Generation” above) all objects from the Execution Environment layer are declared to be instances of library classes and as such have definitions in the SEStoCMDS library. However, when incorporating instances into the performance model generated by the translation process these class descriptions are augmented by additional SES constructs in order to interface with the meta model structure.
- Execution Environment Platform Jnstances within the source model are primarily to provide processing support for Application layer objects and as such the SEStoCMDS library definitions of platform types are simple data processing models.
- a platform plays additional roles and thus the translation process generates the required functionality.
- the additional roles performed by a platform in the meta model are concerned with network interfacing and statistics collection.
- a platform supports two functions for network interfacing; the transmission and receipt of messages. The first of these is as a result of a transmit method call on the platform object made by its associated OA object (see the Section titled "The
- Meta Model and Figure .
- a route from the platform to the destination platform is determined and associated with the transaction (recall that the transaction represents the method call).
- the second function again as the result of a transmit method, occurs when the transmission reaches the destination platform.
- the destination platform removes any remaining routing information, converts transmit method call parameters into the original method call (see the section titled "The Meta Model” and Figure ) and forwards it to its associated OA object.
- Statistics collection functionality is generated in order to interface with the statistics collection that is performed for the rest of the model and to enable library components to be created independently of any knowledge of how statistics are collected for the performance model.
- Network objects require less augmentation in order to interface with the meta model as they only perform the single role of modeling transmission across a network.
- the routing function is simply to indicate which is the next network object in the route specified between source and destination platform objects.
- the translation process generates a submodel definition node in the Execution Environment module for each Execution Environment layer object specified in the CMDS system scenario and named accordingly.
- a submodel instance node is also created for each Execution Environment layer object specified in the CMDS system scenario and named accordingly with the postfix "Processor".
- the type of the instance node is set to the platform or network model submodel type of the CMDStoSES library that corresponds to the library component class declared in the CMDS.
- a reference to the instance node is used within the definition node in order to incorporate the library definition of the data processing or network transmission (depending on whether a platform or network object is being modeled) model component.
- the nodes within Figure and Figure indicated to represent the library definitions are submodel reference nodes to the submodel instances of the library submodel types. Figure shows the Execution
- the platform object pd has been expanded to show the relationship between the submodel definition and instance nodes necessary to model a single platform, and their relationship with the library model submodel type.
- the CMDS to SES translation process For the Workload, ORB and Execution Environment layers, the CMDS to SES translation process generates a performance model object for each object in the system scenario list (see the sections titled "Workload Generation”, “ORB Generation” and “Execution Environment Generation” above) since dynamic creation of objects from these layers is not permitted.
- the meta model of the Application layer does supports the dynamic creation and destruction of objects. Since it is not possible to dynamically create and destroy SES graphical components, Application layer objects are created and represented by the translation process differently to that of objects from the other three layers.
- Application layer objects are represented using two components; an SES component which describes the logical behaviour of objects of that class which is derived from the Common Behaviour Notation (CBN) (above), and a dynamic data structure component which describes the identity and state of each object. Only one SES component is created for each class and so a single behavioural description is used by all objects of that class. An individual data structure is created for each object that is created and the structures for all objects of the same class are stored collectively in a single dynamic table, or Class Object Table (COT).
- COT Class Object Table
- the table is a simple linked list implemented in the C programming language enabling new objects to be added and deleted throughout the lifetime of the simulation.
- the structures used to store the identity and state of individual objects are also linked lists in order to provide generic support for objects of different classes which may have differing numbers of attributes.
- the class behaviour generated by the translation process is a graphical representation of the CBN description in the CMDS.
- the CBN description does not extend to concurrency control, and in order to manage concurrency control dynamic structures similar to those used to represent the state of an object are used in conjunction with the afore mentioned SES construct to correctly manage the dynamic nature of Application layer objects.
- These structures are similar to the COT but consist of concurrency control queues for each object of a given class and are referred to as Class Queue Tables (CQT).
- the source specification of an Application layer class indicates the number of concurrent threads that an object of that type may support (i.e. the number of method calls the object may process concurrently) . Any threads (or method calls) in excess of this are queued by the object until such time that one or more threads is freed (i.e. the number of active threads in the object is less than its maximum capacity).
- method calls are modeled by transactions, thus any transaction entering the class behaviour submodel as a result of an external method call (i.e. a method call made by another object) is queued if the object is currently busy. Since the class behaviour is a static graph but Application layer objects are dynamic, the transactions cannot be queued using an SES node for each object.
- the identity of queued transactions are recorded in the appropriate queue of the CQT, whilst the transaction itself is queued in a single blocking node at the beginning of the class behaviour graph.
- the object queues of the CQT preserve the order in which method calls are to be serviced by individual objects, whilst the blocking node provides the simulation mechanism to queue the transactions themselves (the blocking condition is always false).
- the table queue is used to identify the appropriate transaction and an interrupt node frees it from the blocking node.
- Figure shows how the concurrency of three objects a 1 , a2 and a3 of class A is handled. Method calls have been made on object a 1 using transactions T8, T4 y%3
- the method calls and their order of arrival can also be seen for objects a2 and a3.
- the order of arrival of method calls at the three objects collectively can be seen by the single queue of the blocking node in the behaviour model of class A. From the queues for each of the three objects, the correct transaction can be identified and freed from the collective blocking node queue when a given object becomes free.
- the class behaviour graph branches into segments representing the behaviour of each of the methods of the class.
- the ends of these branches then rejoin at an interrupt node to form a single flow of control before exiting the class (in the case of a method call made synchronous) or terminating in a sink node (in the case a method call made asynchronously).
- a transaction reaching the end of a method call will either leave the object (a synchronous call) or terminate (an asynchronous call) making a thread available.
- the interrupt node at the end of the class methods determines which transaction to assign this thread to by use of the object's name and the CQT (see Figure ) and interrupts it from the blocking node at the beginning of the class behaviour graph.
- Parameter passing is supported by using a dynamic list that is linked to a transaction by an ushared variable. Parameters always refer to objects and may be passed by reference or value, with the size of the parameter set appropriately to represent value or reference. Passing a parameter by value requires a copy of the named object to be made and passed as the parameter. This is done by the SES construct representing the calling method (see the sections titled “Concurrency Control” and the section titled “Method Behaviour") which copies the object in the COT (see the section titled "Application Generation”) which assigns the new object a unique name. This new name is then passed as the parameter value.
- the localise parameters node performs the task of setting the platform attribute of those parameters passed by value to the current platform. (Note: For those methods that do not have parameters passed by value, there is no need for this functionality, and for implementation reasons, the node is replaced by a branch node.)
- a delete parameters node appears at the end of each method and removes those parameters passed by value from their respective object tables. This node also performs the task of returning synchronous method calls when no return method is explicitly declared (see the section titled "Method Call (Return)"). Deleting parameters passed by value is also performed by return method call constructs (see the section titled "Method Call (Return)") since the return method call path bypasses the default delete parameters node of Figure .
- the behaviour of a class method is described in the CMDS using a set of CBN constructs. These constructs have parallels in the SES class behaviour model generated by the translation process.
- the translation process generates the behaviour of a method by recursively iterating over the CBN description in the CMDS and generating the corresponding SES description. Each of these descriptions are linked by topology arcs as they are created.
- the CBN constructs and their SES equivalents are described below.
- SYNC resultjiame : target. method(parameters)
- the translation process uses fork and join nodes to model CBN synchronous method calls.
- a single child transaction is spawned and represents the method call whilst the parent proceeds directly to the join node and waits for the return of the child transaction (the return of the synchronous call).
- the child transaction has unshared variables that contain target and parameter information.
- the child transaction has two possible routes when leaving the fork node; the first leads to the exit node of the class (see also Figure ) and is taken when the target is not
- Synchronous calls return objects by value or reference as their result.
- the name of the object returned is assigned to result name which may be an attribute of the calling object (and as such stored in the COT - see the section titled "Application Generation") or a parameter of the method within which the method call was made (in which case the return value is assigned in the parameter list of the parent transaction).
- method(parameters) Method calls made asynchronously generate a new thread independent of the originating thread.
- the translation process uses a split node to represent CBN asynchronous method calls which spawns a single sibling transaction for the new thread.
- the sibling method call transaction has calling and parameter information stored in unshared variables and as with synchronous calls can take one of two possible routes from the split node. One route again leads to the class exit node and is taken if the target object is not THIS. Given that an asynchronous call creates a new thread, the new sibling transaction cannot bypass the concurrency control of an object as in a method call made synchronously. Hence, the second path leads to the start of the class behaviour, before the concurrency control.
- the return method call is translated into a user node which simply switches the caller and target unshared variables of the calling transaction, and sets the method call name unshared variable to return.
- the return node also sets the return parameter to that value specified by the CBN statement.
- the CBN description of a method may not explicitly specify a return method call but may still be called synchronously. Thus a default return is declared for each method call, and is added to the parameter management node at the end of each method (see the section titled "Parameter Passing" and Figure ). A default return does not return any value, it simply returns the calling transaction to the source object.
- conditional clause for a CBN Probabilistic Condition is a simple probability value, in this case one of values a, b or c.
- the translation process simply generates the SES representations of the CBN statements to be executed which are connected in parallel from the condition start branch node.
- the probability selection field of the arc specification form is set to the probability value in the corresponding CBN condition statement. Exit arcs from the end of the executed statements are made in parallel to the condition end branch node.
- the guard statement is implemented using a form of semaphore mechanism.
- Each method of an object has an associated counter which is incremented each time the method is called. Guarding on the method will block if the counter is less than or equal to zero. If the counter is greater than zero, the guard will not block and the counter will be decremented by one.
- each object method has a queue which records the identity of all those transactions blocked as a result of guarding on it. A blocked transaction is freed when the method be guarding on has been called and completed its execution. When a transaction is blocked as a result of guarding on a method, it releases its thread of control, and interrupts the appropriate transaction held in the concurrency control node.
- Testing the counter and interrupting the concurrency control node is performed by a super node at the start of the guard behaviour. If the transaction is blocked by the guard, it proceeds to the guard block node, or the end of the guard behaviour otherwise.
- the guard behaviour is shown in Figure .
- the parallel CBN construct may be supported by the translation process.
- the iteration CBN construct may be supported by the translation process.
- workload may be defined by a series of usage models.
- Each usage model relates to a particular application object which can accept external stimuli. These stimuli come in the form of events which change the state of the object according to its state chart.
- Each type of event has a distribution determining the inter-arrival times between events of that type.
- Usage models may cover more than one type of event although each even type is independent and executes a single step at the workload level.
- a submodel is created for each externally stimulated object in the workload module.
- the submodel has a source node for each type of event which has an inter-arrival time given by the corresponding distribution.
- the resulting source streams for each type of event all join to a node which references the object in question.
- Figure 41 shows an example workload submodel for a client object application submodel.
- the source nodes, request source _0 and refresh 1 are so Annex to CMDS to SES Translation Process
- the statistics collected can be categorised as method call duration and platform and network utilisation/response. Due to the dynamic nature of the objects, collection and identification of statistics for individual objects within the meta model are preferably determined, for the duration of method calls, by time stamping each method call transaction when it is created, and comparing this to the time when it returns to its join node, in the case of a synchronous call (see Section 3.5.1 .3.1 ), or when it reaches a sink node, in the case of an asynchronous call (see Section 3.5.1 .3.2 and Figure 3.1 1 ).
- Platform and network utilisation/response statistics are collected within the platform and network definitions themselves, as illustrated in figures 3.7 and 3.8. Each transaction is time stamped in a user node before it enters the library definition node. This time can then be compared in a second user node with the current time after it has left the library definition node in order to determine response and utilisation statistics.
- each transaction that is transmitted between platforms has routing information associated with it in the form of a stack each element of which is a node on the route.
- the stack of Figure 2.4 also includes the name of the destination platform which is at the base of the stack, thus Figure 2.4 should be amended as shown in 1 .1 .
- the network transmission functionality in the user node of Figure 3.7 generates the appropriate route stack for a transaction to be transmitted between two platforms. To represent transmission of a transaction, the top of the stack is used to determine the next node in the route. At each node, the top of the stack is removed. In this way the transaction traverses a route from source to destination platform.
- the network transmission functionality of Figure 3.8 performs the pop operation on the transaction route stack. A similar operation is also performed by the network reception functionality of a platform as illustrated in Figure 3.7. This functionality may be generate within the C programming language and within SES associated with a form.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU73466/98A AU7346698A (en) | 1997-05-21 | 1998-05-21 | Operational analysis of software-controlled systems |
EP98920682A EP0983547A2 (en) | 1997-05-21 | 1998-05-21 | Operational analysis of software-controlled systems |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97303472.1 | 1997-05-21 | ||
EP97303472 | 1997-05-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1998053399A2 true WO1998053399A2 (en) | 1998-11-26 |
WO1998053399A3 WO1998053399A3 (en) | 1999-01-14 |
Family
ID=8229337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB1998/001367 WO1998053399A2 (en) | 1997-05-21 | 1998-05-21 | Operational analysis of software-controlled systems |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0983547A2 (en) |
AU (1) | AU7346698A (en) |
WO (1) | WO1998053399A2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037212A2 (en) * | 2000-10-31 | 2002-05-10 | Loudcloud, Inc. | A data model for use in the automatic provisioning of central data storage devices |
GB2380004A (en) * | 2001-07-27 | 2003-03-26 | Virtual Access Ireland Ltd | A configuration and management development system for a netwok of devices |
WO2003069848A1 (en) * | 2002-01-22 | 2003-08-21 | Siemens Medical Solutions Health Services Corporation | System for estimating network traffic characteristics of executable software applications |
WO2004012110A1 (en) * | 2002-07-31 | 2004-02-05 | Avolution Pty Ltd | A method and apparatus for the analysis of complex systems |
FR2845847A1 (en) * | 2002-10-15 | 2004-04-16 | France Telecom | Data volume prediction method for the purposes of design and management of a data network, especially an IP client server network, wherein usage data and raw traffic volume data are combined with software application models |
US7457864B2 (en) | 2002-11-27 | 2008-11-25 | International Business Machines Corporation | System and method for managing the performance of a computer system based on operational characteristics of the system components |
US7712137B2 (en) | 2006-02-27 | 2010-05-04 | Microsoft Corporation | Configuring and organizing server security information |
US7818788B2 (en) | 2006-02-14 | 2010-10-19 | Microsoft Corporation | Web application security frame |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041451A1 (en) * | 1995-06-07 | 1996-12-19 | Grc International, Inc. | Automated network simulation and optimization system |
-
1998
- 1998-05-21 EP EP98920682A patent/EP0983547A2/en not_active Withdrawn
- 1998-05-21 WO PCT/GB1998/001367 patent/WO1998053399A2/en not_active Application Discontinuation
- 1998-05-21 AU AU73466/98A patent/AU7346698A/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996041451A1 (en) * | 1995-06-07 | 1996-12-19 | Grc International, Inc. | Automated network simulation and optimization system |
Non-Patent Citations (3)
Title |
---|
BOLOIX G: "SYSTEM EVALUATION AND QUALITY IMPROVEMENT" JOURNAL OF SYSTEMS & SOFTWARE, vol. 36, no. 3, March 1997, pages 297-311, XP002052323 * |
DOUMEINGTS G ET AL: "Methodologies for designing CIM systems: A survey" COMPUTERS IN INDUSTRY, vol. 25, no. 3, March 1995, page 263-280 XP004013106 * |
ETKIN J ET AL: "DEVELOPMENT LIFE CYCLE OF COMPUTER NETWORKS: THE EXECUTABLE MODEL APPROACH" IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, vol. 15, no. 9, September 1989, pages 1078-1089, XP000053085 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037212A2 (en) * | 2000-10-31 | 2002-05-10 | Loudcloud, Inc. | A data model for use in the automatic provisioning of central data storage devices |
WO2002037212A3 (en) * | 2000-10-31 | 2003-07-24 | Loudcloud Inc | A data model for use in the automatic provisioning of central data storage devices |
GB2380004A (en) * | 2001-07-27 | 2003-03-26 | Virtual Access Ireland Ltd | A configuration and management development system for a netwok of devices |
US7467372B2 (en) | 2001-07-27 | 2008-12-16 | Virtual Access Technology Limited | Device configuration and management development system |
WO2003069848A1 (en) * | 2002-01-22 | 2003-08-21 | Siemens Medical Solutions Health Services Corporation | System for estimating network traffic characteristics of executable software applications |
US7984126B2 (en) | 2002-01-22 | 2011-07-19 | Siemens Medical Solutions Usa, Inc. | Executable application network impact and load characteristic estimation system |
WO2004012110A1 (en) * | 2002-07-31 | 2004-02-05 | Avolution Pty Ltd | A method and apparatus for the analysis of complex systems |
FR2845847A1 (en) * | 2002-10-15 | 2004-04-16 | France Telecom | Data volume prediction method for the purposes of design and management of a data network, especially an IP client server network, wherein usage data and raw traffic volume data are combined with software application models |
US7457864B2 (en) | 2002-11-27 | 2008-11-25 | International Business Machines Corporation | System and method for managing the performance of a computer system based on operational characteristics of the system components |
US7818788B2 (en) | 2006-02-14 | 2010-10-19 | Microsoft Corporation | Web application security frame |
US7712137B2 (en) | 2006-02-27 | 2010-05-04 | Microsoft Corporation | Configuring and organizing server security information |
Also Published As
Publication number | Publication date |
---|---|
AU7346698A (en) | 1998-12-11 |
WO1998053399A3 (en) | 1999-01-14 |
EP0983547A2 (en) | 2000-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5632031A (en) | Method and means for encoding storing and retrieving hierarchical data processing information for a computer system | |
Monroe et al. | Architectural styles, design patterns, and objects | |
US5778223A (en) | Dictionary for encoding and retrieving hierarchical data processing information for a computer system | |
US5721895A (en) | Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system | |
Riva et al. | Combining static and dynamic views for architecture reconstruction | |
Hrischuk et al. | Automatic generation of a software performance model using an object-oriented prototype | |
US10666744B2 (en) | Managing discovery and selection of service interface specifications | |
Sheers | Hp openview event correlation services | |
Giese | Contract-based component system design | |
EP0983547A2 (en) | Operational analysis of software-controlled systems | |
Atkins et al. | Experience with a Domain Specific Language for Form-based Services. | |
Baldassari et al. | PROTOB a hierarchical object-oriented CASE tool for distributed systems | |
US5687365A (en) | System and method for creating a data dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system | |
Lutter et al. | Using VHDL for simulation of SDL specifications | |
Nottegar et al. | Performance evaluation of mobile processes via abstract machines | |
Balsamo et al. | Software performance: state of the art and perspectives | |
Rao et al. | Modeling and simulation of active networks | |
Pahl | Components, contracts, and connectors for the unified modelling language UML | |
Sarikaya et al. | Estelle-based test generation tool | |
Holvoet et al. | Using petri nets for specifying active objects and generative communication | |
Chow et al. | Prospec: An interactive programming environment for designing and verifying communication protocols | |
Pirmez et al. | A methodology for the implementation of protocols in hardware from a formal description | |
Van der Hoeven et al. | A hardware design system based on object-oriented principles | |
Behnke et al. | Development of broadband ISDN telecommunication services using SDL’92, ASN. 1 and automatic code generation | |
Boulifa et al. | Finite model generation for distributed Java programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1998920682 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 09423429 Country of ref document: US |
|
NENP | Non-entry into the national phase in: |
Ref country code: JP Ref document number: 1998550087 Format of ref document f/p: F |
|
WWP | Wipo information: published in national office |
Ref document number: 1998920682 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
NENP | Non-entry into the national phase in: |
Ref country code: CA |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1998920682 Country of ref document: EP |