Effiziente Anfrageverarbeitung mit AIAB

Es sind die beiden Windows-Services, welche die Implementierung des AIAB kompliziert machen. Die Installation von Windows-Services ist noch immer ziemlich komplex und daher für einfache Projekte nicht ratsam. Trotz alledem eignen sich diese Services hervorragend, um Dienstanfragen durchzuführen und deren Beantwortung zu überwachen, so dass diese Funktionalität nicht in der jeweiligen Anwendung ausgeführt werden muss. Bei der Nutzung von StartFunction und EndFunction hingegen bleibt diese Funktionalität in der Anwendung, so dass man selber für deren Programmierung sorgen muss.

Die Klassen

Die vier als Teil des Anwendungsblock-Downloads für die Integration im Beispielcode enthaltenen Klassen werden hier von dem benutzerdefinierten Service-Agenten verwendet. Bei diesem Agenten handelt es sich um die Middleware-Klasse, die auf Ebene der Anwendungsschicht sämtliche Aufrufe übernimmt. In der im Download enthaltenen Beispielanwendung gibt der Code für den CustomizedServiceAgent (CustomizedSA.cs) Aufschluss über die Verwendung der Klassen Command und Dispatcher.

Der Agent implementiert IServiceAgent und ruft, kurz gesagt, die Web Services auf, wobei ein Eintrag bezüglich der Anfrage in der Datenbank gespeichert wird. Alles in allem wirklich ein einfaches und übersichtliches System.

Anwendungsstrategie

Trotz des einfachen Aufbaus dieses Systems ist seine Implementierung etwas mühselig. Für ein Durchschnittsprojekt ist es daher nicht zu empfehlen. Dieser Block ist vermutlich am besten wie von Microsoft vorgesehen einsetzbar, nämlich als Teil einer Implementierung, die Caching Blocks oder Aggregation Blocks umfasst.

Es gibt bestimmte Situationen, in denen sich dieser Block als nützlich erweisen könnte. Beispielsweise würde er bei einem umfangreichen Programm zur Entwicklung und Einrichtung von Geschäftsprozessen – eine Art BizTalk – viele Stunden mühseligen Codierens einsparen. Bei einem Projekt, das dagegen nur einen asynchronen Aufruf eines einzelnen Services benötigt, dürfte die von System.Web.Services übernommene integrierte Start- und Beenden-Funktion ausreichen. Die Status-Daten für diese Implementierung werden im lokalen Projektspeicher erfasst, wogegen dieses System den Status der Anfragen in einer für andere Systeme zugänglichen SQL-Server-Datenbank speichert. Dies bedeutet mehr Leistung, aber auch eine höhere Komplexität.

Schlussbemerkung

Obwohl der AIAB vermutlich für den Alltagsgebrauch eher selten benötigt wird, eignet er sich bestens für die Patterns and Practices-Anwendungen von Microsoft. Der bereitgestellte Beispielcode sowie die Datenbank und der statische Strukturaufbau zeigen anschaulich, wie man „richtig“ für .NET programmiert.

Vor allem muss man sich darüber im Klaren sein, welche Vorgänge bei der Nutzung der Caching Blocks oder Aggregation Blocks im Hintergrund ablaufen. Wenn man Anpassungen vornehmen oder auch nur kompilieren und implementieren will, ist ein gründliches Verständnis dieses Systems eine große Hilfe bei der Lösung potenzieller Probleme.

Ob man nun also den Block als solchen verwendet, weitere Blöcke mit einer AIAB-Integration implementiert oder lediglich asynchrone Abläufe untersucht – der Asynchronous Invocation Application Block bietet eine Vielzahl an Funktionalitäten und Quellcode.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Effiziente Anfrageverarbeitung mit AIAB

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *