Scalable data feed system
First Claim
1. A system for pulling data from a plurality of data sources using a pull service, the system comprising:
- one or more processors;
a memory in electronic communication with the one or more processors; and
instructions stored in the memory, the instructions being executable by the one or more processors to;
retrieve information identifying an assigned data source of the plurality of data sources, wherein the pull service is tasked with pulling data from the assigned data source;
receive a command to pull requested data;
schedule an attempt to pull the requested data from the assigned data source, wherein the schedule is maintained at least in part as a queue of work items, wherein work items specify the requested data to be pulled from the assigned data source;
execute a scheduled work item; and
if execution of the scheduled work item is successful, forward the requested data to a push service.
2 Assignments
0 Petitions
Accused Products
Abstract
A scalable data feed system is disclosed. The data feed system may be offered as a cloud service that can serve many enterprises or tenants that require data to be pulled from information sources such as FTP, POP3, databases, line of business systems, a topic subscription, or an RSS feed, and pushed the data to information sinks, such as SMTP, email, FTP, mobile phones, and other devices and services. A pull agent pumps data from pull sources and pushes the data out to push agent counterparts. The push agent transforms and sends the data in messages to push sink, such as FTP, SMTP, or a mobile device. Both the pull agent and the push agent services are implemented as replicated services over a structured overlay network for high availability that can serve multiple requests to pump out data from multiple pull sources and push the data to multiple information sinks.
25 Citations
18 Claims
-
1. A system for pulling data from a plurality of data sources using a pull service, the system comprising:
-
one or more processors; a memory in electronic communication with the one or more processors; and instructions stored in the memory, the instructions being executable by the one or more processors to; retrieve information identifying an assigned data source of the plurality of data sources, wherein the pull service is tasked with pulling data from the assigned data source; receive a command to pull requested data; schedule an attempt to pull the requested data from the assigned data source, wherein the schedule is maintained at least in part as a queue of work items, wherein work items specify the requested data to be pulled from the assigned data source; execute a scheduled work item; and if execution of the scheduled work item is successful, forward the requested data to a push service. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for pulling data from a plurality of data sources using a pull service, the method comprising:
-
retrieving information identifying an assigned data source of the plurality of data sources, wherein the pull service is tasked with pulling data from the assigned data source; receiving a command to pull requested data; scheduling an attempt to pull the requested data from the assigned data source, wherein the schedule is maintained at least in part as a queue of work items, wherein work items specify the requested data to be pulled from the assigned data source; executing a scheduled work item; and if the execution of the work item is successful, forwarding the requested data to a push service. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
receiving, at a pull agent service, information about a protocol that is defined for an information sink, the protocol being published by a push agent service; receiving data using the pull agent service that pulls data from an endpoint source, wherein the pull agent service is a collection of pull endpoint hosting services that pull data from external information sources and each external information source is assigned to a particular pull endpoint hosting service from among the collection of pull endpoint hosting services; transforming the data, by the pull agent service, into the protocol that is defined for the information sink, thereby creating first transformed data; sending the first transformed data from the pull agent service to the push agent service; performing additional transformations with respect to the first transformed data at the push agent service, thereby creating second transformed data; and sending the second transformed data as messages to the information sink. - View Dependent Claims (17, 18)
-
Specification