DE112014005183T5 - Store service network - Google Patents

Store service network Download PDF

Info

Publication number
DE112014005183T5
DE112014005183T5 DE112014005183.7T DE112014005183T DE112014005183T5 DE 112014005183 T5 DE112014005183 T5 DE 112014005183T5 DE 112014005183 T DE112014005183 T DE 112014005183T DE 112014005183 T5 DE112014005183 T5 DE 112014005183T5
Authority
DE
Germany
Prior art keywords
data
api
processed
processing engine
type
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.)
Withdrawn
Application number
DE112014005183.7T
Other languages
German (de)
Inventor
Sathish Gaddipati
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.)
Weather Group Television LLC
Original Assignee
Weather Channel LLC
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 Weather Channel LLC filed Critical Weather Channel LLC
Publication of DE112014005183T5 publication Critical patent/DE112014005183T5/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Ein Speicherdienstnetz, das Folgendes beinhaltet: einen Aufnahmeprogrammierschnittstellen(application programming interface, API)-Mechanismus, der Anforderungen von Datenquellen zum Speichern von Daten empfängt, wobei die Anforderungen jeweils eine Angabe des zu speichernden Datentyps enthalten; wenigstens eine Datenverarbeitungs-Engine, die zum Verarbeiten des Datentyps konfiguriert ist, wobei das Verarbeiten durch die wenigstens eine Datenverarbeitungs-Engine die Daten in verarbeitete Daten umwandelt, die ein für die Verbrauchernutzung geeignetes Format aufweisen; eine Mehrzahl von Datenbanken, die die verarbeiteten Daten speichern und die verarbeiteten Daten an Verbraucher bereitstellen; und einen Pull-API-Mechanismus, der von den Verbrauchern aufgerufen wird, um die verarbeiteten Daten abzurufen.A storage service network, comprising: an application programming interface (API) mechanism that receives requests from data sources to store data, the requests each including an indication of the type of data to be stored; at least one data processing engine configured to process the data type, the processing by the at least one data processing engine converting the data into processed data having a format suitable for consumer use; a plurality of databases storing the processed data and providing the processed data to consumers; and a Pull API mechanism called by the consumers to retrieve the processed data.

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGCROSS-REFERENCE TO RELATED APPLICATION

Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung Nr. 61/903,650, eingereicht am 13. November 2013, mit dem Titel „STORAGE UTILITY NETWORK”, die hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen wird.This application claims the benefit of US Provisional Application No. 61 / 903,650, filed on Nov. 13, 2013, entitled "STORAGE UTILITY NETWORK", which is hereby incorporated by reference in its entirety.

ALLGEMEINER STAND DER TECHNIKGENERAL PRIOR ART

Die Aufnahme und Speicherung großer Datenmengen ist äußerst ineffizient. So werden etwa zum Bereitstellen von Zugriff auf große Datenmengen häufig mehrere Datenzentren verwendet. Dies führt jedoch zu hohen Betriebskosten, und es fehlt eine zentralisierte skalierbare Architektur. Darüber hinaus kommt es oft zu Doppelungen und Widersprüchen zwischen den Daten in den mehreren Datenzentren. Diese Datenzentren bieten häufig keine Sichtbarkeit in Bezug auf den Datenzugriff, so dass es für Clients schwierig ist, die Daten abzurufen, was dazu führt, dass die einzelnen Datenzentren als Inseln arbeiten, ohne sich der anderen Datenzentren voll bewusst zu sein. Wenn übliche Datenzentren große Datenmengen verarbeiten, ergeben sich zudem Latenzen, die die Verfügbarkeit der Daten beeinträchtigen können, so dass diese unter Umständen nicht länger relevant sind.Recording and storing large amounts of data is extremely inefficient. For example, many data centers are often used to provide access to large amounts of data. However, this results in high operating costs and lacks a centralized, scalable architecture. In addition, there are often duplications and inconsistencies between the data in the multiple data centers. These data centers often lack visibility in terms of data access, making it difficult for clients to retrieve the data, which makes each data center work as an island without being fully aware of the other data centers. When common data centers handle large amounts of data, there are latencies that can affect the availability of the data, so they may no longer be relevant.

KURZDARSTELLUNGSUMMARY

Offenbart werden Systeme und Verfahren zum Bereitstellen eines skalierbaren Speichernetzes. Gemäß einigen Aspekten wird ein Speicherdienstnetz bereitgestellt, das Folgendes beinhaltet: einen Aufnahmeprogrammierschnittstellen(application programming interface, API)-Mechanismus, der Anforderungen von Datenquellen zum Speichern von Daten empfängt, wobei die Anforderungen jeweils eine Angabe des zu speichernden Datentyps enthalten; wenigstens eine Datenverarbeitungs-Engine, die zum Verarbeiten des Datentyps konfiguriert ist, wobei das Verarbeiten durch die wenigstens eine Datenverarbeitungs-Engine die Daten in verarbeitete Daten umwandelt, die ein für die Verbrauchernutzung geeignetes Format aufweisen; eine Mehrzahl von Datenbanken, die die verarbeiteten Daten speichern und die verarbeiteten Daten an Verbraucher bereitstellen; und einen Pull-API-Mechanismus, der von den Verbrauchern aufgerufen wird, um die verarbeiteten Daten abzurufen.Disclosed are systems and methods for providing a scalable storage network. In some aspects, there is provided a storage service network including: an application programming interface (API) mechanism that receives requests from data sources to store data, the requests each including an indication of the type of data to be stored; at least one data processing engine configured to process the data type, the processing by the at least one data processing engine converting the data into processed data having a format suitable for consumer use; a plurality of databases storing the processed data and providing the processed data to consumers; and a Pull API mechanism called by the consumers to retrieve the processed data.

Gemäß weiteren Aspekten wird ein Verfahren zum Speichern und Bereitstellen von Daten bereitgestellt. Das Verfahren beinhaltet Folgendes: Empfangen einer Anforderung an einem Aufnahmeprogrammierschnittstellen(application programming interface, API)-Mechanismus von Datenquellen zum Speichern von Daten empfängt, wobei die Anforderungen jeweils eine Angabe eines zu speichernden Datentyps enthalten; Verarbeiten der Daten an einer Datenverarbeitungs-Engine, die dazu konfiguriert ist, den Datentyp zu verarbeiten, um die Daten in verarbeitete Daten umzuwandeln, die ein für die Verbrauchernutzung geeignetes Format aufweisen; Speichern der verarbeitete Daten an einer von einer Mehrzahl von Datenbanken, die die verarbeiteten Daten weiter an Verbraucher bereitstellen; und Empfangen eines Aufrufs von einem Verbraucher an einem Pull-API-Mechanismus zum Abrufen der verarbeiteten Daten.In other aspects, a method of storing and providing data is provided. The method includes: receiving a request to an application programming interface (API) mechanism from data sources for storing data, the requests each including an indication of a data type to be stored; Processing the data on a data processing engine configured to process the data type to convert the data into processed data having a format suitable for consumer use; Storing the processed data at one of a plurality of databases that further provide the processed data to consumers; and receiving a call from a consumer at a pull API mechanism to retrieve the processed data.

Andere Systeme, Verfahren, Merkmale und/oder Vorteile werden für den Fachmann nach der Betrachtung der folgenden Zeichnungen und der ausführlichen Beschreibung ersichtlich werden und werden können. Es ist vorgesehen, dass alle solchen zusätzlichen Systeme, Verfahren, Merkmale und Vorteile in diese Beschreibung eingeschlossen sind, von den begleitenden Ansprüchen geschützt werden.Other systems, methods, features, and / or advantages will become apparent to those skilled in the art upon consideration of the following drawings and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be protected by the accompanying claims.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die Komponenten in den Zeichnungen sind nicht zwingend relativ zueinander maßstabsgetreu. Gleiche Bezugszeichen bezeichnen in den mehreren Ansichten einander entsprechende Teile.The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.

1 stellt eine beispielhafte Speicherdienstnetz(SDN)-Architektur gemäß der vorliegenden Offenbarung dar; 1 FIG. 10 illustrates an exemplary memory service network (SDN) architecture according to the present disclosure; FIG.

2 stellt eine beispielhafte Datenaufnahmearchitektur dar; 2 illustrates an exemplary data acquisition architecture;

stellt eine beispielhafte Datenverarbeitungs-Engine (DVE) dar; Fig. 10 illustrates an exemplary data processing engine (DVE);

4 stellt einen beispielhaften Betriebsablauf der Prozesse dar, die zum Aufnehmen von Eingabedaten durchgeführt werden, die von dem SDN aus 1 empfangen werden; 4 FIG. 10 illustrates an example operation of the processes performed to capture input data from the SDN 1 to be received;

5 stellt einen beispielhaften Client-Zugriff auf das Speicherdienstnetz mittels einer auf der geografischen Position basierenden API dar; und 5 illustrates exemplary client access to the storage service network using a geographic location based API; and

6 stellt eine beispielhafte Rechenvorrichtung dar. 6 FIG. 3 illustrates an example computing device. FIG.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Soweit nicht anders definiert, tragen alle technischen und wissenschaftlichen Begriffe dieselbe Bedeutung, wie sie allgemein von einem Durchschnittsfachmann auf dem Gebiet angenommen wird. In der Praxis oder zum Testen der vorliegenden Offenbarung können Verfahren und Materialien benutzt werden, die ähnlich oder äquivalent zu den hier beschriebenen sind.Unless defined otherwise, all technical and scientific terms have the same meaning as commonly accepted by one of ordinary skill in the art. In practice or for testing the present Disclosure may be made of methods and materials similar or equivalent to those described herein.

Die vorliegende Offenbarung betrifft ein Speicherdienstnetz (SDN), das eine zentralisierte Quelle der Dateneinbringung, -speicherung und -verteilung bietet.The present disclosure relates to a storage service network (SDN) that provides a centralized source of data entry, storage, and distribution.

Das SDN bietet eine nicht-blockierende Datenaufnahme, Pull- und Push-Datendienst, Datenverarbeitung mit Lastverteilung auf Datenzentren, Replikation von Daten über Datenzentren hinweg, Verwendung speicherbasierter Datenspeicherung (Cache) für Echtzeitdatensysteme, niedrige Latenz, leichte Skalierbarkeit, hohe Verfügbarkeit und leichte Pflege großer Datensätze. Das SDN kann geografisch verteilt sein, derart, dass jeder Standort geografisch für schnellere Verarbeitung relevante Daten speichert. Das SDN ist auf Milliarden von Datenanforderungen pro Tag skalierbar, wobei es die Daten mit einer niedrigen Latenz von beispielsweise 10 ms–100 ms liefert. Wie beschrieben werden soll, kann das SDN 100 API-Aufrufe mit niedriger Latenz messen und authentifizieren, indem es mehrere TB an Daten täglich verarbeitet, Petabytes an Daten speichert und eine flexible Datenaufnahmeplattform aufweist, um hunderte von Dateneinspeisungen von externen Parteien zu verwalten.The SDN provides non-blocking data collection, pull and push data service, datacenter data center data center data center replication, use of real-time data storage-based caching (cache), low latency, easy scalability, high availability and easy maintenance records. The SDN may be geographically distributed such that each site geographically stores relevant data for faster processing. The SDN is scalable to billions of data requests per day, delivering the data at a low latency of, for example, 10 ms-100 ms. As will be described, the SDN 100 Measure and authenticate low latency API calls by processing multiple TB of data daily, storing petabytes of data, and having a flexible data capture platform to manage hundreds of data feeds from external parties.

Mit der vorstehenden Übersicht als Einleitung wird nun Bezug genommen auf 1, die eine beispielhafte Implementierung des Speicherdienstnetzes (SDN) 100 der vorliegenden Offenbarung darstellt. Das SDN 100 beinhaltet einen Aufnahme-API-Mechanismus 102, der von verschiedenen Quellen Eingabedaten 101 empfängt, eine API-Verwaltungskomponente 104; eine Caching-Schicht 106; Datenspeicherelemente 108a108d; virtuelle Maschinen 110; eine Prozess-, Framework- und Organisationsschicht 112; und einen Pull-API-Mechanismus 114, der Ausgabedaten an verschiedene Datenverbraucher 116 bereitstellt. Die Datenverbraucher 116 können Senderanstalten, Kabelsysteme, webbasierte Informationsanbieter (z. B. Nachrichten- und Wetter-Websites) und andere Informations- oder Datenverbreiter sein.With the above summary as an introduction reference is now made to 1 illustrating an exemplary implementation of the storage service network (SDN) 100 of the present disclosure. The SDN 100 includes a capture API mechanism 102 that input data from different sources 101 receives an API management component 104 ; a caching layer 106 ; Data storage elements 108a - 108d ; virtual machines 110 ; a process, framework and organizational layer 112 ; and a pull API mechanism 114 , the output data to different data consumers 116 provides. The data consumers 116 may be broadcasters, cable systems, web-based information providers (e.g., news and weather websites) and other information or data disseminators.

Die Aufnahme-API 102 wird von dem SDN 100 offengelegt, um Anforderungen z. B. an einem veröffentlichten Uniform Resource Identifier (URI) zu empfangen, um Daten eines bestimmten Typs im SDN 100 zu speichern. Weitere Einzelheiten der Aufnahme-API 102 werden unter Bezugnahme auf 2 beschrieben. Die API-Verwaltungskomponente 104 dient zum Authentifizieren, Messen und Drosseln von Anwendungsprogrammierschnittstellen(API)-Anforderungen für Daten, die im SDN 100 gespeichert sind oder daraus abgerufen werden. Nicht einschränkende Beispiele der API-Verwaltungskomponente 104 sind Mashery und Layer 7. Die API-Verwaltungskomponente 104 sorgt auch für Kundeneinbeziehung, Durchsetzung von Zugriffsrichtlinien und Ermöglichung von Diensten. Die API-Verwaltungskomponente 104 kann die APIs für verschiedene Klassen von Endbenutzern zugänglich machen, indem sie Sicherheits- und Nutzungsrichtlinien auf Daten und Dienste anwendet. Die API-Verwaltungskomponente 104 kann außerdem Analysen zum Bestimmen der Nutzung von Diensten bereitstellen, um geschäftliche oder technische Ziele zu unterstützen. Einzelheiten der API-Verwaltungskomponente 104 sind in der US-Patentanmeldung Nr. 61/954,688 offenbart, eingereicht am 18. März 2014, mit dem Titel „LOW LATENCY, HIGH PAYLOAD, HIGH VOLUME API GATEWAY”, die hiermit in ihrer Gesamtheit in den vorliegenden Gegenstand mit einbezogen wirdThe recording API 102 is from the SDN 100 disclosed to meet requirements z. For example, to receive a published Uniform Resource Identifier (URI) to receive data of a particular type in the SDN 100 save. Further details of the recording API 102 be referring to 2 described. The API Management Component 104 is used to authenticate, measure and throttle application programming interface (API) requests for data stored in the SDN 100 are saved or retrieved from it. Non-limiting examples of the API Management Component 104 are Mashery and Layer 7. The API Management Component 104 also provides customer engagement, enforcement of access policies, and provision of services. The API Management Component 104 can make the APIs accessible to different classes of end users by applying security and usage policies to data and services. The API Management Component 104 can also provide analytics to determine the use of services to support business or technical goals. Details of the API Management Component 104 are disclosed in US Patent Application No. 61 / 954,688, filed Mar. 18, 2014, entitled "LOW LATENCY, HIGH PAYLOAD, HIGH VOLUME API GATEWAY," which is incorporated by reference herein in its entirety

