US20240411830A1 - Omni-channel content mapper framework - Google Patents
Omni-channel content mapper framework Download PDFInfo
- Publication number
- US20240411830A1 US20240411830A1 US18/333,444 US202318333444A US2024411830A1 US 20240411830 A1 US20240411830 A1 US 20240411830A1 US 202318333444 A US202318333444 A US 202318333444A US 2024411830 A1 US2024411830 A1 US 2024411830A1
- Authority
- US
- United States
- Prior art keywords
- content
- plugin
- type
- application
- server
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013070 change management Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001915 proofreading effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Definitions
- Various example embodiments relate to methods, apparatuses, systems, and/or non-transitory computer readable media for providing an omni-channel content mapper framework, and more particularly, methods, apparatuses, systems, and/or non-transitory computer readable media for generating application-agnostic structured data documents using one or more content mapper plugins for an omni-channel content management database.
- CMS Content management system
- client applications such as smart phone apps, tablet apps, computer software, web browsers, web applications (e.g., Web 2.0 applications, Web 3.0 applications, etc.), enterprise software applications, etc.
- CMS platforms such as Joomla, Wordpress, Joomla, Wix, etc.
- content creators may upload content to a back-end content database of the CMS platforms and then “publish” the content for use on one or more “channels,” e.g., content channels, consumption channels, communication channels, and/or content distribution media, such as websites, social media applications, video-sharing platforms, etc., using content models and/or client application specific plugins provided by the CMS platforms for each desired channel.
- the conventional CMS platforms require content be stored in a CMS-specific data format (e.g., a proprietary data format), for example using CMS-specific metadata, etc., and/or require the content to be published in a client application-specific data format, thereby increasing the data size of the content, increasing the network traffic, and/or increasing the processing times to publish the content, etc.
- a CMS-specific data format e.g., a proprietary data format
- any changes made to the CMS platform's software and/or the content channel application e.g., software updates, bug fixes, addition of new technology and/or user features, etc.
- the addition of new content types may require extensive modification of the stored content, the CMS platform and/or any associated content channel-specific applications.
- At least one example embodiment relates to a server.
- the server may include a memory storing computer readable instructions, and processing circuitry configured to execute the computer readable instructions to cause the server to, receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtain content data corresponding to the unique content identifier from a content database, generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmit the application-agnostic structured data document to the at least one user device in response to the content request.
- CM desired content mapper
- the plurality of CM plugins includes at least one of: a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin
- the processing circuitry is further configured to execute the computer readable instructions to cause the server to, format the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
- the transmitted application-agnostic structured data document causes the at least one user device to, generate an application specific data document corresponding to a client application executed by the at least one user device based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules, and display the application specific data document in the client application.
- the client application is at least one of a mobile client application, a web-based client application, an enterprise client application, and a web browser.
- processing circuitry is further configured to execute the computer readable instructions to cause the server to, generate the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data.
- processing circuitry is further configured to execute the computer readable instructions to cause the server to, cache the plurality of generated HTML objects in a cache database, and transmit the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
- the application-agnostic structured data document is a JavaScript object notation (JSON) document.
- JSON JavaScript object notation
- processing circuitry is further configured to execute the computer readable instructions to cause the server to, generate a preview version of the obtained content data using the determined content mapper plugin, and transmit the generated preview version to the at least one user device, the transmitting the generated preview version causing the at least one user device to display the preview version of the obtained content data on a client application executing on the at least one user device.
- At least one example embodiment relates to a method of operating a server.
- the method may include receiving a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determining a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtaining content data corresponding to the unique content identifier from a content database, generating an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmitting the application-agnostic structured data document to the at least one user device in response to the content request.
- CM desired content mapper
- the plurality of CM plugins includes at least one of, a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin, and the method further comprises, formatting the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
- the method may further comprise, generating the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules.
- the method may further comprise, caching the plurality of generated HTML objects in a cache database, and transmitting the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
- the application-agnostic structured data document is a JavaScript object notation (JSON) document.
- JSON JavaScript object notation
- the method may further comprise, generating a preview version of the obtained content data using the determined content mapper plugin, and transmitting the generated preview version to the at least one user device, the transmitting the generated preview version causing the at least one user device to display the preview version of the obtained content data on a client application executing on the at least one user device.
- At least one example embodiment relates to a non-transitory computer readable medium.
- the non-transitory computer readable medium stores computer readable instructions, which when executed by processing circuitry of a server, causes the server to, receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtain content data corresponding to the unique content identifier from a content database, generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmit the application-agnostic structured data document to the at least one user device in response to the content request.
- CM desired content mapper
- the plurality of CM plugins includes at least one of a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin, and the server is further caused to, format the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
- the transmitted application-agnostic structured data document causes the at least one user device to, generate an application specific data document corresponding to a client application executed by the at least one user device based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules, and display the application specific data document in the client application.
- the client application is at least one of a mobile client application, a web-based client application, an enterprise client application, and a web browser.
- Some example embodiments provide that the server is further caused to, generate the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data.
- Some example embodiments provide that the server is further caused to, cache the plurality of generated HTML objects in a cache database, and transmit the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
- FIG. 1 illustrates an example system associated with an omni-channel content mapper framework according to at least one example embodiment
- FIG. 2 illustrates a block diagram of an example computing device of the omni-channel content mapper framework according to at least one example embodiment
- FIG. 3 A illustrates an example of content data containing CMS-specific metadata according to some example embodiments
- FIG. 3 B illustrates an example of a client application-agnostic structured data document corresponding to FIG. 3 A according to some example embodiments
- FIG. 3 C illustrates an example rendered client application-specific document corresponding to FIG. 3 B according to some example embodiments
- FIG. 4 illustrates an example method for operating an omni-channel content mapper framework server according to at least one example embodiment
- FIG. 5 illustrates an example method for operation an omni-channel content mapper framework user device according to at least one example embodiment.
- example embodiments may be described as a process depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel, concurrently or simultaneously. In addition, the order of the operations may be re-arranged.
- a process may be terminated when its operations are completed, but may also have additional steps not included in the figure.
- a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
- the term “memory” may represent one or more devices for storing data, including random access memory (RAM), magnetic RAM, core memory, and/or other machine readable mediums for storing information.
- storage medium may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.
- computer-readable medium may include, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
- example embodiments may be implemented by hardware circuitry and/or software, firmware, middleware, microcode, hardware description languages, etc., in combination with hardware (e.g., software executed by hardware, etc.).
- the program code or code segments to perform the desired tasks may be stored in a machine or computer readable medium such as a non-transitory computer storage medium, and loaded onto one or more processors to perform the desired tasks.
- a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
- a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents.
- Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- circuitry and/or “hardware circuitry” may refer to one or more or all of the following: (a) hardware-only circuit implementation (such as implementations in only analog and/or digital circuitry); (b) combinations of hardware circuits and software, such as (as applicable): (i) a combination of analog and/or digital hardware circuit(s) with software/firmware, and (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone, a smart device, and/or server, etc., to perform various functions); and (c) hardware circuit(s) and/or processor(s), such as microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.
- firmware firmware
- the circuitry more specifically may include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a System-on-Chip (SoC), a programmable logic unit, a microprocessor, application-specific integrated circuit (ASIC), etc.
- CPU central processing unit
- ALU arithmetic logic unit
- DSP digital signal processor
- microcomputer a field programmable gate array
- FPGA field programmable gate array
- SoC System-on-Chip
- ASIC application-specific integrated circuit
- circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware.
- circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.
- At least one example embodiment refers to methods, systems, devices, and/or non-transitory computer readable media for providing an omni-channel content mapper framework for use with one or more CMS platforms and/or for use with a plurality of client applications.
- the omni-channel content mapper framework provides a component architecture including a plurality of plugin modules which may be used to create, instantiate, and/or expose content entities corresponding to the various client applications on demand.
- the omni-channel content mapper framework further includes a plurality of patterns and templates which allow users to create additional and/or new plugin content entity models to use on a plurality of CMS platform backends, and further allows users to modify and/or update existing plugin content entity models to suit new features, innovations, and the like.
- example embodiments are discussed in connection with an online brokerage platform for the sake of clarity and convenience, the example embodiments are not limited thereto, and one of ordinary skill in the art would recognize the example embodiments may be applicable to other types of online content management services, enterprise applications, ecommerce services, social media services, social media services, streaming services, gaming services, other web services, apps, and the like.
- FIG. 1 illustrates an example system associated with an omni-channel content mapper framework according to at least one example embodiment, but the example embodiments are not limited thereto, and various modifications may be made to the omni-channel content mapper framework (hereinafter referred to as “framework”).
- the online framework system may include a plurality of user devices 100 including a mobile device 110 , a personal computer 111 , a server 112 , an Internet of Things (IoT) device, etc., a network 120 , at least one server 130 associated with the framework, and/or at least one server 140 associated with a backend content management system (CMS), but the example embodiments are not limited thereto, and the example embodiments may include a greater or lesser number of constituent elements.
- IoT Internet of Things
- CMS backend content management system
- the framework server 130 may be combined with the CMS server 140 , and/or one or both of the framework server 130 and the CMS server 140 may be distributed across a plurality of servers (e.g., a cloud network, a content distribution network, an edge network, etc.).
- a cloud network e.g., a cloud network, a content distribution network, an edge network, etc.
- Each of the plurality of user devices 100 may allow a respective user to access the framework server 130 via a computer network 120 .
- one or more of the plurality of user devices 100 may have client application(s) (e.g., mobile applications, web applications, enterprise applications, other programs, code, computer readable instructions, etc.) installed and/or may execute software application(s) corresponding to a client application and/or a content channel, etc.
- client application(s) e.g., mobile applications, web applications, enterprise applications, other programs, code, computer readable instructions, etc.
- software application(s) e.g., software application(s) corresponding to a client application and/or a content channel, etc.
- one or more of the plurality of user devices 100 may have installed and/or may execute a web browser application which allows a corresponding user of the user device to access at least one website associated with at least one content channel, etc.
- the user devices 100 may include computing devices, such as a personal computer (PC), a laptop, a server, a database system, a smartphone, a tablet, any other smart devices, a wearable device, an Internet-of-Things (IoT) device, a virtual reality (VR) and/or augmented reality (AR) device, a virtual assistant device, a gaming device, etc., but are not limited thereto.
- computing devices such as a personal computer (PC), a laptop, a server, a database system, a smartphone, a tablet, any other smart devices, a wearable device, an Internet-of-Things (IoT) device, a virtual reality (VR) and/or augmented reality (AR) device, a virtual assistant device, a gaming device, etc., but are not limited thereto.
- the plurality of user devices 100 and the framework server 130 and/or the CMS server 140 may be connected over the network 120 , and the network 120 may correspond to a wireless network, such as a cellular wireless access network (e.g., a 3G wireless access network, a 4G-Long Term Evolution (LTE) network, a 5G-New Radio (e.g., 5G) wireless network, a WiFi network, a satellite network, etc.) and/or a wired network (e.g., a fiber network, a cable network, a PTSN, etc.).
- a wireless network such as a cellular wireless access network (e.g., a 3G wireless access network, a 4G-Long Term Evolution (LTE) network, a 5G-New Radio (e.g., 5G) wireless network, a WiFi network, a satellite network, etc.) and/or a wired network (e.g., a fiber network, a cable network, a PTSN, etc.).
- the framework server 130 may connect to the CMS server 140 and/or other servers (not shown), over a wired and/or wireless network, and each of the user devices 110 , 111 , 112 , and/or 113 may connect to other user devices over a wired and/or wireless network.
- the network 120 may refer to the Internet, an intranet, a wide area network, etc.
- the framework server 130 may execute software (e.g., web applications, enterprise applications, other programs, code, computer readable instructions, etc.) associated with the omni-channel content mapper framework, but is not limited thereto. More specifically, the framework server 130 may provide (e.g., host, serve, etc.) a request interface 131 associated with the application programming interface (API) of the omni-channel content mapper framework, a content mapper runtime 132 , a plugin adapter 133 , and/or at least one content mapping plugin storage 134 (e.g., memory, etc.), but the framework server 130 is not limited thereto.
- API application programming interface
- the framework server 130 may provide (e.g., host, serve, etc.) a request interface 131 associated with the application programming interface (API) of the omni-channel content mapper framework, a content mapper runtime 132 , a plugin adapter 133 , and/or at least one content mapping plugin storage 134 (e.g., memory, etc.), but the framework
- the CMS server 140 may execute software (e.g., software applications, databases, programs, code, computer readable instructions, etc.) associated with the CMS application and/or service, and more specifically, may execute and/or host a plugin discovery service 141 , an entity interface 142 , at least one content database 143 , and/or a plurality of content 144 , etc., but is not limited thereto.
- software e.g., software applications, databases, programs, code, computer readable instructions, etc.
- the CMS server 140 may execute and/or host a plugin discovery service 141 , an entity interface 142 , at least one content database 143 , and/or a plurality of content 144 , etc., but is not limited thereto.
- the framework server 130 may receive at least one client request from one or more client application executed on one or more of the user devices 100 , etc., via the request interface 131 .
- the client request may be formed in accordance with and/or based on the omni-channel content mapper framework API, which provides a set of CMS-agnostic and client application-agnostic definitions and/or protocols for requesting formatted content from the CMS 140 , etc.
- the client request may include a unique content identifier (e.g., a uniform resource identifier (URI), etc.) specifying the content requested from the CMS server 140 , a content type identifier specifying the content type requested by the user and/or client application (e.g., article, story, quiz, page, card, asset, article summary, pattern landing page, course, video, audio, image, graphic, survey, game, document, spreadsheet, file, etc.), a client application type identifier identifying the client application type and/or version number being used to consume the requested content (e.g., client application, enterprise application, smart app, web browser, etc.), user device type information, network address information corresponding to the requesting user device, a user identifier and/or user authentication information (e.g., username and password, security key, etc.) for verifying whether the requesting user is allowed access to the content, etc., but the example embodiments are not limited thereto and other information may be included in the client request.
- a unique content identifier e
- the client request may be a request for a list of content available for consumption on the CMS server 140 , such as a list of new content uploaded to the database 143 , a list of content stored on the database 143 which have been changed, updated, and/or modified, a list of content which has been deleted from the database 143 , etc.
- the client request may include a request for a list of content types available, such as a list of new content types, a list of modified content types, a list of removed content types, etc.
- the framework server 130 may additionally return program code and/or computer readable instructions for implementing the new, modified, and/or deleted content type(s) in the client application of the requesting user device in response to the client request, etc., but the example embodiments are not limited thereto.
- the user device may download updates to the client application from a separate server and/or service, etc.
- the client request may also be a preview request for a specified and/or desired content.
- a preview request is a request to be presented with a preview version, e.g., a not finalized and/or not published version of the specified content for a specified client application type, which is viewable on an internal (e.g., private, non-public) platform and/or an internal computing device, etc., and not on a public website, public client device, etc.
- the preview version may be viewed prior to publication of the finalized version of the specified content on an external website, on external computing devices, on client-facing web applications, etc., for reviewing, proof-reading and/or editing purposes, etc., and may only be accessible by a computing device connected to an intranet, a private network, etc.
- the content mapper runtime 132 may be a representational state transfer (REST) endpoint of the omni-channel framework API, and may authenticate the client request by parsing the client request for the request type, content identifier and/or the desired content type information, etc., and determining whether the client request is a valid request.
- the content mapper runtime 132 may also verify the user identifier and/or authenticate the user authentication information to determine whether the user is a valid user and/or authorized user and has permission to access and/or modify the requested content, but the example embodiments are not limited thereto.
- the content mapper runtime 132 may forward the content identifier and the desired content type of the client request to the plugin adapter 133 , may request a list of available content types from the plugin discovery service 141 , may request a list of content from the entity interface 142 , etc., but is not limited thereto. For example, if the client request indicates that a “story” content has been requested, the content mapper runtime may transmit a content request to the plugin adapter 133 , the content request including the requested content identifier and the requested content type identifier, etc.
- the plugin adapter 133 may then determine whether the “story” content mapping plugin (CMP) has been loaded to the CMP storage 134 , and if it has not been loaded into the CMP storage 134 , the plugin adapter 133 may transmit a request for the “story” plugin type from the plugin discovery service 141 , etc. Once the “story” CMP has been loaded into the CMP storage 134 , the CMP then transmits a request for the requested content from the CMS server 140 via the entity interface 142 .
- the entity interface 142 may be another REST endpoint of the omni-channel framework API, and may then retrieve the requested content from the content database 143 based on the requested content identifier.
- the content stored in the content database 143 may be client application agnostic, meaning that the content may not be formatted for viewing, loading, and/or playing on any specific client application type, such as a web application, mobile application, enterprise application, web browser, streaming service, etc. but the example embodiments are not limited thereto.
- client application type such as a web application, mobile application, enterprise application, web browser, streaming service, etc.
- the example embodiments are not limited thereto.
- the stored content may be stored as plaintext, without graphical user interface formatting and/or webpage styling, etc.
- the example embodiments are not limited thereto, and for example, the stored content may further include metadata and the like associated with, e.g., a specific type of CMS, such as Joomla, Wordpress, Joomla, Wix, etc.
- the entity interface 142 may strip and/or remove the retrieved content of the CMS-specific metadata, etc., such that the returned stored content is CMS-agnostic, etc.
- the entity interface 142 may strip the CMS-specific metadata using a desired set of rules, such as desired regular expressions, trained machine learning, etc.
- the requested content may be linked with other content, e.g., a story content may be linked to one or more text content, video content, audio content, image content, graphics content, quiz content, survey content, etc., and the content database 143 may return the linked and/or associated content with the requested content to the story CMP 134 via the entity interface 142 .
- the appropriate CMP 134 may format, translate, and/or map the CMS-agnostic content (e.g., data) into a data model and/or payload corresponding to the requested content type. More specifically, the CMP 134 may translate the content data into a client application-agnostic formatted structured data document corresponding to the content type of the CMP 134 , such as a JSON payload, a HTML document, a CSS document, a XLT document, a XML document, a Python document, a PHP document, plaintext, etc., and/or any combinations thereof, which may be interpreted by any type of client application into the requested content type instance for display and/or execution of the specific client application, but the example embodiments are not limited thereto.
- the client application-agnostic formatted structured data document will be discussed in greater detail in connection with FIGS. 3 A to 3 C .
- the CMP 134 transmits the client application-agnostic formatted data document to the content mapper runtime 132 , which in turn transmits the formatted data document to the requesting user device 100 .
- the content mapper runtime 132 may store the client application-agnostic formatted data document in a cache memory 135 based on a desired cache policy. Consequently, when a new client request is received by the content mapper runtime 132 for the cached content identifier/content type, the content mapper runtime 132 may quickly return the cached formatted data document, etc.
- the client application of the requesting user device 100 may interpret and natively display and/or play, etc., the client application-agnostic formatted structured data document. More specifically, the client application may parse the data document, e.g., the JSON document, the HTML document, and/or CSS document, etc., and display the payload of the JSON, etc., document on the user device.
- the client application-agnostic formatted structured data document will be discussed in greater detail in connection with FIGS. 3 A to 3 C .
- FIG. 1 While certain components of a system associated with omni-channel content mapper framework are shown in FIG. 1 , the example embodiments are not limited thereto, and the system may include components other than that shown in FIG. 1 , which are desired, necessary, and/or beneficial for operation of the underlying networks within the system, such as base stations, access points, switches, routers, nodes, servers, gateways, etc.
- FIG. 2 illustrates a block diagram of an example computing device of the online trading platform according to at least one example embodiment.
- the computing device 2000 of FIG. 2 may correspond to the framework server 130 , the CMS server 140 , and/or one or more of the plurality of user devices 100 of FIG. 1 , but the example embodiments are not limited thereto.
- a computing device 2000 may include processing circuitry, such as the at least one processor 2100 , at least one communication bus 2200 , a memory 2300 , at least one network interface 2400 , and/or at least one input/output (I/O) device 2500 (e.g., a keyboard, a touchscreen, a mouse, a microphone, a camera, a speaker, etc.), etc., but the example embodiments are not limited thereto.
- the computing device 2000 may further include a display panel 2500 , such as a monitor, a touchscreen, etc.
- the memory 2300 may include various special purpose program code including computer executable instructions which may cause the computing device 2000 to perform the one or more of the methods of the example embodiments, including but not limited to computer executable instructions related to the omni-channel content mapper framework API, the content mapping, CMS service, etc.
- the processing circuitry may include at least one processor (and/or processor cores, distributed processors, networked processors, etc.), such as the at least one processor 2100 , which may be configured to control one or more elements of the computing device 2000 , and thereby cause the computing device 2000 to perform various operations.
- the processing circuitry e.g., the at least one processor 2100 , etc.
- the processing circuitry is configured to execute processes by retrieving program code (e.g., computer readable instructions) and data from the memory 2300 to process them, thereby executing special purpose control and functions of the entire computing device 2000 .
- program code e.g., computer readable instructions
- the special purpose program instructions are loaded into, (e.g., the at least one processor 2100 , etc.)
- the at least one processor 2100 executes the special purpose program instructions, thereby transforming the at least one processor 2100 into a special purpose processor.
- the memory 2300 may be a non-transitory computer-readable storage medium and may include a random access memory (RAM), a read only memory (ROM), and/or a permanent mass storage device such as a disk drive, or a solid state drive.
- program code i.e., computer readable instructions
- Such software elements may be loaded from a non-transitory computer-readable storage medium independent of the memory 2300 , using a drive mechanism (not shown) connected to the computing device 2000 , or via the at least one network interface 2400 , and/or at least one I/O device 2500 , etc.
- the at least one communication bus 2200 may enable communication and/or data transmission to be performed between elements of the computing device 2000 .
- the bus 2200 may be implemented using a high-speed serial bus, a parallel bus, and/or any other appropriate communication technology.
- the computing device 2000 may include a plurality of communication buses (not shown).
- the computing device 2000 may also provide content, communication, and/or messaging services for the one or more users of the content providing service which allows users to receive and/or consume content (e.g., read articles, view stories, view videos, listen to podcasts, etc.), interact with content (e.g., via surveys, quizzes, games, etc.), to contact and/or message one or more other users of the content providing service via the computing device 2000 .
- content e.g., read articles, view stories, view videos, listen to podcasts, etc.
- content e.g., via surveys, quizzes, games, etc.
- the computing device 2000 may also provide an online community (e.g., a forum, a website, a portal, a discussion board, an investment advisor service, a group chat service, a teleconference service, a videoconference service, etc.) wherein users of the content providing service may transmit messages for content creators, employees of the content providing service, other users of the content providing service, or a subset of the users of the online trading platform.
- an online community e.g., a forum, a website, a portal, a discussion board, an investment advisor service, a group chat service, a teleconference service, a videoconference service, etc.
- the computing device 2000 may host an online trading platform providing users with the ability to perform securities transactions, e.g., purchases of stocks, sales of stocks, purchase and/or sales of options contracts, obtaining loans for purchasing stocks, etc., but the example embodiments are not limited thereto, and for example, the online trading platform is not limited to stocks, and may include other classes and/or categories of securities, other classes and/or categories of transactions, etc. Additionally, the computing device 2000 may provide banking services, may host articles, stories, shows, podcasts, and/or other content related to financial news, domestic news, international news, etc., may provide online seminars related to financial services and/or education, etc.
- securities transactions e.g., purchases of stocks, sales of stocks, purchase and/or sales of options contracts, obtaining loans for purchasing stocks, etc.
- the online trading platform is not limited to stocks, and may include other classes and/or categories of securities, other classes and/or categories of transactions, etc.
- the computing device 2000 may provide banking services, may host articles, stories, shows, podcasts, and/or other
- FIG. 2 depicts an example embodiment of a computing device 2000
- the computing device 2000 is not limited thereto, and may include additional and/or alternative architectures that may be suitable for the purposes demonstrated.
- the functionality of the computing device 2000 may be divided among a plurality of physical, logical, and/or virtual server and/or computing devices, network elements, etc., but the example embodiments are not limited thereto.
- FIG. 3 A to 3 C illustrate example structured data documents according to some example embodiments. More specifically, FIG. 3 A illustrates an example of a “story” content type data document containing CMS-specific metadata according to some example embodiments; FIG. 3 B illustrates a client application-agnostic structured data document version of the example story content shown in FIG. 3 A according to some example embodiments; and FIG. 3 C illustrates an example of a rendered client application-specific document corresponding to the story content of FIG. 3 B according to some example embodiments.
- the example embodiments are not limited thereto, and for example, other content types may be used, etc.
- a content database 143 may store at least one content data document 301 (e.g., content, etc.), which may act as a template for the rendered content data document, and at least one attribute and/or component 302 to 304 , etc., associated with the content data document 301 , but is not limited thereto, and for example, may include a greater or lesser number of attributes and/or components, etc. As shown in FIG.
- the content 301 stored in the content database 143 may be a “story” content type data document, but the example embodiments are not limited thereto, and for example, the content data document 301 may be a different content type, such as card type, asset type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file type, etc. Additionally, the attributes and/or components 302 to 304 associated with the content data document 301 may be CMS-specific metadata which correspond to and/or are associated with data stored in database tables (e.g., SQL tables) 305 and 306 , etc., stored in the content database 143 .
- database tables e.g., SQL tables
- the example story instance 301 may include, for example, one or more common components and/or general components (e.g., “Common Properties” in FIG. 3 A ) associated with all content types, wherein the data associated with the common components may be stored in the database table 305 , etc., and one or more content-specific attributes (e.g., “Content Property” in FIG. 3 A ) with data associated with the content-specific attributes stored in the database table 306 , etc., but the example embodiments are not limited thereto, and for example, there may be a single database table storing data for both common components and content-specific attributes, or more than two database tables, etc.
- common components and/or general components e.g., “Common Properties” in FIG. 3 A
- content-specific attributes e.g., “Content Property” in FIG. 3 A
- the example embodiments are not limited thereto, and for example, there may be a single database table storing data for both common components and content-specific attributes, or more than two database tables, etc.
- Each of the common components and/or each of the content-specific attributes 302 to 304 may be resource locators, links, identifiers associated with, pointers, etc., pointing to additional data (e.g., content data such as text for the story, images for the story, videos for the story, audio for the story, graphs for the story, accessibility data (e.g., text-to-speech data, etc.) for the story, stock ticker information associated with the story, etc.) associated with, to be included in, and/or to populate the rendered content data document, but is not limited thereto. As shown in FIG.
- the resource locators e.g., the “node ID”, “version ID”, “property ID”, “entity ID”, etc.
- the resource locators may be used to look up specific data (e.g., “property value”, etc.) for the content data document 301 in one or more database tables included in the content database 143 , such as database tables 305 to 306 , etc., but the example embodiments are not limited thereto.
- the story object may include a plurality of common components and/or content-specific attributes, which are defined by and/or required by the template of the story content type.
- the story content type may include the following components (e.g., common properties): Title (e.g., (1) of FIGS. 3 B to 3 C ), Date (e.g., (2) of FIGS. 3 B to 3 C ), etc., and may further include the following attributes (e.g., content property): Summary (e.g., (3) of FIGS. 3 B to 3 C ), Featured Media (e.g., (4) of FIGS. 3 B to 3 C ), at least one Text Component (e.g., (5) to (7) of FIGS.
- components e.g., common properties
- Title e.g., (1) of FIGS. 3 B to 3 C
- Date e.g., (2) of FIGS. 3 B to 3 C
- attributes e.g., content property
- Summary e.g., (3) of FIGS. 3
- FIGS. 3 B to 3 C may be specific to the story content type and/or the desired story, but the example embodiments are not limited thereto, and for example, other attributes and/or components may be included in the story object type.
- other content types may include one or more of the same or different attributes and/or components, etc.
- the story content 144 retrieved from the database 143 may be formatted, translated, and/or mapped by a story CMP 134 into a data model and/or payload corresponding to the story content type. More specifically, the story CMP 134 may translate the content data shown in FIG. 3 A into a client application-agnostic formatted structured data document corresponding to FIG. 3 B , wherein the corresponding Title data from the retrieved content is formatted into the Title attribute (1) of FIG. 3 B , the Date data is formatted into the Date attribute (2) of FIG. 3 B , the Summary data is formatted into the Summary attribute (3) of FIG. 3 B , the Featured Media data is formatted into the Featured Media (4) attribute of FIG. 3 B , the Text data is formatted into the Text attributes (5) to (7) of FIG. 3 B , and/or the Disclosure data is formatted into the Disclosure attribute (8) of FIG. 3 B , but the example embodiments are not limited thereto.
- the CMP 134 may automatically generate and/or provide the missing attribute and/or component.
- the stored content 144 does not include a “Title” and/or “Summary,” etc.
- the story CMP 134 may generate and/or input the title data and/or summary data into the generated client-application agnostic structured data document based on textual and/or contextual analysis of the “Text” data using natural language processing and trained machine learning, etc., but the example embodiments are not limited thereto.
- the story CMP 134 then transmits the client application-agnostic formatted data document to the content mapper runtime 132 , which in turn transmits the formatted data document to the requesting user device 100 .
- the client application of the requesting user device 100 may interpret and natively display and/or play, etc., the client application-agnostic formatted structured data document shown in FIG. 3 B .
- the client application may convert and/or render the client application-agnostic formatted data document of FIG. 3 B into a HTML document and display an HTML as shown in FIG. 3 C .
- FIG. 4 illustrates an example method for operating an omni-channel content mapper framework server according to at least one example embodiment.
- the framework server may correspond to the framework server 130 of FIG. 1 , but the example embodiments are not limited thereto.
- the framework server 130 may receive a client request from a user device, e.g., one or more of the user devices 110 to 113 of FIG. 1 , but is not limited thereto.
- the client request may include request type information, e.g., a request for content, a request for a list of content, a request for a list of available content types, etc., but the example embodiments are not limited thereto.
- the request may include a unique content identifier associated with the desired content, desired content type information (e.g., card type, story type, asset type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file type, etc.) associated with the desired content, a client application type associated with the client application type and/or version number intended to be used to consume the requested content (e.g., client application type, enterprise application type, mobile application type, web browser type, etc.), user device type information, network address information corresponding to the requesting user device, a user identifier and/or user authentication information (e.g., username and password, security key, etc.), but the example embodiments are not limited thereto.
- desired content type information e.g., card type, story type, asset type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file
- a card type is a user interface (UI) element which groups related content information, such as an image, description, and/or links, etc., but is not limited thereto.
- the UI elements included in the card may be visually presented and/or rendered in a manner similar to a playing card, and/or in a manner especially suited for viewing on a smartphone or similar dimensioned user device, but is not limited thereto.
- a story is a content type (e.g., an article content type, etc.) which is similar to a traditional website article and/or blog post, etc., and may include content data such as financial education content, editorial content, etc., but the example embodiments are not limited thereto.
- An asset content type refers to a chunk of text which may be displayed anywhere within a client application, e.g. contact information for a business, a disclosure copy text, a disclaimer copy text, a form, etc.
- a Pattern Landing Page content type is a web page which is created using individual attributes and/or components from a design system set of available components. The pattern landing page content type allows a method of assembling a page using separate attributes and/or components instead of the traditional complete build-out of the page.
- the Course content type and the Quiz content type may be part of an education content curriculum, wherein the course is a collection of educational modules and/or lessons and the quiz content type may be quizzes and/or tests which may be used for assessments related to the educational content of the corresponding course.
- Each of the desired content types includes a content specific rendering template (e.g., a layout template and/or style template, etc.) and/or content specific rule set which provide mapping information and/or formatting rules between UI elements (e.g., attributes, components, etc.) found in the client-application agnostic structured data document and the client application-specific data document, etc.
- a content specific rendering template e.g., a layout template and/or style template, etc.
- content specific rule set which provide mapping information and/or formatting rules between UI elements (e.g., attributes, components, etc.) found in the client-application agnostic structured data document and the client application-specific data document, etc.
- the framework server 130 may determine the client request type based on the payload of the client request, e.g., the request type of the client request. If the framework server 130 determines that the client request corresponds to a request for a list of content, in operation S 4030 A, the framework server 130 may request a list of all available content from the CMS server 140 and/or the content database 143 , etc. Further, the framework server 130 may request a list of new content uploaded to the database 143 , a list of content stored on the database 143 which have been changed, updated, and/or modified, a list of content which has been deleted from the database 143 , etc.
- the framework server 130 determines the client request corresponds to a request for a list of available content types, the framework server 130 transmits a request to the CMS server 140 and/or the plugin discovery service 141 for a list of content types available, such as a list of new content types, a list of modified content types, a list of removed content types, etc.
- the framework server 130 transmits the requested data to the user device 100 (S 4060 ).
- the framework server 130 may additionally return program code and/or computer readable instructions for implementing the new, modified, and/or deleted content type(s) in the client application of the requesting user device in response to the client request, etc., but the example embodiments are not limited thereto.
- the framework server 130 may determine a desired content mapper plugin (CMP) corresponding to the desired content type information included in the client request. More specifically, the framework server 130 may determine whether the desired CMP is loaded into the CMP storage 134 , and if not, the framework server 130 may request the desired CMP from the plugin discovery service 141 and/or the CMS server 140 , etc.
- CMP desired content mapper plugin
- the framework server 130 may request the desired content from the content database 143 and/or the CMS server 140 based on the unique content identifier of the desired content.
- the framework server 130 may generate a client application-agnostic structured data document using the desired CMP and the desired content. Then, in operation S 4060 , the framework server 130 may transmit the generated structured data document to the requesting client device.
- FIG. 5 illustrates an example method for operation an omni-channel content mapper framework user device according to at least one example embodiment.
- the user device may correspond to one or more of the user devices 100 in FIG. 1 , but the example embodiments are not limited thereto.
- the client application executed on a user device 100 may transmit a client request to a framework server, such as framework server 130 .
- the client request may include desired client request type information (e.g., a request for content, a request for a list of content, a request for a list of available content types, a request for a preview version of a desired content, etc.), user identifier information and/or user authentication information, but the example embodiments are not limited thereto.
- the client request may also include desired content type information (e.g., card type, story type, asset type, page type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file type, etc.), a client application type associated with the client application type and/or version number intended to be used to consume the requested content (e.g., client application type, enterprise application type, mobile application type, web browser type, etc.), user device type information, network address information corresponding to the requesting user device, a user identifier and/or user authentication information (e.g., username and password, security key, etc.), but the example embodiments are not limited thereto.
- the user device 100 may format the client request in accordance with and/or based on the omni-channel content mapper framework API.
- the user device 100 may receive a client application-agnostic structured data document from the framework server 130 in response to the client request.
- the received structured data document may be a JSON document generated by the framework server 130 based on the requested content type information indicated in the client request and the requested content data indicated in the client, but is not limited thereto.
- the client application of the user device 100 may interpret and/or parse the structured data document (e.g., the client application agnostic JSON document shown in FIG. 3 B ) and generate a client application-specific data document corresponding to the client application type installed on the user device.
- the user device 100 may generate an HTML webpage based on the structured data document for viewing on a web browser (e.g., such as the HTML webpage shown in FIG. 3 C ), the user device 100 may generate a presentation file representing the content for viewing the structured data document on a smartphone app, tablet app, mobile app, IoT app, etc.
- a web browser e.g., such as the HTML webpage shown in FIG. 3 C
- the user device 100 may generate a presentation file representing the content for viewing the structured data document on a smartphone app, tablet app, mobile app, IoT app, etc.
- the user device 100 then displays the generated client application-specific document on the desired client application.
- FIGS. 4 to 5 illustrate various methods for using an omni-channel content mapper framework for generating application-agnostic and CMS-agnostic data documents for display on a user device
- the example embodiments are not limited thereto, and other methods may be used and/or modifications to the methods may be used to perform the generation of application-agnostic and CMS-agnostic data documents of the example embodiments.
- omni-channel content mapper framework provides a component architecture including a plurality of plugin modules which may be used to create, instantiate, and/or expose content entities corresponding to the various client application types on demand.
- the omni-channel content mapper framework further includes a plurality of patterns and templates which allow users to create additional and/or new plugin content entity models to use on a plurality of CMS platform backends, and further allows users to modify and/or update existing plugin content entity models to suit new features, innovations, and the like. Because each plugin is a self-contained unit with annotated configuration data that allows an efficient way of managing the implementation and runtime execution of the plugin, a user may add new plugins to handle new content types and/or modify existing plugins to accommodate changes to current content type models. Because the omni-channel content mapper framework provides core functionality and a pattern of approach, developers are able to focus primarily and/or solely on the plugin logic, thereby enhancing content type change management.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
A system, apparatus, method, and non-transitory computer readable medium for providing an omni-channel content mapper framework may include a server caused to receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtain content data corresponding to the unique content identifier from a content database, generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmit the application-agnostic structured data document to the at least one user device in response to the content request.
Description
- Various example embodiments relate to methods, apparatuses, systems, and/or non-transitory computer readable media for providing an omni-channel content mapper framework, and more particularly, methods, apparatuses, systems, and/or non-transitory computer readable media for generating application-agnostic structured data documents using one or more content mapper plugins for an omni-channel content management database.
- Content management system (CMS) platforms are back-end network databases which store content to be consumed (e.g., displayed, read, viewed, heard, etc.) by content consumers (e.g., users) of one of or more client applications, such as smart phone apps, tablet apps, computer software, web browsers, web applications (e.g., Web 2.0 applications, Web 3.0 applications, etc.), enterprise software applications, etc.
- Conventional CMS platforms, such as Drupal, Wordpress, Joomla, Wix, etc., provide services wherein content creators may upload content to a back-end content database of the CMS platforms and then “publish” the content for use on one or more “channels,” e.g., content channels, consumption channels, communication channels, and/or content distribution media, such as websites, social media applications, video-sharing platforms, etc., using content models and/or client application specific plugins provided by the CMS platforms for each desired channel. However, because the content models are CMS-specific and/or content channel-specific, and are likely to be both CMS- and content channel-specific, the conventional CMS platforms require content be stored in a CMS-specific data format (e.g., a proprietary data format), for example using CMS-specific metadata, etc., and/or require the content to be published in a client application-specific data format, thereby increasing the data size of the content, increasing the network traffic, and/or increasing the processing times to publish the content, etc. Moreover, any changes made to the CMS platform's software and/or the content channel application (e.g., software updates, bug fixes, addition of new technology and/or user features, etc.) require changes be made to the content as well to ensure that the content remains compatible with the CMS platform and/or the content channel application. Additionally, the addition of new content types may require extensive modification of the stored content, the CMS platform and/or any associated content channel-specific applications.
- At least one example embodiment relates to a server.
- In at least one example embodiment, the server may include a memory storing computer readable instructions, and processing circuitry configured to execute the computer readable instructions to cause the server to, receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtain content data corresponding to the unique content identifier from a content database, generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmit the application-agnostic structured data document to the at least one user device in response to the content request.
- Some example embodiments provide that the plurality of CM plugins includes at least one of: a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin, and the processing circuitry is further configured to execute the computer readable instructions to cause the server to, format the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
- Some example embodiments provide that the transmitted application-agnostic structured data document causes the at least one user device to, generate an application specific data document corresponding to a client application executed by the at least one user device based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules, and display the application specific data document in the client application.
- Some example embodiments provide that the client application is at least one of a mobile client application, a web-based client application, an enterprise client application, and a web browser.
- Some example embodiments provide that the processing circuitry is further configured to execute the computer readable instructions to cause the server to, generate the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data.
- Some example embodiments provide that the processing circuitry is further configured to execute the computer readable instructions to cause the server to, cache the plurality of generated HTML objects in a cache database, and transmit the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
- Some example embodiments provide that the application-agnostic structured data document is a JavaScript object notation (JSON) document.
- Some example embodiments provide that the processing circuitry is further configured to execute the computer readable instructions to cause the server to, generate a preview version of the obtained content data using the determined content mapper plugin, and transmit the generated preview version to the at least one user device, the transmitting the generated preview version causing the at least one user device to display the preview version of the obtained content data on a client application executing on the at least one user device.
- At least one example embodiment relates to a method of operating a server.
- In at least one example embodiment, the method may include receiving a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determining a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtaining content data corresponding to the unique content identifier from a content database, generating an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmitting the application-agnostic structured data document to the at least one user device in response to the content request.
- Some example embodiments provide that the plurality of CM plugins includes at least one of, a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin, and the method further comprises, formatting the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
- Some example embodiments provide that the method may further comprise, generating the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules.
- Some example embodiments provide that the method may further comprise, caching the plurality of generated HTML objects in a cache database, and transmitting the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
- Some example embodiments provide that the application-agnostic structured data document is a JavaScript object notation (JSON) document.
- Some example embodiments provide that the method may further comprise, generating a preview version of the obtained content data using the determined content mapper plugin, and transmitting the generated preview version to the at least one user device, the transmitting the generated preview version causing the at least one user device to display the preview version of the obtained content data on a client application executing on the at least one user device.
- At least one example embodiment relates to a non-transitory computer readable medium.
- In at least one example embodiment, the non-transitory computer readable medium stores computer readable instructions, which when executed by processing circuitry of a server, causes the server to, receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content, determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins, obtain content data corresponding to the unique content identifier from a content database, generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and transmit the application-agnostic structured data document to the at least one user device in response to the content request.
- Some example embodiments provide that the plurality of CM plugins includes at least one of a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin, and the server is further caused to, format the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
- Some example embodiments provide that the transmitted application-agnostic structured data document causes the at least one user device to, generate an application specific data document corresponding to a client application executed by the at least one user device based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules, and display the application specific data document in the client application.
- Some example embodiments provide that the client application is at least one of a mobile client application, a web-based client application, an enterprise client application, and a web browser.
- Some example embodiments provide that the server is further caused to, generate the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data.
- Some example embodiments provide that the server is further caused to, cache the plurality of generated HTML objects in a cache database, and transmit the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
- The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate one or more example embodiments and, together with the description, explain these example embodiments. In the drawings:
-
FIG. 1 illustrates an example system associated with an omni-channel content mapper framework according to at least one example embodiment; -
FIG. 2 illustrates a block diagram of an example computing device of the omni-channel content mapper framework according to at least one example embodiment; -
FIG. 3A illustrates an example of content data containing CMS-specific metadata according to some example embodiments; -
FIG. 3B illustrates an example of a client application-agnostic structured data document corresponding toFIG. 3A according to some example embodiments; -
FIG. 3C illustrates an example rendered client application-specific document corresponding toFIG. 3B according to some example embodiments; -
FIG. 4 illustrates an example method for operating an omni-channel content mapper framework server according to at least one example embodiment; and -
FIG. 5 illustrates an example method for operation an omni-channel content mapper framework user device according to at least one example embodiment. - Various example embodiments will now be described more fully with reference to the accompanying drawings in which some example embodiments are shown.
- Detailed example embodiments are disclosed herein. However, specific structural and functional details disclosed herein are merely representative for purposes of describing the example embodiments. The example embodiments may, however, may be embodied in many alternate forms and should not be construed as limited to only the example embodiments set forth herein.
- It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the example embodiments. As used herein, the term “and/or,” includes any and all combinations of one or more of the associated listed items.
- It will be understood that when an element is referred to as being “connected,” or “coupled,” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected,” or “directly coupled,” to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between,” versus “directly between,” “adjacent,” versus “directly adjacent,” etc.).
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the example embodiments. As used herein, the singular forms “a,” “an,” and “the,” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including,” when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
- It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
- Specific details are provided in the following description to provide a thorough understanding of the example embodiments. However, it will be understood by one of ordinary skill in the art that example embodiments may be practiced without these specific details. For example, systems may be shown in block diagrams in order not to obscure the example embodiments in unnecessary detail. In other instances, well-known processes, structures and techniques may be shown without unnecessary detail in order to avoid obscuring example embodiments.
- Also, it is noted that example embodiments may be described as a process depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel, concurrently or simultaneously. In addition, the order of the operations may be re-arranged. A process may be terminated when its operations are completed, but may also have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
- Moreover, as disclosed herein, the term “memory” may represent one or more devices for storing data, including random access memory (RAM), magnetic RAM, core memory, and/or other machine readable mediums for storing information. The term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “computer-readable medium” may include, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
- Furthermore, example embodiments may be implemented by hardware circuitry and/or software, firmware, middleware, microcode, hardware description languages, etc., in combination with hardware (e.g., software executed by hardware, etc.). When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the desired tasks may be stored in a machine or computer readable medium such as a non-transitory computer storage medium, and loaded onto one or more processors to perform the desired tasks.
- A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- As used in this application, the term “circuitry” and/or “hardware circuitry” may refer to one or more or all of the following: (a) hardware-only circuit implementation (such as implementations in only analog and/or digital circuitry); (b) combinations of hardware circuits and software, such as (as applicable): (i) a combination of analog and/or digital hardware circuit(s) with software/firmware, and (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone, a smart device, and/or server, etc., to perform various functions); and (c) hardware circuit(s) and/or processor(s), such as microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation. For example, the circuitry more specifically may include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a System-on-Chip (SoC), a programmable logic unit, a microprocessor, application-specific integrated circuit (ASIC), etc.
- This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.
- At least one example embodiment refers to methods, systems, devices, and/or non-transitory computer readable media for providing an omni-channel content mapper framework for use with one or more CMS platforms and/or for use with a plurality of client applications. The omni-channel content mapper framework provides a component architecture including a plurality of plugin modules which may be used to create, instantiate, and/or expose content entities corresponding to the various client applications on demand. Moreover, the omni-channel content mapper framework further includes a plurality of patterns and templates which allow users to create additional and/or new plugin content entity models to use on a plurality of CMS platform backends, and further allows users to modify and/or update existing plugin content entity models to suit new features, innovations, and the like.
- While various example embodiments are discussed in connection with an online brokerage platform for the sake of clarity and convenience, the example embodiments are not limited thereto, and one of ordinary skill in the art would recognize the example embodiments may be applicable to other types of online content management services, enterprise applications, ecommerce services, social media services, social media services, streaming services, gaming services, other web services, apps, and the like.
-
FIG. 1 illustrates an example system associated with an omni-channel content mapper framework according to at least one example embodiment, but the example embodiments are not limited thereto, and various modifications may be made to the omni-channel content mapper framework (hereinafter referred to as “framework”). As shown inFIG. 1 , the online framework system may include a plurality ofuser devices 100 including amobile device 110, apersonal computer 111, aserver 112, an Internet of Things (IoT) device, etc., anetwork 120, at least oneserver 130 associated with the framework, and/or at least oneserver 140 associated with a backend content management system (CMS), but the example embodiments are not limited thereto, and the example embodiments may include a greater or lesser number of constituent elements. For example, theframework server 130 may be combined with theCMS server 140, and/or one or both of theframework server 130 and theCMS server 140 may be distributed across a plurality of servers (e.g., a cloud network, a content distribution network, an edge network, etc.). - Each of the plurality of
user devices 100 may allow a respective user to access theframework server 130 via acomputer network 120. For example, one or more of the plurality ofuser devices 100 may have client application(s) (e.g., mobile applications, web applications, enterprise applications, other programs, code, computer readable instructions, etc.) installed and/or may execute software application(s) corresponding to a client application and/or a content channel, etc. As another example, one or more of the plurality ofuser devices 100 may have installed and/or may execute a web browser application which allows a corresponding user of the user device to access at least one website associated with at least one content channel, etc. For the sake of clarity and brevity, all software for consuming content will be referred to as client application(s) hereinafter. According to some example embodiments, theuser devices 100 may include computing devices, such as a personal computer (PC), a laptop, a server, a database system, a smartphone, a tablet, any other smart devices, a wearable device, an Internet-of-Things (IoT) device, a virtual reality (VR) and/or augmented reality (AR) device, a virtual assistant device, a gaming device, etc., but are not limited thereto. - The plurality of
user devices 100 and theframework server 130 and/or theCMS server 140 may be connected over thenetwork 120, and thenetwork 120 may correspond to a wireless network, such as a cellular wireless access network (e.g., a 3G wireless access network, a 4G-Long Term Evolution (LTE) network, a 5G-New Radio (e.g., 5G) wireless network, a WiFi network, a satellite network, etc.) and/or a wired network (e.g., a fiber network, a cable network, a PTSN, etc.). Theframework server 130 may connect to theCMS server 140 and/or other servers (not shown), over a wired and/or wireless network, and each of theuser devices network 120 may refer to the Internet, an intranet, a wide area network, etc. - According to at least one example embodiment, the
framework server 130 may execute software (e.g., web applications, enterprise applications, other programs, code, computer readable instructions, etc.) associated with the omni-channel content mapper framework, but is not limited thereto. More specifically, theframework server 130 may provide (e.g., host, serve, etc.) arequest interface 131 associated with the application programming interface (API) of the omni-channel content mapper framework, acontent mapper runtime 132, aplugin adapter 133, and/or at least one content mapping plugin storage 134 (e.g., memory, etc.), but theframework server 130 is not limited thereto. Additionally, theCMS server 140 may execute software (e.g., software applications, databases, programs, code, computer readable instructions, etc.) associated with the CMS application and/or service, and more specifically, may execute and/or host aplugin discovery service 141, anentity interface 142, at least onecontent database 143, and/or a plurality ofcontent 144, etc., but is not limited thereto. - Referring now to the
framework server 130, theframework server 130 may receive at least one client request from one or more client application executed on one or more of theuser devices 100, etc., via therequest interface 131. The client request may be formed in accordance with and/or based on the omni-channel content mapper framework API, which provides a set of CMS-agnostic and client application-agnostic definitions and/or protocols for requesting formatted content from theCMS 140, etc. The client request may include a unique content identifier (e.g., a uniform resource identifier (URI), etc.) specifying the content requested from theCMS server 140, a content type identifier specifying the content type requested by the user and/or client application (e.g., article, story, quiz, page, card, asset, article summary, pattern landing page, course, video, audio, image, graphic, survey, game, document, spreadsheet, file, etc.), a client application type identifier identifying the client application type and/or version number being used to consume the requested content (e.g., client application, enterprise application, smart app, web browser, etc.), user device type information, network address information corresponding to the requesting user device, a user identifier and/or user authentication information (e.g., username and password, security key, etc.) for verifying whether the requesting user is allowed access to the content, etc., but the example embodiments are not limited thereto and other information may be included in the client request. - Additionally, the client request may be a request for a list of content available for consumption on the
CMS server 140, such as a list of new content uploaded to thedatabase 143, a list of content stored on thedatabase 143 which have been changed, updated, and/or modified, a list of content which has been deleted from thedatabase 143, etc. Further, the client request may include a request for a list of content types available, such as a list of new content types, a list of modified content types, a list of removed content types, etc. In the event that content types have been added, modified, and/or removed, theframework server 130 may additionally return program code and/or computer readable instructions for implementing the new, modified, and/or deleted content type(s) in the client application of the requesting user device in response to the client request, etc., but the example embodiments are not limited thereto. For example, the user device may download updates to the client application from a separate server and/or service, etc. - According to some example embodiments, the client request may also be a preview request for a specified and/or desired content. A preview request is a request to be presented with a preview version, e.g., a not finalized and/or not published version of the specified content for a specified client application type, which is viewable on an internal (e.g., private, non-public) platform and/or an internal computing device, etc., and not on a public website, public client device, etc. For example, the preview version may be viewed prior to publication of the finalized version of the specified content on an external website, on external computing devices, on client-facing web applications, etc., for reviewing, proof-reading and/or editing purposes, etc., and may only be accessible by a computing device connected to an intranet, a private network, etc.
- Once the client request is received by the
request interface 131, the client request is forwarded to thecontent mapper runtime 132 for processing. Thecontent mapper runtime 132 may be a representational state transfer (REST) endpoint of the omni-channel framework API, and may authenticate the client request by parsing the client request for the request type, content identifier and/or the desired content type information, etc., and determining whether the client request is a valid request. In some example embodiments, thecontent mapper runtime 132 may also verify the user identifier and/or authenticate the user authentication information to determine whether the user is a valid user and/or authorized user and has permission to access and/or modify the requested content, but the example embodiments are not limited thereto. - In response to parsing the type of request (e.g., a request for content, a request for a list of content, a request for a list of available content types, a preview request, etc.), the
content mapper runtime 132 may forward the content identifier and the desired content type of the client request to theplugin adapter 133, may request a list of available content types from theplugin discovery service 141, may request a list of content from theentity interface 142, etc., but is not limited thereto. For example, if the client request indicates that a “story” content has been requested, the content mapper runtime may transmit a content request to theplugin adapter 133, the content request including the requested content identifier and the requested content type identifier, etc. Theplugin adapter 133 may then determine whether the “story” content mapping plugin (CMP) has been loaded to theCMP storage 134, and if it has not been loaded into theCMP storage 134, theplugin adapter 133 may transmit a request for the “story” plugin type from theplugin discovery service 141, etc. Once the “story” CMP has been loaded into theCMP storage 134, the CMP then transmits a request for the requested content from theCMS server 140 via theentity interface 142. Theentity interface 142 may be another REST endpoint of the omni-channel framework API, and may then retrieve the requested content from thecontent database 143 based on the requested content identifier. As previously mentioned, the content stored in thecontent database 143 may be client application agnostic, meaning that the content may not be formatted for viewing, loading, and/or playing on any specific client application type, such as a web application, mobile application, enterprise application, web browser, streaming service, etc. but the example embodiments are not limited thereto. For example, if the stored content corresponds to an article, the content may be stored as plaintext, without graphical user interface formatting and/or webpage styling, etc. However, the example embodiments are not limited thereto, and for example, the stored content may further include metadata and the like associated with, e.g., a specific type of CMS, such as Drupal, Wordpress, Joomla, Wix, etc. In this situation, theentity interface 142 may strip and/or remove the retrieved content of the CMS-specific metadata, etc., such that the returned stored content is CMS-agnostic, etc. According to at least one example embodiment, theentity interface 142 may strip the CMS-specific metadata using a desired set of rules, such as desired regular expressions, trained machine learning, etc. - Additionally, the requested content may be linked with other content, e.g., a story content may be linked to one or more text content, video content, audio content, image content, graphics content, quiz content, survey content, etc., and the
content database 143 may return the linked and/or associated content with the requested content to thestory CMP 134 via theentity interface 142. - Next, the
appropriate CMP 134, e.g., the story plugin, may format, translate, and/or map the CMS-agnostic content (e.g., data) into a data model and/or payload corresponding to the requested content type. More specifically, theCMP 134 may translate the content data into a client application-agnostic formatted structured data document corresponding to the content type of theCMP 134, such as a JSON payload, a HTML document, a CSS document, a XLT document, a XML document, a Python document, a PHP document, plaintext, etc., and/or any combinations thereof, which may be interpreted by any type of client application into the requested content type instance for display and/or execution of the specific client application, but the example embodiments are not limited thereto. The client application-agnostic formatted structured data document will be discussed in greater detail in connection withFIGS. 3A to 3C . - Once the
appropriate CMP 134 has formatted the retrieved content into the requested content type, e.g., the story CMP formats the retrieved content into a story data document, etc., theCMP 134 transmits the client application-agnostic formatted data document to thecontent mapper runtime 132, which in turn transmits the formatted data document to the requestinguser device 100. Additionally, according to some example embodiments, thecontent mapper runtime 132 may store the client application-agnostic formatted data document in acache memory 135 based on a desired cache policy. Consequently, when a new client request is received by thecontent mapper runtime 132 for the cached content identifier/content type, thecontent mapper runtime 132 may quickly return the cached formatted data document, etc. - Further, once the requesting
user device 100 receives the client application-agnostic formatted structured data document, the client application of the requestinguser device 100 may interpret and natively display and/or play, etc., the client application-agnostic formatted structured data document. More specifically, the client application may parse the data document, e.g., the JSON document, the HTML document, and/or CSS document, etc., and display the payload of the JSON, etc., document on the user device. The client application-agnostic formatted structured data document will be discussed in greater detail in connection withFIGS. 3A to 3C . - While certain components of a system associated with omni-channel content mapper framework are shown in
FIG. 1 , the example embodiments are not limited thereto, and the system may include components other than that shown inFIG. 1 , which are desired, necessary, and/or beneficial for operation of the underlying networks within the system, such as base stations, access points, switches, routers, nodes, servers, gateways, etc. -
FIG. 2 illustrates a block diagram of an example computing device of the online trading platform according to at least one example embodiment. Thecomputing device 2000 ofFIG. 2 may correspond to theframework server 130, theCMS server 140, and/or one or more of the plurality ofuser devices 100 ofFIG. 1 , but the example embodiments are not limited thereto. - Referring to
FIG. 2 , acomputing device 2000 may include processing circuitry, such as the at least oneprocessor 2100, at least one communication bus 2200, amemory 2300, at least onenetwork interface 2400, and/or at least one input/output (I/O) device 2500 (e.g., a keyboard, a touchscreen, a mouse, a microphone, a camera, a speaker, etc.), etc., but the example embodiments are not limited thereto. For example, thecomputing device 2000 may further include adisplay panel 2500, such as a monitor, a touchscreen, etc. Thememory 2300 may include various special purpose program code including computer executable instructions which may cause thecomputing device 2000 to perform the one or more of the methods of the example embodiments, including but not limited to computer executable instructions related to the omni-channel content mapper framework API, the content mapping, CMS service, etc. - In at least one example embodiment, the processing circuitry may include at least one processor (and/or processor cores, distributed processors, networked processors, etc.), such as the at least one
processor 2100, which may be configured to control one or more elements of thecomputing device 2000, and thereby cause thecomputing device 2000 to perform various operations. The processing circuitry (e.g., the at least oneprocessor 2100, etc.) is configured to execute processes by retrieving program code (e.g., computer readable instructions) and data from thememory 2300 to process them, thereby executing special purpose control and functions of theentire computing device 2000. Once the special purpose program instructions are loaded into, (e.g., the at least oneprocessor 2100, etc.), the at least oneprocessor 2100 executes the special purpose program instructions, thereby transforming the at least oneprocessor 2100 into a special purpose processor. - In at least one example embodiment, the
memory 2300 may be a non-transitory computer-readable storage medium and may include a random access memory (RAM), a read only memory (ROM), and/or a permanent mass storage device such as a disk drive, or a solid state drive. Stored in thememory 2300 is program code (i.e., computer readable instructions) related to operating theframework server 130, theCMS server 140, and/or thecomputing device 2000, such as the methods discussed in connection withFIGS. 4 to 5 , the at least onenetwork interface 2400, and/or at least one I/O device 2500, etc. Such software elements may be loaded from a non-transitory computer-readable storage medium independent of thememory 2300, using a drive mechanism (not shown) connected to thecomputing device 2000, or via the at least onenetwork interface 2400, and/or at least one I/O device 2500, etc. - In at least one example embodiment, the at least one communication bus 2200 may enable communication and/or data transmission to be performed between elements of the
computing device 2000. The bus 2200 may be implemented using a high-speed serial bus, a parallel bus, and/or any other appropriate communication technology. According to some example embodiments, thecomputing device 2000 may include a plurality of communication buses (not shown). - Additionally, the
computing device 2000 may also provide content, communication, and/or messaging services for the one or more users of the content providing service which allows users to receive and/or consume content (e.g., read articles, view stories, view videos, listen to podcasts, etc.), interact with content (e.g., via surveys, quizzes, games, etc.), to contact and/or message one or more other users of the content providing service via thecomputing device 2000. For example, thecomputing device 2000 may also provide an online community (e.g., a forum, a website, a portal, a discussion board, an investment advisor service, a group chat service, a teleconference service, a videoconference service, etc.) wherein users of the content providing service may transmit messages for content creators, employees of the content providing service, other users of the content providing service, or a subset of the users of the online trading platform. - According to at least one example embodiment, the
computing device 2000 may host an online trading platform providing users with the ability to perform securities transactions, e.g., purchases of stocks, sales of stocks, purchase and/or sales of options contracts, obtaining loans for purchasing stocks, etc., but the example embodiments are not limited thereto, and for example, the online trading platform is not limited to stocks, and may include other classes and/or categories of securities, other classes and/or categories of transactions, etc. Additionally, thecomputing device 2000 may provide banking services, may host articles, stories, shows, podcasts, and/or other content related to financial news, domestic news, international news, etc., may provide online seminars related to financial services and/or education, etc. - While
FIG. 2 depicts an example embodiment of acomputing device 2000, thecomputing device 2000 is not limited thereto, and may include additional and/or alternative architectures that may be suitable for the purposes demonstrated. For example, the functionality of thecomputing device 2000 may be divided among a plurality of physical, logical, and/or virtual server and/or computing devices, network elements, etc., but the example embodiments are not limited thereto. -
FIG. 3A to 3C illustrate example structured data documents according to some example embodiments. More specifically,FIG. 3A illustrates an example of a “story” content type data document containing CMS-specific metadata according to some example embodiments;FIG. 3B illustrates a client application-agnostic structured data document version of the example story content shown inFIG. 3A according to some example embodiments; andFIG. 3C illustrates an example of a rendered client application-specific document corresponding to the story content ofFIG. 3B according to some example embodiments. However, the example embodiments are not limited thereto, and for example, other content types may be used, etc. - Referring now to
FIG. 3A , according to at least one example embodiment, acontent database 143 may store at least one content data document 301 (e.g., content, etc.), which may act as a template for the rendered content data document, and at least one attribute and/orcomponent 302 to 304, etc., associated with thecontent data document 301, but is not limited thereto, and for example, may include a greater or lesser number of attributes and/or components, etc. As shown inFIG. 3A , thecontent 301 stored in thecontent database 143 may be a “story” content type data document, but the example embodiments are not limited thereto, and for example, the content data document 301 may be a different content type, such as card type, asset type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file type, etc. Additionally, the attributes and/orcomponents 302 to 304 associated with the content data document 301 may be CMS-specific metadata which correspond to and/or are associated with data stored in database tables (e.g., SQL tables) 305 and 306, etc., stored in thecontent database 143. For example, theexample story instance 301 may include, for example, one or more common components and/or general components (e.g., “Common Properties” inFIG. 3A ) associated with all content types, wherein the data associated with the common components may be stored in the database table 305, etc., and one or more content-specific attributes (e.g., “Content Property” inFIG. 3A ) with data associated with the content-specific attributes stored in the database table 306, etc., but the example embodiments are not limited thereto, and for example, there may be a single database table storing data for both common components and content-specific attributes, or more than two database tables, etc. Each of the common components and/or each of the content-specific attributes 302 to 304 may be resource locators, links, identifiers associated with, pointers, etc., pointing to additional data (e.g., content data such as text for the story, images for the story, videos for the story, audio for the story, graphs for the story, accessibility data (e.g., text-to-speech data, etc.) for the story, stock ticker information associated with the story, etc.) associated with, to be included in, and/or to populate the rendered content data document, but is not limited thereto. As shown inFIG. 3A , the resource locators (e.g., the “node ID”, “version ID”, “property ID”, “entity ID”, etc.) may be used to look up specific data (e.g., “property value”, etc.) for the content data document 301 in one or more database tables included in thecontent database 143, such as database tables 305 to 306, etc., but the example embodiments are not limited thereto. - In other words, the story object may include a plurality of common components and/or content-specific attributes, which are defined by and/or required by the template of the story content type. For example, the story content type may include the following components (e.g., common properties): Title (e.g., (1) of
FIGS. 3B to 3C ), Date (e.g., (2) ofFIGS. 3B to 3C ), etc., and may further include the following attributes (e.g., content property): Summary (e.g., (3) ofFIGS. 3B to 3C ), Featured Media (e.g., (4) ofFIGS. 3B to 3C ), at least one Text Component (e.g., (5) to (7) ofFIGS. 3B to 3C ), and at least one Disclosure component (e.g., (8) ofFIGS. 3B to 3C , which may be specific to the story content type and/or the desired story, but the example embodiments are not limited thereto, and for example, other attributes and/or components may be included in the story object type. Moreover, other content types may include one or more of the same or different attributes and/or components, etc. - Referring now to
FIG. 3B , thestory content 144 retrieved from thedatabase 143 may be formatted, translated, and/or mapped by astory CMP 134 into a data model and/or payload corresponding to the story content type. More specifically, thestory CMP 134 may translate the content data shown inFIG. 3A into a client application-agnostic formatted structured data document corresponding toFIG. 3B , wherein the corresponding Title data from the retrieved content is formatted into the Title attribute (1) ofFIG. 3B , the Date data is formatted into the Date attribute (2) ofFIG. 3B , the Summary data is formatted into the Summary attribute (3) ofFIG. 3B , the Featured Media data is formatted into the Featured Media (4) attribute ofFIG. 3B , the Text data is formatted into the Text attributes (5) to (7) ofFIG. 3B , and/or the Disclosure data is formatted into the Disclosure attribute (8) ofFIG. 3B , but the example embodiments are not limited thereto. - Additionally, according to some example embodiments, if the
content 144 stored in thedatabase 143 does not include one or more desired and/or required attributes and/or components of the requested content type, theCMP 134 may automatically generate and/or provide the missing attribute and/or component. For example, the storedcontent 144 does not include a “Title” and/or “Summary,” etc., thestory CMP 134 may generate and/or input the title data and/or summary data into the generated client-application agnostic structured data document based on textual and/or contextual analysis of the “Text” data using natural language processing and trained machine learning, etc., but the example embodiments are not limited thereto. - Referring now to
FIG. 3C , according to some example embodiments, thestory CMP 134 then transmits the client application-agnostic formatted data document to thecontent mapper runtime 132, which in turn transmits the formatted data document to the requestinguser device 100. Then, the client application of the requestinguser device 100 may interpret and natively display and/or play, etc., the client application-agnostic formatted structured data document shown inFIG. 3B . For example, the client application may convert and/or render the client application-agnostic formatted data document ofFIG. 3B into a HTML document and display an HTML as shown inFIG. 3C . -
FIG. 4 illustrates an example method for operating an omni-channel content mapper framework server according to at least one example embodiment. The framework server may correspond to theframework server 130 ofFIG. 1 , but the example embodiments are not limited thereto. - Referring now to
FIG. 4 , according to at least one example embodiment, in operation S4010, theframework server 130 may receive a client request from a user device, e.g., one or more of theuser devices 110 to 113 ofFIG. 1 , but is not limited thereto. The client request may include request type information, e.g., a request for content, a request for a list of content, a request for a list of available content types, etc., but the example embodiments are not limited thereto. For example, if the client request is a request for content, the request may include a unique content identifier associated with the desired content, desired content type information (e.g., card type, story type, asset type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file type, etc.) associated with the desired content, a client application type associated with the client application type and/or version number intended to be used to consume the requested content (e.g., client application type, enterprise application type, mobile application type, web browser type, etc.), user device type information, network address information corresponding to the requesting user device, a user identifier and/or user authentication information (e.g., username and password, security key, etc.), but the example embodiments are not limited thereto. - For example, a card type is a user interface (UI) element which groups related content information, such as an image, description, and/or links, etc., but is not limited thereto. The UI elements included in the card may be visually presented and/or rendered in a manner similar to a playing card, and/or in a manner especially suited for viewing on a smartphone or similar dimensioned user device, but is not limited thereto. A story is a content type (e.g., an article content type, etc.) which is similar to a traditional website article and/or blog post, etc., and may include content data such as financial education content, editorial content, etc., but the example embodiments are not limited thereto. An asset content type refers to a chunk of text which may be displayed anywhere within a client application, e.g. contact information for a business, a disclosure copy text, a disclaimer copy text, a form, etc.
- Additional examples include the Article Summary content type which provides a list of stories and/or articles available, wherein each listed story and/or article may further include a desired set of attributes (e.g., a desired amount of content extracted from) from the corresponding story/article instance. A Pattern Landing Page content type is a web page which is created using individual attributes and/or components from a design system set of available components. The pattern landing page content type allows a method of assembling a page using separate attributes and/or components instead of the traditional complete build-out of the page. The Course content type and the Quiz content type may be part of an education content curriculum, wherein the course is a collection of educational modules and/or lessons and the quiz content type may be quizzes and/or tests which may be used for assessments related to the educational content of the corresponding course.
- Each of the desired content types includes a content specific rendering template (e.g., a layout template and/or style template, etc.) and/or content specific rule set which provide mapping information and/or formatting rules between UI elements (e.g., attributes, components, etc.) found in the client-application agnostic structured data document and the client application-specific data document, etc.
- In operation S4020, the
framework server 130 may determine the client request type based on the payload of the client request, e.g., the request type of the client request. If theframework server 130 determines that the client request corresponds to a request for a list of content, in operation S4030A, theframework server 130 may request a list of all available content from theCMS server 140 and/or thecontent database 143, etc. Further, theframework server 130 may request a list of new content uploaded to thedatabase 143, a list of content stored on thedatabase 143 which have been changed, updated, and/or modified, a list of content which has been deleted from thedatabase 143, etc. - In operation S4030B, if the
framework server 130 determines the client request corresponds to a request for a list of available content types, theframework server 130 transmits a request to theCMS server 140 and/or theplugin discovery service 141 for a list of content types available, such as a list of new content types, a list of modified content types, a list of removed content types, etc. - Following either operation S4030A or S4030B, once the
framework server 130 receives the requested list of content and/or list of available content types, theframework server 130 transmits the requested data to the user device 100 (S4060). In the event that content types have been added, modified, and/or removed, in operation S4060, theframework server 130 may additionally return program code and/or computer readable instructions for implementing the new, modified, and/or deleted content type(s) in the client application of the requesting user device in response to the client request, etc., but the example embodiments are not limited thereto. - In operation S4030C, if the
framework server 130 determines the client request corresponds to a request for content, theframework server 130 may determine a desired content mapper plugin (CMP) corresponding to the desired content type information included in the client request. More specifically, theframework server 130 may determine whether the desired CMP is loaded into theCMP storage 134, and if not, theframework server 130 may request the desired CMP from theplugin discovery service 141 and/or theCMS server 140, etc. - In operation S4040, the
framework server 130 may request the desired content from thecontent database 143 and/or theCMS server 140 based on the unique content identifier of the desired content. In operation S4050, theframework server 130 may generate a client application-agnostic structured data document using the desired CMP and the desired content. Then, in operation S4060, theframework server 130 may transmit the generated structured data document to the requesting client device. -
FIG. 5 illustrates an example method for operation an omni-channel content mapper framework user device according to at least one example embodiment. The user device may correspond to one or more of theuser devices 100 inFIG. 1 , but the example embodiments are not limited thereto. - According to at least one example embodiment, in operation S5010, the client application executed on a
user device 100 may transmit a client request to a framework server, such asframework server 130. The client request may include desired client request type information (e.g., a request for content, a request for a list of content, a request for a list of available content types, a request for a preview version of a desired content, etc.), user identifier information and/or user authentication information, but the example embodiments are not limited thereto. Additionally, the client request may also include desired content type information (e.g., card type, story type, asset type, page type, article summary type, pattern landing page type, course type, quiz type, video type, audio type, image type, graphic type, survey type, game type, document type, spreadsheet type, file type, etc.), a client application type associated with the client application type and/or version number intended to be used to consume the requested content (e.g., client application type, enterprise application type, mobile application type, web browser type, etc.), user device type information, network address information corresponding to the requesting user device, a user identifier and/or user authentication information (e.g., username and password, security key, etc.), but the example embodiments are not limited thereto. Moreover, theuser device 100 may format the client request in accordance with and/or based on the omni-channel content mapper framework API. - In operation S5020, the
user device 100 may receive a client application-agnostic structured data document from theframework server 130 in response to the client request. For example, the received structured data document may be a JSON document generated by theframework server 130 based on the requested content type information indicated in the client request and the requested content data indicated in the client, but is not limited thereto. Moreover, in operation S5030, the client application of theuser device 100 may interpret and/or parse the structured data document (e.g., the client application agnostic JSON document shown inFIG. 3B ) and generate a client application-specific data document corresponding to the client application type installed on the user device. For example, theuser device 100 may generate an HTML webpage based on the structured data document for viewing on a web browser (e.g., such as the HTML webpage shown inFIG. 3C ), theuser device 100 may generate a presentation file representing the content for viewing the structured data document on a smartphone app, tablet app, mobile app, IoT app, etc. - In operation S5040, the
user device 100 then displays the generated client application-specific document on the desired client application. - While
FIGS. 4 to 5 illustrate various methods for using an omni-channel content mapper framework for generating application-agnostic and CMS-agnostic data documents for display on a user device, the example embodiments are not limited thereto, and other methods may be used and/or modifications to the methods may be used to perform the generation of application-agnostic and CMS-agnostic data documents of the example embodiments. - Various example embodiments are directed towards an improved device, system, method and/or non-transitory computer readable medium for providing an omni-channel content mapper framework for use with one or more CMS platforms and/or for use with a plurality of client applications. According to at least one example embodiment, the omni-channel content mapper framework provides a component architecture including a plurality of plugin modules which may be used to create, instantiate, and/or expose content entities corresponding to the various client application types on demand. Additionally, the omni-channel content mapper framework further includes a plurality of patterns and templates which allow users to create additional and/or new plugin content entity models to use on a plurality of CMS platform backends, and further allows users to modify and/or update existing plugin content entity models to suit new features, innovations, and the like. Because each plugin is a self-contained unit with annotated configuration data that allows an efficient way of managing the implementation and runtime execution of the plugin, a user may add new plugins to handle new content types and/or modify existing plugins to accommodate changes to current content type models. Because the omni-channel content mapper framework provides core functionality and a pattern of approach, developers are able to focus primarily and/or solely on the plugin logic, thereby enhancing content type change management.
- This written description uses examples of the subject matter disclosed to enable any person skilled in the art to practice the same, including making and using any devices, systems, and/or non-transitory computer readable media, and/or performing any incorporated methods. The patentable scope of the subject matter is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims.
Claims (20)
1. A server for providing content to client applications, the server comprising:
a memory storing computer readable instructions; and
processing circuitry configured to execute the computer readable instructions to cause the server to,
receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content,
determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins,
obtain content data corresponding to the unique content identifier from a content database,
generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data, and
transmit the application-agnostic structured data document to the at least one user device in response to the content request.
2. The server of claim 1 , wherein
the plurality of CM plugins includes at least one of:
a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin; and
the processing circuitry is further configured to execute the computer readable instructions to cause the server to:
format the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
3. The server of claim 1 , wherein the transmitted application-agnostic structured data document causes the at least one user device to:
generate an application specific data document corresponding to a client application executed by the at least one user device based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules; and
display the application specific data document in the client application.
4. The server of claim 3 , wherein the client application is at least one of a mobile client application, a web-based client application, an enterprise client application, and a web browser.
5. The server of claim 1 , wherein the processing circuitry is further configured to execute the computer readable instructions to cause the server to:
generate the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data.
6. The server of claim 5 , wherein the processing circuitry is further configured to execute the computer readable instructions to cause the server to:
cache the plurality of generated HTML objects in a cache database; and
transmit the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
7. The server of claim 1 , wherein the application-agnostic structured data document is a JavaScript object notation (JSON) document.
8. The server of claim 1 , wherein the processing circuitry is further configured to execute the computer readable instructions to cause the server to:
generate a preview version of the obtained content data using the determined content mapper plugin; and
transmit the generated preview version to the at least one user device, the transmitting the generated preview version causing the at least one user device to display the preview version of the obtained content data on a client application executing on the at least one user device.
9. A method of operating a server, the method comprising:
receiving a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content;
determining a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins;
obtaining content data corresponding to the unique content identifier from a content database;
generating an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data; and
transmitting the application-agnostic structured data document to the at least one user device in response to the content request.
10. The method of claim 9 , wherein
the plurality of CM plugins includes at least one of:
a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin; and
the method further comprises:
formatting the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
11. The method of claim 9 , the method further comprising:
generating the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules.
12. The method of claim 11 , the method further comprising:
caching the plurality of generated HTML objects in a cache database; and
transmitting the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
13. The method of claim 9 , wherein the application-agnostic structured data document is a JavaScript object notation (JSON) document.
14. The method of claim 9 , the method further comprising:
generating a preview version of the obtained content data using the determined content mapper plugin; and
transmitting the generated preview version to the at least one user device, the transmitting the generated preview version causing the at least one user device to display the preview version of the obtained content data on a client application executing on the at least one user device.
15. A non-transitory computer readable medium storing computer readable instructions, which when executed by processing circuitry of a server, causes the server to:
receive a content request from at least one user device, the content request including a unique content identifier associated with the requested content and desired content type information corresponding to the requested content;
determine a desired content mapper (CM) plugin corresponding to the desired content type information from a plurality of CM plugins;
obtain content data corresponding to the unique content identifier from a content database;
generate an application-agnostic structured data document using the determined content mapper plugin, the application-agnostic structured data document including the obtained content data; and
transmit the application-agnostic structured data document to the at least one user device in response to the content request.
16. The non-transitory computer readable medium of claim 15 , wherein
the plurality of CM plugins includes at least one of:
a card type CM plugin, a story type CM plugin, an asset type CM plugin, a page type CM plugin, an article summary type CM plugin, a pattern landing page type CM plugin, and a course type CM plugin; and
the server is further caused to:
format the content data to the desired content type using the determined CM plugin based on at least one desired content type specific attribute included in the content data and at least one desired content type specific rule corresponding to the at least one desired content type specific attribute included in the determined CM plugin.
17. The non-transitory computer readable medium of claim 15 , wherein the transmitted application-agnostic structured data document causes the at least one user device to:
generate an application specific data document corresponding to a client application executed by the at least one user device based on a template corresponding to the desired content type information and the obtained content data, the template including desired content type specific style rules and desired content type specific presentation layer rules; and
display the application specific data document in the client application.
18. The non-transitory computer readable medium of claim 17 , wherein the client application is at least one of a mobile client application, a web-based client application, an enterprise client application, and a web browser.
19. The non-transitory computer readable medium of claim 15 , wherein the server is further caused to:
generate the application-agnostic structured data document by generating a plurality of HTML objects associated with the obtained content data.
20. The non-transitory computer readable medium of claim 19 , the server is further caused to:
cache the plurality of generated HTML objects in a cache database; and
transmit the cached plurality of generated HTML objects to a second user device in response to a second content request including the same unique content identifier and the same desired content type information.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/333,444 US20240411830A1 (en) | 2023-06-12 | 2023-06-12 | Omni-channel content mapper framework |
PCT/US2024/020707 WO2024258468A1 (en) | 2023-06-12 | 2024-03-20 | Omni-channel content mapper framework |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/333,444 US20240411830A1 (en) | 2023-06-12 | 2023-06-12 | Omni-channel content mapper framework |
Publications (1)
Publication Number | Publication Date |
---|---|
US20240411830A1 true US20240411830A1 (en) | 2024-12-12 |
Family
ID=90735322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/333,444 Pending US20240411830A1 (en) | 2023-06-12 | 2023-06-12 | Omni-channel content mapper framework |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240411830A1 (en) |
WO (1) | WO2024258468A1 (en) |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835712A (en) * | 1996-05-03 | 1998-11-10 | Webmate Technologies, Inc. | Client-server system using embedded hypertext tags for application and database development |
US6185587B1 (en) * | 1997-06-19 | 2001-02-06 | International Business Machines Corporation | System and method for building a web site with automated help |
US20020019827A1 (en) * | 2000-06-05 | 2002-02-14 | Shiman Leon G. | Method and apparatus for managing documents in a centralized document repository system |
US20020073125A1 (en) * | 2000-12-08 | 2002-06-13 | Xerox Corporation | Systems and methods for editing a web page |
US20020194194A1 (en) * | 2001-06-15 | 2002-12-19 | Fenton Nicholas W. | Content management system and process |
US20030172343A1 (en) * | 2002-03-06 | 2003-09-11 | Leymaster Mark Hendricks | Methods and systems for generating documents |
US20030233425A1 (en) * | 2000-05-04 | 2003-12-18 | Lyons Barry C. | Method and system for personal portal screen |
US20040003031A1 (en) * | 2002-06-26 | 2004-01-01 | International Business Machines Corporation | Running dynamic web pages off-line with a wizard |
US20040107405A1 (en) * | 2001-10-09 | 2004-06-03 | Sun Microsystems, Inc. | Method, system, and program for managing accesses to data objects by multiple user programs over a network |
US20040243930A1 (en) * | 2003-05-30 | 2004-12-02 | Schowtka Alexander K. | Electronic document modification |
US6868539B1 (en) * | 2000-06-28 | 2005-03-15 | Microsoft Corp. | System and method providing single application image |
US20050246283A1 (en) * | 2004-05-03 | 2005-11-03 | Trintuition Llc | Apparatus and method for creating and using documents in a distributed computing network |
US20060235984A1 (en) * | 2005-02-01 | 2006-10-19 | Joe Kraus | Collaborative web page authoring |
US7194678B1 (en) * | 1999-03-02 | 2007-03-20 | Hitachi, Ltd. | Dynamic web page generation method and system |
US20070129817A1 (en) * | 2001-06-08 | 2007-06-07 | Microsoft Corporation | User Interface for a System and Process for Providing Dynamic Communication Access and Information Awareness in an Interactive Peripheral Display |
US20070136201A1 (en) * | 2005-12-12 | 2007-06-14 | Google Inc. | Customized container document modules using preferences |
US20070250783A1 (en) * | 2006-04-24 | 2007-10-25 | Ehealthinsurance Services, Inc. | Method and system to provide online application forms |
US20080189617A1 (en) * | 2007-01-22 | 2008-08-07 | Syracuse University | Distributed Video Content Management and Sharing System |
US7458021B2 (en) * | 2004-12-23 | 2008-11-25 | Microsoft Corporation | System and method for author-driven template switching in the development and modification of web pages |
US7461340B1 (en) * | 2003-07-31 | 2008-12-02 | Microsoft Corporation | Integrated decorative panels |
US20090172637A1 (en) * | 2007-12-28 | 2009-07-02 | Microsoft Corporation | Markup-based language for manifests |
US20110161178A1 (en) * | 2005-04-29 | 2011-06-30 | Rosenstein Justin M | Web-Page Authoring Tool for Automatic Enrollment in Advertising Program |
US20130091252A1 (en) * | 2000-09-01 | 2013-04-11 | Paolo R. Pizzorni | System and Method for Distributing Assets to Multi-Tiered Network Nodes |
US20130332917A1 (en) * | 2012-06-08 | 2013-12-12 | Shawn A. Gaither | Out of Band Services Updates |
US20140047429A1 (en) * | 2012-08-10 | 2014-02-13 | Adobe Systems Incorporated | Directing plug-in updates for a software application to a target audience using manifest parameters |
US20150026658A1 (en) * | 2013-07-18 | 2015-01-22 | Appsense Limited | Systems, Methods and Media for Dynamic Creation and Update of Activation Context for Component Object Model |
US20150212989A1 (en) * | 2014-01-28 | 2015-07-30 | Moboom Ltd. | Adaptive content management |
US20170006135A1 (en) * | 2015-01-23 | 2017-01-05 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210312008A1 (en) * | 2018-11-19 | 2021-10-07 | Hewlett-Packard Development Company, L.P. | Formatting views using transformer plugins |
-
2023
- 2023-06-12 US US18/333,444 patent/US20240411830A1/en active Pending
-
2024
- 2024-03-20 WO PCT/US2024/020707 patent/WO2024258468A1/en unknown
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835712A (en) * | 1996-05-03 | 1998-11-10 | Webmate Technologies, Inc. | Client-server system using embedded hypertext tags for application and database development |
US6185587B1 (en) * | 1997-06-19 | 2001-02-06 | International Business Machines Corporation | System and method for building a web site with automated help |
US7194678B1 (en) * | 1999-03-02 | 2007-03-20 | Hitachi, Ltd. | Dynamic web page generation method and system |
US20030233425A1 (en) * | 2000-05-04 | 2003-12-18 | Lyons Barry C. | Method and system for personal portal screen |
US20020019827A1 (en) * | 2000-06-05 | 2002-02-14 | Shiman Leon G. | Method and apparatus for managing documents in a centralized document repository system |
US6868539B1 (en) * | 2000-06-28 | 2005-03-15 | Microsoft Corp. | System and method providing single application image |
US20130091252A1 (en) * | 2000-09-01 | 2013-04-11 | Paolo R. Pizzorni | System and Method for Distributing Assets to Multi-Tiered Network Nodes |
US20020073125A1 (en) * | 2000-12-08 | 2002-06-13 | Xerox Corporation | Systems and methods for editing a web page |
US20070129817A1 (en) * | 2001-06-08 | 2007-06-07 | Microsoft Corporation | User Interface for a System and Process for Providing Dynamic Communication Access and Information Awareness in an Interactive Peripheral Display |
US20020194194A1 (en) * | 2001-06-15 | 2002-12-19 | Fenton Nicholas W. | Content management system and process |
US20040107405A1 (en) * | 2001-10-09 | 2004-06-03 | Sun Microsystems, Inc. | Method, system, and program for managing accesses to data objects by multiple user programs over a network |
US7051031B2 (en) * | 2001-10-09 | 2006-05-23 | Sun Microsystems, Inc. | Method, system, and program for managing accesses to data objects by multiple user programs over a network |
US20030172343A1 (en) * | 2002-03-06 | 2003-09-11 | Leymaster Mark Hendricks | Methods and systems for generating documents |
US20040003031A1 (en) * | 2002-06-26 | 2004-01-01 | International Business Machines Corporation | Running dynamic web pages off-line with a wizard |
US20040243930A1 (en) * | 2003-05-30 | 2004-12-02 | Schowtka Alexander K. | Electronic document modification |
US7461340B1 (en) * | 2003-07-31 | 2008-12-02 | Microsoft Corporation | Integrated decorative panels |
US20050246283A1 (en) * | 2004-05-03 | 2005-11-03 | Trintuition Llc | Apparatus and method for creating and using documents in a distributed computing network |
US7458021B2 (en) * | 2004-12-23 | 2008-11-25 | Microsoft Corporation | System and method for author-driven template switching in the development and modification of web pages |
US20060235984A1 (en) * | 2005-02-01 | 2006-10-19 | Joe Kraus | Collaborative web page authoring |
US20110161178A1 (en) * | 2005-04-29 | 2011-06-30 | Rosenstein Justin M | Web-Page Authoring Tool for Automatic Enrollment in Advertising Program |
US20070136201A1 (en) * | 2005-12-12 | 2007-06-14 | Google Inc. | Customized container document modules using preferences |
US20070250783A1 (en) * | 2006-04-24 | 2007-10-25 | Ehealthinsurance Services, Inc. | Method and system to provide online application forms |
US20080189617A1 (en) * | 2007-01-22 | 2008-08-07 | Syracuse University | Distributed Video Content Management and Sharing System |
US20090172637A1 (en) * | 2007-12-28 | 2009-07-02 | Microsoft Corporation | Markup-based language for manifests |
US20130332917A1 (en) * | 2012-06-08 | 2013-12-12 | Shawn A. Gaither | Out of Band Services Updates |
US20140047429A1 (en) * | 2012-08-10 | 2014-02-13 | Adobe Systems Incorporated | Directing plug-in updates for a software application to a target audience using manifest parameters |
US20150026658A1 (en) * | 2013-07-18 | 2015-01-22 | Appsense Limited | Systems, Methods and Media for Dynamic Creation and Update of Activation Context for Component Object Model |
US20150212989A1 (en) * | 2014-01-28 | 2015-07-30 | Moboom Ltd. | Adaptive content management |
US20170006135A1 (en) * | 2015-01-23 | 2017-01-05 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
Also Published As
Publication number | Publication date |
---|---|
WO2024258468A1 (en) | 2024-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936179B2 (en) | Methods and systems for web content generation | |
US11170159B1 (en) | System and method for using a dynamic webpage editor | |
CN104025068B (en) | The Conflict solving of the CSS definition from multiple sources | |
US10438502B2 (en) | Assessment item generation and scoring | |
US9235636B2 (en) | Presenting data in response to an incomplete query | |
US10229222B2 (en) | Dynamically optimized content display | |
US8957908B2 (en) | Rapid representational thumbnail images for business intelligence dashboards | |
JP2019530921A (en) | Method and system for server-side rendering of native content for presentation | |
US8074167B2 (en) | Cross domain presence of web user interface and logic | |
US9460162B1 (en) | Assessment item generator | |
US9881002B1 (en) | Content localization | |
US9887941B1 (en) | In-message applications in a messaging platform | |
US10984070B2 (en) | Dynamic content placeholders for microblogging posts | |
Chen et al. | Design and implementation of bilingual digital reader based on artificial intelligence and big data technology | |
CN111752561A (en) | Block development method, block sharing method, page building method and system | |
CN112486482B (en) | Page display method and device | |
US20190385472A1 (en) | Assessment item generation and scoring | |
CN107615267A (en) | Methods and systems related to context-specific writing frameworks | |
US20240411830A1 (en) | Omni-channel content mapper framework | |
US20130061126A1 (en) | Secure document creation from potentially unsecure source templates | |
Ivancsics et al. | The Invisible Infrastructures of Online Visibility: An Analysis of the Platform-Facing Markup Used by US-Based Digital News Organizations | |
US11263533B2 (en) | Dynamic configurable rule representation | |
CN119597723A (en) | Distributed data processing method, device, electronic equipment and program product | |
KR101540605B1 (en) | A kiosk builder system, a tiosk system including the same, and a method of providing a tiosk system | |
CA3220415A1 (en) | Accessible e-learning systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CHARLES SCHWAB & CO., INC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GAMSHAD, MOHSEN;BILLA, SATYA;HISTER, CHRIS;AND OTHERS;REEL/FRAME:064263/0708 Effective date: 20230602 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |