Einblick in das Promoter-System Stand: 29. Juni 2009 © Copyright 2009 ViaThinkSoft. Alle Rechte...

Preview:

Citation preview

Einblick in das Promoter-SystemStand: 29. Juni 2009

© Copyright 2009 ViaThinkSoft. Alle Rechte vorbehalten.

• Jedem System die Möglichkeit geben, pro Minute eine koordinierte Transaktion durchführen (z.B. Webseitenupdates prüfen, diverse Benachrichtungen senden)

• Personal WebBase auch für Server verfügbar stellen, die keine Cronjobs verwalten können

• Zentrales Promoting-System, das alle öffentlich zugänglichen Kundenserver von extern jede Minute aufruft

• Der Service wird kostenlos auf der Webseite www.personal-webbase.de zur Verfügung gestellt

Promoting? Die Idee dahinter!

Szenario A – Aktive Cronjobs über Shell

Das System kann Cronjobs ausführen und ruft startpromoting.php jede Minute auf.

VorteileAusfallsicherheit, zeitgerechte Bearbeitung und schnelle Benutzertransaktionen

Szenario B – Aktive Cronjobs über Promoter

Das System ist öffentlich zugänglich und wird von ViaThinkSoft oder einem anderen Server promoted.

NachteileÖffentlicher Zugang wird benötigt und es entsteht leichter Traffic

VorteileZeitgerechte Bearbeitung und schnelle Benutzertransaktionen

Szenario C – Passive Cronjobs

Das System kann Transaktionen erst bei Benutzerzugriffen durchführen.

NachteileLangsame Benutzertransaktionen, keine zeitgerechte Bearbeitung

Szenarien für koordinierte Transaktionen

System hochladenund einrichten

Cronjobseinrichtbar?

System onlineverfügbar?

(ohne Passwortschutz)

ViaThinkSoftPromoter registrieren

Kann System onlinegestellt werden?

Passive CronjobsAktive Cronjobsüber Promoter

Cronjob einrichten(Linux, Windows, Confixx…)

Aktive Cronjobsüber Shell

System online stellen(Apache, DynDNS…)

Nein Ja

Ja

JaNein

Nein

Vorgehensweise

Die Technik dahinter

Portal

Datenbank

KundenserverPromoter-Service

Check-System

Aufruf

Aufruf

Daten

Kontrolloberfläche

Aktuelle Server

Laufstatistik

Ständige Online-Kontrolle der Funktionalität

Online-registrierung

GültigesWebBase System?

GesamtübersichtLog-Daten

Log-Daten

Speichert

Regelungen für das Promoting• Jedes aktuelle, öffentlich zugängliches Personal WebBase System kann von

ViaThinkSoft promoted werden.• Die Prüfung auf die Gültigkeit des Systems beim Registrieren auf der

Portalwebseite ändert sich und passt sich ggf. neuen Programmversionen an.• Die Administration behält sich das Recht vor, eine Webseite individuell sperren

zu lassen, wenn sie z.B. für ViaThinkSoft einen zu hohen Datenverkehr verursacht oder sie kein Personal WebBase System mehr beeinhaltet.

• Das Promoting wird gestoppt, sobald das Downtime-Meter 50.000 Minuten erreicht oder das Serverscript startpromoting.php exakt den Wert „Stop promoting!“ zurückliefert.

• Das Downtime-Meter erhöht sich bei jedem erfolglosen Aufruf (z.B. DNS-Fehler, Ausgabe im startpromoting.php Script oder passwortgeschütztes Verzeichnis) und verringert sich bei jedem erfolgreichen Aufruf wieder, bleibt jedoch >= 0.

Realisierungskonzepte des ViaThinkSoft Promoters

Besonderheiten der Realisierung

• Auch unsichere SSL Verbindungen müssen aufgebaut werden (Inhalte sind ja nicht sensibel) – Jedes System muss promoted werden können!

• Alle Aktivitäten müssen asynchron sein und der Intervall von 60 Sekunden darf sich nicht verändern, auch wenn Server inaktiv sind und auf eine Anfrage nicht antworten.

