Softwareentwicklung im Zeitalter der "As a Service"-Plattformen, Teil 2

Entwickler müssen sich bei "As a Service"-Projekten nicht mehr um Infrastruktur, Software und Verteilung der Ergebnisse kümmern. Ein beispielhafter Entwicklungsprozess und ein Ausblick auf zukünftige denkbare Tendenzen verdeutlichen ihre Möglichkeiten.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 20 Min.
Von
  • Andreas Holubek
  • Georg Spengler
Inhaltsverzeichnis

Ein erster Artikel beschäftigte sich mit den Hintergründen und Grundlagen der Entwicklung auf Plattformen. Es ging um die Betrachtung der Eigenschaften, Besonderheiten und auch das Verhältnis von Kosten und Nutzen. Im nun folgenden zweiten Artikel stellen die Autoren einen beispielhaften Anwendungsentwicklungsprozess vor und geben einen Ausblick auf zukünftige denkbare Tendenzen.

Beispielhaft sei die Entwicklung eines Portals auf der Force.com-Plattform mit Anbindung an die Amazon Web Services betrachtet, ohne hiermit eine Wertung oder Präferenz gegenüber den beiden genannten Plattformen zum Ausdruck bringen zu wollen. Die beschriebenen Verfahren lassen sich – wie an späterer Stelle noch genauer ausgeführt – mit geringfügigen Modifikationen auch auf andere Plattformen übertragen, da die Implementierung im Kern keine Features nutzt, die exklusiv für eines der beiden gewählten Produkte sind.

Vorgestellt sei die fiktive "Film Tune AG", die in Europa führend in der Produktion von Geräten zur Film- und Fernsehproduktion ist. Als CRM-System setzt die Firma an ihren Standorten Salesforce.com ein und möchte nun auf der Basis für ihre Kunden ein exklusives Portal zum fachlichen Erfahrungsaustausch schaffen, das ähnlich einem sozialen Netz funktioniert. Die Nutzung des Portals wird für Kunden zwar kostenpflichtig sein, soll dafür aber auch den Austausch ganzer Filmsequenzen im Rahmen fachlicher Diskussionen zulassen. Da Salesforce.com zwar gut geeignet für die Verwaltung der Benutzer und ihrer Rechte ist, bei der Verarbeitung der großen Filmsequenzen jedoch schwächelt, zieht die Film Tune AG Amazons Simple Storage Services (S3) für diesen Teilaspekt hinzu. Für die Integration der beiden Plattformen in demselben Projekt ist die Einbindung einer Flash Komponente in die Force.com-Anwendungsplattform vorgesehen. Flash wiederum soll dann durch Austausch von SOAP-Nachrichten mit S3 kommunizieren sowie die Darstellung und Verarbeitung der Filmsequenzen übernehmen.

Ersteres stellt eine öffentlich zugängliche Website dar, über die sich Anmeldung und Login durchführen lassen. Auf der Salesforce.com-Instanz der Film Tune AG aufbauend bestehen die ersten Schritte in Richtung Portal darin, "Force.com-Sites" und "Customer-Portal" zu aktivieren (siehe Abb. 1).

Nach Definition der Parameter der "Force.com-Sites" und des "Customer-Portal" lässt sich ein Profil für Benutzer der Plattform anlegen (Abb. 1).

Das mit den "force.com-Sites" verknüpfte "Customer-Portal" enthält die Inhalte, die nur angemeldeten Benutzern zur Verfügung stehen. Darauf wird für Plattformbenutzer ein eigenes Profil definiert, das die Zugriffsrechte der Benutzergruppe auf die Daten regelt. Die weitere Entwicklung auf Force.com folgt dem MVC-Pattern (Model View Controller). Der Entwicklungsprozess stützt sich dabei zunächst auf Datenmodell und Benutzeroberfläche, deren Entwurf in einem iterativen Prozess die Anforderungen des Projekts umsetzt. Die Anwendungslogik folgt hauptsächlich den Anforderungen, die sich aus der Benutzeroberfläche ergeben. Da die Vorgehensweise die Funktionen nach und nach bereitstellt, ermöglicht sie die Präsentation eines Prototyps innerhalb relativ kurzer Zeit.

Das Datenmodell definiert man entweder über die Set-up-Funktion der Salesforce.com-Weboberfläche oder unter Verwendung der Metadaten-API. Da die Plattform der Film Tune AG es registrierten Benutzern erlauben soll, andere Benutzer im gegenseitigen Einvernehmen zu Kontakten zu erklären und auf der Basis einen Nachrichtenaustausch innerhalb des Portals bereitzustellen, sind auf der Datenbank einige spezielle Tabellen – "Custom Objects" im Salesforce.com-Jargon – zu definieren, etwa User_Contact__c und Message__c. Dabei sollen User_Contact__c-Datensätze immer paarweise existieren, wobei der einzelne Satz die folgende Beziehung darstellt: "Der Datensatzeigentümer kennt Target_User__c als Kontakt und gewährt Target_User__c die spezifizierten Zugriffsrechte auf sein Benutzerprofil" (vgl. Abb. 2). Ein Message__c-Datensatz speichert eine einzelne Nachricht zwischen zwei Portalbenutzern.

Ansicht der Datenstruktur der beiden Custom Objects im Salesforce.com-Setup (Abb. 2)

Zur Gestaltung der Benutzeroberfläche mit dem UI-Werkzeug Visualforce und der zugehörigen Controller in der Apex-Programmiersprache nutzt man die sich in Eclipse integrierende Force.com-IDE. Ein geschickter Einsatz der Visualforce-Templates und -Komponenten und die Manipulation der Metadaten des Systems über die IDE halten die Implementierung auf Basis der Force.com-Plattform flexibel, was sowohl Änderungen am Datenmodell als auch an der Präsentationsschicht ohne allzu großen Entwicklungsaufwand ermöglichen.

Quelltext-Ausschnitt zu einer VisualForce-Benutzeroberfläche: Die darzustellende Seite (Mitte) verwendet eine Vorlage (oben) und bindet eine Komponente (unten) ein, deren Logik in einem eigenen Controller untergebracht ist (Abb. 3).

Einige Zeilen des Quelltexts zum Apex Controller der Komponente aus Abb. 3 (Abb. 4)

Der Ansatz erlaubt die schnelle Fertigung eines Prototypen, der dann durch Iterationen in das fertige Produkt für die Film Tune AG überführt wird. Die iterative Arbeitsweise ist eines der Merkmale, das die Entwicklung im "As a Service"-Universum von klassischer IT-Projektarbeit nicht selten unterscheidet. Ein weiteres Merkmal ist die verteilte Entwicklung.

Sicht auf eine Seite der Anwendung (Abb. 5)