Curl bietet zwei verschiedene Produkte an: die Surge software platform und die Surge Lab Integrated Development Environment (IDE), die jetzt in folgenden vorgestellt werden.
Surge software platform
Curl content - language
Die Sprache Curl an sich. Wie bereits weiter oben erwähnt umfasst sie neben Funktionalitäten zum Formatieren und Layouten, auch 2D- und 3D -Grafikbibliotheken, eventgetriebene Userinteraktion, XML - Parser in einer objektorientierten Umgebung.
Surge runtime environment
Das Surge runtime environment ist der Interpreter für Curl - Applets. Es wurde selbst komplett in Curl geschrieben und enthält einen JIT - Compiler (Just In Time -Compiler). Die Curl - Applets werden also on-the-fly interpretiert. Wie im Java -Compiler sorgt in Garbage - Collector für optimale Speicherauslastung. Zusätzlich enthalten ist ein striktes Sicherheitsmodel, welches die Clientmaschine vor Angriffen schützt.
Surge Multimedia Engine
Die Surge Multimedia Engine erlaubt eine problemlose Integration von Text,
2D- und 3D - Grafiken, Animationen und Sound in eine (Curl-) Webseite. 3D
- Rendering wird auf allen Windows - Plattformen (mit Ausnahme von WinNT)
durch DirectX von Microsoft bewerkstelligt. Auf anderen Plattformen (und auch
auf Windows-Plattformen einstellbar) wird Open GL verwendet.
Möglichkeiten z.B. zum Abspielen von Videos fehlen jedoch (zumindest
momentan). Andere Dateiformate wie Flash, RealMedia können auch nicht
eingebunden werden.
Surge GUI System
Für Webapplikationen unverzichtbar ist eine umfangreiche GUI - Bibliothek,
die vom Surge GUI System zur Verfügung gestellt wird. Neben den Standard
- Formular - Komponenten (Textfelder, Buttons, Radiobuttons, ...) sind Layout-Tools
und verschiedene Fenstertypen (z.B. Popup-Fenster vgl. alert() bei JavaScript)
vorhanden.
Aufgrund des objektorientierten Designs bieten sich Möglichkeiten zur
benutzerspezifischen Erweiterung der GUI - Komponenten einfach durch Erweitern
einer der Klassen.
Surge Connectivity
Surge Connectivity stellt die Schnittstellen zur Kommunikation mit server - side Technologien zur Verfügung. Als Stichworte wären dort HTTP (Hypertext Transfer Protocol) oder SOAP (Simple Object Access Protocol) zu nennen. Für beide Protokolle sind Klassen in Curl enthalten.
Surge Security
In einer Sprache, die clientseitig auf "Heimrechnern" ausgeführt wird, spielt Sicherheit eine zentrale Rolle. Standardmäßig sind Curl - Applets unprivilegiert und dürfen bspw. nicht auf die lokale Festplatte zugreifen. Allerdings besteht die Möglichkeit Applets zu privilegieren.
Surge Lab IDE
Das Surge Lab IDE erlaubt es neben dem Darstellen von Curl - Applets auch
die Entwicklung solcher. Neben der Surge software platform umfasst es einen
Source -Editor, einen Debugger, einen Inspector und Dokumentation, welche
alle in Curl geschrieben wurden.
Der Editor ermöglicht neben dem einfachen Erstellen von Dokumenten auch
die Verwaltung von Projekten. Unterstützt wird man durch Syntax - Coloring
und automatische Einrückung des Quelltextes. Wizards bieten Hilfe beím
Anlegen von Projekten und neuen Curl - Dateien.
Mit dem Inspector kann man Eigenschaften eines Applets anschauen. Dazu zählt vor allem die Verschachtelung der grafischen Elemente:
Abb. 2: Graphische Hierarchie eines Applets dargestellt mittels Surge Lab IDE Inspector