WO2008109580A1 - Method and apparatus for widget and widget-container platform adaptation and distribution - Google Patents

Method and apparatus for widget and widget-container platform adaptation and distribution Download PDF

Info

Publication number
WO2008109580A1
WO2008109580A1 PCT/US2008/055755 US2008055755W WO2008109580A1 WO 2008109580 A1 WO2008109580 A1 WO 2008109580A1 US 2008055755 W US2008055755 W US 2008055755W WO 2008109580 A1 WO2008109580 A1 WO 2008109580A1
Authority
WO
WIPO (PCT)
Prior art keywords
widget
container
content
aggregation point
content aggregation
Prior art date
Application number
PCT/US2008/055755
Other languages
French (fr)
Inventor
Stewart O. Allen
Scott F. Cosby
Hasseltine R. Debutts
John A. Fath
Hooman Radfar
Carlos F. Reverte
Original Assignee
Clearspring Technologies, Inc.
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 Clearspring Technologies, Inc. filed Critical Clearspring Technologies, Inc.
Publication of WO2008109580A1 publication Critical patent/WO2008109580A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Definitions

  • the disclosed invention relates generally to interoperability of content with content aggregation points, and in particular, to modification of content and/or data associated with the content for compatibility with content aggregation points.
  • 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.
  • 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.
  • 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 for automated distribution of virally distributed content into aggregation points (e.g., web sites, galleries, directories, etc.) that may have different ways of representing data associated with the content.
  • a method includes receiving a request for a widget-container defined in response to a reference to the widget-container being accessed from a content aggregation point.
  • the widget-container is a procedural software framework configured to be executed within the content aggregation point.
  • the widget-container has a portion configured for receiving a widget.
  • the method includes modifying a portion of the widget-container. The portion of the widget-container is based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.
  • FIG. 1 is a schematic block diagram that illustrates a widget-container host configured to modify at least a portion of a widget-container using a transform module based on one or more content rules associated with one or more content aggregation points, according to an embodiment of the invention.
  • FIG. 2 illustrates a widget-container host and a widget server configured to serve a widget-container and a widget, respectively, to a content aggregation point, according to an embodiment of the invention.
  • FIG. 3 is a flowchart that illustrates a method for modifying a portion associated with a widget-container based on a content rule associated with a content aggregation point, according to an embodiment of the invention.
  • FIG. 4 illustrates a widget server configured to send a widget and/or a widget- container to a widget-container host to be modified at the widget-container host before being sent to a content aggregation point, according to an embodiment of the invention.
  • FIG. 5 illustrates an example of a table that can be used to select a transform module to modify a portion of a widget-container for processing at a content aggregation point, according to an embodiment of the invention.
  • FIG. 6 illustrates a widget-container host configured to produce instances of a master copy of a widget-container and/or a master copy of a widget using a transform module, according to an embodiment of the invention.
  • FIG. 7 is a flow chart that illustrates a method for placing a reference to a widget- container in a content aggregation point, according to an embodiment of the invention.
  • 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.
  • 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.
  • 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.
  • 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. 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.
  • 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 Application Serial No. 11/537,362, "Method and Apparatus for Widget-Container Hosting and Generation," which is incorporated herein by reference in its entirety.
  • 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.
  • a static data object e.g., text or textual document
  • media object e.g., video, mp3, or image
  • software object e.g., javascript, Flash program
  • Components of the widget-container are processed within the widget-container when they are, for example, executed, rendered, manipulated, and/or displayed.
  • a portion associated with a widget-container 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 widget e.g., widget not associated with a widget-container
  • a transform module such that the portion associated with the widget-container and/or widget is compatible with a content rule associated with a content aggregation point.
  • the portion associated with the widget-container and/or widget can be modified by modifying a portion of code, a metadata parameter value associated with the portion and/or widget, a packaging type, and/or a format associated with the widget such that the widget can be processed at the content aggregation point.
  • a transform module can be configured to use (e.g., follow) a submission process associated with the content aggregation point.
  • a transform module can be configured to modify a widget and/or a portion associated with a widget-container for processing within a content aggregation point for different types of processing devices (e.g., mobile phone, computer).
  • An updated version of a content rule associated with a content aggregation point can be automatically detected and received in some embodiments.
  • the updated content rule can be received from a content aggregation point host based on various criteria and/or indicators.
  • the widget and/or portion associated with a widget-container can be automatically modified according to the updated content rule.
  • one or more transform modules can be automatically selected and used to modify a widget and/or a portion associated with a widget-container from a first configuration to a second configuration such that the widget and/or portion is compliant (e.g., substantially compliant) with one or more content rules associated with one or more content aggregation points.
  • modified and/or unmodified widgets and/or portions of a widget- container can be stored at and/or served from one or more devices.
  • 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 reference to the widget can be placed in (e.g., included in) one or more content aggregation points.
  • a widget (not associated with a widget-container) can be associated with a widget-container after, for example, being modified using a transform module.
  • FIG. 1 is a schematic block diagram that illustrates a widget-container host 100 configured to modify at least a portion associated with a widget- container 105 using a transform module 108 based on one or more content rules associated with content aggregation points 152, 162, and/or 172, according to an embodiment of the invention.
  • Modifying can include modifying data associated with the portion associated with the widget-container 105.
  • the portion can be, for example, a widget 102 and/or a service module (not shown) associated with the widget-container 105.
  • the widget-container host 100 can be configured to send (e.g., send an instance, serve an instance) over network 120 the widget 102 and/or widget-container 105 to one or more of the content aggregation points 152, 162, and/or 172.
  • the widget 102 and/or widget-container 105 can be processed (e.g., displayed, executed) at one or more of the content aggregation points 152, 162, and/or 172.
  • the content aggregation points 152, 162, and/or 172 can be, for example, a desktop, a web site (e.g., processor-readable vehicle, WAP site), or a content distribution point (e.g., web-based gallery, a web-based portal).
  • the content aggregation points 152, 162, and/or 172 can be associated with, for example, a personal computer or a mobile device such as a personal digital assistant (PDA).
  • PDA personal digital assistant
  • the widget-container 105 can be a procedural software framework that can contain (e.g., include a reference to) the widget 102.
  • the widget-container can be a series of instructions that are executable (or interpretable) by, for example, a processor (not shown) associated with one or more of the processing devices 150, 160, and/or 170.
  • the widget 102 can be, for example, a static data object, a software object, and/or a media object.
  • the widget 102 can be an executed (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 102 can be a static data object that is, for example, displayed within the widget-container 105.
  • 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 102 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 105.
  • the results of the executable application can be included and/or displayed within the procedural software framework of the widget-container 105.
  • the widget-container 105 can be configured so that the widget 102 can be processed in a portion associated with the widget-container 105 in response to the widget-container 105 being received at a content aggregation point. More details regarding widget-containers and widgets are set forth in the above-identified co-pending application entitled, "Method and Apparatus for Widget- Container Hosting and Generation," which is incorporated herein by reference in its entirety.
  • the content aggregation points 152, 162, and/or 172 can be configured such that only content, such as widget-container 105 and/or widget 102, that satisfies or substantially satisfies the content rules can be referenced, requested, and/or executed (e.g., displayed) within the content aggregation points 152, 162, and/or 172.
  • the content rules can be administered and/or defined by an administrator or owner of one or more of the content aggregation points 152, 162, and/or 172.
  • a content rule can be based on a complex set of rules defined within an algorithm and/or a file that can be accessed from, for example, a server (not shown) associated with one or more of the content aggregation points 152, 162, and/or 172.
  • Each of the processing devices 150, 160, and/or 170 can be any type of device that is configured to process any portion associated with the widget-container 105.
  • Each of the processing devices 150, 160 and/or 170 can be, for example, a computer, a mobile phone, a personal digital assistant (PDA), a server, and/or any other processor-based device.
  • PDA personal digital assistant
  • the widget-container 105 can be configured and/or modified using the transform module 108 so that any portion associated with the widget-container 105 can be processed by each of the processing devices 150, 160, and/or 170 even though the platforms (e.g., hardware, architecture, software, operating system, runtime libraries, programming languages) of the respective processing devices 150, 160, and/or 170 may be different.
  • the network 120 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 can be configured to use the transform module 108 to modify a portion associated with the widget-container 105 from a first configuration to a second configuration to satisfy one or more content rules such that the portion associated with the widget-container 105 can be associated with (e.g., referenced in) and/or executed within the content aggregation points 152, 162, and/or 172.
  • the widget-container host 100 can be configured to modify the portion associated with the widget-container 105 to satisfy the content rule(s) associated with the content aggregation points 152, 162, and/or 172 such that the widget-container host 100 can send (e.g., serve, serve an instance of) the portion associated with the widget-container 105 to the content aggregation points 152, 162, and/or 172 when requested.
  • the portion associated with the widget-container 105 can be modified by the widget-container host 100 before the portion associated with the widget-container 105 is referenced within, sent (e.g., served) to, and/or requested for execution at one or more of the content aggregation points 152, 162, and/or 172.
  • an instance of the widget-container 105 can be sent to content aggregation point 162 in response to a request for the instance of the widget- container 105 when a reference to the widget-container 105 is accessed from content aggregation point 162.
  • the request for the widget-container 105 can be defined by processing device 160.
  • the instance of the widget-container 105 can be sent from the widget-container host 100 to processing device 160 for execution within content aggregation point 162.
  • a portion associated with the widget-container 105 can be served simultaneously and/or at different times to the content aggregation points 152, 162, and/or 172.
  • the content aggregation points 152, 162, and/or 172 e.g., instances of the content aggregation points 152, 162, and/or 172 can be, for example, retrieved and/or processed at one or more of the processing devices 150, 160, and/or 170 simultaneously or at different times.
  • modified and/or unmodified portions of the widget-container 105 can be served from different devices.
  • an instance of the widget-container 105 can be dynamically generated to include a reference to the widget 102 at a first device. After the instance of the widget-container 105 is sent from the first device to, for example, content aggregation point 152 and begins executing within content aggregation point 152, the widget 102 can be requested based on the reference to the widget 102 and served from a second device for processing within the widget-container 105.
  • Each of the content aggregation points 152, 162, and/or 172 can be associated with one or more content rules that can be different.
  • the content rule(s) associated with the content aggregation point 152 can be different than the content rule(s) associated with the content aggregation point 162.
  • the content rules can be, for example, a code rule, a metadata rule, a packaging rule, a format rule, and/or a rule related to a submission process.
  • the content rules are categorized below, in part, to simplify the discussion. In other words, the content rules can be classified using different categories.
  • the transform module 108 is depicted as a module within the widget- container host 100, in some embodiments, the transform module 108 can be associated with a different device (not shown). In some embodiments, for example, the widget-container host 100 can be configured to cooperate (e.g., send and/or receive the widget-container 105 to and/or from) with a separate device that is configured to execute the transform module 108. The functionality of the transform module 108 can be separated into different modules that can also be executed at one or more devices.
  • a widget 102 that is not associated with a widget-container can be modified according to a content rule associated with a content aggregation point such as content aggregation points 152, 162, and/or 172.
  • the widget 102 can be modified using a transform module such as transform module 108 at, for example, a widget server (not shown) and/or at the widget-container host 100.
  • a reference to the widget 102 can be placed in (e.g., included in) one or more content aggregation points such as, for example, content aggregation point 162.
  • a code rule for example, can be configured to require that the widget 102 be associated with or include a certain portion of processor-related code or processor-related instruction.
  • the code rule may require that the processor-related code or processor-related instruction be integrated into or associated with the widget 102 and/or widget-container 105 in a particular way.
  • a code rule can be configured to require that the widget 102 be based on a certain type of programming language or have a certain programming language structure or sequence.
  • a metadata rule for example, can be configured to require that specified metadata parameter values be associated with the widget 102 and/or widget-container 105 (e.g., content type metadata parameter value, screen shot) or that metadata values be represented in a particular format or according to a specified style.
  • a metadata rule can be configured to require association between certain types of metadata parameter values. More details regarding metadata parameter values as related to a widget-container are set forth in co-pending Application Serial No. 11/537,375, "Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation," which is incorporated herein by reference in its entirety.
  • a format rule for example, can be configured to require that the widget 102 and/or widget-container 105 be smaller or larger than a specified dimension or specified byte size (e.g., ⁇ 1 gigabyte).
  • a format rule can be configured, for example, to require that metadata parameter values have a particular format (e.g., dates in DD/MM/YYYY format) or specified font style.
  • a packaging rule for example, can be configured to require that the widget 102 and/or widget-container 105 be compressed (e.g., zipped) or included in an specified type of framework (e.g., extensible markup language (XML) framework).
  • framework e.g., extensible markup language (XML) framework
  • a submission process is a process for submitting the widget 102 and/or widget- container 105 for inclusion in any of the content aggregation points 152, 162, and 172.
  • the submission process can include one or more steps defined in a content rule related to the submission process.
  • the submission process can include steps that require intervention by an entity associated with the content aggregation points 152, 162, and 172, such as a computer, a server (e.g., back-end server, network server), or an administrative person.
  • content aggregation point 152 can, according to a content rule, require that the widget 102 and/or widget-container 105 be approved before a reference to the widget 102 and/or widget- container 105 can be included in the content aggregation point 152.
  • the approval for example, can be contingent on the widget 102 and/or widget-container 105 satisfying all of the specification rules associated with content aggregation point 152.
  • the widget-container host 100 can be configured to automatically send and/or receive notifications and/or indicators associated with a submission process.
  • a service module (not shown), if contained in the widget-container 105, can be associated with the widget 102.
  • the service module (or reference to the service module) contained in the widget-container 105 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).
  • the service module can be modified to comply with one or more content rules. More details regarding service modules are set forth in the above-identified co-pending application entitled, "Method and Apparatus for Widget-Container Hosting and Generation.”
  • FIG. 2 illustrates a widget-container host 200 and widget server 210 configured to serve a widget-container 240 (e.g., serve an instance of the widget-container 240) and a widget 242 (e.g., serve an instance of the widget), respectively, to a content aggregation point 250, according to an embodiment of the invention.
  • the widget-container 240 and the widget 242 can be modified according to content rules associated with the content aggregation point 250 such that the reference 252 to the widget-container 240 can be placed in the content aggregation point 250.
  • a processing device 260 is configured to display/execute the content aggregation point 250 and request the widget-container 240 (and widget 242) based on a reference 252 to the widget-container 240.
  • the request can be defined by the processing device 260 when the reference 252 is accessed from the content aggregation point 250.
  • the widget 242 can be requested for processing within the widget-container 240 after at least a portion associated with the widget-container 240 is received and executed within the content aggregation point 250.
  • the widget-container host 200 can be configured to receive one or more content rules associated with the content aggregation point 250 via a content aggregation point host 230.
  • the content aggregation host 230 can be configured to serve the content aggregation point 250 to the processing device 240 in response to a request for the content aggregation point 250 defined by the processing device 260.
  • the content aggregation point host 230 can be configured to store one or more versions of content rules associated with multiple content aggregation points (not shown).
  • the content aggregation point host 230 can be configured to send one or more content aggregation rules to the widget-container host 200 in response to a request from the widget-container host 200.
  • the widget-container host 200 can be configured to store one or more content rules in the memory 202 or a separate database (not shown) where the content rules can be accessed by the widget-container host 200.
  • the content aggregation point host 230 can be configured to send content rules to the widget-container host 200 periodically (e.g., nightly) or randomly.
  • the content aggregation point host 230 can be configured to send an updated content rule to the widget- container host 200 when a content rule is, for example, changed.
  • An updated content rule can be referred to as a different or new version of a content rule.
  • the content aggregation point host 230 can be configured to send the updated portion of the content rule or the entire updated content rule (e.g., new version of the content rule, different version of the content rule).
  • the content rule can be updated by, for example, an administrator associated with the content aggregation point 250 and/or automatically by, for example, a processor.
  • the widget-container host 200 can be configured to receive a content rule from a source (not shown) other than the content aggregation point host 230.
  • the widget-container 240 is served from a memory 202 of the widget-container host 200.
  • the widget-container host 200 can modify, if necessary, the widget-container 240 based on one or more content rules received from the content aggregation host 230.
  • the widget-container host 200 can modify a metadata parameter value and/or a portion of programming code associated with the widget-container host 200 based a content rule associated with the content aggregation point 250.
  • the widget-container host 200 can request a content rule and/or updated content rule before modifying the widget-container 200 from a first configuration to a second configuration.
  • the widget-container host 200 can be configured to retrieve and/or request the content rule in response to a request to serve the widget-container 240 to the processing device 260 for display/execution within the content aggregation point 250.
  • the widget-container host 200 can be configured to retrieve the content rule only when necessary.
  • the widget-container host 200 can be configured to modify the widget-container 240 from a first configuration to a second configuration according to a content rule associated with the content aggregation point 250 and store the modified widget- container 240 in the memory 202 or a separate database (not shown).
  • the widget-container host 200 can retrieve the widget-container 240 from the memory 202 or the separate database and serve the widget-container 240 (e.g., serve an instance of the widget-container 240) to the processing device 260.
  • the widget-container host 200 can be triggered to determine whether the widget-container 240 should be modified and/or updated based on an updated content rule. For example, the widget-container host 200 can determine whether an updated content rule has been defined since the widget-container 240 was last modified based on, for example, a timestamp associated with the widget-container 240. If the widget- container 240 was last updated longer than a threshold period of time, for example, the widget-container host 200 can query the content aggregation point host 230 to determine whether an updated content rule exists (e.g., has been released or defined since the widget- container 240 was last modified).
  • an updated content rule exists (e.g., has been released or defined since the widget- container 240 was last modified).
  • the widget 242 can be served from the widget server 210 for processing within the widget-container 240 at the processing device 260.
  • the widget 242 can be served for processing at the processing device 260 after the widget-container 240 has been received at the processing device 260.
  • the widget 242 can be served in response to a request from the processing device 260 based on a reference 246 to the widget 242 included in the widget-container 240.
  • the widget server 210 and/or the widget-container host 200 can be configured such that the widget 242 is sent to the widget-container host 200 to be modified based on one or more content rules associated with the content aggregation point 250 and returned to the widget server 210 to be served from the widget server 210 when requested.
  • the widget server 210 can be configured to send the widget 242 to the widget- container host 200 for modification based on one or more content rules in response to the widget-container 240 being defined.
  • the widget 242 can be sent from the widget-container host 200 to the widget server 210 and stored at the widget server 210.
  • An instance of the widget 242 can be served to the processing device 260 in response to a request (e.g., a request after the widget-container 240 has been served).
  • the reference 246 to the widget 242 included within the widget-container 240 can be defined to reference the location from which the widget 242 will be served.
  • the reference 246 can be dynamically defined, for example, based on a metadata parameter value when the widget-container 240 is, for example, dynamically generated. 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.”
  • the widget-container host 200 can be configured to send an indicator to the widget server 210 to indicate that an updated content rule associated with the widget 242 has been received and/or defined.
  • the widget server 210 can respond by sending the widget 242 to the widget-container server 210 for modification based on the updated content rule.
  • the widget server 210 can be configured to receive the modified widget 242 and serve the modified widget 242.
  • the widget server 210 can be configured to query the widget-container host 200 regarding updates to content rules.
  • the widget-container host 200 can be configured to respond to these queries and can request that the widget 242 be sent from the widget server 210 such that the widget 242 can be modified at the widget-container host 200.
  • the widget server 210 can be configured to query the widget-container host 200 before serving an instance of the widget 242.
  • the widget server 210 can also be configured to query the widget-container host 200 to determine whether an updated content rule exists based on a criteria (e.g., widget 242 last modified more than a threshold period of time).
  • a modification of the widget-container 240 and/or a modification of the widget 242 can be based on one or more shared content rules.
  • the widget-container 240 can be modified based on and/or associated with one or more content rules that are not associated with the widget 242 even though the widget 242 is referenced in and associated with the widget-container 240.
  • the widget server 210 and/or widget-container host 200 can be configured to store and/or serve multiple widgets (not shown) and/or widget-containers (not shown), respectively, to multiple content aggregation points (not shown).
  • multiple instances of the widget-container 240 and/or widget 242 can be served to multiple content aggregation points synchronously and/or asynchronously.
  • multiple widget servers (not shown) can be associated with a single widget-container host, such as widget-container host 200, and vice versa.
  • a cached copy of the widget 242 and/or widget-container 240 (e.g., any portion associated with the widget-container 240) can be stored at the content aggregation point host 230 for serving to the content aggregation point 250.
  • the cached copy of the widget 242 and/or widget-container 240 can be produced at the widget-container host 200.
  • the cached copy of the widget 242 and/or widget-container 240 can be based on content rule(s) associated with the content aggregation point 250.
  • the widget-container host 200 in cooperation with the widget server 210, can be configured to replace the cached copy of the widget 242 and/or widget-container 240 with a modified widget 242 and/or the widget-container 240, respectively, based on the updated version of the content rule(s).
  • an instance of the widget 242 and/or widget-container 240 can be submitted according to a submission process (e.g., submission process content rule) for caching at the content aggregation point host 230.
  • the widget-container host 200 can be configured to follow the submission process defined with, for example, a content rule.
  • the widget-container host 200 can send a notification to an entity in response to the submission process being completed.
  • the widget-container host 200 can be configured to send a notification to an entity that requested that the widget 242 and/or widget-container 240 be included in the content aggregation point 250.
  • the widget-container host 200 can be configured to store the modified widget 242 and serve the modified widget 242 from the widget-container host 200 to the content aggregation point 240.
  • a widget 242 that is not associated with a widget-container can be modified according to a content rule associated with a content aggregation point, such as content aggregation point 250.
  • the widget 242 that is not associated with a widget- container can be modified at and/or served from, for example, the widget server 210 and/or at the widget-container host 200.
  • the widget 242 can be served, for example, in response to a reference (not shown) to the widget 242 being accessed from the content aggregation point 250.
  • FIG. 3 is a flowchart that illustrates a method for modifying a portion associated with a widget-container based on a content rule associated with a content aggregation point, according to an embodiment of the invention.
  • the flowchart illustrates that an instruction defining a widget-container associated with a widget is received at 300.
  • the instruction can be used to dynamically produce (e.g., generate) the widget-container when a request for the widget-container is received.
  • a content rule related to a content aggregation point that includes a reference to the widget-container is received or retrieved at 310.
  • the content rule can be received or retrieved from, for example, a content aggregation point host.
  • the content rule can be received at a widget-container host in response to a request for the content rule from the widget-container host.
  • the content rule can be stored in a database and associated with, for example, a customizable parameter values (e.g., metadata parameter values) associated with the widget-container.
  • a portion associated with the widget-container is modified based on the content rule at 320. For example, a format of a metadata parameter value associated with a widget that is referenced within the widget-container can be modified based on the content rule. The portion associated with the widget-container can be modified using a transform module at a widget-container host.
  • the modified portion associated with the widget-container can be stored in a memory at 330.
  • the modified portion associated with the widget-container can be stored at, for example, a widget-container host and/or a widget server.
  • a request for the widget-container can be received in response to the reference to the widget-container being accessed from the content aggregation point at 340.
  • the request can be defined by a processing device that accesses the reference while displaying/executing the content aggregation point.
  • the request can be sent to, for example, a content aggregation point host if the content aggregation point host is storing a cached copy of a modified or unmodified portion associated with the widget-container.
  • the modified portion associated with the widget-container is then sent in response to the request at 350.
  • the instruction used to define the widget-container can be modified and used to dynamically generate a modified widget-container.
  • the modified widget-container can then be sent in response to the request.
  • the widget-container is the portion to be modified and the widget- container is stored in the memory as a static widget-container, the widget-container can be modified and the modified widget-container can be sent in response to the request.
  • the widget and/or service module can be the portion associated with the widget-container that is modified and sent.
  • FIG. 4 illustrates a widget server 410 configured to send a widget 490 (e.g., an instance of the widget 490) and a widget-container 480 (e.g., an instance of the widget-container 480) to a widget-container host 400 to be modified at the widget-container host 400 before being sent to content aggregation point 450 and/or content aggregation point 460, according to an embodiment of the invention.
  • a widget server 410 configured to send a widget 490 (e.g., an instance of the widget 490) and a widget-container 480 (e.g., an instance of the widget-container 480) to a widget-container host 400 to be modified at the widget-container host 400 before being sent to content aggregation point 450 and/or content aggregation point 460, according to an embodiment of the invention.
  • each of the content aggregation points 450 and 460 are associated with a different set of content rules.
  • the content aggregation points 450 and 460 can be associated with, for example, a mobile phone or personal computer.
  • the set can be a set of one content rule.
  • the set of content rules associated with each of the content aggregation points 450 and 460 can be similar and/or overlapping.
  • the set of content rules associated with each of the content aggregation points 450 and 460 can be the same.
  • the content aggregation points 450 and 460 can be executed within processing devices (e.g., cell phone, computer) that can be the same or different types of devices based on different platforms (e.g., WAP v. hyper-text mark-up language (html)).
  • processing devices e.g., cell phone, computer
  • platforms e.g., WAP v. hyper-text mark-up language (html)
  • the widget 490 and/or widget-container 480 can be modified using transform modules 406 and 408 that correspond, respectively, with the content aggregation points 450 and 460.
  • transform modules 406 and 408 that correspond, respectively, with the content aggregation points 450 and 460.
  • an instance of widget 490 and/or widget- container 480 are modified using a transform module 406 that corresponds with content aggregation point 450.
  • the transform module 406 can be a module defined to modify the widget 490 from a first configuration to a second configuration according to one or more content rules associated with content aggregation point 450.
  • an instance of widget 490 and/or widget-container 480 can be modified using a transform module 408 that corresponds with content aggregation point 450.
  • the transform module 408 can be a module defined to modify the widget 490 according to one or more content rules associated with content aggregation point 460.
  • the transform modules 406 and 408 can be software modules and/or hardware modules that can be executed on processor 404 and/or integrated into processor 404. In some embodiments, the functionality associated with each of the transform modules 406 and 408 can be integrated into a single transform module (not shown) or multiple transform modules (not shown). In some embodiments, the transform module 406 and 408 can be hard-coded transform modules or dynamically generated transform modules.
  • the transform modules 406 and 408 can be configured to dynamically receive one or more parameter values associated with a content rule(s) from the content aggregation point hosts 470 and 475, respectively.
  • transform module 406 can be configured to receive an updated (e.g., new version) content rule and/or an updated parameter value associated with a content rule (e.g., updated content rule parameter value) from content aggregation point host 470 and modify the widget 490 from a first configuration to a second configuration based on the updated content rule.
  • the transform module 406 can be configured to receive updates from content aggregation point host 470 based on the association of the transform module 406 and the content aggregation point host 470 with content aggregation point 450.
  • Updates associated with content rules can be received at the widget-container host 400 from the content aggregation point hosts 470 and 475, for example, in response to a request for a portion associated with a widget-container, periodically, in response to a change in a content rule, and/or based on a threshold criteria associated with a portion associated with a widget-container.
  • Instances of the widget-containers 480 are configured to process the widget 490 at the content aggregation points 450 and 460.
  • Sending of the widget-container 480 (e.g., an instance of the widget-container 480) for execution at the content aggregation points 450 and 460 can be triggered in response to the widget-container references 452 and 462, respectively, being accessed from the content aggregation points 450 and 460.
  • Sending of the widget 490 (e.g., an instance of the widget 490) for processing within the widget-container 480 can be triggered in response to the widget-references 454 and 464, respectively, being accessed from the widget-containers 452 and 462.
  • widget references 454 and 464 are depicted as being disposed within the widget-container references 452 and 462, respectively, this depiction is to simplify FIG. 4.
  • the widget references 454 and 464 are references included in instances of the widget- container 480 and can be accessed in response to an instance of the widget-container 480 being executed at, for example, content aggregation point 450.
  • the widget-container references 452 and 462 are depicted as being disposed within the widget-container references 452 and 462, respectively, to illustrate their relationship with the widget-container 480 and their relationship with the content aggregation points 450 and 460, respectively. Note that a similar depiction is included in FIG. 6.
  • An instance of the widget 490 for example, can be requested for processing within an instance of widget-container 480 based on a widget request defined in response to the widget-reference 454 being accessed.
  • the widget request can be subsequently sent to the widget-container host 400.
  • the widget-container host 400 can receive an instance of the widget 490 from the widget server 410 and modify the instance of the widget 490 using transform module 406 before sending the modified instance of the widget 490 for processing within the instance of widget-container 480.
  • the widget-container host 400 can request an instance of the widget 490 from the widget server 410.
  • the widget server 410 can be configured to detect the widget request and send an instance of the widget 490 to the widget-container host 400 such that the instance of the widget 490 can be modified using the transform module 406.
  • the widget-container host 400 can be configured to determine which of the transform modules 406 and 408 to use to modify the widget 490 and/or the widget-container 480 from a first configuration to a second configuration.
  • the widget- container host 400 can be configured to select one of the transform modules 406 or 408 based on one or more parameters/identifiers included in the request for the widget 490 and/or the widget-container 480.
  • a placement identifier that uniquely indicates that an instance of the widget-container 480 is associated with content aggregation point 450 can be extracted from, for example, the reference to the widget-container 452 and/or widget reference 454.
  • the placement identifier can be included in the request for widget 490 and used to determine that transform module 406 is the proper transform module for modifying an instance of the widget 490 to satisfy the request for processing within the content aggregation point 450.
  • the determination can be based on, for example, data within a database that associates transform modules with placement identifiers, and thus, with content aggregation points.
  • FIG. 5 illustrates an example of a table 500 that can be used to select a transform module 550 to modify a portion associated with a widget-container 510 for processing at a content aggregation point 545, according to an embodiment of the invention.
  • the table 500 illustrates that the content rules CRl, CR2, and CR3 (column 560) correspond with content aggregation points X, Y, and Z, respectively, shown in column 545.
  • the table 500 also illustrates that transform modules Tl, T2, and T3 (column 550) can be used to transform widget-container A (column 510) and/or widget W (column 520) according to the content rules CRl, CR2, and CR3, respectively.
  • table 500 can be used to determine that transform module Tl can be used to modify an instance of widget W for processing in content aggregation point X at a personal computer. Also, based on an indicator of the content aggregation point identifier 540 (e.g., uniform resource identifier (URI)) received in, for example, a request for widget-container A, table 500 can be used to determine that transform module T3 can be used to modify an instance of widget W for processing in content aggregation point Z at a mobile phone.
  • URI uniform resource identifier
  • the identifier of the content aggregation point 540 can be received at, for example, a widget-container host for use in selecting a transform module at the widget- container host.
  • a request for the widget-container 510 can include the identifier of the content aggregation point 540 or a separate identifier such as a placement identifier 530 that can be used to look-up the identifier of the content aggregation point 540.
  • the identifier of the content aggregation point 540 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 540.
  • a transform module 550 can be selected based on one or more content aggregation point identifiers 540, in some embodiments, a transform module 550 can be selected based on a variety of parameters that can be, for example, stored in a metadata parameter database. For example, a transform module 550 can be selected based on parentage information in a metadata database (not shown) or a placement identifier 530 associated with a particular placement of a reference to a widget-container 510 in a content aggregation point 545 associated with the content aggregation point identifiers 540.
  • the placement identifier 530 can be included in a reference to a widget-container 510 placed in a content aggregation point 545 and can be used in selecting a transform module 550.
  • a request for widget-container A can be defined to indicate the placement identifier 530 uniquely associated with the particular placement of widget-container A and included in the reference. If the instance of widget- container A being requested is the widget-container placed in the content aggregation point X, the request can include the placement identifier Pl from the reference. The placement identifier Pl can then be used to determine based on table 500 that a portion associated with the widget-container can be modified according content rules CRl using transform module Tl.
  • the transform modules 406 and 408 can be configured to transform any portion associated with the widget-container 480 such as a service module (not shown) contained within the widget-container 480.
  • the service module can be served from a service module server (not shown).
  • the transform modules 406 and/or 408 can be used to modify any portion associated with the widget-container 480 from a first configuration to a second configuration for compatibility with a platform associated with processing devices used to execute the content aggregation points 450 and/or 460.
  • the widget-container host 400 can be configured to detect the platform and use transform module 406 and/or 408 or a separate transform module.
  • a transform module based on a set of platform rules that correspond with, for example, a processing device type can be used to modify any portion associated with the widget-container 480 for compatibility with the processing device type.
  • a first set of platform rules can be associated with a cell phone and a second set of platform rules can be associated with a personal computer.
  • the widget-container 480 originates at the memory 402 of the widget- container host 400 and the widget 490 originates at the widget server 410 as shown in FIG. 4, the widget 490 and/or widget-container 480 can be stored in different locations.
  • the widget 490 and/or widget-container 480 can be stored in the memory 402 and served from the widget-container host 400 after being modified at the processor 404.
  • an instance of the widget 490 and/or widget-container 480 can be modified using, for example, transform module 406 and submitted according to a submission process (e.g., submission process content rule).
  • a submission process e.g., submission process content rule
  • an instance of the widget 490 and/or widget-container 480 can be modified according to a submission process for caching at, for example, content aggregation point host 470.
  • the cached copy of the modified instance of the widget 490 and/or widget-container 480 can be received from the content aggregation point host 470 and processed at, for example, content aggregation point 450 rather a modified instance of the widget 490 and/or widget-container 480 being received from the widget-container host 400 and/or widget server 410, respectively.
  • FIG. 6 illustrates a widget-container host 600 configured to produce instances of a master copy of a widget-container 680 (also can be referred to as master widget-container) and/or a master copy of a widget 690 (also can be referred to as master widget) using a transform module 670, according to an embodiment of the invention.
  • the widget-container host 600 can be configured to produce, using the transform module 670, instances (e.g., static copies) of the master widget-container 680 and/or the master widget 690 that correspond with the content aggregation points 650 and/or 660.
  • the widget-container host 600 can be configured to produce instances (e.g., static copies) of the master widget-container 680 and/or the master widget 690 that satisfy the content rules associated with each of the content aggregation points 650 and 660.
  • the widget-container host 600 includes widget-container A 682, which is an instance of the master widget-container 680 modified according to content rules associated with content aggregation point 650, and widget-container B 684, which is an instance of the master widget-container 680 modified according to content rules associated with content aggregation point 660.
  • the widget server 610 includes widget A 692, which is an instance of the master widget 690 modified according to content rules associated with content aggregation point 650, and widget B 694, which is an instance of the master widget 690 modified according to content rules associated with content aggregation point 660.
  • the instances (e.g., copies) of the master copies of the widget-container 680 and the widget 690 — widget-container A 682, widget-container B 684, widget A 692, widget B 694 — can be served to the content aggregation points 650 and 660 in response to a request.
  • the widget-container host 600 can serve an instance of widget- container A 682 to the content aggregation point 650.
  • the widget server 610 can serve an instance of widget A 692 for processing within the content aggregation point 650 in response to a request defined based on widget reference 655.
  • the instances (e.g., copies) of the master copies of the widget-container 680 and the widget 690 — widget-container A 682, widget-container B 684, widget A 692, widget B 694 — can be modified and/or updated based on content rule updates.
  • the integrity of the master copy of the widget 690 can be maintained (e.g., not modified) even when updating widget A 692 and widget B 694.
  • the instances of the master copy of the widget 690, widget A 692 and widget B 694 are sent to the widget server 610 for serving to the content aggregation points 650 and 660
  • the instances of the master copy of the widget 690 can be stored at and served over network 620 from the widget-container host 600.
  • the instances (e.g., copies) of the master copies of the widget-container 680 and the widget 690 — widget-container A 682, widget-container B 684, widget A 692, widget B 694 — can be created based on a user-defined request.
  • FIG. 7 is a flow chart that illustrates a method for placing a reference to a widget- container in a content aggregation point, according to an embodiment of the invention.
  • the flowchart illustrates that a request to place a reference to a widget-container in a content aggregation point associated with a content rule is received at 700.
  • the request can be a user- defined request based on a set of possible content aggregation points (e.g., menu of content aggregation points) where a widget-container can be placed.
  • the set of possible content aggregation points can be defined based on the capability of, for example, a widget-container host to modify a portion associated with a widget-container using one or more transform modules.
  • An instruction used to define the widget-container and/or the content rule is received and/or retrieved at 710.
  • the instruction can be received at, for example, a widget- container host configured to produce a widget-container based on the instruction and based on a content rule.
  • a widget-container host can be configured to retrieve the instruction in response to a request to place the reference of the widget-container in the content aggregation point.
  • a portion associated with the widget-container is generated and/or modified based on the content rule associated with the content aggregation point and/or the instruction at 720.
  • the portion associated with the widget-container e.g., widget, service module, widget-container, entire widget-container including the widget and/or service module
  • the portion associated with the widget- container can be generated (e.g., produced, dynamically generated) at a widget-container host using a widget- container generation engine.
  • the portion associated with the widget- container can be modified based on the content rule using, for example, a transform module defined based on the content rule.
  • the instruction used to generate the portion associated with the widget-container can be modified based on the content rule using, for example, a transform module defined based on the content rule.
  • the modified instruction can be used to generate (e.g., dynamically generate) the portion associated with the widget- container.
  • a widget associated with a widget-container is modified and not generated.
  • the widget-container can contain references to a widget and/or service module. The widget-container, widget, and/or service module can be modified based on one or more content rules associated with the content aggregation point.
  • the reference to the widget-container in the content aggregation point is placed at 730.
  • the reference can be placed in the content aggregation point by, for example, a content aggregation point host in response to an indicator from, for example, a widget-container host indicating that the widget-container is compliant (e.g., substantially compliant) with the content rules associated with the content aggregation point.
  • the reference to the widget-container is placed by a content aggregation point host after the content aggregation point host assesses the widget-container and determines that the widget-container complies with one or more content rules associated with the content aggregation point.
  • a request for the widget-container is received in response to the reference to the widget-container being accessed from the content aggregation point at 740.
  • the widget-container is sent in response to the request at 750.
  • the widget, service-module, and/or widget-container (which are compliant with one or more content rules associated with the content aggregation point) can be sent to the content aggregation point from one or more devices.
  • the widget- container can be sent from a widget-container host and the widget can be sent from a widget server.
  • Some embodiments of the invention relate to a storage product with a processor- readable medium having instructions (e.g., instructions within a module) 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.
  • 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.
  • ASICs Application-Specific Integrated Circuits
  • PLDs Programmable Logic Devices
  • code examples 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.
  • code examples include, but are not limited to, control signals, encrypted code, and compressed code.
  • the present invention is related to an apparatus and methods translation of content and/or data associated with the content for compatibility with content aggregation points.

