ey wat, datt kanner auch


<prollmode=off>

mfg, querdenker
Edit / Nachtrag:
Ich hab mir mal die sourceforge-Seite von freemind zu Gemüte geführt. Da sind ja auch noch ein paar andere "nette" Sachen dabei.
Ja, Freemind geht in die richtige Richtung...querdenker hat geschrieben:Edit / Nachtrag:
Ich hab mir mal die sourceforge-Seite von freemind zu Gemüte geführt. Da sind ja auch noch ein paar andere "nette" Sachen dabei.
Das ist genau das, was ich weiter oben schon angesprochen habe. Im Internet/Google gibt es wirklich nicht viel Handgreifliches bzgl Workflows und in Richtung Python erst recht nicht. Da gibt es dann vielleicht so zwei bis drei Projekte, aber sonst nicht viel mehr. Deshalb spreche ich das Thema ja hier auch anquerdenker hat geschrieben:Mal zwischendrin - Ich war mal so frei und habe mal via google ein wenig nach python +workflow gesucht.
Die Ergebnisse waren nicht berauschend.
Viele Fundstellen beziehen sich auf Zope/Plone,
einiges ist in Java realisiert, bietet aber eine Schnittstelle zu Python an,
ein paar Treffer beschäftigen sich direkt mit Python und Workflow, allerdings sind diese veraltet, bzw nicht mehr gepflegt.
Die Treffer, die sich mit Zope/Plone beschäfftigen, betrachten Workflow eher aus der Dokumentenebene.
@tabellar: Wie stark hast du dich bisher auf Jabber festgelegt? Und wenn ja, welchen Server setzt du ein?
mfg, querdenker
Was läuft schon?querdenker hat geschrieben:Nach einigen Anlaufschwierigkeiten meinerseits jetzt erstmal ein paar Fragen an tabellar:
Du erwähntest, das du schon einige Sachen mehr oder weniger zusammengeschrieben hast.
a) welche Bereiche sind das?
b) mit welchen Komponenten hast du sie realisiert?
...
Code: Alles auswählen
EventEngine + db-basiertes EventRouting
- [python] WorkflowManager
- [sqlite] DB basierte Workflowinstanz kann gestartet werden
- [python] Workflowinstanz "läuft automatisch" durch (Ablaufsteuerung)
- [python] WF-Kontrollknoten: Start, Sleep,Break,OrSplit,OrJoin,End
- [jabberpy] Ein Jabber Client als Jabber Schnittstelle
- [python] ActivityManager lief schon, wird gerade aber generalüberholt.
(alle Komponenten haben Prototypenstatus :roll:)
Einlesen in den Sourcecode ist ja schön und gut, aber anwendbar sollte das
ganze ja auch noch sein. Aus diesem Grunde habe ich mir folgendes überlegt:
Ich bastel ein ganz einfaches WebGUI über die "Geschichte" mit einem integrierten,
einfachen Python WebServer. So können einfache Testanwendungen erstellt und Dokus
zum Anschauen und Drucken genutzt werden. Ein einfaches GUI muss am Anfang da sein,
da sonst alles in der DB direkt gesteuert werden muss (INSERT, UPDATE ect.) :wink:.
Ausserdem möchte ich eine CGI-basierte Nachrichten Schnittstelle haben,
damit die Kommunikation nicht nur über Jabber Clients oder NachrichtenFiles geht.
Prinzipiell hätte ich eh gern ein WebGUI, was aber andere GUIs nicht ausschliesst.
Ich bin gerade dabei das ganze auf SQLite umzuschreiben. Ich möchte
Programmversionen so einfach wie möglich austauschen und auf verschiedenen
Rechnern laufen lassen können. SQLite bedarf keiner Administration und
ist sehr leistungsfähig im Single-User Bereich (Transaktionen, Trigger,
Subselects, etc.). So kann man sich mehr um das Design als um die Administration
des DB-Servers kümmern. Zielserver später wären dann PostgreSQL, Firebird, etc.
Also, im Moment entwickle ich das ganze unter WIN, soll aber in der Endversion
auf Linux Rechner laufen. Das ganze soll im Moment dann so aussehen, dass das "Framework"
komplett in einem Verzeichnis enthalten ist mit MessageEngine, Workflow Modulen,
SQLite DB, WebServer usw. Es muss nur pysqlite2 auf dem Rechner installiert sein.
[code=python]
workflow instanz
_____________
| |
| start |
| | |
| | |
| orSplit |
| /\ |
| / \ |
| / \ |
| break activity |
| \ / |
| \ / |
| \/ |
| orJoin |
| | |
| | |
| end |
|_____________|
[/code]
Tabellar
Das mit dem PostEvent ist interessant. Wie muss man sich solch eine Nachricht vorstellen? Wie erhält der Client die Nachricht? In welchem Format? Wie erkennt der Client, dass eine Nachricht eingegangen ist?querdenker hat geschrieben:Ich habe zu dem Thema DB ja schon einen Vorschlag gemacht.
Was meiner Ansicht nach stark für Firebird-SQL spricht
- relativ Plattformunabhängig, dieses gilt auch für die Datenbank
- Installationsgröße
- Geschwindigkeit
- Interne Sprache für StoredProcedures
- Trigger für Before/After Insert, Before/After Update, Before/After Delete
- PostEvent, d.h. das DBMS schickt eine Nachricht an einen angemeldeten Client, der daraufhin eine Aktion ausführen kann
- Unterstützung von UserDefinedFunctions (in Delphi/C geschriebene DLLs/Libs)
Ich verwende im Moment auch einen RPC "ähnlichen" Nachrichten Ansatz, allerdings ohne auf HTTP aufzusetzen (sprich XML-RPC Syntax ohne HTTP). Twisted ist ein grosses Framework, das sehr viele Protokolle unterstützt. Mit ansyncore habe ich auch erste Tests unternommen. Es ist eben auch ein Framework, das letztendlich auf der "Socket" Schnittstelle aufsetzt. Asyncore ist "reaktiv" ausgelegt. D.h. es "reagiert" auf eingehende Nachrichten.querdenker hat geschrieben: Ansonsten bin ich gerade dabei, mich ein wenig mit RPC auseinanderzusetzen, da ich das für die Arbeit brauchen werde.
Dabei stoße ich immer wieder auf twisted, meistens in verbindung mit asyncore.
Könnten man ja eventuell auch hier einsetzen.
mfg, querdenker
Danke für den Link. Ich hab das ganze mal schnell überflogen. PostgreSQL kann das auch. Bei PostgreSQL würde ich das dann TriggerNotice nennen. Wenn man den Name "PostEvent/TriggerNotice" mal in technische Wörter auflöst, dann steckt da eine serverseitige DB -Trigger Funktion dahinter, welche NOTICEs an die entsprechenden Clients sendet. Diese Clients "hören" dann über die (Socket) LISTEN Funktion diese NOTICEs ab und können dann entsprechend darauf reagieren.querdenker hat geschrieben:hi tabellar,
ich schick dir einfach mal den Link zur doku, bin gerade ein wenig unter wasser(job)
Kinterbasdb-Doku
mfg, querdenker