PROTOCOL FOR SYNCHRONOUS CONFERENCING
Stand 2007

Carlo v. Loesch
PSYC architect
symlynX

Weisspapier zu PSYC


Zusammenfassung

Das Ziel
PSYC ist ein flexibles Protokoll zum Aufbau einer weltweiten verteilten Messaging-Infrastruktur primär für text-basierte Konferenzschaltungen (auch Chats oder Chatsysteme genannt). Es entstand mit der Zielsetzung, das Internet- Relay- Chat- System ersetzen zu können, hat sich aber weiterentwickelt zur Unterstützung von multimedialer Kommunikation und kann auf allerlei Einsatzzwecke zugeschnitten werden. Bestehende Kommunikationssysteme können relativ leicht in das PSYC-Netzwerk eingebunden werden, da die Komplexität des Protokolls auf der Client-Seite residiert.
Der Weg
Der Grundgedanke ist es, eine weltweite Datenbank über die Anwesenheit von Personen und Existenz von Konferenzen gar nicht erst aufzubauen, sondern ganz wie im Web den Resourcen und Personen URL-konforme Locators zuzuweisen, und daraufhin die Client-Programme direkte oder smart geroutete Verbindungen untereinander aufbauen zu lassen. Die Server nehmen dabei eine vermittelnde Hilfestellung ein, und sind von Datenbank oder Routingproblemen gänzlich befreit. Passend dazu kommt ein minimalistisches Konferenzsteuerungsprotokoll, welches totale Programmierbarkeit der Politik des Konferenzraumes ermöglicht (Wer darf hinein? Wer darf nur zuhören? etc.). Zugleich kann die Zustellung der Nachrichten durch Multicast- Protokolle optimiert werden. Der Server trägt nicht die Last der eigentlichen Kommunikation, es sei denn man möchte es so.

Was ist ein Chatsystem?

Einleitung
Ein Chatsystem oder elektronisches Konferenzsystem ist eine (meistens textuelle) Gruppenkommunikation von Menschen, die an unterschiedlichen Orten am Computer sitzen und deren Computer in irgendeiner Form vernetzt sind. Das Wort "Chat" (norddeutsch "Schnack") deutet dabei die Gelassenheit und Gemütlichkeit an, die in Chaträumen üblicherweise vorherrscht. Dies ist aber trügerisch: Man kann solche Systeme durchaus zur Ergänzung der Geschäftskommunikationswege einsetzen.

Die Aufgabenstellung

Dezentral ist cool
Verteilte Strukturen sind im Internet die Regel, da sie am skalierungsfähigsten und unbürokratischten sind. Im Bereich der asynchronen Kommunikation sind es die E-Mail- Server und -Clients. Zur Informationsgewinnung hat sich in Windeseile das WWW etabliert. Für Dateiarchive ist FTP üblich. Nur für die synchrone Kommunikation ist kein vergleichbares Protokoll vorhanden.

Stand der Technik

talk, msend, SMTP SEND ..
talk und verwandte Protokolle arbeiten zwar nach dem Prinzip der verteilten Client-Server- Kommunikation, orientieren sich jedoch an Maschinen, auf denen Menschen dann und wann eingeloggt sind, nicht an den Menschen selbst.
Chatsysteme mit zentralem Server
Alles in einem Server zentralisiert zu haben macht die Programmierung erheblich leichter, und macht es möglich Eigenschaften des Systems ganz nach persönlichem Gusto zu implementieren. Daher gibt es besonders im proprietären Umfeld viele Chatsysteme dieser Art.

Aber:

  • Wieviele tausend Menschen kann ein einzelner Server vertragen?
  • Wie soll man Menschen wiedertreffen, die man auf diesem oder jenem System kennengelernt hat - In dem man sich stets in alle Systeme gleichzeitig einwählt?
  • Und ist es sinnvoll, wenn sich zwei Australier unterhalten wollen, daß sie es womöglich unbeholfenerweise auf einem österreicherischen Server tun?