Abstract

A method includes receiving a request for a widget-container defined in response to a reference to the widget-container being accessed from a content aggregation point. The widget-container is a procedural software framework configured to be executed within the content aggregation point. The widget-container has a portion configured for receiving a widget. The method includes modifying a portion of the widget-container. The portion of the widget-container is based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.

Description

METHOD AND APPARATUS FOR WIDGET AND WIDGET-CONTAINER PLATFORM ADAPTATION AND DISTRIBUTION
Cross Reference to Related Application
[1001] This application is a continuation of and claims priority to U.S. Patent Application No. 11/682,626, entitled "Method and Apparatus for Widget and Widget-Container Platform Adaptation and Distribution," filed March 6, 2007, the disclosure of which is hereby incorporated by reference in its entirety.
Background
[1002] The disclosed invention relates generally to interoperability of content with content aggregation points, and in particular, to modification of content and/or data associated with the content for compatibility with content aggregation points.
[1003] 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 for automated distribution of virally distributed content into aggregation points (e.g., web sites, galleries, directories, etc.) that may have different ways of representing data associated with the content. Often a user may not be allowed to place content into an aggregation point when the content and/or data associated with the content is not compliant with a format specific to the aggregation point. Thus, there is a need for an apparatus and method for translation of content or data associated with the content for compatibility with content aggregation points. Summary of the Invention
[1004] A method includes receiving a request for a widget-container defined in response to a reference to the widget-container being accessed from a content aggregation point. The widget-container is a procedural software framework configured to be executed within the content aggregation point. The widget-container has a portion configured for receiving a widget. The method includes modifying a portion of the widget-container. The portion of the widget-container is based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.
Brief Description of the Drawings
[1005] 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.
[1006] FIG. 1 is a schematic block diagram that illustrates a widget-container host configured to modify at least a portion of a widget-container using a transform module based on one or more content rules associated with one or more content aggregation points, according to an embodiment of the invention.
[1007] FIG. 2 illustrates a widget-container host and a widget server configured to serve a widget-container and a widget, respectively, to a content aggregation point, according to an embodiment of the invention.
[1008] FIG. 3 is a flowchart that illustrates a method for modifying a portion associated with a widget-container based on a content rule associated with a content aggregation point, according to an embodiment of the invention.
[1009] FIG. 4 illustrates a widget server configured to send a widget and/or a widget- container to a widget-container host to be modified at the widget-container host before being sent to a content aggregation point, according to an embodiment of the invention.
[1010] FIG. 5 illustrates an example of a table that can be used to select a transform module to modify a portion of a widget-container for processing at a content aggregation point, according to an embodiment of the invention. [1011] FIG. 6 illustrates a widget-container host configured to produce instances of a master copy of a widget-container and/or a master copy of a widget using a transform module, according to an embodiment of the invention.
[1012] FIG. 7 is a flow chart that illustrates a method for placing a reference to a widget- container in a content aggregation point, according to an embodiment of the invention.
Detailed Description
[1013] 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.
[1014] 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. 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. 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 Application Serial No. 11/537,362, "Method and Apparatus for Widget-Container Hosting and Generation," which is incorporated herein by reference in its entirety.
[1015] 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 within the widget-container when they are, for example, executed, rendered, manipulated, and/or displayed.
[1016] A portion associated with a widget-container (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)) and/or a widget (e.g., widget not associated with a widget-container) can be modified using a transform module such that the portion associated with the widget-container and/or widget is compatible with a content rule associated with a content aggregation point. The portion associated with the widget-container and/or widget can be modified by modifying a portion of code, a metadata parameter value associated with the portion and/or widget, a packaging type, and/or a format associated with the widget such that the widget can be processed at the content aggregation point. In some embodiments, a transform module can be configured to use (e.g., follow) a submission process associated with the content aggregation point. In some embodiments, a transform module can be configured to modify a widget and/or a portion associated with a widget-container for processing within a content aggregation point for different types of processing devices (e.g., mobile phone, computer).
[1017] An updated version of a content rule associated with a content aggregation point can be automatically detected and received in some embodiments. The updated content rule can be received from a content aggregation point host based on various criteria and/or indicators. The widget and/or portion associated with a widget-container can be automatically modified according to the updated content rule. In some embodiments, one or more transform modules can be automatically selected and used to modify a widget and/or a portion associated with a widget-container from a first configuration to a second configuration such that the widget and/or portion is compliant (e.g., substantially compliant) with one or more content rules associated with one or more content aggregation points. In some embodiments, modified and/or unmodified widgets and/or portions of a widget- container can be stored at and/or served from one or more devices.
[1018] 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 detailed description, can recognize that the methods and apparatus associated with the embodiments can be applied to widgets that are not associated with a widget-container. In some embodiments, a reference to the widget (not associated with a widget-container) can be placed in (e.g., included in) one or more content aggregation points. In some embodiments, a widget (not associated with a widget-container) can be associated with a widget-container after, for example, being modified using a transform module.
[1019] Referring now to the drawings, FIG. 1 is a schematic block diagram that illustrates a widget-container host 100 configured to modify at least a portion associated with a widget- container 105 using a transform module 108 based on one or more content rules associated with content aggregation points 152, 162, and/or 172, according to an embodiment of the invention. Modifying can include modifying data associated with the portion associated with the widget-container 105. The portion can be, for example, a widget 102 and/or a service module (not shown) associated with the widget-container 105. If the widget 102 and/or widget-container 105 satisfies the content rule(s) associated with the content aggregation points 152, 162, and/or 172, the widget-container host 100 can be configured to send (e.g., send an instance, serve an instance) over network 120 the widget 102 and/or widget-container 105 to one or more of the content aggregation points 152, 162, and/or 172. The widget 102 and/or widget-container 105 can be processed (e.g., displayed, executed) at one or more of the content aggregation points 152, 162, and/or 172.
[1020] The content aggregation points 152, 162, and/or 172 can be, for example, a desktop, a web site (e.g., processor-readable vehicle, WAP site), or a content distribution point (e.g., web-based gallery, a web-based portal). The content aggregation points 152, 162, and/or 172 can be associated with, for example, a personal computer or a mobile device such as a personal digital assistant (PDA). The widget-container 105 can be a procedural software framework that can contain (e.g., include a reference to) the widget 102. As a procedural software framework, the widget-container can be a series of instructions that are executable (or interpretable) by, for example, a processor (not shown) associated with one or more of the processing devices 150, 160, and/or 170.
[1021] The widget 102 can be, for example, a static data object, a software object, and/or a media object. For example, the widget 102 can be an executed (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 102 can be a static data object that is, for example, displayed within the widget-container 105. 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 102 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 105. The results of the executable application can be included and/or displayed within the procedural software framework of the widget-container 105. The widget-container 105 can be configured so that the widget 102 can be processed in a portion associated with the widget-container 105 in response to the widget-container 105 being received at a content aggregation point. More details regarding widget-containers and widgets are set forth in the above-identified co-pending application entitled, "Method and Apparatus for Widget- Container Hosting and Generation," which is incorporated herein by reference in its entirety.
[1022] The content aggregation points 152, 162, and/or 172 can be configured such that only content, such as widget-container 105 and/or widget 102, that satisfies or substantially satisfies the content rules can be referenced, requested, and/or executed (e.g., displayed) within the content aggregation points 152, 162, and/or 172. The content rules can be administered and/or defined by an administrator or owner of one or more of the content aggregation points 152, 162, and/or 172. In some embodiments, a content rule can be based on a complex set of rules defined within an algorithm and/or a file that can be accessed from, for example, a server (not shown) associated with one or more of the content aggregation points 152, 162, and/or 172.
[1023] Each of the processing devices 150, 160, and/or 170 (also can be referred to as a widget-container processing device) can be any type of device that is configured to process any portion associated with the widget-container 105. Each of the processing devices 150, 160 and/or 170 can be, for example, a computer, a mobile phone, a personal digital assistant (PDA), a server, and/or any other processor-based device. The widget-container 105 can be configured and/or modified using the transform module 108 so that any portion associated with the widget-container 105 can be processed by each of the processing devices 150, 160, and/or 170 even though the platforms (e.g., hardware, architecture, software, operating system, runtime libraries, programming languages) of the respective processing devices 150, 160, and/or 170 may be different. The network 120 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.
[1024] The widget-container host 100 can be configured to use the transform module 108 to modify a portion associated with the widget-container 105 from a first configuration to a second configuration to satisfy one or more content rules such that the portion associated with the widget-container 105 can be associated with (e.g., referenced in) and/or executed within the content aggregation points 152, 162, and/or 172. The widget-container host 100 can be configured to modify the portion associated with the widget-container 105 to satisfy the content rule(s) associated with the content aggregation points 152, 162, and/or 172 such that the widget-container host 100 can send (e.g., serve, serve an instance of) the portion associated with the widget-container 105 to the content aggregation points 152, 162, and/or 172 when requested. In other words, the portion associated with the widget-container 105 can be modified by the widget-container host 100 before the portion associated with the widget-container 105 is referenced within, sent (e.g., served) to, and/or requested for execution at one or more of the content aggregation points 152, 162, and/or 172.
[1025] For example, assuming that widget-container 105 satisfies the content rules associated with content aggregation point 162, an instance of the widget-container 105 can be sent to content aggregation point 162 in response to a request for the instance of the widget- container 105 when a reference to the widget-container 105 is accessed from content aggregation point 162. The request for the widget-container 105 can be defined by processing device 160. In response to the request, the instance of the widget-container 105 can be sent from the widget-container host 100 to processing device 160 for execution within content aggregation point 162. [1026] In some embodiments, a portion associated with the widget-container 105 (e.g., instances of the widget 102 and/or widget-container 105) can be served simultaneously and/or at different times to the content aggregation points 152, 162, and/or 172. Similarly, the content aggregation points 152, 162, and/or 172 (e.g., instances of the content aggregation points 152, 162, and/or 172) can be, for example, retrieved and/or processed at one or more of the processing devices 150, 160, and/or 170 simultaneously or at different times.
[1027] Although the widget 102 and widget-container 105 are illustrated in FIG. 1 as being sent from the widget-container host 100, in some embodiments, modified and/or unmodified portions of the widget-container 105 can be served from different devices. For example, an instance of the widget-container 105 can be dynamically generated to include a reference to the widget 102 at a first device. After the instance of the widget-container 105 is sent from the first device to, for example, content aggregation point 152 and begins executing within content aggregation point 152, the widget 102 can be requested based on the reference to the widget 102 and served from a second device for processing within the widget-container 105.
[1028] Each of the content aggregation points 152, 162, and/or 172 can be associated with one or more content rules that can be different. For example, the content rule(s) associated with the content aggregation point 152 can be different than the content rule(s) associated with the content aggregation point 162. The content rules can be, for example, a code rule, a metadata rule, a packaging rule, a format rule, and/or a rule related to a submission process. The content rules are categorized below, in part, to simplify the discussion. In other words, the content rules can be classified using different categories.
[1029] Although the transform module 108 is depicted as a module within the widget- container host 100, in some embodiments, the transform module 108 can be associated with a different device (not shown). In some embodiments, for example, the widget-container host 100 can be configured to cooperate (e.g., send and/or receive the widget-container 105 to and/or from) with a separate device that is configured to execute the transform module 108. The functionality of the transform module 108 can be separated into different modules that can also be executed at one or more devices.
[1030] In some embodiments, a widget 102 that is not associated with a widget-container can be modified according to a content rule associated with a content aggregation point such as content aggregation points 152, 162, and/or 172. The widget 102 can be modified using a transform module such as transform module 108 at, for example, a widget server (not shown) and/or at the widget-container host 100. In some embodiments, a reference to the widget 102 can be placed in (e.g., included in) one or more content aggregation points such as, for example, content aggregation point 162.
[1031] A code rule, for example, can be configured to require that the widget 102 be associated with or include a certain portion of processor-related code or processor-related instruction. The code rule may require that the processor-related code or processor-related instruction be integrated into or associated with the widget 102 and/or widget-container 105 in a particular way. In some embodiments, a code rule can be configured to require that the widget 102 be based on a certain type of programming language or have a certain programming language structure or sequence.
[1032] A metadata rule, for example, can be configured to require that specified metadata parameter values be associated with the widget 102 and/or widget-container 105 (e.g., content type metadata parameter value, screen shot) or that metadata values be represented in a particular format or according to a specified style. In some embodiments, a metadata rule can be configured to require association between certain types of metadata parameter values. More details regarding metadata parameter values as related to a widget-container are set forth in co-pending Application Serial No. 11/537,375, "Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation," which is incorporated herein by reference in its entirety.
[1033] A format rule, for example, can be configured to require that the widget 102 and/or widget-container 105 be smaller or larger than a specified dimension or specified byte size (e.g., < 1 gigabyte). In some embodiments, a format rule can be configured, for example, to require that metadata parameter values have a particular format (e.g., dates in DD/MM/YYYY format) or specified font style.
[1034] A packaging rule, for example, can be configured to require that the widget 102 and/or widget-container 105 be compressed (e.g., zipped) or included in an specified type of framework (e.g., extensible markup language (XML) framework).
[1035] A submission process is a process for submitting the widget 102 and/or widget- container 105 for inclusion in any of the content aggregation points 152, 162, and 172. The submission process can include one or more steps defined in a content rule related to the submission process. The submission process can include steps that require intervention by an entity associated with the content aggregation points 152, 162, and 172, such as a computer, a server (e.g., back-end server, network server), or an administrative person. For example, content aggregation point 152 can, according to a content rule, require that the widget 102 and/or widget-container 105 be approved before a reference to the widget 102 and/or widget- container 105 can be included in the content aggregation point 152. The approval, for example, can be contingent on the widget 102 and/or widget-container 105 satisfying all of the specification rules associated with content aggregation point 152. In some embodiments, the widget-container host 100 can be configured to automatically send and/or receive notifications and/or indicators associated with a submission process.
[1036] A service module (not shown), if contained in the widget-container 105, can be associated with the widget 102. The service module (or reference to the service module) contained in the widget-container 105 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). The service module can be modified to comply with one or more content rules. More details regarding service modules are set forth in the above-identified co-pending application entitled, "Method and Apparatus for Widget-Container Hosting and Generation."
[1037] FIG. 2 illustrates a widget-container host 200 and widget server 210 configured to serve a widget-container 240 (e.g., serve an instance of the widget-container 240) and a widget 242 (e.g., serve an instance of the widget), respectively, to a content aggregation point 250, according to an embodiment of the invention. The widget-container 240 and the widget 242 can be modified according to content rules associated with the content aggregation point 250 such that the reference 252 to the widget-container 240 can be placed in the content aggregation point 250.
[1038] A processing device 260 is configured to display/execute the content aggregation point 250 and request the widget-container 240 (and widget 242) based on a reference 252 to the widget-container 240. The request can be defined by the processing device 260 when the reference 252 is accessed from the content aggregation point 250. In some embodiments, the widget 242 can be requested for processing within the widget-container 240 after at least a portion associated with the widget-container 240 is received and executed within the content aggregation point 250.
[1039] The widget-container host 200 can be configured to receive one or more content rules associated with the content aggregation point 250 via a content aggregation point host 230. The content aggregation host 230 can be configured to serve the content aggregation point 250 to the processing device 240 in response to a request for the content aggregation point 250 defined by the processing device 260. The content aggregation point host 230 can be configured to store one or more versions of content rules associated with multiple content aggregation points (not shown).
[1040] The content aggregation point host 230 can be configured to send one or more content aggregation rules to the widget-container host 200 in response to a request from the widget-container host 200. The widget-container host 200 can be configured to store one or more content rules in the memory 202 or a separate database (not shown) where the content rules can be accessed by the widget-container host 200. In some embodiments, the content aggregation point host 230 can be configured to send content rules to the widget-container host 200 periodically (e.g., nightly) or randomly. In some embodiments, the content aggregation point host 230 can be configured to send an updated content rule to the widget- container host 200 when a content rule is, for example, changed. An updated content rule can be referred to as a different or new version of a content rule. The content aggregation point host 230 can be configured to send the updated portion of the content rule or the entire updated content rule (e.g., new version of the content rule, different version of the content rule). The content rule can be updated by, for example, an administrator associated with the content aggregation point 250 and/or automatically by, for example, a processor. In some embodiments, the widget-container host 200 can be configured to receive a content rule from a source (not shown) other than the content aggregation point host 230.
[1041] As shown in FIG. 2, the widget-container 240 is served from a memory 202 of the widget-container host 200. The widget-container host 200 can modify, if necessary, the widget-container 240 based on one or more content rules received from the content aggregation host 230. For example, the widget-container host 200 can modify a metadata parameter value and/or a portion of programming code associated with the widget-container host 200 based a content rule associated with the content aggregation point 250. In some embodiments, the widget-container host 200 can request a content rule and/or updated content rule before modifying the widget-container 200 from a first configuration to a second configuration. For example, the widget-container host 200 can be configured to retrieve and/or request the content rule in response to a request to serve the widget-container 240 to the processing device 260 for display/execution within the content aggregation point 250. In other words, the widget-container host 200 can be configured to retrieve the content rule only when necessary.
[1042] In some embodiments, the widget-container host 200 can be configured to modify the widget-container 240 from a first configuration to a second configuration according to a content rule associated with the content aggregation point 250 and store the modified widget- container 240 in the memory 202 or a separate database (not shown). When a request for the widget-container 240 is received at the widget-container host 200 from, for example, the processing device 260, the widget-container host can retrieve the widget-container 240 from the memory 202 or the separate database and serve the widget-container 240 (e.g., serve an instance of the widget-container 240) to the processing device 260.
[1043] In some embodiments, the widget-container host 200 can be triggered to determine whether the widget-container 240 should be modified and/or updated based on an updated content rule. For example, the widget-container host 200 can determine whether an updated content rule has been defined since the widget-container 240 was last modified based on, for example, a timestamp associated with the widget-container 240. If the widget- container 240 was last updated longer than a threshold period of time, for example, the widget-container host 200 can query the content aggregation point host 230 to determine whether an updated content rule exists (e.g., has been released or defined since the widget- container 240 was last modified).
[1044] Also, as shown in FIG. 2, the widget 242 can be served from the widget server 210 for processing within the widget-container 240 at the processing device 260. In some embodiments, the widget 242 can be served for processing at the processing device 260 after the widget-container 240 has been received at the processing device 260. For example, the widget 242 can be served in response to a request from the processing device 260 based on a reference 246 to the widget 242 included in the widget-container 240.
[ 1045] The widget server 210 and/or the widget-container host 200 can be configured such that the widget 242 is sent to the widget-container host 200 to be modified based on one or more content rules associated with the content aggregation point 250 and returned to the widget server 210 to be served from the widget server 210 when requested. In some embodiments, the widget server 210 can be configured to send the widget 242 to the widget- container host 200 for modification based on one or more content rules in response to the widget-container 240 being defined. After the widget 242 has been modified, the widget 242 can be sent from the widget-container host 200 to the widget server 210 and stored at the widget server 210. An instance of the widget 242 can be served to the processing device 260 in response to a request (e.g., a request after the widget-container 240 has been served).
[1046] The reference 246 to the widget 242 included within the widget-container 240 can be defined to reference the location from which the widget 242 will be served. In some embodiments, the reference 246 can be dynamically defined, for example, based on a metadata parameter value when the widget-container 240 is, for example, dynamically generated. 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."
[1047] The widget-container host 200 can be configured to send an indicator to the widget server 210 to indicate that an updated content rule associated with the widget 242 has been received and/or defined. The widget server 210 can respond by sending the widget 242 to the widget-container server 210 for modification based on the updated content rule. The widget server 210 can be configured to receive the modified widget 242 and serve the modified widget 242.
[1048] In some embodiments, the widget server 210 can be configured to query the widget-container host 200 regarding updates to content rules. The widget-container host 200 can be configured to respond to these queries and can request that the widget 242 be sent from the widget server 210 such that the widget 242 can be modified at the widget-container host 200. In some embodiments, the widget server 210 can be configured to query the widget-container host 200 before serving an instance of the widget 242. The widget server 210 can also be configured to query the widget-container host 200 to determine whether an updated content rule exists based on a criteria (e.g., widget 242 last modified more than a threshold period of time). [1049] In some embodiments, a modification of the widget-container 240 and/or a modification of the widget 242 can be based on one or more shared content rules. In some embodiments, the widget-container 240 can be modified based on and/or associated with one or more content rules that are not associated with the widget 242 even though the widget 242 is referenced in and associated with the widget-container 240.
[1050] Although only one widget-container 240 and one widget 242 are shown in FIG. 2, in some embodiments, the widget server 210 and/or widget-container host 200 can be configured to store and/or serve multiple widgets (not shown) and/or widget-containers (not shown), respectively, to multiple content aggregation points (not shown). For example, multiple instances of the widget-container 240 and/or widget 242 can be served to multiple content aggregation points synchronously and/or asynchronously. In some embodiments, multiple widget servers (not shown) can be associated with a single widget-container host, such as widget-container host 200, and vice versa.
[1051] In some embodiments, a cached copy of the widget 242 and/or widget-container 240 (e.g., any portion associated with the widget-container 240) can be stored at the content aggregation point host 230 for serving to the content aggregation point 250. The cached copy of the widget 242 and/or widget-container 240 can be produced at the widget-container host 200. The cached copy of the widget 242 and/or widget-container 240 can be based on content rule(s) associated with the content aggregation point 250. If an updated version of the content rule(s) is detected and/or associated with the content aggregation point 250, the widget-container host 200, in cooperation with the widget server 210, can be configured to replace the cached copy of the widget 242 and/or widget-container 240 with a modified widget 242 and/or the widget-container 240, respectively, based on the updated version of the content rule(s).
[1052] In some embodiments, an instance of the widget 242 and/or widget-container 240 can be submitted according to a submission process (e.g., submission process content rule) for caching at the content aggregation point host 230. The widget-container host 200 can be configured to follow the submission process defined with, for example, a content rule. In some embodiments, the widget-container host 200 can send a notification to an entity in response to the submission process being completed. For example, the widget-container host 200 can be configured to send a notification to an entity that requested that the widget 242 and/or widget-container 240 be included in the content aggregation point 250. [1053] In some embodiments, rather than sending a modified widget 242 to the widget server 210 for serving, the widget-container host 200 can be configured to store the modified widget 242 and serve the modified widget 242 from the widget-container host 200 to the content aggregation point 240.
[1054] In some embodiments, a widget 242 that is not associated with a widget-container can be modified according to a content rule associated with a content aggregation point, such as content aggregation point 250. The widget 242 that is not associated with a widget- container can be modified at and/or served from, for example, the widget server 210 and/or at the widget-container host 200. The widget 242 can be served, for example, in response to a reference (not shown) to the widget 242 being accessed from the content aggregation point 250.
[1055] FIG. 3 is a flowchart that illustrates a method for modifying a portion associated with a widget-container based on a content rule associated with a content aggregation point, according to an embodiment of the invention. The flowchart illustrates that an instruction defining a widget-container associated with a widget is received at 300. The instruction can be used to dynamically produce (e.g., generate) the widget-container when a request for the widget-container is received.
[1056] A content rule related to a content aggregation point that includes a reference to the widget-container is received or retrieved at 310. In some embodiments, the content rule can be received or retrieved from, for example, a content aggregation point host. The content rule can be received at a widget-container host in response to a request for the content rule from the widget-container host. The content rule can be stored in a database and associated with, for example, a customizable parameter values (e.g., metadata parameter values) associated with the widget-container.
[1057] A portion associated with the widget-container is modified based on the content rule at 320. For example, a format of a metadata parameter value associated with a widget that is referenced within the widget-container can be modified based on the content rule. The portion associated with the widget-container can be modified using a transform module at a widget-container host.
[1058] After the portion associated with the widget-container has been modified, the modified portion associated with the widget-container can be stored in a memory at 330. The modified portion associated with the widget-container can be stored at, for example, a widget-container host and/or a widget server.
[1059] A request for the widget-container can be received in response to the reference to the widget-container being accessed from the content aggregation point at 340. The request can be defined by a processing device that accesses the reference while displaying/executing the content aggregation point. The request can be sent to, for example, a content aggregation point host if the content aggregation point host is storing a cached copy of a modified or unmodified portion associated with the widget-container.
[ 1060] The modified portion associated with the widget-container is then sent in response to the request at 350. For example, if the widget-container is the portion to be modified, the instruction used to define the widget-container can be modified and used to dynamically generate a modified widget-container. The modified widget-container can then be sent in response to the request. If the widget-container is the portion to be modified and the widget- container is stored in the memory as a static widget-container, the widget-container can be modified and the modified widget-container can be sent in response to the request. In some embodiments, the widget and/or service module can be the portion associated with the widget-container that is modified and sent.
[1061] Because each of several content aggregation points can be associated with one or more different content rules, a portion associated with a widget-container can be modified based on different content rules that correspond with each of the content aggregation points. FIG. 4 illustrates a widget server 410 configured to send a widget 490 (e.g., an instance of the widget 490) and a widget-container 480 (e.g., an instance of the widget-container 480) to a widget-container host 400 to be modified at the widget-container host 400 before being sent to content aggregation point 450 and/or content aggregation point 460, according to an embodiment of the invention. In this embodiment, each of the content aggregation points 450 and 460 are associated with a different set of content rules. The content aggregation points 450 and 460 can be associated with, for example, a mobile phone or personal computer. In some embodiments, the set can be a set of one content rule. In some embodiments, the set of content rules associated with each of the content aggregation points 450 and 460 can be similar and/or overlapping. In some embodiments, the set of content rules associated with each of the content aggregation points 450 and 460 can be the same. Although not shown, the content aggregation points 450 and 460 can be executed within processing devices (e.g., cell phone, computer) that can be the same or different types of devices based on different platforms (e.g., WAP v. hyper-text mark-up language (html)).
[1062] Because the content rules for each of the content aggregation points 450 and 460 can be different, the widget 490 and/or widget-container 480 can be modified using transform modules 406 and 408 that correspond, respectively, with the content aggregation points 450 and 460. For example, when the widget 490 and/or widget-container 480 are served over network 420 to content aggregation point 450, an instance of widget 490 and/or widget- container 480 are modified using a transform module 406 that corresponds with content aggregation point 450. The transform module 406 can be a module defined to modify the widget 490 from a first configuration to a second configuration according to one or more content rules associated with content aggregation point 450. Likewise, when the widget 490 and/or widget-container 480 are served over network 420 to content aggregation point 460, an instance of widget 490 and/or widget-container 480 can be modified using a transform module 408 that corresponds with content aggregation point 450. The transform module 408 can be a module defined to modify the widget 490 according to one or more content rules associated with content aggregation point 460.
[1063] The transform modules 406 and 408 can be software modules and/or hardware modules that can be executed on processor 404 and/or integrated into processor 404. In some embodiments, the functionality associated with each of the transform modules 406 and 408 can be integrated into a single transform module (not shown) or multiple transform modules (not shown). In some embodiments, the transform module 406 and 408 can be hard-coded transform modules or dynamically generated transform modules.
[1064] In some embodiments, the transform modules 406 and 408 can be configured to dynamically receive one or more parameter values associated with a content rule(s) from the content aggregation point hosts 470 and 475, respectively. For example, transform module 406 can be configured to receive an updated (e.g., new version) content rule and/or an updated parameter value associated with a content rule (e.g., updated content rule parameter value) from content aggregation point host 470 and modify the widget 490 from a first configuration to a second configuration based on the updated content rule. The transform module 406 can be configured to receive updates from content aggregation point host 470 based on the association of the transform module 406 and the content aggregation point host 470 with content aggregation point 450. Updates associated with content rules can be received at the widget-container host 400 from the content aggregation point hosts 470 and 475, for example, in response to a request for a portion associated with a widget-container, periodically, in response to a change in a content rule, and/or based on a threshold criteria associated with a portion associated with a widget-container.
[1065] Instances of the widget-containers 480 are configured to process the widget 490 at the content aggregation points 450 and 460. Sending of the widget-container 480 (e.g., an instance of the widget-container 480) for execution at the content aggregation points 450 and 460 can be triggered in response to the widget-container references 452 and 462, respectively, being accessed from the content aggregation points 450 and 460. Sending of the widget 490 (e.g., an instance of the widget 490) for processing within the widget-container 480 can be triggered in response to the widget-references 454 and 464, respectively, being accessed from the widget-containers 452 and 462.
[1066] Although the widget references 454 and 464 are depicted as being disposed within the widget-container references 452 and 462, respectively, this depiction is to simplify FIG. 4. The widget references 454 and 464 are references included in instances of the widget- container 480 and can be accessed in response to an instance of the widget-container 480 being executed at, for example, content aggregation point 450. The widget-container references 452 and 462 are depicted as being disposed within the widget-container references 452 and 462, respectively, to illustrate their relationship with the widget-container 480 and their relationship with the content aggregation points 450 and 460, respectively. Note that a similar depiction is included in FIG. 6.
[1067] An instance of the widget 490, for example, can be requested for processing within an instance of widget-container 480 based on a widget request defined in response to the widget-reference 454 being accessed. The widget request can be subsequently sent to the widget-container host 400. In response to the widget request, the widget-container host 400 can receive an instance of the widget 490 from the widget server 410 and modify the instance of the widget 490 using transform module 406 before sending the modified instance of the widget 490 for processing within the instance of widget-container 480. In some embodiments, the widget-container host 400 can request an instance of the widget 490 from the widget server 410. In some embodiments, the widget server 410 can be configured to detect the widget request and send an instance of the widget 490 to the widget-container host 400 such that the instance of the widget 490 can be modified using the transform module 406. [1068] The widget-container host 400 can be configured to determine which of the transform modules 406 and 408 to use to modify the widget 490 and/or the widget-container 480 from a first configuration to a second configuration. In some embodiments, the widget- container host 400 can be configured to select one of the transform modules 406 or 408 based on one or more parameters/identifiers included in the request for the widget 490 and/or the widget-container 480.
[1069] For example, a placement identifier that uniquely indicates that an instance of the widget-container 480 is associated with content aggregation point 450 can be extracted from, for example, the reference to the widget-container 452 and/or widget reference 454. The placement identifier can be included in the request for widget 490 and used to determine that transform module 406 is the proper transform module for modifying an instance of the widget 490 to satisfy the request for processing within the content aggregation point 450. The determination can be based on, for example, data within a database that associates transform modules with placement identifiers, and thus, with content aggregation points.
[1070] FIG. 5 illustrates an example of a table 500 that can be used to select a transform module 550 to modify a portion associated with a widget-container 510 for processing at a content aggregation point 545, according to an embodiment of the invention. The table 500 illustrates that the content rules CRl, CR2, and CR3 (column 560) correspond with content aggregation points X, Y, and Z, respectively, shown in column 545. The table 500 also illustrates that transform modules Tl, T2, and T3 (column 550) can be used to transform widget-container A (column 510) and/or widget W (column 520) according to the content rules CRl, CR2, and CR3, respectively. For example, based on an indicator of the content aggregation point identifier 540 (e.g., uniform resource identifier (URI)) received in, for example, a request for widget-container A, table 500 can be used to determine that transform module Tl can be used to modify an instance of widget W for processing in content aggregation point X at a personal computer. Also, based on an indicator of the content aggregation point identifier 540 (e.g., uniform resource identifier (URI)) received in, for example, a request for widget-container A, table 500 can be used to determine that transform module T3 can be used to modify an instance of widget W for processing in content aggregation point Z at a mobile phone.
[1071] The identifier of the content aggregation point 540 can be received at, for example, a widget-container host for use in selecting a transform module at the widget- container host. A request for the widget-container 510, for example, can include the identifier of the content aggregation point 540 or a separate identifier such as a placement identifier 530 that can be used to look-up the identifier of the content aggregation point 540. In some embodiments, the identifier of the content aggregation point 540 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 540.
[1072] Although, a transform module 550 can be selected based on one or more content aggregation point identifiers 540, in some embodiments, a transform module 550 can be selected based on a variety of parameters that can be, for example, stored in a metadata parameter database. For example, a transform module 550 can be selected based on parentage information in a metadata database (not shown) or a placement identifier 530 associated with a particular placement of a reference to a widget-container 510 in a content aggregation point 545 associated with the content aggregation point identifiers 540.
[1073] For example, in some embodiments, the placement identifier 530 can be included in a reference to a widget-container 510 placed in a content aggregation point 545 and can be used in selecting a transform module 550. When a reference to widget-container A is accessed from a content aggregation point 545, a request for widget-container A can be defined to indicate the placement identifier 530 uniquely associated with the particular placement of widget-container A and included in the reference. If the instance of widget- container A being requested is the widget-container placed in the content aggregation point X, the request can include the placement identifier Pl from the reference. The placement identifier Pl can then be used to determine based on table 500 that a portion associated with the widget-container can be modified according content rules CRl using transform module Tl.
[1074] Referring back to FIG. 4, although not shown, the transform modules 406 and 408 can be configured to transform any portion associated with the widget-container 480 such as a service module (not shown) contained within the widget-container 480. The service module can be served from a service module server (not shown). The transform modules 406 and/or 408 can be used to modify any portion associated with the widget-container 480 from a first configuration to a second configuration for compatibility with a platform associated with processing devices used to execute the content aggregation points 450 and/or 460. The widget-container host 400 can be configured to detect the platform and use transform module 406 and/or 408 or a separate transform module.
[1075] In some embodiments, a transform module based on a set of platform rules that correspond with, for example, a processing device type can be used to modify any portion associated with the widget-container 480 for compatibility with the processing device type. For example, a first set of platform rules can be associated with a cell phone and a second set of platform rules can be associated with a personal computer.
[1076] Although the widget-container 480 originates at the memory 402 of the widget- container host 400 and the widget 490 originates at the widget server 410 as shown in FIG. 4, the widget 490 and/or widget-container 480 can be stored in different locations. For example, the widget 490 and/or widget-container 480 can be stored in the memory 402 and served from the widget-container host 400 after being modified at the processor 404.
[1077] In some embodiments, an instance of the widget 490 and/or widget-container 480 can be modified using, for example, transform module 406 and submitted according to a submission process (e.g., submission process content rule). In some embodiments, an instance of the widget 490 and/or widget-container 480 can be modified according to a submission process for caching at, for example, content aggregation point host 470. The cached copy of the modified instance of the widget 490 and/or widget-container 480 can be received from the content aggregation point host 470 and processed at, for example, content aggregation point 450 rather a modified instance of the widget 490 and/or widget-container 480 being received from the widget-container host 400 and/or widget server 410, respectively.
[1078] FIG. 6 illustrates a widget-container host 600 configured to produce instances of a master copy of a widget-container 680 (also can be referred to as master widget-container) and/or a master copy of a widget 690 (also can be referred to as master widget) using a transform module 670, according to an embodiment of the invention. The widget-container host 600 can be configured to produce, using the transform module 670, instances (e.g., static copies) of the master widget-container 680 and/or the master widget 690 that correspond with the content aggregation points 650 and/or 660. In other words, the widget-container host 600 can be configured to produce instances (e.g., static copies) of the master widget-container 680 and/or the master widget 690 that satisfy the content rules associated with each of the content aggregation points 650 and 660.
[1079] As shown in FIG. 6, the widget-container host 600 includes widget-container A 682, which is an instance of the master widget-container 680 modified according to content rules associated with content aggregation point 650, and widget-container B 684, which is an instance of the master widget-container 680 modified according to content rules associated with content aggregation point 660. Similarly, the widget server 610 includes widget A 692, which is an instance of the master widget 690 modified according to content rules associated with content aggregation point 650, and widget B 694, which is an instance of the master widget 690 modified according to content rules associated with content aggregation point 660.
[1080] The instances (e.g., copies) of the master copies of the widget-container 680 and the widget 690 — widget-container A 682, widget-container B 684, widget A 692, widget B 694 — can be served to the content aggregation points 650 and 660 in response to a request. For example, in response to a request defined based on widget-container reference 652 from content aggregation point 650, the widget-container host 600 can serve an instance of widget- container A 682 to the content aggregation point 650. Likewise, the widget server 610 can serve an instance of widget A 692 for processing within the content aggregation point 650 in response to a request defined based on widget reference 655.
[1081] In some embodiments, the instances (e.g., copies) of the master copies of the widget-container 680 and the widget 690 — widget-container A 682, widget-container B 684, widget A 692, widget B 694 — can be modified and/or updated based on content rule updates. For example, the integrity of the master copy of the widget 690 can be maintained (e.g., not modified) even when updating widget A 692 and widget B 694.
[1082] Although in this embodiment the instances of the master copy of the widget 690, widget A 692 and widget B 694, are sent to the widget server 610 for serving to the content aggregation points 650 and 660, in some embodiments, the instances of the master copy of the widget 690 can be stored at and served over network 620 from the widget-container host 600. [1083] In some embodiments, the instances (e.g., copies) of the master copies of the widget-container 680 and the widget 690 — widget-container A 682, widget-container B 684, widget A 692, widget B 694 — can be created based on a user-defined request.
[1084] FIG. 7 is a flow chart that illustrates a method for placing a reference to a widget- container in a content aggregation point, according to an embodiment of the invention. The flowchart illustrates that a request to place a reference to a widget-container in a content aggregation point associated with a content rule is received at 700. The request can be a user- defined request based on a set of possible content aggregation points (e.g., menu of content aggregation points) where a widget-container can be placed. The set of possible content aggregation points can be defined based on the capability of, for example, a widget-container host to modify a portion associated with a widget-container using one or more transform modules.
[1085] An instruction used to define the widget-container and/or the content rule is received and/or retrieved at 710. The instruction can be received at, for example, a widget- container host configured to produce a widget-container based on the instruction and based on a content rule. In some embodiments, a widget-container host can be configured to retrieve the instruction in response to a request to place the reference of the widget-container in the content aggregation point.
[1086] A portion associated with the widget-container is generated and/or modified based on the content rule associated with the content aggregation point and/or the instruction at 720. For example, the portion associated with the widget-container (e.g., widget, service module, widget-container, entire widget-container including the widget and/or service module) can be generated (e.g., produced, dynamically generated) at a widget-container host using a widget- container generation engine. In some embodiments, the portion associated with the widget- container can be modified based on the content rule using, for example, a transform module defined based on the content rule. In some embodiments, the instruction used to generate the portion associated with the widget-container can be modified based on the content rule using, for example, a transform module defined based on the content rule. The modified instruction can be used to generate (e.g., dynamically generate) the portion associated with the widget- container. In some embodiments, a widget associated with a widget-container is modified and not generated. [1087] In some embodiments, the widget-container can contain references to a widget and/or service module. The widget-container, widget, and/or service module can be modified based on one or more content rules associated with the content aggregation point.
[1088] After the portion associated with the widget-container is modified and/or generated according to the content rule, the reference to the widget-container in the content aggregation point is placed at 730. The reference can be placed in the content aggregation point by, for example, a content aggregation point host in response to an indicator from, for example, a widget-container host indicating that the widget-container is compliant (e.g., substantially compliant) with the content rules associated with the content aggregation point. In some embodiments, the reference to the widget-container is placed by a content aggregation point host after the content aggregation point host assesses the widget-container and determines that the widget-container complies with one or more content rules associated with the content aggregation point.
[1089] After the reference to the widget-container has been placed, a request for the widget-container is received in response to the reference to the widget-container being accessed from the content aggregation point at 740. The widget-container is sent in response to the request at 750. The widget, service-module, and/or widget-container (which are compliant with one or more content rules associated with the content aggregation point) can be sent to the content aggregation point from one or more devices. For example, the widget- container can be sent from a widget-container host and the widget can be sent from a widget server.
[1090] Some embodiments of the invention relate to a storage product with a processor- readable medium having instructions (e.g., instructions within a module) 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.
[1091] In conclusion, the present invention is related to an apparatus and methods translation of content and/or data associated with the content for compatibility with content aggregation points. 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.

Claims

What is claimed is:
1. A method, comprising: receiving a request for a widget-container, the request being produced in response to a reference to the widget-container being accessed from a content aggregation point, the widget-container being a procedural software framework configured to be executed within the content aggregation point at a processing device, the widget-container having a portion configured for receiving a widget; and modifying the widget, the widget being based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.
2. The method of claim 1, further comprising: receiving the content rule based on an identifier associated with the content aggregation point, the modifying includes modifying based on the content rule, the first configuration of the widget being non-compliant with the content rule.
3. The method of claim 1 , further comprising: receiving an indicator that the reference to the widget-container has been placed in the content aggregation point; and retrieving, in response to the receiving of the indicator, the content rule based on an identifier associated with the content aggregation point, the modifying includes modifying before the receiving the request.
4. The method of claim 1 , wherein the modifying includes modifying in response to the request for the widget-container.
5. The method of claim 1 , further comprising: generating at least a portion of the widget-container in response to the request; sending the widget-container to the processing device in response to the request; and sending the widget based on the second configuration, the sending includes sending to a device configured to serve the widget based on the second configuration to the processing device, the widget being served after the widget-container has been received at the processing device.
6. The method of claim 1, further comprising: receiving the widget based on the first configuration from a widget server; sending, before the modifying, the widget-container to the processing device in response to the request; and sending, after the modifying, the widget based on the second configuration to the processing device.
7. The method of claim 1, wherein the widget-container contains a service module, the method further comprising: generating at least a portion of the widget-container in response to the request, the service module being a pre-defined function associated with the widget-container before the widget-container is generated.
8. The method of claim 1 , wherein the reference is uniquely defined to trigger sending of the widget-container for execution within a location of the first content aggregation point.
9. A method, comprising: receiving a first widget, the first widget being at least one of a static data object, a media object, or a software object; and producing, based on the first widget, a second widget and a third widget, the second widget being configured for processing within a first instance of a widget-container associated with a first content aggregation point, the third widget being configured for processing within a second instance of the widget-container associated with a second content aggregation point, the widget-container being a procedural software framework configured to be executed at a processing device.
10. The method of claim 9, wherein the first content aggregation point is executed on a first processing device type, the second content aggregation point is executed on a second processing device type, the producing includes producing the second widget based on a platform rule associated with the first processing device type.
11. The method of claim 9, wherein the second widget is based on a first configuration substantially compliant with a first content rule associated with the first content aggregation point, the third widget is based on a second configuration substantially compliant with a second content rule associated with the second content aggregation point.
12. The method of claim 9, wherein the widget-container contains a service module associated with the widget, the service module is a pre-defined function associated with the widget-container before the widget-container is generated.
13. The method of claim 9, further comprising: receiving an identifier associated with the first content aggregation point, the producing includes producing the second widget using a transform module selected based on the identifier associated with the first content aggregation point.
14. The method of claim 9, wherein the receiving and the changing are performed at a first device, the method further comprising: sending the first instance of the widget-container to the processing device in response to a request for the first instance of the widget-container; sending, after the producing, the second widget to a second device configured to receive a request for the second widget, the second device being configured to send the second widget to the processing device in response to a request for the second widget.
15. A method, comprising : selecting a transform module based on an identifier associated with a content aggregation point, the content aggregation point including a reference to a widget-container having a portion configured to receive a widget, the widget-container being a procedural software framework configured to be executed at a processing device; and modifying at least one of the widget or a service module using the transform module, the at least one of the widget or the service module being based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.
16. The method of claim 15, wherein the reference is a first reference, the first reference to the widget-container is uniquely defined to trigger sending of the widget-container for execution within a location of the first content aggregation point, the widget-container contains a second reference defined to trigger sending of the at least one of the widget or the service module based on the second configuration to the widget-container.
17. The method of claim 15, wherein the reference is a first reference, the method further comprising: generating the widget-container based on a configuration compatible with the content aggregation point, the generating includes generating the widget-container with a second reference defined to trigger sending the at least one of the widget or a service module for processing within the portion of the widget-container.
18. The method of claim 15, wherein the reference is a first reference, the content aggregation point is a first content aggregation point, the widget-container includes a placement service module configured for placing a second reference to the widget-container in a second content aggregation point.
19. The method of claim 15, wherein the widget-container contains a service module, the method further comprising: receiving a request for the widget-container from the processing device; and generating, before the selecting, the widget-container in response to the request.
20. The method of claim 15, wherein the transform module is selected from a set of transform modules, each transform module from the set of transform modules is associated with at least one content aggregation point from a plurality of content aggregation points.
21. A method, comprising : receiving a request for a widget-container defined in response to a reference to the widget-container being accessed from a content aggregation point, the widget-container being a procedural software framework configured to be executed within the content aggregation point, the widget-container having a portion configured for receiving a widget; and modifying a portion of the widget-container, the portion of the widget-container being based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.
22. A method, comprising: receiving a widget associated with a content aggregation point, the content aggregation point being configured to receive the widget in response to a reference to the widget being accessed from the content aggregation point; and modifying a portion associated with the widget, the portion associated with the widget being based on a first configuration before the modifying and based on a second configuration substantially compliant with a content rule associated with the content aggregation point after the modifying.
PCT/US2008/055755 2007-03-06 2008-03-04 Method and apparatus for widget and widget-container platform adaptation and distribution WO2008109580A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/682,626 2007-03-06
US11/682,626 US20080222232A1 (en) 2007-03-06 2007-03-06 Method and Apparatus for Widget and Widget-Container Platform Adaptation and Distribution

Publications (1)

Publication Number Publication Date
WO2008109580A1 true WO2008109580A1 (en) 2008-09-12

Family

ID=39738744

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/055755 WO2008109580A1 (en) 2007-03-06 2008-03-04 Method and apparatus for widget and widget-container platform adaptation and distribution

Country Status (2)

Country Link
US (1) US20080222232A1 (en)
WO (1) WO2008109580A1 (en)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2136306B1 (en) * 2000-08-23 2013-03-20 Gracenote, Inc. Method and system for obtaining information
US8869066B2 (en) 2006-07-06 2014-10-21 Addthis, Llc Generic content collection systems
US8935269B2 (en) 2006-12-04 2015-01-13 Samsung Electronics Co., Ltd. Method and apparatus for contextual search and query refinement on consumer electronics devices
US9009728B2 (en) 2007-03-06 2015-04-14 Addthis, Inc. Method and apparatus for widget and widget-container distribution control based on content rules
WO2008109761A2 (en) 2007-03-06 2008-09-12 Clearspring Technologies, Inc. Method and apparatus for data processing
US20080229280A1 (en) * 2007-03-12 2008-09-18 Sap Ag Systems and methods for composing custom applications from software components
US20100138295A1 (en) * 2007-04-23 2010-06-03 Snac, Inc. Mobile widget dashboard
US8566781B2 (en) * 2007-04-23 2013-10-22 Siemens Aktiengesellschaft Model-based view parts and reusable data source configurations
KR100763789B1 (en) * 2007-05-22 2007-10-05 주식회사 미니게이트 System for providing widget type idle-screen contents data of mobile terminal
US20090217186A1 (en) * 2008-02-27 2009-08-27 Nokia Corporation Apparatus, computer-readable storage medium and method for providing widgets including advertisements for associated widgets
US9569230B2 (en) * 2007-05-25 2017-02-14 Nokia Technologies Oy Network entity, terminal, computer-readable storage medium and method for providing widgets including advertisements for associated widgets
US20090063502A1 (en) * 2007-09-04 2009-03-05 International Business Machines Corporation Web-based content abstraction based on platform agnostic containers able to be exported to platform specific, user customizable portal pages
US8209378B2 (en) 2007-10-04 2012-06-26 Clearspring Technologies, Inc. Methods and apparatus for widget sharing between content aggregation points
US20090158180A1 (en) * 2007-12-17 2009-06-18 Yahoo! Inc. System and method of styling an embedded widget
US20090235149A1 (en) * 2008-03-17 2009-09-17 Robert Frohwein Method and Apparatus to Operate Different Widgets From a Single Widget Controller
US8234622B2 (en) * 2008-03-31 2012-07-31 Microsoft Corporation Cross platform compositional widgets
US8516366B2 (en) * 2008-06-20 2013-08-20 Wetpaint.Com, Inc. Extensible content service for attributing user-generated content to authored content providers
US9720554B2 (en) * 2008-07-23 2017-08-01 Robert J. Frohwein Method and apparatus to operate different widgets from a single widget controller
US20100064233A1 (en) * 2008-09-09 2010-03-11 Dewar Ami H System, method, and apparatus for generating a portlet by merging content from a plurality of portlets
US8938465B2 (en) * 2008-09-10 2015-01-20 Samsung Electronics Co., Ltd. Method and system for utilizing packaged content sources to identify and provide information based on contextual information
US9063740B2 (en) * 2008-09-16 2015-06-23 Oracle International Corporation Web widget component for a rapid application development tool
US8719896B2 (en) * 2008-09-16 2014-05-06 Oracle International Corporation Widget host container component for a rapid application development tool
US8769490B2 (en) * 2008-09-16 2014-07-01 Oracle International Corporation Desktop widget engine emulator component for a rapid application development tool
US8762708B2 (en) 2008-10-11 2014-06-24 David L. Blankenbeckler Secure content distribution system
CN101763255B (en) * 2008-12-23 2012-10-31 中国移动通信集团公司 Format conversion method and device of special interface tool
US20130275890A1 (en) * 2009-10-23 2013-10-17 Mark Caron Mobile widget dashboard
US8972873B2 (en) * 2010-11-30 2015-03-03 International Business Machines Corporation Multi-environment widget assembly, generation, and operation
US9330148B2 (en) * 2011-06-30 2016-05-03 International Business Machines Corporation Adapting data quality rules based upon user application requirements
TWI459314B (en) * 2011-11-22 2014-11-01 Univ Nat Chiao Tung A structure and method for widget personalization and inter-widgets communication
US9747005B1 (en) 2013-03-11 2017-08-29 Workday, Inc. Adaptive user interface
AU2014318716A1 (en) 2013-09-11 2016-03-10 Cinsay, Inc. Dynamic binding of content transactional items
KR20160064093A (en) 2013-09-27 2016-06-07 신세이, 인크. N-level replication of supplemental content
KR102344237B1 (en) 2013-09-27 2021-12-27 에이아이바이, 인크. Apparatus and method for supporting relationships associated with content provisioning
US9733916B2 (en) 2015-11-23 2017-08-15 Business Objects Software Limited Linking customized external widgets to dashboard data
US10824292B2 (en) * 2018-01-18 2020-11-03 Micro Focus Llc Widget-of-interest identification

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107125A1 (en) * 1999-05-27 2004-06-03 Accenture Llp Business alliance identification in a web architecture
US20060178918A1 (en) * 1999-11-22 2006-08-10 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261002A (en) * 1992-03-13 1993-11-09 Digital Equipment Corporation Method of issuance and revocation of certificates of authenticity used in public key networks and other systems
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
JPH11504451A (en) * 1995-04-24 1999-04-20 アスペクト・ディベロップメント・インコーポレイテッド Modeling objects suitable for database structures, translating into relational database structures, and performing fluid searches on them
US5781189A (en) * 1995-05-05 1998-07-14 Apple Computer, Inc. Embedding internet browser/buttons within components of a network component system
US7159116B2 (en) * 1999-12-07 2007-01-02 Blue Spike, Inc. Systems, methods and devices for trusted transactions
US5948061A (en) * 1996-10-29 1999-09-07 Double Click, Inc. Method of delivery, targeting, and measuring advertising over networks
US6233601B1 (en) * 1996-11-14 2001-05-15 Mitsubishi Electric Research Laboratories, Inc. Itinerary based agent mobility including mobility of executable code
US6112238A (en) * 1997-02-14 2000-08-29 Webtrends Corporation System and method for analyzing remote traffic data in a distributed computing environment
US7062500B1 (en) * 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
AU8072798A (en) * 1997-06-16 1999-01-04 Doubleclick Inc. Method and apparatus for automatic placement of advertising
US6064980A (en) * 1998-03-17 2000-05-16 Amazon.Com, Inc. System and methods for collaborative recommendations
US7035943B2 (en) * 1998-05-29 2006-04-25 Yahoo! Inc. Web server content replication
US6314448B1 (en) * 1998-06-04 2001-11-06 International Business Machines Corporation Method and system for inter-applet communication in a computer network
EP1142260A2 (en) * 1998-08-03 2001-10-10 Doubleclick Inc. Network for distribution of re-targeted advertising
US6317787B1 (en) * 1998-08-11 2001-11-13 Webtrends Corporation System and method for analyzing web-server log files
US6266649B1 (en) * 1998-09-18 2001-07-24 Amazon.Com, Inc. Collaborative recommendations using item-to-item similarity mappings
JP4545317B2 (en) * 1998-10-28 2010-09-15 ヤフー! インコーポレイテッド Internet browser interface control method and controllable browser interface
US6466974B1 (en) * 1998-12-04 2002-10-15 Sun Microsystems, Inc. Environment for creating and managing network management software objects
US6857124B1 (en) * 1999-01-11 2005-02-15 Eolas Technologies, Inc. Method and system for hypermedia browser API simulation to enable use of browser plug-ins and applets as embedded widgets in script-language-based interactive programs
US6772180B1 (en) * 1999-01-22 2004-08-03 International Business Machines Corporation Data representation schema translation through shared examples
US6925442B1 (en) * 1999-01-29 2005-08-02 Elijahu Shapira Method and apparatus for evaluating vistors to a web server
US6584505B1 (en) * 1999-07-08 2003-06-24 Microsoft Corporation Authenticating access to a network server without communicating login information through the network server
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US7031932B1 (en) * 1999-11-22 2006-04-18 Aquantive, Inc. Dynamically optimizing the presentation of advertising messages
AU2001243597A1 (en) * 2000-03-03 2001-09-17 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US6311194B1 (en) * 2000-03-15 2001-10-30 Taalee, Inc. System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
US20020040314A1 (en) * 2000-05-08 2002-04-04 Michael Tolson Method and system for business application of a portable information agent
US7062561B1 (en) * 2000-05-23 2006-06-13 Richard Reisman Method and apparatus for utilizing the social usage learned from multi-user feedback to improve resource identity signifier mapping
US6701521B1 (en) * 2000-05-25 2004-03-02 Palm Source, Inc. Modular configuration and distribution of applications customized for a requestor device
US6970853B2 (en) * 2000-06-06 2005-11-29 Citibank, N.A. Method and system for strong, convenient authentication of a web user
US6931550B2 (en) * 2000-06-09 2005-08-16 Aramira Corporation Mobile application security system and method
US7076521B2 (en) * 2000-06-26 2006-07-11 Vertical Computer Systems, Inc. Web-based collaborative data collection system
IL137106A0 (en) * 2000-06-29 2001-06-14 Ilissos Inc A method and system for generating bursting-messages
US7099926B1 (en) * 2000-07-06 2006-08-29 International Business Machines Corporation Object caching and update queuing technique to improve performance and resource utilization
US6665867B1 (en) * 2000-07-06 2003-12-16 International Business Machines Corporation Self-propagating software objects and applications
US7062540B2 (en) * 2000-08-15 2006-06-13 I2 Technologies Us, Inc. System and method for remotely monitoring and managing applications across multiple domains
US7054900B1 (en) * 2000-08-18 2006-05-30 Netzero, Inc. Automatic, profile-free web page recommendation
AU8664801A (en) * 2000-08-21 2002-03-04 Webtrends Corp Data tracking using ip address filtering over a wide area network
WO2002037229A2 (en) * 2000-11-02 2002-05-10 Netiq Corporation Method for determining web page loading and viewing times
US7080159B2 (en) * 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
US20020082914A1 (en) * 2000-12-26 2002-06-27 Gil Beyda Hybrid network based advertising system and method
US7089237B2 (en) * 2001-01-26 2006-08-08 Google, Inc. Interface and system for providing persistent contextual relevance for commerce activities in a networked environment
US7054887B2 (en) * 2001-01-30 2006-05-30 Ibm Corporation Method and system for object replication in a content management system
US7003565B2 (en) * 2001-04-03 2006-02-21 International Business Machines Corporation Clickstream data collection technique
US20040098349A1 (en) * 2001-09-06 2004-05-20 Michael Tolson Method and apparatus for a portable information account access agent
US7103912B2 (en) * 2001-06-29 2006-09-05 International Business Machines Corporation User authorization management system using a meta-password and method for same
US7100054B2 (en) * 2001-08-09 2006-08-29 American Power Conversion Computer network security system
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US20030105882A1 (en) * 2001-11-30 2003-06-05 Ali Syed M. Transparent injection of intelligent proxies into existing distributed applications
US7117535B1 (en) * 2001-12-14 2006-10-03 Microsoft Corporation Software-generated machine identifier
US20030149567A1 (en) * 2002-02-04 2003-08-07 Tony Schmitz Method and system for using natural language in computer resource utilization analysis via a communications network
US7003522B1 (en) * 2002-06-24 2006-02-21 Microsoft Corporation System and method for incorporating smart tags in online content
US6810356B1 (en) * 2002-08-30 2004-10-26 Advertising.Com Traffic estimation
US7085682B1 (en) * 2002-09-18 2006-08-01 Doubleclick Inc. System and method for analyzing website activity
US7072672B1 (en) * 2002-11-01 2006-07-04 Nokia Corporation Disposable mini-applications
US8484073B2 (en) * 2003-04-25 2013-07-09 Facebook, Inc. Method of distributing targeted internet advertisements
US20040215515A1 (en) * 2003-04-25 2004-10-28 Aquantive, Inc. Method of distributing targeted Internet advertisements based on search terms
US20040225562A1 (en) * 2003-05-09 2004-11-11 Aquantive, Inc. Method of maximizing revenue from performance-based internet advertising agreements
US20050086587A1 (en) * 2003-05-14 2005-04-21 Balz Christopher M. System and method for presenting computerized interactive forms to respondents using a client-server-systems technology based on web standards
US20050197991A1 (en) * 2003-06-25 2005-09-08 Wray Robert E. Method and apparatus for providing rule-based, autonomous software agent with ontological information
US6986049B2 (en) * 2003-08-26 2006-01-10 Yahoo! Inc. Method and system for authenticating a message sender using domain keys
US20050050301A1 (en) * 2003-08-29 2005-03-03 Yahoo!, Inc. Extensible user interface
US7433876B2 (en) * 2004-02-23 2008-10-07 Radar Networks, Inc. Semantic web portal and platform
US20050256819A1 (en) * 2004-04-28 2005-11-17 Clark Tibbs Semantic adaptive framework (SAF) for enabling system self selection of actions by reasoning about self knowledge
US20050246262A1 (en) * 2004-04-29 2005-11-03 Aggarwal Charu C Enabling interoperability between participants in a network
US7490094B2 (en) * 2004-05-06 2009-02-10 International Buisness Machines Corporation Importance of semantic web resources and semantic associations between two resources
US20060106876A1 (en) * 2004-11-12 2006-05-18 Macgregor Robert M Method and apparatus for re-using presentation data across templates in an ontology
EP1675022A1 (en) * 2004-12-22 2006-06-28 Sap Ag A method and a system for integrating semantic web services into a existing web service infrastructure
CN2768285Y (en) * 2005-02-06 2006-03-29 天津荣亨集团股份有限公司 Conjuncted high power oil-filled submersible motor and its protector
US20080091777A1 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Method, system and program product for building collaboration applications using multiple-peer user interface libraries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107125A1 (en) * 1999-05-27 2004-06-03 Accenture Llp Business alliance identification in a web architecture
US20060178918A1 (en) * 1999-11-22 2006-08-10 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment

Also Published As

Publication number Publication date
US20080222232A1 (en) 2008-09-11

Similar Documents

Publication Publication Date Title
US20080222232A1 (en) Method and Apparatus for Widget and Widget-Container Platform Adaptation and Distribution
US9483257B2 (en) Universal and adaptive software development platform for data-driven applications
CN101611422B (en) Web data usage platform
KR101130443B1 (en) Method, system, and computer-readable medium for merging data from multiple data sources for use in an electronic document
US9495084B2 (en) Method and apparatus for widget and widget-container distribution control based on content rules
US7313591B2 (en) Methods, computer readable mediums and systems for requesting, retrieving and delivering metadata pages
US7934211B2 (en) Multi-level patching operation
US8126859B2 (en) Updating a local version of a file based on a rule
CN104519120B (en) Business object attachments and expiration uniform resource locators
US9953016B2 (en) Composition and declaration of sprited images in a web page style sheet
JP2011524047A (en) Recall hierarchical data
US20090287724A1 (en) Data Viewer Management
US8037058B2 (en) Reducing access time for data in file systems when seek requests are received ahead of access requests
JP6470126B2 (en) Method, computer apparatus, and program for creating file variant
US10372299B2 (en) Preserve input focus in virtualized dataset
US8984028B2 (en) Systems and methods for storing data and eliminating redundancy
JP2012512486A (en) System and method for managing a persistent document collection
JP4656957B2 (en) 3D shape data generation apparatus, 3D shape data generation method, 3D shape data generation program, and computer-readable recording medium
JP2002251311A (en) Method for preparing and utilizing context data, program and recording medium
JP2005503600A (en) Method and system for providing message publishing with Dynamic Page Builder over the Internet
US20210200715A1 (en) Replacing database table join keys with index keys
JP2004362166A (en) Data management system and method, server, computer program, and recording medium recorded with computer program
JP2004062552A (en) Relational database system and control method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08731320

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08731320

Country of ref document: EP

Kind code of ref document: A1