DE112012002774T5 - Verfahren und Vorrichtung für einen keep-alive Push-Agenten - Google Patents

Verfahren und Vorrichtung für einen keep-alive Push-Agenten Download PDF

Info

Publication number
DE112012002774T5
DE112012002774T5 DE112012002774.4T DE112012002774T DE112012002774T5 DE 112012002774 T5 DE112012002774 T5 DE 112012002774T5 DE 112012002774 T DE112012002774 T DE 112012002774T DE 112012002774 T5 DE112012002774 T5 DE 112012002774T5
Authority
DE
Germany
Prior art keywords
push
keep
transfer protocol
hypertext transfer
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112012002774.4T
Other languages
English (en)
Inventor
Richard W. German
Tony E. Thompson
Timothy M. Robbins
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Stoneware Inc
Original Assignee
Stoneware Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stoneware Inc filed Critical Stoneware Inc
Publication of DE112012002774T5 publication Critical patent/DE112012002774T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Abstract

Verschiedene Verfahren zur Anwendung, um eine Entscheidungsfindung für Diensterbringungen bereitzustellen, sind angegeben. Ein beispielhaftes Verfahren kann das Verbinden mit einem netzbasierten portalen Umgebungssystem umfassen. Das Verfahren kann des Weiteren den Aufbau einer Hypertext Transfer Protokoll keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem umfassen. Das Verfahren kann des Weiteren das Empfangen eines Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen. Das Verfahren kann zusätzlich die Ausführung des Push-Befehls umfassen. Gleiche und ähnliche beispielhafte Verfahren, beispielhafte Vorrichtungen und beispielhafte Computerprogrammprodukte sind zusätzlich angegeben.

