ColdFusion

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Cold Fusion Markup Language)
Wechseln zu: Navigation, Suche

ColdFusion ist eine für Web-basierte Scriptsprache und Datenbank-Anwendungen konzipierte Middleware des Software-Herstellers Adobe Systems, die grundlegend aus den folgenden drei Teilen besteht:

ColdFusion steht dabei in direkter Konkurrenz zu vergleichbaren serverseitigen Systemen wie ASP.NET, JSP/Servlet, Ruby on Rails (RoR), ZOPE (Python), Perl und PHP. Im Gegensatz zu Skriptsprachen wie Perl, PHP, Python und Ruby, die Open Source sind, ist die Originalversion von ColdFusion nicht im Quellcode verfügbar. Der ColdFusion-Server von Railo ist allerdings im Quellcode veröffentlicht.

Allgemeines[Bearbeiten]

Mithilfe von ColdFusion lassen sich sehr schnell Webapplikationen oder Intranet-/Extranetanwendungen erstellen. Die einfache Tag-basierte Entwicklungssprache CFML ermöglicht einen einfachen Einstieg in die Programmierung und bietet erfahrenen Entwicklern sehr leistungsfähige Werkzeuge. Hierzu trägt auch die einfach gehaltene Installation und Administration des Servers bei. Ursprünglich rein prozedural ist ab Version 6.0 (ColdFusion MX) auch objektorientierte Programmierung in CFML möglich.

Ein entscheidender Unterschied zu vergleichbaren Systemen ist der serverseitige Einsatz der Indizierung einer gesamten Website mittels der implementierten Verity Engine (ab ColdFusion 9 kommt Solr zum Einsatz). Damit wird für den Anwender die ansonsten übliche Indizierung hinfällig: diese lässt sich über sogenannte Collections vom Administrator sowohl für Textdateien als auch für Datenbankinhalte steuern.

Application Server[Bearbeiten]

Der ColdFusion Application Server hat in entscheidenden Bereichen die Entwicklung der Web-Technologie geprägt.

Entwickelt wurde das Programm von Jeremy und seinem Bruder JJ Allaire. Sie gründeten 1994 die Allaire Corp. und vermarkteten ColdFusion und andere Produkte, wie beispielsweise HomeSite oder JRun. Mit WDDX wurde von Allaire schon früh ein Vorläufer zu den heutigen Webservices entwickelt, das zum Beispiel zur Content-Syndication verwendet wurde. ColdFusion war bei seinem Erscheinen 1995 der erste Anwendungsserver überhaupt und bis heute einer der erfolgreichsten weltweit – in seinem Mutterland, den USA, ist er sogar Marktführer. Außerhalb der USA hat es ColdFusion von je her etwas schwer und vor allem in Deutschland mit seiner traditionell starken PHP-Nutzergruppe ist ein Durchbruch nicht in Sichtweite. Umso weniger, als es sich hierbei um eine proprietäre (und auch kostenpflichtige) Software handelt. Dennoch verfügt ColdFusion über eine sehr aktive Nutzergemeinde wie die verschiedenen CFUGs (ColdFusion User Groups) beweisen.

Am 16. Januar 2001 übernahm Macromedia die Allaire Corp. und integrierte die Produkte in die eigenen Produktlinien. Mit der Version ColdFusion MX (6.0) wurde das Programm vollkommen neu geschrieben und die zugrundeliegende Engine auf J2EE umgestellt. Im Jahr 2002 wurde ColdFusion von Sun als 100 % Java-kompatibel zertifiziert. MX-Anwendungen laufen somit unter Bea Weblogic, genauso wie unter IBM WebSphere, SunOne oder Apache Tomcat. Von Haus aus wird JRUN 4 als Application-Server mitgeliefert.

Macromedia ColdFusion MX (6.1 und 7) wird in drei verschiedenen Versionen angeboten. Die kostenlose ColdFusion Developer Edition ermöglicht Interessierten den lokal begrenzten Einstieg in die Welt von CF. Die Standard- und Enterprise-Edition hingegen sind kommerzielle Versionen, die sich nur in Details wie der unterstützten Anzahl der Hauptprozessoren, den Betriebssystemen, Datenbankschnittstellen und der Clusterfähigkeit unterscheiden.

Mit der Version ColdFusion MX 7 kamen zu den bisherigen Funktionalitäten insbesondere Möglichkeiten zur Druckausgabe (PDF und FlashPaper), Reporting inkl. Report Generator, Event-Gateways (SMS, Instant Messaging usw.) und die Möglichkeit zur Generierung von XForms und FlashForms (durch die Verwendung von Apache Flex) hinzu. Siehe auch geeignete Entwicklungsumgebungen.

Es existierten weiterhin noch „freie Implementierungen“ die es ermöglichen, ColdFusion auf weiteren Webservern / Betriebssystemen zu verwenden. Diese werden meist als Modul in den Webserver integriert. Zu nennen sind hier die Lösungen Railo, BlueDragon, Smith, CORAL und IgniteFusion. Diese Open Source Script-Engines genannten Lösungen basieren alle auf der Möglichkeit, Java-Klassen und -Bibliotheken mit dem CFML-Code zu verschmelzen. Bereits im Juni 2007 stellte das Unternehmen Smith eine vollständig in Java geschriebene ColdFusion-Cross-Plattform vor. Die derzeit ernstzunehmendste Konkurrenz erfährt das Original durch das Schweizer Unternehmen Railo Technologies, das zusammen mit den Entwicklern von JBoss einen freien CFML-Applikationsserver herausgebracht hat.[1]

