Alle Blogs im Überblick
Betriebswirtschaftlicher Nutzen der frequi Software
Mit der Software von frequi können Sie bereits heute die Entwicklung von Full-Stack Anwendungen massiv beschleunigen. Im Folgenden stellt der frequi CEO Mathias Zimmermann dar, welchen betriebswirtschaftlichen Nutzen die Software für frequi Kunden und Partner bringt.
Es ist ein mittlerweile gewohntes Bild, dass viele IT-Abteilungen in Unternehmen unter der Anforderungslast ihrer Fachabteilung ächzen. Getrieben werden diese Anforderungen sehr häufig von Wettbewerbsdruck und den Marktgegebenheiten, denen sich die Unternehmen ausgesetzt sehen. Ein wesentlicher Effizienzfaktor in diesem Umfeld stellt die Fähigkeit dar, schnell und flexibel neue Lösungen an den Markt zu bringen, beziehungsweise diese im Markt zu etablieren. Diese Lösungen müssen zum einen individuell an die Anforderungen angepasst sein (Differenzierung). Häufig steht hierfür aber nur ein stark begrenztes Budget zur Verfügung. Dennoch besteht die Erwartungshaltung nach technologisch hochwertigen und zeitgemäßen Anwendungen, die für den Endanwender einen erlebnisreichen Eindruck hinterlassen. Dies wiederum ist aber nur mit dem Einsatz neuester Frontend-Technologien möglich.
Neben dem technologischen Wandel im Frontend-Bereich kam in den letzten Jahren verstärkt die Fragestellung auf, welche die richtige Infrastruktur für die Implementierung von Unternehmensanwendungen ist. Auf der einen Seite ist die gewachsene, scheinbar vollständig kontrollierbare und sichere interne on-premise Umgebung. Auf der anderen Seite möchte man Anwendungen häufig einer Vielzahl an Usern auch außerhalb des Unternehmens bereitstellen. Die Infrastrukturhürden, welche ein Unternehmen für die Bereitstellung einer nach außen gerichteten Lösung überwinden muss, sind zum Teil noch immer sehr hoch. Und genau in diesem Umfeld bieten sich Lösungen an, die auf Basis einer Cloud Plattform realisiert werden können.
Aufgrund dieser Unsicherheit beziehungsweise fehlenden Strategie wird der Entscheidungs- und damit der Umsetzungsprozess von fachlich notwendigen und wettbewerbsdifferenzierenden Anwendungen aufgeschoben. Aus Angst, auf das „falsche Pferd“ zu setzen, lässt man viele dieser Anforderungen zunächst unbeachtet und schiebt die Umsetzung auf. Im Ergebnis sind sowohl Fachabteilungen als auch die IT unzufrieden, vom wirtschaftlichen Schaden für das Unternehmen abgesehen. Da dieser sich häufig nicht eindeutig quantifizieren lässt, ergeben sich aus diesem Dilemma allzu oft keine Konsequenzen.
Doch wie lässt sich diese Herausforderung lösen? Letztendlich wird für die Umsetzung der geforderten Anwendung ein sehr breit gestreutes Entwicklungs-Know-how gebraucht. Dieses reicht von JavaScript für die Frontend-Implementierung, über eine detaillierte Kenntnis der Middleware bis hin zur Umsetzung der Geschäftslogik in den ERP-Systemen. Die meisten Unternehmen setzen auf ERP-Seite auf SAP und haben hier oftmals sehr erfahrene Entwickler an Board. Allerdings haben nur wenige Unternehmen das Glück, in den vergangenen Jahren Mitarbeiter gewonnen zu haben, die in allen notwendigen technologischen Welten zu Hause sind. Dies ist aber zwingend notwendig, um eine professionelle, hochwertige und für die Fachabteilung akzeptable Anwendung umzusetzen. Häufig bleibt der IT-Abteilung dann nur der Weg an den freien Markt, um qualifizierte Dienstleister einzubeziehen, die ihre Anforderungen umsetzen können. Aber auch diese Ressourcen sind begrenzt und nur mit viel Planungsvorlauf verfügbar. Gartner (weltweit führendes Beratungs- und Forschungsunternehmen) erwartet, dass der Bedarf an der Entwicklung von Anwendungen bis zum Jahr 2021 fünfmal schneller steigt, als die Ressourcen, die diese Anwendungen umsetzen können.
Mit unterschiedlichsten Ansätzen versuchen die Softwarehersteller hierzu Lösungen zu finden. Auf der einen Seite gilt es als besonders interessant, einen Teil der Anforderungen aus den IT-Abteilungen heraus in die Fachabteilung zu verlagern. Dieser Ansatz ist nur bedingt erfolgversprechend. Dies erschließt sich insbesondere dann, wenn man in Betracht zieht, dass die notwendigen Datenservices unabdingbar für die Anwendung sind. Auf der anderen Seite entstehen andere Ansätze. Diese haben zum Ziel, die Effizienz in der IT Abteilung durch die Beschleunigung der Entwicklungsarbeit deutlich zu steigern. Es wird in diesem Zusammenhang schwer werden, einen Entwickler in allen notwendigen Frontend-, Middleware- und Backendtechnologien vollständig so auszubilden, dass jeder Entwickler in der Lage sein wird, den umfangreichen Technologie-Stack vollständig zu beherrschen. Ein Ansatz, um diese Fragestellung zu lösen, ist die Möglichkeit der Full-Stack-Generierung von Anwendungen. Dabei geht es darum, mit einer einheitlichen Programmiersprache oder grafischen Anwendungsoberfläche die vollständige Anwendung vom Frontend bis hin zur Datenbankschicht zu beschreiben, beziehungsweise zu modellieren. Die Anwendung wird durch das entsprechende Tool über alle Schichten hinweg generiert.
Wir bei frequi verfolgen genau diesen Ansatz, weil wir davon überzeugt sind, dass qualitativ hochwertige und funktionsfähige Anwendungen nur im Gesamtkontext des Wissens über die Anwendungsarchitektur entstehen können. Diesen Überblick kann und wird eine Fachabteilung niemals haben. Daher setzen wir alles daran, die Arbeit des Entwickler so einfach und effizient wie möglich zu gestalten. Die Komplexität, die sich aus dem Einsatz unterschiedlichster Technologien ergibt, muss der Entwickler nicht mehr umfassend beherrschen. Dennoch ist der am Ende generierte Code nicht anders als der, den ein erfahrener Entwickler implementieren würde. Damit wird dem Entwickler ermöglicht, nachträglich manuell Anpassungen mit dem jeweiligen Werkzeug an der Anwendung durchzuführen.
Last but not least begegnen wir der Herausforderung, die Plattformentscheidung treffen zu müssen, mit einem weiteren innovativen Ansatz. Neben der Möglichkeit, die Anwendung Full-Stack zu generieren, gehen wir einen Schritt weiter und ermöglichen dies auf multiplen Plattformen. Dadurch ergibt sich die Möglichkeit, mit nahezu identischem Code mehrere plattform-spezifische Projekte zu generieren. Eine Migration von einer in eine andere Umgebung ist dann in wenigen Stunden getan.
Mit dem Einsatz der frequi-Programmiersprache storm können Sie bereits heute von den Vorteilen profitieren. Diese ermöglichen es Ihnen, Ihre SAPUI5-Anwendungen effizienter auf unterschiedlichen Plattformen zu entwickeln:
-
Sofort nutzbares Eclipse Plugin reduziert den Initialaufwand für den Entwickler
-
Einfach zu erlernende Metasprache storm
-
Multi-Stack Entwicklungs-Werkzeug
-
Unterstützt aktuell Full-Stack Entwicklung auf SAP Cloud und SAP NetWeaver Java Plattform
-
Entwicklungswerkzeug mit optimalen Support für eine schnelle Entwicklung (Copy/Paste- , Search/Replace-Funktionen)
-
Enorme Reduktion des Implementierungsaufwands von UI5-Anwendungen (insbesondere Dateneingabe, List-Ausgabe, Dokumentenverwaltung und Such-Szenarien)
Bei Fragen zögern Sie nicht und schreiben Sie uns an: contact@frequi.de
Interview mit dem Ideengeber und Architekt der Sprache storm – Lars Laegner
Lernen Sie mehr über die Architektur und die Hintergründe der Entwicklung der Programmiersprache storm. Lars Laegner beschreibt, warum der Ansatz wesentlich effizienter bei der Umsetzung von Businessanforderungen funktioniert als klassische SAP Entwicklungsmethoden.
Wie würden Sie kurz die Highlights und den Nutzen der Programmiersprache storm zusammenfassen?
storm löst typische Anforderungen an die Implementierung von Anwendungen im Business-Umfeld zeitsparend und mit hoher Qualität. Dabei geht es darum, Anforderungen deskriptiv zu beschreiben, in einer perfekt dafür ausgelegten Umgebung, der Spezifikations- und Designsprache storm. Diese kann Requirements an Daten und UI’s sehr intuitiv beschreiben, ist gleichzeitig mächtig und umfangreich. Unsere Software erledigt die eigentliche Implementierung der Anwendungen automatisch, sobald Sie Ihre Spezifikation speichern. Wir liefern ein Resultat, das so aussieht, wie ein guter Programmierer es umsetzen würde.
Warum sollte ich storm verwenden, meine Programmierer sind ja in der Lage, alles selber zu programmieren?
Weil Sie mit der Fertigstellung der Spezifikation der Anforderungen bei storm automatisch auch fertig sind mit der Implementierung. Wenn Sie alles selber umsetzen, brauchen Sie einen Programmierer der alle notwendigen Sprachen kennt, die für eine Full-Stack Anwendung notwendig sind. Zum Beispiel SAPUI5, HTML5, CSS für das Frontend und Java inklusive der Frameworks OData und JPA für die Persistenz auf dem Backend. Typischerweise beherrschen die allerwenigsten Programmierer alle Welten gleich gut, daher haben Sie immer ein Team, welches koordiniert werden muss. Damit entstehen Schnittstellenherausforderungen und wenn Sie Ihre Anwendung auf eine neue Plattform migrieren wollen, implementieren Sie typischerweise alles nochmal.
Mit modernen Frameworks und neuen Programmiermodellen kann ich doch auch schneller implementieren heutzutage?
Ja, aber erstens um Faktoren langsamer als mit storm und zum anderen sind Sie gezwungen, sich im Detail damit auseinanderzusetzen. Mit storm definieren Sie die Anwendung einmalig und plattformunabhängig. Sie lassen die Anwendung automatisch implementieren für alle Plattformen, die Sie benötigen.
Warum nochmal die Arbeit machen, wenn Sie bereits definiert haben, was Sie wollen?
Nehmen wir das Beispiel von SAP Plattformen, alleine im Bereich SAP Java gibt es davon unzählig viele. SAP NetWeaver Portal mit Java EE5, SAP Cloud Platform mit Java EE6 Web Profile/SAP Cloud Platform mit Java EE7 Web Profile (TomEE). Mittlerweile bietet SAP für die Java Entwicklung zudem die Cloud Foundry Edition an. Da hinzu kommen noch die HANA XS Tomcat Versionen. Ihre Programmierer sind primär damit beschäftigt, neue Details der Implementierungen und Plattformen zu entdecken. Das bedeutet einen hohen Zeitaufwand anstatt sich auf Business-Logik und das Umsetzen der eigentlichen Anforderungen zu konzentrieren. Viele der obigen Plattformen bedingen eigene IDE’s und Projekttypen, die nicht kompatibel sind. Im klassischen Umfeld sind Sie ständig damit beschäftigt, Plattform- und Framework-Details und Bugs selber zu umschiffen. Das wird jetzt im Generator für Sie hinterlegt und steht automatisch allen Nutzern der Sprache zur Verfügung. Wenn eine Zielplattform neue Best Practice Lösungen vorgibt, sind wir in der Lage dies in einer neuen storm Version zu benutzen. Damit haben Sie den schnellsten Weg zur optimalen Umsetzung Ihrer Anforderung auch in der Zukunft.
Wenn Ihr Generator eine Anforderung nicht umsetzen kann, die ich benötige, stecke ich mit Ihrem Tool dann in einer Sackgasse?
Nicht bei storm. Zum einen haben wir verschiedene Erweiterungskonzepte direkt in der Sprache integriert. Zum Beispiel Funktionen, die wir zu definierten Zeitpunkten auf dem Server aufrufen, vor oder nach einem Update einer bestimmten Entität. Auch UI-Aktionen, wo Sie Ihren eigenen JavaScript Code selber hinterlegen. Wenn Sie am UI selber eine spezielle UI5 XML Definition vornehmen wollen, fügen Sie das in der Spezifikation an Ort und Stelle hinzu. Der Erweiterungsaspekt ist uns sehr wichtig und hat das Ziel, dass Sie zu 100% in storm implementieren. Aus diesem Grund sind wir hier verstärkt aktiv und bieten in Zukunft weitere Optionen zur Einbringung Ihres Codes an.
Das entscheidende Argument führe ich gerne noch zum Schluss an. Der Code, den wir generieren, ist wie von einem Programmierer gebaut. Wenn Sie für dieses Projekt die weitere Implementierung selber übernehmen möchten, importieren Sie es einfach in die IDE Ihrer Wahl und machen dort weiter. Sie verlieren keine Zeit, haben keine Arbeit. Wir verwenden keine unlesbaren Variablennamen oder undurchdringliches Coding. Unser Ziel ist es, alle Anforderungen direkt in storm zu ermöglichen. Aus diesem Grund gehen wir davon aus, dass Sie diesen Schritt nicht benötigen. Kommen Sie statt dessen lieber auf uns zu, wir bauen ein neues Feature oder Patterns in unser Produkt ein.
Kann ich beliebige Anwendungen damit implementieren?
Nein. Wir erzeugen keine Blockchain Anwendungen, IoT Hardware Anbindungen oder ähnliche. Wir konzentrieren uns im ersten Jahr auf 2 wesentliche Szenarien, Data Entry und Search. Unser Ziel ist, alle notwendigen Sprachelemente bereitzustellen, dass Sie diese Aufgaben sehr effizient umsetzen können. Grundsätzlich werden wir sicherlich mit weiteren storm Versionen auch weitere nachgefragte Szenarien umsetzen. Ein mögliches Szenario wäre hier sicherlich die Unterstützung von Workflows. Hier werden wir eng mit unseren Partnern und Kunden die wichtigsten Themenfelder definieren.
Implementieren Sie nur SAP Apps?
Aktuell generieren wir vollständige SAPUI5 Apps, inklusive Server-Schnittstellen und Persistenz in Java. Wichtiges Designkriterium der Sprache storm ist, dass wir alle Definitionen plattformunabhängig erfassen. Ob Sie eine Anwendung auf SAP NetWeaver mit Java EE5 oder auf SAP Cloud Platform TomEE 7 implementieren, ist für Sie transparent. Solange Sie nur Standardfunktionalitäten der storm Sprache verwenden, genügt die Angabe des Systemtyps der Zielplattform. Sie merken nicht, dass wir für das Dokument-Pattern auf SAP NetWeaver KM verwenden und auf der SAP Cloud Platform den SAP Document Service beziehungsweise CMIS-Schnittstelle. Wichtige SAP Zielplattform ist strategisch für uns der ABAP Stack sowie neue Cloud Angebote von SAP. Hier werden in Zukunft weitere Ankündigungen kommen. Im Moment sind wir hier schon sehr gut aufgestellt. Wir verwenden bereits alle OData-Services der ABAP Plattform für die Auswahl von Daten, wie zum Beispiel Drop-Downs.
Welche Art von Programmierpatterns bieten Sie an, das keine andere Programmiersprache einfach mitbringt?
Wir haben verschiedene Patterns Typen definiert, die es ermöglichen, alle notwendigen Bereiche der typischen App-Entwicklung spezifizieren zu können. UX-Patterns für das User Interface, die wiederum Action-Patterns für die Aktionen auf Daten verwenden. Selbstverständlich gibt es auch Responsive-Patterns um flexible und mobile Desktop- und Tablet-Anwendungen plattformgerecht zu spezifizieren. Ebenso haben wir auch UI-Validierung-Patterns auf Einzelfeldern oder auf dem gesamten Modell einer Entität. Wichtige Idee dabei ist immer, dass Sie plattformneutral definieren. Auf diese Weise können wir ein storm-Validierung-Patterns für SAP UI5 korrekt in die Restriktionen eines XML View Elementes wandeln. Gleichzeitig kann es als UI5 JavaScript Funktion angeboten und als serverseitige Java-Validierungsprüfung implementiert werden. Das ist möglich, weil alles aus einer plattformunabhängigen Quelle kommt und wir in beliebige Programmiersprachen transformieren.
Typischerweise versagen Generatoren bei komplexeren Themen wie Berechtigungen auf Daten, da dies kein simples Thema ist und die Anforderungen häufig kundenindividuell sind. Wie haben Sie das gelöst?
Ja, das war eine besondere Herausforderung.
Hohe Freiheitsgrade bei der Definition der Berechtigungen und gleichzeitig flexible Verwendung an verschiedensten Stellen der Datenpflege, UI’s, Suche. Wir sind sehr stolz darauf, dies in unseren aktuellen Plattformen sehr gut umzusetzen.
Sie definieren, welche Berechtigungssammlung Sie nutzen wollen. Zum Beispiel eine „Full Control“ Berechtigung, die alle Aktionen auf einer Entität erlaubt, oder eine Read-Only Berechtigung. Dies kann mit statischen Benutzergruppen hinterlegt werden, aber auch datenabhängig dynamisch basierend auf den Feldwerten einer Entität. Wenn ein Endbenutzer beispielsweise am Business-Objekt festlegen soll, dass die Abteilung Finanzen leseberechtigt und die Abteilung Produktion schreibberechtigt ist, ist das in wenigen Zeilen definiert. Implizit hängen wir die Berechtigung bei Java Plattformen direkt an die Daten, wodurch wir performant berechtigungstreu suchen können. „Early ACL Binding“ ist hier als Fachbegriff zu nennen. Sie verwenden die Berechtigungsdefinition analog auch bei einem Suchfilter, um schnell einen Such-Tab zu erstellen. Auf einem Tab zeigen Sie schreibberechtigte, in einem anderen Tab leseberechtigte Objekte. Das alles jeweils in einer Zeile definiert.
Aber es steckt sehr viel Aufwand im SAPUI5 Generator dies korrekt auf Frontend und Server umzusetzen. So können Sie sehr einfach ein dynamisches berechtigungsabhängiges UI definieren. Dieses blendet bei einem Zugriff eines nicht schreibberechtigten Benutzers bestimmte Tabs des UI’s aus.
Was sind Ihre Ziele und Pläne für 2018 und darüber hinaus?
2018 ist das Ziel, den Marktstart erfolgreich zu gestalten. Aktuell sind wir in der Ramp-Up Phase und begleiten die ersten Projekte zum Go Live. Wir erweitern Schritt für Schritt die Sprache dort, wo der größte Nutzen für unsere Kunden liegt. Mittelfristig bauen wir hierfür eine digitalisierte Cloud Platform für die storm basierte Generierung von Anwendungen auf. Aktuell ist der Fokus auf SAPUI5 mit Java, weitere SAP Plattformen werden langfristig folgen. Wenn der Kern der storm Plattform soweit ist, werden wir die Erstellung von individuellen Anwendungspatterns für unsere Partner und ambitionierte Kunden öffnen. Dadurch ist hier langfristig noch mehr Potential für das Umsetzen weiterer Szenarien vorhanden.
Wir werden unseren Kunden gut zuhören, welche Ausbaustufen auch außerhalb des SAP Sektors, wie Microsoft Azure oder Amazon AWS für Sie interessant sind. Wir wollen uns bewusst den Freiraum lassen, nächstes Jahr vielleicht ein Microsoft Azure oder Amazon AWS basiertes UI auf Basis von Angular JS zu erzeugen. Unsere Kunden werden uns den Weg weisen.
Vielen Dank für das Interview!
Sehr gerne.
(Stand 2017)