Description

  • Technisches Gebiet
  • Ausführungsformen der vorliegenden Erfindung betreffen allgemein einen Push-Agenten und insbesondere betreffen Sie ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt um einen keep-alive Push-Agenten in einer netzbasierten portalen Umgebung zur Verfügung zu stellen.
  • Hintergrund
  • Die Computerindustrie hat über die Zeit ein schnelles Wachstum und eine schnelle Entwicklung erfahren. Technische Fortschritte haben nicht nur zu neuen Modellen von Computergeräten geführt, sie haben auch zu Entwicklungen der Systeme und Netzwerke, in denen Computergeräte operieren und mit denen sie interagieren, geführt. Jedes neue Computergerät, vom Großrechner und Supercomputer hin zu Personal Computern und mobilen Geräten, hat seinen eigenen Anteil an Vorteilen und Herausforderungen gebracht.
  • Über die vergangenen Jahrzehnte hat sich die Informatik von verteilten Systemen (z. B. Großrechnern) hin zu dezentralisierten Systemen (z. B. Personal Computern) entwickelt. Während die neuen dezentralisierten, nutzerorientierten Personal Computermodelle den Benutzern höhere Flexibilität und Komfort ermöglichen, führen sie auch zu einer ineffizienten Nutzung von Ressourcen und unnötigen zusätzlichen Kosten. Z. B. benötigt jeder Personal Computer die Rechnerkapazität und Speicherkapazität für ein Maximum an Auslastung und nicht für die typische Auslastung. Demzufolge ist die jüngste Entwicklung in der Informatik ein zentralisiertes Modell, bei dem Anwendungen und Daten zentral gesteuert, gespeichert und vorgehalten werden, um Kosten zu reduzieren und die Sicherheit und Effizienz zu verbessen.
  • Ein aufkommendes Modell, das als „die Cloud” bekannt ist, basiert auf der zur Verfügungstellung von Rechnerkapazitäten über ein dezentralisiertes Computernetzwerk. In solch einem Modell stellen ein oder mehrere „Server” in der Cloud einen oder mehreren dezentralisierten „Clients” Dienste zur Verfügung. Die Dienste, die durch die Cloud zur Verfügung gestellt werden, reichen von individuellen Software-Anwendungen hin zur vollen Funktion eines Betriebssystems. Gängige Cloud-Systeme sind typischerweise auf Eingaben und Anfragen des Clients angewiesen, um eine Sitzung zu leiten. Um sich an das Client-Server-Modell zu halten, werden diese Anfragen oftmals durch eine Browser-Schnittstelle getätigt, die typischerweise ein „Pull-Model” anwendet, wobei ein Cloud-Server Informationen zur Darstellung nur in Antwort auf eine bestimmte Anfrage des Clients, der den Browser bedient, zur Verfügung stellt. Die Anfrage öffnet vorrübergehend eine Verbindung zu dem Server, die typischerweise geschlossen wird, kurz nachdem der Server die angefragte Information bereitgestellt hat.
  • Demzufolge hat der Cloud-Server, der dem Client die verschiedenen Dienste zur Verfügung stellt, beschränkte Möglichkeiten, die Sitzung selbstständig zu regeln.
  • Demzufolge besteht im Stand der Technik ein Bedarf nach einem Agenten in einem zentralisierten Computersystem, der eine Verbindung zwischen einem Server und dem Client aufrecht erhält, um dem Server zu erlauben, Informationen und Befehle zu „pushen”, um zu helfen, die Sitzung mit dem Client zu kontrollieren.
  • Zusammenfassung
  • Im Folgenden werden Verfahren, Vorrichtungen und Computerprogrammprodukte angegeben, um einen keep-alive Push-Agenten in einem netzbasierten portalen Umgebungssystem anzugeben. Systeme, Verfahren, Vorrichtungen und Computerprogrammprodukte entsprechend den verschiedenen Ausführungsformen können Computer-Vorrichtungen, den Nutzern von Computer-Vorrichtungen und Netzwerkanbietern verschiedene Vorteile bieten. Verschiedene Ausführungsformen erlauben es einem Administrator (z. B. einem Gewerbebetrieb oder einem Institut) ein portales Umgebungssystem zu erzeugen, um kontrollierten und sicheren Zugang zu einem privaten Datenzentrum zu gewährleisten, das speziell dazu ausgelegt ist, mehreren mit dem Administrator (z. B. Angestellten des Gewerbebetriebs oder Instituts) verbundenen Clients auf dem persönlichen Gerät des Clients Dienste anzubieten, unabhängig von dem Gerät des Clients oder dem Aufenthaltsort des Clients.
  • Einige beispielhafte Ausführungsformen erlauben einem Server in vorteilhafter Weise innerhalb eines netzbasierten portalen Umgebungssystems Nachrichten und Befehle an Benutzer des Systems über eine Hypertext Transfer Protokoll (HTTP) keep-alive Verbindung zu pushen. Dadurch ist ein Server nicht davon abhängig, dass ein Benutzer Informationen anfragt oder Befehle ausführt, der Server kann vielmehr Handlungen bestimmen, die auf dem Gerät des Nutzers ausgeführt werden. Des Weiteren können mehrere beispielhafte Ausführungsformen es dem Server ermöglichen, Push-Befehle über eine standard HTTP-Verbindung an den Benutzer zu senden, ohne dass eine spezielle Software benötigt wird, abgesehen vom einem Internet Browser. In einigen Fällen kann ein Push-Befehl benutzt werden, um in dem portalen Umgebungssystem Nachrichten zur Verfügung zu stellen, Internetseiten zu starten, administrative Handlungen durchzuführen (z. B. den Desktop zu sperren), Anwendungen zu starten, etc. Andere Ausführungsformen bieten den weiteren Vorteil, dass sie dem Push-Befehl die gleiche Funktionalität außerhalb des netzbasierten portalen Umgebungssystems auf dem Gerät eines Nutzers erlauben.
  • In einem Ausführungsbeispiel ist ein Verfahren angegeben, dass ein Verbinden zu einem netzbasierten portalen Umgebungssystems bereitstellt. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren die Herstellung einer Hypertext Transfer Protokoll keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem umfassen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren das Empfangen eines Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen. Das Verfahren kann des Weiteren die Ausführung des Push-Befehls umfassen.
  • Im einem Ausführungsbeispiel ist ein Verfahren angegeben, das das Empfangen einer Anzeige eines eindeutigen Indentifizierers, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung in Zusammenhang steht, umfassen kann. Die Hypertext Transfer Protokoll keep-alive Verbindung kann zwischen einer Übertragungseinheit und einer Empfangseinheit bestehen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren die Erzeugung eines Push-Befehls, der an die Empfangseinheit gerichtet ist, umfassen. Der Push-Befehl kann eine Angabe des eindeutigen Identifizierers umfassen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren das Gewährleisten der Übertragung des Push-Befehls von der Sendeeinheit umfassen.
  • In einem Ausführungsbeispiel ist ein Verfahren angegeben, das das Erzeugen eines eindeutigen Identifizierers, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist, umfasst. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren das Gewährleisten der Übertragung einer oder mehrerer Bericht-Nachrichten, die den eindeutigen Identifizierer aufweisen, umfassen. Der Push-Befehl kann eine Angabe des eindeutigen Identifizierers umfassen. Das Verfahren gemäß diesem Ausführungsbeispiel kann des Weiteren das Empfangen eines Push-Befehls umfassen, der eine Angabe des eindeutigen Identifizierers aufweist. Des Weiteren kann das Verfahren dieses Ausführungsbeispiels das Gewährleisten der Übertragung eines Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen.
  • Kurze Beschreibung der Figuren
  • Nachdem einige Ausführungsbeispiele der Erfindung im Allgemeinen beschrieben wurden, wird nunmehr auf die beiliegenden Zeichnungen verwiesen, die nicht zwangsweise maßstabsgenau gezeichnet sind und wobei:
  • 1 ein System zur Bereitstellung eines keep-alive Push-Agenten entsprechend einigen Ausführungsbeispielen der vorliegenden Erfindung zeigt;
  • 2 ein schematisches Blockdiagramm eines Datenendgerätes entsprechend einiger Ausführungsbeispiele der vorliegenden Erfindung zeigt;
  • 3 ein Blockdiagramm eines Servers entsprechend einiger Ausführungsbeispiele der vorliegenden Erfindung zeigt.
  • 4 ein Blockdiagramm eines Relaisgerätes entsprechend einiger Ausführungsbeispiele der vorliegenden Erfindung zeigt.
  • 5 ein Flussdiagramm entsprechend eines Beispiels eines Verfahrens zum Bereitstellen eines keep-alive Push-Agenten entsprechend einiger Ausführungsbeispiele der vorliegenden Erfindung zeigt; und
  • 6 ein Flussdiagramm entsprechend eines Beispiels eines Verfahrens zum Bereitstellen eines keep-alive Push-Agenten entsprechend einiger Ausführungsbeispiele der vorliegenden Erfindung zeigt.
  • 7 ein Ablaufschema entsprechend eines Beispiels eines Verfahrens zur Bereitstellung eines keep-alive Push-Agenten entsprechend einiger Ausführungsbeispiele der vorliegenden Erfindung zeigt.
  • Ausführliche Beschreibung
  • Ausführungsbeispiele der vorliegenden Erfindung werden nun im Folgenden mit Verweis auf die anhängenden Zeichnungen, in denen einige, aber nicht alle Ausführungsformen der Erfindung gezeigt sind, detaillierter beschrieben. In der Tat kann die Erfindung in vielen verschiedenen Formen ausgeführt sein und sollte nicht derart ausgelegt werden, dass sie auf die hier gezeigten Ausführungsformen limitiert ist; Diese Ausführungsformen sind angegeben, um die entsprechenden rechtlichen Bedingungen zu erfüllen. Gleiche Referenznummern beziehen sich durchgehend auf gleiche Elemente. Die Begriffe „Daten”, „Inhalt”, „Information” und ähnliche Begriffe können entsprechend einigen Ausführungsbeispielen der vorliegenden Erfindung synonym verwendet werden, um Daten, die dazu fähig sind übermittelt, empfangen, bearbeitet und/oder gespeichert zu werden, zu beschreiben.
  • Definitionen
  • Der im Folgenden verwendete Begriff „computer-lesbares Medium” bezieht sich auf jegliches Medium, das dazu ausgelegt ist, an der Bereitstellung von Informationen für einen Prozessor teilzunehmen, einschließlich Instruktionen zur Ausführung. Solch ein Medium kann verschiedene Formen aufweisen, einschließlich aber nicht ausschließlich ein nicht vergängliches computer-lesbares Speichermedium (z. B. nicht-löschbare Medien, löschbare Medien) und Sendemedien. Sendemedien umfassen z. B. koaxiale Kabel, Kupferkabel, Glasfaserkabel und Trägerwellen, die ohne Drähte oder Kabel durch den Raum laufen, wie z. B. akustische Wellen und elektromagnetische Wellen, inklusive radio-, optische- und Infrarotwellen. Signale umfassen künstlich erzeugte, flüchtige Variationen in der Amplitude, Frequenz, Phase, Polarisation oder andere physikalische Eigenschaften, die durch das Transmissionsmedium übertragen werden. Beispiele von computerlesbaren Medien umfassen eine Diskette, eine Floppy-Disk, eine Festplatte, ein Magnetband oder ein anderes magnetisches Medium, einen Kompaktdisk-Lese-Speicher (CD-ROM), eine wiederbeschreibbare Kompaktdisk (CD-RW), eine digitale Vielfältigkeitsscheibe (DVD), Blu-Ray oder jedes andere optisches Medium, Lochkarte, Lochstreifen, optische Markierbelege oder jedes andere optische Medium mit Mustern von Löchern oder anderen optischen erkennbaren Zeichen. Ein Schreib-Lese-Speicher (RAM), ein programmierbarer Lese-Speicher (PROM), ein löschbarer programmierbarer Lese-Speicher (EPROM), ein FLASH-EPROM oder ein anderer Speicherbaustein oder eine Speicherkassette oder eine Trägerwelle oder jedes andere Medium von dem ein Computer lesen kann. Der im Folgenden verwendete Begriff computer-lesbares Speichermedium bezieht sich auf jedes computer-lesbare Medium außer Übertragungsmedien. Jedoch wird es geschätzt, dass wenn Ausführungsformen beschrieben werden, die computer-lesbare Speichermedien verwenden, diese durch andere Arten von computer-lesbaren Medien ersetzt oder zusätzlich zu den verwendeten computer-lesbare Speichermeden in alternativen Ausführungsformen verwendet werden können.
  • Der hier verwendete Begriff „Schaltung” bezieht sich auf das Folgende: (a) Schaltungsausführungen nur für Hardware (sowie Ausführungen in nur analogen und/oder digitalen Schaltungen); (b) Kombinationen von Schaltungen und Software (und/oder Firmware), sowie (soweit einsetzbar): (i) eine Kombination von Prozessoren oder (ii) Teile von Prozessoren/Software (einschließlich digitale Signalprozessoren), Software, Speicher die zusammenwirken, um eine Vorrichtung, wie ein Datenendgerät, ein Relais, oder einen Server verschiedene Funktionen ausführen lassen; und (c) Schaltungen, wie Mikroprozessoren oder ein Teil eines Mikroprozessors, der Software oder Firmware zur Funktion benötigt, auch wenn die Software oder die Firmware nicht physisch präsent ist.
  • Diese Definition von „Schaltung” gilt für alle Verwendungen dieses Begriffes in dieser Anmeldung, inklusive in jedem der Ansprüche. Als ein weiteres Beispiel, wie er in dieser Anmeldung benutzt wird, würde der Begriff „Schaltung” auch eine Ausführung eines lediglich einen Prozessor oder mehrere Prozessoren oder einen Teil eines Prozessors und seiner (oder ihrer) beigefügten Software und/oder Firmware umfassen. Der Begriff „Schaltung” würde des Weiteren z. B. und falls anwendbar auf das entsprechende Merkmal des Anspruchs, eine integrierte Schaltung in einem Datenendgerät, Relais, Server oder anderem Netzwerkteil umfassen.
  • System
  • Im Folgenden wird Bezug genommen auf 1. 1 zeigt ein Blockdiagramm eines Systems 100 zur Bereitstellung einer netzbasierten portalen Umgebung, beispielsweise über die internetfähige Bereitstellung eines Datenzentrums über einen in einem Browser eingebauten Desktop, entsprechend eines Ausführungsbeispiels. Es wird gewürdigt, dass das System 100 sowie die Zeichnungen in den anderen Figuren jeweils als ein Ausführungsbeispiel angesehen und nicht derart ausgelegt werden, dass sie das Ausmaß und den Sinn der Offenbarung in irgend einer Weise einschränken. In dieser Hinsicht umfasst das Ausmaß der Offenbarung zusätzlich zu den hier dargestellten und beschriebenen Ausführungsformen noch viele potenzielle Ausführungsformen. Von daher, während 1 die Konfiguration eines Ausführungsbeispiels einer Anordnung eines Systems zur Bereitstellung einer internetfähigen Zulieferung eines Datenzentrums über ein in einem Browser eingebauten Desktop darstellt, können viele andere Anordnungen verwendet werden, um Ausführungsformen der vorliegenden Erfindung umzusetzen.
  • In einem Ausführungsbeispiel kann das System 100 ein Datenzentrum 120 aufweisen. Das Datenzentrum 120 kann dazu ausgebildet sein, als private Cloud, als öffentliche Cloud oder als Kombination von privater Cloud und öffentlicher Cloud zu agieren. Beispielsweise kann eine öffentliche Cloud jedem Nutzer Dienste anbieten, wohingegen eine private Cloud einer Untergruppe aller Nutzer (z. B. Angestellte eines bestimmten Gewerbebetriebs, der die privaten Cloud-Dienste anbiete) Dienste anbietet. Das Datenzentrum 120 kann in einigen Einzelfällen durch eine Firewall geschützt sein. In einigen Ausführungsformen kann das Datenzentrum 120 innerhalb eines internen Netzwerks, wie einem privates Lokal Area Netzwerk (LAN) oder ähnlichem, angeordnet sein, oder das Datenzentrum 120 kann entfernt angeordnet und/oder durch eine dritte Partei gehostet sein. In einigen Fällen kann das Datenzentrum 120 eine Kombination von Einheiten und Diensten aufweisen, die sowohl lokal als auch entfernt ansässig sind.
  • Entsprechend einiger Ausführungsformen kann das Datenzentrum 120 einen oder mehrere Server 122 umfassen. Ein Server 122 kann als Computergerät oder in einigen Fällen als virtueller Server ausgebildet sein. Ein Server 122 kann des Weiteren als eine Kombination einer Vielzahl von Computergeräten ausgebildet sein. In dieser Hinsicht kann der Server 122 beispielsweise als Servergruppe und/oder dezentrales Computersystem ausgebildet sein, dass über eine Vielzahl von Computergeräten verteilt ist. In anderen Ausführungsformen können ein oder mehrere Server 122 auf demselben Computergerät ausgebildet sein.
  • Entsprechend mehrerer Ausführungsformen kann das Gerät 100 eine entmilitarisierte Zone (DMZ) 140, die außerhalb des Datenzentrums 120 angeordnet ist, aufweisen. In dieser Hinsicht kann die DMZ 140 außerhalb der Firewall, die das Datenzentrum 120 schützt, angeordnet sein. In Ausführungsbeispielen kann die DMZ 140 ein oder mehrere Relaisgeräte 150 umfassen. Ein Relaisgerät 150 kann als ein Computergerät, wie beispielsweise ein Servercomputer (z. B. ein Netzwerk-Internetserver), Desktopcomputer, Laptopcomputer oder ähnliches ausgebildet sein. In anderen Ausführungsformen kann ein Relaisgerät 150 als virtuelles Relais ausgebildet sein. Entsprechend einiger Ausführungsformen können die Relaisgeräte 150 in der DMZ 140 und das Datenzentrum 120 auf dem gleichen Computergerät ausgebildet sein.
  • Entsprechend einiger Ausführungsbeispiele kann das System 100 ein oder mehrere Datenendgeräte 102 umfassen. In verschiedenen Ausführungsformen kann das eine Datenendgerät 102 oder können mehrere Datenendgeräte 102 außerhalb der DMZ 140 und des Datenzentrums 120 angeordnet sein. In dieser Hinsicht können das eine oder mehrere Datenendgeräte 102 außerhalb der Firewall angeordnet sein, die das Datenzentrum 120 schützt. Ein Datenendgerät 102 kann als jedes Computergerät ausgebildet sein, so wie beispielsweise ein Desktopcomputer, Laptopcomputer, Netbookcomputer, Tablet, tragbarer digitaler Assistent (PDA), mobiles Datenendgerät, mobiler Computer, mobiles Telefon, mobiles Kommunikationsgerät, Smartphone, Spielgerät, Fernsehgerät, digitaler Videorekorder, Positionsgerät, oder jegliche Kombination davon und/oder ähnliches.
  • In bestimmten Ausführungsformen kann das Datenendgerät 102 dazu ausgebildet sein, eine Verbindung mit zumindest einem der einen oder mehreren Relaisgeräte 150 in der DMZ 140 aufzubauen. In einigen Ausführungsformen kann ein Datenendgerät 102, das mit einem ersten Relaisgerät 150 verbunden ist, während der gleichen Sitzung zu einem zweiten Relaisgerät 150 überwiesen werden. Die Verbindung kann beispielsweise über das Internet über ein Transportprotokoll wie das Transmission Control Protocol (TCP), User Datagramm Protocol (UDP) oder ähnlichem aufgebaut werden. In dieser Ausführungsform kann die Verbindung über ein anwendungsspezifisches Protokoll, wie das Hypertext Transfer Protokoll (HTTP), Hypertext Transfer Protocol Secure (HTTPS) oder ähnlichem, aufgebaut werden. Die Verbindung kann in bestimmten Ausführungsformen eine sichere Verbindung sein. Z. B. kann die Kommunikation über die Verbindung zwischen dem Datenendgerät und dem Relaisgerät durch die Verwendung eines Transport Layer Security (TLS), Secure Sockets Layer (SSL) oder ähnlichem, gesichert werden. Über die Verbindung übermittelte und empfangene Daten können beispielsweise durch die Verwendung einer 128 bit SSL-Verschlüsselung verschlüsselt werden.
  • Entsprechend verschiedener Ausführungsformen kann ein Relaisgerät 150 in der DMZ 140 dazu ausgebildet sein, eine Verbindung mit zumindest einem der einen oder der mehreren Server 122 in dem Datenzentrum 120 aufzubauen. Z. B. kann ein Relaisgerät 150 dazu ausgebildet sein, eine Pipeline-Verbindung mit einem Server 122 aufzubauen. Die Pipeline-Verbindung kann in Ausführungsbeispielen dazu konfiguriert sein, eine bidirektionale Kommunikation zwischen dem Relaisgerät 150 und dem Server 122 bereitzustellen. Beispielsweise kann die Pipeline-Verbindung eine serielle Verbindung, eine Internetverbindung, eine Socket-Verbindung oder ähnliches sein. Die Pipeline-Verbindung kann in einigen Ausführungsformen durch einen oder mehrere Anschlüsse ausgebildet sein, beispielsweise über einen Singleport in einer Firewall, der das Datenzentrum 120 schützt.
  • Ein Relaisgerät 150 kann in einigen Ausführungsbeispielen als Vermittler zwischen einem oder mehreren Datenendgeräten 102 und einem oder mehreren Servern 122 dienen. In dieser Hinsicht kann das Relaisgerät 150 als terminaler Endpunkt für alle Kommunikationen und Anfragen von dem Datenendgerät 120 zu dem Datenzentrum 120 dienen. Das Relaisgerät 150 kann die Kommunikationen und die Anfragen von dem Datenendgerät 102 zu dem Server 122 übermitteln. Gleichermaßen kann das Relaisgerät 150 die gesamte Kommunikation zu dem Datenendgerät 102 empfangen, ausgehend von dem Datenzentrum 120 über die Pipeline-Verbindung zu dem Server 122 und diese Kommunikationen zu dem Datenendgerät 102 über die sichere Verbindung übermitteln. In dieser Hinsicht kann der Server 122 dazu ausgebildet sein, mit den Anwendungen, Dateisystemen und Datenbanken innerhalb des Datenzentrums 120 zu kommunizieren.
  • Entsprechend mehrerer Ausführungsformen kann die Kombination des Relaisgeräts 150 und des Servers 122 eine zwei-Schichten Architektur bereitstellen, um das Datenzentrum 122 vor externen Nutzern zu schützen, beispielsweise einem Nutzer an einem Datenendgerät 102. In dieser Hinsicht kann das Relaisgerät 150 eine erste Sicherheitsschicht für das Datenzentrum 120 bereitstellen, während der Server 122 eine zweite Sicherheitsschicht für das Datenzentrum 120 bereitstellen kann. In anderen Ausführungsformen kann ein Datenendgerät dazu konfiguriert sein, sich direkt mit dem Sever 122 zu verbinden und somit eine Ein-Schichten-Architektur zu bilden. Entsprechend verschiedener Ausführungsformen kann das Datenzentrum 120 dazu konfiguriert sein, dem einen oder mehreren Datenendgeräten 102 Informationen und Dienste über die oben dargestellte Architektur bereitzustellen. Beispiele der Information und der Dienste, die durch das Datenzentrum 120 entsprechend bestimmter Ausführungsformen bereitgestellt werden, werden im Detail weiter unten beschrieben.
  • In einigen Ausführungsformen kann das Datenzentrum 120 dazu konfiguriert sein, spezielle Betriebssystemdienste 124 bereitzustellen. Beispielsweise kann das Datenzentrum 120 Windows Applikationen, so wie Word, Excel, PowerPoint oder ähnliches bereitstellen. Ein spezifischer Betriebssystemdienst 124 kann in bestimmten Ausführungsformen durch eine Veröffentlichungsmethode ausgeliefert werden. In dieser Hinsicht kann der spezielle Betriebssystemdienst 124 rechnerfern von einem Endserver (z. B. Microsoft Terminal Server) geliefert werden, der innerhalb des Datenzentrums 120 läuft. In anderen Ausführungsformen kann ein spezieller Betriebssystemdienst 124 über eine Anwendungs-Virtualisierungs-Methode geliefert werden. In dieser Hinsicht kann der spezielle Betriebssystemdienst 124 in einer ausführbaren Datei gebündelt und dynamisch in einem Datenendgerät 102 zur lokalen Ausführung installiert werden. In anderen Ausführungsformen kann ein bestimmter Betriebssystemdienst 124 auf einen Dienst oder eine Anwendung, die lokal auf dem Datenendgerät installiert ist, verweisen und gezielt durch das Datenzentrum 120 ausgeführt werden.
  • In Ausführungsbeispielen kann das Datenzentrum 120 dazu ausgebildet sein, intern gehostete Netzanwendungen 126 bereitzustellen. In dieser Hinsicht kann die interne Netzanwendung 126 nativ in das Datenzentrum 120 integriert sein. Beispielsweise kann die interne Netzanwendung 126 solche Netzanwendungen umfassen, die dazu konfiguriert sind, um über HTTP, HTTPS oder andere ähnliche Protokolle, so wie Netzserver (z. B. Apache, IIS), Netzportale (z. B. Microsoft SharePoint, BEA Weblogic, IBM Websphere, Oracle PeopleSoft, Oracle Financials) Redaktionssysteme, Netzkonsolen und/oder ähnliches zu laufen. In einigen Ausführungsformen kann die Netzanwendung 126 in-house entwickelt sein oder kann durch Dritte entwickelt sein.
  • Entsprechend verschiedener Ausführungsformen kann das Datenzentrum 120 dazu ausgebildet sein, extern gehostete Netzapplikationen 128 bereit zu stellen. Die externen Netzapplikationen 128 können z. B. Software-as-a-Service (SaaS) Anwendungen umfassen. In bestimmten Ausführungsformen kann eine externe Netzanwendung 128 durch eine dritte Partei gehostet werden, beispielsweise durch ein entferntes Datenzentrum. Beispielsweise können die externen Netzanwendungen 128 solche Anwendungen umfassen, die von Salesforce.com, Google Apps, Microsoft Live, Zoho, Moodle und/oder ähnlichen angeboten werden. Eine externe Netzanwendung 128 kann zu dem Datenzentrum 120 über eine zuverlässige Verbindung geliefert werden, beispielsweise unter Verwendung von Security Assertion Markup Language (SAML), beauftragte Authentifizierung oder ähnlichem. In dieser Hinsicht kann die externe Netzanwendung 128 in das Datenzentrum 120 integriert sein, um zu den Datenendgeräten 102 über die Server 122 und in bestimmten Ausführungsformen über die Relaisgeräte 150 geliefert zu werden.
  • In einigen Ausführungsformen kann das Datenzentrum 120 dazu ausgebildet sein, private Dienste 130 bereitzustellen, so wie Cloud-Dienste. In dieser Hinsicht können die privaten Dienste 128 Dateidienste, Datendienste oder ähnliches umfassen. In einigen Ausführungsformen können die Dateidienste einen Zugang zu einem oder mehreren Netzwerkdateidiensten bereit stellen, beispielsweise geteilte Verzeichnisse, Heimverzeichnisse, öffentliche Verzeichnisse und/oder ähnliches. In einigen Ausführungsbeispielen können die Datendienste Zugang zu einen oder mehreren Datenbanken bereitstellten. Die Datenbanken können in einigen Fällen jegliche Open Database Connectivity (ODBC) oder Java Database Connectivity (JDBC) Datenbanken sein, so wie Microsoft SQL (Structured Query Language) Server, MySQL, Oracle Database, IBM DB2, Microsoft Access und/oder ähnliches. Die Datenbanken können beispielsweise über Netz-Berichte elektronische Netzformen und/oder ähnliches zugänglich sein.
  • In einigen Ausführungsbeispielen können die Informationen und Dienste des Datenzentrums 120 einem Client oder Benutzer eines Datenendgeräts 102 über eine netzbasierte portale Umgebung präsentiert werden, bspw. einem in einem Browser aufgebauten Desktop. In dieser Hinsicht kann das Datenendgerät 102 dazu ausgebildet sein einem Benutzer einen netz-freigegebenen Browser zur Verfügung zu stellen, bspw. Micorsoft Internet Explorer, Mozilla Firefox, Google Chrome, Opera, Apple Safari und/oder ähnliches. In den Ausführungsbeispielen kann es dem Nutzer möglich sein, Zugang zu einem Desktop durch die Benutzung eines Browsers des Datenendgeräts 102 zu erhalten. In Ausführungsbeispielen kann der Desktop auf Netztechnologien (z. B. Ajax, Comet und/oder ähnliches) aufgebaut sein und nativ in dem Browser in dem Datenendgerät 102 generiert sein. In dieser Hinsicht kann der in dem Browser eingebaute Desktop Merkmale aufweisen, die einem traditionellem Desktop ähnlich sind, so wie Menüs, Task-Leisten, Desktopsymbole und Hintergründe, benutzerdefinierte Einstellungen, Verknüpfungen, Infobereiche und/oder ähnliches. Der in dem Browser bereit gestellte Desktop kann sich von einem traditionellen Desktop unterscheiden, der von dem Betriebssystem bereitgestellt wird, das auf dem Datenendgerät 102 läuft. Zusätzlich kann sich der in dem Browser eingebaute Desktop von der virtuellen Präsentation eines traditionellen Desktops unterscheiden, der an einer externen Stelle läuft, bspw. innerhalb des Datenzentrums 102. In einigen Ausführungsformen können die Informationen und Dienste des Datenzentrums 120 dem Benutzer eines Datenendgeräts 102 über andere portale Schnittstellen präsentiert werden, bspw. eine Instrumententafel, eine mobile Schnittstelle, eine Tablett-Schnittstelle oder jegliche portale Schnittstelle, die dazu ausgebildet ist, Zugang zu einem oder mehreren Datenzentren 120 und/oder Cloud-Diensten zu verschaffen. In einigen Ausführungsformen können Dienste und Informationen direkt einem Nutzer bereitgestellt werden, ohne die Verwendung der portalen Schnittstelle.
  • Im Folgenden wird ein Ausführungsbeispiel der vorliegenden Anmeldung bereitgestellt. Dabei ist wesentlich, dass die Erfindungen nicht auf dieses spezifische Ausführungsbeispiel beschränkt sind und dass Modifikationen und andere Ausführungsformen angedacht sind, die in den Geltungsbereich der angefügten Ansprüche fallen. In diesem Ausführungsbeispiel kann ein Datenendgerät 102 eine Handschlag-Anfrage an das Relaisgerät 150 übermitteln. Das Relaisgerät 150 dieses Ausführungsbeispiels kann einen eindeutigen Identifizierer zuordnen und speichern, der eine Sitzung mit dem Datenendgerät 102 repräsentiert und das Relaisgerät 150 kann den eindeutigen Identifizierer an das Datenendgerät 102 und an ein oder mehrere Server 122 übermitteln, die mit dem Datenzentrum 120 verbunden sind. In diesem Ausführungsbeispiel kann das Relaisgerät 150 des Weiteren eine HTTP keep-alive Verbindung mit dem Datenendgerät 102 öffnen, die durch das Datenendgerät 102 empfangen werden kann.
  • Entsprechend dieses Ausführungsbeispiels kann ein Server 122 Nachrichten und/oder Befehle an ein Datenendgerät 102 pushen. In dieser Hinsicht kann der Server 122 die Nachricht und/oder das Kommando an das Relaisgerät 150 zusammen mit dem eindeutigen Identifizierer übermitteln. Der eindeutige Identifizierer kann dem Server 122 erlauben, die bestimmte keep-alive Verbindung zu identifizieren, über die die Nachricht und/oder das Kommando gesendet werden soll, und somit das Datenendgerät 102 zu identifizieren, an das die Nachricht und/oder der Befehl gesendet werden soll. Das Datenendgerät 150 dieses Ausführungsbeispiels kann die Nachricht und/oder den Befehl über die keep-alive Verbindung zusammen mit dem eindeutigen Identifizierer pushen. Entsprechend dieses Ausführungsbeispiels kann das Datenendgerät 102 die Nachricht und/oder den Befehl von dem Relaisgerät 150 empfangen. Das Datenendgerät 102 kann die gepushte Nachricht einem Benutzer darstellen und/oder den gepushten Befehl ausführen.
  • In dieser Hinsicht kann eine keep-alive Verbindung typischerweise für eine längere Zeitdauer aufrecht erhalten werden, ohne dass das Relaisgerät 150 eine unmittelbare Antwort (z. B. eine Antwort von dem Server 122) auf die Anfrage des der keep-alive Verbindung von dem Datenendgerät 102 bereitstellen muss. Solch eine keep-alive Verbindung kann sich von der Verbindung unterscheiden, die durch eine Standard Pull-Anfrage geschaffen wird, welche typischerweise eine unmittelbare Antwort von dem Relaisgerät 150 benötigt (z. B. entstehend von dem Server 120) oder ansonsten schnell unterbricht. In dieser Hinsicht kann eine keep-alive Verbindung dem Relaisgerät 150 eine offene Verbindung zur Verfügung stellen, über die das Relaisgerät 150 Nachrichten und/oder Kommandos (z. B. von dem Server 122) zu dem Datenendgerät 102 pushen kann, ohne auf eine bestimmte Pull-Anfrage von dem Datenendgerät 102 zu warten, die sich explizit auf die Nachricht und/oder das Kommando bezieht.
  • Weitere Ausführungsformen der vorliegenden Erfindung werden nun detailliert in Bezug auf die Figuren beschrieben.
  • Datenendgerät
  • Im Folgenden wird 2 beschrieben. 2 zeigt ein Blockdiagramm eines Datenendgeräts 102 entsprechend eines Ausführungsbeispiels. In dem Ausführungsbeispiel umfasst das Datenendgerät verschiedene Komponenten zur Durchführung von verschiedenen Funktionen, die hierin beschrieben werden. Diese Komponenten können einen oder mehrere Prozessoren 210, Speicher 212, Kommunikationsschnittstellen 214, Benutzerschnittstellen 216 oder Push-Zuhörer-Schaltungen 218 umfassen. Die Komponenten des hier beschriebenen Datenendgeräts 102 können bspw. ausgeführt sein als Schaltungen, Hardwareelemente (z. B. ein geeignet programmierter Prozessor, Schaltungslogik und/oder ähnliches), ein Computerprogrammprodukt umfassend computer-lesbare Programmbefehle (z. B. Software oder Firmware), die auf einem computer-lesbaren Medium (z. B. einem Speicher 212) gespeichert sind, der durch ein angemessen konfiguriertes Verarbeitungsgerät (z. B. dem Prozessor 210) ausführbar ist oder Kombinationen davon.
  • In einigen Ausführungsbeispielen können ein oder mehrere der Komponenten, die in 2 gezeigt sind, als Chip oder Chipsatz ausgebildet sei. In anderen Worten kann das Datenendgerät 102 ein oder mehrere physikalische Geräte (z. B. Chips) aufweisen, die Materialien, Komponenten und/oder Drähte auf einer strukturellen Baugruppe (z. B. einer Sockelleiste) aufweisen. Die strukturelle Baugruppe kann Körperkraft, Platzeinsparung und/oder Einschränkung elektrischer Interaktion der Komponenten, der auf ihr befindlichen Schaltung, bereitstellen. In dieser Hinsicht können der Prozessor 210, der Speicher 212, die Kommunikationsschnittstellte 214, die Benutzerschnittstelle 216 und/oder die Push-Zuhörer-Schaltung 218 als Chip und/oder Chipsatz ausgebildet sein. Das Datenendgerät 102 kann daher in einigen Ausführungsbeispielen dazu konfiguriert sein, Ausgestaltungen der vorliegenden Erfindung auf einem einzelnen Chip oder als ein einzelnes Chipsystem zu realisieren. Als weiteres Beispiel kann das Datenendegerät 102 in einigen Ausführungsbeispielen Komponenten aufweisen, die dazu konfiguriert sind, Ausgestaltungen der vorliegenden Erfindung auf einem einzelnen Chip oder auf einem einzelnen „Chipsystem” zu realisieren. Somit kann in einigen Fällen ein Chip oder ein Chipsatz Komponenten zur Durchführung einer oder mehrerer Operationen zur Bereitstellung der hier beschriebenen Funktionalität und/oder zum ermöglichen der Nutzer-Schnittstellen-Navigation im Hinblick auf die Funktionalität und/oder der hierin beschriebenen Dienste darstellen.
  • Der Prozessor 210 kann beispielsweise aus verschiedenen Komponenten ausgebildet sein, umfassend einen oder mehreren Mikroprozessoren, einen oder mehreren Prozessoren, einen oder mehreren Coprozessoren, einen oder mehreren Multikernprozessoren, einen oder mehreren Controllern, Verarbeitungsschaltungen, einen oder mehreren Computern, verschiedenen anderen Verarbeitungselementen, umfassend integrierte Schaltungen oder einige Kombinationen davon. Demzufolge, auch wenn in 2 ein einzelner Prozessor gezeigt ist, kann der Prozessor 210 in einigen Ausführungsformen eine Mehrzahl von Prozessoren umfassen. Die Mehrzahl von Prozessoren kann in einer operativen Kommunikation miteinander stehen oder kann zusammen ausgebildet sein, um eine oder mehrere Funktionalitäten des hier beschriebenen Datenendgeräts auszuführen. Die Mehrzahl von Prozessoren kann auf einem Single-Client-Computergerät ausgebildet sein oder über eine Mehrzahl von Client-Computergeräten aufgeteilt sein, die gemeinsam dazu ausgebildet sind, als Datenendgerät 102 zu funktionieren. In einigen Ausführungsbeispielen kann der Prozessor 210 dazu konfiguriert sein, Befehle auszuführen, die in dem Speicher 212 gespeichert oder auf andere Weise dem Prozessor 210 zugänglich sind. Diese Befehle können, wenn sie durch den Prozessor 210 ausgeführt werden, das Datenendgerät 102 dazu veranlassen, eine oder mehrere der hierin beschriebenen Funktionalitäten des Datenendgeräts 102 auszuführen. Von daher, unabhängig davon, ob durch Hardware-Methoden oder Software-Methoden oder durch eine Kombination davon gestaltet, kann der Prozessor 210 eine Einheit aufweisen, der es möglich ist, Operationen entsprechend der Ausführungsform der vorliegenden Erfindung auszuführen, wenn diese entsprechend konfiguriert sind. Somit, wenn der Prozessor 210 beispielsweise als ein Ausführer von solchen Befehlen ausgebildet ist, die in dem Speicher 212 gespeichert sind, können diese Befehle den Prozessor 210 speziell konfigurieren, um einen oder mehrere hierin beschriebene Algorithmen oder Operationen auszuführen.
  • Der Speicher 212 kann beispielsweise flüchtige Speicher, nichtflüchtige Speicher oder Kombinationen davon umfassen. In dieser Hinsicht kann der Speicher 212 einen oder mehrere dingliche und oder nicht transistorische computer-lesbare Speichermedien umfassen, die flüchtige Speicher und/oder nicht flüchtige Speicher beinhalten. Auch wenn in 2 als einzelner Speicher gezeigt, so kann der Speicher 212 eine Vielzahl von Speichern umfassen. Die Vielzahl von Speichern kann als einzelnes Computergerät ausgebildet sein oder kann über eine Vielzahl von Computergeräten verteilt sein, die dazu ausgebildet sind, zusammen als Datenendgerät 102 zu funktionieren. In verschiedenen Ausführungsbeispielen kann der Speicher 212 eine Harddisk, einen Schreib-Lese-Speicher, einen Puffer-Speicher, einen Flash-Speicher, einen Compact Disk Lese-Speicher (CD-ROM), eine digitale Vielfältigkeitsscheibe Lese-Speicher (DVD-ROM), eine optische Scheibe, eine Schaltung die ausgebildet ist, um Informationen zu speichern oder eine Kombination davon, umfassen. Der Speicher 212 kann dazu ausgebildet sein, Informationen, Daten, Anwendungen, Befehle oder ähnliches zu speichern, um dem Datenendgerät 102 zu ermöglichen, verschiedene Funktionen in Übereinstimmung mit verschiedenen Ausführungsbeispielen auszuführen. Beispielsweise ist der Speicher 212 in einigen Ausführungsbeispielen dazu ausgebildet, Eingangsdaten zur Steuerung des Prozessors 210 zwischenzuspeichern. Zusätzlich oder alternativ dazu kann der Speicher 212 dazu ausgebildet sein, Programmbefehle zu speichern, die durch den Prozessor 210 ausgeführt werden. Der Speicher 212 kann Informationen in Form von statischen und/oder dynamischen Informationen speichern. Diese gespeicherten Informationen können gespeichert und oder durch die Push-Zuhörer-Schaltung 218 genutzt werden, während diese ihre Funktionalitäten ausführt.
  • Die Kommunikationsschnittstelle 214 kann als jegliches Gerät oder Komponente ausgeführt sein, das als Schaltung, Hardware, Software, umfassend computer-lesbare Programmbefehle, die auf einem computer-lesbaren Medium (bspw. dem Speicher 212) gespeichert und durch ein Ausführungsgerät (z. B. dem Prozessor 210) ausführbar sind, ausgebildet ist oder als eine Kombination davon, die dazu ausgebildet ist, Daten von einem anderen Computergerät zu empfangen und/oder Daten zu einem anderen Computergerät zu übermitteln. In einem Ausführungsbeispiel ist die Kommunikationsschnittstelle 214 zumindest teilweise als Prozessor 210 ausgeführt oder auf andere Weise durch den Prozessor 210 geregelt. In dieser Hinsicht kann die Kommunikationsschnittstelle 214 in Kommunikation mit dem Prozessor 210 stehen, beispielsweise über einen Bus. Die Kommunikationsschnittstelle 214 kann beispielsweise eine Netzwerkkarte (verkabelt oder kabellos), eine Antenne, einen Transmitter, einen Empfänger und/oder Unterstützungshardware- oder software zur Ermöglichung der Kommunikation mit einem oder mehreren Remote-Computern, umfassen. Die Kommunikationsschnittstelle 214 kann dazu konfiguriert sein, über jegliche Protokolle, die zur Kommunikation zwischen Computergeräten genutzt werden können, Daten zu empfangen und/oder zu übermitteln. In dieser Hinsicht kann die Kommunikationsschnittstelle 214 dazu konfiguriert sein, unter Nutzung eines Protokolls, dass zur Übermittlung von Daten über ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, einige Kombinationen davon oder ähnliches, Daten zu Empfangen und/oder zu Senden, durch die das Datenendgerät 102 und ein oder mehrere Computergeräte oder Computerressourcen kommunizieren können. Beispielsweise kann die Kommunikationsschnittstelle 214 dazu ausgebildet sein, die Kommunikation zwischen dem Datenendgerät 102 und anderen Geräten, sowie dem Relaisgerät 150 oder dem Server 120, zu ermöglichen. Die Kommunikationsschnittstelle 214 kann zusätzlich mit dem Speicher 212, der Benutzerschnittstelle 216 und/oder der Push-Zuhörer-Schaltung 218 in Kommunikation stehen, beispielsweise über einen Bus.
  • Die Benutzerschnittstelle 216 kann in Kommunikation mit dem Prozessor 210 stehen, um einen Hinweis auf eine Benutzereingabe zu erhalten und/oder um akustischen, visuellen, mechanischen oder anderen Output für den Benutzer zur Verfügung zu stellen. Somit kann die Benutzerschnittstelle 214 beispielsweise eine Tastatur, eine Maus, einen Joystick, einen Display, einen Touchscreendisplay, ein Microfon, einen Lautsprecher und/oder einen anderen Eingabe/Ausgabe-Mechanismen aufweisen. In Ausführungsformen, in denen die Benutzerschnittstelle 216 einen Touchscreendisplay umfasst, kann die Benutzerschnittstelle 216 zusätzlich dazu ausgebildet sein, Hinweise auf eine Berührungsgeste oder andere Eingaben an dem Touchscreendisplay zu detektieren und/oder zu empfangen. Die Benutzerschnittstelle kann in Kommunikation mit dem Speicher 212, der Kommunikationsschnittstelle 214 und/oder der Push-Zuhörer-Schaltung 216 stehen, beispielsweise über einen Bus.
  • Die Push-Zuhörer-Schaltung 218 kann durch verschiedene Komponenten ausgebildet sein, so wie Schaltungen, Hardware, ein Computer-Programm-Produkt, das computer-lesbare Programmbefehle, die auf einem computer-lesbaren Medium (z. B. dem Speicher 212) gespeichert sind und durch ein Ausführunggerät (z. B. dem Prozessor 210) ausgeführt werden oder einige Kombinationen davon und in einigen Ausführungsformen ist die Push-Zuhörer-Schaltung 218 als Prozessor 210 ausgebildet oder auf andere Weise durch den Prozessor 210 geregelt. In Ausführungsformen, in denen die Push-Zuhörer-Schaltung 218 separat von dem Prozessor 210 ausgebildet ist, kann die Push-Zuhörer-Schaltung 218 in Kommunikation mit dem Prozessor 210 stehen. Die Push-Zuhörer-Schaltung 218 kann des Weiteren in Kommunikation mit einem oder mehreren der Speicher 212, der Kommunikationsschnittstelle 214 oder der Benutzerschnittstelle 216 stehen, bspw. über einen Bus.
  • Entsprechend einigen Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, eine Anfrage eines Benutzers zu empfangen, sich an das portale Umgebungssystem anzumelden, so wie ein netzbasiertes Portal, um Zugang zu beispielsweise einem Datenzentrum zu erhalten. Die portale Schnittstelle kann bspw. ein Desktop in einem Browser, ein Dashbord, eine mobile Schnittstelle, oder jede andere portale Schnittstelle sein, die dazu ausgelegt ist, einen Zugang zu einem oder mehreren Datenzentren und/oder Cloud-Diensten bereitzustellen. Die Push-Zuhörer-Schaltung 218 kann dazu konfiguriert sein, die Übertragung einer Anmelde-Anfrage an einen Server 122 zu gewährleisten, der mit einem Datenzentrum verknüpft ist, in einigen Fällen über ein Relaisgerät 150. Die Anmelde-Anfrage kann bspw. in Form eines HTTP-POST-Befehls erfolgen.
  • In einigen Ausführungsbeispielen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein Konfigurationsinformationen für die portale Schnittstelle von dem Server 122, in einigen Fällen über das Relaisgerät 150, zu empfangen. Die Konfigurationsinformation kann anzeigen, dass ein oder mehrere Dienste einem Benutzer zugänglich gemacht werden. In dieser Hinsicht kann ein Dienst zu jeglichem Dienst oder jeglicher Anwendung verweisen, zu dem Zugang durch das portale Umgebungssystem gewährt wird, unabhängig davon, ob diese auf dem Datenendgerät 102, der mit der Push-Zuhörer-Schaltung 218 verknüpft ist, in dem Datenzentrum oder auf einer entfernten Einheit angeordnet ist. Entsprechend verschiedenen Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, dem Nutzer die portale Schnittstelle anzuzeigen. In dieser Hinsicht kann die portale Schnittstelle die Darstellung eines oder mehrerer Dienste umfassen, die durch die von dem Server 122 gesendete Konfigurationsinformation anzeigt werden.
  • Entsprechend einiger Ausführungsbeispiele kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, die Übertragung einer Handschlag-Anfrage an ein Relaisgerät 150 vorzusehen. Die Handschlag-Anfrage kann in einigen Ausführungsformen durch die Push-Zuhörer-Schaltung 218 übermittelt werden, um den Prozess des Aufbaus einer HTTP keep-alive Verbindung zu starten. Die Push-Zuhörer-Schaltung 218 kann dazu konfiguriert sein, die Handschlag-Anfrage anzufragen, bspw. über ein asynchrones JavaScript und Extensible Markup Language (XML) oder AJAX. Die Handschlag-Anfrage kann in einigen Ausführungsformen an ein Java Servlet übermittelt werden, dass auf dem Relaisgerät 150 läuft.
  • In verschiedenen Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, eine Antwort auf die Handschlag-Anfrage von dem Relaisgerät 150 zu empfangen. Die Handschlag-Antwort kann die Angabe eines eindeutigen Identifizierers umfassen. In dieser Hinsicht kann der eindeutige Identifizierer die HTTP keep-alive Verbindung darstellen, die zwischen dem Datenendgerät 102, das mit der Push-Zuhörer-Schaltung 218 verknüpft ist, und dem Relaisgerät 115 aufgebaut wird. Entsprechend bestimmter Ausführungsformen kann die Push-Zuhörer-Schaltung 218 die Speicherung des eindeutigen Identifizierers gewährleisten.
  • Entsprechend einiger Ausführungsformen kann die von der Push-Zuhörer-Schaltung 218 empfangene Handschlag-Antwort eine Anfrage zum Aufbau und/oder eine Information für den Aufbau einer HTTP keep-alive Verbindung mit dem Relaisgerät 150 umfassen. In anderen Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, die Anfrage zum Aufbau und/oder Informationen für den Aufbau einer HTTP keep-alive Verbindung von dem Relaisgerät 150 zu empfangen, unabhängig (z. B. nachfolgend zu) der Handschlag-Antwort.
  • In einigen Ausführungsbeispielen kann die keep-alive Verbindungsinformation die Anzeige eines temporären Auszeit-Werts oder einer Zeitdauer zur Offenhaltung der keep-alive Verbindung vor dem Schließen der Verbindung und/oder der automatischen Wiederverbindung der Verbindung, umfassen. In anderen Ausführungsformen kann der temporäre Auszeit-Wert zwischen dem Datenendgerät 102 und dem Relaisgerät 150 verhandelt werden, durch das Datenendgerät 102 gesetzt werden, durch XML konfiguriert werden oder durch andere Faktoren bestimmt werden. Beispielsweise kann die HTTP keep-alive Verbindung dazu ausgebildet sein, während einer Dauer von zwei Minuten vor dem Schließen der Verbindung offen zu bleiben und unmittelbar die Verbindung für weitere zwei Minuten wieder zu öffnen usw.. In einigen Fällen dann das automatische Schließen und sofortige Wiederverbinden der HTTP keep-alive Verbindung während der Dauer der Sitzung mit dem portalen Umgebungssystem andauern. Die Push-Zuhörer-Schaltung 218 kann dazu ausgebildet sein, den eindeutigen Identifizierer jedes Mal bereitzustellen, wenn die Verbindung wieder geöffnet wird, um den gleichen eindeutigen Identifizierer über die gesamte Lebensspanne (d. h. die verschiedenen Trennungen und Wiederverbindungen) der keep-alive Verbindungen zu erhalten.
  • In einigen Ausführungsbeispielen kann die HTTP keep-alive Verbindungsinformation einen finalen Auszeit-Wert aufweisen, bspw. im XML-Format. Der finale Auszeit-Wert kann in einigen Fällen eine Dauer angeben, nach der die keep-alive Verbindung nach dem Schließen nicht mehr automatisch wieder geöffnet wird. Beispielsweise kann der finale Auszeit-Wert anzeigen, dass die keep-alive Verbindung nicht wieder geöffnet werden soll, nachdem sie für eine Stunde am Leben erhalten worden ist. In anderen Ausführungsformen kann der finale Auszeit-Wert eher von der Zeit der letzten Benutzung der keep-alive Verbindung gemessen werden als vom Beginn der keep-alive Verbindung. Auf diese Weise wird die keep-alive Verbindung nicht davor geschützt, automatisch wieder zu verbinden, nachdem die Zeit, die von dem finalen Auszeit-Wert angegeben wird (bspw. eine Stunde) abgelaufen ist, seit der letzten Nutzung der keep-alive Verbindung.
  • Entsprechend verschiedener Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, der HTTP keep-alive Verbindung zuzuhören, während diese geöffnet ist. Beispielsweise kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, einen Zuhörer zu der HTTP keep-alive Verbindung aufzubauen oder in einigen Fällen die HTTP keep-alive Verbindung anzumelden. Auf diese Weise wird die Push-Zuhörer-Schaltung 218 unmittelbar auf Daten oder Nachrichten, die über die HTTP keep-alive Verbindung gepusht werden, hingewiesen oder empfängt diese, ohne die Verwendung einer Pulling-Technologie, wie eine HTTP-Abfrage.
  • In anderen Ausführungsformen kann die HTTP keep-alive Verbindung in Form von wiederholten Lang-Abfrage-Anfragen von der Push-Zuhörer-Schaltung 218 zu dem Relaisgerät ausgeführt sein. Beispielsweise kann die Lang-Abfrage-Anfrage eine Komet-Programm-Anfrage sein. Entsprechend einiger Ausführungsbeispiele kann anstatt eine Live-Verbindung Aufrecht zu erhalten, über die das Relaisgerät 150 Befehle pushen kann, die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, eine solche Verbindung unter Nutzung der wiederholten Lang-Abfrage-Anfrage zu emulieren. In dieser Hinsicht kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, eine erste Lang-Abfrage-Anfrage an das Relaisgerät 150 zu übermitteln. Die Push-Zuhörer-Schaltung 218 kann dann eine Antwort auf die Lang-Abfrage-Anfrage erhalten und sofort die Übermittlung einer neuen Lang-Abfrage-Anfrage gewährleisten. In bestimmen Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, eine neue Lang-Abfrage-Anfrage zu übermitteln, ob die vorhergehende Antwort Informationen enthält oder leer ist. Auf diese Weise kann die Push-Zuhörer-Schaltung 218 sicher stellen, dass eine Lang-Abfrage-Anfrage jederzeit verfügbar ist, auf die das Relaisgerät 150 mit einem Push-Befehl oder Information antworten kann.
  • Beispielsweise kann die Push-Zuhörer-Schaltung 218 die Übermittlung einer generischen Komet-Abfrage-Anfrage an das Relaisgerät 150 gewährleisten. Hat das Relaisgerät 150 gegenwärtig keine Informationen, die dem Datenendgerät 102 gepusht werden kann, das mit der Push-Zuhörer-Schaltung 218 verknüpft ist, so muss die Push-Zuhörer-Schaltung 218 nicht unverzüglich eine Antwort auf die Lang-Abfrage-Anfrage erhalten. Stattdessen muss die Push-Zuhörer-Schaltung 218 keine Antwort erhalten, bis das Relaisgerät 150 Informationen erhält, die zu der Push-Zuhörer-Schaltung 218 gepusht werden soll. In einigen Fällen kann ein gegebenes Zeitfenster verstreichen, bspw. der oben beschriebene temporäre Auszeit-Wert, bevor das Relaisgerät 150 Informationen empfängt, die zu der Push-Zuhörer-Schaltung 218 gepusht werden. In diesen Fällen kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, eine Auszeitnachricht, bspw. eine leere Nachricht, von dem Relaisgerät 150 zu empfangen. In anderen Fällen kann die Push-Zuhörer-Schaltung 218 keine Nachrichten empfangen und die Lang-Abfrage-Anfrage verfällt. In jedem Fall kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, sofort den Transfer einer neuen Lang-Abfrage-Anfrage an das Relaisgerät 150 zu gewährleisten.
  • Entsprechend verschiedener Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, eine Nachricht über die HTTP keep-alive Verbindung zu empfangen. Beispielsweise kann die Push-Zuhörer-Schaltung 218 einen Push-Befehl von dem Relaisgerät 250 empfangen. In einigen Ausführungsformen kann der Push-Befehl eine Nachricht, einen Uniform Recource Lokator (URL), eine Verknüpfung zu einem Dienst in einem Datenzentrum, einer Aktion oder ähnliches umfassen. Eine Push-Befehl-Nachricht kann eine Informationsnachricht, eine Warnungsnachricht, eine Fehlernachricht, eine Alarmnachricht und/oder ähnliches umfassen. Eine Push-Befehl-URL kann eine absolute oder eine relative URL umfassen und kann auf eine globale oder auf eine lokale Adresse verweisen. Eine Push-Befehl-Verknüpfung kann eine Anzeige auf einen speziellen Betriebssystemdienst 124, eine intern gehostete Netzanwendung 126, eine extern gehostete Netzanwendung 128, einen privaten Dienst 130 und/oder ähnliches, aufweisen. Eine Push-Befehl-Aktion kann eine Aktion, die sich auf das portale Umgebungssystem, das Betriebssystem des Datenendgeräts 102 und/oder ähnliches bezieht, aufweisen. Verschiedene Beispiele von Push-Befehl-Aktionen umfassen: Abmelden des Benutzers von dem portalen Umgebungssystem, Abmelden des Nutzers von dem Betriebssystem, Herunterfahren des Datenendgeräts 102, Sperren oder Entsperren des Bildschirm des Datenendgeräts 102, Sperren oder Entsperren des Desktops eines Desktops in einem Browser (d. h. in einem portalen Umgebungssystem, das einen Desktop in einem Browser aufweist), Sperren oder Entsperren des Desktops eines Betriebssystems, Öffnen oder Schließen eines Browserfensters innerhalb oder außerhalb des portalen Umgebungssystems, Aktualisieren eines Browserfensters innerhalb oder außerhalb des portalen Umgebungssystems, Anpassen der Größe eines Browserfensters innerhalb oder außerhalb des portalen Umgebungssystems, Schließen einer Anwendung innerhalb des portalen Umgebungssystems (bspw. eine Anwendung die über einen Terminalserver läuft), Schließen einer Anwendung außerhalb des portalen Umgebungssystems (z. B. eine lokal laufende Anwendung) und/oder ähnliches.
  • In Ausführungsbeispielen kann der Push-Befehl von einem Server 122 stammen und durch die Push-Zuhörer-Schaltung 218 über das Relaisgerät 150 empfangen werden. Der Push-Befehl kann in Form eines Textstring ausgeführt sein, der ein angeordnetes JavaScript Object Notation (JSON) Objekt repräsentiert. Entsprechend einiger Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, den JSON-String in ein JavaScript Objekt zu konvertieren. Das JavaScript Objekt kann ein oder mehrere Attribute umfassen, die sich auf den Push-Befehl beziehen.
  • Entsprechend verschiedene Ausführungsformen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, den Push-Befehl zu interpretieren und in Antwort darauf eine zugehörige Aktion auszuführen. Beispielsweise kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, ein oder mehrere JavaScript Funktionen aufzurufen, die mit der Aktion verbunden sind, die in dem Push-Befehl angezeigt ist. In Bezug auf Push-Befehl-Nachrichten kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, die Anzeige der Nachrichten für einen Benutzer zu gewährleisten, bspw. über eine Dialogbox. In Bezug auf Push-Befehl-URLs kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, auf die in der URL angegebene Adresse zuzugreifen, beispielsweise in einem existierenden oder in einem neuen Browser-Fenster. In Bezug auf Push-Befehl-Verknüpfungen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, die Verknüpfung Auszuführen, um den damit verbundenen Dienst oder die damit verbundene Anwendung zu starten, beispielsweise eine Netz-Anwendung in einem Desktop in einem Browser. In Bezug auf Push-Befehl-Aktionen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, die angegebene Aktion auszuführen, bspw. den Benutzer von den portalen Umgebungssystemen abzumelden.
  • In Ausführungsbeispielen kann die Push-Zuhörer-Schaltung 218 dazu konfiguriert sein, den zumindest teilweise auf einen oder mehrere Attribute basierenden Push-Befehl zu interpretieren. In bestimmten Fällen kann der eine oder können die mehreren Attribute die tatsächlich durchzuführende Aktion anzeigen. In anderen Ausführungsformen können die Attribute zusätzliche Informationen bereit stellen, die nötig sind, um die Aktion durchzuführen. Beispielsweise kann eine Push-Befehl-Verknüpfung ein erstes Attribut enthalten, das anzeigt, dass der Push-Befehl sich auf die Ausführung einer Verknüpfung bezieht, und ein zweites Attribut, das anzeigt, dass die tatsächliche Verknüpfung auszuführen ist. Weitere Beispiele von Push-Befehl-Attributen umfassen: der Nachrichtentyp und/oder der Nachrichtentext, der für eine Push-Befehl-Nachricht anzuzeigen ist, die URL-Verknüpfung um Befehl-URLs zu pushen, eine Angabe, ob der Push-Befehl innerhalb oder außerhalb des portalen Umgebungssystems ausgeführt werden soll, eine Angabe, ob der Push-Befehl innerhalb oder außerhalb des aktuellen Fensters ausgeführt werden soll und oder ähnliches.
  • Server
  • Im Folgenden wird auf 3 Bezug genommen. 3 zeigt ein Blockdiagramm eines Servers 122 entsprechend eines Ausführungsbeispiels. In dem Ausführungsbeispiel weist der Server 122 verschiedene Komponenten zur Durchführung der verschiedenen hier beschriebenen Funktionen auf. Diese Komponenten können eine oder mehrere Prozessoren 310, Speicher 312, Kommunikationsschnittstellen 314 oder Push-Anfrage-Schaltungen 316 aufweisen.
  • Die Komponenten des hier beschriebenen Servers 122 können bspw. ausgebildet sein als Schaltung, Hardwareelemente (z. B. ein entsprechend programmierter Prozessor, eine Schaltungslogik und/oder ähnliches), ein Computer-Programm-Produkt, das computer-lesbare Befehle (d. h. Software oder Firmware), die auf einem computer-lesbaren Medium (z. B einem Speicher 312) gespeichert sind, das durch ein entsprechend konfiguriertes Ausführungsgerät (d. h. dem Prozessor 310) ausführbar ist oder Kombinationen davon.
  • In einigen Ausführungsbeispielen können ein oder mehrere der in 3 gezeigten Komponenten als Chip oder Chipsatz ausgebildet sein. Mit anderen Worten kann der Server 122 ein oder mehrere physikalische Pakete (z. B. Chips) umfassen, die Materialien, Komponenten und/oder Drähte auf einer baulichen Einheit (z. B. einer Sockelleiste) aufweisen. Die bauliche Einheit kann Körperkraft, Platzersparnis und/oder die Begrenzung elektrischer Interaktion der darauf enthaltenen Schaltung bereitstellen. In dieser Hinsicht kann der Prozessor 310, der Speicher 312, die Kommunikationsschnittstellte 314 und oder die Push-Anfrage-Schaltung 316 als Chip oder Chipsatz ausgebildet sein. Der Server 122 kann daher in einigen Ausführungsbeispielen dazu ausgebildet sein, Ausführungsformen der vorliegenden Erfindung auf einem einzelnen Chip oder als einzelnes „Chipsystem” zu implementieren. Als weiteres Beispiel kann der Server in einigen Ausführungsbeispielen Komponenten enthalten, um Ausführungen der vorliegenden Erfindung auf einem einzelnen Chip oder als einzelnes „Chipsystem” zu implementieren. Somit kann in einigen Fällen ein Chip oder Chipsatz Komponenten zur Durchführung einer oder mehrerer Operationen zur Bereitstellung der hier beschriebenen Funktionalitäten bilden.
  • Beispielsweise kann der Prozessor 310 aus verschiedenen Komponenten gebildet sein, umfassend einen oder mehrere Mikroprozessoren, einen oder mehrere Prozessoren, einen oder mehrere Coprozessoren, einen oder mehrere Mulitkernprozessoren, einen oder mehrere Controller, Verarbeitungsschaltungen, einen oder mehrere Computer, verschiedene andere Verarbeitungselemente umfassend integrierte Schaltungen oder Kombinationen davon. Dementsprechend kann, auch wenn in 3 ein einzelner Prozessor gezeigt ist, der Prozessor 310 eine Vielzahl von Prozessoren aufweisen. Die Vielzahl von Prozessoren kann in operativer Kommunikation miteinander stehen und kann zusammen konfiguriert werden, um ein oder mehrere Funktionalitäten des hier beschriebenen Servers durchzuführen. Die Vielzahl von Prozessoren kann auf einem einzelnen Computergerät ausgebildet sein oder über eine Vielzahl von Computergeräten verteilt sein, die zusammen derart konfiguriert sind, dass sie als Server 122 funktionieren. In einigen Ausführungsbeispielen ist der Prozessor 310 dazu ausgebildet, Befehle auszuführen, die in dem Speicher 312 gespeichert oder anderweitig für den Prozessor 310 zugänglich sind. Diese Befehle können den Server 122 dazu bringen, eine oder mehrere der hier beschriebenen Funktionalitäten des Servers 122 auszuführen, wenn die Befehle durch den Prozessor 310 ausgeführt werden. Somit kann der Prozessor 310 unabhängig davon, ob der durch Hardwaremethoden oder Softwaremethoden oder durch eine Kombination davon konfiguriert ist, eine Einheit umfassen, der es möglich ist, Operationen entsprechend der vorliegenden Erfindung auszuführen, wenn sie entsprechend konfiguriert ist. Ist der Prozessor 310 bspw. als Ausführer von Befehlen ausgebildet, die bspw. in dem Speicher 312 gespeichert sein können, so können diese Befehle den Prozessor 310 dahingehend spezifisch konfigurieren, dass ein oder mehrere Algorithmen und/oder hier beschriebene Operationen ausgeführt werden.
  • Der Speicher 312 kann beispielsweise flüchtige Speicher, nichtflüchtige Speicher oder Kombinationen davon umfassen. In dieser Hinsicht kann der Speicher 312 einen oder mehrere dingliche und oder nicht transistorische computer-lesbare Speichermedien umfassen, die flüchtige Speicher und/oder nicht-flüchtige Speicher beinhalten. Auch wenn in 3 als einzelner Speicher gezeigt, so kann der Speicher 312 eine Vielzahl von Speichern umfassen. Die Vielzahl von Speichern kann als einzelnes Computergerät ausgebildet sein oder kann über eine Vielzahl von Computergeräten verteilt sein, die dazu ausgebildet sind, zusammen als Server 122 zu funktionieren. In verschiedenen Ausführungsbeispielen kann der Speicher 312 eine Harddisk, einen Schreib-Lese-Speicher, einen Puffer-Speicher, einen Flash-Speicher, einen Compact Disk Lese-Speicher (CD-ROM), einen digitale Vielfältigkeitsscheibe-Lese-Speicher (DVD-ROM), eine optische Scheibe, eine Schaltung die ausgebildet ist, um Informationen zu speichern oder eine Kombination davon, umfassen. Der Speicher 312 kann dazu ausgebildet sein, Informationen, Daten, Anwendungen, Befehle oder ähnliches zu speichern, um dem Server 122 zu ermöglichen, verschiedene Funktionen in Übereinstimmung mit verschiedenen Ausführungsbeispielen auszuführen. Beispielsweise ist der Speicher 312 in einigen Ausführungsbeispielen dazu ausgebildet, Eingangsdaten zur Steuerung des Prozessors 310 zwischen zu speichern. Zusätzlich oder alternativ dazu kann der Speicher 312 dazu ausgebildet sein, Programmbefehle zu speichern, die durch den Prozessor 310 ausgeführt werden. Der Speicher 312 kann Informationen in Form von statischen und/oder dynamischen Informationen speichern. Diese gespeicherten Informationen können gespeichert und/oder durch die Push-Anfrage-Schaltung 316 genutzt werden, während diese ihre Funktionalitäten ausführt.
  • Die Kommunikationsschnittstelle 314 kann als jegliches Gerät oder Komponente ausgeführt sein, das als Schaltung, Hardware, Software, umfassend computer-lesbare Programmbefehle, die auf einem computer-lesbaren Medium (bspw. dem Speicher 312) gespeichert und durch ein Ausführungsgerät (z. B. dem Prozessor 310) ausführbar sind, ausgebildet ist oder als eine Kombination davon, die dazu ausgebildet ist, Daten von einem anderen Computergerät zu empfangen und/oder Daten zu einem anderen Computergerät zu übermitteln. In einem Ausführungsbeispiel ist die Kommunikationsschnittstelle 314 zumindest teilweise als Prozessor 310 ausgeführt oder auf andere Weise durch den Prozessor 210 geregelt. In dieser Hinsicht kann die Kommunikationsschnittstelle 314 in Kommunikation mit dem Prozessor 310 stehen, beispielsweise über einen Bus. Die Kommunikationsschnittstelle 314 kann beispielsweise eine Netzwerkkarte (verkabelt oder kabellos), eine Antenne, einen Transmitter, einen Empfänger und/oder Unterstützungshardware- oder software zur Ermöglichung der Kommunikation mit einem oder mehreren Remote-Computern, umfassen. Die Kommunikationsschnittstelle 314 kann dazu konfiguriert sein, über jegliche Protokolle, die zur Kommunikation zwischen Computergeräten genutzt werden können, Daten zu empfangen und/oder zu übermitteln. In dieser Hinsicht kann die Kommunikationsschnittstelle 314 dazu konfiguriert sein, unter Nutzung eines Protokolls, dass zur Übermittlung von Daten über ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, einige Kombinationen davon oder ähnliches, Daten zu Empfangen und/oder zu Senden, durch die der Server 122 und ein oder mehrere Computergeräte oder Computerressourcen kommunizieren können. Beispielsweise kann die Kommunikationsschnittstelle 314 dazu ausgebildet sein, die Kommunikation zwischen dem Server 122 und anderen Geräten, bspw. dem Relaisgerät 150 oder dem Datenendgerät 102, zu ermöglichen. Die Kommunikationsschnittstelle 314 kann zusätzlich mit dem Speicher 312 und/oder der Push-Anfrage-Schaltung 316 in Kommunikation stehen, beispielsweise über einen Bus.
  • Die Push-Anfrage-Schaltung 316 kann durch verschiedene Komponenten ausgebildet sein, so wie Schaltungen, Hardware, ein Computer-Programm-Produkt, das computer-lesbare Programmbefehle, die auf einem computer-lesbaren Medium (z. B. dem Speicher 312) gespeichert sind und durch ein Ausführungsgerät (z. B. dem Prozessor 310) ausgeführt werden oder einige Kombinationen davon und in einigen Ausführungsformen ist die Push-Anfrage-Schaltung 316 als Prozessor 310 ausgebildet oder auf andere Weise durch den Prozessor 310 geregelt. In Ausführungsformen, in denen die Push-Anfrage-Schaltung 316 separat von dem Prozessor 310 ausgebildet ist, kann die Push-Anfrage-Schaltung 316 in Kommunikation mit dem Prozessor 310 stehen. Die Push-Anfrage-Schaltung 316 kann des Weiteren in Kommunikation mit einem oder mehreren der Speicher 312 und/oder der Kommunikationsschnittstelle 314 stehen, bspw. über einen Bus.
  • Entsprechend verschiedener Ausführungsformen kann die Push-Anfrage-Schaltung 316 dazu ausgebildet sein, eine Anfrage eines Benutzers von einem Datenendgerät 102 zum Anmelden an ein netzbasiertes Portal zu empfangen, das von einem Server 122 bereitgestellt wird, der mit der Push-Anfrage-Schaltung 316 verbunden ist. Die Push-Anfrage-Schaltung 316 kann die Übertragung von Konfigurationsinformation für die netzbasierte portale Schnittstelle an das Datenendgerät 102 gewährleisten. In einigen Fällen kann die Anfrage von dem Datenendgerät 102 und die Antwort an das Datenendgerät 102 über ein Relaisgerät 150 erfolgen. Die Konfigurationsinformation kann ein oder mehrere Dienste angeben, die dem Nutzer zugänglich gemacht werden. In dieser Weise kann ein Dienst zu jeglichem Dienst oder Applikation verweisen, durch die ein Zugang zu dem portalen Umgebungssystem zu Verfügung gestellt wird, unabhängig davon, ob diese auf dem Datenendgerät 102, in dem Datenzentrum oder auf einer entfernten Einheit angeordnet sind.
  • In einigen Ausführungsformen kann die Push-Anfrage-Schaltung 316 dazu ausgebildet sein, von einem Relaisgerät 150 eine Angabe der Existenz einer HTTP-keep-alive Verbindung zwischen dem Relaisgerät 150 und dem Datenendgerät 102 zu empfangen. Die Angabe kann einen eindeutigen Identifizierer umfassen, der die Verbindung repräsentiert. Entsprechend einiger Ausführungsbeispiele kann die Push-Anfrage-Schaltung 316 dazu konfiguriert sein, die Speicherung des eindeutigen Identifizierer zu gewährleisten. Die Push-Anfrage-Schaltung 316 kann des Weiteren dazu konfiguriert sein, eine Angabe des Datenendgeräts 102 und/oder des Relaisgeräts 150 zu speichern, auf den sich der eindeutige Identifizierer bezieht.
  • Entsprechend verschiedener Ausführungsbeispiele kann die Push-Anfrage-Schaltung 316 konfiguriert sein, Befehle und/oder Nachrichten an ein Datenendgerät 102 über ein Relaisgerät 150 zu pushen. Die Push-Befehle und/oder Nachrichten können den in Bezug auf die Push-Zuhörer-Schaltung 218 beschriebenen gleich sein. In einigen Ausführungsformen kann die Push-Anfrage-Schaltung 316, zumindest teilweise auf dem eindeutigen Identifizierer basierend, das Relaisgerät 150 festlegen, zu dem der Push-Befehl gesendet werden soll. In dieser Hinsicht kann die Push-Anfrage-Schaltung 316 den eindeutigen Identifizierer der HTTP keep-alive Verbindung abrufen, die mit dem Datenendgerät 102 verbunden ist, an das der Push-Befehl gerichtet ist. In anderen Ausführungsformen kann die Push-Anfrage-Schaltung 316 dazu konfiguriert sein, die Übermittlung des Push-Befehls an ein oder mehrere Relaisgeräte 150 zusammen mit dem eindeutigen Identifizierer zu gewährleisten. In diesen Ausführungsformen kann das Relaisgerät 150 bestimmen, ob sich der eindeutige Identifizierer auf eine HTTP keep-alive Verbindung bezieht, zu der das jeweilige Relaisgerät 150 gehört.
  • In einigen Ausführungsbeispielen kann die Push-Anfrage-Schaltung 316 dazu ausgebildet sein, den Push-Befehl zu generieren, indem sie ein Anwendungs-Programmierungs-Interface (API) anruft, das durch ein Softwareentwicklungspaket (STK) bereitgestellt wird. In dieser Hinsicht kann jeder Push-Befehl auf dem mit der Push-Zuhörer-Schaltung 218 verbundenen Server 122 dargestellt werden, bspw. durch ein Java-Objekt. In einigen Ausführungsformen kann die Push-Zuhörer-Schaltung 218 ausgebildet sein, das gewünschte Java-Objekt abzurufen, und das Java-Objekt in eine Hashtabelle zu konvertieren. Beispielsweise kann die Push-Zuhörer-Schaltung 218 dazu ausgebildet sein, das Java-Hashtabellen-Objekt zu nutzen, um das Java-Objekt in verschiedene Schlüssel-Wert-Paare zu konvertieren, die in ein Hashtabellen-Objekt übertragen werden. In verschiedenen Ausführungsformen kann das Hashtabellen-Objekt in einen Textstring konvertiert werden, der ein seriealisiertes JSON-Objekt repräsentiert. Die Push-Zuhörer-Schaltung 218 kann dazu ausgebildet sin, die Übertragung des JSON-String an das Relaisgerät zum pushen an das Datenendgerät 102, zu gewährleisten.
  • Relaisgerät
  • Im Folgenden wird 4 beschrieben. 4 zeigt ein Blockdiagramm eines Relaisgeräts 150 entsprechend eines Ausführungsbeispiels. In dem Ausführungsbeispiel umfasst das Relaisgerät 150 verschiedene Komponenten zur Durchführung von verschiedenen Funktionen, die hierin beschrieben werden. Diese Komponenten können einen oder mehrere Prozessoren 410, Speicher 412, Kommunikationsschnittstellen 414 oder Push-Übertragungs-Schaltungen 416 umfassen. Die Komponenten des hier beschriebenen Relaisgeräts 150 können bspw. ausgeführt sein als Schaltungen, Hardwareelemente (z. B. ein geeignet programmierter Prozessor, Schaltungslogik und/oder ähnliches), ein Computerprogrammprodukt umfassend computer-lesbare Programmbefehle (z. B. Software oder Firmware), die auf einem computer-lesbaren Medium (z. B. einem Speicher 412) gespeichert sind, der durch ein angemessen konfiguriertes Verarbeitungsgerät (z. B. dem Prozessor 410) ausführbar ist oder Kombinationen davon.
  • In einigen Ausführungsbeispielen können ein oder mehrere der Komponenten, die in 4 gezeigt sind, als Chip oder Chipsatz ausgebildet sei. In anderen Worten kann das Relaisgerät 150 ein oder mehrere physikalische Geräte (z. B. Chips) aufweisen, die Materialien, Komponenten und/oder Drähte auf einer strukturellen Baugruppe (z. B. einer Sockelleiste) aufweisen. Die strukturelle Baugruppe kann Körperkraft, Platzeinsparung und/oder Einschränkung elektrischer Interaktion der Komponenten, der auf ihr befindlichen Schaltung, bereitstellen. In dieser Hinsicht können der Prozessor 410, der Speicher 412, die Kommunikationsschnittstellte 414 und/oder die Push-Übertragungs-Schaltung 416 als Chip und/oder Chipsatz ausgebildet sein. Das Relaisgerät 150 kann daher in einigen Ausführungsbeispielen dazu konfiguriert sein, Ausgestaltungen der vorliegenden Erfindung auf einem einzelnen Chip oder als ein einzelnes Chipsystem zu realisieren. Als weiteres Beispiel kann das Relaisgerät 150 in einigen Ausführungsbeispielen Komponenten aufweisen, die dazu konfiguriert sind, Ausgestaltungen der vorliegenden Erfindung auf einem einzelnen Chip oder auf einem einzelnen „Chipsystem” zu realisieren. Somit kann in einigen Fällen ein Chip oder ein Chipsatz Komponenten zur Durchführung einer oder mehrerer Operationen zur Bereitstellung der hier beschriebenen Funktionalität darstellen.
  • Der Prozessor 410 kann beispielsweise aus verschiedenen Komponenten ausgebildet sein, umfassend einen oder mehreren Mikroprozessoren, einen oder mehreren Prozessoren, einen oder mehreren Coprozessoren, einen oder mehreren Multikernprozessoren, einen oder mehreren Controllern, Verarbeitungsschaltungen, einen oder mehreren Computern, verschiedenen anderen Verarbeitungselementen, umfassend integrierte Schaltungen oder einige Kombinationen davon. Demzufolge, auch wenn in 4 ein einzelner Prozessor gezeigt ist, kann der Prozessor 410 in einigen Ausführungsformen eine Mehrzahl von Prozessoren umfassen. Die Mehrzahl von Prozessoren kann in einer operativen Kommunikation miteinander stehen oder kann zusammen ausgebildet sein, um eine oder mehrere Funktionalitäten des hier beschriebenen Relaisgeräts 150 auszuführen. Die Mehrzahl von Prozessoren kann auf einem Single-Computergerät ausgebildet sein oder über eine Mehrzahl von Computergeräten aufgeteilt sein, die gemeinsam dazu ausgebildet sind, als Relaisgerät 150 zu funktionieren. In einigen Ausführungsbeispielen kann der Prozessor 410 dazu konfiguriert sein, Befehle auszuführen, die in dem Speicher 412 gespeichert oder auf andere Weise dem Prozessor 410 zugänglich sind. Diese Befehle können, wenn sie durch den Prozessor 410 ausgeführt werden, das Relaisgerät 150 dazu veranlassen, eine oder mehrere der hierin beschriebenen Funktionalitäten des Relaisgeräts 150 auszuführen. Von daher, unabhängig davon, ob durch Hardware-Methoden oder Software-Methoden oder durch eine Kombination davon gestaltet, kann der Prozessor 410 eine Einheit aufweisen, der es möglich ist, Operationen entsprechend der Ausführungsform der vorliegenden Erfindung auszuführen, wenn diese entsprechend konfiguriert sind. Somit, wenn der Prozessor 410 beispielsweise als ein Ausführer von solchen Befehlen ausgebildet ist, die in dem Speicher 412 gespeichert sind, können diese Befehle den Prozessor 410 speziell konfigurieren, um einen oder mehrere hierin beschriebene Algorithmen oder Operationen auszuführen.
  • Der Speicher 412 kann beispielsweise flüchtige Speicher, nichtflüchtige Speicher oder Kombinationen davon umfassen. In dieser Hinsicht kann der Speicher 412 einen oder mehrere dingliche und oder nicht transistorische computer-lesbare Speichermedien umfassen, die flüchtige Speicher und/oder nicht flüchtige Speicher beinhalten. Auch wenn in 4 als einzelner Speicher gezeigt, so kann der Speicher 412 eine Vielzahl von Speichern umfassen. Die Vielzahl von Speichern kann als einzelnes Computergerät ausgebildet sein oder kann über eine Vielzahl von Computergeräten verteilt sein, die dazu ausgebildet sind, zusammen als Relaisgerät 150 zu funktionieren. In verschiedenen Ausführungsbeispielen kann der Speicher 412 eine Harddisk, einen Schreib-Lese-Speicher, einen Puffer-Speicher, einen Flash-Speicher, einen Compact Disk Lese-Speicher (CD-ROM), eine digitale Vielfältigkeitsscheibe Lese-Speicher (DVD-ROM), eine optische Scheibe, eine Schaltung die ausgebildet ist, um Informationen zu speichern oder eine Kombination davon, umfassen. Der Speicher 412 kann dazu ausgebildet sein, Informationen, Daten, Anwendungen, Befehle oder ähnliches zu speichern, um dem Relaisgerät 150 zu ermöglichen, verschiedene Funktionen in Übereinstimmung mit verschiedenen Ausführungsbeispielen auszuführen. Beispielsweise ist der Speicher 412 in einigen Ausführungsbeispielen dazu ausgebildet, Eingangsdaten zur Steuerung des Prozessors 410 zwischen zu speichern. Zusätzlich oder alternativ dazu kann der Speicher 412 dazu ausgebildet sein, Programmbefehle zu speichern, die durch den Prozessor 410 ausgeführt werden. Der Speicher 412 kann Informationen in Form von statischen und/oder dynamischen Informationen speichern. Diese gespeicherten Informationen können gespeichert und oder durch die Push-Übertragungs-Schaltung 416 genutzt werden, während diese ihre Funktionalitäten ausführt.
  • Die Kommunikationsschnittstelle 414 kann als jegliches Gerät oder Komponente ausgeführt sein, das als Schaltung, Hardware, Software, umfassend computer-lesbare Programmbefehle, die auf einem computer-lesbaren Medium (bspw. dem Speicher 412) gespeichert und durch ein Ausführungsgerät (z. B. dem Prozessor 410) ausführbar sind, ausgebildet ist oder als eine Kombination davon, die dazu ausgebildet ist, Daten von einem anderen Computergerät zu empfangen und/oder Daten zu einem anderen Computergerät zu übermitteln. In einem Ausführungsbeispiel ist die Kommunikationsschnittstelle 414 zumindest teilweise als Prozessor 410 ausgeführt oder auf andere Weise durch den Prozessor 210 geregelt. In dieser Hinsicht kann die Kommunikationsschnittstelle 414 in Kommunikation mit dem Prozessor 410 stehen, beispielsweise über einen Bus. Die Kommunikationsschnittstelle 414 kann beispielsweise eine Netzwerkkarte (verkabelt oder kabellos), eine Antenne, einen Transmitter, einen Empfänger und/oder Unterstützungshardware- oder software zur Ermöglichung der Kommunikation mit einem oder mehreren Remote-Computern, umfassen. Die Kommunikationsschnittstelle 414 kann dazu konfiguriert sein, über jegliche Protokolle, die zur Kommunikation zwischen Computergeräten genutzt werden können, Daten zu empfangen und/oder zu übermitteln. In dieser Hinsicht kann die Kommunikationsschnittstelle 414 dazu konfiguriert sein, unter Nutzung eines Protokolls, dass zur Übermittlung von Daten über ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, einige Kombinationen davon oder ähnliches, Daten zu Empfangen und/oder zu Senden, durch die das Relaisgerät 150 und ein oder mehrere Computergeräte oder Computerressourcen kommunizieren können. Beispielsweise kann die Kommunikationsschnittstelle 414 dazu ausgebildet sein, die Kommunikation zwischen dem Relaisgerät 150 und anderen Geräten, sowie dem Datenendgerät 102 oder dem Server 122, zu ermöglichen. Die Kommunikationsschnittstelle 414 kann zusätzlich mit dem Speicher 412 und/oder der Push-Übertragungs-Schaltung 416 in Kommunikation stehen, beispielsweise über einen Bus.
  • Die Push-Übertragungs-Schaltung 416 kann durch verschiedene Komponenten ausgebildet sein, so wie Schaltungen, Hardware, ein Computer-Programm-Produkt, das computer-lesbare Programmbefehle, die auf einem computer-lesbaren Medium (z. B. dem Speicher 412) gespeichert sind und durch ein Ausführunggerät (z. B. dem Prozessor 410) ausgeführt werden oder einige Kombinationen davon und in einigen Ausführungsformen ist die Push-Übertragungs-Schaltung 416 als Prozessor 410 ausgebildet oder auf andere Weise durch den Prozessor 410 geregelt. In Ausführungsformen, in denen die Push-Übertragungs-Schaltung 416 separat von dem Prozessor 410 ausgebildet ist, kann die Push-Übertragungs-Schaltung 416 in Kommunikation mit dem Prozessor 410 stehen. Die Push-Übertragungs-Schaltung 416 kann des Weiteren in Kommunikation mit einem oder mehreren der Speicher 412 und/oder der Kommunikationsschnittstelle 414 stehen, bspw. über einen Bus.
  • Entsprechend verschiedener Ausführungsformen kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, Informationen zwischen einer ersten Einheit bspw. einem Datenendgerät 102 und einer zweiten Einheit, bspw. einem Server 122 zu übermitteln. In dieser Hinsicht kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, Kommunikationen von einem Datenendgerät 102 zu empfangen, die für einen Server 122 bestimmt sind. Die Push-Übertragungs-Schaltung 416 kann die Übermittlung der empfangenen Kommunikationen an der Server 122 gewährleisten. Gleichermaßen kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, Kommunikationen von dem Server 122 zu empfangen, die für das Datenendgerät 102 bestimmt sind und die Kommunikationen an das Datenendgerät 102 zu senden.
  • In einigen Ausführungsformen kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, eine Handschlag-Anfrage von einem Datenendgerät 102 zu empfangen. Die Push-Übertragungs-Schaltung 416 kann dazu konfiguriert sein, die Anfrage über ein Java-Survlet zu empfangen, das auf dem Relaisgerät 150 läuft, das mit der Push-Übertragungs-Schaltung 416 verbunden ist. Die Push-Übertragungs-Schaltung 416 kann dazu konfiguriert sein, nach dem Empfangen der Handschlag-Anfrage einen eindeutigen Identifizierer zu generieren, um eine Sitzung zwischen dem Relaisgerät 150, das mit der Push-Übertragungs-Schaltung 416 verbunden ist, und dem Datenendgerät zu repräsentieren. Die Push-Übertragungs-Schaltung 416 kann die Übertragung einer Handschlag-Antwort an das Datenendgerät 102 gewährleisten. In einigen Ausführungsbeispielen kann die Handschlag-Antwort eine Angabe des eindeutigen Identifizierers aufweisen. Die Push-Übertragungs-Schaltung 416 kann des Weiteren dazu konfiguriert sein, die Übertragung des eindeutigen Identifizierers an einen oder mehrere Server 122 zusammen mit der Angabe des Relaisgeräts 150 und des Datenendgeräts 102, auf das sich der eindeutige Identifizierer bezieht, zu gewährleisten.
  • Entsprechend einiger Ausführungsbeispiele kann die Push-Übertragungs-Schaltung 416 des Weiteren dazu konfiguriert sein, eine HTTP keep-alive Verbindung mit dem Datenendgerät 102 herzustellen. Die HTTP keep-alive Verbindung kann entsprechend der verschiedenen in Bezug auf die Push-Zuhörer-Schaltung 216 beschriebenen Ausführungsformen aufgebaut werden und ausgebildet sein. In Ausführungsbeispielen kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, ein oder mehrere Push-Befehle und/oder Nachrichten von dem Server 122 zu empfangen. Der Push-Befehl kann eine Angabe des eindeutigen Identifizierers umfassen, der mit der keep-alive Verbindung korrespondiert, über die der Push-Befehl gesendet werden soll.
  • In verschiedenen Ausführungsformen kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, die Übertragung des Push-Befehls über die HTTP keep-alive Verbindung zu gewährleisten, die durch den eindeutigen Identifizierer angegeben ist, der mit dem Push-Befehl von dem Server 122 empfangen worden ist. In dieser Hinsicht kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, als Push-Verbindung zu operieren. In anderen Ausführungsformen kann die Push-Übertragungs-Schaltung 416 dazu konfiguriert sein, den Push-Befehl in eine Antwort auf eine existierende Lang-Abfrage-Anfrage des Datenendgeräts 102 einzubeziehen, wenn die keep-alive Verbindung dazu ausgebildet ist, als Push-Verbindungs-Emulator zu operieren.
  • Beispiele
  • Im Folgenden ist ein nicht-einschränkendes Ausführungsbeispiel angegeben, das nicht derart ausgelegt werden soll, dass es den Umfang und den Geist der Offenbarung in jeglicher Weise einschränkt. In diesem Beispiel meldet sich eine Angestellte in dem Desktop-in-einem-Browser netzbasierten Umgebungssystem ihrer Firma an. Beim Anmelden baut der Desktop-in-einem-Browser eine HTTP keep-alive Verbindung mit einem Relais oder einem Server in dem portalen Umgebungssystem auf. Die Angestellte startet verschiedene Dienste, die durch das portale Umgebungssystem über den Desktop-in-einem-Browser bereitgestellt werden. In einem Punkt empfängt der Desktop-in-einem-Browser eine Nachricht, die von dem Relais oder von dem Server über die keep-alive-Verbindung gepusht wurde und stellt diese Nachricht der Angestellten dar. Die Nachricht alarmiert die Angestellte, dass das portale Umgebungssystem alle Benutzer in fünf Minuten abmelden wird, um einen routinemäßigen Systemtest durchzuführen. Der Desktop-in-einem-Browser baut unverzüglich wieder die keep-alive Verbindung auf, nachdem die Nachricht von dem Relais oder dem Server empfangen worden ist. Ungefähr fünf Minuten später empfängt der Desktop in einem Browser einen von dem Relais oder Server gespushten Befehl zum Abmelden des Benutzers über die keep-alive Verbindung. Der Desktop in einem Browser führt sodann den Befehl aus und meldet die Angestellte von dem System ab.
  • 5 zeigt ein Flussdiagramm entsprechend eines beispielhaften Verfahrens zur Bereitstellung eines keep-alive Push-Agenten in einem netzbasierten portalen Umgebungssystem entsprechend eines Ausführungsbeispiels. In dieser Hinsicht zeigt 5 Operationen, die an einem Datenendgerät 102 ausgeführt werden können. Die in 5 gezeigten und durch 5 beschriebenen Operationen können z. B. durch, mit Hilfe von und/oder unter der Kontrolle des Prozessors 210, Speichers 212, der Kommunikationsschnittstelle 214, der Nutzerschnittstelle 214 oder der Push-Zuhörer-Schaltung 218 durchgeführt werden. Die Operation 500 kann das Verbinden mit einem netzbasierten portalen Umgebungssystem umfassen. Der Prozessor 210, der Speicher 212, die Kommunikationsschnittstelle 214, die Benutzerschnittstelle 216 oder die Push-Zuhörer-Schaltung 218 können bspw. eine Struktur zur Durchführung einer Operation 500 aufweisen. Die Operation 510 kann den Aufbau einer Hypertext Transfer Protokoll keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem umfassen. Der Prozessor 210, der Speicher 212, die Kommunikationsschnittstelle 214, die Benutzerschnittstelle 216 oder die Push-Zuhörer-Schaltung 218 können bspw. eine Struktur zur Durchführung von Operationen 510 umfassen. Die Operation 520 kann das Empfangen eines Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen. Der Prozessor 210, der Speicher 212, die Kommunikationsschnittstelle 214, die Benutzerschnittstelle 216 oder die Push-Zuhörer-Schaltung 218 können bspw. eine Struktur zur Durchführung der Operation 520 umfassen. Die Operation 530 kann die Ausführung des Push-Befehls umfassen. Der Prozessor 210, der Speicher 212, die Kommunikationsschnittstelle 214, die Benutzerschnittstelle 216 oder die Push-Zuhörer-Schaltung 218 können bspw. eine Struktur zur Durchführung der Operation 530 umfassen.
  • 6 zeigt ein Flussdiagramm entsprechend eines weiteren Beispiels eines Verfahrens zum Bereitstellen eines keep-alive Push-Agenten in einer netzbasierten portalen Umgebung entsprechend einem Ausführungsbeispiel. In dieser Hinsicht zeigt 6 Operationen, die auf dem Server 122 ausgeführt werden können. Die in 6 gezeigten und in 6 beschriebenen Operationen können bspw. durch, mit der Hilfe von und/oder unter der Kontrolle von einem oder mehreren Prozessoren 310, Speicher 312, Kommunikationsschnittstellen 314 oder Push-Anfrage-Schaltungen 316 ausgeführt werden. Die Operation 600 kann das Empfangen einer Angabe eines eindeutigen Identifizierers umfassen, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verbunden ist. Die Hypertext Transfer Protokoll keep-alive Verbindung kann zwischen einer Übertragungseinheit und einer Empfangseinheit bestehen. Der Prozessor 310, der Speicher 312, die Kommunikationsschnittstelle 314 oder die Push-Anfrage-Schaltung 316 können bspw. eine Struktur zur Durchführung der Operation 600 aufweisen. Die Operation 610 kann die Generierung eines Push-Befehls umfassen, der an die Empfangseinheit gerichtet ist. Der Push-Befehl kann eine Angabe des eindeutigen Identifizierers umfassen. Der Prozessor 310, der Speicher 312, die Kommunikationsschnittstelle 314 oder die Push-Anfrage-Schaltung 316 können bspw. eine Struktur zur Durchführung der Operation 610 aufweisen. Die Operation 620 kann die Gewährleistung der Übertragung des Push-Befehls an die Übertragungseinheit umfassen. Der Prozessor 310, der Speicher 312, die Kommunikationsschnittstelle 314 oder die Push-Anfrage-Schaltung 316 können bspw. eine Struktur zur Durchführung der Operation 620 umfassen.
  • 7 zeigt ein Flussdiagramm eines weiteren Beispiels eines Verfahrens zur Bereitstellung eines keep-alive Push-Agenten in einer netzbasierten portalen Umgebung entsprechend einem Ausführungsbeispiel. In dieser Hinsicht zeigt 7 Operationen, die an einem Relaisgerät 150 ausgeführt werden können. Die in 7 gezeigten und durch 7 beschriebenen Operationen können bspw. durch, mit Hilfe von und/oder unter der Kontrolle von ein oder mehreren der Prozessoren 410, Speicher 412, Kommunikationsschnittstellen 414 oder Push-Übertragungs-Schaltungen 416 ausgeführt werden. Die Operation 700 kann die Generierung eines eindeutigen Identifizierers umfassen, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Jeder Eintrag kann ein oder mehrere mit dem Eintrag verbundene Anforderungen aufweisen. Der Prozessor 410, der Speicher 412, die Kommunikationsschnittstelle 414 oder die Push-Übertragungs-Schaltung 416 können bspw. eine Struktur zur Durchführung der Operation 700 aufweisen. Die Operation 710 kann die Gewährleistung der Übertragung einer oder mehrerer Bericht-Nachrichten umfassen, die den eindeutigen Identifizierer aufweisen. Der Prozessor 410, der Speicher 412, die Kommunikationsschnittstelle 414 oder die Push-Übertragungs-Schaltung 416 kann bspw. eine Struktur zur Durchführung der Operation 710 aufweisen. Die Operation 720 kann das Empfangen eines Push-Befehls umfassen, der eine Angabe eines eindeutigen Identifizierers aufweist. Der Prozessor 410, der Speicher 412, die Kommunikationsschnittstelle 414 oder die Push-Übertragungs-Schaltung 416 kann bspw. eine Struktur zur Durchführung der Operation 720 aufweisen. Die Operation 730 kann die Gewährleistung der Übertragung des Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen. Der Prozessor 410, der Speicher 412, die Kommunikationsschnittstelle 414 oder die Push-Übertragungs-Schaltung 416 können bspw. Strukturen zur Durchführung der Operation 730 aufweisen.
  • Die 57 zeigen jeweils ein Flussdiagram eines Systems, Verfahrens und Computerprogrammprodukts entsprechend Ausführungsbeispielen der Erfindung. Es sei angemerkt, dass jeder Block des Flussdiagrams und Kombinationen der Blöcke in dem Flussdiagram durch verschiedene Mitteln implementiert werden können, wie Hardware und/oder Computerprogrammprodukte, die ein oder mehrere computer-lesbare Medien (im Gegensatz zu einem computer-lesbaren Übertragungsmedium, das ein sich verbreitendes Signal beschreibt) aufweisen, auf denen ein oder mehrere Computer-Programm-Code-Befehle, Programmbefehle oder ausführbare computer-lesbare Programm-Code-Befehle gespeichert sind. Beispielsweise können ein oder mehrere hierin beschriebene Prozeduren durch Computerprogrammbefehle eines Computer-Programm-Produkts ausgebildet sein. In dieser Hinsicht kann das Computer-Programm-Produkt, das die hier beschriebenen Prozeduren bildet, auf einem oder mehreren Speichergeräten (z. B. Speichern 212, Speichern 312 oder Speichern 412) eines Datenendgeräts, Servers, Relaisgeräts oder anderem Computergerät (z. B. dem Datenendgerät 102) gespeichert sein und durch einen Prozessor (d. h. den Prozessor 210, Prozessor 310 oder Prozessor 410) in dem Computergerät ausgeführt werden. In einigen Ausführungsformen können die Computerprogrammbefehle, die das Computer-Programm-Produkt aufweist, das die voranstehend beschriebenen Prozeduren darstellt, durch Speichergeräte einer Vielzahl von Computergeräten gespeichert sein. Es wird geschätzt, wenn ein solches Computer-Programm-Produkte auf einen Computer oder eine andere programmbierbare Vorrichtung geladen wird, um eine Maschine zu erzeugen, so dass das Computer-Programm-Produkt inklusive der Instruktionen, die auf dem Computer oder der programmbierbaren Vorrichtung ausgeführt werden, Mittel generieren, um die in den Blöcken der Flussbilder gezeigten Funktionen zu implementieren generieren.
  • Des Weiteren, kann das Computer-Programm-Produkt ein oder mehrere computer-lesbare Speicher aufweisen, auf denen das Computer-Programm-Produkt gespeichert ist, so dass der eine oder die mehreren computerlesbaren Speicher den Computer oder die programmbierbare Vorrichtung anleitet, in einer bestimmten Weise zu funktionieren, so dass das Computer-Programm-Produkt einen Herstellungsartikel aufweist, der die in den Blöcken des Flussdiagrams dargestellten Funktionen implementiert. Die Computerprogrammbefehle eines oder mehrerer Computer-Programm-Produkt können auch auf einen Computer oder eine andere programmbierbare Vorrichtung geladen werden, um auf den Computer oder der programmbierbare Vorrichtung eine Serie von Operationen auszuführen, um einen computer-implementierten Prozess hervorzurufen, so dass die Befehle, die auf dem Computer oder der programmbierbaren Vorrichtung ausgeführt werden, Operationen bereitstellen, um die in den Blöcken des Flussdiagrams gezeigten Funktionen zu implementieren. Die Abfrage, das Laden und die Ausführung der Programm-Code-Befehle kann nacheinander durchgeführt werden, so dass jeweils ein Befehl abgefragt, geladen und ausgeführt wird. In einigen Ausführungsbeispielen kann das Abfragen, Laden und/oder Ausführen parallel durchgeführt werden, so dass mehrere Befehle zusammen abgefragt, geladen und/oder ausgeführt werden.
  • Dementsprechend unterstützt die Ausführung von Befehlen, die mit den Operationen des Flussdiagrams durch einen Prozessor verbunden sind oder die Speicherung von Instruktionen, die mit den Blöcken oder Operationen des Flussdiagrams in einem computer-lesbaren Speichermedium verbunden sind, Kombinationen von Operationen zum Durchführen der spezifischen Funktionen. Es ist des Weiteren klar, dass ein oder mehrere Operationen des Flussdiagrams und Kombinationen von Blöcken oder Operationen in dem Flussdiagram durch ein für einen besonderen Zweck dienendes hardwarebasiertes Computersystem implementiert werden können und/oder durch Prozessoren implementiert werden können, die die spezifische Funktionen oder Kombinationen von Hardware und Programm-Code-Befehlen für ein besonderen Zweck ausführen.
  • Die voranstehend beschriebenen Funktionen können in vielfältiger Weise ausgeführt werden. Beispielsweise können zum Ausführen jeder der voranstehend genannten Funktionen geeignete Mittel verwendet werden, um als Ausführungsformen der Erfindung verwendet zu werden. In einer Ausführungsform kann ein geeignet konfigurierter Prozessor (z. B. der Prozessor 210, Prozessor 310 oder Prozessor 410) alle oder ein Teil der Elemente der Erfindung bereitstellen. In einer anderen Ausführungsform können alle Elemente oder ein Teil der Elemente dieser Erfindung durch ein Computer-Programm-Produkt ausgebildet sein oder durch ein Computer-Programm-Produkt gesteuert sein. Das zur Ausführung der Verfahren der Ausführungsbeispiele der Erfindung dienende Computer-Programm-Produkt umfasst ein computer-lesbares Speichermedium, bspw. das nicht flüchtige Speichermedium (z. B. der Speicher 212, Speicher 312 und/oder Speicher 412) und computer-lesbare Programm-Code-Teile, bspw. eine Serie von Computerbefehlen, die in dem computer-lesbaren Speichermedium enthalten sind.
  • In einem Ausführungsbeispiel ist ein Verfahren angegeben, das das Verbinden mit einem netzbasierten portalen Umgebungssystem umfasst. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren den Aufbau einer Hypertext Transfer Protocol keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem System umfassen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren das Empfangen eines Push-Befehls über die Hypertext Transfer Protocol keep-alive Verbindung umfassen. Das Verfahren kann des Weiteren die Ausführung des Push-Befehls umfassen.
  • Das beispielhafte Verfahren kann des Weiteren die Gewährleistung der Übertragung einer Handschlag-Anfrage zur Anzeige einer Absicht die Hypertext Transfer Protocol keep-alive Verbindung aufzubauen, umfassen. Zusätzlich kann das beispielhafte Verfahren das Empfangen einer Handschlag-Antwort umfassen. Die Handschlag-Antwort kann die Anzeige eines eindeutigen Identifizierers umfassen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren die Verknüfpung des eindeutigen Identifizierers mit der Hypertext Transfer Protocol keep-alive Verbindung umfassen. Der Aufbau der Hypertext Transfer Protocol keep-alive Verbindung des Ausführungsbeispiels kann des Weiteren die Gewährleistung der Übertragung einer Vielzahl von Lang-Abfrage-Anfragen in Folge umfassen. Zusätzlich kann das Empfangen des Push-Befehls des Ausführungsbeispiels des Weiteren das Empfangen eines Push-Befehls in Antwort auf eine der Viehlzahl von Lang-Abfrage-Anfragen umfassen. Der Push-Befehl kann ein oder mehrere Attribute umfassen, die sich auf den Push-Befehl beziehen.
  • In einem weiteren Ausführungsbeispiel ist eine Vorrichtung vorgesehen, die zumindest einen Prozessor und zumindest einen Speicher, auf dem ein Computer-Programm-Code gespeichert ist, bereitstellt. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einem Prozessor dazu konfiguriert sein, dass sich die Vorrichtung dieses Ausführungsbeispiels zumindest mit einem netzbasierten portalen Umgebungssystem verbindet. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dazu konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels eine Hypertext Transfer Protocol keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem aufbaut. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor derart konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels zusätzlich einen Push-Befehl über die Hypertext Transfer Protocol keep-alive Verbindung empfängt. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor derart konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels des Weiteren den Push-Befehl ausführt.
  • Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor derart konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels des Weiteren die Übermittlung einer Handschlag-Anfrage, zur Anzeige einer Absicht die Hypertext Transfer Protocol keep-alive Verbindung aufzubauen, gewährleistet. Des Weiteren kann der zumindest eine Speicher und der gespeicherte Computerprogrammcode mit dem zumindest einen Prozessor derart konfiguriert sein, das die Vorrichtung dieses Ausführungsbeispiels die Handschlag-Antwort empfängt. Die Handschlag-Antwort kann die Anzeige eines eindeutigen Identifizierers umfassen. Der zumindest eine Speicher und der gespeicherte Computerprogrammcode können mit dem zumindest einen Prozessor derart konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels den eindeutigen Identifizierer mit der Hypertext Transfer Protocol keep-alive Verbindung verbindet. Der Aufbau der Hypertext Transfer Protocol keep-alive Verbindung dieses Ausführungsbeispiels kann des Weiteren die Gewährleistung der Übertragung einer Vielzahl von Lang-Abfrage-Anfragen in Folge umfassen. Zusätzlich kann das Empfangen des Push-Befehls dieses Ausführungsbeispiels das Empfangen eines Push-Befehls als Antwort auf die Vielzahl von Lang-Abfrage-Anfragen umfassen. Der Push-Befehl kann ein oder mehrere Attribute umfassen, die sich auf den Push-Befehl beziehen.
  • In einem weiteren Ausführungsbeispiel ist ein Computer-Programm-Produkt vorgesehen. Das Computer-Programm-Produkt dieses Ausführungsbeispiels kann zumindest ein computer-lesbares Speichermedium umfassen, auf dem computer-lesbare Programmbefehle gespeichert sind. Die Programmbefehle dieses Ausführungsbeispiels können Programmbefehle umfassen, die dazu ausgebildet sind, mit einem netzbasierten portalen Umgebungssystem zu verbinden. Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu ausgebildet sind, eine Hypertext Transfer Protocol keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem herzustellen. Die Programmbefehle dieses Ausführungsbeispiels können zusätzlich Programmbefehle umfassen, die dazu ausgebildet sind, einen Push-Befehl über die Hypertext Transfer Protocol keep-alive Verbindung zu empfangen. Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu ausgebildet sind, die Push-Befehle auszuführen.
  • Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu ausgebildet sind, die Übertragung einer Handschlag-Anfrage zur Anzeige einer Absicht, einer Hypertext Transfer Protocol keep-alive Verbindung herzustellen, zu gewährleisten. Zusätzlich können die Programmbefehle dieses Ausführungsbeispiels Programmbefehle umfassen, die dazu ausgebildet sind, eine Handschlag-Antwort zu empfangen. Die Handschlag-Antwort kann eine Anzeige eines eindeutigen Identifizierers umfassen. Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu ausgebildet sind, den eindeutigen Identifizierer mit der Hypertext Transfer Protocol keep-alive Verbindung zu verbinden. Der Aufbau der Hypertext Transfer Protocol keep-alive Verbindung des Ausführungsbeispiels kann des Weiteren die Übertragung einer Vielzahl von Lang-Abfrage-Anfragen in Folge gewährleisten. Zusätzlich kann das Empfangen des Push-Befehls des Ausführungsbeispiels das Empfangen eines Push-Befehls in Antwort auf einen der Vielzahl der Lang-Abfrage-Anfragen umfassen. Der Push-Befehl kann ein oder mehrere Attribute aufweisen, die dem Push-Befehl zugordnet sind.
  • In einem weiteren Ausführungsbeispiel ist eine Vorrichtung angeben, die Mittel zur Verbindung mit einem netzbasierten portalen Umgebungssystem aufweist. Die Vorrichtung dieses Ausführungsbeispiels kann des Weiteren Mittel zum Aufbau einer Hypertext Transfer Protocol keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem aufweisen. Die Vorrichtung dieses Ausführungsbeispiels kann zusätzlich Mittel zum Empfangen eines Push-Befehls über die Hypertext Transfer Protocol keep-alive Verbindung aufweisen. Die Vorrichtung dieses Ausführungsbeispiels kann zusätzlich Mittel zur Ausführung des Push-Befehls aufweisen.
  • Die Vorrichtung dieses Ausführungsbeispiel kann zusätzlich die Übertragung einer Handschlag-Anfrage zur Anzeige einer Absicht, die Hypertext Transfer Protocol keep-alive Verbindung aufzubauen, gewährleisten. Zusätzlich kann die Vorrichtung dieses Ausführungsbeispiels das Empfangen einer Handschlag-Antwort umfassen. Die Handschlag-Antwort kann die Anzeige eines eindeutigen Identifizierers umfassen. Die Vorrichtung dieses Ausführungsbeispiels kann des Weiteren die Verknüpfung des eindeutigen Identifizieres mit der Hypertext Transfer Protocol keep-alive Verbindung umfassen. Der Aufbau der Hypertext Transfer Protocol keep-alive Verbindung dieses Ausführungsbeispiels kann des Weiteren die Übertragung einer Vielzahl von Lang-Abfrage-Anfragen in Folge umfassen. Zusätzlich kann das Empfangen des Push-Befehls dieses Ausführungsbeispiels des Weiteren das Empfangen eines Push-Befehls als Antwort auf eine der Vielzahl der Lang-Abfrage-Anfragen umfassen. Der Push-Befehl kann ein oder mehrere Attribute umfassen, die dem Push-Befehl zugeordnet sind.
  • In einem Ausführungsbeispiel ist ein Verfahren angeben, das das Empfangen der Anzeige eines eindeutigen Identifizierers umfasst, der mit einer Hypertext Transfer Protocol keep-alive Verbindung verknüpft ist. Die Hypertext Transfer Protocol keep-alive Verbindung kann zwischen einer Übertragungseinheit und einer Empfangseinheit bestehen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren das Generieren eines Push-Befehls umfassen, der an die Empfangseinheit gerichtet ist. Der Push-Befehl kann die Anzeige eines eindeutigen Identifizierers umfassen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren die Übertragung des Push-Befehls an die Übertragungseinheit gewährleisten.
  • In einem weiteren Ausführungsbeispiel umfasst eine Vorrichtung zumindest einen Prozessor und zumindest einen Speicher, auf dem ein Computer-Programm-Code gespeichert ist. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels zumindest eine Angabe eines eindeutigen Identifizierers empfängt, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Die Hypertext Transfer Protokoll keep-alive Verbindung kann zwischen einer Übertragungseinheit und einer Empfangseinheit bestehen. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels des Weiteren einen an die Empfangseinheit gerichteten Push-Befehl generiert. Der Push-Befehl kann die Angabe des eindeutigen Identifizierers umfassen. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels zusätzlich die Übertragung des Push-Befehls an die Übertragungseinheit gewährleistet.
  • In einem weiteren Ausführungsbeispiel ist ein Computer-Programm-Produkt bereit gestellt. Das Computer-Programm-Produkt dieses Ausführungsbeispiels kann zumindest ein computer-lesbares Speichermedium umfassen, auf dem computer-lesbare Befehle gespeichert sind. Die Programmbefehle dieses Ausführungsbeispiels können Programmbefehle umfassen, die dazu konfiguriert sind, die Angabe eines eindeutigen Identifizierers zu empfangen, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Die Hypertext Transfer Protokoll keep-alive Verbindung kann zwischen einer Übertragungseinheit und einer Empfangseinheit bestehen. Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu konfiguriert sind, einen an die Empfangseinheit gerichteten Push-Befehl zu generieren. Der Push-Befehl kann die Angabe eines eindeutigen Identifizierers umfassen. Die Programmbefehle dieses Ausführungsbeispiels können zusätzlich Programmbefehle umfassen, die dazu konfiguriert sind, die Übertragung des Push-Befehls an die Übertragungseinheit zu gewährleisten.
  • In einem weiteren Ausführungsbeispiel ist eine Vorrichtung angegeben, die Mittel zum Empfangen einer Angabe eines eindeutigen Identifizierers umfasst, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Die Hypertext Transfer Protokoll keep-alive Verbindung kann zwischen einer Übertragungseinheit und einer Empfangseinheit bestehen. Die Vorrichtung dieses Ausführungsbeispiels kann des Weiteren Mittel zur Erzeugung eines an die Empfangseinheit gerichteten Push-Befehls umfassen. Der Push-Befehl kann die Angabe des eindeutigen Identifizierers umfassen. Die Vorrichtung dieses Ausführungsbeispiels kann zusätzlich Mittel umfassen, die die Übertragung des Push-Befehls an die Übertragungseinheit gewährleisten.
  • In einem Ausführungsbeispiel ist ein Verfahren angegeben, das die Erzeugung eines eindeutigen Identifizierers umfassen kann, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren die Gewährleistung der Übertragung einer oder mehrere Bericht-Nachrichten gewährleisten, die den eindeutigen Identifizierer aufweisen. Der Push-Befehl kann die Angabe des eindeutigen Identifizierers umfassen. Das Verfahren dieses Ausführungsbeispiels kann des Weiteren das Empfangen eines Push-Befehls umfassen, der eine Angabe des eindeutigen Identifizierers umfasst. Zusätzlich kann das Verfahren dieses Ausführungsbeispiels die Gewährleistung der Übertragung des Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen.
  • In einem weiteren Ausführungsbeispiel ist eine Vorrichtung angegeben, die zumindest einen Prozessor und zumindest einen Speicher umfasst, der ein gespeichertes Computer-Programm-Code aufweist. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels zumindest einen eindeutigen Identifizierer generiert, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels des Weiteren die Übertragung zumindest einer oder mehrerer Bericht-Nachrichten umfasst, die den eindeutigen Identifizierer aufweisen. Der Push-Befehl kann die Angabe des eindeutigen Identifizierers umfassen. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels zusätzlich einen Push-Befehl empfängt, der die Angabe des eindeutigen Identifizierers umfasst. Der zumindest eine Speicher und der gespeicherte Computer-Programm-Code können mit dem zumindest einen Prozessor dahingehend konfiguriert sein, dass die Vorrichtung dieses Ausführungsbeispiels des Weiteren die Übertragung des Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung gewährleistet.
  • In einem weiteren Ausführungsbeispiel ist ein Computer-Programm-Produkt angegeben. Das Computer-Programm-Produkt dieses Ausführungsbeispiels kann zumindest ein computer-lesbares Speichermedium umfassen, auf dem computer-lesbare Programmbefehle gespeichert sind. Die Programmbefehle dieses Ausführungsbeispiels können Programmbefehle umfassen, die dazu konfiguriert sind, einen eindeutigen Identifizierer zu generieren, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu konfiguriert sind, die Übertragung einer oder mehrerer Bericht-Nachrichten zu gewährleisten, die den eindeutigen Identifizierer umfassen. Der Push-Befehl kann die Angabe des eindeutigen Identifizierers umfassen. Die Programmbefehle dieses Ausführungsbeispiels können zusätzlich Programmbefehle umfassen, die dazu konfiguriert sind, einen Push-Befehl zu empfangen, der die Angabe eines eindeutigen Identifizierers aufweist. Die Programmbefehle dieses Ausführungsbeispiels können des Weiteren Programmbefehle umfassen, die dazu konfiguriert sind, die Übertragung des Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung zu gewährleisten.
  • In einem weiteren Ausführungsbeispiel ist eine Vorrichtung angegeben, die Mittel zur Erzeugung eines eindeutigen Identifizierers aufweisen kann, der mit einer Hypertext Transfer Protokoll keep-alive Verbindung verknüpft ist. Die Vorrichtung dieses Ausführungsbeispiels kann des Weiteren Mittel zur Gewährleistung der Übertragung einer oder mehrerer Bericht-Nachrichten umfassen, die den eindeutigen Identifizierer aufweisen. Die Vorrichtung dieses Ausführungsbeispiels kann zusätzlich Mittel zum Empfangen eines Push-Befehls aufweisen, der die Angabe eines eindeutigen Identifizierers umfasst. Zusätzlich kann die Vorrichtung dieses Ausführungsbeispiels Mittel zur Gewährleistung der Übertragung des Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung umfassen.
  • Einem Fachmann werden viele Modifikationen und andere Ausführungsbeispiele der hier gezeigten Erfindung in den Sinn kommen, die die Vorteile der in den vorangegangenen Beschreibungen und dazugehörigen Zeichnungen gezeigten Lehre betreffen. Daher ist zu verstehen, dass die Erfindungen nicht auf die spezifischen offenbarten Ausführungsen beschränkt sind und dass Modifikationen und andere Ausführungsformen dazu bestimmt sind, in den Schutzbereich der beigefügten Ansprüche zu fallen. Des Weiteren, auch wenn die vorangegangenen Beschreibungen und die dazugehörigen Ausführungsbeispiele in dem Kontext von bestimmten beispielhaften Kombinationen von Elementen und/oder Funktionen beschrieben sind, ist gewünscht, dass verschiedene Kombinationen von Elementen und/oder Funktionen durch verschiedene alternative Ausführungsformen angegeben werden können, ohne aus dem Schutzbereit der angefügten Ansprüche zu fallen. In dieser Hinsicht werden bspw. unterschiedliche Kombinationen von Elementen und/oder Funktionen als die, die hier voranstehend explizit beschrieben wurden, als durch einige der beigefügten Ansprüche dargelegt betrachtet. Auch wenn hierbei spezielle Begriffe verwendet werden, werden diese lediglich in einem generischen und beschreibenden Sinn und nicht als beschränkend verwendet.

