Web-Applikationen – der Trend der Zukunft

Das Internet ist ein wichtiger Bestandteil des täglichen Lebens. Egal ob privat oder im Unternehmen, viele Dinge hängen vom werden online erledigt und vor allem komplexere Webseiten nutzen Web-Applikationen, um dem Benutzer die Interaktion mit der Homepage zu ermöglichen bzw. um verschiedene Operationen auf dem Server durchzuführen. Bei ASTEC entwickeln wir benutzerfreundliche Web-Applikationen, die mit allen gängigen Web-Browsern kompatibel sind und den neuesten Stand der Technik voll zu Ihrem Nutzen ausnutzen.

Was ist eine Web-Applikation?

Bei Web-Applikationen handelt es sich um Software, die auf dem Server ausgeführt wird, um dort verschiedene Operationen oder Aufgaben über das Internet oder das Intranet direkt online im Web-Browser auszuführen. Auf diese Weise sind Dinge wie die Benutzerinteraktion mit der Webseite möglich. Der User kann sich zum Beispiel registrieren, ein Formular absenden oder für einen Newsletter anmelden. Die eingegebenen Informationen werden dann durch die web-basierte Applikationen verarbeitet und die entsprechend gewünschten Maßnahmen werden ausgeführt.

Welche Web Applikationen gibt es?

Das Angebot an Web-Lösungen ist zahlreich. Es gibt zum Beispiel Web-Frameworks oder Applikationen für das Intranet sowie B2B-Lösungen. Generell können mit Programmierkenntnissen eine Vielzahl an Applikationen programmiert und entwickelt werden – ganz nach dem Bedarf des Unternehmens bzw. der Webseite. Durch den Einsatz dieser Web-Technologien ist es möglich, viele komplexe Operationen auszuführen und ermöglichen es dem Benutzer, mit einer Webseite bzw. mit dem Server zu interagieren.

Beispiele für die Funktion von Applikationen

Web Applikationen sind vielseitig und mächtig. Sie ermöglichen Dinge, wie etwa die Anmeldung von Benutzern oder die Datenbankabfrage. Darüber hinaus sind aber auch komplexe Dinge, wie komplette Web-Frameworks, wie sie etwa in einem Content Mangement System für die Erstellung von Webseiten zu finden sind. Während eine dieser Applikationen direkt mit dem User Interagieren und für die Kommunikation zwischen dem Webserver und der Webseite bzw.dem Nutzer dienen, gibt es andere Applikationen, die für die Kommunikation zwischen zwei Servern entwickelt wurden. Sie geben etwa Daten von einem Server an einen anderen weiter, führen Operationen aus oder übertragen Daten.

Entwicklung und Programmierung von Web Applikationen

Die Entwicklung von Web Applikationen und Anwendungen erfolgt in Programmiersprachen wie PHP und MySQL. Sie kann von einer professionellen IT Abteilung oder von entsprechenden IT Agenturen durchgeführt werden. Dies ist besonders für persönliche bzw. individuelle oder komplexe Anwendungen sinnvoll. Für allgemeine Applikationen hingegen gibt es in der Regel bereits viele öffentliche, kostenlos zugängliche Scripte, die verwendet bzw. nach belieben erweitert werden können. Zudem gibt es eine reihe fertiger, kommerzieller Produkte. Professionelle Forensoftware sei hier etwa als Beispiel genannt.

Fazit

Das Netz wäre ohne Web Applikationen – welchen Typs auch immer – nicht das selbe. Viele Webseiten, wie Online-Shops oder Foren würden ohne die Scripte und die Applikationen schlicht und einfach nicht funktionieren. Newsletter Anmeldungen, etc. müssten in diesem Falle zum Beispiel manuell bearbeitet werden und auch Frameworks etwa für PHP oder Content Management Systeme, würden nicht existieren.


Wie erreicht man ein Ziel schneller?

Agile Softwareentwicklung ist dabei ein wichtiges Stichwort. Dabei handelt es sich um eine aktive Umsetzung eines Auftrages vom Auftraggeber. Statt nur die notwendigsten Daten zu sammeln, um eine Software zu entwickeln, setzen die Entwickler sich mit den Auftraggebern ausführlich auseinander. Dies sollte dabei auf persönlicher Ebene geschehen. Diese persönlichen Treffen sollten sich in regelmäßig angesetzten Meetings wiederspiegeln, wobei die genauen Wünsche und Anforderungen an die Software geklärt werden. Der Entwicklungsfortschritt, der daraus resultieren soll, darf dabei nicht vernachlässigt werden, sondern sollte im Vordergrund stehen. Genau so sieht die Softwareentwicklung bei ASTEC aus.

Dabei ist die Entwicklungszeit mit dieser Methode, die bei einem Softwaresystem anfällt im Einzelfall Zeit intensiver, als bei anderen Methoden. Dabei ist diese Methode individuell zu gestalten und geht mehr auf die Wünsche des Kunden ein.

Zudem muss auch eine aktive Kommunikation zwischen Personen der Auftragsebene und Entwickler bestehen, dies kann dabei auch die Produktivität und den Ehrgeiz fördern, was sich positiv in der Entwicklung zeigen kann.

Somit ist ein agiler Entwicklungsprozess immer mit gewissen Anforderungen verbunden. Diese werden meistens durch den Auftraggeber festgelegt und sind zu erfüllen. Doch können manche Entwicklerteams sich nicht auf eine neue Art der Softwareentwicklung einstellen, da sie auch durch andere Vorgehensweisen dem Auftraggeber eine zufriedenstellende Software abliefern, die auch durch eventuelle zeitsparendere und effizientere Arbeit erreicht werden kann. So ist diese Umstellung auf eine andere Vorgehensweise meist notwendig, jedoch nicht immer erforderlich, um Konkurrenz fähig zu bleiben. Wobei nicht nur die Softwareentwickler zusammen arbeiten müssen, sondern auch Auftraggeber und Management, um das gemeinsame Ziel zu erreichen.

Elementare Bausteine dieser Methode der Softwareentwicklung sind zum einen die Teamfähigkeit, Anpassungsfähigkeit und Kommunikation der Softwareentwickler untereinander. Zu anderen muss auch eine fachliche Qualifizierung zu Thema Software vorhanden sein, die sich durch die Zusammenarbeit, gegenüber anderen Methoden, zum Vorteil ergänzt.

Zum Nachteil kann sich diese Methode nur entwickeln, indem die Kommunikation scheitert oder Missverständnisse innerhalb des Teams herrschen, so kann sich die Zeit für den Entwicklungsprozess deutlich ausdehnen. Schließlich ist fest zu stellen das sich die Entwicklungszeit dadurch nicht genau bestimmen lässt, eingegrenzt wird dies nur durch den Abgabetermin.

Ein anderer Aspekt ist auch, dass es dem Management Vorteile bringt auf diese Variante zurück zu greifen, da es Geld sparender ist und keine explizite Analyse benötigt.

Das Entwicklerteam ist somit für eigene Abläufe, Aufgaben- und Zeiteinteilung zuständig. Die Optimierung dieser Arbeit erfolgt durch die eigene Reflektion innerhalb des Teams. Diese Unabhängigkeit des Teams kann dabei zu einer Effizienz führen, die durch den Ehrgeiz des Teams im Verhältnis zu Konkurrenz ausgelöst wird. Auch ist die Aufgabenverteilung, durch diese enge Zusammenarbeit, individuell gestaltbar, sodass Stärken und Schwächen einzelner Individuen, als Vorteil eingesetzt werden können.

Um auf den Aspekt der Zeit zurück zu kommen, es gibt verschiedene Ansichten, die die Zeit betreffen. Zum einen ist es bei einem detaillierten Auftrag vom Kunden nicht notwendig eine sehr detaillierte Struktur zu entwickeln, da diese schon gegeben ist.
Planungen innerhalb des Teams sind somit meist kurze Absprachen, dessen Umsetzung auf direkten Weg erfolgen. Jedoch gibt es auch spezielle Einzelfälle in denen der Kunde kurzfristig Wünsche und Änderungen einbringt, die noch umgesetzt werden sollen, was dazu führt, dass die Arbeitszeit sich verlängert und die Zeitersparnis entfällt.

Durch viele Aspekte kann sich so ein Arbeitsablauf beeinflussen lassen, dabei ist es unabhängig davon welche Methode man wählt, da es immer Vor- und Nachteile geben wird und auch immer Unerwartetes eintreten kann.

Schließlich lässt sich ein Fazit ziehen, dass agile Softwareentwicklung das Themengebiet der Softwareentwicklung weiterhin beeinflussen wird. Dabei ist jedoch zu bedenken, dass sich nicht nur die Software weiter entwickelt, sondern auch die Methoden zur Softwareentwicklung.

So hat diese Variante der Softwareentwicklung auf die Gegenwart und die nahe Zukunft Einfluss, aber nicht mit Gewissheit auf die zukünftige Zukunft.


Rich Internet Applications – die Software der Zukunft?

Rich Internet Application – Was ist das?

Immer öfter tritt die Bezeichnung Rich Internet Application oder abgekürzt RIA in Erscheinung. Was auf Deutsch so viel wie reichhaltige Internetanwendung heißt, ist allerdings kein Standard, sondern lediglich ein Sammelbegriff für Internetanwendungen, welche ähnliche Interaktionsmöglichkeiten wie eine Desktopanwendung bieten. Unter anderem werden Webseiten, welche auf deren Benutzeroberfläche ein Drag-and-Drop ermöglichen, zu den RIAs gezählt. Die zwei Hauptmerkmale einer RIA sind eine Benutzeroberfläche mit zahlreichen Interaktionsmöglichkeiten und ein zumindest aktualisierender Datenverkehr über das Internet. Entsprechend dieser Merkmale müsste solch eine Anwendung nicht zwingend in einem Webbrowser laufen.

Grenzenlose Softwareentwicklung

Früher waren Webseiten meist statisch. Es wurden HTML-Seiten erstellt, welche man lesen konnte. Hyperlinks waren eine der wenigen Möglichkeiten zur Interaktion mit dem Benutzer. Später kamen erste Ansätze von dynamischen Elementen hinzu, welche z.B. mittels JavaScript realisiert wurden. Die browserseitige Unterstützung wurde laufend erweitert. Mit den heutigen RIA-Frameworks und dem zunehmend schnelleren Internet konnten Desktopanwendungen nun mit dem Internet zusammengeführt werden. Die lokale Plattform tritt somit in den Hintergrund. Anwendungen können auf unterschiedlichen Betriebssystemen problemlos verwendet werden – eventuell erforderliche Plug-Ins müssen natürlich vorhanden sein. Plattformunabhängige Frameworks erhöhen also die Portabilität von Software und vereinfachen die Entwicklung.

Die Technik dahinter

Zur Erstellung einer Rich Internet Application wird oft Flash oder DHTML verwendet. Es gibt mittlerweile auch zahlreiche Frameworks und Bibliotheken, die grob in zwei Kategorien unterteilt werden können. Die Plug-in-basierten Frameworks wie z.B. JavaFX, Silverlight oder AIR laufen, wie der Name schon sagt, aufgrund installierter Plug-Ins. Die HTML-JavaScript-basierten Frameworks wie das Google-Web-Toolkit oder jQuery hingegen verwenden JavaScript für die Programmierung. Aufgrund der weiten Definition einer RIA wäre aber eine Programmierung mit jeder Sprache, welche die zwei Hauptmerkmale erfüllen kann, möglich.

Wo Licht ist, ist auch Schatten

Und den Schatten bemerkt man hauptsächlich dort, wo Leistung bzw. Leitungsgeschwindigkeit fehlen. Diese infrastrukturellen Anforderungen treffen aber auf sämtliche Internetanwendungen zu. Umgehen kann man das Problem teilweise, wenn man RIAs auch für den Offline-Betrieb programmiert. Dann kann die Verbindung mit dem Internet bei Möglichkeit zu einem anderen Zeitpunkt wieder aufgenommen werden. Ob dies aber möglich ist, hängt vom Anwendungsfall ab. Andererseits sind RIAs oftmals wesentlich schneller in der Verarbeitung, wenn die Serverzugriffe entsprechend effizient programmiert sind. Außerdem ermöglichen sie wesentlich besseres Feedback und reagieren z.B. auch ohne manuelle Aktualisierung der Website.

Die nächste Generation der Software

Rich Internet Applications werden mittlerweile als die nächste Generation von Software-Anwendungen gesehen. Immer mehr Firmen nutzen Anwendungen auf dieser Basis, da man sich so die oft mühsame Verteilung, Installation und Verwaltung von Software vereinfacht bzw. erspart.

ASTEC ist ein Softwarehaus, das Ihnen gerne bei der Entwicklung von Rich Internet Applications hilft.


Die Kunst der Softwareentwicklung

Zunächst stellt sich die Frage, was genau unter Softwareentwicklung zu verstehen ist. Unter Softwareentwicklung wird das Erstellen eines speziellen Programmes verstanden. Da es für die Entwicklung einer Software bestimmte Kenntnisse geben muss, wird diese Arbeit von Softwareentwicklern durchgeführt. Dabei spielt es keine Rolle um welche Programmiersprache es sich handelt, da die Abläufe grob gleich sind. Nur die Syntax unterscheidet sich.

Diese Entwicklung läuft nach einem festen Prozess ab. Zunächst muss geklärt werden, was genau die Anforderungen sind. Eventuell müssen hier zunächst Voranalysen gemacht werden, damit diese auch in das System passt. Es ist wichtig, dass gerade in dieser Phase alle Punkte erfasst sind. Eine spätere Korrektur ist möglich, aber sehr zeitaufwändig, da sämtliche Prüfungen wiederholt werden müssen. Eventuell werden dadurch auch versteckte Fehler eingebaut, die erst bei bestimmten Bedingungen eintreten.

Ist die erste Phase zunächst abgeschlossen, kann mit dem ersten Softwareentwurf angefangen werden. Dieses kann auch mit UML erfolgen. Durch diese zunächst grafische Programmierung, können die Abläufe zusammenhängend dargestellt werden. Das hat den Vorteil, dass hier bereits grundlegende Fehler bereits vermieden werden können. Für den Menschen ist dieses ebenfalls einfacher, da er besser in Bildern denken kann, als mit nackten Programmcode. Auch sollte hier das Problem in viele kleine Probleme aufgespalten werden. Das macht die Bearbeitung des gesamten Problems leichter. Zum Ende können die einzelnen Puzzelteile dann zusammengesetzt werden.

Ist der erste Entwurf abgeschlossen, kann der Entwickler mit der Erstellung des eigentlichen Programmcodes anfangen. Auch hier sollte das Problem in mehrere einzelne Teilprobleme zerlegt werden. Dadurch behält der Softwareentwickler den Überblickt und kann die Fehlerquote reduzieren. Bei wichtiger Software kann es hilfreich sein, dass der Code von zwei Entwicklern erstellt wird. Dadurch können sich die Entwickler gegenseitig kontrollieren und vermeiden so sicherheitskritische Fehler.

Ist der Programmcode geschrieben ist die nächste Aufgabe, diese genau zu testen. Hier sollte im Vorfeld bereits bekannt sein, was genau die Anforderung sind. Auch ist diese einen Langzeittest zu unterziehen, da manche Fehler eventuell auch erst bei bestimmten Situationen entstehen. Es sollte nach Möglichkeit stets alle möglichen Fälle getestet werden. Arbeitet die Software in Kombination mit einer Hardware, so ist diese unter bestimmten Umweltbedingungen zu testen. Dadurch können ebenfalls mögliche Einflüsse durch die Hardware mit getestet werden, die bei einem normalen Test nie aufgetreten wären. Eventuell müssen hier noch bestimmte Anpassungen erfolgen. Dieses können Veränderungen bei zu messenden Größen sein. Wird hier keine temperaturmäßige Anpassung vorgenommen so kann dieses zu einem ungewollten Fehler führen. Aber auch andere Umweltgrößen, wie Feuchtigkeit oder Schwingungen können Einfluss auf die Hardware haben.

Es gibt auch mögliche Software, bei der nicht immer alle Größen getestet werden können. Hier kann eine mögliche Risikoabschätzung helfen. Tritt ein Fehler vielleicht sehr selten auf, so ist abzuwägen, ob mit diesem Fehler gelebt werden kann oder nicht.

Die besten Softwareentwickler finden sie bei ASTEC, einem der erfahrensten Softwarehäuser aus Polen mit über 20 Jahren Erfahrung.