Einführung in Railo Open Source

Railo ist ein Open Source Java Application Server, der CFML (ColdFusion Markup Language) implementiert, eine Tag-basierte Sprache aus Adobes kommerziellem Produkt “ColdFusion.” Die Leistung ist ausgezeichnet und enthält Funktionen, die die Produktivität erheblich steigern.

Railo ist ein relativer Neuling, hat aber in letzter Zeit einige beeindruckende Wellen in der Branche geschlagen. Dieser Artikel ist eine Einführung in einige der kritischen Vorteile von Railo und warum es sich lohnt, einen ernsthaften Blick auf die Entwicklung von Webanwendungen zu werfen.

Ist ColdFusion nicht tot?

Vor ein paar Jahren wurde ein Artikel veröffentlicht, in dem 10 Technologien genannt wurden, die tot oder sterbend waren, und zur Überraschung vieler Leute war ColdFusion in dieser Liste. Das verursachte viele Wellen. Eine Sache über CFML-Entwickler – sie sind begeistert von ihrer Programmiersprache!

ColdFusion hat in bestimmten vertikalen Märkten mäßige Erfolge erzielt, wurde jedoch von der US-Regierung besonders gut angenommen. Im Vergleich zu dominanten Entwicklungssprachen schien CFML bei den Massen nie wirklich Anklang zu finden. Da ColdFusion so überarbeitet wurde, dass es vollständig auf Java läuft, und mit der Einführung von Adobe Flex vor einigen Jahren, das Flash und ColdFusion integriert, hat sich dies erheblich geändert. Das ColdFusion-Produkt von Adobe lässt sich so gut in Flex integrieren, dass es neues Interesse geweckt hat.

Eine der größten Beschwerden über Adobe ColdFusion war immer der Preis. Ich habe die Erfahrung gemacht, dass CFML-Entwickler sich als Branchenkollegen von LAMP-Entwicklern (Linux, Apache, MySQL, PHP) betrachten, die alle Open-Source-Tools verwenden. Die Mehrheit der LAMP-Entwickler betrachtet ihre Fähigkeiten als viel höher als die der CFML-Entwickler. Dies hat nur die Wut der CFML-Entwickler über die Jahre genährt, die behaupten, dass die Investition in den Kauf von ColdFusion eine schnelle Kapitalrendite darstellt, da CFML so viel produktiver ist.

Jetzt kommt Railo und bietet eine kostenlose Open-Source-Lösung für die Träume der CFML-Entwickler. Es ist nicht nur kostenlos, sondern auch fantastisch, stabil und wird ziemlich häufig aktualisiert. Dies ist eine gute Nachricht für CFML, die meiner Meinung nach stark unterschätzt wird, hauptsächlich aufgrund schlechter Marketing- und Verkaufspreise im Laufe der Jahre. CFML ist eigentlich eine ziemlich leistungsfähige und überraschend produktive Sprache und wurde als RAD-Tool (Rapid Application Development) entwickelt. Es hat sich zu einem deutlich besseren Produkt entwickelt und verdient sicherlich mehr Respekt als bisher. Aber genug von CFML, lassen Sie uns darüber sprechen, warum ich Railo so beeindruckend finde und was sich von der Konkurrenz unterscheidet.

Was können Sie mit Railo machen?

Vielleicht ist der beste Weg, dies zu beantworten, zu sagen: “Was KANNST du NICHT mit Railo machen?” Die CFML-Sprache ist im Wesentlichen eine große Java-Tag-Bibliothek. CFML hat sich im Laufe der Jahre zu einer beeindruckenden Bibliothek entwickelt und Railo unterstützt alles, was Adobes Produkt unterstützt und im Mainstream-Einsatz ist. (Es gibt einige Unterschiede zwischen der Unterstützung, da sowohl Railo als auch Adobe neue Versionen ihrer Produkte veröffentlichen).

Die Kernfunktionen der Railo-Sprache bieten einfach zu erlernende Tags für alles, von Datenbankabfragen über das Senden dynamischer E-Mail-Nachrichten bis hin zu Skriptverbindungen mit FTP und Amazon s3-Speicher. So ziemlich alles, was Sie mit PHP machen können, können Sie mit Railo machen. Hier ist der Haken – im Allgemeinen dauert es weniger Zeit, eine Lösung mit CFML zu implementieren als mit PHP, ASP.net oder reines Java.

Verwenden Sie CFML für die Grundlagen; Erweitern Sie mit Java.

Während Railo Ihnen viele eingebaute Funktionen bietet, ist die wahre Wahrheit der Situation, dass es Java unter der Haube ist. Alle Tags und Funktionen werden letztendlich kompiliert und als Java-Bytecode ausgeführt. Die Sprache ist jedoch gut gestaltet, sodass Sie Ihren CFML- und Java-Code mischen und anpassen können.

Wenn Sie beispielsweise eine Textdatei einlesen möchten, können Sie das integrierte Tag CFFILE:

