Erstellung performanter Webapplikationen mit Tntnet Schneller und sicherer durch compilierten Code im Web Tommi Mäkitalo.

Slides:



Advertisements
Ähnliche Präsentationen
Semesterarbeit von Dieter Lorenz, Sebastian Galenski, Stephan Bury
Advertisements

Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Simon Georg Pinkel Alice Server Pages Funktionale Programmierung und das Web.
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Seminarvotrag: PHP Von Stefan Niemczyk.
Webdesign und Datenbanken Nico Lange. Was soll das? Gute Gründe für Datenbanken.
PHP Pakete und Beispiele Webengineering Robert Lemke.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
MS Excel, Open-/LibreOffice Calc Die Menüs I Office-Logo (Excel2007) bzw. Datei (andere): die Standard-Datei- und Druckoperationen; bei MS Excel hier auch.
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Seminar Internet - Technologie
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
DB-Zugriffstechnologien im Internet Ein Referat von Marc Reinecke.
Das Client/Server – Modell und die XAMPP-Distribution
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
CGI (Common Gateway Interface)
Midgard – ein Content Management System
Java Server Pages Sergej Keterling
Datenanbindung in Webapplikationen
Datenbankanbindung in Web-Applikationen
Jonas Rüttimann 2. Juni Motivation Was ist RAP? Schnellstart: Wir bringen RAP zum Laufen! Technologie: Wie funktioniert RAP? Konsequenzen für die.
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
PHP:: Hypertext Preprocessor Einführung Praxis. PHP:: Hypertext Preprocessor Jetzt mal von der anderen Seite © All rights reversed2 PHP:: Hypertext Preprocessor.
XAMPP X: Linux, Windows, MacOS X, Solaris Apache Webserver MySQL Perl PHP.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Forms 9i - New FeaturesSeite 1 Forms 9i New Features Gerd Volberg OPITZ CONSULTING GmbH.
Webdeployment auf Cluster Seminarvortrag von Lukas Bonzelett.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
© 2012 TravelTainment Einführung in Spring Web MVC Seminarvortrag Sebastian Hesse
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
Linux Seminar Einführung Linux. Gliederung ● Was ist Linux? ● Geschichte ● GNU/GPL ● grundsätzliche Begriffe ● Vorteile ● Nachteile ● Hilfe? ● Unterschiede.
Zehn Schritte zu Linux Der Weg in eine andere Welt...
Projekt mobile Zeiterfassung für DATEV Anwalt Pro AdvoTools GmbH …make good things even better.
Tntnet auf FreeWRT – die Geburt einer Weboberfläche in C++ Tommi Mäkitalo.
TYPO3 Universität zu Köln IT-Zertifikat der Philosophischen Fakultät Digital Objects Processing Sommersemester 2016 Stefanie Sturm & Corinna Schumann.
Java Testtools: HTTPUnit
D-SQL Vom Datenbank-Container zur SQL Server-Datenbank
Verteilte Anwendungen: J2EE
Graphik, Doku und Monitor für TWS
Mapbender – Orchestrierung des Geodaten-Konzerts
Google App Engine - Technische Stärken und Schwächen
Vom Museum ins Internet
Eine Präsentation von Sandro Schluep und Leon Wink.
Hello World! Javakurs 2013 Arne Kappen
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Sicherheitslücken durch Programmierfehler
AURIS-MM Spezifikation
Das weltweit führende Open Source GIS
1.
Webdienste Infrastruktur Motivation
Von Oracle Reports zum BI Publisher
Bugtracker Tool.
Objektorientierte Programmierung
SOFTWARE- UND WEB-LÖSUNGEN
Datenbanken
 Präsentation transkript:

Erstellung performanter Webapplikationen mit Tntnet Schneller und sicherer durch compilierten Code im Web Tommi Mäkitalo

Was ist Tntnet? ● Web-Applikations-Server ● Template-Sprache zum einbetten von C++ in HTML ● Seiten werden zur Compilezeit übersetzt ● keine Interpretation zur Laufzeit mehr erforderlich ● eigenständiger Server