Claims (24)

  1. Verfahren zur Kommunikation mit einem netzbasierten portalen Umgebungssystem, umfassend: – Aufbauen eine Hypertext Transfer Protokoll keep-alive Verbindung mit einem netzbasierten portalen Umgebungssystem; – Empfangen eines Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung; und – Ausführen des Push-Befehls.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Aufbaus der Hypertext Transfer Protokoll keep-alive Verbindung des Weiteren die Übermittlung einer Vielzahl von Lang-Abfrage-Anfragen in Folge umfasst.
  3. Verfahren nach Anspruch 2, wobei der Schritt des Empfangens des Push-Befehls über die Hypertext Transfer Protokoll keep-alive Verbindung des Weiteren das Empfangen eines Push-Befehls als Antwort auf einen der Vielzahl der Lang-Abfrage-Anfragen umfasst.
  4. Verfahren nach Anspruch 1, wobei des Weiteren die Übertragung einer Handschlag-Anfrage zur Anzeige einer Absicht, die Hypertext Transfer Protokoll keep-alive Verbindung aufzubauen, vorgesehen ist.
  5. Verfahren nach Anspruch 4, wobei des Weiteren der Empfang eine Handschlag-Antwort vorgesehen ist.
  6. Verfahren nach Anspruch 5, wobei das Empfangen der Handschlag-Antwort des Weiteren das Empfangen eines eindeutigen Identifizierers und das Verknüpfen des eindeutigen Identifizierers mit der Hypertext Transfer Protokoll keep-alive Verbindung umfasst.
  7. Verfahren nach Anspruch 1, wobei die Hypertext Transfer Protokoll keep-alive Verbindung zwischen einer Übertragungseinheit und einer Empfangseinheit besteht.
  8. Verfahren nach Anspruch 7, wobei die Empfangseinheit mit der Übertragungseinheit über ein Relaisgerät kommuniziert.
  9. Verfahren nach Anspruch 8, wobei die Empfangseinheit einen temporären Auszeit-Wert empfängt.
  10. Verfahren nach Anspruch 8, wobei die Empfangseinheit einen finalen Auszeit-Wert empfängt.
  11. Verfahren nach Anspruch 1, wobei der Schritt des Ausführens des Push-Befehls die Ausführung einer oder mehrerer der folgenden Aktionen umfasst: – Abmelden eines Benutzers von dem netzbasierten portalen Umgebungssystem, – Aussperren eines Benutzers von dem netzbasierten portalen Umgebungssystem, – Öffnen oder Schließen eines Browser-Fensters innerhalb oder außerhalb des portalen Umgebungssystems, – Aktualisieren eines Browser-Fensters innerhalb oder außerhalb des portalen Umgebungssystems, – Änderung der Größe eines Browser-Fensters innerhalb oder außerhalb des portalen Umgebungssystems, – Schließen einer Anwendung innerhalb des portalen Umgebungssystems, und – Schließen einer Anwendung außerhalb des portalen Umgebungssystems.
  12. Vorrichtung zur Kommunikation mit einem netzbasierten portalen Umgebungssystem, umfassend: – zumindest einen Prozessor; – zumindest einen Speicher, der einen Computer-Programm-Code speichert; und wobei der zumindest eine Speicher und der zumindest eine gespeicherte Computer-Programm-Code mit dem zumindest einen Prozessor dazu konfiguriert sind, – mit einem netzbasierten portalen Umgebungssystem zu verbinden, – eine Hypertext Transfer Protokoll keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem aufzubauen, – einen Push-Befehl über die Hypertext Transfer Protokoll keep-alive Verbindung zu empfangen, und – den Push-Befehl auszuführen.
  13. Vorrichtung nach Anspruch 12, wobei der zumindest eine Speicher und der zumindest eine gespeicherte Computer-Programm-Code mit dem zumindest einen Prozessor dazu konfiguriert sind, dass die Vorrichtung die Hypertext Transfer Protokoll keep-alive Verbindung aufbaut, indem die Vorrichtung die Übertragung einer Vielzahl von Lang-Abfrage-Anfragen in Folge gewährleistet.
  14. Vorrichtung nach Anspruch 13, wobei der zumindest eine Speicher und der zumindest eine gespeicherte Computer-Programm-Code mit dem zumindest einen Prozessor dazu konfiguriert sind, dass die Vorrichtung den Push-Befehl als Antwort auf einen der Vielzahl von Lang-Abfrage-Anfragen empfängt.
  15. Vorrichtung nach Anspruch 12, wobei der zumindest eine Speicher und der zumindest eine gespeicherte Computer-Programm-Code mit dem zumindest einen Prozessor dazu konfiguriert sind, dass die Vorrichtung die Übertragung einer Handschlag-Anfrage zur Anzeige einer Absicht, eine Hypertext Transfer Protokoll keep-alive Verbindung aufzubauen, gewährleistet.
  16. Vorrichtung nach Anspruch 15, wobei der zumindest eine Speicher und der zumindest eine gespeicherte Computer-Programm-Code mit dem zumindest einen Prozessor dazu konfiguriert sind, dass die Vorrichtung eine Handschlag-Antwort empfängt.
  17. Vorrichtung nach Anspruch 16, wobei der zumindest eine Speicher und der zumindest eine gespeicherte Computer-Programm-Code mit dem zumindest einen Prozessor dazu konfiguriert sind, dass die Vorrichtung eine Handschlag-Antwort empfängt, die die Angabe eines eindeutigen Identifizierers umfasst und den eindeutigen Identifizierer mit der Hypertext Transfer Protokoll keep-alive Verbindung verknüpft.
  18. Computer-Programm-Produkt für einen keep-alive Push-Agenten, umfassend: – zumindest ein computer-lesbares Medium, auf dem computer-lesbare Programmbefehle gespeichert sind; und – wobei die Programmbefehle solche Programmbefehle umfassen, die dazu konfiguriert sind, – mit einem netzbasierten portalen Umgebungssystem zu verbinden, – eine Hypertext Transfer Protokoll keep-alive Verbindung mit dem netzbasierten portalen Umgebungssystem aufzubauen, – einen Push-Befehl über die Hypertext Transfer Protokoll keep-alive Verbindung zu empfangen, und – den Push-Befehl auszuführen.
  19. Computer-Programm-Produkt nach Anspruch 18, wobei die Programmbefehle dazu konfiguriert sind, die Übertragung einer Vielzahl von Lang-Abfrage-Anfragen in Folge zu gewährleisten.
  20. Computer-Programm-Produkt nach Anspruch 19, wobei die Programmbefehle dazu konfiguriert sind, einen Push-Befehl als Antwort auf einen der Vielzahl von Lang-Abfrage-Anfragen zu empfangen.
  21. Computer-Programm-Produkt nach Anspruch 20, wobei der Push-Befehl ein oder mehrere Attribute umfasst, die sich auf den Push-Befehl beziehen.
  22. Computer-Programm-Produkt nach Anspruch 18, wobei die Programmbefehle des Weiteren Programmbefehle aufweisen, die dazu konfiguriert sind, die Übertragung einer Handschlag-Anfrage zur Anzeige einer Absicht, eine Hypertext Transfer Protokoll keep-alive Verbindung aufzubauen, zu gewährleisten.
  23. Computer-Programm-Produkt nach Anspruch 22, wobei die Programmbefehle solche Programmbefehle umfassen, die dazu konfiguriert sind, eine Handschlag-Antwort zu empfangen.
  24. Computer-Programm-Produkt nach Anspruch 23, wobei die Programmbefehle dazu konfiguriert sind, eine Handschlag-Antwort zu empfangen, die einen eindeutigen Identifizierer aufweist und den eindeutigen Identifizierer mit der Hypertext Transfer Protokoll keep-alive Verbindung verknüpft.