< cffile action="lesen" Datei ="c: webmessage.txt" variable="strContent"></cffile>

Dies liest den Inhalt der Textdatei ein und speichert ihn in der angegebenen Variablen.

Um diesen Inhalt im Webbrowser anzuzeigen, würden Sie ihn wie folgt ausgeben:

<cfoutput>#strContent#</cfoutput>

Um zu veranschaulichen, wie Java direkt in Ihrem Code verwendet werden kann, kann dieselbe Aufgabe mit Java-Objekten anstelle der integrierten CFML-Tags wie folgt ausgeführt werden:

< cfobject type="Java" class=" java.io.FileReader" Action="Erstellen" name="myFileReader"><cfset Ergebnis = FileReader.init("c:webmessage.txt");<cfoutput>#strContent#</cfoutput>

Diese beiden kleinen Codeteile erreichen die gleichen Ziele. Mein Punkt ist, dass die CFML-Sprache nicht nur auf CFML beschränkt ist, Sie können jedes Java-Objekt an einer beliebigen Stelle in Ihrem Code instanziieren und verwenden.

Dies macht die Sprache unglaublich flexibel, da Sie die CFML-Tags für schnelle und einfache Aufgaben verwenden und Java bei Bedarf für schweres Heben verwenden können.

Deployment- und Entwicklungsumgebungen

Alle Versionen von Railo können entweder als “Express”, “Server” oder “Custom” Deployment heruntergeladen werden. Die Express Edition ist extrem einfach für Entwickler und läuft zu bekommen und in der Regel beinhaltet nur eine ZIP-Datei auf Ihrem lokalen System dekomprimieren und starten. Das Serverpaket wird zusammen mit Caucho Resin geliefert, einem sehr leistungsstarken Java-Anwendungsserver. (Randnotiz – einige der in Resin enthaltenen Tools sind ebenfalls ziemlich beeindruckend, einschließlich ihrer All-Java-Implementierung von PHP!). Das benutzerdefinierte Bereitstellungspaket dient zum Starten von Railo auf anderen Java-Servlet-Containern wie Tomcat oder Weblogic.

Das Einrichten von Railo auf einem Produktionsserver war nicht schwierig, zugegeben, es ist etwas aufwändiger als das Installieren von RPMs Ihrer bevorzugten PHP-Version, aber die Dokumentation war auf der Railo-Website und anderen Websites, die über Google gefunden wurden, leicht zu finden.

Wie das Produkt von Adobe verfügt Railo über Webadministrationstools zur Verwaltung der server- und anwendungsspezifischen Einstellungen und Ressourcen. Dies ist ein großer Schritt gegenüber der PHP- und Linux-Welt, in der Sie normalerweise viele Einstellungen Ihrer Anwendung (z. B. Datenquellen) in Konfigurationsdateien konfigurieren müssen. Der Railo Administrator geht ein paar Schritte über Adobe hinaus und stellt kontextspezifische Verwaltungskonsolen zur Verfügung, sodass einzelne Anwendungen und Websites ihre eigenen Sandbox-Datenquellen, virtuellen Zuordnungen und mehr definieren können. Dies ist eine wirklich nette Geste und seit langem ein gefragtes Feature.

Wo Railo glänzt

Ich habe bereits einige der Gründe überprüft, warum Railo beeindruckend ist. Abgesehen davon, dass es sich um ein sehr leistungsfähiges RAD handelt, dessen Leistung mit Adobe mithalten kann oder diese übertrifft, zeichnet sich Railo durch einige beeindruckende Funktionen aus.

Virtuelle Dateisysteme und Zuordnungen

Als Entwickler mussten wir uns alle einmal mit der Verwaltung entfernter oder komprimierter Dateien befassen. Diese Funktion in Railo erledigt mit wenigen Mausklicks, was Hunderte von Codezeilen erfordert. Mit Railo können Sie Remote-Dateisysteme wie FTP, Laufwerksfreigaben und sogar Amazon S3-Buckets zuordnen und einem virtuellen Pfad in Ihrer Anwendung zuweisen! Dies bedeutet, dass Sie die einfachen integrierten Funktionen für die Dateimanipulation verwenden und diese Dateien so behandeln können, als würden sie direkt im lokalen Dateisystem liegen. Die Unterstützung geht noch weiter, und können Sie Java-JAR-Dateien zuordnen und .zip-Dateien, so können Sie dynamisch referenzieren und ausführen Code sitzen in komprimierten Archiven.

Das Einrichten neuer Zuordnungen ist eine Point-and-Click-Angelegenheit im Railo-Administrator oder kann programmgesteuert erfolgen.

Anwendungsverteilung und Quellcodesicherheit

Die Java-Welt war Webanwendungsentwicklern beim Packen und Verteilen von Anwendungen immer einen Schritt (in Ordnung, mehrere Schritte) voraus. Viele Entwickler verfügen über eigene Methoden zum Bereitstellen einer Site, und viele Webentwicklungsanwendungen wie Dreamweaver verfügen über eine FTP-basierte Bereitstellungsmethode. Letztendlich bedeutet es normalerweise, ungeschützten Quellcode zu übergeben.

Die CFML-Entwicklung verlief auf die gleiche Weise (ja, Adobe hatte eine Möglichkeit zum Kompilieren .cfm-Vorlagen, aber meine Forschung zeigt, dass es sowohl ungeschickt als auch nicht sehr beliebt ist). Railo bringt die Bereitstellung von “Java World” -Paketen in die CFML-Entwicklung. Sie können eine ganze Anwendung in Java-Bytecode kompilieren, in eine JAR-Datei komprimieren und auf einem anderen Railo-Server bereitstellen. Railo ist sogar intelligent genug, um eine Remote-JAR-Datei auf einer FTP-Site zuzuordnen und als lokale Webanwendung auszuführen. Dies bedeutet, dass Sie über alle Tools verfügen, die Sie zum Bereitstellen von Webanwendungen benötigen, ohne Ihre Quelle verfügbar zu machen.

Integrierte AMF-Unterstützung für Flex / Flash-Anwendungen

Seit Adobe seine BlazeDS AMF-Tools als Open Source zur Verfügung gestellt hat, hat Railo sie in ein benutzerfreundliches System integriert, das mit Flash-Anwendungen “einfach funktioniert”.

Anwendungsübergreifende Integration, PDF- und Videomanipulation

CFML kann bereits in eine Vielzahl von Datenbanksystemen integriert werden und kann erweitert werden, um jedes der zahlreichen Open-Source-Java-Projekte zu verwenden.

Railo kann verwendet werden, um mit Amazon Web Services wie EC2 und S3 für Cloud-Computing-Anwendungen zu kommunizieren. Railo verfügt auch über integrierte Funktionen für Dateikonvertierungen, z. B. die dynamische Generierung von PDFs sowie die programmatische Bearbeitung und Formatkonvertierung von digitalem Video. Mit ein paar einfachen Codezeilen können Sie Ihre Videodateien in verschiedene Formate konvertieren, Miniaturansichten für die Webvorschau extrahieren und diese dann auf Amazon S3 ablegen lassen, um sie aus der Cloud bereitzustellen. Sehr cooles Zeug, und es lohnt sich, einige der Beispiele auf der Railo-Website zu betrachten.

Wenn Sie sich den Code ansehen, der diese Funktionen verwendet, sieht er recht einfach aus und es ist erstaunlich, dass Railo sie wie ein Kinderspiel aussehen lässt, aber hinter den Kulissen findet eine ernsthafte Integration zwischen den Systemen statt. Railo macht es so einfach, diese Funktionen zu jeder Webanwendung hinzuzufügen.

Unendlich erweiterbar mit Java

Wie oben erwähnt, ist es einfach, Java-Klassen innerhalb von CFML-Seiten aufzurufen. Da Railo selbst in einem Java-Container läuft, bedeutet das, dass beliebige Klassen oder Code aus der Java-Welt integriert und mit einer Railo-Anwendung verwendet werden können.

Meine Erfahrung beim Erstellen eines Railo-Projekts

Mein Unternehmen hat ColdFusion für mehrere Projekte verwendet. Eines unserer kommerziellen Produkte basiert darauf und wurde ursprünglich für Adobe ColdFusion entwickelt. Unser Produkt macht viel schweres Heben mit Datenbanken, Internationalisierung, Dokumentformatkonvertierungen, PDF-Vorschauen und vielem mehr.

Anfang 2009 haben wir die Quelle komplett auf Railo umgestellt. Es gab nur kleinere Bereiche, in denen unser Code geändert werden musste, und die meisten von ihnen enthielten benutzerdefinierten Java-Code, den wir geschrieben hatten und der einfach aktualisiert werden musste, um mit den Java-Bibliotheken von Railo kompatibel zu sein. Die angenehme Überraschung kam, als wir fertig waren und eine deutliche Leistungssteigerung auf Railo bemerkten.

Zusammenfassung

Zusammenfassend war ich von Railo sehr beeindruckt. Die Leute bei Railo sind reaktionsschnell und kümmern sich wirklich um die Entwickler-Community, und das Produkt liefert wirklich, was es behauptet. Sie haben eine Anwendungsentwicklungsplattform bereitgestellt, die sowohl branchenkompatibel als auch innovativ ist. Ich denke, alle erfahrenen Webanwendungsentwickler werden zu schätzen wissen, was Railo zu bieten hat. Ich glaube, dass eine so leistungsstarke Integration, die so einfach mit nur wenigen Codezeilen durchgeführt werden kann, viel Aufmerksamkeit erregen wird. Dies ist definitiv eine Technologie, die Sie im Auge behalten sollten.

Leave a Reply