
Athesios
Athesios ist eine neue Online-Warenwirtschaft und Auftragsverwaltung, die COMPARAT entwickelt. Registrieren Sie sich und probieren Sie es aus!
Webauftritt mit CP:IApp
Wenn Sie Ihren Web-Auftritt mit der Technologie von COMPARAT umsetzen, holen Sie sich Geschwindigkeitsvorteile ins Haus, von denen Sie begeistert sein werden.
Auch Facebook setzt jetzt auf C++, wird seine PHP-Software austauschen um damit 50% der Serverlast zu sparen!
Internet-Software
COMPARAT ist auf die Entwicklung von Internet-basierten Anwenundungen spezialisiert
iPhone-Programmierung
Das Team von COMPARAT verhilft Ihnen zu Ihrer eigenen iPhone-App.
Web-Services
Für mobile Kommunikation werden Web-Services gebraucht, die sehr schnell und schlank sind. COMPARAT entwickelt diese mit dem CP:IApp-Framework oder auf Wunsch in Java
Das CP:IApp Framework
Einleitung
Das Internet Application Framework CP:IApp ist eine Entwicklung der COMPARAT Software-Entwicklungs-GmbH. Mit dem CP:IApp können Software-Entwickler äußerst performante, effiziente und sichere Serveranwendungen für Internet-Applikationen erstellen.
CP:IApp besteht aus zwei C-Bibliotheken und einem Modul für den Apache-Webserver. Eine Internet-Anwendung wird als Bibliothek erstellt und vom Apache-Modul eingebunden.
Mit CP:IApp lassen sich Plattformen wie Wikis (z.B. http://de.wikipedia.org/), Community-Sites (z.B. http://www.xing.com), E-Shops und Spezialsysteme entwickeln. Auch einfache Anwendungen und Websites können damit entwickelt werden, zum Beispiel unsere eigene Website http://www.comparat.de (seit Juli 2005).
Vorteile und Besonderheiten
Der Kern von CP:IApp ist vollständig in 'C' programmiert. Plugins, Erweiterungen und die Application-Class für Anwendungen sind in C++ entwickelt worden. Entgegen dem Trend, PHP oder Java für Internet-Applikationen einzusetzen, wurde CP:IApp bewußt auf folgende Leistungsmerkmale getrimmt:
- Höchste Ausführungsgeschwindigkeit für die Request-Verarbeitung.
- Minimaler Ressourcenverbrauch auf dem Server, damit mehr als tausend Anfragen pro Sekunde gleichzeitig bearbeitet werden können.
- Höchste Sicherheit gegen Hackerangriffe und Bedienungsfehler.
- Flexible Anpassung an heterogene IT-Landschaften (z.B. Integration von alten Legacy-Anwendungen).
- Schnelle Entwicklung von Internet-Applikationen (vergleichbar mit Java oder PHP).
- Unterstützung mehrsprachiger Anwendungen.
- Trennung von Webdesign und Technik.
- Unterstützung aller Datenbank-Systeme durch ein einfaches Modulkonzept.
- Schnelle und einfache Installation des Systems.
COMPARAT hat diese Ziele erreicht und kann hoch komplexe Geschäftsanwendungen mit diesem Framework implementieren, aber auch sehr einfache und kleine Websites damit erstellen.
In CP:IApp ist ein automatisches Sessionmanagement integriert. Eine Session kann über ein Cookie identifiziert werden, aber mit einem Handgriff kann auch eine URL-basierte Session-Behandlung umgesetzt werden. Auf Wunsch kann hier restriktiv eingegriffen werden, um zum Beispiel die Zahl der Sessions pro Client-IP-Adresse zu begrenzen.
Mehrsprachigkeit wird durch XML-Attribute für den Webdesigner, durch eine Sprachentext-Datenbank und einem C-Objekt zur Behandlung der Sprachvarianten im Quellcode hergestellt. Online im Browser können Übersetzer dann die Texte übersetzen, Besucher können die Sprache der Anwendung dann wechseln.
Auch eine Benutzer- und Rechteverwaltung ist bereits integriert. Benutzer können sich registrieren, anmelden und abhängig von persönlichen oder Gruppen-Rechten agieren.
CP:IApp unterstützt natürlich auch AJaX (Asynchronous Javascript and XML, siehe http://xulplanet.com/references/objref/XMLHttpRequest.html). AJaX wird vom Browser eine http-Anfrage an den Server geschickt. Der Server, also unsere CP:IApp-Anwendung, schickt Daten zurück (egal ob XML oder in anderer Form), die noch während der Formularbearbeitung durch den Benutzer sichtbar gemacht werden können. Für diese Verarbeitung von Anfragen gelten hohe Sicherheitsansprüche und eine andere Art der Ausgabe (aus Server-Sicht).
Der Quellcode steht unter der GPL und teilweise zusätzlich unter der Apache Lizenz. Er wird dem Kunden immer mitgeliefert. Der Kunde kann aber auch eine andere Lizenz erwerben.
Die Software
Die Integration der Anwendung als Modul in den Apache-Server hat vor allem drei Vorteile:
- größtmögliche Ausführungsgeschwindigkeit,
- Nutzung der Sicherheit und
- Nutzung der großen Verbreitung des Apache-Servers.
Unsere C-Software nutzt Techniken des Apache-Servers für Sicherheit und Speicherverwaltung. So werden alle Templates und Sprachentexte in einem Shared-Memory Bereich verwaltet, der für alle Instanzen (Prozesse, Threads) einer CP:IApp-Anwendung gemeinsam im Zugriff liegt. Wenn die Templates zum Beispiel 500 Kilobyte Shared-Memory benötigen, dann können tausend parallele Prozesse laufen und brauchen dennoch nur diese 500 Kilobyte. Je nach Anwendung benötigt eine Requestverarbeitung zwischen 10 und 100 Kilobyte zusätzlich, für einige Millisekunden. Bei 100 Kilobyte benötigen 1000 gleichzeitige Requests also lediglich 100 Megabyte im Speicher.
Die CP:IApp-Module und Anwendungen werden über Variablen in den Apache-Konfigurationsdateien konfiguriert. Einmal eingerichtet, braucht nach einer größeren Änderung der Software nur ein reload durchgeführt werden.
Unsere C-Bibliotheken Std3000C und CP:IApp sind keine der üblichen Bibliotheken. In Ihnen stecken fast zwanzig Jahre Programmier-Erfahrung. Das Wissen aus C++, Java, PHP, ObjectPascal, Eiffel und ObjectiveC mit ihren objektorientierten Konzepten sind in die Programmierung der Bibliotheken eingeflossen.
Die Std3000C und die CP:IApp Bibliotheken verwenden eine Technik, die wir C-Objects oder C-Classes nennen. Damit haben wir Probleme isoliert und die zur Lösung benötigten Daten gekapselt. Strukturen werden zu Behältern für Daten und Methoden. In der C-Programmierung verlangt dies eine konsequente Einhaltung von Regeln und Standards.
Die berühmt-berüchtigen buffer overflows gibt es nicht mit diesen beiden Bibliotheken und auch nicht mit dem Apache-Modul. Auch andere Fehler dürften selten sein: das ganze Konzept ist mit der Maßgabe, ein fehlertolerantes Verhalten umzusetzen, entwickelt worden. Für Programmierer gibt es zahlreiche Vereinfachungen und Erleichterungen, mit deren Hilfe zusätzlich Fehler verhindert werden. Eine Analyse und Dokumentation gefundener Fehler hilft, zukünftige Fehler zu vermeiden.
Die CP:IApp-Bibliothek enthält Techniken und Methoden, die in der C-Programmierung nicht üblich sind. So werden Templates (HTML, Scripte), die ineinander verschachtelt werden und Platzhalter oder zu übersetzende Sprachen-Texte beinhalten, nicht im Speicher hin und her kopiert. Sie bleiben stattdessen in ihrem Shared Memory Bereich und werden über verkettete Listen so verbunden, daß ein neuer zusammenhängender Text ausgegeben werden kann. Diese Methode alleine macht die Bibliothek für die Requestverabeitung enorm effizient - es gibt keine schnellere Methode.
Wir erleben täglich, wie schnell und einfach sich Anwendungsaufgaben implementieren lassen und das auch noch mit Spaß an der Arbeit.
Die Website http://www.cpiapp.org/ entsteht für die Verwaltung, Information und den Austausch über das Framework.
Urheber und Autor
Das Copyright zur Verbreitung dieses Dokuments liegt bei der
COMPARAT Software-Entwicklungs-GmbH
Prießstraße 16
23558 Lübeck
Telefon: 0451/4795660, Fax: 0451/4795662
E-Mail: info@comparat.de
Der Autor Manfred Rebentisch ist Geschäftsführer und Chef-Entwickler bei COMPARAT. Er ist unter mrebentisch@comparat.de direkt erreichbar.
Manfred RebentischGeschrieben am 2006-06-18, aktualisiert am 2009-02-20, 2009-03-17