Buddy Lists
Buddy Lists stammen aus den Online-Diensten, haben sich aber auch im Internet inzwischen recht beliebt gemacht - besonders das ICQ- System. Bisher sind sie proprietär, zentralistisch ausgelegt und schränken die Privatsphäre ein (Werbenachrichten sind eine Folge davon). Jabber™ kam später, und das behandeln wir auch später erst in diesem Dokument.
Internet Relay Chat
Gerade diese Schwäche bewältigt IRC, welches dadurch zum größten Chatsystem auf dem Planeten avancierte. Egal, woher man sich ins IRC einwählt, man trifft seine Kommunikationspartner wieder, da sie i.d.R. immer wieder denselben Nickname (Spitzname: typischerweise auf 15 Zeichen beschränktes Kürzel) oder dieselben Channels (Konferenzschaltungen) benutzen. Zusätzlich bietet IRC die grandiose Fähigkeit, Bescheid zu geben, wann bestimmte Nicknames im System belegt werden, also Freunde anwesend sind (Notify-Funktion). Leider krankt IRC an seinem unzulänglichen Protokoll, welches nicht für den Grad des Wachstums konzipiert wurde - und bürokratische Probleme entstehen noch zusätzlich, da der Betrieb eines IRC-Servers Bürde und Machtposition zugleich ist. Von der Hackbarkeit von Channels und Nicknames nicht zu sprechen.
Internet-Telefonie zum "chatten" ?
SIP ist zu simpel, H.323 hat weniger Chatraumfeatures als IRC. Es ist sinnvoller Telefonie aus einem durchdachten Messaging-System zu starten, als umgekehrt.

Warum nicht Jabber™ / XMPP?

Gemeinsamkeiten
Es ist gut, dass Jabber eine offene verteile Netzstruktur hat und die Konzepte von Identification und Location ähnlich umsetzt wie PSYC.
aber auch Unterschiede
Jabber ist als Instant-Messaging-System konzipiert mit Fokus auf 1-zu-1-Nachrichten. Die Effiziente Nachrichtendistribution an Gruppen fehlt, obwohl Presence-Meldungen an die Gruppe aller Freunde gehen müssen! Dadurch stößt das System schon jetzt auf großen populären Servern auf massive Skalierungsprobleme. Eine Obergrenze der Rostergröße (Anzahl der erlaubten Bekanntschaften) einzuführen kann nun wirklich nicht die Antwort sein. Zudem wird das XML-Format aufgezwungen, welches zwar eine gewisse Struktur und Ordnung nahelegt aber zugleich Framing unmöglich macht (Man kann nicht erkennen wo eine Nachricht zu Ende sein wird ohne sie vollständig zu verarbeiten) und die Einbettung von Dateien ist nur über mühsame Kodierung machbar. Sowie tausend weitere kleine Dinge, die fippo bei der Implementierung aufgefallen sind. Einige Details hierzu stehen in der jabber2psyc Hilfe-Seite.


Why is it so hard?

Wo liegt der Hund begraben?
Der Grund, warum es noch keine klare einfache Lösung zum Problem gibt, liegt in der Komplexität der Personenmodellierung, sowie in Steuerung und Routing bei Konferenzschaltungen.
Wie geht's weiter? Aus IRC-Sicht:
Die globale dynamische Datenbank ist Wahnsinn und muss weg
(Stattdessen führen wir personal nickspaces ein).
Dann klare Zuständigkeiten für Gruppenschaltungen schaffen.
Wie geht's weiter? Aus Jabber-Sicht:
Routing und Multicasting konzeptionell beachten.
Binärfähiges kompaktes Protokoll verwenden.

Uniform Network Identifications & Locations

