System and method for electronic distribution of software and data
Abstract
According to computerized methods of distributing software and data, software components may be distributed electronically for execution in controlled environments. Such a controlled environment may, for example, restrict the components' ability to communicate through a network to one or more specified hosts. When a component requests data, such as a stream of financial data, the request may specify a source of the data, and the request may be granted or denied by the distributor based on whether the specified source is an authorized source of the data and/or whether the requested data is available from an authorized source.
Claims
exact text as granted — not AI-modified1 . A method of providing computer software from a software provider and data, the method being performed by a computer system that comprises one or more processors, one or more memories operatively coupled to at least one of the processors, and one or more interfaces operatively coupled to at least one of the processors, and the method comprising:
transmitting through at least one of the interfaces a software component that is restricted to execution in a controlled execution environment; receiving through at least one of the interfaces, from the software component executing in the controlled execution environment, a request for data from a data provider specified in the request; and in response to receiving the request for the data, at least one of the processors executing instructions to determine
(i) whether the specified data provider is also a data provider authorized by the provider of the software component,
(ii) whether the requested data is available from the specified data provider, and
(iii) if the specified data provider is not the authorized data provider, whether the requested data is available from the authorized data provider.
2 . The method of claim 1 , comprising:
in response to determining that the requested data is available from the specified data provider and further determining either
(i) that the specified data provider is the authorized data provider, or
(ii) that the specified data provider is not the authorized data provider and that the requested data is not available from the authorized data provider,
transmitting the requested data to the software component through at least one of the interfaces; wherein the computer system is configured to refuse to transmit the requested data to the software component in response to determining either
(i) that the requested data is not available from the specified data provider, or
(ii) that the requested data is available from the authorized data provider and that the specified data provider is not the authorized data provider.
3 . The method of claim 2 , wherein the requested data is a stream of data.
4 . The method of claim 2 , comprising transmitting the controlled execution environment through at least one of the interfaces, wherein the controlled execution environment is configured to restrict one or more components that execute within it to communicate only with one or more respective specified network hosts.
5 . The method of claim 2 , wherein the authorized data provider is the provider of the software component.
6 . The method of claim 2 , wherein the specified data provider is not the authorized data provider, the method comprising acting as network proxy between the software component executing in the controlled execution environment and the specified data provider.
7 . The method of claim 1 , comprising electronically receiving one or more queries from the computer network, wherein electronically transmitting the software that comprises the component takes place automatically in response to receipt of the one or more queries.
8 . The method of claim 7 , wherein the one or more queries comprise a purchase of, or subscription to, the component or the software that comprises the component in exchange for one or more first payments.
9 . The method of claim 8 , comprising, prior to receiving the one or more queries, receiving the software from an entity that is independent of the distributor.
10 . The method of claim 9 , wherein the specified network hosts are controlled by the distributor.
11 . The method of claim 10 , wherein the distributor is a vendor of electronic data services and the purchase or subscription is made by a purchaser, comprising receipt from the purchaser of one or more second payments in exchange for the electronic data services.
12 . The method of claim 11 , comprising payment by the distributor to the independent entity of an amount based on the one or more first payments.
13 . The method of claim 12 , wherein the distributor does not make any payment to the independent entity based on the one or more second payments.
14 . A computerized method of electronically distributing computer software to a purchaser, by a vendor of electronic data, in a networked computing environment, the method comprising:
electronically transmitting through a computer network computer software that comprises a controlled execution environment, the controlled execution environment being capable of controlling use of the computer network by one or more components that execute within the controlled execution environment; configuring the controlled execution environment so that any component executing within the controlled execution environment is restricted to communication via the computer network only to one or more network hosts specified by the vendor; receiving a software component from an entity that is independent of the vendor of electronic data, the component being configured to be capable of execution only within the controlled execution environment; electronically receiving from the purchaser one or more queries via the computer network comprising purchase of, or a subscription to, the component in exchange for one or more first payments; in response to receipt of the one or more queries, electronically transmitting to the purchaser through the computer network the component; and receiving from the purchaser one or more second payments in exchange for electronic data services wherein the distributor does not make any payment to the independent entity based on the one or more second payments.
15 . The method of claim 14 , comprising paying the entity that is independent of the vendor of electronic data an amount that is based on the one or more first payments but is not based on the one or more second payments.
16 . A computer system for providing computer software from a software provider and data, the computer system comprising:
one or more processors; one or more memories operatively coupled to at least one of the processors; one or more interfaces operatively coupled to at least one of the processors; and one or more computer-readable storage media operatively coupled to at least one of the processors and encoded with instructions that, when executed by at least one of the processors, cause the computer system at least to
transmit through at least one of the interfaces a software component that is restricted to execution in a controlled execution environment;
receive through at least one of the interfaces, from the software component executing in the controlled execution environment, a request for data from a data provider specified in the request; and
in response to receiving the request for the data, determine (i) whether the specified data provider is also a data provider authorized by the provider of the software component, (ii) whether the requested data is available from the specified data provider, and (iii) if the specified data provider is not the authorized data provider, whether the requested data is available from the authorized data provider.
17 . The computer system of claim 16 , wherein:
the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to, in response to determining that the requested data is available from the specified data provider and further determining either (i) that the specified data provider is the authorized data provider, or (ii) that the specified data provider is not the authorized data provider and that the requested data is not available from the authorized data provider, transmit the requested data to the software component through at least one of the interfaces; and the instructions are such that the computer system refuses to transmit the requested data to the software component in response to determining either (i) that the requested data is not available from the specified data provider, or (ii) that the requested data is available from the authorized data provider and that the specified data provider is not the authorized data provider.
18 . The computer system of claim 17 , wherein the requested data is a stream of data.
19 . The computer system of claim 17 , wherein:
the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to transmit the controlled execution environment through at least one of the interfaces; and the controlled execution environment is configured to restrict one or more components that execute within it to communicate only with one or more respective specified network hosts.
20 . The computer system of claim 17 , wherein the authorized data provider is the provider of the software component.
21 . The computer system of claim 17 , wherein:
the specified data provider is not the authorized data provider; and the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to act as network proxy between the software component executing in the controlled execution environment and the specified data provider.
22 . The computer system of claim 6 , wherein:
the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to electronically receive one or more queries from the computer network; and electronically transmitting the software that comprises the component takes place automatically in response to receipt of the one or more queries.
23 . The computer system of claim 22 , wherein the one or more queries comprise a purchase of, or subscription to, the component or the software that comprises the component in exchange for one or more first payments.
24 . A computer-readable storage medium encoded with instructions that, when executed by one or more processors within a computer system that comprises one or more memories operatively coupled to at least one of the processors, and one or more interfaces operatively coupled to at least one of the processors, cause the computer system at least to
transmit through at least one of the interfaces a software component that is restricted to execution in a controlled execution environment; receive through at least one of the interfaces, from the software component executing in the controlled execution environment, a request for data from a data provider specified in the request; and determine (i) whether the specified data provider is also a data provider authorized by the provider of the software component, (ii) whether the requested data is available from the specified data provider, and (iii) if the specified data provider is not the authorized data provider, whether the requested data is available from the authorized data provider.
25 . The computer-readable storage medium of claim 24 , wherein:
the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to, in response to determining that the requested data is available from the specified data provider and further determining either (i) that the specified data provider is the authorized data provider, or (ii) that the specified data provider is not the authorized data provider and that the requested data is not available from the authorized data provider, transmit the requested data to the software component through at least one of the interfaces; and the instructions are such that the computer system refuses to transmit the requested data to the software component in response to determining either (i) that the requested data is not available from the specified data provider, or (ii) that the requested data is available from the authorized data provider and that the specified data provider is not the authorized data provider.
26 . The computer-readable storage medium of claim 25 , wherein the requested data is a stream of data.
27 . The computer-readable storage medium of claim 25 , wherein:
the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to transmit the controlled execution environment through at least one of the interfaces; and the controlled execution environment is configured to restrict one or more components that execute within it to communicate only with one or more respective specified network hosts.
28 . The computer-readable storage medium of claim 25 , wherein the authorized data provider is the provider of the software component.
29 . The computer-readable storage medium of claim 25 , wherein:
the specified data provider is not the authorized data provider; and the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to act as network proxy between the software component executing in the controlled execution environment and the specified data provider.
30 . The computer-readable storage medium of claim 24 , wherein:
the instructions comprise instructions that, when executed by at least one of the processors, cause the computer system at least to receive one or more queries from the computer network; and electronically transmitting the software that comprises the component takes place automatically in response to receipt of the one or more queries.
31 . The computer-readable storage medium of claim 30 , wherein the one or more queries comprise a purchase of, or subscription to, the component or the software that comprises the component in exchange for one or more first payments.Join the waitlist — get patent alerts
Track US2013179287A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.