-- Marc Balmer, Vera Hardmeier, micro systems -- Swiss Postgres Conference 2014 CREATE OR REPLACE FUNCTION presentation() RETURNS void AS $$ BEGIN RAISE NOTICE ‚Die Verwendung von PostgreSQL im arcapos Kassensystem'; END; $$ LANGUAGE plpgsql micro systems [Wer wir sind und was wir tun] Erfahrung PostgreSQL seit Postgres95 Unix (BSD) und C seit 4.3 BSD Linux seit 0.99 Lua seit 5.1 Erfahrung Auch: Sybase, MySQL, Oracle, Faircom, SQLite Im HR eingetragen seit 1990 My SQL is PostgreSQL! Angebot Beratung Schulung Entwicklung Projekt(beg)leitung … im Unix-, Linux-, BSD-Umfeld Freie Software, kommerzielle Anwendungen micro systems Open Source Engagement Komponenten teilw. Open Source *BSD Entwicklung, NetBSD commit access, code in allen „grossen“ BSDs X.Org Entwicklung mit commit access Organisation von Konferenzen und „Hackathons“, häufige Referate PostgreSQL @ micro systems Softwareentwicklung: client- und serverseitig, C, Lua und PL/PgSQL Schulung: Administration usw. Refactoring, Einbinden von PostgreSQL, Migration PostgreSQL @ micro systems Auf PostgreSQL basierende kommerzielle Produkte Individuelle und Standard- resp. Branchen-Lösungen arcapos - Ein micro systems Produkt [PostgreSQL in einer kommerziellen Standard-Anwendung] arcapos? [Was ist arcapos und wo wird es angewendet] Ein Kassensystem für Ticketing und Retail Zutaten *BSD, Linux, X.Org, Motif, Firefox, PostgreSQL, lighttpd, ClearSilver, FastCGI, LaTeX, Lua und eigener Code Übersicht BSD Firefox lighttpd X11/Motif xpos Lua libpq arcapos-fcgi libpq ClearSilver Lua PostgreSQL psql make pg driver LibreOffice Frontend (Kasse) BSD Firefox lighttpd X11/Motif xpos Lua arcapos-fcgi libpq libpq Lua PostgreSQL psql make ClearSilver jdbc:postgresql Libre Entwickelt für Touchscreens Hauptbildschirm Volltextsuche SDK für Erweiterungen Backoffice (Web-Anwendung) BSD Firefox lighttpd X11/Motif xpos Lua arcapos-fcgi libpq libpq Lua PostgreSQL psql make ClearSilver jdbc:postgresql Libre Benutzer ist eine PostgreSQL Rolle Rollen-Mitgliedschaft definiert Anwendungsbereiche Eingesetzte PostgreSQL-Features (Auszug) SQL Stored Procedures: PL/pgSQL, C libpq, LuaPgSQL Asynchrone Benachrichtigung Schemas, Rollen, Security PostgreSQL & arcapos [Beispiele von PostgreSQL in arcapos] Beispiel 1: Sicherheit Webanwendung [inject your SQL code here] Szenario einer Webanwendungen Browser Anwendung PostgreSQL Sicherheit auf Anwendungsebene Browser Anwendung PostgreSQL Sicherheit auf Datenbankebene Browser Anwendung PostgreSQL Kombiniertes Sicherheitsmodell: Sicherheit auf allen Ebenen Browser Anwendung PostgreSQL Kombiniertes Sicherheitsmodell: Die Anwendung Browser Anwendung PostgreSQL Kombiniertes Sicherheitsmodell: Die Datenbank Browser Anwendung PostgreSQL Beispiel 2: Grafische Kundenanzeige Direkte Kommunikation? Entkopplung durch „Asynchrone Benachrichtigung“ PostgreSQL Interesse an Ereignis anmelden LISTEN „VERKAUF“ Kasse verändert Daten... INSERT, UPDATE DELETE ... Auslösen einer Trigger-Funktion TRIGGER-FUNKTION Tigger-Funktion „meldet“ Ereignis NOTIFY „VERKAUF“ TRIGGER-FUNKTION Display zeigt aktualiserte Daten an SELECT Asynchrone Benachrichtigung INSERT, UPDATE DELETE LISTEN, SELECT TRIGGER: NOTIFY Warum aber PostgreSQL? [Ja, warum eigentlich?] Gründe für PostgreSQL Stabilität, Datenintegrität Standard-Konform Umfangreiche Funktionen Funktionale Indices Erweiterbarkeit Open Source Komponenten Diverse Lua Bindings: JSON (luajson) Motif (luamotif) PostgreSQL (luapgsql) PL/Lua Maintainership, … Wake-on-LAN in BSD, mqLua Verfügbarkeit github.com/mbalmer/ micro systems & die pgdg [Warum direkte Kontakte so wichtig sind] Erfahrungen [Was PostgreSQL uns und unseren Kunden bisher gebracht hat] Kontakt [Wie Sie uns bei Bedarf erreichen] In god we trust, in C we code! micro systems Landstrasse 66 CH-5073 Gipf-Oberfrick +41 62 871 45 65 [email protected] www.msys.ch www.arcapos.ch
© Copyright 2024