Please disable Adblockers and enable JavaScript for domain CEWebS.cs.univie.ac.at! We have NO ADS, but they may interfere with some of our course material.
[Info]
Korrelation Logik
• Idee
Idee
Die Idee der Korrelation ist, fuer Nachrichten die von aussen an ein Prozessmanagement System (PMS) geschickt werden:
- Instanzen die auf diese Nachrichten warten zuzuteilen.
- Fuer bestimmte Messages neue Instanzen zu erzeugen.
Korrelation existiert weil
- Es aus organisatorischer Sicht sinnvoll ist die Information ueber existierende Prozessinstanzen nicht nach aussen preiszugeben.
- Es aus sicherheitstechnischer Sicht besser ist, keine direkte Interaktion mit Instanzen zu erlauben, sondern alle Messages an zentraler Stelle zu ueberpruefen und zu filtern.
- Es aus technischer und organisatorischer Sicht nicht gut ist Prozessinstanzen mit technischen Mitteln (Instance Identifier) zu addressieren, sondern mit Konzepten die aus der Business Logik des Prozesses abgeleitet sind. I.e. eine Message gehoert zu einer bestimmten Instanz, wenn im INHALT der Message z.b. die Auftragssnummer enthalten ist, die in dieser Prozessinstanz bearbeitet wird.
Gehen sie bei der Erstellung des correlator.php wie folgt vor:
- erstellen sie ein correlator.php das jeglichen input (wenn sie handleREST.php verwenden) in ein LOG speichert (also PUT/GET/POST/DELETE, alle parameter und alle headers).
- registrieren sie den correlator.php
- warten sie ab bis sie ein paar Messages bekommen
- Sie sollten alle 30 minuten (inklusive einer 3 stunden pause um 5-8 Uhr in der frueh), eine message bekommen
- die messages (1) die sie bekommen sollten jene sein, die eine Bestellung ausloesen
- ein POST auf http://cpee.org:9296 mit dem parameter xml der das Prozessmodell enthaelt, erstellt eine prozessinstanz (2)
- der Prozess laeuft dann automatisch ab, und sie bekommen auf IHR correlation.php eine correlation message (2), also eine nachricht dass eine bestimmte instanz auf eine bestimmte art von nachricht wartet.
- Mit hilfe dieser Korrelationregel kann die Korrelation engine entscheiden ob bestimmte nachfolgende messages die von aussen kommen, einer bestimmten Instanz zugeordnet werden sollen.
- Die Korrelationregel enthaelt typischerweise:
- ID der Instanz (endpunkt wo man die message hinputten muss) - WENN EINE MESSAGE KOMMT, WOHIN MUSS DIE?
- Kriterien - WENN EINE MESSAGE KOMMT, WIE FINDE ICH RAUS WOHIN SIE GEHOERT (z.b. muss eine bestimmte Auftragsnummer enthalten)
- Wenn eine Regel erfuellt wurde, kann sie geloescht werden (correlator.php muss sie sich nicht mehr merken)
- Der finale Schritt ist das eintreffen der Forschrittsnachrichten (4)
- Diese werden zugeordnet (siehe oben)
Summary fuer correlator.php
- loggt alle message
- instantiation message fuehren zu neuen prozessinstanzen
- correlation messages merkt sich der correlator.php in form von regeln (muessen eventuell in ein File persistiert werden)
- fortschrittsmessage werden anhand der regeln zugeordnet
Wie poste ich ein File
<?php
$eol = "\r\n";
$mime_boundary=md5(time());
// $data .= '--' . $mime_boundary . $eol;
// $data .= 'Content-Disposition: form-data; name="inputfeld"' . $eol . $eol;
// $data .= "Meine Eingage" . $eol;
$data = '';
$data .= '--' . $mime_boundary . $eol;
$data .= 'Content-Disposition: form-data; name="xml"; filename="filename.xml"' . $eol;
$data .= 'Content-Type: text/xml' . $eol;
$data .= 'Content-Transfer-Encoding: base64' . $eol . $eol;
$data .= chunk_split(base64_encode("<myxml>aaaa</myxml>")) . $eol; // mit file_get_contents von der platte holen
$data .= "--" . $mime_boundary . "--" . $eol . $eol; // zwei eol um server zu zeigen dass ich nix mehr senden will!
$opts = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary=' . $mime_boundary . $eol,
'content' => $data
));
header('content-type: text/plain');
$context = stream_context_create($opts);
$result = file_get_contents('http://cpee.org:9296',false,$context);
print_r($result);
?>
Letzte Änderung: 12.06.2015, 11:33 | 481 Worte