CA2844667C

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.

CA2844667C, drawing sheet 1
Sheet 1 of 15

Term

5.9 yearsleft in the term

Expires 8 August 2032.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

20 claims: 3 independent, 17 dependent

  1. 1
    CLAIMS:1. A method for operating an electronic delivery platform for distributing a plurality of software components to a user device, the method comprising: receiving the plurality of software components from one or more authorized software developers, each software component of the plurality of software components configured to execute only in a controlled executed environment;receiving a request, from the user device, for access to a particular one software component of the plurality of software components;transmitting the particular one software component to the user device;executing, on the user device, the particular one software component in the controlled execution environment, the controlled execution environment being a sandbox environment, for: restricting access to one or more functions of an operating system resident on the user device;restricting access of the particular one software component to one or more network hosts specified by a particular one of the one or more authorized software developers associated with the particular one software component;and transmitting a request for data from a specified data provider;and in response to receiving the request for data, determining w'hether the specified data provider is authorized by the particular one of the one or more authorized software developers associated with the particular one software component, and if the specified data provider is an authorized data provider, then: transmitting the data to the particular one software component executing on the user device.
  2. 11
    An electronic delivery platform for distributing a plurality of software components to a user device, the electronic delivery platform comprising:an application portal comprising a first processor, for executing computer program instructions stored in a memory, which when executed by the first processor, cause the first processor to perform operations comprising: -22CA 2844667 2017-11-24 receiving the plurality of software components from one or more authorized software developers, each software component of the plurality of software components configured to execute only in a controlled executed environment;storing the plurality of software components from one or more authorized software developers;receiving a request, from the user device, for access to a particular one software component of the plurality of software components, transmitting, in response to the request received, the particular one software component to the user device;wherein the user device comprises a second processor, for executing computer program instructions stored in a memory, which when executed by the second processor, cause the second processor to perform operations comprising: executing the particular one software component in the controlled execution environment, the controlled execution environment being a sandbox environment, for: restricting access to one or more functions of an operating system resident on the user device;restricting access of the particular one software component to one or more network hosts specified by a particular one of the one or more authorized software developers associated with the particular one software component;and transmitting a request to the application portal for data from a specified data provider;and wherein in response to receiving, by the application portal, the request for data, the operations performed by the first processor further comprise: determining whether the specified data provider is authorized by the particular one of the one or more authorized software developers associated with the particular one software component, and if the specified data provider is an authorized data provider, then: transmitting the data to the particular one software component executing on the user device. -23 CA 2844667 2017-11-24
  3. 18
    A method for operating a user device for accessing an electronic delivery platform for distributing a plurality of software components, the method comprising:transmitting a request for access to a particular one software component of a plurality of software components, each software component of the plurality of software components being associated with a particular authorized software developer and being configured to execute only in a controlled executed environment;receiving, in response to the request, the particular one software component;-24CA 2844667 2017-11-24 executing the particular one software component in the controlled execution environment, the controlled execution environment being a sandbox environment and the executing of the particular one software component providing, for: restricting access to one or more functions of an operating system resident on the user device;restricting access of the particular one software component to one or more network hosts specified by the particular authorized software developer associated with the software component;and transmitting a request for data from a specified data provider;and receiving the data, by the particular one software component executing on the user device, only in response to determining, by the electronic delivery platform, whether the specified data provider is also an authorized data provider authorized by the authorized software developer associated with the particular one software component.