• Alle Server müssen zum selben Zeitpunkt angesprochen werden, sodass sie selbst einen Intervall von 60 Sekunden erfahren.

Grundkonzept

60 SekundenIntervall

Alle Serverabfragen

startpromoting.phpalle parallel aufrufen

Promoter-Service

Nein Ja

Aufruf erfolgreichund ohne Inhalt?

Nein Ja

Nein Ja

Downtimemeter>= 50.000?

MySQL Verbindungherstellen

MySQL Verbindungtrennen

Aktive Kundenserverabfragen

?

Async. ProzessaufrufParameter: id

Webseite aufrufen

?

MySQL Verbindungherstellen

?

System deaktivieren

MySQL Verbindungtrennen

Weitere Datensätzevorhanden?

Splitter, Realisiert mit Perl

Pro

mot

er-S

ervi

ce 1

.0

Zeitstempelspeichern

Nein Ja

Downtimemeter> 0?

?

Downtimemeter verringern

Zeitfeld der Tabelleaktualisieren

Downtimemeter = 0,wenn <0 (alle Server)

Aktiven Server mit Zeit-interval 50+ Sek. aus Tabellelesen (Quelle: id-Parameter)

Datensatz gefunden?

Nein Ja?

Promoter, Realisiert mit PHPSystem-Crontabelle

Socket-Verb.

Internet

Prozessstart

60 Sekunden

MySQL

Online-Registrierung

Downtimemetererhöhen

Änderungen in 2.0

• Vollständige Umstellung zu einer eigenständigen C-Applikation

Nein Ja

Aufruf erfolgreichund ohne Inhalt?

Nein Ja

Nein Ja

Downtimemeter>= 50.000?MySQL

60 Sekunden warten

Async. Function Call

MySQL Verbindungherstellen

MySQL Verbindungtrennen

Aktive Kundenserverabfragen

?

Async. Function CallParameter: Struktur

Webseite aufrufen

?

Downtimemetererhöhen

Downtimemeterverringern, wenn >0

MySQL Verbindungherstellen

?

System deaktivieren

MySQL Verbindungtrennen

Weitere Datensätzevorhanden?

Nein Ja

Endlosschleifen-bedingung

Felder als Struktur-Argument vorbereiten

CURL

Durchlaufthread

Hauptthread Promotingthread

Internet

Eigenständige Daemon-Applikation, Realisiert mit CP

rom

oter

-Ser

vice

2.0

Online-Registrierung

Zeitfeld der Tabelleaktualisieren

Änderungen in 2.1

• Der Datentransfer wird limitiert und das Connection Timeout wird beachtet

Nein Ja

Aufruf erfolgreichund ohne Inhalt?

Nein Ja

Nein Ja

Downtimemeter>= 50.000?MySQL

60 Sekunden warten

Async. Function Call

MySQL Verbindungherstellen

MySQL Verbindungtrennen

Aktive Kundenserverabfragen

?

Async. Function CallParameter: Struktur

Webseite aufrufen(max. 16 KB Content)

?

Downtimemetererhöhen

Downtimemeterverringern, wenn >0

MySQL Verbindungherstellen

?

System deaktivieren

MySQL Verbindungtrennen

Weitere Datensätzevorhanden?

Nein Ja

Endlosschleifen-bedingung

Felder als Struktur-Argument vorbereiten

CURL

Durchlaufthread

Hauptthread Promotingthread

Internet

Eigenständige Daemon-Applikation, Realisiert mit CP

rom

oter

-Ser

vice

2.1

Online-Registrierung

Zeitfeld der Tabelleaktualisieren

Änderungen in 2.2

• Server können sich nun durch die Zeichenkette „Stop promoting!“ auch selbst sperren lassen.

• Statistische Angaben „Up-Counter“ und „Down-Counter“ eingeführt.

Nein Ja

Aufruf erfolgreich?

Nein Ja

Nein Ja

Downtimemeter>= 50.000?

MySQL

60 Sekunden warten

Async. Function Call

MySQL Verbindungherstellen

MySQL Verbindungtrennen

