Masterarbeit
Web Migration Springboards
Completion
2016/06
Research Area
Students
Advisers
Dr.-Ing. Sebastian Heil
Description
Changing user experience demands new requirements for existing software. Also, continuous development of new technologies and the lack of support of outdated technology increase the pressure to renew existing software. Systems which have been developed over a long time contain much valuable knowledge of models, rules and solutions of the problem domain. It is often not advisable to replace this software by complete new development. Instead, it is necessary to migrate existing software into new systems and keep existing knowledge. This is the objective of software migration.
Legacy Systems are often implemented in C++. Technologies like Google Native Client, Emscripten or WebAssembly allow to execute this source code within the browser with only minor changes. The question is if this category of technologies is an appropriate tool for migration - at least during a transitional phase. In the long run, the objective is to migrate to a “pure” web application. However a hybrid web application can decrease the initial hurdle to migrate. A hybrid web application consists of both newly implemented components in HTML, CSS Javascript and also of slightly adapted pieces of legacy code. The advantage of this intermediate step is that you can rely on the staff experienced in C++ and you do not need complete web engineering expertise at the beginning.
To realize this study, an experimental scenario will be developed whose characteristics are similar to a given real source code. Then it will be implemented with the different technologies and the results will be compared. The comparison answers the following questions:
- What can be reused without / with minor changes?
- What can be implemented only with much of effort?
- What do these technologies have in common?
- How can these technologies be supported in the migration by appropriate infrastructure?
After a comparison of these technologies in the state of the art analysis, a concept for supporting infrastructure has to be developed (eg. frameworks to abstract DOM, communication with servers or javascript components).
Description (German)
Sich verändernde Nutzererwartungen stellen neue Anforderungen an bestehende Softwaresysteme. Auch die ständige Weiterentwicklung von Technologien und das Wegfallen der Unterstützung für veraltete Technologien erhöhen den Druck, bestehende Softwaresysteme zu erneuern. Da über lange Zeiträume hinweg entwickelte Systeme viel Wissen über Modelle, Regeln und Lösungen der Anwendungsdomäne im Quelltext beinhalten, ist es oft nicht sinnvoll diese durch eine komplette Neuentwicklung abzulösen. Vielmehr ist es nötig, bestehende Softwaresysteme in neue Systeme zu überführen und dabei bereits vorhandenes Wissen zu erhalten. Mit dieser Zielstellung beschäftigt sich die Softwaremigration.
Altsysteme sind häufig in Programmiersprachen wie C/C++ implementiert. Mit Ansätzen wie Google Native Client, Emscripten bzw. WebAssembly ist es möglich, diese Quelltexte mit nur geringfügigen Änderungen in Browsern auszuführen. Diese Arbeit soll folglich das Migrationspotenzial der drei - oder weiterer ähnlicher - Technologien für die Migration zu Web Anwendungen untersuchen. Es soll die Frage beantwortet werden, ob diese Kategorie von Technologien ein geeignetes Werkzeug für die Migration zumindest in einer Übergangsphase darstellt. Auf lange Sicht ist das Ziel einer Migration im oben beschriebenen Kontext eine "reine" Web Anwendung. Jedoch kann die initiale Hürde zur Migration gesenkt werden, indem man als Zwischenschritt eine hybride Web Anwendung erstellt. Diese besteht teilweise aus neu implementierten Bestandteilen in HTML, CSS, Javascript und teilweise aus geringfügig angepassten Bestandteilen des Legacy Codes. Vorteil dieses Zwischenschrittes ist, dass noch nicht die volle Web Engineering Expertise nötig ist, sondern auf das in C/C++ etc. geschulte Personal zurückgegriffen werden kann.
Zur Durchführung dieser Untersuchung wird experimentell ein Szenario in Anlehnung an die Eigenschaften eines zur Verfügung gestellten realen Quelltextes entwickelt. Dieses wird dann vergleichend mit den verschiedenen Technologien umgesetzt und die Abläufe bzw. Ergebnisse verglichen. Der Vergleich beantwortet die folgenden Fragestellungen:
- Was kann ohne bzw. mit geringem Änderungsaufwand übernommen werden?
- Was sind die Grenzen, was kann nicht oder nur mit großen Aufwand realisiert werden?
- Welche Gemeinsamkeiten bestehen?
- Wie kann der Einsatz der Technologien in der Migration mit geeigneter Infrastruktur unterstützt werden?
Bei der Durchführung als Praktikum steht der Vergleich der Technologien im Vordergrund. Als Abschlussarbeit hingegen soll nach einem Vergleich der Technologien im Rahmen der Stand der Technik Analyse ein Konzept für unterstützende Infrastruktur - bspw. Frameworks zur Abstraktion von DOM, Kommunikation mit Server bzw. Javascriptkomponenten - erarbeitet werden.