Warum C++ ● Ausgereifte Sprache mit großem Funktionsumfang (Klassen, Templates, Destruktoren...) ● Schnelle und kompakte Programme ● ANSI-Standard (Investitionsschutz) ● Bewährt ● Stabil (nicht jedes Jahr neue oder geänderte Features)

Nachteile von C++ ● Entwicklung umständlich, da Compilerlauf notwendig ● Momentan weniger populär als z. B. Java ● Standardbibliothek nicht so umfangreich

Webapplikationen ● Deployment einfach ● skalierbar durch Client-Server-Architektur ● skalierbar durch nicht persistente Connections ● schlanke Clients

Webapplikationen: PHP ● interpretiert (langsam, grosser Resourcenverbrauch) ● einfach ● Sicherheit nicht optimal (Sourcecode und Interpreter auf dem Server verfügbar) ● populär, billige Hoster verfügbar

Webapplikationen: CGI ● CGI mit Perl – langsam, da für jeden Request Prozess gestartet werden muß – umständlich, da keine Templates – CPAN hilfreich – Template-engines verfügbar ● CGI mit C oder C++ – auch nicht viel schneller

Webapplikationen: Java ● recht schnell ● Speicherintensiv ● Templates mit JSP verfügbar ● Mainstream ● Deployment gut gelöst (JAR/WAR) ● Java als Sprache eingeschränkt ● propriätär, instabile Spezifikation

Webapplikationen: Tntnet ● Tntnet verbindet C++ mit dem Web ● Applikationen sind compilert, daher schnell, sicher und kompakt ● Der Content wird grundsätzlich mit Templates erstellt (ecpp) ● C++-Klassen und -Bibliotheken uneingeschränkt nutzbar ● portabler Sourcecode verfügbar

Tntnet - Technik ● standalone Webengine ● multithreaded (skalierbar) ● persistente Applikationen ● optimierter C++-Code ● kompakt ● automatische Http-Komprimierung ● SSL-Unterstützung (gnutls, openssl)

Features ● automatisches Sessionmanagement ● Session-, Request- und Applicationscope für beliebige C++-Objekte mit automatischen locking ● Komponentenorientierte Entwicklung ● Request-paramter werden geparst ● File-upload, Cookies, i18n,...

Features (2) ● Grafiken und andere Binärdaten können mit compiliert werden ● Compiler oder Interpreter auf dem Server nicht notwendig ● Fehlerbehandlung durch exceptions ● portabel durch die Verwendung von Standard- C++ (Linux, Unix) ● Logging

Features (3) ● Automatisches HTML-encoding ● savepoint: nehme Ausgabe im Fehlerfall bis zu einem sicheren Punkt zurück, um vollständige HTML-Seiten zu erhalten

Nachteile von Tntnet ● fehlerhafte Applikationen bringen Server zum Absturz – Monitorprozeß überwacht Arbeiterprozeß – Zwingt Programmierer zu sauberen Code ● Proprietär, aber Investitionsschutz durch Open- Source ● keine weite Verbreitung (noch?)

Funktionsweise Browser Tntnet Komponente

Entwicklung von Applikationen Ecpp-Komponenten *.cpp C++-Klassen *.o *.so Bibliotheken } Makefile

Schnellstart ● tntnet-config –project=app ● cd app ● make ● tntnet tntnet.conf ● ● logging über tntnet.properties

Demos ● Vorführung eniger Demo-Anwendungen – hello – calc – calcmvc – calcajax ● Kurzübersicht über die weiteren Demos

die wichtigsten Tags Ausgabe eines C++-Ausdrucks C++-Verarbeitungsblock... Formular-Parameter... für #include-Direktiven Komponentenaufruf Kommenta r

Hilfreiche Bibliotheken ● Tntdb – Bibliothek zum Zugriff auf Datenbanken – Datenbankunabhängig – Treiber für Sqlite3, Postgresql und Mysql ● Tntpdf – Erstellung von einfachen PDFs – sehr schnell – eingeschränkte Features, nur einfache Text-PDFs (momentan)

Kontakt ● ● ● Mailingliste: ● IRC/freenode: #tntnet

Fragen?