Aktive Kundenserverabfragen

?

Async. Function CallParameter: Struktur

Webseite aufrufen(max. 16 KB Content)

?

Downtimemeter undDown-Statistikfeld erhöhen

Downtimemeterverringern, wenn >0;Up-Statistikfeld erhöhen

MySQL Verbindungherstellen

?

System deaktivieren

MySQL Verbindungtrennen

Weitere Datensätzevorhanden?

Nein Ja

Endlosschleifen-bedingung

Felder als Struktur-Argument vorbereiten

CURL

Durchlaufthread

Hauptthread Promotingthread

Internet

Eigenständige Daemon-Applikation, Realisiert mit CP

rom

oter

-Ser

vice

2.2

Online-Registrierung

Zeitfeld der Tabelleaktualisieren

?

Inhalt?

?

Ja NeinStopp-Anfrage?

Nein Ja

Änderungen in 2.3

• Eine E-Mail-Adresse ist nun ein Pflichtfeld (bei der Online-Eintragung).

• Online-Eintragung nun HTTPS gesichert (damit URL zum Personal WebBase-System nicht unverschlüsselt gesendet wird.

• Benutzer werden über Ereignisse (Zwangs-Sperrung bei DTM=50.000 oder Selbst-Sperrung; informiert sowie bei einem DTM, das durch 5.000 teilbar ist, gewarnt ( 9 Warnungen vor endgültiger Sperrung; bei dauerhaften Downtime Warnung also alle 5000 Minuten = 3½ Tage).

Nein Ja

Aufruf erfolgreich?Nein Ja

Nein Ja

Downtimemeter>= 50.000?

MySQL

60 Sekunden warten

Async. Function Call

MySQL Verbindungherstellen

MySQL Verbindungtrennen

Aktive Kundenserverabfragen

?

Async. Function CallParameter: Struktur

Webseite aufrufen(max. 16 KB Content)

?

Downtimemeter undDown-Statistikfeld erhöhen

Downtimemeterverringern,wenn >0;

Up-Statistikfelderhöhen

MySQL Verbindungherstellen

?

System deaktivieren

∪∪

MySQL Verbindungtrennen

Weitere Datensätzevorhanden?

Nein Ja

Endlosschleifen-bedingung

Felder als Struktur-Argument vorbereiten

CURL

Durchlaufthread

Hauptthread Promotingthread

Internet

Eigenständige Daemon-Applikation, Realisiert mit CP

rom

oter

-Ser

vice

2.3

Online-Registrierung

Zeitfeld der Tabelleaktualisieren

?Inhalt?

?

Ja NeinStopp-

Anfrage?

Nein Ja

E-Mail:User-Lock

E-Mail:Forced-Lock

?

E-Mail:Warnung

DTM durch5000 teilbar?

Ja Nein

Promoter-User-Agents

• Derzeit vertretene User-Agents:– ViaThinkSoft Personal WebBase Promoter Service 2.3

(Promoter-Daemon)– ViaThinkSoft Personal WebBase Promoter Checker

(Online-Eintragung)

• Derzeit vertretene X-Mailer:– ViaThinkSoft Personal WebBase Promoter Service 2.3

(Promoter-Daemon)

MySQL-Tabelle für die Server

• wbp_promoting– id– address– email– active (0, 1)– last_promoting (datetime)– downtime_meter– stat_up_count– stat_down_count

Promoter-Quellcode

• Ein Teil des Quelltextes wird demnächst auf dokumentationsgründen Open-Source gemacht.

• Der Dienst bleibt jedoch ViaThinkSoft-Exklusiv

Interaktion mit Personal WebBase

• startpromoting.php existiert erst seit Version 0.73 (?) und leitet zum Modul weiter, das die regelmäßigen Tätigkeiten der Module abarbeitet

• Aufruf davor: modulseite.php?modul=core_cronjob&seite=run&silent=yes

• Ab 0.80: „Stop promoting!“ kann auch vom System gesendet werden (nähere Informationen liefen noch nicht vor)

Weitere Planungen

• Derzeit keine

Recommended