psyc://psyc.kanzleramt.de/~gerhard
So funktioniert Personenmodellierung in PSYC: UNIs, z.B. psyc://psyc.kanzleramt.de/~gerhard fordern einen PSYC-Client auf, sich an den PSYC-Server psyc.kanzleramt.de zu verbinden. Dort antwortet ein Programm, welches im Auftrag des Kanzlers die Kommunikation mit dessen Client regelt. Oft wird es die Nachrichten durchstellen, egal wo sich der Kanzler derzeit befindet - sei es in China, Tuvalu oder sonstwo. Es könnte aber auch beschließen einer Direktverbindung zwischen den beiden Clients zuzustimmen, sozusagen peer to peer. Die dazu nötige UNL sähe dann beispielsweise so aus: psyc://bill.pcnet.whitehouse.gov:34209
Übrigens: ve steht für "virtual environment".
Vorteile der statischen Adressierbarkeit
UNIs (die Bezeichnung "Uniform Resource Identification" wäre für Menschen doch arg uncharmant) bringen weitere enorme Vorteile: Sie können ins WWW eingeflochten werden, in e-mail signatures erscheinen, sowie auf Visitenkarten und in Zeitschriften. Stets kann schnell eine Verbindung zu einer Person aufgebaut werden, oder wenigstens zu ihrem Anrufbeantworter.
nicknames are owned
Die UNI legt zudem Authentifizierung nahe, welche die Identität einer Person sicherstellt und dem IRC-typischen "faken" von Personen im Netz Grenzen setzt.

Anwendungen von UNI+UNL Messaging

Anrufbeantworter
Sollte Gerhard gerade beim Golfspiel mit Bill sein, kann sein Heim-Server Nachrichten für ihn entgegennehmen, oder "zurückrufen", sobald der Kanzler wieder an der Tastatur ist. Oder er setzt Sprachsteuerung ein.
BITNET-like command "tell"
Allein Nachrichten "um die Ecke" senden zu können, kann viele Einsatzzwecke finden. Denken wir uns zum Beispiel einen "tell"- Befehl wie im BITNET der 80er Jahre üblich war: Man konnte ihn aus allerlei Automationen und Skripten heraus aufrufen, etwa, um die Ankunft von Email sofort zu melden, oder Ereignisse durchzugeben wie Maschinen, die ausfallen oder Hintergrundprozesse die fertig werden. Ein Chat-Protokoll ist für solche Nachrichten viel geeigneter, als - im ersten Falle - dauernd nach Post zu sehen, oder - in letzteren Fällen - E-Mails zu versenden.
Gateways
PSYC unterstützt auch fremde Uniformen innerhalb des Protokolls, wodurch es diese gleich mitrouten kann. All die Protokolle, die nicht die Fähigkeit besitzen, den Empfänger dort zu erreichen, wo er ist, könnte man mit einem PSYC-Übergang dazu bringen es doch zu tun. Ich nenne jetzt einfach ein paar Namen, die Ihnen bekannt sein könnten, oder auch nicht:
  • Die BITnet MSG und ihr Internet-Pendant MSEND (RFC1312)
  • Die ESMTP-Befehle SAML und SOML (send as mail or terminal) gemäß RFC821
Und da die Mobiltelefonie noch nicht auf Internet-Protokollen basiert, wären Übergange zum Short Message Service (SMS) der Mobiltelefonanbieter praktisch. Bisher wurden solche Übergänge nur zu E-Mail realisiert, welches aber dafür gar nicht geeignet ist.
Vorschläge?
Ein Internet-Messaging-Protokoll ist für sehr viele Anwendungen nützlich. Fallen Ihnen auch welche ein?
Andere Wege dieses Teilproblem anzugehen
Dynamic DNS (exposes personal computer)
IPv6 (waiting for godot)
SIP (although beyond original scope)
Jabber™ (a bit cumbersome, but works)

Conferencing: Räume und Gruppen

psyc://psyc.ai.mit.edu /@gnu.announce/
So sähe die UNI einer Konferenzschaltung aus. Hier wird dem Client nahegelegt, den Server um Zutritt zu bitten - er kann aber auch beliebige andere Methoden in diesem Objekt aufrufen. Das "@"-Zeichen deutet dem Client nur an, daß sich dieses Objekt wie ein Raum verhält, und daher betretbar ist.