Die Caching-Schicht 106 ist eine Position im Speicher, die vom SDN 100 empfangene Daten und Serverdaten enthält, die an die Datenverbraucher 116 (d. h. Clients) des SDN 100 gesendet werden sollen. Zu den Datenspeicherelementen 108 können, ohne darauf beschränkt zu sein, ein relationales Datenbankverwaltungssystem (RDBVS) 108a, ein Big-Data-Dateisystem 108b (z. B. Hadoop Distributed File System (HDFS) oder ähnliches) und eine NoSQL-Datenbank (z. B. eine NoSQL Document Store-Datenbank 108c oder eine NoSQL Key Value-Datenbank 108d) gehören. Wie im Folgenden beschrieben wird, werden Daten, die von der Aufnahme-API 102 empfangen werden, abhängig davon, welcher Datentyp in der Anforderung an die Aufnahme-API 102 angegeben sind, in einer nicht blockierenden Weise in einem der Datenspeicherelemente 108 gespeichert.The caching layer 106 is a location in the memory of the SDN 100 Received data and server data that are sent to the data consumer 116 (ie clients) of the SDN 100 to be sent. To the data storage elements 108 may include, but are not limited to, a relational database management system (RDBVS). 108a , a big data file system 108b (eg Hadoop Distributed File System (HDFS) or similar) and a NoSQL database (eg a NoSQL Document Store database 108c or a NoSQL Key Value database 108d ) belong. As will be described below, data is provided by the recording API 102 are received, depending on which data type in the request to the recording API 102 in a non-blocking manner in one of the data storage elements 108 saved.

Gemäß der vorliegenden Offenbarung werden die Elemente im SDN 100 auf den virtuellen Maschinen 110 gehostet. Beispielsweise können die Datenverarbeitungs-Engines 210 (2) erzeugt und zerstört werden, indem die virtuellen Maschinen gestartet und angehalten werden, um eintreffende Daten von der Caching-Schicht 106 abzurufen, die Daten zu überprüfen und die Daten zur Speicherung zu verarbeiten. Wie ein Durchschnittsfachmann verstehen wird, sind die virtuellen Maschinen 110 Softwarecomputer, auf denen ein Betriebssystem ausgeführt wird, und Anwendungen wie etwa eine physische Rechenvorrichtung. Jede virtuelle Maschine wird von den physischen Ressourcen einer Host-Rechenvorrichtung gestützt und weist dieselben Funktionen wie physische Hardware auf, jedoch mit den Vorteilen der Tragbarkeit, Verwaltbarkeit und Sicherheit. Beispielsweise können virtuelle Maschinen erzeugt und zerstört werden, um den Ressourcenbedarf des SDN 100 zu erfüllen, ohne dass physische Hardware zur Erfüllung dieses Bedarfs ergänzt werden muss. Ein Beispiel der Host-Rechenvorrichtung wird unter Bezugnahme auf 6 beschrieben.According to the present disclosure, the elements in the SDN 100 on the virtual machines 110 hosted. For example, the data processing engines 210 ( 2 ) are created and destroyed by starting and stopping the virtual machines to receive incoming data from the caching layer 106 retrieve the data and process the data for storage. As one of ordinary skill in the art will understand, the virtual machines are 110 Software computers running an operating system and applications such as a physical computing device. Each virtual machine is supported by the physical resources of a host computing device and has the same functions as physical hardware, but with the advantages of portability, manageability, and security. For example, virtual machines can be created and destroyed to meet the resource requirements of the SDN 100 without having to add physical hardware to meet this need. An example of the host computing device will be described with reference to FIG 6 described.

Die Prozess-, Framework- und Organisationsschicht 112 sorgt für Datenqualität, Daten-Governance, Kundeneinbeziehung und eine Schnittstelle zu anderen Systemen. Datendienst-Governance beinhaltet die Geschäftsentscheidungen für Empfehlungen dazu, welche Datenprodukte und -dienste auf dem SDN 100 aufbauen sollten, wann und in welcher Reihenfolge Datenprodukte und -dienste aufgebaut werden sollten, und zu den Vertriebskanälen für diese Produkte und Dienste. Datenqualität stellt sicher, dass die vom SDN 100 verarbeiteten Daten stets gültig und stimmig sind. The process, framework and organizational layer 112 provides data quality, data governance, customer engagement and an interface to other systems. Data Service Governance includes business decisions for recommendations about which data products and services are on the SDN 100 should build up when and in what order data products and services should be built, and the distribution channels for those products and services. Data quality ensures that the SDN 100 processed data is always valid and consistent.

Der Pull-API-Mechanismus 114 wird vom Verbraucher zum Beziehen von Daten aus dem SDN 100 verwendet. Ähnlich wie die Aufnahme-API 102 wird der Pull-API-Mechanismus 114 vom SDN 100 offengelegt, um Anforderungen z. B. an einem veröffentlichten Uniform Resource Identifier (URI) zu empfangen, um im SDN 100 gespeicherte Daten abzurufen, die einem bestimmten Produkt oder Typ zugehörig sind.The pull API mechanism 114 is used by the consumer to obtain data from the SDN 100 used. Similar to the recording API 102 becomes the pull API mechanism 114 from the SDN 100 disclosed to meet requirements z. For example, to receive a published Uniform Resource Identifier (URI) in the SDN 100 retrieve stored data associated with a particular product or type.

Das SDN 100 kann in einer öffentlichen Cloud-Infrastruktur wie etwa Amazon Web Services, Microsoft Azure, der Google Cloud-Plattform oder anderen implementiert sein, um Dienste mit hoher Verfügbarkeit an die Benutzer des SDN 100 bereitzustellen.The SDN 100 can be implemented in a public cloud infrastructure such as Amazon Web Services, Microsoft Azure, the Google Cloud Platform or others to provide high-availability services to the users of the SDN 100 provide.

Unter Bezugnahme auf 24 wird nun der Betrieb des SDN 100 ausführlicher beschrieben. Insbesondere stellt 2 eine beispielhafte Datenaufnahmearchitektur 200 innerhalb des SDN 100 dar. 3 stellt eine beispielhafte Datenverarbeitungs-Engine (DVE) 210a210n dar. 4 stellt einen beispielhaften Betriebsablauf der Prozesse dar, die zum Aufnehmen von Eingabedaten durchgeführt werden, die von dem SDN 100 empfangen werden.With reference to 2 - 4 Now the operation of the SDN 100 described in more detail. In particular, presents 2 an exemplary data acquisition architecture 200 within the SDN 100 represents. 3 represents an exemplary data processing engine (DVE) 210a - 210n represents. 4 FIG. 10 illustrates an example operation of the processes performed to capture input data provided by the SDN 100 be received.

Wie oben angemerkt, weist die Datenaufnahmearchitektur 200 eine nicht-blockierende Architektur zum Verarbeiten der Daten auf, die von dem SDN 100 empfangen werden. Die Datenaufnahmearchitektur 200 weist Lastausgleicheinrichtungen 202a202n auf, die Arbeitslast auf die Rechenressourcen in der Architektur 200 verteilen. Wenn beispielsweise eine Eingabedatenquelle die Aufnahme-API 102 aufruft, die vom SDN 100 empfangen wird (bei 402), bestimmen die Lastausgleicheinrichtungen 202a202n, welche Ressourcen, die der aufgerufenen API zugeordnet sind, zu benutzen sind, um die Reaktionszeit im Zusammenhang mit den Komponenten in der Datenaufnahmearchitektur 200 zu minimieren. Der Aufruf der Aufnahme-API 102 beinhaltet Informationen zum Datentyp, der von der Eingabedatenquelle an die Datenaufnahmearchitektur 200 übermittelt werden soll. Diese Informationen können von den Lastausgleicheinrichtungen 202a202n verwendet werden, um zu bestimmen, welche der Representational-State-Transfer(REST)-APIs 204a204n programmatischen Zugriff zum Schreiben der Eingabedaten in die Datenaufnahmearchitektur 200 bereitstellen wird (bei 404).As noted above, the data acquisition architecture 200 a non-blocking architecture for processing the data received from the SDN 100 be received. The data acquisition architecture 200 has load balancing devices 202a - 202n on, the workload on the computational resources in the architecture 200 to distribute. For example, if an input data source is the recording API 102 calls, from the SDN 100 is received (at 402 ), determine the load balancing devices 202a - 202n which resources that are associated with the called API should be used to estimate the response time associated with the components in the data acquisition architecture 200 to minimize. Calling the recording API 102 Contains information about the data type, that is from the input data source to the data acquisition architecture 200 should be transmitted. This information may come from the load balancing devices 202a - 202n can be used to determine which of the representational state transfer (REST) APIs 204a - 204n programmatic access to write the input data into the data acquisition architecture 200 will provide (at 404 ).

Die REST-APIs 204a204n stellen eine Schnittstelle zu einer zugehörigen Direktvermittlung 206a206n bereit, um Daten in eine geeignete Nachrichtenwarteschlange 208a208c zu übermitteln (bei 406), damit sie von einer Datenverarbeitungs-Engine(DVE)-Farm 210 verarbeitet werden (bei 408). Gemäß Aspekten der vorliegenden Offenbarung kann jede DVE 210a201n dazu konfiguriert sein, einen bestimmten Typ von Eingabedaten zu verarbeiten. Beispielsweise können die Eingabedaten Beobachtungsdaten sein, die von der REST-API 204a oder 204b empfangen werden. Mit diesen Informationen können die Beobachtungsdaten in der Warteschlange 208a der DVE 210a abgelegt werden, die für die Verarbeitung der Beobachtungsdaten zuständig ist. Auf diese Weise versucht das SDN 100, Daten in einer Weise weiterzuleiten, dass jede DVE stets Daten desselben Typs verarbeitet. Wenn jedoch eine DVE 210a201n Daten eines unbekannten Typs empfängt, leitet die DVE 210a201n gemäß einigen Aspekten der vorliegenden Offenbarung die Daten an Warteschlange einer anderen DVE 210a201n, die die Daten verarbeiten kann.The REST APIs 204a - 204n provide an interface to an associated direct broker 206a - 206n ready to put data in an appropriate message queue 208a - 208c to submit (at 406 ) to enable it from a data processing engine (DVE) farm 210 be processed (at 408 ). In accordance with aspects of the present disclosure, each DVE 210a - 201n configured to process a particular type of input data. For example, the input data may be observation data provided by the REST API 204a or 204b be received. With this information, the observation data can be queued 208a the DVE 210a which is responsible for the processing of the observation data. That's how the SDN tries 100 To forward data in a way that each DVE always processes data of the same type. However, if a DVE 210a - 201n Receives data of an unknown type, directs the DVE 210a - 201n According to some aspects of the present disclosure, the data is queued to another DVE 210a - 201n who can process the data.

3 stellt eine beispielhafte Datenverarbeitungs-Engine (DVE) 210a201n dar. Die DVE ist eine universelle Rechenressource, die die Eingabedaten 101 empfängt und an ein geeignetes Datenspeicherelement 108 schreibt. Die DVE kann z. B. JAVA implementiert sein und auf einer der virtuellen Maschinen 110 ausgeführt werden. Bei der Instantiierung benachrichtigt die DVE ihre zugehörige Nachrichtenwarteschlange (z. B. Nachrichtenwarteschlange 208a für DVE 210a), die aktiv ist. 3 represents an exemplary data processing engine (DVE) 210a - 201n The DVE is a universal computational resource containing the input data 101 receives and to a suitable data storage element 108 writes. The DVE can z. B. JAVA and on one of the virtual machines 110 be executed. During instantiation, the DVE notifies its associated message queue (for example, message queue 208a for DVE 210a ), which is active.

Eine Datenpumpe 302 in der DVE liest eine Nachricht aus einer Warteschlange und übergibt die Nachricht an einen Handler 304. Wie dargestellt, kann der Handler 304 mehrsträngig sein und mehrere Handler 304a304n beinhalten. Der Handler 304 sendet die Daten zur Verarbeitung an einen Daten-Cartridge 306. Der Daten-Cartridge 306 „programmiert” die Funktionen der DVE gemäß einer Konfigurationsdatei 308. Beispielsweise kann ein separater Daten-Cartridge 306 für jeden Datentyp vorliegen, den das SDN 100 empfängt. Der Daten-Cartridge 306 formatiert die Nachricht z. B. in ein JavaScript-Object-Notation(JSON)-Dokument, bestimmt Schlüssel und Werte für jede Nachricht, führt eine Datenvorverarbeitung durch, wandelt Daten auf Grundlage von Betriebslogik um und sorgt für Datenqualität. Die Umwandlung der Daten versetzt sie in einen Zustand, in dem sie für den Verbrauch durch einen oder mehrere der Datenverbraucher 116 bereit sind.A data pump 302 in the DVE reads a message from a queue and passes the message to a handler 304 , As shown, the handler 304 be multi-stranded and multiple handlers 304a - 304n include. The dealer 304 sends the data to a data cartridge for processing 306 , The data cartridge 306 "Programs" the functions of the DVE according to a configuration file 308 , For example, a separate data cartridge 306 for each data type that the SDN 100 receives. The data cartridge 306 formatted the message z. A JavaScript Object Notation (JSON) document, determines keys and values for each message, performs data pre-processing, transforms data based on operational logic, and provides data quality. The conversion of the data puts them in a state in which they are intended for consumption by one or more of the data consumers 116 to be ready.

Unter Bezugnahme auf 2 und 3 gibt der Daten-Cartridge 306 nach dem Verarbeiten der Nachricht die verarbeitete Nachricht zurück an den Handler 304, der die verarbeitete Nachricht dann an eine DB-Schnittstelle 310 und/oder eine Nachrichtenwarteschlangenvermittlung (z. B. 212b) senden kann (bei 410). Beispielsweise kann die DB-Schnittstelle 310 die Nachricht vom Handler 304a empfangen und gemäß Schlüsselwerten (oder anderen Informationen), die in der Nachricht definiert sind, in eine Datenbank (d. h. eins der Datenspeicherelemente 108) schreiben. Zusätzlich oder alternativ kann eine Auswahl des Datenbanktyps auf Grundlage des darin gespeicherten Datentyps getroffen werden. Obwohl nicht in 3 gezeigt, ist die DB-Schnittstelle 310 für einen bestimmten Datenbanktyp (z. B. Redis) spezifisch, weshalb mehrere DB-Schnittstellen 310 vorliegen können. Somit stellt die DB-Schnittstelle 310 sicher, dass die Daten auf hinsichtlich Speicherung und Abrufung optimale Weise in eine Datenbank (z. B. Redis) geschrieben werden. With reference to 2 and 3 gives the data cartridge 306 after processing the message, the processed message back to the handler 304 which then sends the processed message to a DB interface 310 and / or a message queue switch (e.g. 212b ) (at 410 ). For example, the DB interface 310 the message from the handler 304a received and, according to key-values (or other information) defined in the message, into a database (ie one of the data storage elements 108 ) write. Additionally or alternatively, a selection of the database type may be made based on the data type stored therein. Although not in 3 shown is the DB interface 310 for a specific database type (eg Redis) specific, which is why several DB interfaces 310 may be present. Thus, the DB interface provides 310 ensure that the data is written to a database (such as Redis) for optimal storage and retrieval.

In einem anderen Beispiel kann der Handler 304a die Daten an die Nachrichtenwarteschlangenvermittlung 212a/212b übermitteln, die die Daten dann in einer geeigneten Ausgabewarteschlange 2141–214n/216a216n für den Verbrauch durch Datenverbraucher 116 ablegt. Somit kann die Datenaufnahmearchitektur 200 Eingabedaten 101 für Datenverbraucher 116 mit äußerst niedriger Latenz verfügbar machen, da die Daten von der DVE-Farm 210 aufgenommen und verarbeitet und im Wesentlichen in Echtzeit ausgegeben werden können.In another example, the handler 304a the data to the message queue switch 212a / 212b transmit the data to a suitable output queue 2141- 214n / 216a - 216n for consumption by data consumers 116 stores. Thus, the data acquisition architecture 200 input data 101 for data consumers 116 with extremely low latency, as the data from the DVE farm 210 recorded and processed and can be output in substantially real time.