Nach der Übernahme von Macromedia durch Adobe werden nun alle Macromedia-Produkte von Adobe weiterentwickelt und vertrieben. Seitdem sind mittlerweile zwei weitere Versionen von ColdFusion erschienen. Dabei ist seit Adobe ColdFusion 8[2] eine stärkere Integration in die Windows-Welt mit Einführung neuer Schnittstellen zu Microsoft Exchange Server und ASP.NET deutlich erkennbar. Daneben wurden in die Version 8 Ajax-Widgets integriert, die Unterstützung für JSON wurde implementiert sowie Optionen zur Bild- und PDF-Bearbeitung. Außerdem wurde die Performance gegenüber dem Vorgänger erhöht.

Seit Oktober 2009 gibt es die aktuelle Version Adobe ColdFusion 9. Die größte Neuerung hierbei stellt die Unterstützung von Objektrelationale Abbildung (englisch: object-relational mapping; kurz: ORM) dar. Das ORM von ColdFusion 9 basiert auf dem aus der Java-Welt bekannten Hibernate und vereinfacht dadurch die persistente Datenhaltung enorm. Weitere Neuerungen beinhalten die enge Integration mit der auf Eclipse beruhenden IDE ColdFusion Builder, die Verarbeitung von Microsoft Office Dateien, eine Microsoft SharePoint Integration, erweiterte Flash Interoperabilität und die Zusammenarbeit mit Adobe AIR zur Datensynchronisation.[3]

Markup Language[Bearbeiten]

Die ColdFusion Markup Language (kurz CFML) ist eine Sammlung von Tags und Funktionen, die die Entwicklung von Webanwendungen stark vereinfachen. Trotzdem ist CFML eine sehr leistungsfähige Sprache die auch komplexe Technologien wie Datenbanken inkl. gespeicherter Prozeduren, ORM, PDF-Generierung, WSDL, LDAP, XML, XSLT, XForms, Verity und Solr etc. über einfache HTML-ähnliche Tags anzusprechen vermag. Alternativ zur Tag-Syntax kann man auch eine Skriptsyntax ähnlich der von PHP verwenden, welche in vergangenen ColdFusion Versionen vom Parser mitunter schneller verarbeitet werden konnte. Mit diesem Set an Werkzeugen wird ein Rapid Application Development ermöglicht. 2008 wurde die Weiterentwicklung der Sprache in das CFML Advisory Committee ausgelagert.[4] Obwohl diese Gruppe von Adobe gegründet wurde, besteht sie auch aus Mitarbeitern anderer CFML Serverentwickler als auch aus Community-Mitgliedern und soll so gewährleisten, dass der Sprachstandard offen und einheitlich gehalten wird.

Die ColdFusion Markup Language diente in Teilen als Vorlage für die Entwicklung von JSP 2.0 und der JSTL. Der Sprachumfang von CFML hat sich über die Jahre permanent weiterentwickelt. Eine gravierende Neuererung sind die Fusion Components (CFC). CFCs ermöglichen dem Entwickler einen stärkeren OOP-Ansatz bei der Entwicklung von Webanwendungen zu wählen.

Wird eine Seite mit CF-Code (Dateiendung .cfm, seltener auch .cfml) aufgerufen, dann fügt der Webserver gemäß den Skriptanweisungen HTML-Code in die Seite ein und reicht sie dann an den Webbrowser des Besuchers weiter. Dem Besucher zeigt sich also nur der HTML-Quelltext des Produkts, nicht des Skripts selbst. Letzterer bleibt dem Seitenbesucher (wie auch bei anderen serverseitigen Skripten wie z. B. PHP) verborgen.

Code-Beispiel[Bearbeiten]

Einfaches CFML-Skript (gibt „Hallo Welt!“ aus):

<cfoutput>Hallo Welt!</cfoutput>

Das erweiterte Skript in HTML integriert (gibt ebenfalls „Hallo Welt!“ auf der Webseite aus):

<cfset beispiel = "Hallo Welt!">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
    <title>Hallo-Welt-Beispiel</title>
   </head>
   <body>
    <cfoutput>#beispiel#</cfoutput>
   </body>
 </html>

Geeignete Entwicklungsumgebungen[Bearbeiten]

Zur CFML-Entwicklung stehen unter anderem folgende Umgebungen zur Verfügung:

Datendiebstahl[Bearbeiten]

Unbekannte Täter haben einer Mitteilung von Adobe am 3. Oktober 2013 zufolge den Sourcecode von Adobe Acrobat, Adobe ColdFusion, möglichen anderen Programmen und Kreditkartendaten von 2,9 Mio. Kunden gestohlen.[5][6]

Literaturhinweise[Bearbeiten]

  • Ralf Blittkowsky: Macromedia Studio MX 2004. Dynamische Websites entwickeln mit ColdFusion MX, Dpunkt, 2004, ISBN 3-89864-211-9
  • Philipp Cielen, Steffen Goldfuss, Christoph Schmitz: ColdFusion MX. Professionelle Anwendungsentwicklung fürs Web, AW, 2003, ISBN 3-8273-2068-2
  • Peter Müller: ColdFusion in 21 Tagen, M&T, 2001, ISBN 3-7723-6525-6

Weblinks[Bearbeiten]

Open Source[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. heise-online über die erste freie ColdFusion-Engine, 5. Juni 2008
  2. Artikel von Dezember 2007 auf "Create or die"
  3. Neuerungen in ColdFusion 9
  4. Ankündigung zur Bildung des CFML Advisory Committee
  5. blogs.adobe.com: Important Customer Security Announcement
  6. heise.de: Einbruch bei Adobe: Millionen Kundendaten sowie Sourcecode von ColdFusion und Acrobat geklaut