Echtzeit-Daten mit Ajax

Solution Variation: (Fast) Real-Time Data

Beim Handel mit Aktien oder festverzinsliche Produkte auf dem Markt, werden Sie wollen auch Echtzeit-Datensätze abzurufen. Durch "Echtzeit"-Datensätzen, die ich meine fast Echtzeit-Daten-Sets, wie man Gebäude wirklich Echtzeit-Anwendungen könnten Anstoß nehmen, wie locker definiere ich "real-time." Aus persönlicher Sicht, glaube ich, dass Echtzeit-Daten nicht möglich ist, mit Ajax, da sind einfach zu viele Schichten von Software. Was möglich ist, nahezu in Echtzeit Daten mit etwa einer halben Sekunde oder so der Verzögerung (natürlich ist dies auf meinen eigenen Erfahrungen ist es keineswegs endgültig). In Bezug auf die meisten Trading-Anwendungen, ohne Scalping, fast in Echtzeit ist gut genug. Real-Time-Daten ist eine Variante des Artikels haben wir bereits gesehen, wo ein Echtzeit-Aufgabe ist vergleichbar mit einem lang andauernden Aufgaben. Eine lang andauernde Aufgabe, die Daten liefert, ist wie ein Echtzeit-Aufgabe, als sowohl die Daten zu erzeugen, wo sie können. Der Unterschied zwischen einer lang andauernden Aufgabe und eine Echtzeit-Aufgabe ist, dass die Daten durch eine Echtzeit-Task generiert eine Quelle über die Aufgabe (zB die Börse, eine Maschine laufenden Prozess, etc.) hat. Ein weiterer Unterschied ist, dass in der Regel eine langwierige Aufgabe, eine Antwort haben wird, während ein Echtzeit-Aufgabe hat keine Antwort nur Daten, die immer generiert.

Das Missverhältnis von dem, was jeder Kunde sieht, wie Daten wünschen übrig oder es kann ein Problem sein. Zum Beispiel, sagen, dass Sie eine Maschine Prozess, der Schaum Autositze Controlling erstellt werden. Jeder Sitz dauert ca. 5 Minuten zu schaffen, und so Ihre Ajax-Anwendung wird ca. 7 Minuten Daten zu speichern. Das Zeitfenster für Ihre Anwendung ist groß genug, um einen Zyklus des Artikels beinhalten beobachtet zu werden.

Nun wollen wir unsere Aufmerksamkeit auf den Aktienmarkt. Was wäre ein angemessenes Zeitfenster, für das Betrachten eines Börsenticker? Wäre es für 1 Minute, 10 Minuten, ein paar Stunden, Tage, Wochen oder Jahre? Und je nach dem Fenster, was die Länge der einzelnen Graphen Marker? Ist es 1 Sekunde, 5 Sekunden, Stunden, Tage? Auch wissen wir nicht, und wir haben das Problem, dass ein Nutzer für ein Diagramm für jede Sekunde für das vergangene Jahr zu bitten. Die Daten für einen solchen Graphen ist enorm. In Echtzeit auf der Client-Seite kann man vernünftigerweise nur erwarten, Länge der Daten in einem bestimmten Zeitfenster zu halten. "Aufzeichnung von einem Zeitfenster ist akzeptabel, wenn Sie nur im Dialog interessiert sind, vorgestellt. Die Realität ist, dass Sie wissen wollen, was in der Vergangenheit geschehen wird. Betrachtet man die Daten aus der Vergangenheit für eine Echtzeit-Aufgabe wird als Verfüllung der Daten. Im Falle des Eigenkapitals Beispiel müssen Sie eine Hinterfüllung mit einzuschließen, da die Berechnungen auf die Aktienkurse möglicherweise nicht genau anders.

  

