arago BuildMe
-
Upload
arago-gmbh -
Category
Technology
-
view
816 -
download
3
description
Transcript of arago BuildMe
arago BuildMeDie Entwicklungsplattform für vertriebsrelevante Webanwendungen
Aus Sicht der Fachabteilung soll die Entwicklung- den Geschäftsprozess verstanden haben, das aktuelle fachliche Problem mit den
Kollegen diskutieren und eine gute technische Umsetzung vorschlagen.- nach der langen gemeinsamen Kreativphase in sehr kurzer Zeit eine qualitativ
einwandfreie und jederzeit veränderbare Lösung produzieren.- für die eigentliche Erzeugung der Lösung keine oder zumindest fast keine Zeit in
Anspruch nehmen und das bereitgestellte Budget nicht überschreiten.
Aus Sicht der Architekten soll die Entwicklung- ausschließlich auf Basis der wiederverwendbaren Basis-Geschäftsprozesse und
Geschäftsobjekte arbeiten. - das Softwaremodell so detailliert abbilden, dass sich mindestens 95% des
Quellcodes automatisch generieren lassen.- die Flexibilität und Wartbarkeit das oberste Gebot sein. Budget und benötigte
Erstellungszeit sind dann zweitrangig.
Anforderungen an die Entwicklung
Aus Sicht der Programmierer- soll die modernste oder die bereits seit Jahren selbst praktizierte
Technologie zum Einsatz kommen und im Vordergrund stehen.- ist der für die Erzeugung von Programmcode eingesetzte Texteditor
wichtiger als das Verständnis für den Geschäftsprozess, der abgebildet werden soll.
- soll das fachliche Problem bereits in „IT-Speak“ übersetzt sein. - soll auf Modell und Dokumentation verzichtet werden, weil sich die
Anforderungen „sowieso dynamisch ändern“.
Anforderungen an die Entwicklung
Säulen der Softwareentwicklung
4
Build
Me
Proz
ess
Build
Me
JAVA
Fra
mew
ork
Build
Me
Entw
ickl
ungs
-um
gebu
ng
Frontend Software
Analytiker, Architekten, Entwickler
Wird eine dieser Komponenten dem Zufall überlassen, so wird nur selten eine stabile Software am Ende der Entwicklung - und sicher keine zukunftssichere und wartbare Software - über die Zeit des Lebenszyklus derselben entstehen.
BuildMe – stabile Säulen für die Softwareentwicklung
BuildMe ist auf die Erstellung von Software ausgerichtet, die von menschlichen Benutzern verwendet wird, darum wird „Frontend Software“ produziert. BuildMe baut auf drei Säulen auf und ermöglicht so eine konsistente und effiziente Projektrealisierung.
Build
Me
Proz
ess
Build
Me
JAVA
Fra
mew
ork
Build
Me
Entw
ickl
ungs
-um
gebu
ng
Frontend Software
Analytiker, Architekten, Entwickler
BuildMe - Ergebnisse guter Entwicklung
6
Effizienz
• Kosten•Time-To-Market• Ressourcen
Flexibilität
• Integrationsfähigkeit• Entkopplung von Technologie• Wiederverwendbarkeit• Vernetzung bestehende Applikationen
Qualität
• Sicherheit• Umsetzung der Vorgaben• Zusammenspiel IT <> Fachabteilung•Transparenz
Ihr Nutzen in der Zusammenfassung
Verkürzte Entwicklungszeiten– Reduzierte Projektkosten – Schnellerer Einsatz am Markt als schnellere Reaktion auf Erfordernisse
am Markt durch den USP der Wiederverwendbarkeit
Höchste Sicherheit – „Secure-by-Design“ basierend auf der Theorie des endlichen Automaten – Konform mit Bankenrevisionen
Zuverlässigkeit– Seit 1995 bewährt in der Anwendung von anspruchsvollen
vertriebsorientierten Webanwendungen
Alle Vorteile im Überblick
arago BuildMe
Hintergrundinformationen
BuildMe – Prozess
Softwaredesigner & Programmierer
Tester
Fachabteilung
Usability Manager & Frontend Designer
Codierer
Klickprototyp AlgorithmikState Machine Datenhaushalt
Phasen
D1 C1
Iterationen
Disziplinen
P1 P2
Codieren
S1 A1 A2PN
Betriebsübergabe
B1
Ein pragmatischer Entwicklungsprozess muss- Wiederverwendbarkeit auch über Anwendungsgrenzen hinweg als oberstes
Ziel haben und damit nicht nur Komponentenbibliotheken, sondern auch Services unterstützen.
- eine möglichst geringe Belastung für die Fachabteilung sein. - möglichst wenig Iterationen verlangen, um zu einem fachlich
korrekten und qualitativ hochwertigen Ergebnis zu gelangen.
BuildMe – Java Framework
Portal Service …
Fachliche Anforderung
arago BuildMe JAVA Framework
JVM
JAVA Container
JSF Spring JSR 168
OSGI …
Hybernate
JNDI …
Groovy …
Das BuildMe Framework kapselt die verschiedenen Technologiestandards. Der Anwendungsentwickler kann sich um die Entwicklung der Anwendung kümmern. Die von den Architekten vorgegebenen Komponenten und Standards können durch BuildMe angesteuert werden.
BuildMe – Java Framework
Anwendungsentwickler konzentrieren sich auf die Schaffung von Anwendungen und dabei auf die Erzeugung flexibel wiederverwendbarer Komponenten, die geschäftsprozess-relevant sind.
Bei der Entwicklung eines typischen Frontends fallen 98% der Entwicklungszeit im Bereich der Anwendungsentwicklung an.
Die mit tiefem technischen Wissen ausgestatteten „Softwaregurus“ oder die Entwickler, die sich besonders mit Schnittstellen zu anderen Applikationen auskennen, sind die Experten.
Diese Experten implementieren hinter dem BuildMe Framework in den gewünschten Technologien und stellen den Zugang zu ihren Entwicklungen via BuildMe zur Verfügung.
Die wenigen Experten, auf die ein Unternehmen zugreifen kann, werden so optimal multipliziert.
Vorkonfigurierte Umgebung
Die Werkzeuge, die zur Schaffung der BuildMe Umgebung genutzt werden, sind zum größten Teil frei verfügbar wie z.B. Eclipse - IDE. Im BuildMe Umfeld sind diese aber so konfiguriert, dass sie wirklich zusammenspielen und ineinander greifen. Damit bewegt sich ein Entwickler, Analyst oder Projektverantwortlicher immer entlang definierter Prozesse und kann sich auf seine eigentliche Aufgabe konzentrieren. Die vorkonfigurierte Verzahnung der Werkzeuge macht auch das Aufsetzen eines neuen Projektes schnell und fehlerfrei möglich.
BuildMe – Entwicklungsumgebung
Ready to Go
Durch den Einsatz von Virtualisierung kann die BuildMe Umgebung aus der Box genutzt werden. Hier werden Images für sehr viele Aufgaben bereits fertig konfiguriert und installiert geliefert, z.B.:
– Die Entwicklungsumgebung eines Entwicklers– Die persönliche Testumgebung eines Entwicklers (jeweils Tomcat oder
JBOSS)– Die Konsolidierungsumgebung für ein Projekt (jeweils Tomcat oder
JBOSS)– Die Testumgebung für ein Projekt (jeweils Tomcat oder JBOSS)– Die Abnahmeumgebung für ein Projekt (jeweils Tomcat oder JBOSS)– Die Produktionsumgebung für ein Projekt (jeweils Tomcat oder JBOSS)– Die zentrale Versionskontrolle– Das Build- und Deploymentmanagement– Das Test- und Anforderungsmanagement– Die Dokumentationsumgebung
BuildMe – Entwicklungsumgebung
Ein Höchstmaß an Wiederverwendbarkeit bedeutet eine Beschleunigung des Time-to-Market.
Der Ansatz der Wiederverwendbarkeit bezieht sich sowohl auf einen Kunden, der flexibel reagiert, als auch auf mehrere Kunden, bei denen ein Kunde vom anderen profitiert, da bereits ein wiederverwendbares Modul geschaffen wurde.
Das maßgebende Vehikel ist die Bibliothek. Diese repräsentiert fertig programmierte Module, die den Programmierungsbedarf vielfach auf Modifikationen reduzieren.
Daneben existieren fertige Schnittstellen, die eine einfache Integration in eine neue Umgebung erlauben.
Beispiele für Schnittstellen: Ankopplung an die SAP-Buchhaltung oder Content-Lieferanten, z.B. Reuters, Bloomberg, FERI etc.
Die technische Grundlage des Erfolges:Das 4-Ebenensystem von arago
Die 4 Ebenen von BuildMe
JSP Code
XML Code
JAVA Code
JAVA / SOAP / xDBC / …
Darstellungsebene
Prozessebene
Funktionsebene
DatenebeneFertige Datenverbindungen für Standard Datenquellen wie SWIFT, FIX, etc. auf fachlicher Ebene oder Oracle, DB/2, EAI Werkzeuge, etc. auf technischer Ebene.
Wiederverwendbare Kernfunktionen, wie Transaktionen, Depoteröffnung, Modell-rechner, Schnittstellen etc. auf fachlicher Ebene oder Programmfunktionen auf technischer Ebene.
Ablaufbeschreibungen und prozess-spezifische Logik, die auf die Bausteine aus Daten- und Funktionsebene zugreifen, um die individuelle Applikation zu formen.
Layout und Frontendverhalten der fertigen Applikation oder der Services, sodass gleiche Prozesse mit unterschiedlichen Frontends nur auf dieser Ebene angepasst werden müssen.
Darstellungsebene– Da eine Anwendung immer von Anwendern genutzt wird, bietet es sich
an, bei diesen zu beginnen. Auch die Anwender von Services (nämlich die Entwickler, die sie nutzen wollen oder diejenigen, die sie bereitstellen) fallen in diese Kategorie.
– Unabhängig von der eigentlichen Entwicklung entwirft ein „Usability Manager“, der das Endergebnis einschätzen und dabei die technische Realisierbarkeit (auch in punkto Ressourcenbedarf und Performance) beurteilen kann, in mehreren Workshops zusammen mit der Fachabteilung „die Anwendung“.
– Dies geschieht, indem auf Workshop- oder Grobkonzeptbasis die Anforderungen aufgenommen werden, die dann in einen funktionslosen aber vom „Look and Feel“ einsichtigen Prototypen gegossen werden.
– Dieser Prototyp wird in iterativen Workshops so lange verfeinert, bis er die Anforderungen der Fachabteilung abdeckt.
– Dieses Vorgehen verlangt keine „abstrakte Vorstellung“, sondern lässt die Beteiligten an einer „Simulation des lebenden Objektes“ arbeiten.
Den Anfang macht das Frontend – Der Klickprototyp
Prozessebene– Dieser Prototyp wird in einen endlichen Automaten verwandelt.– Dabei werden von Zustand zu Zustand (bei Frontendanwendungen zum
Beispiel von Maske zu Maske) die Bedingungen ausgearbeitet, unter denen ein Anwender zu einem anderen Zustand gelangt oder sich Parameter im aktuellen Zustand ändern.
– Durch die Erstellung des endlichen Automaten, wird
… der fachliche Prozess definiert,
… die benötigten Daten als Vorbedingung festgehalten,
… die benötigten Funktionen als Aktionen von einem Zustand zum nächsten definiert.
– Der Prototyp wird um die Verzweigungen und Datenanforderungen aus dem endlichen Automaten ergänzt.
Die Fortsetzung liegt im Ablauf – Die State Machine
Funktionsebene– Die identifizierten technischen Funktionen (Aktionen, um den definierten
endlichen Automaten zu „bereisen“) werden im nächsten Schritt in einen „Pseudo Code“ verwandelt.
– Dabei können auf allen Abstraktionsebenen wiederverwendbare Elemente des Programms auf logischer und technischer Basis identifiziert werden.
– Bei der Erstellung des Pseudo Codes werden die Vorbedingung für die Ausführung des Programms und die Nachbedingung nach seiner Ausführung samt aller Daten festgehalten.
– Durch die Erstellung des Pseudo Codes
… werden wiederverwendbare Komponenten erkannt.
… wird die zu entwickelnde Logik für „einfache Codierer“ klar erkenntlich.
… werden die benötigten Daten und die im Prototyp implizierten Plausibilitäten klar dokumentiert.
Danach kommt das Eingemachte – Die Algorithmik
Datenebene– Als letzter Schritt in der pragmatischen Vorbereitung der eigentlichen
Codierung werden alle benötigten Daten erfasst. – Dazu werden die Datenblöcke, die von den logischen Funktionen, den
fachlichen Funktionen und den Prozesskomponenten benötigt werden, auf der einen Seite und die verfügbaren Datenquellen auf der anderen Seite aufgelistet.
– Ähnlich einem EAI Mapping werden nun Verbindungen zwischen diesen Datenmengen gezogen. Diese Verbindungen werden verwendet, um externe Services anzusteuern, eventuell neue Datenservices oder Views zu definieren oder um neu zu erstellende Datenrepositories klar zu strukturieren.
– Die Erstellung eines solchen Datenhaushaltes gewährleistet
… die Vollständigkeit der Datenversorgung.
… die Erkennung und mögliche Behebung von Performanceproblemen, bevor Code erstellt wurde.
… die Identifikation von fachlich nicht umsetzbaren Anforderungen (Datenverfügbarkeit ist ein Fachthema).
Und zuletzt das Schwierigste – Der Datenhaushalt
Bsp: Kampagnenmanagement zurAbsatzsteigerung von ausgewählten Produkten
Prozess-ebene
Funktions-ebene
Die Prozess- und die Funktionsebene werden dadurch nicht berührt.
Daten-ebene
Darstellungs-ebene
Szenario: eine neue Kampagne soll schnellstmöglich in die Berater-plattform integriert werden
Minimaler Aufwand mit BuildMe
Der Zugriff auf die Datenebene erfolgt nur in dem Teil, der durch die Kampagne betroffen ist.
Auf der Darstellungsebene kommt es zu begrenzten Erweiterungen
oder Modifikationen beim Frontend.
Beispiel: Betrifft die Kampagne Asienfonds, werden nur die entsprechendenFondsdaten aus dem gesamtenFondsuniversum herangezogen.Die Datenebene bleibt damit intakt.
Durch Einsatz der Theorie des endlichen Automaten (State Machine) wird sichergestellt, dass keine Aktionen ausgelöst werden, wenn nicht die dargestellte Aktion überprüft ausgeführt wird.
Grundprinzip (vereinfachte Darstellung: Online-Banking)
Secure by design: Garant für höchste Sicherheit
...
Ein-loggen
Trans-aktion
t = 1 t = 2Zeitpunkt: Überprüfung des Benutzer
t = 3Zeitpunkt: Auftrag oder Banking
...
Ein-loggen
Trans-aktion
Das Grundprinzip: Bsp. Zustandsübergang im Online-Banking
– Einloggen in den Online-Banking Prozess sowie die Auslösung einer Order sind mit entsprechenden Zwischenschritten nur in dieser Sequenz möglich.
– Dies bedeutet, dass keine Order ausgeführt werden kann, wenn vorher keine eindeutige Identifikation im Einlogging-Prozess stattgefunden hat.
– So sorgt die Technologie des endlichen Automaten dafür, dass kein
Unbefugter eine Order auslösen kann, in dem er sich, z.B. zum Ordermodul Zugang verschafft.
Secure by design: Garant für höchste Sicherheit
20% Einsparung an Entwicklern oder
20% schnellere Entwicklung bei gleichbleibender Mannschaft
Vorhandene Prozesse lassen sich - zum Beispiel für Kampagnen oder zur individuellen Bedienung wichtiger Vertriebspartner - leicht anpassen. Der gesamte Backendprozess bleibt erhalten; Änderungen werden nur im Frontend und teilweise in den Prozessen (meist das Setzen von Defaults wie vorab ausgewählte Produkte) vorgenommen.
Mit einmal funktionierenden Transaktionsprozessen in verschiedenen Detailtiefen auf der Frontendseite
… kann ein neuer Mandant in 1/10 der Zeit erstellt werden.
… haben sich auch die Kosten neuer „Mikroprozesse“ oder „Mikroplattformen“ soweit reduziert, dass derartige Maßnahmen nun tatsächlich wirtschaftlich durchgeführt werden können. (Wirtschaftlich bedeutet das, die Kosten werden durch realen Umsatz und nicht durch abstrakte Werte, wie die „bessere Kundenbindung“ gedeckt).
Ergebnisse guter Entwicklung - Effizienz
Durch die separate Bereitstellung fachlicher Prozesse und technischer Funktionen können
… Services durch Definition einfacher Prozesse abgebildet werden, bei denen die Frontendschicht das jeweilig gewünschte Serviceprotokoll (z. B. SOAP) als Darstellung definiert.
… Services sowohl auf abstrakter Ebene (Komplettprozessebene inklusive Status-Auswertung) als auch auf atomarer Ebene (eine Berechnung durchführen) schnell umgesetzt werden.
… Services nicht nur im Sinne einer SOA, sondern auch als Komplettkomponenten bereitgestellt werden – zum Beispiel die Kopplung von vorhandenen Produktpräsentationen mit dem Kampagnenmanagement.
… neue Kombinationen von Prozessbausteinen ganz flexibel (zum Beispiel über Web 2.0 Frontends vom Benutzer selbst oder durch Recommendation) zusammengesetzt werden.
Einmal geschaffene Komponenten können auf allen Ebenen wiederverwendet werden und müssen dementsprechend nicht teuer wieder und wieder entwickelt werden
Ergebnisse guter Entwicklung - Flexibilität
arago Institut für komplexes Datenmanagement AGEschersheimer Landstr. 526 - 53260433 Frankfurt am MainTel: +49 (0) 69 405 680www.arago.dewww.automatisierungs-experten.de
Vielen Dank für Ihre Aufmerksamkeit
Vorstand: Hans-Christian Boos, Martin FriedrichVorsitzender des Aufsichtsrats: Dr. Bernhard WaltherSitz: Kronberg im Taunus · HRB 5731 · Registergericht: Königstein i.TsUst.Idnr. DE 178572359 · Steuernummer 2603 003 228 43435