Sowohl die Steuerung wie das Routing des Raumes sind im Manager programmierbar!

Beliebte Rückfrage: Ja, man kann auch mehrere redundante Manager
einsetzen, wenn man Sorge trägt, der Hauptmanager könne ausfallen.


Nachrichtendistribution

PSYC: Multicast-Prinzip auf unterster Ebene
Auf unterster Protokollebene hat PSYC eine Vorstellung davon, Nachrichten geschickt an mehrere Teilnehmer auszuliefern. Das mag selbstverständlich klingen, aber erstaunlicherweise gibt es sehr wenige Technologien, die das ähnlich anpacken. Sogar das Wort selbst ist im populären Sprachgebrauch zu einem Synonym für eine spezielle Technologie geworden, IP Multicast, welche für viele Situationen nicht anwendbar ist. Mit seinen grundlegenen Konzepten von context, logical targets und packet ids verbraucht PSYC erheblich weniger Bandbreite bei der Verteilung von Information. Es hilft zudem Missbrauch zu erkennen und SPIM (messaging SPAM) zu vermeiden.
junction networks
Nehmen wir die Junction Netze als Beispiel. Sie sind eine von mehreren Multicaststrategien von PSYC. Hierbei handelt es sich um IRC-artige Baumstrukturen, welche aber viel optimaler von den beteiligten Räumen direkt aufgespannt werden, nicht von einem Servernetzwerk. Sie eignen sich vorzüglich zur Verteilung von Nachrichten, um ein vielfaches effizienter als mit dem derzeitig populären RSS. Auch Anwendungen wie BitTorrent können von der Realtime-Tauglichkeit von PSYC profitieren als Ankündigungsmedium.
context slaves
Viel alltäglicher für den PSYCschen Durchschnittsbedarf sind stattdessen die context slaves. Sie errichten automatisch eine geschicktere Route zum Ursprung einer Sendung ein, sobald mehrere Empfänger teilhaben wollen.
multipeer to peer
Datenlastige Anwendung würde man in der Regel nicht auf seinen Servern betreiben wollen, sondern lieber direkt zwischen den Endanwendern aushandeln zu lassen, peer to peer. Das ist in PSYC selbstverständlich auch gern gesehen und Dank UNI und UNL letztlich auch einfacher zu realisieren. Auch hybride Anwendungen mit P2P und Backbone-Einsatz können angepackt werden.
future multicasting
PSYC ist konzeptionell offen neue und sogar externe Multicaststrategien zu unterstützen. Wussten Sie, dass GPRS eingebaute Multicast-Unterprotokolle besitzt? Wir würden die gerne benutzen. Oder einfach das gute alte IP Multicast einbinden, wem auch immer das nützlich sein würde. Mittels packet ids können wir uns redundante Topologien erlauben, bei denen es fundamental ist, Duplikate aussortieren zu können.

Programmierbare Konferenzsteuerung

Programmierbare Konferenzsteuerung
Was noch lange nicht bedeutet, daß das Managerobjekt, wie ich es nun nennen möchte, den Client auch hereinlässt. Das Objekt kann beliebige Algorithmen anwenden, um diese Entscheidung zu treffen.

Es seien die klassischen Algorithmen genannt: Zugang nur mit Passwort oder nach erfolgter Einladung. Es ginge aber auch automatisch nach Authentifizierung der Person, oder einfach alle Leute aus der Domäne *koeln*.de zulassen. Das Managerobjekt könnte die Entscheidung sogar hinauszögern, etwa um eine oder mehrere Personen um Rat zu fragen. Selbstverständlich gibt es auch öffentliche Räume.

Persönliche Räume
Besonders schön finde ich die Vorstellung, ein Benutzer könne sich eigene Räume einrichten, dessen Eigenschaften er gemütlich und persistent durch HTML-Formulare konfigurieren kann. Und sollte ihm eine Feature fehlen, kann er den Admin des Servers bitten diese einzubauen. PSYC-Konferenz-Hosting als Dienstleistung.
Unknackbare Konferenzräume
Weiterhin soll in der Regel nur das Managerobjekt die Authority über die Konferenz besitzen, um dessen Eigenschaften und Teilnehmer festzulegen. Dadurch ist der im IRC so befürchtete "Take-Over" einer Konferenz so gut wie unmöglich.
Dennoch: verteilte Kommunikation
Dennoch findet die Kommunikation zwischen den Teilnehmern direkt oder über Multicast-Protokolle statt. Dies ist möglich durch PSYCs minimalistisches Konferenzsteuerungsmodul, welches im Prinzip den Teilnehmern lediglich die Liste anderer Teilnehmer zukommen lässt, und - zur Realisierung moderierter Konferenzen - informiert, ob diese Sprecher oder Zuhörer sind.

Freundschaftsnetze

friendsnets, friendcasting
Das Freundschaftsumfeld ist modellierbar als Raum. Dadurch werden Anwesenheits-Infos optimal verteilbar mittels Multicasting. Dazu ist es im E-Mail-Umfeld extrem beliebt geworden eine Nachricht an alle Freunde zu schicken. Mit Friendcasting kann man auf Wunsch sogar Freunde von Freunden erreichen, wenn die das für richtig halten, um sie beispielsweise zu einer Party einladen. Soziale Netzwerke, dezentral und open-source. Ist doch super, oder? Dazu auch noch kombiniert mit Multicast. Da steckt noch jede Menge potential drin.

Einbindung weiterer Protokolle

Protokollauswahl
Die Weiterleitung von einer Personenidentifikation (UNI) zum aktuellen Client der Person muß sich nicht auf eine einzelne UNL beschränken. Eine ganze Sammlung von Portnummern und Protokollschemas kann übergeben werden, damit anspruchsvollere Protokolle automatisch miteinbezogen werden können.
VoIP, SIP, Audio/Video-Conferencing
Naheliegend wäre es also UNL-Schemas zu definieren für allerlei Audio- und Videokonferenzprotokolle. Dadurch liessen sich auch die typischerweise eher dürftigen Konferenzsteurungssysteme dieser Protokolle umgehen durch das flexiblere und unabhängige PSYC. Umgekehrt bräuchten sich die Entwickler von Real-Time-Protokollen keine Gedanken mehr über die Konferenzsteuerung zu machen.
Multicast-Routing mit oder ohne PSYC
Auch für textbasierte Kommunikation ist die Auswahlmöglichkeit mehrerer Protokolle sinnvoll, etwa um unterschiedliche Multicast-Strategien sogar hybrid einsetzen zu können; vom PSYC-basierten Proxynetzwerk über PSYC-basiertes MBONE-Multicasting (auf PIM-SM hoffend) bis zu Fremdprotokollen.

Optionale Protokollmodule

Multimediale Daten
Ergänzenderweise bietet auch PSYC selbst die Möglichkeit einen Content-Type festzulegen für übertragene Nachrichten, welcher demnach nicht unbedingt text/plain sein muß, sondern auch text/html oder image/jpeg sein kann.
Module zur Binärübertragung
Passend dazu bietet PSYC die Option der Binärübertragung. Kombiniert mit der Option der Fragmentierung läßt sich sogar Multicast-Filetransfer realisieren.
Protokollmodule
Es brauchen jedoch nur jene Module implementieren werden, die auch benötigt werden. Daher ist ein Minimal-PSYC-Server schnell programmiert. Selbstverständlich können jederzeit eigene Module konzipiert werden und bei der anfänglichen Negotiation jeder Kommunikation angepriesen werden. Die Grundfunktionalität der Übertragung kleiner Textnachrichten ist dennoch immer gewährt und per se bereits sehr wertvoll.

Beispiel einer Protokollnachricht (ausführlich)

Beispiel einer Nachricht im long-format von PSYC
    
      =_identification psyc://psyc.cool.org/~cool
      :_target	~suzie
     
      =_nickname	Coolman
      =_nickname_alias Cool
      =_description	As cool as ice ice baby
      :_action	flüstert Dir augenzwinkernd zu
      _conversation
      Hey du! Schon was vor heutabend?
      .
    
Erwartete Darstellung bei Suzie (angenommen ihr Client hat mit Coolman schon einmal Bekanntschaft gemacht):
    Coolman flüstert Dir augenzwinkernd zu:
	        Hey du! Schon was vor heutabend?

Die Leerzeile zwischen dem Header für den Nachrichtenübertragungs- und Routinglayer MMP (Modular Message Protocol) und dem Rest der Nachricht - ein Methodenaufruf gemäß PSYC - ist kein Fehler. Sie ermöglicht es einem Router oder Gateway nur bis zur Leerzeile parsen zu müssen (und wenn die Nachricht groß ist, hat er bereits die Länge erfahren, die er transparent übermitteln muss), während eine richtige PSYC-Applikation die Leerzeile einfach übergehen kann und mit den End-to-End-Variablen weitermacht.


Beispiel einer Protokollnachricht (kompakt)

Dieselbe Nachricht im kompakten Format von PSYC
      =i	psyc://psyc.cool.org/~cool
      :t	~suzie
     
      =n	Coolman
      =n_alias	Cool
      =D	As cool as ice ice baby
      :a	flüstert Dir augenzwinkernd zu
      c
      Hey du! Schon was vor heutabend?
      .
    

Die genauere Spezifikation des Protokolls befindet sich in http://www.psyc.eu/tech.en.html.


Übergänge ins IRC

Zutritt mit dem IRC-Client
Es ist eine Software frei erhältlich (psyced), welche einen IRC-Server so zu emulieren weiß, daß IRC-Anwender in der PSYC-Dimension navigieren können wie sie es im IRC gewohnt sind. Es kommen ihnen schon auf diesem einfachen Wege viele Vorteile des neuen Systems zuteil:

  • Identität mit Passwortschutz
  • Programmierbare Anrufbeantworterdienste
  • Programmierbare sowie konfigurierbare sichere Konferenzräume
Gateways in IRC-Netze
IRC ist nach wie vor sehr populär, und da IRC nicht alle Anwender in ein und demselben Netz beherbergen kann, haben sich seit dem Split von 1990 immer mehr IRC-Netze gebildet. Das war nicht im Sinne des Erfinders von IRC. psyced bietet eine Gateway-Lösung (derzeit als "Bot", aber Service/Server wäre gar nicht viel schwerer, wenn die IRC-Betreiber kooperieren würden), welche IRC-Nutzer in allerlei Netzwerken per irc:-URL adressierbar macht von PSYC aus. Man kann zwar nur eingeschränkt sicher sein, dass auf der anderen Seite immer dieselbe Person am Apparat ist, aber besser als nichts. Im Prinzip könnte psyced auch einen Gateway zwischen IRC-Netzen und Jabber™ herstellen.

Mehr..

Kompression und Verschlüsselung
Das Protokoll kann mehrere Encoding-Verfahren auch geschachtelt spezifizieren. Wir verwenden derzeit TLS/SSL und zlib. GnuPG/PGP im End-to-End-Bereich ist naheliegend, aber wir liebäugeln eher mit einer nativen Unterstützung von OTR.
Future: Interface- Beschreibungssyntax für PSYC-Objekte
Für herkömmliche Chat-Zwecke reichen die Interfacebeschreibungen, die durch ~ oder @ in der UNI angedeutet werden, aus. Weitere Methoden können geraten werden. Sollte man aber über dies hinaus gehen wollen, so ist eine Interface Description Syntax, angebrachter. Hierzu gibt es noch keinen konkreten Bedarf.
Konzeptionelle Vereinigung von Chaträumen und Buddylisten
Das Management von Kontakten und der Versand von Anwesenheitsupdates ist auch nur ein Spezialfall eines Chatraumes. In PSYC kann das konsequenterweise so gehandhabt werden, weswegen man die ganze Flexibilität eines programmierbaren Chatraums erhält für das Management der Kontakte. Zugleich ist weniger Programmcode erforderlich.

