Kommunikationssystem
Die Erfindung betrifft ein Kommunikationssystem. Insbesondere betrifft die Erfindung ein Kommunikationssystem in Form einer Community.
Das Kommunikationssystem in Form einer Community basiert auf einem speziellen Application Server. Unter Application Servern versteht man gemeinhin Softwaresysteme, die zentral/serverseitig für eine große Zahl von Clients/Benutzern mittels entsprechender Komponenten grundlegende Dienste erbringen und um beliebige Komponenten („Module") erweiterbar sind. Die Komponenten können auf Dienste und Grundfunktionalitäten des Application Servers zurückgreifen. Dazu gehören insbesondere (i) Verteibarkeit der einzelnen Komponenten des Application Servers, um Last zu verteilen und die Verfügbarkeit zu erhöhen; (ii) Sessionverwaltung; und (iii) Benutzerverwaltung.
Unter Communities werden erfindungsgemäß Gemeinschaften in, Inter-, Extra- oder Intranet verstanden, die auf die individuellen Bedürfnisse einer Interessensgemeinde zugeschnitten sind. Die Benutzer können innerhalb der Community beispielsweise per Webbrowser und anderer Endgeräte miteinander kommunizieren, gemeinsame Vorhaben koordinieren und so ihre Zusammenarbeit effizienter gestalten. Dafür stehen u.a. Teamräume, Diskussionsforen, Chaträume, Audio/Videokonferenzen, E-Mail, Dokumentenablagen oder Terminverwaltungen zur Verfügung. Die Gemeinschaft weist ein integriertes Benachrichtungssystem auf, das die einzelnen Teilnehmer ständig über Ereignisse und Aktionen anderer Benutzer informiert.
Mit dem Aufkommen des Begriffs e-Commerce ging man davon aus, dass allein der Betrieb eines Online-Shops Umsatz beschert. Inzwischen haben viele Betreiber von Online-Shops erkannt, dass Aspekte wie z.B. Versand und Inkasso dabei oftmals vernachlässigt worden sind und vernachlässigt werden. Ein wesentlicher Aspekt von Online-Shops ist, Kunden langfristig an sich zu binden. Es ist bekannt, dass es wesentlich teurer ist, einen neuen Kunden zu gewinnen als einen vorhandenen zu behalten. Studien haben ergeben, dass ein Internet-Shop an einem Kunden erst nach
vier Einkäufen oder 18 Monaten Treue verdient. Je länger ein Kunde gehalten wird, desto stärker steigen darüberhinaus dessen Ausgaben. Wie die McKinsey-Manager Hagel und Armstrong in ihrem Buch „Net Gain - Profit im Netz" (Net Gain: Expanding Markets Through Virtual Communities; Hagel, Armstrong; 1997) beschrieben haben, eignen sich virtuelle Communities hevorragend, um loyale Kunden zu gewinnen und zu binden, direktes Feedback zu bekommen sowie Kundenprofile und Umsätze zu generieren. Wie die in Net Gain vorgestellte Theorie auch in der Praxis funktioniert, zeigen herkömmliche Communities. Die Grundlage für die Treue der Benutzer bilden die Funktionalitäten der herkömmlichen Communities, mit der jeder einzelne durch und für die Gemeinschaft Mehrwerte erzielen kann.
Herkömmlicherweise schliessen sich Menschen in Communities meist zu kleineren Gruppen zusammen, um dort spezielle Interessen zu verfolgen und bestimmte Teilziele zu erreichen. Dasselbe Verhaltensmuster ist in Unternehmen zu beobachten: Organisationen sind immer seltener von starren Strukturen und Hierarchien geprägt, sondern immer stärker durch weitgehend eigenständige Teams und Einheiten, die häufig auch nur vorübergehend existieren. Parallel dazu gibt es einen Trend zu mehr räumlich und zeitlich verteilter Zusammenarbeit. Genau betrachtet sind Unternehmen damit nichts anderes als Communities: Sie sind eine Gemeinschaft von Menschen mit gleichgerichteten Interessen, die auf viele Teilziele und ein gemeinsames Hauptziel hinarbeiten.
Ferner verändern sich heutzutage Märkte rasend schnell, werden transparenter und lassen über Nacht aus verteilten Organisationen neue Allianzen entstehen. Um dem Wettbewerb immer einen Schritt voraus zu sein, müssen Geschäftsprozesse beschleunigt und Geschäftspartner in diese integriert werden.
Weiterhin geht mit der Veränderung von Unternehmensstrukturen die Delegierung von Verantwortlichkeiten einher. Ein System, das unternehmensweit sowie mit Kunden und Partnern die Kommunikation unterstützen und fördern will, muss dem Rechnung tragen. Viele herkömmliche Systeme kranken daran, dass ein zentraler Administrator benötigt wird, der Benutzer einrichten und Rechte vergeben muss. Bei grösse- ren Benutzerzahlen stösst ein solches System schnell an seine Grenzen. Eine Zu-
sammenführung von Internet-Website und Unternehmensprozessen ist praktisch nicht möglich.
Somit besteht Bedarf an einem Kommunikationssystem in Form einer Community, das diesen Anforderungen gerecht wird.
Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Kommunikationssystem, insbesondere eine verbesserte Community bereitzustellen. Diese Aufgabe wird mit den Merkmalen der Ansprüche gelöst.
Das erfindungsgemäße Kommunikationssystem, insbesondere eine erfindungsgemäße Community, ist modular aufgebaut und weist gemäß einem ersten Aspekt der er- findung eine Applikationsschicht (2), eine Präsentationsschicht (3) und eine Datenhaltungsschicht (4) auf. Die Applikationsschicht (2) weist eine Kerneinrichtung (21 ), mehrere Kernkomponenten (22) und mehrere Applikationskomponenten (23) auf. Gemäß einem weiteren Aspekt der Erfindung wird ein Kommunikationssystem mit einer Applikationsschicht (2), einer Präsentationsschicht (3) und einer Datenhaltungsschicht (4) bereitgestellt, wobei das Kommunikationssystem mehrere virtuelle Arbeitsbereiche (5) aufweist.
Das erfindungsgemäße Kommunikationssystem erlaubt die gleichzeitige Kommunikation mit allen Kunden, die beispielsweise über das Internet auf das Komunikationssy- stem zugreifen, und die Erfassung von Kundenprofiien. Kunden können mittels des erfindungsgemäßen Komunikationssystems miteinander in Kontakt treten. Außerdem unterstützt das erfindungsgemäße Komunikationssystem den Daten- und Informationsaustausch innerhalb eines Unternehmens. Der Vorteil des erfindungsgemäßen Komunikationssystems liegt dabei in dessen Aufbau im Baukastensystem sowie in dessen modularer 3-Schichten Architektur. Durch die Bereitstellung von virtuellen Arbeitsräumen werden für unterschiedliche Benutzergruppen individuelle Kommunikationsumgebungen bereitgestellt.
Die Erfindung wird im folgenden mit Bezug auf die Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Beispiel für die erfindungsgemäße hierarchische Struktur der virtuellen Arbeitsbereiche des erfindungsgemäßen Kommunikationssystems;
Fig. 2 die detaillierte Architektur des erfindungsgemäßen Kommunikationssystems; und
Fig. 3 die dynamische Seitengenerierung in dem erfindungsgemäßen Kommunikationssystem.
Zunächst werden bevorzugte Elemente des erfindungsgemäßen Kommunikationssystems bzw. der erfindungsgemäßen Community beschrieben.
Architekturkonzept
Das erfindungsgemäße Kommunikationssystem bzw. die erfindungsgemäße Community basiert auf einer Architektur, die es jedermann erlaubt, unter Kenntnis der Schnittstellen beliebige Komponenten hinzuzufügen. Diese Komponenten können eine Reihe grundlegender Funktionalitäten, die durch Kernkomponenten (22) erbracht werden, in Anspruch nehmen. Die Architektur der erfindungsgemäßen Community ist unten näher erläutert.
Unterstützung beliebiger Endqeräte
Die erfindungsgemäße Community unterstützt beliebige Endgeräte. Dazu zählen z.B. Webbrowser und WAP-fähige Mobiltelefone.
Alle Endgeräte, die HTTP bzw. HTTPS als Kommunikationsprotokoll unterstützen, können mit dem erfindungsgemäßen Kommunikationssystem/der er indungsgemäßen Community bedient werden. Da erfindungsgemäß die Standardtechnologien XML (Extended Markup Language) und XSL (Extended Stylesheet Language) zugrunde liegen, ist für die Unterstützung unterschiedlicher bzw. diverser Clients kein Programmieraufwand nötig. Sollen Endgeräte bedient werden, die andere Protokolle verwenden, kann erfindungsgemäß eine Schicht der Community (Presentation Layer, siehe unten) anderweitig implementiert werden.
Benutzerverwaltung
Wenngleich die erfindungsgemäße Community auch anonyme Benutzer bedienen kann, sind vorzugsweise viele Funktionen registrierten Benutzern vorbehalten. Benutzer können sich selbst in der Community registrieren (ebenso ist es möglich, Benutzer automatisch implizit zu registrieren). Ihre Attribute bzw. Profile können in beliebigen Benutzerverwaltungen verwaltet werden. Die erfindungsgemäße Community unterhält eine eigene Benutzerverwaltung. Sie stellt eine Implementierung einer Programmierschnittstelle dar, die für beliebige andere Implementierungen ebenso genutzt werden kann. Damit kann eine Community verschiedene Benutzer gleichzeitig in mehreren Verwaltungen organisieren. Viele Betreiber können somit ihre bisher vorhandene Benutzerverwaltung auch in der erfindungsgemäßen Community nutzen. Datentransformationen und/oder -synchronisierungen sind somit nicht notwendig.
Ferner wird erfindungsgemäß für jedes Benutzerattribut einer Benutzerverwaltung festgelegt, ob es vom Benutzer selbst gelesen und verändert (geschrieben) werden kann oder nicht. Somit können für Benutzer auch solche Attribute existieren (z.B. ein Kundenstatus), deren Werte „im Hintergrund" und für den Benutzer unsichtbar verwaltet werden.
Workspaces
Herkömmliche Systeme unterscheiden meist nur zwischen registrierten und nicht- registrierten Benutzern. Einige Systeme ermöglichen es zusätzlich, für Gruppen von einzelnen, registrierten Benutzern virtuelle Arbeitsbereiche einzurichten, zu denen nur diese Zugang haben.
Erfindungsgemäß wird ein System zur Verfügung gestellt, mit dem beliebig viele virtuelle Arbeitsbereiche (sogenannte Workspaces) eingerichtet werden können. Workspaces sind virtuelle Räume, die Benutzer und Informationen/Funktionalitäten in einen Kontext bringen. Informationen stehen in den Workspaces vorzugsweise in Form einzelner Diskussionsforen, Konferenzräumen, Gruppenkalendern, Dokumentenablagen oder Workflows zur Verfügung. Workspaces können Abteilungen, Teamräume oder einzelne Themenbereiche einer Themencommunity abbilden. Sie können für Gruppen wie Projektteams, oder anderen Interessengruppen gebildet werden.
Workspaces des erfindungsgemäßen Kommunikationssystems unterscheiden sich von herkömmlichen Konzepten/Systemen durch folgende Eigenschaften:
1. Hierarchie:
Workspaces existieren erfindungsgemäß nicht voneinander losgelöst, sondern bilden eine Hierarchie. Von einem Workspace aus, der die Wurzel bildet, können weitere Workspaces angelegt werden, die wiederum weiter untergliedert werden können. Damit können beliebige Baumstrukturen wie in Fig. 1 gezeigt gebildet werden. In dem in Fig. 1 gezeigten Beispiel ist der oberste Workspace 51 - die Wurzel - für die Öffentlichkeit zugänglich. Ein Unter- Workspace 52 stellt das Intranet - einen Bereich nur für Mitarbeiter - dar. Der andere Zweig 53 „clients" ist für Kunden vorgesehen. Diesem Workspace sind wiederum zwei Workspaces „Sales" 54 und „Support" 55 zugeordnet. In den einzelnen Workspaces können Funktionalitäten einzelner Module bzw. Applikationskomponenten benutzt werden - z.B. Chaträume, Diskussionsforen und Dokumentenablagen.
Benutzer gehören einem oder mehreren Workspaces an. Sofern sie einem untergeordneten Workspace angehören, können sie automatisch auch allen übergeordneten Workspaces angehören (Beispiel mit drei Workspaceebenen: Ein Mitarbeiter eines Projektteams gehört auch einer Abteilung und damit auch dem gesamten Unternehmen an).
In der Hierarchie absteigend werden Benutzergruppen und gesperrte Wörter vererbt.
2. Zugehörigkeit zu Workspaces:
Ein registrierter Benutzer kann erfindungsgemäß einem oder mehreren Workspaces angehören. Er muß sich dazu nicht mehrfach registrieren, sondern kann auf Basis seiner Registrierung über folgende alternative Mechanismen Angehöriger eines Workspaces werden: • implizit durch bestimmte Eigenschaften:
Jeder Benutzer verfügt über Attribute. Ein Workspace kann so konfiguriert werden, dass Benutzer mit bestimmten Attributen automatisch diesem Workspace an-
gehören.
• explizit durch Aufnahmeantrag:
Ein Benutzer kann einen Antrag stellen, um einen Workspace anzugehören. Der Antrag wird von einem ausgewiesene Benutzer, der diesem Workspace bereits angehört, positiv oder negativ bescheinigt werden.
• explizit durch Einladung:
Ein ausgewiesener Benutzer kann einen Benutzer einladen, indem er für diesen eine Zugangsberechtigung in Form eines Passwortes generiert. Der Empfänger des Passwortes muß dieses innerhalb der Community eingeben, um die Zugehörigkeit zum Workspace zu erlangen.
• Explizit durch Erklärung:
Ein Benutzer kann, sofern er einer bestimmten Benutzergruppe angehört, sich als zu einem Workspace zugehörig erklären.
3. Dezentrale Verwaltung durch Rechtekonzept:
Ein Merkmal der erfindungsgemäßen Workspaces ist, dass diese nicht zentral administriert werden müssen. Vielmehr verfügen einzelne Benutzer über Rechte, die es ihnen erlauben, diverse Konfigurationen vorzunehmen. Konfigurationen sind z.B. die Vergabe von Zugangsberechtigungen zum Workspace (z.B. „nur Mitarbeiter"), Einladung von bestimmten Benutzern in den Workspace, Anlegen von Modulinstanzen wie z.B. Diskussionsforen, Chaträume und Dokumentenablagen, die Vergabe von Lese- und Schreibrechten für Modulinstanzen, die sich im Workspace befinden (z.B. „Kunden dürfen lesen, Mitarbeiter aus dem Marketing-Team dürfen lesen und schreiben"), oder das Anlegen von untergeordneten Workspaces (z.B. für Sales-Teams, die unterschiedliche Branchen oder Regionen betreuen).
4. Schreib-/Leserechte
In den Workspaces existieren Instanzen diverser Module: Diskussionsforen, Chaträume, Dokumentablagen etc. Erfindungsgemäß können für jede dieser Instanzen Schreib-/Leserechte vergeben werden. Diese Rechte werden nicht explizit an einzelne Benutzer vergeben, sondern implizit an Benutzer mit bestimmten Attributen. Die Vergabe der Rechte erfolgt durch ausgewiesene/berechtigte Benutzer.
Workspaceübergreifende Module
Neben Modulinstanzen bzw. Applikationskomponenten/Kommunikationskomponenten, die in den Workspaces angesiedelt sind (z.B. Diskussionsforen und Chaträume) existieren erfindungsgemäß workspaceübergreifende (oder workspaceunabhängige) Module, die sich auf die einzelnen Benutzer beziehen. Sie können von den Benutzern in allen Workspaces verwendet werden. Beispiele sind persönliche Kalender, Gästebücher, Mailboxes und Aufgaben listen. In den Workspaces kann jeweils konfiguriert werden, ob die Benutzer darin die workspace- übergreifenden Module nutzen können oder nicht.
Benutzergruppen
Über den Profilen einzelner Benutzer, die in den Benutzerverwaltungen gespeichert sind, werden erfindungsgemäß vorzugsweise Benutzergruppen definiert. Dies können z.B. „Frauen über 30", „Männer aus München" oder „Abteilungsleiter in einer bestimmten Niederlassung" sein. Diese Benutzergruppen dienen dazu, für einzelne Informationen gezielt Schrei b-/Leserechte zu vergeben. Beispielsweise haben nur Kunden Schreibrechte in einem speziellen Diskussionsforum oder Konferenzraum; NichtKunden dürfen nur lesen. Als weiteres Beispiel werden Frauen an ein und derselben Position andere Inhalte angezeigt als Männern.
Definiert werden die Benutzergruppen durch berechtigte Benutzer in den Workspaces. In der Workspacehierarchie werden Benutzergruppendefinitionen vererbt. Untergeordnete Workspaces übernehmen also Definitionen von Benutzergruppen von den übergeordneten Workspaces und können zusätzliche Benutzergruppen definieren, die sie wiederum weitervererben.
Belohnungssvstem/Punkte
Die erfindungsgemäße Community weist in einer bevorzugten Ausführungsform ein integriertes Belohnungssystem auf, das Benutzer dazu animiert, die Community aktiv zu nutzen. Einzelne Module vergeben den Benutzern Punkte, sofern diese aktiv sind, d.h. aktiv Beiträge und Inhalte in die Community einbringen. Dies sind z.B. Beiträge zu Diskussionsforen, Gästebüchern oder eingebrachte Dokumente. Jeder Benutzer verfügt pro Workspace über ein Punktekonto. Der Punktestand spiegelt seine Aktivi-
tat im jeweiligen Workspace wider. In jedem Workspace kann für die zugehörigen Benutzer eine Rangliste erzeugt werden. Das Punktekonto wird als Attribut der Benutzer betrachtet, so dass Schreib- und Leserechte von der Aktivität der Benutzer abhängig gemacht werden können. Auf das Punktekonto können externe Systeme über Schnittstellen zugreifen, so dass z.B. Shopsysteme aktiven Benutzern spezielle, günstigere Angebote machen können als weniger aktiven Benutzern. Wieviele Punkte für welche Aktivität vergeben werden, legen berechtigte Benutzer in den Workspaces fest.
Filth Filter (..Schmutzfilter")
In den Workspaces können berechtigte Benutzer erfindungsgemäß konfigurieren, welche Wörter Benutzer beim Einstellen von Beiträgen nicht verwenden dürfen. Versucht ein Benutzer, einen Beitrag einzubringen, der ein gesperrtes Wort enthält, wird der Beitrag abgelehnt. Die gesperrten Wörter werden in der Workspacehierarchie absteigend vererbt (wie Benutzergruppendefinitionen). Untergeordnete Workspaces übernehmen die Filth Filter übergeordneter Workspaces und können eigene Wörter hinzufügen.
Sessionverwaltung
Die erfindungsgemäße Community verwaltet Sessions („Sitzungen") von Benutzern über alle Module und Funktionen der Community hinweg. Eine Session beginnt mit einem expliziten Login eines Benutzers oder mit einem automatischen/impliziten Login und endet mit dessen expliziten Logout oder nach einem Timeout, wenn der Benutzer längere Zeit keine Anfrage mehr an die Community gesendet hat. Im Rahmen einer Session kann ein Benutzer alle Komponenten und Funktionen nutzen, ohne sich mehrfach einloggen zu müssen. Die Besonderheit der Sessionverwaltung der erfindungsgemäßen Community ist, dass eine Programmierschnittstelle zur Verfügung steht, über die beliebige Sessionverwaltungen implementiert werden können. Damit ist es z.B. möglich, Sessions auch per Cookies zu verwalten.
Personalisierung
Alle Inhalte der erfindungsgemäßen Community können personalisiert, also auf einzelne Benutzer individuell zugeschnitten werden. Insbesondere kann dabei auf die
Benutzergruppen zurückgegriffen werden, so dass unterschiedliche Benutzergruppen mit unterschiedlichen Inhalten versorgt werden können.
Awareness durch Benachrichtigungssvstem
In die erfindungsgemäße Community integriert ist ein Benachrichtigungssystem, das Benutzer ständig über Aktivitäten und Ereignisse, die sie betreffen, informiert. Die Benachrichtigungen erscheinen je nach Bedeutungsgrad innerhalb der Benutzeroberfläche (volatile Benachrichtigung) oder werden in der persönlichen Mailbox des Benutzers gespeichert (persistente Benachrichtigung), können aber auch per SMS, E-Mail oder andere Push-Mechanismen aktiv zugestellt werden. Benachrichtigungen werden durch einzelne Komponenten versendet, d.h. welche Benachrichtigungen erzeugt werden wird durch die Komponenten bestimmt.
Benutzer können in einer persönlichen Buddy-List andere Benutzer verwalten und diese in verschiedene Kategorien einordnen, z.B. Freunde, Verwandte oder Kollegen. Über das Benachrichtigungssystem werden die Benutzer insbesondere über Aktionen dieser „Buddies" informiert. Volatile Benachrichtigungen sind beispielsweise „ein Benutzer aus der Buddylist betritt/verläßt die Community" oder „Eingang einer neuen Mail". Persistente Benachrichtigungen sind beispielsweise „Eingang eines Meeting- Requests" oder „Eingang einer neuen Aufgabe".
Einem Benutzer kann jederzeit angezeigt werden, wie viele und welche Benutzer gerade online sind. Diese Angabe kann sich auf die gesamte Community oder vorzugsweise auf einzelne Workspaces beziehen. Damit wird die sog. Awareness gestärkt, d.h. Benutzer erfahren in der Community, dass diese zeitgleich auch von anderen Benutzern genutzt wird. Sie können einfach mit diesen in Kontakt treten.
Informationseinheiten
Alle in der erfindungsgemäßen Community verwalteten Informationen - z.B. Einträge in Diskussionsforen, Chaträume, Dokumente, Webseiten etc. - werden mit einheitlichen Attributen (Autor, Titel, Zeitpunkt der Erstellung und Änderung, auftretende Schlüsselwörter, Schreib-/Leserechte, zugehöriger Workspace, Anzahl der Abrufe, Bewertung durch Benutzer) versehen. Diese Attribute können um weitere Attribute
ergänzt werden. Damit ist ein einheitlicher Zugriff auf alle Informationen unabhängig von deren Typ möglich. Die mit Attributen versehenen Informationen werden als Informationseinheiten bezeichnet.
Die Informationseinheiten bilden die Grundlage für folgende Funktionalitäten, die die erfindungsgemäße Community bietet:
1. Suchmechanismus
Über einen Suchmechanimus können Benutzer nach dem Vorkommen von Begriffen suchen. Gesucht wird in allen Informationseinheiten oder in denen, die einem bestimmten Workspace zugeordnet sind. Es werden Leserechte berücksichtigt, so dass als Suchergebnisse nur solche Informationen geliefert werden, für die der Benutzer auch Leserechte hat. Die Informationseinheiten werden zusätzlich parallel von einem System indiziert, das nicht mit Schlüsselwörtern arbeitet, sondern in Informationen Muster unabhängig von Sprache und Typ der Information erkennt. Damit können auch solche Informationen gefunden werden, in denen die gesuchten Begriffe nicht selbst, sondern verwandte Begriffe vorkommen. Beispiel: Bei einer Suche mit dem Begriff „Auto" werden auch solche Informationen gefunden, in denen nicht „Auto", sondern „Kfz" und „vier Räder" vorkommen.
2. Automatische Empfehlungen
Ein Suchmechanismus muss nicht unbedingt explizit durch einen Benutzer angestoßen werden. Es ist ebenso möglich, den Benutzer abhängig vom Kontext auf relevante bzw. thematisch verwandte Informationen hinzuweisen, die sich innerhalb oder außerhalb der Community befinden. Der Kontext wird durch die Informationen bestimmt, die der Benutzer aktuell abruft oder in der Vergangenheit abgerufen hat. Im ersten Fall können ihm Verweise auf vorhandene Informationen angeboten werden, die zu der gerade abgerufenen Information als verwandt erachtet werden (Beispiel: Ein Benutzer ruft eine Webseite auf, die sich mit Tennissport auseinandersetzt. Die Community kann ihm automatisch Referenzen auf Diskussionsforen und andere Webseiten anbieten, die sich mit ebenfalls mit Tennissport, -tumieren oder -Spielern beschäftigen). Im zweiten Fall kann er aktiv benachrichtigt werden, sobald neue In-
formationen indiziert werden, die verwandt sind mit Informationen, die der Benutzer in der Vergangenheit abgerufen hat. Entsprechende Hinweise können innerhalb der Community angezeigt werden, aber auch per SMS, E-Mail oder anderer Benachrichtigungssysteme an den Benutzer gesendet werden.
3. Rating/Bewertung
Benutzer können jede Informationseinheit bewerten (Beispiel: Ein Forenbeitrag, der von Benutzern als besonders gut eingestuft wird, hat eine höhere Bewertung als ein Forenbeitrag, dessen Inhalt als weniger gut eingestuft wird). Jeder Benutzer kann pro Informationseinheit maximal einmal eine Bewertung abgeben. Die Bewertungen fließen in Suchergebnisse ein, d.h. besser bewertete Informationen rangieren in einer Ergebnisliste weiter oben als schlechter bewertete Informationen.
4. Abrechnung
Informationseinheiten können vorzugsweise mit Preisen versehen werden. Der Preis einer Informationseinheit wird von einem Konto des Benutzers abgezogen, wenn er die Information abruft. Es kann konfiguriert werden, dass der mehrmalige Abruf einer Informationseinheit innerhalb einer Session/Sitzung nur einmal berechnet wird. Das Konto selbst ist nicht vorgegeben, sondern kann über eine Schnittstelle beliebig implementiert werden. Es besteht die Möglichkeit, als Konto das Punktekonto eines Benutzers zu verwenden.
5. Tracking (Protokollierung)
Die erfindungsgemäße Community protokolliert in einer bevorzugten Ausführungsform, welcher Benutzer zu welchem Zeitpunkt welche Informationseinheit abgerufen hat. Damit werden genauere Benutzerprofile erzeugt, die über Schnittstellen in andere Systeme überführt werden können. Vozugsweise werden die gesammelten Daten anonymisiert, d.h. sie werden nicht einzelnen Benutzern, sondern Benutzergruppen zugeordnet, denen die Benutzer angehören.
Matchmaking
Mit Matchmaking wird die Funktionalität beschrieben, die es Benutzern erlaubt, andere Benutzer mit bestimmten Profilen zu finden, die ebenfalls registrierte Benutzer der Community sind. Es stehen zwei Verfahren zur Verfügung: (i) explizit: Ein Benutzer kann explizit angeben, welche Attribute (z.B. Qualifikation, Position, Geschlecht, Alter) ein Benutzer haben soll, den er auffinden möchte; (ii) implizit: Einem Benutzer werden andere Benutzer vorgeschlagen, die ein ähnliches Profil (Attribute oder Interessensschwerpunkte) wie er selbst haben. Jeder Benutzer kann entscheiden, ob er für andere Benutzer auffindbar ist.
Im folgenden wird die Architektur des erfindungsgemäßen Kommunikationssystems näher erläutert.
Das erfindungsgemäße Kommunikationssystem 1 bzw. die erfindungsgemäße Community basiert auf einer 3-Schichten-Architektur (Three-Tier-Ärchitecture), so dass einzelne Schichten oder deren Bestandteile ausgetauscht werden können, ohne dass andere Schichten dabei verändert werden müssen. Fig. 2 veranschaulicht diese 3- Schichten-Architektur mit Application Layer (Applikationsschicht) 2, Presentation Layer (Präsentationsschicht) 3 und Data Access Layer (Datenhaltungsschicht) 4. Die Application Layer weist die Applikationslogik auf, die unabhängig von der endgültigen Darstellung und den verwendeten Endgeräten (Webbrowser, WAP-fähige Mobiltelefone etc.) ist. Für den Zugriff auf dauerhaft gespeicherte Daten greift sie auf Funktionalitäten der Data Access Layer zurück. Die Presentation Layer ist mit einer Eingabeeinrichtung und einer Anzeigeeinrichtung verbunden, über die ein Benutzer mit dem Kommunikationssystem Daten/Informationen eingibt bzw. austauscht. Insbesondere werden über die Präsentationsschicht Anfragen der Clients beantwortet. In den meisten Fällen müssen Antworten (z.B. Webseiten) dynamisch in Abhängigkeit des einzelnen Benutzers aufbereitet werden. Zu diesem Zweck werden Funktionen der Application Layer aufgerufen. Die Presentation Layer versieht diese Informationen mit Layout, das auf den jeweils anfragenden Client zugeschnitten ist (z.B. HTML (Hyper- Text Markup Language) für Webbrowser und WML für WAP-fähige Mobiltelefone). Die Data Access Layer ist für die Verwaltung dauerhaft gespeicherter Daten zustän-
dig. Sie bietet der Application Layer eine Schnittstelle an, die unabhängig vom verwendeten Speichermedium (z.B. SQL-Datenbankmanagement-System (SQL = Structured Query Language) ist. Erfindungsgemäß dient diese Trennung von Programmlogik und Darstellung (Präsentation) dazu, dass auf der Applikationsebene nur Informationen verarbeitet werden, die ausschliesslich auf der Präsentationsebene mit Layout versehen werden.
Die einzelnen Schichten werden im folgenden näher erläutert.
Application Laver (Applikationsschicht)
Die Applikationsschicht übernimmt zentrale Verwaltungsaufgaben des erfindungsgemäßen Kommunikationssystems und beantwortet Anfragen der Präsentationsschicht. Während herkömmliche Application Server aus einem Basissystem und darauf aufbauenden Komponenten bestehen, verfügt die erfindungsgemäße Community über folgende Bestandteile:
Basissystem 21 Kern des Systems
(„Gore")
Core Components Kernkomponenten des Systems (s.u.) 22
Application CompoKomponenten, mit denen die Community um spezielle Funktionents 23 nalitäten erweitert werden können. Application Components (Applikationskomponenten) können von jedermann mit Kenntnis der entsprechenden Programmierschnittstellen entwickelt werden. Sie greifen auf Funktionalitäten der Core Components zu, indem sie deren Programmierschnittstellen nutzen.
Eine zentrale Bedeutung kommt den Core Components zu. Sie bieten grundlegende und umfassende Funktionalitäten an, die von allen Application Components genutzt werden können. Sie sind in ihrer Ausprägung und Kombination einzigartig. Aufgrund der Fülle von Kernfunktionalitäten ist die Entwicklung von Application Components vereinfacht. Dieser Vorteil wird zusätzlich dadurch verstärkt, dass erfindungsgemäß Application Components unabhängig von den Endgeräten und der zugrundeliegen-
den persistenten Datenhaltung entwickelt werden können, da sie Bestandteil der Application Layer sind. Application Components werden über klar definierte Schnittstellen in die erfindungsgemäße Community eingebunden. Ihre Zahl ist nicht begrenzt. Die erfindungsgemäße Community weist vorzugsweise eine Reihe von Application Components auf - z.B. Diskussionsforen, Chat, Gruppenterminkalender, Aufgaben- und Projektverwaltung etc.
1. Core Components (Kernkomponenten)
Die verschiedenen erfindungsgemäßen Kernkomponenten werden im folgenden erläutert:
UserManager
Der UserManager ist eine Einrichtung 211 , die für die Verwaltung der registrierten Benutzer verantwortlich ist. Bei der Registrierung geben Benutzer ihr Profil an, welches vom UserManager gespeichert wird. Die Registrierung im UserManager ist nicht zu verwechseln mit der Mitgliedschaft in einzelnen Workspaces. Die Registrierung ist keine Pflicht, um das System nutzen zu können. Der SessionManager (s.u.) unterstützt auch Sessions von Gästen. Application Components müssen jeweils entscheiden, ob sie unregistrierten Benutzern ihre Dienste freischalten. Der UserManager ist für die Erzeugung der Benutzer und deren Kennungen im System verantwortlich. Er unterstützt die gleichzeitige Anbindung von mehreren Benutzerverwaltungen (Domains). Standardmäßig werden die Benutzer in der Domain „nativedomain" gespeichert. Über eine Schnittstelle können andere/zusätzliche Domains angedockt werden.
Wichtiger Bestandteil des UserManagers ist die Speicherung der einzelnen Profilfelder, der sog. Attribute. Jede Domain definiert ihre eigenen Attribute und meldet diese im UserManager an.
SessionManager
Der SessionManager ist eine Einrichtung 212, die für das Ein- und Ausloggen der Benutzer verantwortlich ist. Bei jedem Einlogvorgang legt der SessionManager ein Session-Objekt für den Benutzer an. Über den SessionManager können in einer be-
vorzugten Ausführungsform auch Sessions anderer Benutzer sowie eine Liste aller angemeldeten Benutzer angefordert werden. Prinzipiell gibt es vier verschiedene Arten von Sessions: (i) registrierter Benutzer: ein im UserManager registrierter Benutzer hat sich angemeldet; (ii) Gast: ein im UserManager nicht registrierter Benutzer hat sich angemeldet, wobei er einen (temporären) Namen angegeben hat; (iii) Anonymer Gast: ein im UserManager nicht registrierter Benutzer hat sich angemeldet, wobei er keinen Namen angegeben hat; (iv) Lurker: Benutzer ohne Session ("lurkers"), die sich nicht eingeloggt haben. Applications Components können zudem beliebige Objekte im Session-Objekt des Benutzers temporär speichern. Dies kann beispielsweise ein Warenkorb oder eine Mailbox sein.
WorkspaceManager
Der WorkspaceManager ist eine Einrichtung 220 zum Verwalten der Workspaces. Dazu gehören Workspaceltems (Instanzen einzelner Module wie z.B. Diskussionsforen), die Angehörigen eines Workspaces sowie die Workspaces selbst. Angehörige eines Workspace können nur im UserManager registrierte Benutzer werden. Einzelne im Workspace lokal angemeldete Benutzer verfügen vorzugsweise über spezielle Rechte im Workspace, die sog. „WorkspacePermissions". Im Gegensatz hierzu sind die Zugriffsrechte der Workspaceltems an Benutzergruppen gekoppelt. Jede Applikationskomponente kann ihre eigenen Zugriffsrechte definieren und diese vom WorkspaceManager verwalten lassen. Standardmässig gibt es Lese- und Schreibrechte. Zur Definition der Zugriffsrechte auf Workspaceltems sind Benutzergruppen notwendig. Diese werden ebenfalls vom WorkspaceManager verwaltet. Die Workspaces vererben ihre Benutzergruppen an ihre Kinder weiter.
EventDispatcher
Ein bevorzugter Bestandteil 221 der Applikationsschicht ist der Event-Mechanismus. Es existiert eine Vielzahl von Events (Ereignisse), die die Komponenten untereinander austauschen. Beispielsweise werden auch die Anfragen aus der Presentation- Layer in speziellen Events weitergeleitet. Es gibt zwei unterschiedliche Arten von Events: (i) Broadcast-Events: Diese Events werden an alle Komponenten weitergeleitet, die den entsprechenden Event-Typ abonniert haben; (ii) Singlecast-Events: Der
Event ist an eine spezielle Komponente adressiert. Darüberhinaus können Events synchron oder asynchron ausgeliefert werden. Nur bei synchronen Events besteht die Möglichkeit, Ergebnisse an die aufrufende Komponente zu übermitteln. Asynchrone Events hingegen blockieren die Antwort nicht und ermöglichen eine schnellere Abarbeitung.
Die folgende Tabelle gibt einen Überblick über bevorzugte Event-Typen:
PersistentNotificationE- multi Asynchron Versendung einer persistenten Notivent fikation
VolatileNotificationEvent multi Asynchron Versendung einer volatilen Notifikation
UserRegistrationEvent multi Synchron Benutzer (de-)regist ert sich im UserManager
SessionStateEvent multi Asynchron Benutzer meldet sich an oder ab
CallEvent Single Synchron Event zur Kommunikation zwischen (Applikations-) Komponenten
PeriodicalEvent multi Asynchron Auslösen von periodischen Events. Dient zum Aufruf von Routineaufgaben in der Komponente ohne Erzeugung eines eigenen Threads
DataAccessManager
Der DataAccessManager ist eine Einrichtung 214, die die Verbindung zur Data Access Layer darstellt. Er stellt eine Schnittstelle dar, die es Komponenten in der Applikationsschicht erlaubt, auf persistente Daten unabhängig vom Speichermedium zuzugreifen.
Request Dispatcher
Die Einrichtung/Komponente Request Dispatcher 213 bildet die Schnittstelle zur Presentation Layer. Sie nimmt die Anfrage entgegen und erzeugt Events, die an den
EventDispatcher übergeben werden. Nachdem die Anfrage von der adressierten Komponente abgearbeitet wurde, leitet der RequestDispatcher das Ergebnis weiter an die Presentation-Layer.
ContainerManager
Der ContainerManager ist eine Einrichtung 225 zum Verwalten von Containern für Applikationskomponenten. Container bieten eine Kontext für verschiedene Implementierungen eines Moduls bzw. Application Components (Es ist z.B. möglich, zwei verschiedene Implementierungen der Application Component Discussion zu betreiben).
Nicht nur Applikationskomponenten befinden sich in einem Container, sondern prinzipiell alle Komponenten. Es ergibt sich folgende Hierarchie:
ApplicationContext Core-Komponenten (u.a. ContainerManager)
ContainerManager Container für Applikationskomponenten
Container für ApplikationskompoApplikationskomponenten nenten
AdministrationManager
Der AdministrationManager ist eine Einrichtung 222 zum Verwalten von Zugangsberechtigungen für die technische Server-Administration (die nichttechnische Administration findet durch Benutzer in den Workspaces der Community statt). Die technische Administration wird über eine Oberfläche durchgeführt.
InformationUnitManager
Der InformationUnitManager ist eine Einrichtung 223 zum Verwalten der Informationseinheiten der einzelnen Komponenten.
FileAccessManager
Der FileAccessManager ist eine Einrichtung 224 zum Speichern von binären Dateien, die nicht in der gewöhnlichen Datenhaltung (über die Data Access Layer) abgelegt werden können.
2. Application Components (Applikationskomponenten)
Application Components sind Einrichtungen 23, die die Module darstellen, um die die erfindungsgemäße Community durch jedermann erweitert werden kann. Über klar definierte Programmierschnittstellen können diese in die Community integriert werden. Erfindungsgemäß bietet die Community folgende Application Components an (durch „:" getrennte Namen geben an, dass sie eine Komponente erweitern):
Die Vorteile dieser Struktur der Applikationsschicht liegen in der einfachen Erweiter- barkeit und Integration durch Hinzufügen von Application Components, der geringen Komplexität der Module durch Nutzung zentraler Funktionalitäten der Core Components, der Integrität der Komponenten und der Unabhängigkeit von Endgeräten durch Trennung von Applikationslogik und Darstellung
Presentation Layer (Präsentationsschicht)
Die Präsentationsschicht 3 weist vorzugsweise die folgenden Merkmale auf.
1. Kommunikation zwischen Client und Server
Mit der Präsentationsschicht 3 werden Anfragen von Benutzern entgegengenommen und als Antwort dynamisch generierte XML-Dokumente oder - im speziellen Fall - HTML-Seiten zurück geliefert. Das Protokoll, über das der Client mit der Präsentationsschicht kommuniziert, ist standardmässig HTTP. HTTP-Anfragen werden von einem Java-Servlet entgegengenommen. Im Lieferumfang der Community ist ein HTTP- Webserver enthalten, der optional durch einen anderen Servlet-fähigen Webserver (z.B. Apache) ersetzt werden kann.
2. Templates
Die Templates 31 („Vorlagen für Webseiten") sind wie bei herkömmlichen Webservern, die statischen Content liefern, im Dateisystem organisiert: es können beliebige Verzeichnisstrukturen und Datei-/Verzeichnisnamen gewählt werden. Rein statische Websites können auf die erfindungsgemäße Community übertragen werden, so dass eine vorhandene Website weiterbetrieben und sukzessiv durch Community-Features erweitert werden kann (HTML-Templates müssen den Regeln des XML-Standards entsprechen). Um eine optimale Performance zu erreichen, werden die Templates vorzugsweise serverseitig gecached. Während des Lesevorgangs wird ein Template vorzugsweise von einem XML-Parser eingelesen und intern in einer optimierten Struktur vorgehalten.
Workspaces werden auf die Verzeichnisstruktur der Templates gemapped, d.h. be-
stimmte Verzeichnisbäume enthalten die Templates eines bestimmten Workspaces.
3. Trigger und Stylesheets
Die Ausgabe an einer Anzeigeeinrichtung mittels der Präsentationsschicht wird in Form von XML-Dokumenten bzw. HTML-Seiten zur Laufzeit aus Templates generiert, die definierte Platzhalter bzw. Tags enthalten. Diese Platzhalter - im folgenden Trigger genannt - werden zur Laufzeit dynamisch ersetzt und geben an, was an ihrer Stelle eingesetzt werden soll. Die Präsentationsschicht isoliert die Trigger und übergibt diese an die Applikationsschicht, in der die zuständige Komponente (z.B. das Calendar-Modul) die Anforderung verarbeitet. Als Antwort wird die erzeugte Information in Form eines XML-Fragments zurückgegeben. Dieses wird durch Anwendung eines XSL-Stylesheets in eine beliebige Ausgabesprache (z.B. HTML) umgewandelt, bevor es anstelle des Triggers in das Template eingesetzt wird. Sobald alle Trigger im Template ersetzt sind, wird die angeforderte Seite an den Client geschickt (vgl. Fig. 3).
Jede Komponente der Application Layer kann Trigger definieren und diesen Funktionalitäten zuweisen.
Für jeden Trigger existiert jeweils ein vordefiniertes XSL-Stylesheet, das beliebig an- gepasst werden kann. Damit können dynamisch generierte Elemente (z.B. eine Liste von Diskussionsforen oder ein Kalenderblatt) bis ins Detail individuell gestaltet werden. Mehrere Vorkommen eines Triggers können optional mit verschiedenen Stylesheets verknüpft werden, so dass dieselbe Information unterschiedlich präsentiert werden kann. Beispielsweise kann eine Seite für verschiedene Endgeräte (z.B. Webbrowser und WAP-fähige Mobiltelefone) oder Benutzergruppen unterschiedlich dargestellt werden. So wie der XML-Parser kann auch der mitgelieferte XSL-Prozessor durch andere Prozessoren ersetzt werden.
4. Virtual Documents (Virtuelle Dokumente)
In einigen Fällen (z.B. beim Registrieren) ruft ein Benutzer nicht ein Template (bzw. eine Seite) auf, um sich dadurch indirekt einzuloggen, sondern er ruft explizit einen Dienst auf, mit dem implizit die Ausgabe einer bestimmten Seite verbunden ist. Da es beim Aufruf solcher Dienste verschiedene Antworten bzw. Antwortseiten geben kann
(z.B. „Registrierung erfolgreich" und „Registrierung nicht erfolgreich"), steht ein weiteres Verfahren zur Verfügung: Zum Aufruf von Diensten ruft der Benutzer ein sogenanntes Virtual Document auf. Der Aufruf wird durch Rückgabe eines mehrerer alternativer Virtual Documents beantwortet. Dieses Antwort-Dokument ist virtuell, d.h. der Benutzer bekommt es nicht zu sehen. Stattdessen wird das Virtual Document gemäß einer zentralen Konfiguration auf ein tatsächlich existierendes Dokument bzw. Template gemapped, das dem Benutzer schließlich angezeigt wird.
Die beschriebene Struktur der Präsentationschicht weist folgende Vorteile auf:
• Unterstützung von Standardtechnologien wie HTTP, HTML, XML, XSL und Java
• einfache Dokumentenstruktur wie bei herkömmlichen Webservern
• klare Trennung von Applikationslogik und Darstellung
• verschiedene Endgeräte wie Browser und WAP-Mobiltelefone können ohne Programmieraufwand bedient werden
• andere Protokolle als HTTP(S) können implementiert werden
• Ortsunabhängigkeit der Benutzer
• nahezu beliebige Gestaltungsmöglichkeiten bei der Benutzeroberfläche
Data Access Layer (Datenhaltungsschicht)
In der Datenhaltungsschicht werden Informationen dauerhaft gespeichert. Die erfindungsgemäße Community verfügt über eine Schnittstelle, über die beliebige Datenhaltungssysteme angedockt und für die Datenspeicherung verwendet werden können. Standardmässig werden SQL-fähige Datenbanken 41 unterstützt. Der Zugriff erfolgt per JDBC (Java Database Connectivity).
Der Applikationsschicht ist nicht bekannt, welches System für die Datenspeicherung verwendet wird. Sie greift auf Relationen zu, die auf das jeweils vorhandene Datenhaltungssystem gemapped werden. Damit können Application Components unabhängig vom jeweils zugrundeliegenden System entwickelt werden.
Die Vorteile einer solchen Datenhaltungsschicht sind (i) Unabhängigkeit der Applikation vom Datenhaltungssystem; (ii) Möglichkeit des Einsatzes nahezu beliebiger Datenhaltungssysteme; und (iii) Standardmäßige Unterstützung von SQL-Datenbanken
via JDBC.
Die erfindungsgemäße Community bringt eine Vielzahl von Vorteilen mit sich: 100% Java-basiert Three-Tier-Architektur modularer Aufbau
Unterstützung diverser internationaler Industriestandards wie XML/XSL, HTML, JDBC und HTTP(S) umfangreiche Programmierschnittstellen zur Integration und Erweiterung klare Trennung von Applikationslogik und Darstellung durch Verwendung von XML/XSL
Unterstützung beliebiger Endgeräte (Webbrowser, WAP-Handies etc.) Unterstützung mehrerer und/oder beliebiger Benutzerverwaltungen komponentenübergreifende Sessionverwaltung optional Organisation einer Community in mehrere hierarchisch strukturierte Sub- communities bzw. Workspaces mit individuellen Zugriffsrechten einfache Struktur des Webspace wie bei herkömmlichen Webservern dynamische Seitengenerierung umfangreiche Personalisierungsmöglichkeiten integriertes Benachrichtigungssystem, das Benutzer über aktuelle Ereignisse und Aktionen anderer Benutzer informiert komponentenübergreifender Suchmechanismus
Im folgenden werden die Systemvoraussetzungen des erfindungssgemäßen Kommunikationssystems erläutert. Für den Betrieb der erfindungsgemäßen Community wird vorzugsweise eine SQL-fähige Datenbank mit JDBC-Treiber verwendet. Die Community greift per JDBC auf die Datenbank zu. Des weiteren wird eine Java Virtual Machine verwendet, in der die Community läuft. Die erfindungsgemäße Community ist plattformunabhängig.
Bevorzugt ist der Einsatz folgender Betriebssysteme: Sun Solaris:
• Solaris 2.6 oder höher
• 128 MB Hauptspeicher
• 100 MB freier Festplattenplatz
Linux:
• Linux Redhat 6.1 oder höher
• 128 MB Hauptspeicher
• 100 MB freier Festplattenplatz
Microsoft Windows:
• Microsoft Windows NT 4.0/2000
• Service Pack 4 oder höher
• 128 MB Hauptspeicher
• 100 MB freier Festplattenplatz
Die erfindungsgemäße Community deckt eine grσsse Bandbreite von Anwendungen ab, u.a.:
• Persönlicher Kalender, über den Meetings mit anderen Benutzern bequem vereinbart und Teamevents eingetragen werden können
• Konferenzen per Audio und Video (über MS Netmeeting) oder Chat
• Integration von Datenbeständen, die in relationalen Datenbanken gehalten werden
• unmoderierte und moderierte Diskussionsforen
• gemeinsame Dokumentenverwaltung in Workspaces
• Mailsystem, über das externe Mailserver integriert werden können
• workflowbasierte Aufgabenverwaltung
• Projektunterstützung, die Workflows in Zusammenhang bringt und visualisiert
• Suche über in der Community vorgehaltenen Informationen (z.B. in Dokumenten und Diskussionsforen)