Dies führt dann eine zusätzliche Komplikation: Wie Sie eine Hinterfüllung und in Echtzeit zu verwalten Aufgabe zur gleichen Zeit auf dem Client? Die Antwort ist, dass Sie es nicht. Ein Ajax-Client ist nicht fähig, so komplizierte Logik. Die Verfüllung und die Echtzeit-Prozess muss von dem Server verwaltet werden. Der Kunde sieht nur eine Sicht auf die Daten, als wäre es eine unendliche Datenquelle. Wenn die Echtzeit-Task gestartet wird, muss die Zeitreihen-Daten, um die Metadaten von ihm gewonnen haben. Die Metadaten würden dann verwendet werden, um festzustellen, wo die Echtzeit-Task fügt Daten in der Ergebnismenge. So zum Beispiel, wenn Sie ein Echtzeit-Tracking-Lager sind, würde die Metadaten der Börsenticker und die Zeit des Bestands ticken. Wenn Sie die Echtzeit-Task gestartet, um 10:00 Uhr, dann die erste Zecke wäre 10.00 Uhr Wenn Sie Aktien an der New York Stock Exchange Tracking sind, wird Ihre gesamte Ergebnismenge würde span der Zeit von 9.30 Uhr bis 4:00 Uhr, mindestens die offiziellen Handelszeiten. Für unser Beispiel bedeutet, dass die fehlenden Daten sind die Zecken von 9.30 Uhr bis einschließlich 9:59:59 Die fehlenden Daten werden auf das Ergebnis durch die Ausführung einer Aufgabe hat, die Lasten der historischen Daten von einer alternativen Datenquelle. Wenn die historischen Daten wurde hinzugefügt, die Kombination der beiden Datensätze ergibt sich eine vollständige und konsistente Daten Ergebnismenge. Unabhängig davon, wann oder wie die Endbenutzer die Daten, für alle Endverbraucher die gleichen Daten sehen. Sie könnten zu dem Schluss gekommen, dass, wenn Daten in einem einheitlichen Format dargestellt, haben Sie das Problem von einem Echtzeit-Generator für ein Problem eingeschaltet der Generierung eines Datensatzes, die gerade passiert, zu verlangen, einen ganzen Tag, um die Ergebnisse zu berechnen.

In Umsetzung gesehen sind die folgenden Faustregeln angewandt:

• Sie müssen definieren, was eine vollständige Ergebnismenge. Sie müssen ein vollständiges Ergebnis in Tagen, Stunden oder einige andere quantifizierbare Maßeinheit Set definieren. Zum Beispiel könnten Sie als Maßeinheit ein leeres Faß, die gefüllt ist.

• Die Daten, die von der Echtzeit-Task erzeugt werden muss durch die Metadaten, die verwendet werden, um einen Index erstellen können beschreibbar.

• Wenn die Echtzeit-Task gestartet wird, werden die Daten in der Ergebnismenge hinzugefügt über einen Index.

• Für Situationen, in denen die Echtzeit-Aufgabe ist es, zu einem späteren Zeitpunkt gestartet wird, wird die fehlenden Daten in den Index von einer Task ausgeführt wird, dass ein Abgleich zur Verfügung gestellt.

• Ein Abgleich Aufgabe ausgeführt wird, wenn der Echtzeit-Aufgabe verfehlt Daten aufgrund der einen oder anderen Grund. Die Verfüllung Aufgabe dient auch dem Zweck der Sicherstellung, dass die Daten durch die Echtzeit-Task generiert Konsistenz und Genauigkeit. Aus der Sicht des Kunden sehen wir ein vollständiges Ergebnis mit einer großen Anzahl von Elementen zu setzen. Der Kunde entscheidet, auf welcher Index sie wollen, um das Tracking in Echtzeit generierten Daten.

Artikel ÜbersichtDieser Artikel Fokus lag auf dem Aufbau AWeb Anwendung, die große Datenmengen oder langsam manipuliert. Beachten Sie folgende Punkte beachten:

• Große und langsam Datensätze werden mit der Nutzung der gleichen Lösung behandelt. Die Lösung dürfte die Umsetzung Schwankungen haben, aber es wird immer eine Task-basierte Ansatz und die Verwendung eines Cache auf dem Client oder Server.

• Alle Ergebnisse werden von Datensätzen, aus denen jedes einzelne Ergebnis ist ein Metadaten-Element.

