HOME  
  KONTAKT -  NEWSLETTER -  IMPRESSUM
  
 SUCHBEGRIFF



 

  
AKTUELLSTE BEITRÄGE 

  Klärung der Begrifflichkeiten und Abgrenzung von MAM gegenüber CM, DM und KM Systemen

  Media Asset Management: Wirtschaftliche Aspekte und Zielgruppen

  Strategische Marketinginfrastruktur als Voraussetzung für Multichannel-Marketing und Crossmedia Publishing

  Herausforderungen für ein Marketing in einer multimedialen und vernetzten Welt

  Das menschliche Mass in der Wissensgesellschaft und im Wissensmanagement

  Aufarbeitung des Firmengedächtnisses am Beispiel der Archive von Banken

  Content erfolgreich kostenpflichtig machen

  In den Suchmaschinen gefunden werden trotz(!) Web Content Management System und dynamischem Seitenaufbau

  Effizient online recherchieren: Crashkurs für Manager

  Marktübersicht der grossen Wissensmanagement-Systeme

  Metadaten für Content-Indizierung und Wissenssicherung, Teil 1

  Newsletter | www.internetmanagement.ch | 27.1.2001

  
[VOLLSTÄNDIGE ÜBERSICHT
ALLER ARTIKEL]



  

  
HINTERGRUND
  
KONTAKT
  
IMPRESSUM
  
HOMEPAGE
  
NEWSLETTER
ABONNIEREN
(gratis, monatlich)

  
THEMATISCHES
DOSSIER
GENERIEREN

  
PARTNERSCHAFTEN
  
MEDIADATEN/
HIER WERBEN

  
BUCHTIPPS
  
DOWNLOADS/TOOLS

      



Programmierung & Technik

Modulare Web-Entwicklung am Beispiel des Fusebox-Modells mit ColdFusion


17.04.2000

Entwickeln Sie anhand einer strukturierten Applikationsarchitektur und bauen Sie sich ein eigenes Web-Application-Framework, um zukünftig transparente Applikationen zu entwickeln, besser im Team zu arbeiten, einmal programmierte Grundfunktionen einfach wiederverwenden zu können und eine Menge Entwicklungszeit zu sparen.
Dieser Artikel führt in entsprechende Techniken ein und leitet Sie an, diese selbständig zu vertiefen.



Das Management grosser Websites und komplexer Webapplikationen ist eine schwierige Aufgabe. Oft werden anfangs definierte Standards später nicht mehr beachtet, die Komplexität wird kaum noch kontrollierbar, Code ist nicht wiederverwendbar und die Fehlersuche wird zur Höllenqual.

Die Lösung besteht in der Reduktion von Komplexität und Schaffung von Transparenz durch
  • Aufteilung des Applikationscodes auf kleinste logische Einheiten
  • Abbildung und Kontrolle der Applikationsstruktur in einer Manager-Datei
Dabei hilfreich ist eine strukturierte und modularisierte Architektur wie sie im sogenannten Fusebox-Modell vorgegeben ist.
Dies bringt folgenden Nutzen:
  • Wiederverwendbarkeit von Applikationsteilen: Eine intelligente Modularisierung und Parametrisierung von Code-Teilen macht diese skalierbar und ermöglicht deren beliebige Wiederverwendbarkeit - auch in anderen Applikationen.

  • Standardisierung der Applikationsstruktur / Teamarbeit: Alle Teilapplikationen sind gleich aufgebaut, auch wenn Sie im Team arbeiten. Dadurch wird Teamarbeit an einer Applikation leichter bzw. überhaupt erst möglich.

  • Selbstdokumentation und Transparenz: Die Fusebox-Struktur macht jede Applikation sehr transparent und bildet eine Art Selbstdokumentation der Applikationsstruktur und -funktionalität. Dadurch können andere Entwickler rasch Struktur und Funktionalität einer Applikation nachvollziehen. Auch die Fehlersuche (Debugging) wird wesentlich erleichtert; zumindest lassen sich so Fehler schneller lokalisieren.

  • Lösungsorientiertes Entwickeln: Fusebox ermöglicht ein anwendungsbezogenes Denken und Entwickeln - ohne dass man sich ständig in der Applikationsarchitektur verliert. Das hilft dabei, nicht am Benutzer vorbeizuentwickeln.

Das Fusebox-Modell