Als ein Beispiel der Datenverarbeitung durch das SDN 100 können die Eingabedaten 101 gerasterte Daten wie etwa Beobachtungsdaten sein. Diese Daten werden normalerweise bei der Wettervorhersage verwendet, um geografisch spezifische Wettervorhersagen zu erstellen, die an die Datenverbraucher 116 bereitgestellt werden. Diese Daten sind umfangreich und zeitabhängig, insbesondere bei wechselhaften Wetterbedingungen. Das SDN 100 stellt eine Plattform bereit, durch die diese Daten von der Datenaufnahmearchitektur 200 zügig verarbeitet werden können, derart, dass die Datenausgabe an die Datenverbraucher 116 is zeitnah erfolgt.As an example of data processing by the SDN 100 can the input data 101 rasterized data such as observation data. This data is usually used in weather forecasting to create geographically specific weather forecasts that are sent to the data consumer 116 to be provided. These data are extensive and time-dependent, especially in changeable weather conditions. The SDN 100 provides a platform through which to retrieve this data from the data acquisition architecture 200 can be processed quickly, such that the data output to the data consumer 116 is done promptly.

5 stellt einen beispielhaften Client-Zugriff auf das Speicherdienstnetz mittels einer auf der geografischen Position basierenden API dar. Gemäß der vorliegenden Offenbarung kann eine Client-Anwendung 500 durch einen veröffentlichten Uniform Resource Identifier (URI), der der Aufnahme-API 102 durch Erfüllen im Voraus vereinbarter Standortparameter 502 zugewiesen wurde, auf das SDN 100 zugreifen. Ein Geopositionierungsdienst 504 kann einen Geohashing-Algorithmus bereitstellen. Geohashing-Algorithmen nutzen kurze URLs für eine eindeutige Identifikation von Standorten auf der Erde, um die Referenzierung dieser Standorte bequemer zu gestalten. Zum Beziehen eines Geohash stellt ein Benutzer in einem einzelnen Eingabefeld eine Adresse oder Breiten- und Längenkoordinaten zur Geocodierung bereit (wobei die häufigsten Breiten- und Längengradpaare akzeptiert werden), und führt die Anforderung durch. 5 illustrates an exemplary client access to the storage service network using a geographic location based API. In accordance with the present disclosure, a client application may 500 through a published Uniform Resource Identifier (URI), the inclusion API 102 by meeting pre-agreed location parameters 502 was assigned to the SDN 100 access. A geopositioning service 504 can provide a geohashing algorithm. Geohashing algorithms use short URLs to uniquely identify sites on Earth to make referencing these sites more convenient. To obtain a geohash, a user provides an address or latitude and longitude coordinates for geocoding in a single input field (with the most common latitude and longitude pairs accepted) and makes the request.

6 zeigt eine beispielhafte Rechenumgebung, in der beispielhafte Ausführungsformen und Aspekte implementiert werden können. Die Rechensystemumgebung ist nur ein Beispiel einer geeigneten Rechenumgebung und soll keine Beschränkungen hinsichtlich des Umfangs ihrer Nutzung oder Funktionsweise nahelegen. 6 FIG. 10 illustrates an example computing environment in which example embodiments and aspects may be implemented. FIG. The computing system environment is just one example of a suitable computing environment and is not intended to imply any limitations on the scope of its use or operation.

Es können zahlreiche andere allgemeine oder spezielle Rechensystemumgebungen oder -konfigurationen verwendet werden. Zu Beispielen bekannter Rechensysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung geeignet sein können, gehören, ohne darauf beschränkt zu sein, PCs, Server, Hand- oder Laptop-Vorrichtungen, Multiprozessorsysteme, Systeme auf Mikroprozessorbasis, Netzwerk-PCs, Minicomputer, Mainframe-Computer, eingebettete Systeme, verteilte Rechenumgebungen, die beliebige der vorstehenden Systems oder Vorrichtungen beinhalten, und dergleichen.Many other general or specialized computing system environments or configurations may be used. Examples of known computing systems, environments, and / or configurations that may be suitable for use include, but are not limited to, personal computers, servers, handheld or laptop devices, multiprocessor systems, microprocessor based systems, network PCs, minicomputers , Mainframe computers, embedded systems, distributed computing environments including any of the foregoing systems or devices, and the like.

Es können von einem Computer ausführbare Anweisungen wie etwa Programmmodule verwendet werden, die von einem Computer ausgeführt werden. Allgemein schließen Programmmodule Routinen, Programme, Objekte, Komponenten und Datenstrukturen usw. ein, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Es können verteilte Rechenumgebungen verwendet werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungsvorrichtungen ausgeführt werden, die über ein Kommunikationsnetz oder anderes Datenübertragungsmedium verbunden sind. In einer verteilten Rechenumgebung können Programmmodule und andere Daten sowohl auf lokalen als auch entfernten Computerspeichermedien angeordnet sein, einschließlich Speicher-Speicherungsvorrichtungen.Computer-executable instructions, such as program modules, that are executed by a computer may be used. Generally, program modules include routines, programs, objects, components, and data structures, etc. that perform certain tasks or implement particular abstract data types. Distributed computing environments may be used in which tasks are performed by remote processing devices that are connected via a communication network or other data transmission medium. In a distributed computing environment, program modules and other data may be located on both local and remote computer storage media, including memory storage devices.

Unter Bezugnahme auf 6 beinhaltet ein beispielhaftes System zum Implementieren hier beschriebener Aspekte eine Rechenvorrichtung wie etwa Rechenvorrichtung 600. in ihrer einfachsten Konfiguration beinhaltet die Rechenvorrichtung 600 in der Regel wenigstens eine Verarbeitungseinheit 602 und einen Speicher 604. Abhängig von der genauen Konfiguration und Art der Rechenvorrichtung kann der Speicher 604 flüchtig (etwa Schreib-/Lesespeicher (RAM)), nicht-flüchtig (etwa Lesespeicher (ROM), Flash-Speicher usw.) oder eine Kombination der beiden sein. Diese grundlegende Konfiguration ist in 6 durch die gestrichelte Linie 606 dargestellt.With reference to 6 For example, one example system for implementing aspects described herein includes a computing device, such as a computing device 600 , in its simplest configuration includes the computing device 600 usually at least one processing unit 602 and a memory 604 , Depending on the exact configuration and type of computing device, the memory may 604 be volatile (such as random access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.) or a combination of the two. This basic configuration is in 6 through the dashed line 606 shown.

Die Rechenvorrichtung 600 kann weitere Merkmale/Funktionen aufweisen. Beispielsweise kann die Rechenvorrichtung 600 zusätzlichen Speicher (Wechselspeicher/nicht wechselbaren Speicher) beinhalten, darunter, ohne darauf beschränkt zu sein, Magnet- oder optische Disks oder Bänder. Dieser zusätzliche Speicher ist in 6 durch den Wechselspeicher 608 und den nicht wechselbaren Speicher 610 dargestellt.The computing device 600 may have further features / functions. For example, the computing device 600 additional storage (removable storage / non-removable storage), including, but not limited to, magnetic or optical disks or tapes. This extra memory is in 6 through the removable storage 608 and the non-removable memory 610 shown.

Die Rechenvorrichtung 600 beinhaltet in der Regel verschiedene greifbare computerlesbare Medien. Bei computerlesbaren Medien kann es sich um beliebige greifbare Medien handeln, auf die die Vorrichtung 600 zugreifen kann, und sie beinhalten sowohl flüchtige als auch nicht-flüchtige, wechselbare und nichtwechselbare Medien.The computing device 600 typically includes several tangible computer-readable media. Computer-readable media can be any tangible media upon which the device 600 and include both volatile and non-volatile, removable and non-removable media.

Zu greifbaren Computerspeichermedien gehören sowohl flüchtige als auch nicht-flüchtige, wechselbare und nichtwechselbare Medien, die mit beliebigen Verfahren oder Techniken zur Speicherung von Informationen wie etwa computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen oder anderen Daten implementiert sind. Der Speicher 604, Wechselspeicher 608 und nicht wechselbare Speicher 610 sind allesamt Beispiele für Computerspeichermedien. Zu greifbaren Computerspeichermedien gehören, ohne darauf beschränkt zu sein, RAM, ROM, elektrisch löschbarer programmierbarer Lesespeicher (EEPROM), Flash-Speicher und andere Speichertechnik, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Speichermedien, Magnetkassetten, Magnetbänder, Magnetdisk-Speichermedien oder andere magnetische Speichervorrichtungen oder beliebige andere Medien, die zum Speichern der gewünschten Informationen verwendet werden können und auf die die Rechenvorrichtung 600 zugreifen kann. Beliebige dieser Computerspeichermedien können Teil der Rechenvorrichtung 600 sein.Tangible computer storage media include both volatile and nonvolatile, removable and non-removable media implemented with any method or technique for storing information such as computer readable instructions, data structures, program modules, or other data. The memory 604 , Removable storage 608 and non-removable memory 610 are all examples of computer storage media. Access to tangible computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory and other memory technology, CD-ROMs, Digital Versatile Disks (DVD) or other optical storage media, magnetic cassettes, magnetic tapes, magnetic disks Storage media or other magnetic storage devices or any other media that may be used to store the desired information and to which the computing device 600 can access. Any of these computer storage media may be part of the computing device 600 be.

Die Rechenvorrichtung 600 kann Kommunikationsverbindung(en) 612 enthalten, damit die Vorrichtung mit anderen Vorrichtungen kommunizieren kann. Die Rechenvorrichtung 600 kann auch Eingabevorrichtung(en) 614 wie etwa Tastatur, Maus, Stift, Spracheingabevorrichtung, Berührungseingabevorrichtung usw. aufweisen. Es könne auch Ausgabevorrichtung(en) 616 wie etwa Anzeige, Lautsprecher, Drucker usw. vorhanden sein. All diese Vorrichtungen sind im Stand der Technik bekannt und müssen hier nicht ausführlich erörtert werden.The computing device 600 can communication connection (s) 612 so that the device can communicate with other devices. The computing device 600 can also input device (s) 614 such as keyboard, mouse, pen, voice input device, touch input device, etc. It could also output device (s) 616 such as display, speakers, printers, etc. may be present. All of these devices are known in the art and need not be discussed in detail here.

Es versteht sich, dass die verschiedenen hier beschriebenen Techniken in Verbindung mit Hardware oder Software oder, wo angemessen, einer Kombination beider implementiert sein können. Die Verfahren und die Vorrichtung des hier offenbarten Gegenstands oder bestimmte Aspekte oder Teile davon können somit die Form von Programmcode (d. h. Anweisungen) annehmen, der auf greifbaren Medien wie etwa Disketten, CD-ROMs, Festplatten oder beliebigen anderen maschinenlesbaren Speichermedien verkörpert ist, wobei beim Laden des Programmcodes in eine Maschine wie etwa einen Computer und bei Ausführung desselben die Maschine eine Vorrichtung zum Ausüben des hier offenbarten Gegenstands wird. Im Falle der Programmcodeausführung auf programmierbaren Computern beinhaltet die Rechenvorrichtung allgemein einen Prozessor, ein von dem Prozessor lesbares Speichermedium (einschließlich flüchtiger und nicht-flüchtiger Speicherelemente), wenigstens eine Eingabevorrichtung und wenigstens eine Ausgabevorrichtung. Ein oder mehrere Programme können die Prozesse, die in Verbindung mit dem hier offenbarten Gegenstand beschrieben wurden, implementieren oder nutzen, z. B. durch die Verwendung einer Anwendungsprogrammierschnittstelle (API), wiederverwendbarer Steuerelemente oder dergleichen. Diese Programme können in einer verfahrensorientierten oder objektorientierten Programmiersprache höherer Ebene implementiert sein, um mit einem Computersystem zu kommunizieren. Das oder die Programme können jedoch bei Bedarf in Assembler- oder Maschinensprache implementiert sein. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein und kann mit Hardwareimplementierungen kombiniert werden.It should be understood that the various techniques described herein may be implemented in conjunction with hardware or software or, where appropriate, a combination of both. The methods and apparatus of the subject matter disclosed herein, or certain aspects or portions thereof, may thus take the form of program code (ie instructions) embodied on tangible media such as floppy disks, CD-ROMs, hard disks, or any other machine-readable storage media Loading the program code into a machine such as a computer and, when executed, the machine becomes an apparatus for practicing the subject matter disclosed herein. In the case of program code execution on programmable computers, the computing device generally includes a processor, a processor-readable storage medium (including volatile and non-volatile memory elements), at least one input device, and at least one output device. One or more programs may implement or utilize the processes described in connection with the subject matter disclosed herein, e.g. Through the use of an application programming interface (API), reusable controls, or the like. These programs may be implemented in a higher level procedural or object oriented programming language to communicate with a computer system. However, the program (s) may be implemented in assembly or machine language as needed. In any case, the language may be a compiled or interpreted language and may be combined with hardware implementations.

Obwohl der Gegenstand in Begriffen beschrieben wurde, die für strukturelle Merkmale und/oder methodische Handlungen spezifisch ist, versteht es sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht zwingend auf die spezifischen oben beschriebenen Merkmale oder Handlungen beschränkt ist. Vielmehr werden die spezifischen oben beschriebenen Merkmale oder Handlungen als Beispielformen für die Implementierung der Ansprüche offenbart.Although the subject matter has been described in terms specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features or acts described above are disclosed as example forms for implementing the claims.

Claims (20)

Speichervorrichtung, aufweisend: einen Aufnahmeprogrammierschnittstellen(application programming interface, API)-Mechanismus, der Anforderungen von Datenquellen zum Speichern von Daten empfängt, wobei die Anforderungen jeweils eine Angabe eines zu speichernden Datentyps enthalten; wenigstens eine Datenverarbeitungs-Engine, die dazu konfiguriert ist, den Datentyp zu verarbeiten, wobei das Verarbeiten durch die wenigstens eine Datenverarbeitungs-Engine die Daten in verarbeitete Daten umwandelt, die ein für die Verbrauchernutzung geeignetes Format aufweisen; eine Vielzahl von Datenbanken, die die verarbeiteten Daten speichern und die verarbeiteten Daten an Verbraucher bereitstellen; und einen Pull-API-Mechanismus, der von den Verbrauchern aufgerufen wird, um die verarbeiteten Daten abzurufen.A memory device, comprising: an application programming interface (API) mechanism that receives requests from data sources for storing data, the requests each including an indication of a data type to be stored; at least one data processing engine configured to process the data type, the processing by the at least one data processing engine converting the data into processed data having a format suitable for consumer use; a plurality of databases storing the processed data and providing the processed data to consumers; and a pull API mechanism called by the consumers to retrieve the processed data. Vorrichtung nach Anspruch 1, ferner umfassend eine API-Verwaltungskomponente, die die Anforderungen und die Aufrufe an den Aufnahme-API-Mechanismus und den Pull-API-Mechanismus authentifiziert, misst und drosselt.The apparatus of claim 1, further comprising an API management component that authenticates, measures and throttles the requests and the calls to the host API mechanism and the pull API mechanism. Vorrichtung nach Anspruch 2, wobei der Aufnahme-API-Mechanismus und der Pull-API-Mechanismus von der Speichervorrichtung offengelegt werden, um Anforderungen an jeweiligen Uniform Resource Identifiern (URI) zu empfangen.The apparatus of claim 2, wherein the capture API mechanism and the pull API mechanism are exposed by the storage device to receive requests for respective Uniform Resource Identifiers (URI). Vorrichtung nach Anspruch 1, wobei von dem Aufnahme-API empfangene Daten abhängig davon, welcher Datentyp in der Anforderung an den Aufnahme-API-Mechanismus angegeben ist, in einer nicht blockierenden Weise verarbeitet und in einer der Datenbanken gespeichert werden.The apparatus of claim 1, wherein data received by the host API is processed in a non-blocking manner and stored in one of the databases, depending on which type of data is specified in the request to the host API mechanism. Vorrichtung nach Anspruch 1, wobei der Aufnahme-API-Mechanismus ferner Lastausgleicheinrichtungen umfasst, die zu verwendende Ressourcen in der Speichervorrichtung bestimmen, um die Reaktionszeit zum Speichern der verarbeiteten Daten in den Datenbanken zu minimieren.The apparatus of claim 1, wherein the capture API mechanism further comprises load balancers that determine resources to use in the storage device to minimize the response time for storing the processed data in the databases. Vorrichtung nach Anspruch 1, wobei der Aufnahme-API-Mechanismus die Daten abhängig davon, welcher Datentyp in der Anforderung angegeben ist, zur Verarbeitung durch eine jeweilige dem Datentyp zugeordnete Datenverarbeitungs-Engine in einer vorgegebenen Nachrichtenwarteschlange ablegt.The apparatus of claim 1, wherein the capture API mechanism deposits the data in a predetermined message queue for processing by a respective data processing engine associated with the data type, depending on which data type is specified in the request. Vorrichtung nach Anspruch 1, wobei die wenigstens eine Datenverarbeitungs-Engine ferner Folgendes umfasst: eine Datenpumpe, die eine Nachricht aus einer Warteschlange ausliest; einen Handler, der Nachrichten von der Warteschlange empfängt; einen Daten-Cartridge, der die Datenverarbeitungs-Engine dazu konfiguriert, die Daten von dem Handler zu verarbeiten, um die Daten in die verarbeiteten Daten umzuwandeln; eine Datenbankschnittstelle, die die verarbeiteten Daten an eine vorgegebene Datenbank aus der Vielzahl von Datenbanken schreibt; und einen Austauschmechanismus, der verarbeitete Daten direkt an die Verbraucher bereitstellt, wobei die vorgegebene Datenbank auf Grundlage des darin zu speichernden Datentyps ausgewählt wird.The apparatus of claim 1, wherein the at least one data processing engine further comprises: a data pump reading a message from a queue; a handler receiving messages from the queue; a data cartridge that configures the data processing engine to process the data from the handler to convert the data into the processed data; a database interface that writes the processed data to a given database of the plurality of databases; and an exchange mechanism that provides processed data directly to consumers, wherein the predetermined database is selected based on the data type to be stored therein. Vorrichtung nach Anspruch 7, wobei, wenn die jeweilige Datenverarbeitungs-Engine Daten eines unbekannten Typs empfängt, die jeweilige Datenverarbeitungs-Engine die Daten in einer Warteschlange von einer anderen der wenigstens einen Datenverarbeitungs-Engines ablegt, die die Daten verarbeiten kann.The apparatus of claim 7, wherein when the respective data processing engine receives data of an unknown type, the respective data processing engine places the data in a queue from another of the at least one data processing engine capable of processing the data. Vorrichtung nach Anspruch 1, wobei die Daten gerasterte Daten sind, die von den Datenquellen bereitgestellt werden.The apparatus of claim 1, wherein the data is rasterized data provided by the data sources. Vorrichtung nach Anspruch 9, wobei der Datentyp einer von Pollendaten, Satellitendaten, Vorhersagemodellen, Winddaten, Blitzdaten, Luftqualitätsdaten, Benutzerdaten, Temperaturdaten oder Wetterstationsdaten ist.The apparatus of claim 9, wherein the data type is one of pollen data, satellite data, predictive models, wind data, flash data, air quality data, user data, temperature data, or weather station data. Verfahren zum Speichern und Bereitstellen von Daten, umfassend: Empfangen einer Anforderung an einem Aufnahmeprogrammierschnittstellen(application programming interface, API)-Mechanismus von Datenquellen zum Speichern von Daten, wobei die Anforderungen jeweils eine Angabe eines zu speichernden Datentyps enthalten; Verarbeiten der Daten an einer Datenverarbeitungs-Engine, die dazu konfiguriert ist, den Datentyp zu verarbeiten, um die Daten in verarbeitete Daten umzuwandeln, die ein für die Verbrauchernutzung geeignetes Format aufweisen; Speichern der verarbeiteten Daten an einer von einer Vielzahl von Datenbanken, die die verarbeiteten Daten weiter an Verbraucher bereitstellen; und Empfangen eines Aufrufs von einem Verbraucher an einem Pull-API-Mechanismus zum Abrufen der verarbeiteten Daten.A method for storing and providing data, comprising: Receiving a request at a recording programming interface (API) mechanism from data sources for storing data, the requests each including an indication of a data type to be stored; Processing the data on a data processing engine configured to process the data type to convert the data into processed data having a format suitable for consumer use; Storing the processed data at one of a plurality of databases that further provide the processed data to consumers; and Receive a call from a consumer to a Pull API mechanism to retrieve the processed data. Verfahren nach Anspruch 11, ferner umfassend Authentifizieren, Messen und Drosseln der Anforderungen und Aufrufe an den Aufnahme-API-Mechanismus und den Pull-API-Mechanismus mithilfe einer API-Verwaltungskomponente.The method of claim 11, further comprising authenticating, measuring and throttling the requests and calls to the ingest API mechanism and the pull api mechanism using an API management component. Verfahren nach Anspruch 12, ferner umfassend Offenlegen des Aufnahme-API-Mechanismus und des Pull-API-Mechanismus gegenüber jeweiligen Uniform Resource Identifiern (URI).The method of claim 12, further comprising exposing the ingest API mechanism and the pull API mechanism to respective Uniform Resource Identifiers (URI). Verfahren nach Anspruch 11, ferner umfassend Speichern von Daten abhängig davon, welcher Datentyp in der Anforderung an den Aufnahme-API-Mechanismus angegeben ist, in einer nicht blockierenden Weise in einer der Vielzahl von Datenbanken.The method of claim 11, further comprising storing data in a non-blocking manner in one of the plurality of databases, depending on which data type is specified in the request to the capture API mechanism. Verfahren nach Anspruch 11, ferner umfassend Bereitstellen von Lastausgleicheinrichtungen, die zu verwendende Ressourcen in der Speichervorrichtung bestimmen, um die Reaktionszeit zum Speichern der verarbeiteten Daten in der einen der Vielzahl von Datenbanken zu minimieren. The method of claim 11, further comprising providing load balancing devices that determine resources to use in the storage device to minimize the response time for storing the processed data in the one of the plurality of databases. Verfahren nach Anspruch 11, ferner umfassend Ablegen der Daten abhängig davon, welcher Datentyp in der Anforderung angegeben ist, zur Verarbeitung durch eine jeweilige dem Datentyp zugeordnete Datenverarbeitungs-Engine in einer vorgegebenen Nachrichtenwarteschlange.The method of claim 11, further comprising storing the data dependent on which data type is specified in the request for processing by a respective data processing engine associated with the data type in a given message queue. Verfahren nach Anspruch 11, ferner umfassend Versehen der Datenverarbeitungs-Engine ferner mit einer Datenpumpe, die Nachrichten aus einer Warteschlange ausliest, einem Handler, der Nachrichten von der Warteschlange empfängt, einem Daten-Cartridge, der die Datenverarbeitungs-Engine dazu konfiguriert, die Daten von dem Handler zu verarbeiten, um die Daten in die verarbeiteten Daten umzuwandeln, einer Datenbankschnittstelle, die die verarbeiteten Daten in eine vorgegebene Datenbank aus der Vielzahl von Datenbanken schreibt, und einem Austauschmechanismus, der verarbeitete Daten direkt an die Verbraucher bereitstellt.The method of claim 11, further comprising providing the data processing engine with a data pump reading messages from a queue, a handler receiving messages from the queue, a data cartridge configuring the data processing engine to retrieve the data from the handler to convert the data into the processed data, a database interface that writes the processed data to a given database of the plurality of databases, and an exchange mechanism that provides processed data directly to the consumers. Verfahren nach Anspruch 17, ferner umfassend: Bestimmen, ob die jeweilige Datenverarbeitungs-Engine Daten eines unbekannten Typs empfängt; und Ablegen der Daten in einer Warteschlange einer anderen der wenigstens einen Datenverarbeitungs-Engines, die die Daten verarbeiten kann.The method of claim 17, further comprising: Determining whether the respective data processing engine is receiving data of an unknown type; and Storing the data in a queue of another of the at least one data processing engine that can process the data. Verfahren nach Anspruch 11, wobei die Daten gerasterte Daten sind, die von den Datenquellen bereitgestellt werden.The method of claim 11, wherein the data is rasterized data provided by the data sources. Verfahren nach Anspruch 19, wobei der Datentyp einer von Pollendaten, Satellitendaten, Vorhersagemodellen, Winddaten, Blitzdaten, Luftqualitätsdaten, Benutzerdaten, Temperaturdaten oder Wetterstationsdaten ist.The method of claim 19, wherein the data type is one of pollen data, satellite data, predictive models, wind data, flash data, air quality data, user data, temperature data, or weather station data.
DE112014005183.7T 2013-11-13 2014-11-12 Store service network Withdrawn DE112014005183T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361903650P 2013-11-13 2013-11-13
US61/903,650 2013-11-13
PCT/US2014/065176 WO2015073512A2 (en) 2013-11-13 2014-11-12 Storage utility network

