Vier Schritte zur Auswahl von Entwicklungstechnologien

Beim Start eines neuen Programmierprojekts stellt sich die Frage nach der passenden Technologie und Architektur. ZDNet gibt Tipps zur Entscheidungsfindung.

Wer ein Programmierprojekt in Angriff nehmen will, fragt sich oft, nach welchen Kriterien man seine Technologien hinsichtlich Leistung und Duuchführbarkeit am besten auswählt. Von folgenden drei Voraussetzungen wird zunächst einmal ausgegangen: Man schreibt seit einiger Zeit ab und zu Code, hat jedoch noch nicht an größeren Projekten gearbeitet. Man bevorzugt keine bestimmte Technologie und hat den Vorteil, bei diesem Projekt bei Null anzufangen. Aufgrund vorhandener Erfahrung besteht zwar eine Vorliebe für den Einsatz von Linux, doch ist dies nicht zwingend.

Dieser Artikel gibt einige Ratschläge zur Entscheidungsfindung. Es werden keine speziellen Technologien empfohlen, sondern es soll ein Weg aufgezeigt werden, der die Entscheidung für Technologien und Architekturvarianten erleichtert.

Schritt 1: Grober Entwurf der Anwendung

Agile Methoden sind sehr beliebt geworden und manche glauben, dies bedeute, nicht weiter als über einen Zeitraum von zwei Wochen hinaus zu denken. Doch ein grober Entwurf des Projekts kann sehr hilfreich sein. Es reicht aus, ein Tool zu verwenden, das Ablaufdiagramme erstellen kann, etwa Visio, um einen Überblick über die höhere Logik zu erstellen. Man muss nicht zu sehr ins Detail gehen, Schritte wie „validieren, dass dieses Feld mindestens fünf Zeichen enthält“ oder Datenlayouts sind unnötig. Aber man muss eine allgemeine Idee davon haben, welche Bereiche der Anwendung welche Aufgaben ausführen.

Beispiele für Dinge, die in diesem Diagramm auftauchen sollten:

  • alle wichtigen Stapelverarbeitungstasks
  • Speicherort von Daten (Dateien, Datenbanken, „Cloud“ et cetera) und welche Komponenten die Daten abrufen und dem Rest der Anwendung zugänglich machen
  • wo der Großteil der Verarbeitung stattfindet, beispielsweise in der Datenbank, in einer Geschäftslogikschicht, einem Webdienst und dem Client, und wozu

    Schritt 2: Ressourceneinsatz und Charakteristika ermitteln

    Anhand des fertigen Diagramms wird der Ressourceneinsatz ermittelt. Relevante Ressourcen sind CPU, RAM, Festplattenspeicher und Bandbreite. Sollen große Datenmengen zu oder von einem externen Webdienst transferiert werden? Dann handelt es sich um eine Bandbreitenressource in der Verbindung zwischen der Anwendung und diesem Dienst. Werden speicherintensive Berechnungen in der Datenbank durchgeführt, so betrifft dies die CPU-Auslastung in der Datenbank.

    Schritt 3: Leistungskritische Bereiche ermitteln

    Wenn man weiß, wo die vorhandenen Ressourcen zum Einsatz kommen, kennt man auch mögliche Leistungsengpässe. An diesen Punkten wirkt sich die Technologiewahl am meisten aus. Wenn in einer Datenbank nur sehr wenig gespeichert werden soll, hat man bei der Wahl der Datenbank mehr Möglichkeiten. Für Algorithmen mit hoher CPU-Auslastung in der Geschäftslogikschicht braucht man eine Sprache und Plattform, die schnelle Berechnungen unterstützt. Aus der folgenden Tabelle geht hervor, wie sich dies auf die Entscheidungsfindung auswirkt.

      CPU RAM Festplattenspeicher Bandbreite
    Datenbank DB muss ein hochleistungsfähiges System wie PostgreSQL oder Oracle sein Alle größeren Datenbanken sollten mit viel RAM arbeiten können Einfache DB mit Größenbeschränkungen, wie SQL Server Express, sind ungeeignet Platzieren der Anwendung im selben Serverraum wie die Datenbank
    Geschäftsschicht Sprache muss schnell sein und braucht gute Multithreading-Unterstützung Nicht zutreffend Platzieren der Anwendung im selben Serverraum wie die Festplatten Platzieren der Anwendung im selben Serverraum wie die Datenbank
    API mit Client-Zugriff Sprache muss schnell sein und braucht gute Multithreading-Unterstützung Nicht zutreffend Architektur überdenken Strategie überdenken
    Client-Software Sprache muss schnell sein und braucht gute Multithreading-Unterstützung Zielmarkt und dessen Client-Fähigkeiten beachten Zielmarkt und dessen Client-Fähigkeiten beachten Sichergehen, dass Zielmarkt über ausreichende Bandbreite verfügt (z B. nicht an Verbraucher in ländlichen Gebieten verkaufen)
    Dienste von Fremdanbietern Anbieter sorgfältig auswählen Nicht zutreffend Für Anbieter mit preisgünstigem Storage entscheiden Strategie überdenken

    Schritt 4: Skalieren von Anforderungen

    Als weiterer Punkt lässt sich aus dem Diagramm ableiten, in welchen Bereichen die Anwendung skaliert werden muss. Wenn die Verarbeitung größtenteils im Client-Teil der Anwendung stattfindet, kann die Server-Architektur zum Beispiel sehr viel kleiner gehalten werden.

    Man sieht außerdem, welche Art der Skalierung nötig ist. Die meisten Datenbanken haben Cluster-Funktionen. Wenn man die Wahl hat, ist es oft einfacher und besser, Bereiche, die skaliert werden müssen (besonders wenn sie einen Freigabestatus zwischen Anforderungen benötigen), in die Datenbank zu legen, wo Skalierung schon vorgesehen ist, oder sich für Technologien weiter oben in der Struktur zu entscheiden, die auch Clustering oder Skalieren beinhalten.

    Fazit

    Wenn man zu Beginn des Entwicklungsprozesses die Logik der Anwendung grob skizziert, ist es einfacher, die Technologien auszuwählen, die am besten zu den eigenen Anforderungen passen. Es sind auch viele nichttechnische Punkte zu beachten (wie Budget, Erfahrung mit bestimmten Technologien), aber dieser Entscheidungsfindungsprozess kann als Ausgangspunkt dienen, um die Möglichkeiten einzugrenzen und Probleme schon vor dem Auftreten zu ermitteln.

  • Themenseiten: Anwendungsentwicklung, Plattform, Software

    Fanden Sie diesen Artikel nützlich?
    Content Loading ...
    Whitepaper

    ZDNet für mobile Geräte
    ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

    Artikel empfehlen:

    Neueste Kommentare 

    Noch keine Kommentare zu Vier Schritte zur Auswahl von Entwicklungstechnologien

    Kommentar hinzufügen

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *