2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Ausblick<br />
RIAs zeichnen sich unter anderem dadurch aus, dass sie durch asynchrone Kommunikation<br />
Ladezeiten verkürzen und dem Benutzer das Gefühl vermitteln, er arbeite mit einer Desktop-<br />
Anwendung. Auf den letzten Seiten wurde eine allgemeine Möglichkeit zur Modellierung<br />
asynchroner Requests vorgestellt. Damit ist ein Ausgangspunkt für weitere Überlegungen in<br />
diese Richtung gegeben – Überlegungen, die u.a. die Präzisierung und Ausweitung der<br />
vorgestellten Idee betreffen. Eine detaillierte Ausarbeitung kann im Rahmen dieser Arbeit<br />
nicht erfolgen, deshalb sollen sie an dieser Stelle nur anskizziert werden.<br />
• In einigen Fällen kann sich die Auszeichnung eines Prozesslinks als asynchronous<br />
als zu grobkörnig erweisen. Prozessklassen dienen im Navigationsmodell als<br />
Einstiegspunkte in einen Geschäftsprozess, der eine beliebig komplexe Struktur<br />
aufweisen und unter Umständen eine oder mehrere UserActions enthalten kann, d.h.<br />
Stellen, an denen der Kontrollfluss des Prozesses zum Benutzer zurückkehrt. Die<br />
Realisierung solcher Geschäftsprozesse wird dann notwendigerweise mehrere Requests<br />
an den Server beinhalten – das Ende jeder UserAction impliziert je einen Request. In<br />
einer solchen Situation wird mit der hier vorgeschlagenen Modellierung nicht eindeutig<br />
festgelegt, welche dieser Anfragen asynchron durchgeführt werden sollen. Auch der<br />
gerade diskutierte Anwendungsfall ist in dieser Hinsicht nicht ganz eindeutig. Soll das<br />
Präsentationselement, welches mit der Login-User Action verknüpft ist (also das Login-<br />
Formular), asynchron geladen werden, oder die Verarbeitung der Formulardaten<br />
asynchron erfolgen? In diesem konkreten Fall ergibt sich aus dem Kontext eindeutig,<br />
dass letzteres gemeint sein muss, denn das Login-Formular gehört zum Seitenlayout des<br />
PVS, ist also für nicht-angemeldete Benutzer stets verfügbar. Eine Anweisung, zu Beginn<br />
des Login-Prozesses das Formular dynamisch in die Seite zu laden, würde somit keinen<br />
Sinn ergeben.<br />
In anderen Fällen wird sich diese Unbestimmtheit allerdings nicht über den Kontext<br />
klären lassen. Deshalb ist zu überlegen, ob eine Spezifikation des Request-Typs nicht<br />
(auch) auf feingranularer Ebene in der Aktivität erfolgen muss, die den Workflow des<br />
Prozesses beschreibt – z.B. durch eine geeignete Auszeichnung von Kontrollflusskanten<br />
oder «SystemAction»-Aktionen.<br />
• Übergänge im Navigationsmodell implizieren nicht nur dann Server-Requests, wenn<br />
Prozessklassen im Spiel sind – auch ein Übergang zischen zwei Navigationseinheiten,<br />
die im Modell als gewöhnliche Navigationsklassen repräsentiert sind, bedarf in der Regel<br />
einer Anfrage an den Server. Damit stellt sich auch bei solchen Transitionen die Frage, ob<br />
asynchron oder synchron mit dem Server kommuniziert werden soll. Aus diesem Grund<br />
ist zu überlegen, ob das asynchronous-Metaattribut im Profil nicht direkt an das<br />
Modellelement «link» (der Oberklasse von «navigationLink» und<br />
«processLink») vergeben werden sollte.<br />
• Aktionen, die in einer Prozessaktivität die Aktualisierung der <strong>Web</strong>-UI beschreiben,<br />
interagieren natürlicherweise mit der Präsentationsschicht. Es ist allerdings nicht klar, ob<br />
eine solche Abhängigkeit eines Prozesses von der Präsentationsschicht in der <strong>UWE</strong>-<br />
Architektur erwünscht ist. Immerhin ist auf Metaebene das <strong>UWE</strong>-Prozesspaket nicht vom<br />
Präsentationspaket abhängig. Möglicherweise muss deshalb ein geeigneterer Platz für die<br />
Modellierung der Oberflächenaktualisierung gefunden werden, die am Ende der<br />
Bearbeitung eines asynchronen Requests durchzuführen ist.<br />
73