Das sogenannte Fusebox-Modell wurde von einer Reihe begabter Entwickler hervorgebracht. Es orientiert sich am Sinnbild eines Sicherungskastens (englisch 'fusebox'). Eine Applikation besteht aus Teilapplikationen (= die einzelnen Sicherungen, die 'fuses'); für jede Aktion gibt es eine. Diese Aktionen werden von einer einzigen zentralen Datei aus verwaltet und kontrolliert - diese entspricht bildlich dem Sicherungskasten. Funktioniert eine der Aktionen ('fuses') nicht, dann kann so nicht gleich die gesamte Applikation 'durchbrennen' - und der Rest der Applikation bleibt weiterhin funktionstüchtig. Die Teilapplikationen, in diesem Modell 'fuses' genannt, sind nicht direkt miteinander querverlinkt, sondern weisen alle auf die zentrale Datei und übergeben an diese die neu vom Benutzer gewünschte Aktion. Real sieht das so aus, dass die index.cfm-Datei mit dem angehängten Parameter 'fuseaction' (natürlich können Sie ihn auch anders nennen) aufgerufen wird, der die gewünschte Aktion bezeichnet. Beispiel: index.cfm?fuseaction=seitensuche

In der zentralen index.cfm-Datei werden dann die weiteren Dateien, die für die Ausführung dieser Aktion nötig sind, einfach hinzugezogen (per CFINCLUDE oder CFMODULE). Da in dieser index.cfm-Datei alle möglichen Aktionen ('fuseactions') behandelt werden, gibt die Struktur des entsprechenden CFIF- oder CFSWITCH-Gerüstes die Applikationsstruktur wider.

Das ist in groben Zügen das Grundprinzip des Fusebox-Modells. Es gibt zwar noch eine Menge dazu zu sagen, aber allein mit diesem einfachen Prinzip können Sie sich viel Arbeit sparen und transparentere Applikationen entwickeln.

Beginnen Sie mit einer einfachen Übung. Gehen Sie auf http://www.fusebox.org/examples/index.cfm und schauen Sie sich zunächst die einfachen Beispiele an. Nehmen Sie sich zuerst das 'Hello World Example' vor. Mit Klick auf 'Behind The Scenes' können Sie sich den Quelltext der Dateien anschauen. Verstehen Sie den Aufbau der index.cfm-Datei und die Verwendung des fusebox-Parameters.
Laden Sie sich den Code herunter und bauen Sie sich daraus ihre erste eigene, aber einfache Fusebox-Applikation.


Gehen Sie so in der Praxis vor:

1. Die Spezifikationen der zu schreibenden Applikation müssen mit dem Benutzer/Kunden herausgearbeitet werden. Das Thema 'Projektphasen' soll in diesem Artikel nicht weiter ausgeführt werden. Aber selbst wenn Sie zu den Entwicklern gehören, die sich gegen Projektdokumentation sträuben (und das sind fast alle), so müssen für das hier beschriebene Verfahren zumindest alle Aktionen, die der Benutzer mit der Applikation durchführen können soll, klar unterschieden und identifiziert werden.

2. Für jede der herausgearbeiteten Aktionen legt man ein entsprechend benanntes Unterverzeichnis unterhalb des Hauptverzeichnisses der Applikation an.

3. Jede Teilapplikation (im Fusebox-Modell 'Circuit Application' genannt) erhält eine eigene index.cfm-Datei. Eine index.cfm-Datei kontrolliert alle Aktionen ('fuseactions' genannt) der jeweiligen Applikation.
Grundlegend enthält eine index.cfm-Datei ein CFSWITCH-Tag mit CFCASE-Statements. Jedes CFCASE ist eine andere Fuseaction und es INCLUDEd die nötigen Dateien.
Eine index.cfm-Datei ist hier die 'Box' in Fusebox, die durch die Verwaltung der Aktionen die Struktur der Applikation abbildet - sei es nun die Home Application (auf grundlegender Stufe) oder eine Circuit Application.

4. Eine Fuseaction besteht aus einer oder mehrerer cfm-Dateien (die 'fuses'), die in der index.cfm-Datei INCLUDEd und somit ausgeführt werden.

5. Die 'Fuse'-Dateien sind dann die Dateien, die den eigentlichen Programmcode enthalten - hier wird aber nicht alles in eine Datei gequetscht, sondern es werden verschiedene Typen unterschieden, und somit wird modular vorgegangen. Zumindest sollte zwischen drei Dateitypen klar unterschieden werden:
  • dsp_filename.cfm - Display files: Dateien, die nur für die Ausgabe zuständig sind, aber selbst keine Prozesse durchführen ('dsp' = display)
  • act_filename.cfm - Action files: Dateien, die Prozesse durchführen
  • qry_filename.cfm - Query files: Dateien, die ausschliesslich SQL-Befehle enthalten
Fortgeschrittene unterscheiden noch weitere Typen und verwenden zusätzlich Dateien mit global und lokal gültigen Variablen. Die eben genannte Unterscheidung von drei Typen reicht aber schon aus, um eine grosse Transparenz in den Code zu bringen und um einzelne Code-Teile einfach wiederverwenden zu können.

6. Alle Links gehen auf index.cfm zurück!
Alle Links und Formularaktionen zeigen auf das index.cfm zurück, nicht jedoch direkt auf die eigentlichen dsp- oder act-Dateien. Jeder Link bzw. jede Formularaktion enthält auch die auszuführende Fuseaction, also die Aktion, die als nächstes ausgeführt werden soll.

Dies geht auf vier Arten:

Universelles Format:
Gaestebuch anzeigen


Relatives Format:
Gaestebuch anzeigen


Absolutes Format:
Gaestebuch anzeigen


Verschiedene Server - Absolutes Format:
Gaestebuch anzeigen



Und hier nochmal das Grundlegendste kurz zusammengefasst

  • Eine Home-Applikation besteht aus zahlreichen kleinen Circuit-Applikationen

  • Eine Circuit Applikation besteht aus einem Verzeichnis mit Dateien. Das Verzeichnis einer jeden Circuit Applikation muss app_locals.cfm und eine index.cfm-Datei enthalten. Zusätzlich befinden sich Display/Action/Query-Dateien darin.

  • Eine index.cfm-Datei besteht aus einer oder mehreren fuseactions

  • Eine fuseaction enthält eine oder mehrere Display/Action/Query-Dateien und weitere notwenige ColdFusion-Logik


Quellen, mit denen Sie sich selbständig weiter in diese Techniken einarbeiten können

In diesem Artikel sollte das Fusebox-Prinzip nur kurz vorgestellt werden. Fusebox ist nicht nur eine Technik, sondern auch eine Community und ein Podium für Web-Entwickler, die modulare Applikationen schreiben möchten. Daher bieten sich folgende Quellen, anhand derer Sie sich selbständig tiefer einarbeiten können.

fusebox.org
Zentrale Website für das Fusebox-Modell ist http://www.fusebox.org/. Hier gibt es in englischer, teilweise auch französischer Sprache Dokumente und CF-Tags zum Fusebox-Modell. Whitepapers und Powerpoint-Präsentationen können Sie über http://www.fusebox.org/index.cfm?fuseaction=Spec herunterladen.
Das zentrale Dokument des Fusebox-Modells ist 'Fusebox Version 2.0 - Large Scale Fusebox Applications' von Steve Nelson
(http://www.fusebox.org/version2.0/documentation/index.cfm?fuseaction=onelongpage)
Für Fortgeschrittene ist der Einsatz einiger CF-Tags für Fusebox essentiell. Diese können Sie hier samt Beschreibungen herunterladen:
http://www.fusebox.org/index.cfm?fuseaction=Taggallery
Diese Dinge auf der fusebox.org-Website sollten Sie zunächst intensiv studieren, bevor Sie sich mit den folgenden Artikeln und Informationen beschäftigen.

Hal Helms
Hal Helms, ein Allaire-Mitarbeiter, hat eine eigene Homepage u.a. mit einer guten englischsprachigen Einführung zum Fusebox-Modell unter http://www.teamallaire.com/hal/

ColdFusion Developer's Journal
Auch das ColdFusion Developer's Journal hat sehr gute Beiträge zu Fusebox vorzuweisen:

'The problem of complexitiy, Part 1 - Complex projects call for methodical measures' von Hal Helms, mit Steve Nelson und Gabe Hoffman
(http://www.sys-con.com/coldfusion/archives/0103/helmsnelsonroffman/index.html)

'Using fusebox to combat complexity - Part 2' von Hal Helms, mit Gabe Hoffman und Steve Nelson
(http://www.sys-con.com/coldfusion/feature/1%2D4/helmsroffmannelson/index.html)

'A Fusebox How-To - Using Fusebox to gather requirements' von Hal Helms
(http://www.sys-con.com/coldfusion/archives/0202/helms/index.html)

'Fusebox Redux - Keeping track of complex Web sites' von Hal Helms
(http://www.sys-con.com/coldfusion/archives/0204/helms/index.html)

'Pending Fuseactions - Confessions of a web developer' von Hal Helms
(http://www.sys-con.com/coldfusion/archives/0203/helms/index.html)

Als interessante ergänzende Idee:
'The BlackBox Technique' - von Dan Chick
(http://www.sys-con.com/coldfusion/archives/0103/chick/index.html)


CFAdvisor
Der kommerzielle (US$89.- pro Jahr) ColdFusion-Informationsdienst CFAdvisor (http://www.cfadvisor.com) bietet zahlreiche interessante Artikel zu ColdFusion. Für Entwickler mit einem Hintergrund aus der objektorientierten Programmierung ist ganz besonders der (schon etwas ältere) Artikel 'OOP to Up Our Productivity' (http://www.cfadvisor.com/api-shl/engine.cfm?DepartmentID=4&ArchiveID=506) von Teo Graca zu empfehlen, in dem die Möglichkeiten von ColdFusion zur Simulation objektorientierter Aspekte sehr gut durchdacht werden - übrigens ohne das Fusebox-Modell ins Zentrum zu stellen.

Fusionauthority
Zum Weiterdenken und Ausprobieren: 'Making Full Use of the Tools at Hand (Part I)'
(http://www.fusionauthority.com/alert/index.cfm?alertid=17#Tech1)

Fusebox SpecTool
Unter http://www.fusebox.org/index.cfm?fuseaction=specstool bietet Steve Nelson ein kostenloses Tool, das die modulare Entwicklungsarbeit gemäss Fusebox erleichtern soll. Es wird gerade überarbeitet - freuen Sie sich auf die neue Version.

Fusebox-Mailinglist
In die Fusebox-Mailinglist, in der hochinteressante Diskussionen zu Fusebox und der Webentwicklung generell geführt werden, können Sie sich über http://www.houseoffusion.com/ eintragen.
In dieser Mailingliste werden so ziemlich alle Themen der anspruchsvolleren Webapplikationsentwicklung besprochen.

Deutschsprachige Fusebox-Plattform
Bisher gibt es keine deutschsprachige Diskussions-Plattform für das Fusebox-Modell.
Sollte sich die Website fusebox.de von Felix Huber demnächst prächtig entwickeln, werden Sie dort eine wertvolle Quelle für weitere deutschsprachige Fusebox-Informationen finden.



Hat Ihnen der Artikel etwas gebracht?
Möchten Sie etwas fragen?
Haben Sie selbst etwas hinzuzufügen?
Bitte lassen Sie es uns wissen!



(the)








Unser Angebot an Sie
Weiterführende kostenlose Beratung für Ihre konkreten Aufgaben und Probleme bekommen Sie, wenn Sie eine detaillierte Situationsbeschreibung auf unserer Wissensaustausch-Plattform (auf Wunsch anonym) platzieren. Wir kümmern uns dann um für Sie nützliche Antworten, die wiederum dort veröffentlicht werden, damit auch andere Leser einen Nutzen daraus ziehen können.


Möchten Sie künftig über solche und ähnliche Beiträge durch unseren monatlichen Newsletter informiert werden?
Dann abonnieren Sie hier den informativen, kostenlosen monatlichen Newsletter für Internet-Manager. Ihre Emailadresse:  


Klicken Sie hier für eine vollständige Übersicht über alle Berichte & Kommentare.


Sieben weitere aktuelle Berichte & Kommentare

17.06.2002: Klärung der Begrifflichkeiten und Abgrenzung von MAM gegenüber CM, DM und KM Systemen
02.06.2002: Media Asset Management: Wirtschaftliche Aspekte und Zielgruppen
01.06.2002: Strategische Marketinginfrastruktur als Voraussetzung für Multichannel-Marketing und Crossmedia Publishing
26.05.2002: Herausforderungen für ein Marketing in einer multimedialen und vernetzten Welt
18.03.2002: Das menschliche Mass in der Wissensgesellschaft und im Wissensmanagement
06.02.2002: Aufarbeitung des Firmengedächtnisses am Beispiel der Archive von Banken
03.12.2001: Content erfolgreich kostenpflichtig machen



    Copyright © 2000  INTERNETMANAGEMENT.CH
    












   NEWSLETTER: Abonnieren Sie den kostenlosen Newsletter für die Aufgaben von Unternehmen im Internet-Zeitalter, um ca. alle 6 bis 8 Wochen relevante Informationen zu diesen Themen per Email zu erhalten.

   WISSENSAUSTAUSCH-PLATTFORM: Schauen Sie auch in unsere neue fachlich betreute Wissensaustausch-Plattform für vertiefende Informationen und Diskussionen zwischen Ihnen, anderen Lesern und dem Team von Internetmanagement.ch