Gedanken zur Softwareportierung

2010-01-09 13:50

In vielen meinen Projekten habe ich immer wieder mit Portierungen von Software zu tun, also das eine Software X aus Umgebung A nach Umgebung B portiert wird, wobei Umgebung hier ein Betriebssystem, eine CMS/CRM Software oder eine andere Datenbank zum Beispiel sein kann. Dies hat unterschiedliche Ausprägungen, mal geht es um die Portierung einer Webseite, oder darum eine Applikation auf ein andere Plattform zu bringen. Manchmal ist es auch nur ein Teilaspekt eines größeren Projektes.

Wobei ich zwischen einer Portierung im Webbereich und einer Portierung im GUI/Client/Server Bereich unterscheiden würde. Da ich also häufiger mit dem Thema in Berührung komme, einmal meine Gedanken und Erfahrungen in einem Blogbeitrag dazu. Auch stehen ein paar weitere Details unter Service.

 

Portierungen im Bereich Web

 

Hier habe ich bisher meistens Webseiten in das CMS Typolight portiert. Manchmal ging es nur um einfache Webseiten. Es gilt hier zwischen normalen Webseiten und Portalen zu unterscheiden. Während die Portierung einer kleinen bis mittleren Webseite häufig nicht viel Programmierung mit sich bringt, sondern eher arbeit im Bereich CSS/HTML, ist bei Portalen häufig auch die gesamte Funktionalität entsprechend im neuen System zu programmieren.

 

Webseitenportierung nach Typolight

 

Kleine und mittlere Webseiten sind häufig einmal erstellt, und der Besitzer will dann keine großen Änderungen mehr, weil dies wieder zu viel Kosten würde. Mit einem CMS wie Typolight lässt sich eine Webseite relativ einfach portieren und wieder online stellen. Dann ist es relativ einfach Texte oder Bilder in der Webseite zu ändern. Dies ist häufig auch die Hauptmotivation für Portierungen in diesem Bereich, da die Webseite ihr gewohntes Erscheinungsbild behalten soll, und nur eine Modernisierung im HTML/CSS und ein CMS gewünscht ist. Wenn eine Seite komplett neu erstellt wird, würde ich auch nicht mehr von einer Portierung sprechen.

 

Portierung von Webportalen

 

Die Portierung von Webportalen ist schon deutlich komplexer, da auch Prozesse und Skripte ganz oder teilweise neu erstellt werden müssen. Auch hier habe ich schon mit Typolight gearbeitet, u.a. wurde ein Mobilfunkportal von einer java basierten Lösung nach Typolight portiert. Hier musste auch vor der eigentlichen Programmierung ein Clickdummy erstellt werden, um entsprechend die Funktionalität der Seite abzubilden, und das HTML/CSS im Vorfeld schon mal anzupassen. Dies wurde dann später nach Typolight übernommen.

 

Plattformunabhängigkeit und das Portieren von Client/Server oder GUI Applikationen

 

Ein weiterer Schwerpunkt bei meiner Arbeit sind Portierungen auf andere Betriebssysteme und die plattformunabhängige Erstellung von Software. Hier verwende ich in C++ Qt oder wxWidgets in Kombination mit boost und der STL. So ist die Portierung von GUI und Clientapplikationen auch einer meiner Tätigkeiten im Portierungsbereich. Dies ist häufig relativ einfach, wenn schon vorher die Applikation sauber erstellt wurde. Wenn sowieso eine aufwändige Portierung vorliegt, lohnt es sich häufig durch plattformunabhängige Programmierung auch für andere Plattformen den Portierungsaufwand gering zu halten. So kann eine Qt/wxWidgets Applikation ohne große Probleme unter Windows entwickelt, und später innerhalb einer weniger Tage unter Linux lauffähig und getestet sein.

 

tl_files/codenode/portierung2.png

 

Mit boost/STL lässt sich hier auch für eine Applikation ein Backend erstellen, welches später für weitere non GUI Applikationen verwendet werden kann. Das Client/Server Protokoll würde ich heute eher in boost::asio implementieren, als mit wxWidgets oder Qt.

 

Portierung von mobilen Apps

 

Qt bietet mit Qt Mobility auch die Möglichkeit mobile Applikationen zum Beispiel von IPhone OS oder Android nach Qt unter Symbian, Maemo und Windows Mobile lauffähig zu portieren. Mit Qt Mobility stellt Nokia ein Framework zur Verfügung, welches neben Windows, Linux und Mac OS auch die genannten mobilen Plattformen abdeckt. So kann es auch interessant sein, eine mobile Applikation mit Qt so zu portieren, das sie auch auf Netbooks mit Windows7/Linux lauffähig ist.

 

tl_files/codenode/mobil.png

Zurück