Was existiert schon heute?

psyced Daemon
psyced ist mehr als nur ein PSYC-Server. Es implementiert zusätzlich PSYC-Client-Funktionen, um dadurch Anwendern von einfachen Java-Applets, Telnet-Programmen, IRC- und Jabber-Clients einen weitgehend vollständigen Zugang zum PSYCspace zu ermöglichen. Zusätzlich kann psyced mit Jabber-Servern kommunizieren und denen Chaträume für PSYCer, IRCer und Jabberer zugleich anbieten. Er dient auch als Gateway in verschiedene IM- und IRC-Netze sowie als Web Application Server für verteilte Multi-User-Anwendungen. Er ist in LPC implementiert und benötigt einen LDMUD-Treiber unter Unix oder Windows, welcher aber bei der Installation automatisch erzeugt wird. Beide sind als Open-Source lizensierbar im Rahmen der GNU Public License. Skalierbar, programmierbar, wirkungsvoll.

Clients
... sind im aktuellen Entwicklungsstand noch nicht so wichtig, man kann die vertrauten IRC- und Jabber-Clients weiterverwenden, bis die Clients reif genug sind. Zur Not kann man sich auch mit der Web-Schnittstelle behelfen. Die Entwickler selbst verwenden zur Zeit primär IRC-Clients, PsycZilla, psycion oder einen erweiterten telnet client für unix namens powwow.

Sobald man sich in die PSYC-Welt eingelebt hat, kann es interessant werden dann doch native PSYC-Applikationen zu probieren:

PsycZilla
Auf Mozilla aufbauend kann man diesen Client wahlweise als Firefox Extension installierend, oder eigenständig. Es ist ein graphische plattformunabhängige Schnittstelle in die PSYC-Welt mit exquisiter Web-Integration. PsycZilla!
psycion
psycion ist der am weitesten entwickelte PSYC Client zur Zeit. Als Consolen-Client ist er von und für erfahrene Unix-Anwender geschrieben und bietet mehrfache Screens mit curses-basierten Automationen. Der Code ist modular, weswegen grafische Varianten von psycion leicht zu realisieren sind. psycion wird mitgeliefert bei perlpsyc.
perlpsyc
Net::PSYC kommt in einem Paket ausgestattet mit allerlei PSYC-Automationen, Kommandozeilen-Messaging-Befehlen, dem coolen psycion Client und sogar einem PSYC-steuerbaren MP3 player.
jaPSYC, Psychedelic and other Java™ apps
Nachdem Mario 'BitKoenig' Holbe bereits auf eigene Faust PSYC-Prototypen gebaut hatte, haben wir bei der damals noch existenten Agentur LAVA mit der Erstellung einer PSYC-Implementation in Java beauftragt. Java ist zwar keine glorreiche aber damals übliche Entscheidung gewesen. Diese Implementation ist besonders aufwendig und ausgereift, man kann mit ihr Clients wie Servers, aber auch hybride Applikationen konstruieren. Diese Entwicklungsbibliothek ist open-source, daher kostenfrei im Quellcode verfügbar. about:Java

Zur Person

Carlo v. Loesch implementiert Chatsysteme seit 1988. Er hat an der IRC-Software mitgewirkt und sie unter anderem um den berüchtigten /me Befehl erweitert. Nach einem Ausflug ins Web-geschäft (1995 Mitbegründung von stern.de und politik-digital.de) nun auf eigenen Beinen mit
symlynX. Spezialisiert auf skalierfähige niveauvolle Chat-Lösungen. Nimm Teil am kommenden MTV Europe Music Awards Chat Event! Und weil das alles eigentlich langweilig ist, gibt es auch Musik von ihm, erhältlich auf Platte und CD oder in seinen Radiosendungen.

und jetzt.. http://about.psyc.eu