Publications (1)

Publication Number Publication Date
DE112014005183T5 true DE112014005183T5 (en) 2016-07-28

Family

ID=53058246

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014005183.7T Withdrawn DE112014005183T5 (en) 2013-11-13 2014-11-12 Store service network

Country Status (8)

Country Link
US (2) US20150142861A1 (en)
EP (1) EP3069214A4 (en)
CN (1) CN106104414B (en)
CA (1) CA2930542C (en)
DE (1) DE112014005183T5 (en)
GB (1) GB2535398B (en)
HK (1) HK1223437A1 (en)
WO (1) WO2015073512A2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298734B2 (en) * 2014-06-06 2016-03-29 Hitachi, Ltd. Storage system, computer system and data migration method
FR3031205B1 (en) * 2014-12-31 2017-01-27 Bull Sas UTILIZER EQUIPMENT DATA MANAGEMENT SYSTEM
US10650014B2 (en) * 2015-04-09 2020-05-12 International Business Machines Corporation Data ingestion process
CN108984580B (en) * 2018-05-04 2019-10-01 四川省气象探测数据中心 A kind of weather station net information dynamic management system and method

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425017B1 (en) * 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
EP1324216A1 (en) * 2001-12-28 2003-07-02 Deutsche Thomson-Brandt Gmbh Machine for classification of metadata
US7325042B1 (en) * 2002-06-24 2008-01-29 Microsoft Corporation Systems and methods to manage information pulls
US6865452B2 (en) * 2002-08-30 2005-03-08 Honeywell International Inc. Quiet mode operation for cockpit weather displays
US20050071848A1 (en) * 2003-09-29 2005-03-31 Ellen Kempin Automatic registration and deregistration of message queues
US7546297B2 (en) * 2005-03-14 2009-06-09 Microsoft Corporation Storage application programming interface
US8533746B2 (en) * 2006-11-01 2013-09-10 Microsoft Corporation Health integration platform API
CN101536021A (en) * 2006-11-01 2009-09-16 微软公司 Health integration platform API
US8589605B2 (en) * 2008-06-06 2013-11-19 International Business Machines Corporation Inbound message rate limit based on maximum queue times
US20150348083A1 (en) * 2009-01-21 2015-12-03 Truaxis, Inc. System, methods and processes to identify cross-border transactions and reward relevant cardholders with offers
US20100223364A1 (en) * 2009-02-27 2010-09-02 Yottaa Inc System and method for network traffic management and load balancing
EP2415207B1 (en) * 2009-03-31 2014-12-03 Coach Wei System and method for access management and security protection for network accessible computer services
US9305057B2 (en) * 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges
US20130218955A1 (en) * 2010-11-08 2013-08-22 Massachusetts lnstitute of Technology System and method for providing a virtual collaborative environment
CN102567333A (en) * 2010-12-15 2012-07-11 上海杉达学院 Distributed heterogeneous data integration system
US9064278B2 (en) * 2010-12-30 2015-06-23 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
JP5712825B2 (en) * 2011-07-07 2015-05-07 富士通株式会社 Coordinate encoding device, coordinate encoding method, distance calculation device, distance calculation method, program
DE202012102955U1 (en) * 2011-08-10 2013-01-28 Playtech Software Ltd. Widget administrator
US9395920B2 (en) * 2011-11-17 2016-07-19 Mirosoft Technology Licensing, LLC Throttle disk I/O using disk drive simulation model
JP2013178748A (en) * 2012-02-01 2013-09-09 Ricoh Co Ltd Information processing apparatus, program, information processing system, and data conversion processing method
WO2014165283A1 (en) * 2013-03-12 2014-10-09 Vulcan Technologies Llc Methods and systems for aggregating and presenting large data sets
US9858322B2 (en) * 2013-11-11 2018-01-02 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US20160088083A1 (en) * 2014-09-21 2016-03-24 Cisco Technology, Inc. Performance monitoring and troubleshooting in a storage area network environment

Also Published As

Publication number Publication date
GB201609714D0 (en) 2016-07-20
US20150142861A1 (en) 2015-05-21
US20240104053A1 (en) 2024-03-28
EP3069214A4 (en) 2017-07-05
CA2930542C (en) 2023-09-05
WO2015073512A2 (en) 2015-05-21
CN106104414B (en) 2019-05-21
GB2535398B (en) 2020-11-25
CA2930542A1 (en) 2015-05-21
HK1223437A1 (en) 2017-07-28
CN106104414A (en) 2016-11-09
EP3069214A2 (en) 2016-09-21
GB2535398A (en) 2016-08-17
WO2015073512A3 (en) 2015-11-19

Similar Documents

Publication Publication Date Title
DE112013000865B4 (en) Consolidation of different cloud service data and behaviors based on trust relationships between cloud services
DE202020005700U1 (en) Calling external functions from a data warehouse
DE112012004336B4 (en) System, method and program product for cost-conscious selection of templates for providing shared resources
DE112019001481T5 (en) SELECTIVE PROVISION OF MUTUAL TRANSPORT LAYER SECURITY BY USING ALTERNATIVE SERVER NAMES
DE112013002544T5 (en) Cloud-based sharing of data points and collaboration among user groups
DE202017106604U1 (en) Custom digital components
DE102013204186B4 (en) Determining priorities for cached objects to order the broadcast of changes to cached objects based on measured network bandwidth
DE102014214641A1 (en) Information processing apparatus, method for controlling the apparatus and storage medium
DE202015009298U1 (en) Dynamic adaptation of shard assignments
DE112012005037T5 (en) Manage redundant immutable files using deduplications in storage clouds
DE202020005715U1 (en) Dynamic masking of shared data objects
DE202020005693U1 (en) External credential-free tiers for database integrations
DE202021004036U1 (en) Data Clean Room
DE112015001914T5 (en) Permanently store and manage application messages
DE112020004651B4 (en) MULTI-TENANT ETL RESOURCE SHARING
DE112014005183T5 (en) Store service network
DE112013003300T5 (en) Gradual preparation of videos on the delivery
DE112017005512T5 (en) DATA TRANSFER WITHIN THE OFFICE AND OUTSIDE THE OFFICE
DE102016007400A1 (en) Techniques for evaluating applications through the use of a helper application
DE102021130396A1 (en) DATA ACCESS MONITORING AND CONTROL
DE112021003402T5 (en) BLOCKCHAIN MANAGEMENT OF DEPLOYMENT FAULTS
DE102015101062A1 (en) SERVER SYSTEM, METHOD FOR CONTROLLING SERVER SYSTEM AND STORAGE MEDIUM
DE112016004745B4 (en) Syndicated, cloud-based service model "Notification as a service" extension in an RSS feed
DE202021004328U1 (en) Data Cloud Connected Applications
DE102014116744A1 (en) Management of information technology resources

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination