The disclosed invention relates generally to control of distribution of content over a network, and in particular, to control of processing and/or distribution of static, media, and/or software objects in a procedural software framework.
The world wide web is a platform that has been used to exchange various forms of content including videos, text, music, etc. Often this content is distributed to users and/or computers in an ad-hoc fashion, for example, using e-mail or as files embedded in a web-page. Recently, various forms of “viral” distribution or replication of content have been developed that allow users to more easily spread content to other users than previously known ad-hoc methods. Although these viral distribution methods are more convenient than distributing content in an ad-hoc fashion, they have many shortcomings. For example, they do not provide for methods to control undesirable distribution of content based on criteria defined by, for example, an owner of the content. In other words, the spreading of content using ad-hoc methods and/or forms of viral spreading cannot be controlled in a useful way. Thus, there is a need for an apparatus and method for restricting or permitting the distribution of content.
A method includes receiving an instruction used to define a widget-container containing a service module associated with a widget. The widget-container is a procedural software framework configured to be executed at a widget-container processing device in response to a reference to the widget-container being accessed from a content aggregation point. The widget-container has a portion configured for receiving the widget. The method also includes determining whether processing of the widget within the portion of the widget-container is restricted and/or allowed.
The present invention is described with reference to the accompanying drawings. In the drawings, identical or like reference numbers indicate identical or functionally similar elements.
A widget-container (also can be referred to as a container) is a procedural software framework that can be configured to contain a widget and/or contain at least one service module that can be associated with the widget and/or widget-container. As a procedural software framework, the widget-container can be a series of instructions that are executable (e.g., interpretable) by, for example, a processor of, for example, a computer or mobile phone. The widget and/or service module is “contained” in the widget-container when a widget and/or service module is either referenced in a widget-container or actually integrated into the procedural software framework of the widget-container. In some embodiments, the widget-container includes a portion that is configured for processing of the widget within the widget-container. The widget and/or service module when being contained in the widget-container can be referred to as being wrapped or containerized in the widget-container. In some embodiments, the widget and/or the service module (or references to the widget and/or service module) can be referred to as components or portions of the widget-container.
The widget-container is a portable framework that can be referenced in (e.g., embedded in, referenced using an embed or object tag) and/or accessed from/using a content aggregation point (e.g., web-page, wireless access protocol (WAP) page). For example, when a request for the widget-container (and a widget associated with the widget-container) is received in response to a reference to the widget-container being accessed from a content aggregation point, the widget-container can be served for execution within the content aggregation point in response to the request. The widget can be any type of object such as a static data object (e.g., text or textual document), media object (e.g., video, mp3, or image), and/or software object (e.g., javascript, Flash program) that can be contained (e.g., integrated or referenced) and/or processed in the widget-container. Components of the widget-container are processed in the widget-container when they are, for example, executed, rendered, manipulated, and/or displayed.
Placing, sending (e.g., sending and instance of, serving and instance of), and/or processing of a portion associated with a widget-container (e.g., entire widget-container) can be restricted or allowed (e.g., permitted) based on control information (e.g., restriction/blocking information, allowance/permission information) and based on parameter values/identifiers, for example, included in a request for a widget-container. This determination can be referred to generically as a control determination, or as a restriction determination or an allowance determination. The parameters/identifiers can be, for example, extracted from a reference associated with a widget-container and/or associated with a content aggregation point where a reference to the widget-container has been placed.
The control information can be, for example, a control rule, a control condition, and/or a control instruction that can be associated with any portion associated with the widget-container. In some embodiments, for example, control information can be based on a metadata parameter value (e.g., tracking parameter values) associated with a portion associated with a widget-container and stored in a database such as a metadata database. More details regarding metadata parameter values as related to a widget-container are set forth in co-pending U.S. application Ser. No. 11/537,375 (now abandoned), “Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation,” which is incorporated herein by reference in its entirety.
A control determination (e.g., restriction determination, allowance determination) can be performed at various times. For example, a control determination can be performed before or in response to a widget-container being placed in a content aggregation point, before the widget-container is sent to a widget-container processing device, or after the widget-container is sent to a widget-container processing device. For example, a widget can be prevented from processing in a widget-container before the widget-container is sent to a widget-container processing device based on, for example, content included in a content aggregation point where the widget is to be processed. In some embodiments, a control determination can prevent (e.g., block) a widget-container from being placed in one or more specified content aggregation points.
A content aggregation point can be, for example, a desktop, a start page, a wireless application protocol (WAP) gallery, a gallery, a portal, a processor readable-vehicle (e.g., web-page, web site), and/or a directory. WAP galleries, web galleries, and so forth are types of content aggregation points that can be referred to as content distribution points because they can be vehicles from which content such as widgets and/or widget-containers can be distributed. A content distribution point can be a type of processor-readable vehicle. More details regarding processor-readable vehicles are set forth in co-pending U.S. application Ser. No. 11/537,362 (U.S. Pat. No. 8,056,092), “Method and Apparatus for Widget-Container Hosting and Generation,” which is incorporated herein by reference in its entirety.
The widget-container can be defined (e.g., dynamically generated) and/or modified to control processing and/or sending associated with the widget-container in accordance with a control determination (e.g., restriction determination, allowance determination). Modifying the widget-container, for example, can enable control of the processing and/or sending of portions of a widget-container such as a widget and/or a service module even when these components are served from separate devices/locations. Statistics related to control determinations can be collected and/or processed and proactive control determinations can be performed based on the placement (e.g., parentage, tracking) of widget-containers. The statistics can be based on tracking parameters associated with a metadata database.
Although many of the embodiments within the detailed description are described with respect to portions associated with widget-containers (e.g., widget associated with a widget-container, service module associated with a widget-container, widget-container framework, entire widget-container containing a widget(s)and/or a service module(s)) a person of skill in the art, having the benefit of this disclosure, can recognize that the methods and apparatus associated with the embodiments can be applied to widgets that are not associated with a widget-container.
Referring now to the drawings,
The widget-container can be executed on various platforms (e.g., mobile phone, personal computer, personal digital assistant (PDA)) and instances of references to the widget-container can be included in and/or spread to a variety of locations such as content aggregation points (e.g., web sites, WAP site) that can be content aggregation points executed (e.g., read) using the widget-container processing devices 150. The widget-container can be configured to include a portion configured for processing one or more widgets when the widget-container is executed at a widget-container processing device 150. The service module (or reference to the service module) contained in the widget-container can be a pre-defined and/or customizable (e.g., user-defined) function related to a variety of functions (e.g., tracking, placing) related to the widget-container and/or its components (e.g., widget). More details related to widget-container spreading and components are set forth in the above-identified co-pending application entitled, “Method and Apparatus for Widget-Container Hosting and Generation.”
The service module and/or widget can be wrapped in the widget-container, for example, at the time that the widget-container is first defined, after the widget-container has been generated before serving, dynamically when the widget-container is being served, and/or after the widget-container has been served. In some embodiments, the widget-container can be produced dynamically and/or statically for storage, for example, using a hardware and/or software generation engine (not shown) that can be included in the widget-container host 100 and/or a widget-container creation device 120. In some embodiments, the widget-container can be dynamically modified using dynamic injection (i.e., injecting data into the widget-container just before/when the widget-container is served). More details related to dynamic widget-container generation are set forth in the above-identified co-pending application entitled, “Method and Apparatus for Widget-Container Hosting and Generation.”
Each of the widget-container processing devices 150 (also can be referred to as a processing device) can be any type of device that is configured to process the widget-container and a widget and/or service module that can be contained in the widget-container. Each of the widget-container processing devices 150 can be, for example, a computer, a mobile phone, a PDA, a server, and/or any other processor-based device. The widget-container can be configured such that the widget-container can be processed by each of these widget-container processing devices 150 even though the platforms (e.g., hardware, architecture, software, operating system, runtime libraries, programming languages) of the respective widget-container processing devices 150 may be different. The network 140 can be any type of network such as a local area network (LAN) and/or a wide area network (WAN) implemented as a wired and/or wireless network with one or more segments in a variety of environments such as, for example, an office complex.
The widget-container host 100 is configured to use the control information 130 to determine whether or not to allow any portion associated with a widget-container to be sent to and/or processed at one or more of the widget-container processing devices 150. For example, the widget-container host 100 can receive a request for a widget-container from a widget-container processing device 150. Based on a parameter value/identifier included in the request and based on the control information 130, sending a portion associated with a widget-container that is stored at the widget-container host 100 and/or dynamically generated at the widget-container host 100 can be restricted or allowed. In some embodiments, the parameter value/identifier can be retrieved from, for example, a metadata database (not shown) based on a value included in the request. In some embodiments, for example, the widget-container host 100 can be configured to determine whether or not one or more service modules should be contained in a widget-container based on the control information 130.
The block diagram also illustrates a widget-server 110 in communication with the widget-container processing devices 150 via network 140. Assuming that sending of a widget is permitted, the widget server 110 can be configured to store and send the widget referenced within a widget-container. For example, in response to a request for the widget, if allowed based on the control information 130, the widget server 110 can send (e.g., serve) the widget to one or more of the widget-container processing devices 150. In some embodiments, the request for the widget can be defined based on a reference to a widget being accessed from an instance of the widget-container at a widget-container processing device 150. The widget can then be sent from the widget server 110 to the widget-container processing device 150 and processed within the instance of the widget-container.
The widget-container host 100 can be configured to control sending and/or processing of any portion (e.g., widget) of a widget-container by modifying the widget-container in a variety of ways. For example, if processing of a widget within an instance of a widget-container is restricted based on the control information 130, a reference to the widget that is normally included in the widget-container can be removed when the instance of the widget-container is generated and/or served (e.g., sent). In other words, the widget-container can be modified such that processing of the widget is prevented. Because the widget server 110, for example, may not have access to the control information 130 and/or may not be configured to process the control information 130, the sending of the widget from the widget server 110 can be controlled by modifying the widget-container associated with the widget.
In some embodiments, the widget-container host 100 can modify a widget-container such that a reference to a portion that is typically included in the widget-container is not included in the widget-container when the widget-container is generated or can be removed after the widget-container is generated. In some embodiments, the widget-container host 100 can also include a null reference in place of a valid reference to a portion associated with the widget-container (e.g., widget). This can effectively prevent the portion from being sent and/or processed. The widget-container host 100, in some embodiments, can send an indicator to, for example, a widget-container processing device 150 to trigger the widget-container processing device 150 to stop processing a portion associated with a widget-container. In some embodiments, the widget-container host 100 can send an indicator to, for example, the widget server 110 to prevent the widget server 110 from sending (e.g., block streaming) a widget for processing within a widget-container.
A control determination can be based on parameters and/or identifiers included in a request for a widget-container that can be, for example, extracted from a reference associated with a widget-container as well as based on control information 130 related to the widget-container stored in a memory (e.g., database). For example, an identifier associated with a placement of a widget-container can be received at the widget-container host 100 in a request for the widget-container and used by the widget-container host 100 with reference to the control information 130 to make a control determination. The request can be defined by any of the widget-container processing devices 150. The widget-container 100 can then generate, modify, and/or send the widget-container based on a result of the control determination.
The control information 130 can be any type of information that can be used to determine whether or not to allow sending and/or processing of portions of a widget-container associated with one or more of the widget-container processing devices 150. For example, the control information 130 can include or be an instruction that specifies whether or not a particular widget, service module, and/or widget-container should be sent to a particular type of widget-container processing device 150. The control information can include information from a whitelist database (e.g., third party whitelist database, widget-container specific whitelist database) or blacklist database (e.g., third party blacklist database, widget-container specific blacklist database) associated with any portion associated with a widget-container.
The control information 130 can be stored in, for example, the memory 105 of the widget-container host 100 or a separate database (e.g., metadata database) that can be accessed by the widget-container host 100 via a network such as network 140. The control information 130 can be associated with or include metadata parameters and metadata parameter values (e.g., tracking parameter values) associated with a widget-container and/or a component of the widget-container (e.g., widget or service module). The metadata parameters and values can be used to, for example, dynamically customize or track the widget-container and/or the component of the widget-container. The control determination (e.g., restriction determination, allowance determination) can include a restriction or allowance of a customizable feature of any portion associated with the widget-container. For example, a determination can be based on a tracking history of a particular viewer of any portion associated with a widget-container, a location where any portion associated with a widget-container is viewed, a placement history of any portion associated with a widget-container.
In some embodiments, any portion associated with the widget-container can be stored and retrieved from the memory 105 of the widget-container host. The memory 105 can be, for example, a database included in the widget-container host 100. In some embodiments, any portion associated with the widget-container can be stored in and accessed from a memory device such as a database that is a remote database and/or a distributed database that can be accessed by the widget-container host 100 via network 140 or via a separate network (not shown). In some embodiments, a widget-container served from the widget-container host 100 can contain a reference to one or more service modules that are served from, for example, a service module server (not shown).
Also, as shown in
The widget-container creation device 120 can trigger the generation and/or modification of the widget-container at the widget-container host 100. In some embodiments, the widget-container creation device 120 can send an instruction from, for example, a processor (not shown) to cause the widget-container host 100 to generate and/or modify a widget-container. In some embodiments, widget-container creation device 120 can trigger the generation and/or modification of the widget-container at the widget-container host 100.
Although in this embodiment, the widget-container host 100 is a centralized control/storage mechanism that manages requests received from container processing devices 150 and manages the sending of widgets containers (e.g., prompts a separate device (not shown) to send a widget-container stored in a separate database (not shown)), the functionality of the widget-container host 100 can be decentralized and/or distributed. For example, a hierarchy of widget-container hosts 100 can be arranged, for example, with management components and/or slave components that control, configure, and coordinate the sending of widget-containers to the widget-container processing devices 150.
As shown in
After the widget-container 250 has been received at the widget-container processing device 240, a widget 260 is served from a widget-server 280 for processing (e.g., execution) within the widget container 250 in response to a widget reference 252 being accessed from the widget-container 250. The widget 260 is served from the widget server 280 in response to a request for the widget 260 defined based on the widget reference 252. In some embodiments, the widget 260 can be requested, received, and/or processed within the widget-container 250 after the widget-container 250 is received at the content aggregation point 220.
The content aggregation point 220 can be, for example, a web-page, and the widget-container reference 222 can be, for example, an embed tag included in the content aggregation point 220. In some embodiments, the widget-container 250 is a Flash object and the content aggregation point 220 is a Flash-enabled web browser or Flash-enabled web browser page.
Although
The widget-container server 270 can be configured to determine whether processing of the widget 260 within the widget-container 250 and/or sending/execution of the widget-container 250 are allowed based on control information 295. Although, in this embodiment, the control information 295 is stored in and accessed by the widget-container server 270 from a control database 290, in some embodiments, the control information 295 can be stored in a memory (not shown) of the widget-container server 270 or in a set of distributed memory devices (not shown) such as distributed databases. In some embodiments, the control information 295 can be generated and/or collected by the widget-container server 270 when needed. In some embodiments, the control database 290 can be a third-party database that includes control information 295 such as a white-list or a black-list.
The control information 295 can be defined by the owner of widget 260 and/or the owner/creator of the widget-container 250. Although the widget 260 and the widget-container 250 can be served from two different devices—the widget server 280 and widget-container server 270, respectively—the owner of each can be the same entity. The owner of the widget 260, for example, can define a control rule or control condition based on content (e.g., images, text) associated with content aggregation point 220 (e.g., web-page, WAP page). The owner of widget 260 may restrict (or allow) processing of widget 260 within the content aggregation point 220 because the content of content aggregation point 220 may be viewed as conflicting or incompatible with the content of widget 260.
In some embodiments, the control information 295 can be based on a content rule associated with a content aggregation point. More details regarding content rules associated with content aggregation points are set forth in U.S. application Ser. No. 11/682,626 (now abandoned), filed on Mar. 6, 2007, and entitled, “Method and Apparatus for Widget-Container Platform Adaptation and Distribution” which is incorporated herein by reference in its entirety.
The control information 295 can be related to any type of information that can be used to determine whether or not to allow processing of widget 260 within the widget-container 250 and/or whether or not to allow sending of the widget-container 250 to the widget-container processing device 240 for execution within the content aggregation point 220. For example, the control information 295 can be configured such that a control determination (e.g., restriction determination, allowance determination) can be based on an identifier (e g , uniform resource locator (URL), uniform resource identifier (URI)) associated with the content aggregation point 220 where the widget-container reference 222 is placed. The control information 295 can include, for example, a rule that indicates whether processing of widget 260 in content aggregation point 220 is allowed or restricted.
In some embodiments, a control determination can be based on a location of the widget-container processing device 240. For example, an indicator (e.g., Internet Protocol (IP) address or portion of an IP address) of the location of the widget-container processing device 240 can be used to determine whether or not to allow sending a portion associated with the widget-container 270 to the widget-container processing device 240.
In some embodiments, a control determination can be performed in response to the widget-container 250 being placed (e.g., widget-container reference 222 to the widget-container 250 being placed) in content aggregation point 220. The result of the control determination can be stored (e.g., at the widget-container host 100) and associated with a placement identifier uniquely associated with the placement of the widget-container 250 in the content aggregation point 220. If the unique placement identifier is received in a request for an instance of the widget-container 250, the result of the control determination can be immediately implemented without performing the control determination a second time. If the widget-container reference 222 is uniquely associated with the placement of the widget-container 250 in the content aggregation point 220, the widget-container reference 222 can be used as the trigger for implementing the stored control determination result.
Although not illustrated in this embodiment to simplify the discussion, the widget-container 250 can also contain a service module integrated into the widget-container 250 (e.g., integrated during dynamic generation) or served from, for example, a service module server (not shown). A control determination can also be based on or related to the service module. The service module can be a pre-defined function associated with the widget 260. For example, a service module can be a metadata searching/retrieval function, a polling/categorizing function, a widget-container deployment function (e.g., using a placement service module), a transaction service function (e.g., service module for facilitating a web purchase, service module used for signing a user up for a web service, etc.), a security function (e.g., security firewall function), and/or a widget-container tracking function.
The widget 260 can be, for example, a static data object, a software object, and/or a media object. Within each of these categories, the widget can be a specific content type. For example, the widget 260 can be processed (e.g., played) or a displayed media object such as a video file (i.e., a video content file), an mp3 file (i.e., audio content file), or an image file (i.e., image content file). The widget 260 can be a static data object that is, for example, displayed within the widget-container 250. The static data object can be, for example, a textual object such as a set of letters, a textual document, or an html based textual document. The static data object can include, for example, links to other widgets (not shown). The widget 260 can also be a software object such as an executable application or set of instructions that is executed within the procedural software framework of the widget-container 250. The results of the executable application can be included and/or displayed within the procedural software framework of the widget-container 250. The widget-container 250 can be configured so that the widget 260 can be processed within a portion of the widget-container 250 when the widget-container 250 is displayed on the display 242.
The procedural software framework that makes up the widget-container 250 can be programmed in any number of programming languages that are compiled (e.g., C++) and/or in programming languages that are interpreted (e.g., Java). An executable portion (of the procedural software framework) that manages and controls service module(s) (not shown) and/or the widget 260 referenced (e.g., contained) in the widget-container 250 can be referred to as the core of the widget-container 250. Metadata parameter values can be passed to the widget-container 250 and used by, for example, the core of the widget-container 250 to modify, for example, attributes of the widget-container 250 and/or widget 260 (e.g., x, y location of the widget 260, size of the widget 260, color, themes, styles, etc.).
The identifier of the content aggregation point 340 can be received at, for example, a widget-container host for use in a control determination at the widget-container host. A request for the widget-container 310, for example, can include the identifier of the content aggregation point 340 or a separate identifier such as a placement identifier 330 that can be used to look-up the identifier of the content aggregation point 340. In some embodiments, the identifier of the content aggregation point 340 can be retrieved from a metadata database (not shown) that can be used to associate a widget-container reference with the identifier of the content aggregation point 340.
Although, a control determination can be based on one or more content aggregation point identifiers 340, in some embodiments, a control determination can be performed based on a variety of parameters that can be, for example, stored in a metadata parameter database. For example, a control determination can be based on parentage information in a metadata database (not shown) or a placement identifier 330 associated with a particular placement of a reference to a widget container 310 in a content aggregation point 345 associated with the content aggregation point identifiers 340.
For example, in some embodiments, the placement identifier 330 is included in a reference to a widget-container 310 placed in a content aggregation point 345 and can be used in a control determination. When a reference to widget-container A is accessed from a content aggregation point 345, a request for widget-container A can be defined to indicate the placement identifier 330 uniquely associated with the particular placement of widget-container A and included in the reference. If the widget-container A being requested is the widget-container placed in the content aggregation point X, the request can include the placement identifier P1 from the reference. The placement identifier P1 can then be used to determine based on table 300 that both widget processing and widget-container execution are permitted.
In some embodiments, the control information in table 300 can be used in conjunction with a default rule that processing of a widget and/or sending/execution of a widget-container is restricted unless allowed. In this situation, the determination can be referred to as an allowance determination. Conversely, a set of control rules can be defined such that processing of a widget and/or sending/execution of a widget-container is allowed unless restricted based on a control rule in a control database. In this situation, the determination can be referred to as a restriction determination.
Referring back to
The tracking kernel can also be used to collect tracking parameter values related to placement information such as, for example, what web-page (e.g., content aggregation point 220) a widget-container is referenced on and/or placed on, where on the page it was placed, and/or size of the widget-container 250 (e.g., dimensional and memory). This information can be used in a control determination. For example, a tracking parameter value(s) can be used to determine whether a reference to a widget-container will trigger a portion associated with the widget-container to be processed in a portion of a web-page, such as processor readable vehicle 220, that is not allowed based on the control information 295. The tracking parameter value can be used to determine whether the widget-container should be processed on the web-page at all based on the control information 295. Certain user-triggered interactions based on a tracking parameter value can also trigger restriction (or allowance) of a portion associated with a widget-container from being processed and/or executed.
In some embodiments, a control rule can be a complex set of rules based on one or more variables and/or an algorithm. For example, a control rule can be based on portions of multiple widget-containers placed within a particular content aggregation point that are defined as mutually exclusive portions of widget-containers (e.g., should not be displayed on the same content aggregation point, should not be displayed on a specified content aggregation point). In some embodiments, a control determination based on a complex set of rules can be performed based on tracking parameter values (e.g., parentage information) collected and/or stored in, for example, a metadata database (not shown) or the control database 290.
In some embodiments, a notification can be sent to an entity associated with a component of the widget-container 250 that indicates that processing of a particular component of the widget-container 250 such as the widget 260 has been terminated. The notification can be generated and sent by, for example, the widget-container server 270. The notification can include statistical data that indicates, for example, one or more content aggregation points, locations, and/or processing devices where the processing of the widget 260 has been terminated or permitted. The statistical data can be based on tracking parameter values and/or parentage information associated with the widget 260 of the widget-container. For example, control results for a portion associated with a widget-container with a particular genealogical lineage can be compiled and sent in a notification. In some embodiments, statistical data based on control information can be stored in, for example, the control database 290 where the statistical data can be retrieved. In some embodiments, historical termination data can be used to update, for example, control information 295 in the control database 290.
Table 490 illustrates a set of control categories 450 associated with content aggregation points identifiers 460. The control categories 450 can be determined based on, for example, an assessment (e.g., content scan) of each of the content aggregation points where a widget-container 410 has been placed. In some embodiments, a regular (e.g., nightly) or random assessment of content of content aggregation points, for example, can be used to update table 490. An assessment of content can be based on, for example, a scanned image of a content aggregation point. The assessment of the content of a content aggregation point can be used to update control information associated with any portion associated with a widget-container. In some embodiments, content associated with a particular content aggregation point can be assessed in response to a widget-container reference associated with a widget-container being placed in the particular content aggregation point. In other words, placement of a widget-container (e.g., placement of a reference to a widget container) in a content aggregation point can trigger updating of table 490.
If table 400 is a table stored at, for example, a widget-container server and table 490 is a table stored at a control database, the widget-container server can make a control determination by cross-referencing the control information in table 400 with the control information in table 490 accessed from the control database. The widget-container server can cross-reference the information based on a determination of, for example, a content aggregation point identifier where any of the widget-containers 410 have been placed. For example, if widget-container M has been placed in content aggregation point URI3, a widget-container server can determine using tables 400 and 490 that widget W can be processed within widget-container M at URI3 because content category A is not restricted.
Default rules can be used in conjunction with tables 400 and 490. For example, if widget-container P were placed in URI3, a default rule may prevent processing of widget Q within the widget-container P at URI3 because an existing rule in table 400 does not cover that situation. Although the tables 400 and 490 were illustrated as two separate blocks of information, in some embodiments, the tables 400 and 490 can be combined or portions of either of the tables 400 and/or 490 included as separate blocks of information in, for example, separate databases.
In some embodiments, control categories can be, for example, location-related control categories. For example, a portion associated with a widget-container may be permitted to be processed (or prevented from processing) in only certain locations based on a control category within a control rule. The location control can be defined based on, for example, an Internet Protocol (IP) address associated with a request for the widget-container.
Referring back to
After the widget-container has been sent, a control determination (e.g., restriction determination, allowance determination) is performed at 520 to determine whether processing/execution of the component of the widget-container is restricted or allowed. The control determination can be based on control information that is retrieved from a memory such as a control database. The control determination can be based on, for example, an identifier associated with the content aggregation point where the widget-container is to be executed and/or displayed. The control determination can be based on the content of the content aggregation point or the physical location where the content aggregation point is being accessed. The control determination can also be performed based on a credential or location identifier associated with an entity that is requesting the widget-container.
In response to a control determination being made at 520, an indicator to terminate processing/execution of the component of the widget-container at the widget-container processing device is sent at 530. The indicator can be sent to, for example, a widget server to cause the widget server to stop streaming a video widget that is being processed within the widget-container. The indicator can be sent directly to the widget-container processing device and can be configured to cause the widget-container processing device to stop processing/executing the component of the widget-container.
At 540, a notification to an entity associated with the component of the widget-container that processing/execution of that component has been terminated. The notification can include statistical data that indicates, for example, other content aggregation points, locations, and/or processing devices where the processing/execution of the component has been terminated. The statistical data can be based on tracking and/or parentage information associated with any portion associated with the widget-container. In some embodiments, historical termination data can be used to update, for example, a control database.
Although the flowchart shown in
Referring back to
If the widget-container server 270 determines, before the widget-container 250 has been sent, that processing of the widget 260 is restricted, the widget-container server 270 can still send the widget-container 270. However, the widget-container 270 can be modified, for example, by removing the widget reference 252, including a null (e.g., empty) reference (not shown), and/or a re-directing reference (e.g., to a notice that the widget 260 will not be processed) to prevent a valid request for the widget 260 from being defined and sent to the widget server 280. These techniques will effectively prevent the widget 260 from being sent to and processed in the widget-container 250 at the widget-container processing device 240.
In contrast, if the widget-container server 270 determines that processing of the widget 260 within the widget-container 250 is allowed before the widget-container 250 has been sent, the widget-container server 270 can send the widget-container 250 with a widget reference 252 that is valid. The valid widget reference 252 or null widget reference 252 can be dynamically injected into the widget-container 250 when the widget-container 250 is generated, for example, based on an instruction in response to a request for the widget-container 250. Likewise, a valid widget reference 252 can be removed from the widget-container 250 when the widget-container 250 is dynamically generated.
Whether a control determination is made before or after the widget-container 250 is served, the widget-container server 270 can send an indicator to the widget server 280 to cause the widget server 280 to prevent sending or halt (e.g., block) sending, if necessary, of the widget 260 to the widget-container processing device 240. The widget-container server 270 can cause the widget server 280 to halt sending if sending and/or processing of the widget 260 within the widget-container 250 has already commenced.
In some embodiments, the widget-container processing device 240 and/or widget-container 250 can be configured to wait for an indicator from the widget-container server 270 before processing the widget 260. Likewise, in some embodiments, the widget server 260 can be configured to wait for an indicator from the widget-container server 270 before sending the widget 260 for processing within the widget-container 250. In other words, the default mode of the widget-container processing device 240, widget server 260, and/or widget-container 250 can be to process and/or send the widget 260 when triggered by the widget-container server 270.
A reference uniquely defined to trigger sending of an instance of the widget-container for execution within a content aggregation point is received at 610. In some embodiments, the reference can be received and stored in a database and associated with customizable parameter values (e.g., metadata parameter values) associated with the placement of the reference to the widget-container in the content aggregation point so that the customizable parameters values can be used when producing the widget-container for sending to the content aggregation point.
An indicator that the reference to the widget-container has been accessed at the content aggregation point is received at 620, an identifier associated with the content aggregation point is received at 630 in response to the reference being accessed, and a control determination is performed at 640 to determine whether processing of any component (include the widget referenced above) of the widget-container is restricted or allowed. For example, the control determination can be based on control information that is retrieved from a memory such as a control database. The control determination can be based on, for example, an identifier associated with the content aggregation point where the widget-container is to be executed and/or displayed.
If the processing of the component of the widget-container is allowed, an instance of the widget-container is produced with a valid reference to the component of the widget-container at 650 based on the instruction. In other words, the widget-container is produced without modifying the instruction or the widget-container with respect to the reference to the component. The instance of the widget-container with the valid reference is then sent to the widget-container processing device that requested the widget-container at 670. In some embodiments, if the widget-container is a static object stored in a memory (e.g., not dynamically generated based on the instruction), the widget-container can be retrieved from the memory and sent to the widget-container processing device. In other words, the widget-container will not be modified.
If the processing of a component of the widget-container is restricted, the widget-container can be modified and/or produced at 660 based on the control determination. The widget-container can be produced based on the instruction with some modification to address the control determination. For example, the widget-container can be produced with a null reference to the component of the widget-container (or a re-directing reference) such that the component of the widget-container is not requested from, for example, a server of the component when the widget-container is executed a widget-container processing device. The modified instance of the widget-container is then sent to the widget-container processing device that requested the widget-container at 670.
In some embodiments, if the widget-container is a static object stored in a memory (e.g., not dynamically generated based on the instruction), the widget-container can be retrieved from the memory and modified to, for example, remove the reference to the component before the widget-container is sent to the widget-container processing device.
Some embodiments of the invention relate to a storage product with a processor-readable medium having instructions or code thereon for performing various processor-implemented operations. The media and code may be those specially designed and constructed for the purposes of the invention, or they may be of the kind well known and available to those having skill in the software arts. Examples of processor-readable media include, but are not limited to: magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical storage media such as Compact Disc/Digital Video Discs (“CD/DVDs”), Compact Disc-Read Only Memories (“CD-ROMs”), and holographic devices; magneto-optical storage media such as floppy or optical disks; carrier wave signals; and hardware devices that are specially configured to store and execute program code, such as Application-Specific Integrated Circuits (“ASICs”), Programmable Logic Devices (“PLDs”), and ROM and RAM devices. Examples of code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, and files containing higher-level instructions that are executed by a processor using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Additional examples of code include, but are not limited to, control signals, encrypted code, and compressed code.
In conclusion, the present invention is related to an apparatus and methods for controlling processing of and/or distribution of static, media, and/or software objects in a procedural software framework. Those skilled in the art can readily recognize that numerous variations and substitutions may be made in the invention, its use and its configuration to achieve substantially the same results as achieved by the embodiments described herein. Many variations, modifications and alternative constructions fall within the scope and spirit of the disclosed invention as expressed in the claims.
This application claims priority to and is a continuation of U.S. patent application Ser. No. 11/682,639, filed Mar. 6, 2007, and titled “METHOD AND APPARATUS FOR WIDGET AND WIDGET-CONTAINER DISTRIBUTION CONTROL BASED ON CONTENT RULES,” now U.S. Pat. No. 9,009,728, which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5230072 | Smith et al. | Jul 1993 | A |
5261002 | Perlman et al. | Nov 1993 | A |
5675510 | Coffey et al. | Oct 1997 | A |
5781189 | Holleran et al. | Jul 1998 | A |
5796952 | Davis et al. | Aug 1998 | A |
5857102 | McChesney et al. | Jan 1999 | A |
5862377 | Lee | Jan 1999 | A |
5892900 | Ginter et al. | Apr 1999 | A |
5896532 | Blewett | Apr 1999 | A |
5951643 | Shelton et al. | Sep 1999 | A |
6064980 | Jacobi et al. | May 2000 | A |
6100890 | Bates et al. | Aug 2000 | A |
6108637 | Blumenau | Aug 2000 | A |
6112238 | Boyd et al. | Aug 2000 | A |
6125388 | Reisman | Sep 2000 | A |
6233601 | Walsh | May 2001 | B1 |
6233684 | Stefik et al. | May 2001 | B1 |
6236971 | Stefik et al. | May 2001 | B1 |
6266649 | Linden et al. | Jul 2001 | B1 |
6269361 | Davis et al. | Jul 2001 | B1 |
6311194 | Sheth et al. | Oct 2001 | B1 |
6314448 | Conner et al. | Nov 2001 | B1 |
6317787 | Boyd et al. | Nov 2001 | B1 |
6360261 | Boyd et al. | Mar 2002 | B1 |
6374252 | Altoff et al. | Apr 2002 | B1 |
6466974 | Nelson et al. | Oct 2002 | B1 |
6546393 | Khan | Apr 2003 | B1 |
6658568 | Ginter et al. | Dec 2003 | B1 |
6665867 | Ims et al. | Dec 2003 | B1 |
6701521 | McLlroy et al. | Mar 2004 | B1 |
6748555 | Teegan et al. | Jun 2004 | B1 |
6772180 | Li et al. | Aug 2004 | B1 |
6810356 | Garcia-Franco et al. | Oct 2004 | B1 |
6857124 | Doyle | Feb 2005 | B1 |
6970853 | Schutzer | Nov 2005 | B2 |
6985905 | Prompt et al. | Jan 2006 | B2 |
6985929 | Wilson et al. | Jan 2006 | B1 |
6986049 | Delany | Jan 2006 | B2 |
7003522 | Reynar et al. | Feb 2006 | B1 |
7003565 | Hind et al. | Feb 2006 | B2 |
7016960 | Howard et al. | Mar 2006 | B2 |
7024392 | Stefik et al. | Apr 2006 | B2 |
7031932 | Lipsky et al. | Apr 2006 | B1 |
7035943 | Yamane et al. | Apr 2006 | B2 |
7039599 | Merriman et al. | May 2006 | B2 |
7046995 | Rygaard | May 2006 | B2 |
7054900 | Goldston | May 2006 | B1 |
7062500 | Hall et al. | Jun 2006 | B1 |
7062540 | Reddy et al. | Jun 2006 | B2 |
7062561 | Reisman | Jun 2006 | B1 |
7072672 | Vanska et al. | Jul 2006 | B1 |
7076521 | Davison | Jul 2006 | B2 |
7080159 | Chu et al. | Jul 2006 | B2 |
7085682 | Heller et al. | Aug 2006 | B1 |
7089237 | Turnbull et al. | Aug 2006 | B2 |
7099926 | Ims et al. | Aug 2006 | B1 |
7100054 | Wenisch et al. | Aug 2006 | B2 |
7103912 | Xia et al. | Sep 2006 | B2 |
7117250 | Wu | Oct 2006 | B1 |
7117535 | Wecker | Oct 2006 | B1 |
7130964 | Ims et al. | Oct 2006 | B2 |
7133846 | Ginter et al. | Nov 2006 | B1 |
7159116 | Moskowitz | Jan 2007 | B2 |
7263551 | Belfiore et al. | Aug 2007 | B2 |
7269792 | Consolatti et al. | Sep 2007 | B2 |
7346909 | Eldar et al. | Mar 2008 | B1 |
7392395 | Ginter et al. | Jun 2008 | B2 |
7392483 | Wong et al. | Jun 2008 | B2 |
7702675 | Khosla et al. | Apr 2010 | B1 |
7730082 | Sah et al. | Jun 2010 | B2 |
7735117 | Nadalin et al. | Jun 2010 | B2 |
8056092 | Allen et al. | Nov 2011 | B2 |
8150939 | Murray | Apr 2012 | B1 |
8209378 | Allen et al. | Jun 2012 | B2 |
8266274 | Allen et al. | Sep 2012 | B2 |
8869066 | Vonarburg et al. | Oct 2014 | B2 |
9104294 | Forstall | Aug 2015 | B2 |
20020040314 | Tolson | Apr 2002 | A1 |
20020040394 | Shapira | Apr 2002 | A1 |
20020072965 | Merriman et al. | Jun 2002 | A1 |
20020082914 | Beyda et al. | Jun 2002 | A1 |
20020082923 | Merriman et al. | Jun 2002 | A1 |
20020082997 | Kobata et al. | Jun 2002 | A1 |
20020083188 | Hericy et al. | Jun 2002 | A1 |
20020095336 | Trifon et al. | Jul 2002 | A1 |
20020099600 | Merriman et al. | Jul 2002 | A1 |
20020120673 | Tolson et al. | Aug 2002 | A1 |
20020129092 | Tolson et al. | Sep 2002 | A1 |
20020174200 | Kozina | Nov 2002 | A1 |
20030014483 | Stevenson et al. | Jan 2003 | A1 |
20030028433 | Merriman et al. | Feb 2003 | A1 |
20030033403 | Rhodes | Feb 2003 | A1 |
20030058277 | Bowman-Amuah | Mar 2003 | A1 |
20030061482 | Emmerichs | Mar 2003 | A1 |
20030070061 | Wong et al. | Apr 2003 | A1 |
20030105882 | Ali et al. | Jun 2003 | A1 |
20030196121 | Raley et al. | Oct 2003 | A1 |
20030200145 | Krassner et al. | Oct 2003 | A1 |
20040073755 | Webb et al. | Apr 2004 | A1 |
20040098349 | Tolson | May 2004 | A1 |
20040107125 | Guheen et al. | Jun 2004 | A1 |
20040143667 | Jerome | Jul 2004 | A1 |
20040153973 | Horwitz | Aug 2004 | A1 |
20040165007 | Shafron | Aug 2004 | A1 |
20040172324 | Merriman et al. | Sep 2004 | A1 |
20040172331 | Merriman et al. | Sep 2004 | A1 |
20040172332 | Merriman et al. | Sep 2004 | A1 |
20040215509 | Perry | Oct 2004 | A1 |
20040215515 | Perry | Oct 2004 | A1 |
20040215709 | Basani et al. | Oct 2004 | A1 |
20040225562 | Turner | Nov 2004 | A1 |
20040225566 | Beyda et al. | Nov 2004 | A1 |
20040225668 | Teegan et al. | Nov 2004 | A1 |
20050021611 | Knapp et al. | Jan 2005 | A1 |
20050038702 | Merriman et al. | Feb 2005 | A1 |
20050050301 | Whittle et al. | Mar 2005 | A1 |
20050055458 | Mohan et al. | Mar 2005 | A1 |
20050086587 | Balz | Apr 2005 | A1 |
20050114774 | Berryman | May 2005 | A1 |
20050125528 | Burke, II et al. | Jun 2005 | A1 |
20050190994 | Yamanaka | Sep 2005 | A1 |
20050197991 | Wray et al. | Sep 2005 | A1 |
20050198105 | Schmitz et al. | Sep 2005 | A1 |
20050198201 | Bohn et al. | Sep 2005 | A1 |
20050210000 | Michard | Sep 2005 | A1 |
20050228863 | Palmeri et al. | Oct 2005 | A1 |
20050234884 | Drukman | Oct 2005 | A1 |
20050246262 | Aggarwal et al. | Nov 2005 | A1 |
20050251805 | Bamba et al. | Nov 2005 | A1 |
20050256819 | Tibbs et al. | Nov 2005 | A1 |
20050256954 | Shapira et al. | Nov 2005 | A1 |
20060004703 | Spivack et al. | Jan 2006 | A1 |
20060015406 | Beyda et al. | Jan 2006 | A1 |
20060040426 | Antesberger et al. | Feb 2006 | A1 |
20060048225 | Gomez | Mar 2006 | A1 |
20060088044 | Hammerl | Apr 2006 | A1 |
20060089880 | Merriman et al. | Apr 2006 | A1 |
20060106876 | MacGregor | May 2006 | A1 |
20060112102 | Shafron | May 2006 | A1 |
20060112341 | Shafron | May 2006 | A1 |
20060129937 | Shafron | Jun 2006 | A1 |
20060136843 | Shafron | Jun 2006 | A1 |
20060161513 | Drumm et al. | Jul 2006 | A1 |
20060178918 | Mikurak | Aug 2006 | A1 |
20060190290 | Gomez | Aug 2006 | A1 |
20060212589 | Hayer et al. | Sep 2006 | A1 |
20060218036 | King et al. | Sep 2006 | A1 |
20060242379 | Korgaonkar et al. | Oct 2006 | A1 |
20060259462 | Timmons | Nov 2006 | A1 |
20060277457 | Salkind et al. | Dec 2006 | A1 |
20070038934 | Fellman | Feb 2007 | A1 |
20070078777 | Demartini et al. | Apr 2007 | A1 |
20070078953 | Chai et al. | Apr 2007 | A1 |
20070101146 | Louch et al. | May 2007 | A1 |
20070101291 | Forstall et al. | May 2007 | A1 |
20070101297 | Forstall et al. | May 2007 | A1 |
20070106759 | Willie et al. | May 2007 | A1 |
20070112676 | Konito et al. | May 2007 | A1 |
20070130541 | Louch et al. | Jun 2007 | A1 |
20070192329 | Croft et al. | Aug 2007 | A1 |
20070192339 | Baker et al. | Aug 2007 | A1 |
20070209013 | Ramsey et al. | Sep 2007 | A1 |
20070250618 | Hammond | Oct 2007 | A1 |
20070266093 | Forstall et al. | Nov 2007 | A1 |
20070288518 | Crigler et al. | Dec 2007 | A1 |
20070288858 | Pereira et al. | Dec 2007 | A1 |
20080010133 | Pyhalammi et al. | Jan 2008 | A1 |
20080010319 | Vonarburg et al. | Jan 2008 | A1 |
20080028294 | Sell et al. | Jan 2008 | A1 |
20080034040 | Wherry et al. | Feb 2008 | A1 |
20080034314 | Louch et al. | Feb 2008 | A1 |
20080040426 | Synstelien et al. | Feb 2008 | A1 |
20080040681 | Synstelien et al. | Feb 2008 | A1 |
20080071883 | Alterman | Mar 2008 | A1 |
20080082627 | Allen et al. | Apr 2008 | A1 |
20080091777 | Carlos | Apr 2008 | A1 |
20080097871 | Williams et al. | Apr 2008 | A1 |
20080104496 | Williams et al. | May 2008 | A1 |
20080140775 | Lee et al. | Jun 2008 | A1 |
20080141141 | Moore et al. | Jun 2008 | A1 |
20080141153 | Samson et al. | Jun 2008 | A1 |
20080148283 | Allen et al. | Jun 2008 | A1 |
20080168245 | De Atley et al. | Jul 2008 | A1 |
20080168363 | Bertram | Jul 2008 | A1 |
20080168391 | Robbin et al. | Jul 2008 | A1 |
20080215879 | Williams et al. | Sep 2008 | A1 |
20080215998 | Moore et al. | Sep 2008 | A1 |
20080222232 | Allen et al. | Sep 2008 | A1 |
20080222295 | Robinson et al. | Sep 2008 | A1 |
20080222613 | Allen et al. | Sep 2008 | A1 |
20080222658 | Allen et al. | Sep 2008 | A1 |
20080232560 | Sirkin | Sep 2008 | A1 |
20080255962 | Chang et al. | Oct 2008 | A1 |
20080319856 | Zito et al. | Dec 2008 | A1 |
20090013058 | Chan | Jan 2009 | A1 |
20090024943 | Adler et al. | Jan 2009 | A1 |
20090037509 | Parekh et al. | Feb 2009 | A1 |
20090070409 | Clayton et al. | Mar 2009 | A1 |
20090094339 | Allen et al. | Apr 2009 | A1 |
20090111448 | Paila | Apr 2009 | A1 |
20090144429 | Astrom | Jun 2009 | A1 |
20090180412 | Albert et al. | Jul 2009 | A1 |
20090204885 | Ellsworth et al. | Aug 2009 | A1 |
20090216634 | Peltonen et al. | Aug 2009 | A1 |
20090265213 | Hyman et al. | Oct 2009 | A1 |
20090288004 | Strandell et al. | Nov 2009 | A1 |
20100030901 | Hallberg et al. | Feb 2010 | A1 |
20100100605 | Allen et al. | Apr 2010 | A1 |
20100100626 | Allen et al. | Apr 2010 | A1 |
20100138295 | Caron et al. | Jun 2010 | A1 |
20110099487 | Pyhalammi | Apr 2011 | A1 |
20120227060 | Allen et al. | Sep 2012 | A1 |
Number | Date | Country |
---|---|---|
0 996 058 | Oct 1998 | EP |
1942422 | Jul 2008 | EP |
2005-346434 | Dec 2005 | JP |
WO 0186384 | Nov 2001 | WO |
WO 0221404 | Mar 2002 | WO |
WO 2006028488 | Mar 2006 | WO |
WO 2008052013 | May 2008 | WO |
WO 2008060828 | May 2008 | WO |
Entry |
---|
Office Action for U.S. Appl. No. 11/537,362, mailed Jul. 8, 2010. |
Office Action for U.S. Appl. No. 11/537,362, mailed Dec. 10, 2009. |
Supplementary European Search Report for European Patent Application No. 07843614.4, mailed Aug. 30, 2010. |
Office Action for U.S. Appl. No. 11/537,375, mailed Jul. 7, 2010. |
Office Action for U.S. Appl. No. 11/537,375, mailed Feb. 16, 2011. |
Office Action for U.S. Appl. No. 11/537,375, mailed Apr. 9, 2013. |
International Search Report and Written Opinion for International Application No. PCT/US07/80086, mailed Apr. 18, 2008, 9 pages. |
Office Action for U.S. Appl. No. 11/682,626, mailed Jul. 8, 2010. |
Office Action for U.S. Appl. No. 11/682,626, mailed Jan. 11, 2010. |
Office Action for U.S. Appl. No. 11/682,626, mailed Jun. 18, 2009. |
International Search Report and Written Opinion for International Application No. PCT/US08/55755, mailed Jul. 25, 2008, 8 pages. |
Office Action for U.S. Appl. No. 11/682,639, mailed Sep. 1, 2010. |
Office Action for U.S. Appl. No. 11/682,639, mailed Apr. 13, 2011. |
Office Action for U.S. Appl. No. 11/682,639, mailed Mar. 12, 2014. |
International Search Report and Written Opinion for International Application No. PCT/US08/55756, mailed Aug. 1, 2008, 7 pages. |
Office Action for U.S. Appl. No. 12/043,805, mailed Jan. 21, 2011. |
Office Action for U.S. Appl. No. 12/043,805, mailed Dec. 8, 2010. |
Office Action for U.S. Appl. No. 12/043,805, mailed Jun. 24, 2010. |
Office Action for U.S. Appl. No. 12/043,805, mailed Sep. 2, 2011. |
International Search Report and Written Opinion for International Application No. PCT/US08/56073, mailed Aug. 8, 2008, 8 pages. |
Office Action for U.S. Appl. No. 12/244,606, mailed Jun. 22, 2010. |
Office Action for U.S. Appl. No. 12/244,606, mailed Mar. 16, 2011. |
International Search Report and Written Opinion for International Application No. PCT/US08/78744, mailed Jan. 12, 2009, 9 pages. |
Office Action for U.S. Appl. No. 12/560,127, mailed Jun. 13, 2011. |
Office Action for U.S. Appl. No. 12/560,159, mailed Jun. 13, 2011. |
Office Action for U.S. Appl. No. 12/560,159, mailed Apr. 25, 2012. |
Office Action for U.S. Appl. No. 11/774,470, mailed Nov. 5, 2010. |
Office Action for U.S. Appl. No. 11/774,470, mailed May 21, 2010. |
Amulet Technologies, Inter-Widget Communication, 2004 http://web.mit.edu/6.115/www/miscfiles/amulet/amulet-help/IWC.htm. |
Daily Flash Performance Report :: MochiBot.com Traffic Report Tour [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: http://www.mochibot.com/tour—trafficreport.html>. (2 pgs). |
Flash Traffic Analysis for a SWF :: MochiBot.com SWF Detail Tour [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: http://www.mochibot.com/tour—swfdetail.html>. (2 pgs). |
Goland et al., Simple Service Discovery Protocol, <draft-cai-ssdp-v1-03.txt, 1999. |
Klinker, G., Augmented Reality II—Context Toolkit, May 27, 2003. |
Liscano et al., Context Awareness and Service Discovery for Spontaneous Networking, School of Information Technology and Engineering (SITE), University of Ottawa, Ottawa, Ontario (2003). |
Luyten, K. et al., Uiml.net: an Open Uimi Renderer for the .Net Framework, in R. Jacob, Q. Limbourg, J. Vanderdonckt (eds.), Proc. of 5th Int. Conf. of Computer-Aided Design of User Interfaces CADUI'2004. Jan. 2004. Information Systems Series, Kluwer Academics, Dordrecht, 2005, pp. 259-270. [retrieved from the internet Jun. 15, 2010]. |
MochiBot, “It's 3a.m. Do you know where your Flash content is?”, Flash tracking, Traffic Monitoring, and Analytics Service [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: MochiBot.com, http://www.mochibot.com>. (4 pgs). |
Overview of the SWFs you are tracking :: MochiBot.com Dasboard Tour [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: http://www.mochibot.com/tour—dashboard.html>. (2 pgs). |
Ryu et al.—Widget Integration Framework for Context-Aware Middleware, MATA 2005, LNCS 3744, Springer-Verlag, 2005, pp. 161-171. |
Salber, D. et al., “The context toolkit: aiding the development of context-enabled applications”, Proceedings of the SIGCHI conference on Human factors in computing systems: the CHI is the limit, p. 434-441, May 15-20, 1999 [retrieved from the ACM database on Jun. 15, 2010]. |
Schulte, Window Programming in Mozart, (Jan. 25, 2003) http://graubart.rz.ifi.lmu.de/programming/mozart/print/tutorial/WindowProgramming.pdf. |
See who's hosting your SWF :: MochiBot.com Host Report Tour [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: http://www.mochibot.com/tour—hostreport.html>. (2 pgs). |
Snipperoo Web Widgets, Snipperoo Universal Widget [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: http://www.snipperoo.com/>. (1 pg). |
Tody, D. A portable GUI Development System—The IRAF Widget Server, Astronomicla Data Analysis Software and Systems IV; ASP Conference Series, vol. 77, 1995 [retrieved from the Internet “http://articles.adsabs.harvard.edu/cgi-bin/nph-iarticle—query?1995ASPC...77...89T&defaultprint=YES&filetype=.pdf” on Jun. 15, 2010]. |
Wang et al., Grid-based Collaboration in Interactive Data Language Applications, in: Proceedings of the International Conference on Information Technology: Coding and Computing, IEEE (2005). |
Widgetbox, Widgetizing the Web [online], [retrieved on Jan. 11, 2006]. Retrieved from the Internet: <URL: http://widgetbox.com> (3 pgs). |
Non-final Office Action dated Apr. 10, 2015 for related U.S. Appl. No. 14/517,251. |
Final Office Action dated Jan. 22, 2016 for related U.S. Appl. No. 14/517,251. |
Get the Button!, dated May 6, 2007 by web.archive.org, originally retrieved from the internet on May 10, 2011, http://replay.web.archive.org/20070506113223/http://sharethis.com/download. |
About Us, dated Apr. 30, 2007 by web.archive.org, originally retrieved from the Internet on May 10, 2011, http://replay.web.archive.org/200704300165058/http://sharethis.com/about. |
Quick Sharing to MySpace, Email, and More!, dated May 3, 2007 by web.archive.org, originally retrieved from the internet on May 10, 2011, http://replay.web.archive.org/20070503171135/http://sharethis.com/. |
Notice of Allowance and Fee(s) due dated May 16, 2016 for related U.S. Appl. No. 14/517,251. |
Notice of Allowance and Fee(s) due dated Aug. 31, 2016 for related U.S. Appl. No. 14/517,251. |
Number | Date | Country | |
---|---|---|---|
20160041714 A1 | Feb 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11682639 | Mar 2007 | US |
Child | 14684591 | US |