• Die Metadaten-Element wird verwendet, um ein individuelles Ergebnis eindeutig zu identifizieren. Auf der Grundlage der Metadaten ist es möglich, algorithmisch eine URL, um die Daten zu bestimmen. Es sollte keine Metadaten-Elementen, die miteinander verwechselt werden kann, jedoch kann eine einzelne Metadatenelements Schlagwort mehreren einzelnen Ergebnissen enthalten.

• Denken Sie an die Metadaten-Element als Unterstützung Ihrer Fähigkeit zur Mengenlehre Umsetzung zu wählen, anzuzeigen oder Daten zu navigieren.

• Navigieren in großen oder langsam Datensätze erfordert spezialisierte Navigation.

• Die Navigation ist spezialisiert auf die Verwender in der Lage, schnell die Metadaten zu navigieren basiert, erlaubt den Nutzern eine schnelle und grobe Vorstellung von dem, was enthalten ist, in die Daten zu erhalten.

• Die Navigation sollte spezialisiert ist durch die Verwendung clickless Navigation Techniken so weit wie möglich.

• Die Leistung der Anwendung ist die Umsetzung der Cache auf dem Client und dem Server ab.

• Für die meisten Implementierungen von diesem Artikel, müssen Sie den Cache, so zu stimmen, dass die Cache-algorithmisch bestimmen können, was der Endbenutzer zum nächsten sehen muss.

• Die einfachste Cache für Nur-Lese-Typ-Anwendungen wäre ein einziger Antrag Client-Cache. Für Anwendungen, bei denen regelmäßig die Daten ändern, wird ein HTTP-basierte Validierung Cache benötigt wird. Für jede andere Anwendung wäre der Cache eine Kombination von Einzel-und HTTP-Anfrage-Validierung.

• Wie lange werden Daten in den Server-und Client-Caches gehalten hängt von der Art der Anwendung und ist eine einstellbare Parameter.

• Eine langsame und große Datenmenge Anwendung unterscheidet sich von einer regulären Web-Anwendung, daß die Antwort auf eine POST abgerufen wird über eine separate GET.

• Die Post wird laichen eine Aufgabe, wo die Aufgabe ausgeführt werden könnte in einem anderen Thread oder in einem anderen Prozess. Die Post, der die Aufgabe hat hervorgebracht, wird in den meisten Fällen wieder genug Metadaten-Informationen, um eindeutig die URL der Ergebnisse zu identifizieren.

• Die Ergebnisse werden in einem eigenen URL gespeichert, kann ein Cache-Referenz. Die Ergebnisse sind in der Regel nur zugänglich mit der GET-und DELETE Verben. Möglicherweise gibt es Möglichkeiten zur Feinabstimmung der Ergebnismenge mit Unterverzeichnisse oder Suchparameter vorhanden sein.

• Löschen Sie nicht Ergebnisse mit einem Stack-basierten Ansatz. Der Kunde in der Regel würde ein Cursor auf die neuesten Ergebnisse zu halten oder sich ständig download all der Ergebnisse. Dieser Ansatz ist für die Stabilität und Robustheit bevorzugt.

• Echtzeit-Daten ist eine Variation der langsamen und großen Datenmenge können Artikel. Der große Unterschied im Hinblick auf eine lang andauernde Aufgabe besteht darin, dass eine Echtzeit-Aufgabe, solange die Informationen kontrolliert ausführen soll, wird verfolgt.

• Echtzeit-Daten müssen mit einem größeren Bild davon, was eine Ergebnismenge kombiniert werden. Sie konvertieren möchten, den Echtzeit-Daten in eine größere Datenmenge festgelegt, dass auch ein Abgleich, so dass es scheint, dass die Daten in Echtzeit Aufgabe in der Tat ist ein langsamer Vorgang, der Daten brauchen einen ganzen Tag oder jede Einheit der Zeit in Anspruch passiert ihre Berechnungen.

Ein Artikel eingereicht von Sonja Lande


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Real-time Daten mit Ajax" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 446 users browsing the articles directory