Skip to content
Snippets Groups Projects
Event_Sharing_in_Composite_Events.mp 4.81 KiB
/*┬────────────────────────────────────────────────────────┐
│*│ ┌─[ Title and Authors ]──────────────────────────────┐ │
│*│ │ Event Sharing in Composite Events   		 		 │ │
│*│ │  Created by Kristin Giammarco and Mike Collins	 │ │
│*│ │  2021-11-11					 					 │ │
│*│ └────────────────────────────────────────────────────┘ │
│*│                                                        │
│*│ ┌─[ Purpose ]────────────────────────────────────────┐ │
│*│ │ To illustrate how to share events within composite │ │
│*│ │ events.                   			 			 │ │
│*│ └────────────────────────────────────────────────────┘ │
│*│							   							   │
│*│ ┌─[ Description ]────────────────────────────────────┐ │
│*│ │ This model shows the use of COORDINATE statements  │ │
│*│ │ to perform event sharing inside of composite 	 	 │ │ 
│*│ │ events.  This operation uses nested COORDINATE  	 │ │ 
│*│ │ statements to navigate the event hierarchy. 	 	 │ │
│*│ └────────────────────────────────────────────────────┘ │
│*│                                                        │
│*│ ┌─[ References ]─────────────────────────────────────┐ │
│*│ │ "Example 3: Data Flow" from Auguston, M. "Monterey │ │
│*│ │ Phoenix System and Software Architecture and       │ │
│*│ │ Workflow Modeling Language Manual" (Version 4).    │ │
│*│ │ 2020. Available online:                            │ │
│*│ │ https://wiki.nps.edu/display/MP/Documentation 	 │ │
│*│ │                                                    │ │
│*│ │ Example02_DataFlow_EventSharing.  Available online:│ │
│*│ │ https://nps.edu/mp/models > Language_concepts      │ │
│*│ └────────────────────────────────────────────────────┘ │
│*│                                                        │
│*│ ┌─[ Search Terms ]───────────────────────────────────┐ │
│*│ │ behavior, data flow; event sharing                 │ │
│*│ └────────────────────────────────────────────────────┘ │
│*│                                                        │
│*│ ┌─[ Instructions ]───────────────────────────────────┐ │
│*│ │ Run for Scopes 1 and up.                           │ │
│*│ ├─[ Run Statistics ]─────────────────────────────────┤ │
│*│ │ Scope 1: 3 traces in less than 1 sec.              │ │
│*│ │ Scope 2: 28 traces in less than 1 sec.             │ │
│*│ │ Scope 3: 165 traces in less than 1 sec.            │ │
│*│ └────────────────────────────────────────────────────┘ │
└*┴───────────────────────────────────────────────────────*/

SCHEMA Event_Sharing_in_Composite_Events

ROOT System: { Writer, File, Reader };
 
	Writer: (* ( working | writing ) *);
 
	/* writing events should precede reading */
	File:   (+ writing +) (* reading *);


/*	Share writing events within Writer and File 
	composite events*/
COORDINATE 	$a: Writer FROM System,
			$b: File  FROM System 
	DO	COORDINATE 	$c: writing FROM $a,
               		$d: writing FROM $b 
    	DO SHARE $c $d; OD;
 	OD;

 
	Reader: (* ( reading | working ) *);

 
/*	Share reading events within Reader and File 
	composite events*/
COORDINATE 	$a: Reader FROM System,
			$b: File  FROM System 
	DO	COORDINATE 	$c: reading FROM $a,
               		$d: reading FROM $b 
    	DO SHARE $c $d; OD;
 	OD;