DE112012002774.4T 2011-07-01 2012-07-02 Verfahren und Vorrichtung für einen keep-alive Push-Agenten Pending DE112012002774T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161504009P 2011-07-01 2011-07-01
US61/504,009 2011-07-01
US13/540,131 2012-07-02
PCT/US2012/045283 WO2013006563A2 (en) 2011-07-01 2012-07-02 Method and apparatus for a keep- alive push agent
US13/540,131 US9553942B2 (en) 2011-07-01 2012-07-02 Method and apparatus for a keep-alive push agent

Publications (1)

Publication Number Publication Date
DE112012002774T5 true DE112012002774T5 (de) 2014-03-20

Family

ID=47391822

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002774.4T Pending DE112012002774T5 (de) 2011-07-01 2012-07-02 Verfahren und Vorrichtung für einen keep-alive Push-Agenten

Country Status (4)

Country Link
US (1) US9553942B2 (de)
DE (1) DE112012002774T5 (de)
GB (1) GB2506070B (de)
WO (1) WO2013006563A2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552056B1 (en) 2011-08-27 2017-01-24 Fellow Robots, Inc. Gesture enabled telepresence robot and system
CN104145466A (zh) * 2012-02-24 2014-11-12 诺基亚公司 用于动态服务器/客户端控制的连通性逻辑的方法和装置
US9191237B1 (en) * 2012-05-24 2015-11-17 Dan Barry, Inc. Wireless communication systems and methods
US9842099B2 (en) * 2012-11-29 2017-12-12 Business Objects Software Limited Asynchronous dashboard query prompting
US9703767B2 (en) 2012-11-29 2017-07-11 Business Objects Software Limited Spreadsheet cell dependency management
US20140201376A1 (en) * 2013-01-11 2014-07-17 Andre Godin Method and system for the handling of redundant long poll
US10158721B2 (en) 2013-07-31 2018-12-18 The Coca-Cola Company Facilitating individualized user interaction with an electronic device
KR20150032018A (ko) 2013-09-17 2015-03-25 삼성전자주식회사 전자 장치 및 전자 장치의 정보 전송 방법, 정보 전송 시스템
US10373116B2 (en) 2014-10-24 2019-08-06 Fellow, Inc. Intelligent inventory management and related systems and methods
US9796093B2 (en) 2014-10-24 2017-10-24 Fellow, Inc. Customer service robot and related systems and methods
US10311400B2 (en) 2014-10-24 2019-06-04 Fellow, Inc. Intelligent service robot and related systems and methods
EP3280339A1 (de) * 2015-04-07 2018-02-14 K2M, Inc. Wirbelsäulenstabilisierungsvorrichtung, system und verfahren zur verwendung
US11496579B2 (en) * 2016-01-19 2022-11-08 Comcast Cable Communications, Llc Connection manager
CN107454139B (zh) * 2017-06-27 2020-06-12 南京白下高新技术产业园区投资发展有限责任公司 一种实现持久化连接的方法、终端和计算机可读存储介质
US20190060647A1 (en) * 2017-08-31 2019-02-28 Medtronic, Inc. Sacral nerve stimulation
CN109005469B (zh) * 2018-07-03 2021-07-23 武汉斗鱼网络科技有限公司 一种消息格式的转换方法、装置、存储介质及安卓终端
CN108882006A (zh) * 2018-07-03 2018-11-23 武汉斗鱼网络科技有限公司 一种消息格式的转换方法、装置、存储介质及安卓终端
CN109343968B (zh) * 2018-08-02 2020-09-04 武汉斗鱼网络科技有限公司 一种获取数据的方法和相关装置
US10887312B2 (en) * 2018-09-26 2021-01-05 Hewlett Packard Enterprise Development Lp Secure communication between a service hosted on a private cloud and a service hosted on a public cloud
US10586082B1 (en) 2019-05-29 2020-03-10 Fellow, Inc. Advanced micro-location of RFID tags in spatial environments
CN112039993B (zh) * 2020-09-02 2022-10-18 中国银行股份有限公司 一种长连接地址处理方法和装置
AU2021432372A1 (en) * 2021-03-12 2023-08-24 Fujitsu Limited Relay control method, relay control program, relay control device, and information processing system
CN114168355B (zh) * 2021-10-29 2022-10-21 荣耀终端有限公司 一种应用保活方法及电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748446B2 (en) * 1996-11-29 2004-06-08 Canon Kabushiki Kaisha Communication method and apparatus with modification of routing path by intermediate relay apparatus
US6412009B1 (en) * 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US7035912B2 (en) * 2000-08-28 2006-04-25 Abaco.P.R., Inc. Method and apparatus allowing a limited client device to use the full resources of a networked server
US7644172B2 (en) * 2002-06-24 2010-01-05 Microsoft Corporation Communicating via a connection between a streaming server and a client without breaking the connection
JP4235506B2 (ja) * 2003-08-14 2009-03-11 株式会社エヌ・ティ・ティ・ドコモ 送信装置、中継装置およびプログラム
US20060075114A1 (en) * 2004-09-30 2006-04-06 Citrix Systems, Inc. In-line modification of protocol handshake by protocol aware proxy
US20060149845A1 (en) * 2004-12-30 2006-07-06 Xinnia Technology, Llc Managed quality of service for users and applications over shared networks
US7460556B2 (en) 2005-02-17 2008-12-02 International Business Machines Corporation Autonomic adjustment of connection keep-alives
WO2007026320A2 (en) * 2005-08-30 2007-03-08 Yoomba Ltd. Immediate communication system
US7827298B2 (en) * 2006-10-20 2010-11-02 Mixpo Portfolio Broadcasting, Inc. Peer-to-web media broadcasting and managing online publisher computers
US20080307037A1 (en) 2007-06-07 2008-12-11 Yahoo! Inc. Client Notification Mechanism Over HTTP
KR100966073B1 (ko) 2007-10-15 2010-06-28 한국전자통신연구원 단말 사용자 관리 장치 및 방법
WO2010042733A1 (en) 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over http
US7958247B2 (en) * 2008-10-14 2011-06-07 Hewlett-Packard Development Company, L.P. HTTP push to simulate server-initiated sessions
WO2011155945A1 (en) * 2010-06-11 2011-12-15 Hewlett-Packard Development Company, L.P. Http-based client-server communication system and method

