Technische Üœbersicht

Technische Umgebung

Farcry basiert auf dem Applikationsserver Adobe ColdFusion MX. ColdFusion ist eine von Sun zertifizierte Java-Applikation. Die ColdFusion Markup Language (CFML) wird vom ColdFusion Server in Javabytecode übersetzt. Auf ColdFusion basierende Anwendungen lassen sich mit den gängingsten J2EE Applikationsservern betreiben. Die Java-Architektur des Applikationsservers bildet ein robustes und skalierbares Grundgerüst. Bei der Entwicklung kann auf langwierige und teure Javaentwicklung verzichtet werden, stattdessen kann die Farcry Plattform sicher und schnell mittels der CFML angepaßt werden. 

Dynamisches Verfassen und Veröffentlichen von Inhalten

Farcry gestattet das Verfassen und Veröffentlichen von Inhalten zur Laufzeit (on the fly). Inhalte werden vom Onlineredakteur auf dem Produktionserver verfasst und anschließend veröffentlicht. Die Webseiten und deren Inhalten werden dynamisch erzeugt und den Besuchern angezeigt. Farcry erzeugt keine statischen Webseiten. Dank Farcrys ausgeklügeltem Caching Subsystem (CASS) kann es zu keinen Performanceeinbrüchen bei stark frequentierten Websites kommen.

Farcry ist Authoring-, Staging- und Produktionserver in einem, dennoch können diese Aufgaben bei sehr großen Projekten auf mehrere Server verteilt werden. Farcry kann den Stagingserver durch eine intelligente Vorschaufunktion während der Erzeugung neuer Inhalte ersetzen.

Suchmaschinenfreundliche URLs

Ohne den Prozess der Indexierung kann eine Website nicht von einer Suchmaschine in ihren Index aufgenommen werden. Farcry beherrscht die Verwendung suchmaschinenfreundlicher URLs, so dass die Robots der Suchmaschinen eine mit Farcry erstellte Website schnell und einfach indexieren können.

Content Objekt API (COAPI)

Grundlage einer jeden Farcry-Anwendung ist die COAPI. Die COAPI ist eine Datenbankabstraktionsschicht. Ein objektbasiertes Programmiermodel und die Methoden der COAPI erlauben den Zugriff auf die Inhalte der Content Objekt Database. Als Content Objekt Database können verschiedene relationale Datenbanken eingesetzt werden. z.B. MySQL, MS SQL Server und Oracle. Durch die Trennung von COAPI und Datenbank können über die COAPI beliebige Datenbanken und sonstige Datenquellen an Farcry angebunden werden.

Die COAPI und die zentrale Speicherung der Inhalte in einem Repository bilden das Fundament zur Seperation von Inhalten und der Präsentation der Inhalte.

Ein Beispiel: Über eine Farcry-Website sollen Produkte verwaltet werden. Ein Produkt kann viele unterschiedliche Eigenschaften haben, z.B. Artikelnummer, Beschreibung, EK, VK, Farbe usw.

Bei der Entwicklung und Anpassung der Produktverwaltung mit Farcry würde bzw. dürfte der Programmierer nicht direkt das Datenbank-Schema verändern. Die COAPI bietet stattdessen Methoden zur Erzeugung neuer Inhaltstypen innerhalb der Content Objekt Database. Über die COAPI werden automatisch Tabellen erzeugt und alle notwendigen Änderungen am Datenbank-Schema vorgenommen.

Inhaltstypen / Content Types

Die Objekte, aus denen sich eine Website zusammensetzt, bilden das Site Objekt Modell. Es basiert auf einer Sammlung verschiedenster Inhaltstypen. Jedem Inhaltstyp sind Methoden und Eigenschaften zugeordnet. Farcry speichert in den Eigenschaften die Inhalte. Das Objekt vom Inhaltstyp News hat zum Beispiel die Eigenschaften Haupttext, Vorschautext, Veröfentlichungsdatum usw. Die Methoden legen fest, was mit einem Objekt gemacht werden kann. Eine News z.B. kann erzeugt, angezeigt, bearbeitet und gelöscht werden. Die Eigenschaften und Methoden der verschiedenen Inhaltstypen werden in ColdFusion programmiert und als ColdFusion Komponente abgespeichert. Mittels COPAI werden die Inhalte der Objekte in der Content Object Database gespeichert.

Die Core Types sind bereits fertige, in Farcry integrierte Inhaltstypen. Als da wären: Navigation, HTML, News, Link, Event, Fact, File, Flash, Image und viele mehr.

In einem einfachen CMS-Projekt sind die Core Types inklusive der Verwaltung über das Farcry-Backend ausreichend. Wenn die Anforderungen steigen, kann Farcry um sogenannte Custom Types (eigene Inhaltstypen) erweitert werden. Eine schnelle Alternative bietet die Anpassung der bestehenden Core Types.

Da Inhaltstypen auf ColdFusion Komponenten basieren, können diese spezialisierten Objekte Methoden und Eigenschaften übergordneter Klassen (z.B. type.cfc) erben. Die Farcry Core Bibliothek stellt solche Klassen zur Verfügung. Die abstrakte Klasse „Types“ vererbt z.B. Systemeigenschaften wie CreationDate, DateLastChanged usw. an die untergeordneten Inhaltstypen (Klassen). Auf diese Art und Weise kann ein Programmierer Farcry schnell durch Custom Types erweitern und sich dabei auf die Funktionsvielfalt der Farcry Core Bibliothek stützen. Selbstverständlich können bestehende, namensgleiche Methoden durch die Methoden der spezialisierten Klasse überschrieben werden.

Inhalts Objekte

Von einem Inhaltsobjekt ist immer dann die Rede, wenn es sich um die Instanz eines Inhaltstyps handelt. Es gibt zum Beispiel den Inhaltstyp „News“. Die Meldung zum Zusammenschluß der Firmen Macromedia und Adobe wäre ein Inhaltsobjekt bzw. eine Instanz des Objektes, vom Typ „News“.

Baumstruktur

Die Positionen der verschiedenen Inhalte innerhalb des Site Objekt Modells sind in einer Baumstruktur gespeichert. Farcry speichert diese Baumstruktur nach dem Nested-Tree-Ansatz in der Content Objekt Database. Der Nested-Tree-Ansatz wurde von John Celko geprägt. Er erlaubt die schnelle Bestimmung der Position eines Elements innerhalb einer Baumstruktur mittels SQL. Farcry speichert Informationen wie die Navigation, Positionen von HTML-Seiten, Kategorien und die Beziehungen von Schlüsselwörtern zueinander in einer Baumstruktur.

Bereits vorhandene Befehle und eine API erlauben den Zugriff auf die Daten in der Baumstrukur. Ohne viel Aufwand kann ein Programmierer so eine dynamische Navigation entwerfen oder die Position innerhalb einer Website-Struktur (Wo bin ich? bzw. Breadcrumb-Navigation) ausgeben.

FarCry - Mollio