Also Published As

Publication number Publication date
GB201323150D0 (en) 2014-02-12
US20130007299A1 (en) 2013-01-03
WO2013006563A3 (en) 2014-05-08
GB2506070A (en) 2014-03-19
US9553942B2 (en) 2017-01-24
WO2013006563A2 (en) 2013-01-10
GB2506070B (en) 2020-02-26

Similar Documents

Publication Publication Date Title
DE112012002774T5 (de) Verfahren und Vorrichtung für einen keep-alive Push-Agenten
DE112012002780B4 (de) Verfahren und Vorrichtung zur Berücksichtigung des Aufwands von Anwendungen basierend auf Kundenhardware
DE112012003741T5 (de) Verfahren und Vorrichtung für eine serverseitige Fernarbeitsaufnahme und -wiedergabe
DE112015005024T5 (de) Öffnen lokaler Anwendungen von Browsern
DE112019001481T5 (de) Selektives bereitstellen gegenseitiger transportschichtsicherheit mittels alternativer servernamen
DE112013000387B4 (de) Dynamisches Abtasten einer Webanwendung durch Verwendung von Webdatenverkehrs- Informationen
DE112016001075T5 (de) Verteiltes speichern und abrufen von datensätzen
DE102011001524A1 (de) Verfahren und Vorrichtung zum Anzeigen von Prozessdaten
DE202017106594U1 (de) Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei
DE202017105825U1 (de) Netzmanagementschnittstelle
DE112011101831T5 (de) Schutz vor websiteübergreifenden Scripting-Attacken
DE102012203561A1 (de) Die Personifikation/Bevollmächtigung eines Benutzers in einem Merkmal-basierenden Authentifizierungssystem
DE112010004135T5 (de) Sicherung Asynchroner Client-Server-Transaktionen
DE112013003289T5 (de) Gerät, System und Verfahren für client-geregelte Sitzungspersistenz zwischen ein oder mehreren Clients und Servern eines Rechenzentrums
DE112012002889T5 (de) Authentifizieren eines Rich Clients aus einer bestehenden Browser-Sitzung heraus
DE102016123651A1 (de) Autorisierungsserver, authentisierungskooperationssystem und programm
DE112013000865T5 (de) Konsolidieren von unterschiedlichen Cloud-Dienst-Daten und -Verhaltensweisen auf der Grundlage von Vertrauensbeziehungen zwischen Cloud-Diensten
DE112013002656T5 (de) Kommunikationssitzungsübertragung zwischen Geräten
DE102011053851A1 (de) Serviceorientiertes Framework zur Kommunikation mit Geräten in einem Prozesssteuerungssystem
DE112015005151T5 (de) Kurzlebige Anwendungen
DE202012013482U1 (de) Verteilung von Zugriffsinformationen auf Overlay-Netzwerken
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE112011103273T5 (de) Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten
DE102016102424A1 (de) Auf Inhalt beruhende Hardware-Sicherheitsmodulzuweisung zu virtuellen Maschinen
DE112017005453T5 (de) Konfiguration verteilter Datenverarbeitungssysteme

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: SCHWEIGER & PARTNER, DE

Representative=s name: SCHWEIGER & PARTNERS, DE

R082 Change of representative

Representative=s name: SCHWEIGER & PARTNER, DE

Representative=s name: SCHWEIGER & PARTNERS, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE