EP3815342A1 - Adaptive user-interface assembling and rendering - Google Patents
Adaptive user-interface assembling and renderingInfo
- Publication number
- EP3815342A1 EP3815342A1 EP19739479.4A EP19739479A EP3815342A1 EP 3815342 A1 EP3815342 A1 EP 3815342A1 EP 19739479 A EP19739479 A EP 19739479A EP 3815342 A1 EP3815342 A1 EP 3815342A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- user
- client
- component
- interface
- interface component
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Definitions
- Businesses today have grown to rely on distributed application platforms for efficient management of business processes serving a diverse group of users, user devices and user locations.
- Distributed application platforms enable scalable and reliable delivery of application services and data to connected clients across the globe. Such platforms likewise enable fusion of data from both logically and physically diverse data sets.
- business supply chain operations may be supported by a distributed supply chain application that provides supply chain planning, sourcing, production and/or delivery services to a diverse set of users and devices.
- many business processes require one or more approvals from various levels of management, many of whom may be in diverse locations around the world.
- an adaptive user-interface component selection system is enabled to select user-interface components for rendering and display on a client device running an instance of the client application.
- the user-interface components to be included or omitted from the client device user-interface may be selected according to a set of component rules that dictate which user-interface components should or should not be rendered on the client device.
- the applicable component rules are identified based on information regarding the client device such as, network bandwidth, geolocation, user role, user context or required application features and some or all of such information may be gathered by the client device and intermittently transmitted to the application platform servers.
- Other component rules may also be applicable and depend on the historical user-interface usage patterns of a user (e.g. depend on what has been viewed, clicked on or otherwise interacted with).
- Embodiments may also, based on information regarding a client device that is intermittently received, detect changed operating conditions at the client (e.g. network bandwidth), and cause the user-interface components selected for rendering to be changed, so as to change the user-interface of the application executing on the client device in adaptation to the changed operating conditions.
- client e.g. network bandwidth
- a cluster of user devices with similar operating constraints e.g. network bandwidth, geolocation, user role, user context or required feature
- a set predetermined component rules are associated therewith based on those constraints.
- Subsequent connection by a client device determined to be a member due to having similar operating constraints of the cluster results in the predetermined component rules being applied without the necessity of first gathering information regarding the client device, and user-interface components dictated by those rules are selected for rendering and display on the application executing on the user device.
- FIG. 1 shows a block diagram of a system for adaptively selecting user-interface components, according to an example embodiment.
- FIG. 2 shows a block diagram of a client device equipped to accept selected user- interface components for rendering and display, according to an example embodiment.
- FIG. 3 shows an example user-interface component, according to an example embodiment.
- FIG. 4 shows a flowchart of an example method for selecting user-interface components for assembling and rendering, according to an example embodiment.
- FIG. 5 shows a flowchart of an example method of user-interface component assembling performed by a local system, according to an example embodiment.
- FIG. 6 shows a flowchart of an example method of user-interface component assembling performed by a remote client device, according to an example embodiment.
- FIG. 7 shows a flowchart of a method for detecting changed operating conditions at a client, and thereby causing new user-interface components to be selected, according to an example embodiment.
- FIG. 8 shows a flowchart of a method for identifying client clusters, according to an example embodiment.
- FIG. 9 shows a flowchart of a method for detecting client cluster membership of a client device, according to an embodiment
- FIG. 10 is a block diagram of an example processor-based computer system that may be used to implement various embodiments.
- references in the specification to "one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- a user-interface component is comprised of subparts that may include: a user-interface definition (e.g., the physical appearance and function of the component), associated user-interface services, and data to be displayed or accepted as input.
- a user-interface definition e.g., the physical appearance and function of the component
- associated user-interface services e.g., the user-interface services
- Assembly comprises operations that fully construct the user-interface into renderable code (e.g. HTML code), including all needed data.
- renderable code e.g. HTML code
- “render” or“rendering” means modifying the DOM of a webpage to include one or more user-interface components. It should be understood, however, that HTML, web pages, web browsers and the DOM related to these are but one means of rendering and displaying an application user-interface, and one of skill in the art will appreciate there are other means for such rendering and display in other embodiments.
- Embodiments will determine whether some or all of the user-interface components should be partly or wholly assembled locally by the system, or remotely by the client. As discussed in further detail below, embodiments of a user-interface component selection system in a distributed application platform may determine the minimal viable user-interface rendering for a particular client or clients.
- FIG. 1 shows a block diagram of a system 100 for selecting, assembling and transmitting user-interface components to an application running on a user device, for rendering and display by that device.
- System 100 includes a plurality of user devices 102A-102N, a network 104, and user-interface component selection system 106.
- User-interface component selection system 106 includes a number of components, including: client information collector 108, client bandwidth checker 110, component assembler 116, feedback database 118, component aggregator 116, event broker 120, component rule database 122, and component database 124.
- User devices 102A-102N include the computing devices of users (e.g., individual users, family users, enterprise users, governmental users, etc.) that access user-interface component selection system 106 via network 104. Although depicted as a desktop computer, user devices 102A-102N may include other types of computing devices suitable for connecting with user-interface component selection system 106 via network 104.
- users e.g., individual users, family users, enterprise users, governmental users, etc.
- user devices 102A-102N may include other types of computing devices suitable for connecting with user-interface component selection system 106 via network 104.
- User devices 102A-102N may each be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a Microsoft® Surface® device, a personal digital assistant (PDA), a laptop computer, a notebook computer, a tablet computer such as an Apple iPadTM, a netbook, etc.), a mobile phone, a wearable computing device, or other type of mobile device, or a stationary computing device such as a desktop computer or PC (personal computer), or a server.
- a mobile computer or mobile computing device e.g., a Microsoft® Surface® device, a personal digital assistant (PDA), a laptop computer, a notebook computer, a tablet computer such as an Apple iPadTM, a netbook, etc.
- PDA personal digital assistant
- a laptop computer e.g., a notebook computer, a tablet computer such as an Apple iPadTM, a netbook, etc.
- a mobile phone e.g., a wearable computing device, or other type of mobile device
- variable“N” has a corresponding value, which may be different for the value of“N” for other components/reference numerals.
- the value of“N” for any particular component/reference numeral may be less than 10, in the lOs, in the hundreds, in the thousands, or even greater, depending on the particular implementation.
- Network 104 may comprise one or more networks such as local area networks (LANs), wide area networks (WANs), enterprise networks, the Internet, etc., and may include one or more of wired and/or wireless portions.
- LANs local area networks
- WANs wide area networks
- enterprise networks the Internet, etc.
- wired and/or wireless portions may include one or more of wired and/or wireless portions.
- User-interface component selection system 106 includes client information collector 108, and client bandwidth checker 110.
- Client information collector 108 receives client information 114 directly from each connected user device 102A-102N.
- client information 114 may comprise various types of information regarding a client.
- client information 114 may include the client’s geo-location, the user role, the user context, application feature, and application and/or user-interface usage history including information regarding rendering of user- interface components.
- Client information collector 108 may also receive other client information indirectly from client bandwidth checker 110.
- Client bandwidth checker 110 is configured to determine the available bandwidth between user-interface component selection system 106 and each user device 102A-102N, and pass the bandwidth information along to client information collector 108 where it may thereafter be treated as part of client information 114 for each client, in an embodiment.
- client information collector 108 may be configured to provide client information 114 to either feedback database 118, component aggregator 116, or both, depending on the particular embodiment.
- feedback database 118 may store client information 114 for later use as will be discussed in more detail below.
- Component aggregator 116 may be configured to receive client information 114 from client information collector 108, and to determine a set of applicable rules from among those stored in component rule database 122.
- the set of component rules may dictate, for example, the particular combination of user-interface components to be rendered by the application executing on the client device, given the constraints defined by client information 114.
- component aggregator 116 retrieves the appropriate user-interface components from component database 124, in an embodiment. Before final rendering and display of the application user-interface can be accomplished, however, the set of user-interface components retrieved from component database 124 must be assembled.
- rendering code may comprise HTML code for rendering by a web browser.
- component aggregator 116 may be configured to determine whether the user-interface components should be assembled locally via component assembler 112, or remotely by components included in a client device 102A- 102N. Whether user-interface components are assembled locally or remotely, UI data 128 is transmitted by user-interface component selection system 106 to the client device.
- UI data 128 is comprised of assembled UI data l28b.
- assembled UI data l28b may comprise, for example, HTML code that includes all underlying data required by the application, and is ready for immediate rendering by, for example, a web browser running on the client device.
- UI data 128 may be comprised of a user-interface component template along with instructions for how the client may retrieve data, as represented by unassembled UI data l28a.
- the client application executing on client device 102A- 102N is responsible for rendering and displaying the user-interface.
- UI data 128 comprises a user-interface component that has already been assembled
- rendering may be done immediately.
- client device 102A-102N must retrieve needed data, and use the template to locally generate rendering code, such as, for example, HTML code for rendering in a web browser.
- client device 102A-102N may retrieve needed data via helper code included in the user-interface components retrieved from component database 124, and included in UI data 128 transmitted to the client.
- user-interface component selection system 106 may be implemented by a web site, web server, web service, and/or other transaction handling application. Note that although depicted as a monolithic component, user-interface component selection system 106 may be embodied in any number of computing devices such as servers, and may include any type and number of other resources, including resources that facilitate communications with and between the computing, user devices 102A-102N and any other necessary components internal or external to user-interface component selection system 106.
- servers implementing user-interface component selection system 106 may be organized in any manner, including being grouped in server racks (e.g., 8-40 servers per rack, referred to as nodes or“blade servers”), server clusters (e.g., 2-64 servers, 4-8 racks, etc.), or datacenters (e.g., thousands of servers, hundreds of racks, dozens of clusters, etc.).
- the servers of user-interface component selection system 106 may be co-located (e.g., housed in one or more nearby buildings with associated components such as backup power supplies, redundant data communications, environmental controls, etc.) to form a datacenter, or may be arranged in other manners.
- user-interface component selection system 106 may comprise a datacenter in a distributed collection of datacenters.
- user-interface component selection system 106 is depicted as having separate databases shown as feedback database 118, component rule database 122 and component database 124, it will be apparent to persons skilled in the art that some or all of the data, and some or all of the provided database operations may be incorporated into a single database. Likewise, it will be apparent to persons skilled in the art that some of the described operations of user-interface component selection system 106 may be performed in one or more databases. For example, some of the described operations of user-interface component selection system 106 may be incorporated into a stored procedure of an SQL (structured query language) database, in an embodiment.
- SQL structured query language
- Embodiments of user-interface component selection system 106 may also include event broker 120 of FIG. 1 particularly where user-interface component selection system 106 is implemented on, for example, server racks, server clusters or a distributed collection of datacenters.
- event broker 120 may be configured to permit client information 114 to be propagated from, for example, feedback database 118 to other servers in the cluster.
- client information received from clients forms the basis for selecting component rules that dictate the selection, assembling and eventual rendering and display of user-interface components. Ordinarily, changes to such rendering and display require changes in operating conditions as reflected in additional client information provided to embodiments of user-interface component selection system 106.
- event broker 120 as shown in FIG. 1 may be configured to communicate such requirements to one or more of the other servers in the cluster.
- client devices may share operating characteristics with other such devices.
- embodiments may automatically provide a certain level of service to a newly connecting client based on what the system has learned from other, similar clients based on the respective client information provided by each. For example, suppose client device 102A of FIG. 1 connects to user-interface component selection system 106, and due to limited bandwidth between the client device 102 A and system 106, a minimal user-interface rendering is provided. Further suppose another client, for example client device 102B, subsequently connects to user-interface component selection system 106 from the same geolocation as client device 102 A.
- embodiments of user- interface component selection system 106 may automatically provide the same minimal user-interface rendering to client device 102B by virtue of what is likely to be a degraded connection for that client. In order to do so, however, each and every server of the server cluster must know to provide a similar minimal rendering to similarly situated client devices, since it generally not known in advance which server of the server cluster the client device will use to connect.
- event broker 120 may be configured to communicate such information regarding the state of one or more clients or client clusters to other servers in the server cluster.
- FIG. 3 depicts an example user-interface component 300, according to an example embodiment.
- User-interface component 300 includes user-interface definition 302, service 304, and data 306.
- user- interface definition 302 defines the appearance and function of the rendered user-interface component as it appears in the application executing on the client device.
- user-interface definition 302 may include the size and shape of a particular user-interface region of the display, and may also include data input fields, data output fields and other graphical control elements such as radio buttons, check boxes, scroll bars, windows, panels, tabs and other types of user-interface elements as will be understood by one skilled in the art.
- data 304 of user-interface component 300 defines data to be displayed in data output fields, or other graphical control elements of the rendered user- interface component. For example, supposing that the distributed application platform is supporting a supply chain application, data 304 of the rendered user-interface component may require information pertaining to various supply chain suppliers, or the like. In other embodiments, data 304 may require data input to the user-interface by the user of the application executing on the user device. In embodiments, data 304 is not included in user- interface component 300, but instead defines the data and related metadata that must be retrieved from or sent to an external data repository such as, for example, a database.
- service 306 comprises helper code that may be executed by either the local system, or by the client application. When executed, service 306 may provide, for example, data retrieval or storage functions. In embodiments, service 306 may be configured to retrieve data 304 from a database, or collection of databases or other data sources. In other embodiments, service 306 may likewise be configured to store data 304 accepted by the application running on client device to a database or other data sink.
- FIG. 2 shows a block diagram 200 of a client device 202 equipped to accept selected user-interface components for rendering and display, according to an embodiment.
- client device 202 includes client component assembler 204, display component 206, component buffer 214, data collector 218, and timer 220.
- data collector 218 may be configured to gather client information 114 to send to, for example, user-interface component selection system 106.
- timer 220 may be configured to intermittently or periodically trigger data collector 218 to send any client information 114 that has been gathered since the last trigger.
- Component buffer 214 may be configured to accept UI data 128 from user-interface component selection system 106, in an embodiment.
- Component buffer 214 may include one or more of any type of physical storage mechanism including, a memory device such as a DRAM (dynamic random access memory) device, SRAM (static random access memory) device and/or any other suitable type of physical storage device suitable for storage and access by processing devices.
- a memory device such as a DRAM (dynamic random access memory) device, SRAM (static random access memory) device and/or any other suitable type of physical storage device suitable for storage and access by processing devices.
- UI data 128 may comprise information ready for immediate rendering, such as HTML code in some embodiments.
- component buffer 214 may directly render UI data 128 to display component 206 where they will appear in user-interface 208 as displayed UI components 210.
- component buffer 214 will instead pass UI data 128 to client component assembler 204.
- client component assembler 204 may be configured to assemble the user-interface components into renderable code in a manner similar to that discussed above in relation to user-interface component assembly performed by user- interface component selection system 106.
- client component assembler 204 may be configured to accept the templates and data retrieval instructions and/or code incorporated into respective user-interface component services to retrieve any needed data, and transform the templates and data into renderable code, such as, for example HTML code, in an embodiment.
- resulting code may be passed to display component 206, where displayed UI components 210 may rendered in user-interface 208.
- user-interface component assembly by, for example, client device 202 may proceed concurrently in the background with other client processes or threads.
- client component assembler 204 may be configured to assemble user-interface components while other components are being rendered and displayed, or more while data collector 218 is collecting and/or transmitting client information 114 to the user-interface selection system 106.
- user-interface component assembly performed by client component assembler 204 may occur on demand or on an otherwise deferred basis.
- some user-interface components may not always be visible amongst displayed UI components 210 as shown in user-interface 208. That is, user-interface components not currently visible among the displayed UI components 210 need not be rendered until the user-interface components become visible (e.g. due to scrolling, or opening or closing other user-interface components currently displayed).
- embodiments may insert a placeholder graphic until such time the user interacts with the graphic through, for example, mouse pointer hovering, mouse clicks, screen touches, or other types of input.
- Other structural and operational embodiments of user-interface component selection system 106 will be apparent to persons skilled in the relevant art based on the following discussion of example embodiments of different methods for operating user-interface component selection system 106. Such discussion begins with flowchart 400 of FIG. 4.
- Flowchart 400 begins at step 402.
- embodiments of user-interface selection system 106 may collect and store information regarding the client device executing instance of an application, as depicted in FIG. 4.
- Information regarding the client device may comprise client information 114 as discussed in conjunction with FIGS. 1 and 2 above.
- such information may comprise the available network bandwidth of the client device, client device geolocation, the user role (wherein the user is the user of the application running on client device), a user context, and required application features of which a particular user-interface component as a part.
- the available network bandwidth of, for example, client device 202 may be determined in conjunction with client bandwidth checker 110 of FIG. 1, as discussed above.
- client bandwidth checker 110 Various means of determining the available bandwidth between a client and server are known in the art.
- geolocation of a connected client device may be determined in embodiments by, for example, the IP address of client device. It may not always be possible to determine the geolocation of the client by device IP address, and other known methods for determining the geolocation of the connected device may be used instead.
- the user role of a user of the application executing on the client device is a means for identifying the particular rights and privileges that should accrue to the user. For example, where the distributed application executing on the client and server is used for process approvals and the like, senior workers and other management personnel may be given the user role that permits them to approve or reject submitted process approvals. On the other hand, junior workers that are seeking process approval may be placed into a role that permits them only to submit process approvals, and neither prove nor reject such proofs.
- User roles may also serve to provide users with a particular role with an enhanced or expedited experience based on high priority actions likely to be taken by the user is in such roles. For example, executives with signature authority incorporation may be expected to promptly execute legal documents on behalf of the corporation, and therefore be given priority access to the distributed application platform and the applications running thereon.
- User context reflects the historical operating norms for a given user. For example, embodiments of user-interface component selection system 106 and applications relying on the system, may learn through client information 114 that is received by user-interface component selection system 106 and stored in feedback database 118 that a particular user never connects to the system from the corporate network on Sundays, but instead some other IP address, and geolocation on a consistent basis. A user’s ordinary course of use of the application platform constitutes the user context. User context may be important in the instance where the current use of the application platform being made is outside the ordinary user context associated with the user.
- client information 114 as shown in FIG. 1 may also include information regarding the application feature in use by the user at any given point in time. Not all application features ought to be provided with the same rendering priority, and including information about the application features in use by the client device allows embodiments to adjust for these differences and, elect to defer rendering of low priority application user-interface features.
- embodiments may retrieve at least one component rule from a component rule database based at least in part on information regarding a client gathered at step 402. As discussed above, one or more such rules dictate the user-interface components to be selected for rendering. In particular, based on the at least one component rule retrieved, for example, from the component rule database at step 404, embodiments may select user-interface components to include in, or to omit from, the user-interface of the application at step 406 of flowchart 400. Note, selection of user-interface components should be understood to be both inclusive and exclusive. That is selection of user-interface components may include selecting and designating user-interface components that should not be rendered in the user-interface of the application.
- Applicable rules may affect the selection of user-interface components in a number of different ways, and rules may be flexibly crafted to generate the desired behaviors and component renderings at the client. For example, suppose that for a particular application feature in use (e.g. executing a corporate contract on an acquisition worth millions of dollars), the user role of the user making use of that feature (e.g. a company vice president or other high ranking executive) requires high priority access to the feature, and the user’s device unfortunately does not have good bandwidth to the user-interface component selection system 106.
- a particular application feature in use e.g. executing a corporate contract on an acquisition worth millions of dollars
- the user role of the user making use of that feature e.g. a company vice president or other high ranking executive
- the user’s device unfortunately does not have good bandwidth to the user-interface component selection system 106.
- the geolocation of the client may dictate a restriction to some or all of the desired data, and be disallowed.
- deviations from the ordinary user context may be important, and different user-interface component rules may be created and enforced depending on such contextual changes.
- a given user historically may have only used a single user-interface component of those made available.
- the selected component rules shall dictate the user- interface components to be rendered as discussed in relation to stop 408.
- step 408 of flowchart 400 embodiments may retrieve at least one user-interface component from a user-interface component database based on the user-interface component selected at step 406. Such components are those to eventually be made available for rendering at the client device (whether immediately or on a deferred basis). Prior to rendering the user-interface component, however, retrieved user-interface components must be assembled at step 410 of flowchart 400.
- embodiments of user-interface component selection system 106 may assemble the at least one user-interface component locally at the system.
- component assembler 112 may assemble the user-interface components, and then transmit complete and immediately renderable primitives to the client.
- User- interface components are assembled by retrieving the needed data, and along with the user- interface definition of the user-interface component, creating fully integrated, renderable data.
- the user-interface on the client device is HTML based
- component assembler 112 only fully formed HTML is sent to the client device, and is generally more bandwidth intensive.
- user-interface component selection system 106 may instead transmit incomplete primitives to the client for remote assembly, rendering and display by the client.
- component buffer 214 may be configured to detect whether UI data 128 coming from the user-interface component selection system 106 is fully integrated and renderable code including all data, or instead comprises user-interface templates, along with applicable user-interface service components such as, for example, service component 306, as shown in FIG. 3. If the latter, client component assembler 204 of client device 202 shall assemble the user-interface components retrieving any needed data with service component 306, and using the templates to create, renderable code.
- Embodiments may designate user- interface components for local or remote assembly for a variety of reasons including based on at least one component rule as discussed in flowchart 500 of FIG. 5.
- Flowchart 500 of FIG. 5 begins at step 502.
- embodiments may use component rules (e.g. the at least one component rule retrieved at step 404 of flowchart 400) to determine that at least one user-interface component should be assembled locally by user-interface selection system 106.
- component rules e.g. the at least one component rule retrieved at step 404 of flowchart 400
- it may be preferable to assemble user-interface components locally, particularly where there is ample bandwidth between user-interface component selection system 106, and client device 202, and where client device 202 may have limited storage and or computational resources.
- step 504 based on the determination made step 502, embodiments assemble the at least one user-interface component into complete and immediately renderable primitives and/or code such as HTML code, and transmit same to the client for rendering and display by the application.
- embodiments of user-interface selection system 106 may be configured to determine that the at least one user-interface component should be assembled remotely by the application as discussed below regarding flowchart 600 of FIG. 6.
- FIG. 6 depicts a flowchart 600, which begins at step 602.
- embodiments of user-interface component selection system 106 may determine that the at least one user-interface component should be assembled remotely by, for example, client device 202.
- such determination may be made based at least in part on, for example, the at least one component rule, retrieved at, for example, step 404 of flowchart 400.
- It may be desirable in some embodiments to designate certain user-interface component or remote assembly, particularly where such user-interface components are designated for deferred rendering whereby the user-interface components may never need to be assembled or rendered at all.
- remote assembly of user-interface components by, for example, client device 202 is less bandwidth intensive, and thus may be desirable under a limited bandwidth circumstances.
- embodiments transmit templates and data instructions and/or code to, for example, client device 202.
- Embodiments may use the received templates and code (e.g. code associated with service component 306 as shown in FIG. 3) to retrieve any needed data and transform the templates to renderable code such as, for example, HTML code.
- Flowchart 700 of FIG. 7 describes a method for detecting changed operating conditions at the client, causing new user-interface components to be selected, assembled, rendered and displayed on a user device in response thereto.
- Flowchart 700 begins at step 702.
- additional client information is intermittently collected from the client, and stored. Such additional client information may be gathered by, for example, client information collector 108 of user-interface component selection system 106 as depicted in FIG. 1.
- Client information collector 108 may gather the additional client information in a number of ways. For example, client information collector 108 may collect information from each client on a pull basis (e.g. polling), or may also accept additional client information pushed from each client. In an embodiment, a client, such as client device 202, may collect and store client information locally, and intermittently push such information to user-interface component selection system 106 in response to a trigger from timer 220.
- client information collector 108 may collect information from each client on a pull basis (e.g. polling), or may also accept additional client information pushed from each client.
- a client such as client device 202, may collect and store client information locally, and intermittently push such information to user-interface component selection system 106 in response to a trigger from timer 220.
- Flowchart 700 continues at step 704, where at least one additional component rule may be retrieved from component rule database based at least in part on the additional information received by, for example, user-interface component selection system 106, in an embodiment.
- at least one additional component rule may be retrieved from component rule database based at least in part on the additional information received by, for example, user-interface component selection system 106, in an embodiment.
- changed operating conditions may make it desirable to modify user- interface rendering in response to such changed conditions. For example, bandwidth between, for example, client device 202 and user-interface component selection system 106 may degrade. Under such circumstances, it may be desirable for embodiments to reduce the number of user-interface components to render, or to switch to remote assembling of the user-interface components, rather than local system assembling. Additionally, the user may switch to a different application that has different operating needs.
- Flowchart 800 of FIG. 8 depicts a method for embodiments of user-interface component selection system 106 to identify clients having similar operating characteristics and assign such clients to a client cluster.
- a client cluster is a group of clients identified as having similar operating characteristics as defined by client information provided by each to, for example, user-interface component selection system 106.
- client information may comprise, for example, any of the types of client information 114 identified above. Note, it is not necessary for client operating conditions for the various clients to be identical in order to be designated as members of a particular client cluster. Instead, it suffices if the conditions have sufficient measures of similarity, and as will be understood by one skill in the relevant art(s).
- flowchart 900 of FIG. 9 shows a method for using client cluster membership information.
- Flowchart 900 begins at step 902.
- user-interface component selection system 106 may detect whether a newly connecting client has operating conditions sufficiently similar to the clients included in an existing client cluster.
- embodiments may designate the new client for inclusion in the client cluster, and select at least one additional component rule from the component database wherein the additional component rule dictates selection of at least one user- interface component different than others selected based only on, for example, client information 114 provided to user-interface component selection system 106.
- Performance of such method steps enables embodiments to proactively select more appropriate user- interface components for render based on the known operating conditions of the client cluster members. This approach saves embodiments of user-interface selection system 106 from having to learn the operating conditions of the client prior to attempting a more optimal rendering scheme.
- User device(s) 102A-102N, user-interface component selection system 106, client information collector 108, client bandwidth checker 110, component assembler 1 16, component aggregator 116, event broker 120, client device 202, client component assembler 204, component buffer 214, data collector 218, timer 220, and/or flowcharts 400 through 900 may be implemented in hardware, or hardware combined with software and/or firmware.
- user-interface component selection system 106, client information collector 108, client bandwidth checker 110, component assembler 116, component aggregator 116, event broker 120, client device 202, client component assembler 204, component buffer 214, data collector 218, timer 220, and/or flowcharts 400 through 900 may be implemented as computer program code/instructions configured to be executed in one or more processors and stored in a computer readable storage medium.
- user-interface component selection system 106, client information collector 108, client bandwidth checker 110, component assembler 116, component aggregator 116, event broker 120, client device 202, client component assembler 204, component buffer 214, data collector 218, timer 220, and/or flowcharts 400 through 900 may be implemented as hardware logic/electrical circuitry.
- one or more, in any combination, of user-interface component selection system 106, client information collector 108, client bandwidth checker 110, component assembler 116, component aggregator 1 16, event broker 120, client device 202, client component assembler 204, component buffer 214, data collector 218, timer 220, and/or flowcharts 400 through 900 may be implemented together in a SoC.
- the SoC may include an integrated circuit chip that includes one or more of a processor (e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and/or further circuits, and may optionally execute received program code and/or include embedded firmware to perform functions.
- a processor e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.
- memory e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc
- FIG. 10 depicts an exemplary implementation of a computing device 1000 in which embodiments may be implemented.
- portions of user-interface component selection system 106, user device(s) 102A-102N, or client device 202 may each be implemented in one or more computing devices similar to computing device 1000 in stationary or mobile computer embodiments, including one or more features of computing device 1000 and/or alternative features.
- the description of computing device 1000 provided herein is provided for purposes of illustration, and is not intended to be limiting. Embodiments may be implemented in further types of computer systems, as would be known to persons skilled in the relevant art(s).
- computing device 1000 includes one or more processors, referred to as processor circuit 1002, a system memory 1004, and a bus 1006 that couples various system components including system memory 1004 to processor circuit 1002.
- Processor circuit 1002 is an electrical and/or optical circuit implemented in one or more physical hardware electrical circuit device elements and/or integrated circuit devices (semiconductor material chips or dies) as a central processing unit (CPU), a microcontroller, a microprocessor, and/or other physical hardware processor circuit.
- Processor circuit 1002 may execute program code stored in a computer readable medium, such as program code of operating system 1030, application programs 1032, other programs 1034, etc.
- Bus 1006 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
- System memory 1004 includes read only memory (ROM) 1008 and random access memory (RAM) 1010.
- ROM read only memory
- RAM random access memory
- a basic input/output system 1012 (BIOS) is stored in ROM 1008.
- Computing device 1000 also has one or more of the following drives: a hard disk drive 1014 for reading from and writing to a hard disk, a magnetic disk drive 1016 for reading from or writing to a removable magnetic disk 1018, and an optical disk drive 1020 for reading from or writing to a removable optical disk 1022 such as a CD ROM, DVD ROM, or other optical media.
- Hard disk drive 1014, magnetic disk drive 1016, and optical disk drive 1020 are connected to bus 1006 by a hard disk drive interface 1024, a magnetic disk drive interface 1026, and an optical drive interface 1028, respectively.
- the drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer.
- a hard disk, a removable magnetic disk and a removable optical disk are described, other types of hardware-based computer-readable storage media can be used to store data, such as flash memory cards, digital video disks, RAMs, ROMs, and other hardware storage media.
- a number of program modules may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include operating system 1030, one or more application programs 1032, other programs 1034, and program data 1036.
- Application programs 1032 or other programs 1034 may include, for example, computer program logic (e.g., computer program code or instructions) for implementing user-interface component selection system 106, client information collector 108, client bandwidth checker 110, component assembler 116, component aggregator 116, event broker 120, client device 202, client component assembler 204, component buffer 214, data collector 218, timer 220, and/or flowcharts 400 through 900 (including any suitable step of flowcharts 400 through 900), and/or further embodiments described herein.
- computer program logic e.g., computer program code or instructions
- a user may enter commands and information into the computing device 1000 through input devices such as keyboard 1038 and pointing device 1040.
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, a touch screen and/or touch pad, a voice recognition system to receive voice input, a gesture recognition system to receive gesture input, or the like.
- processor circuit 1002 may be connected to processor circuit 1002 through a serial port interface 1042 that is coupled to bus 1006, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
- a display screen 1044 is also connected to bus 1006 via an interface, such as a video adapter 1046.
- Display screen 1044 may be external to, or incorporated in computing device 1000.
- Display screen 1044 may display information, as well as being a user-interface for receiving user commands and/or other information (e.g., by touch, finger gestures, virtual keyboard, etc.).
- computing device 1000 may include other peripheral output devices (not shown) such as speakers and printers.
- Computing device 1000 is connected to a network 1048 (e.g., the Internet) through an adaptor or network interface 1050, a modem 1052, or other means for establishing communications over the network.
- Modem 1052 which may be internal or external, may be connected to bus 1006 via serial port interface 1042, as shown in FIG. 10, or may be connected to bus 1006 using another interface type, including a parallel interface.
- computer program medium As used herein, the terms "computer program medium,” “computer-readable medium,” and“computer-readable storage medium” are used to refer to physical hardware media such as the hard disk associated with hard disk drive 1014, removable magnetic disk 1018, removable optical disk 1022, other physical hardware media such as RAMs, ROMs, flash memory cards, digital video disks, zip disks, MEMs, nanotechnology-based storage devices, and further types of physical/tangible hardware storage media.
- Such computer- readable storage media are distinguished from and non-overlapping with communication media (do not include communication media).
- Communication media embodies computer- readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wireless media such as acoustic, RF, infrared and other wireless media, as well as wired media.
- Embodiments are also directed to such communication media that are separate and non overlapping with embodiments directed to computer-readable storage media.
- computer programs and modules may be stored on the hard disk, magnetic disk, optical disk, ROM, RAM, or other hardware storage medium. Such computer programs may also be received via network interface 1050, serial port interface 1042, or any other interface type.
- Such computer programs when executed or loaded by an application, enable computing device 1000 to implement features of embodiments described herein. Accordingly, such computer programs represent controllers of the computing device 1000.
- Embodiments are also directed to computer program products comprising computer code or instructions stored on any computer-readable medium.
- Such computer program products include hard disk drives, optical disk drives, memory device packages, portable memory sticks, memory cards, and other types of physical storage hardware.
- An adaptive user-interface component selection system comprises: a feedback database for storing information regarding a client device upon which an instance of the application is executing; a user-interface component database containing user-interface components; a component rule database containing user-interface component selection rules; one or more processors; and one or more memory devices accessible to the one or more processors, the one or more memory devices storing program code for execution by the one or more processors, the program code including: a client information collector configured to collect and store the information regarding a client device in the feedback database, and further configured to provide at least some of the information regarding a client device to a component aggregator, the component aggregator configured to: based at least in part on the information regarding a client device, retrieve at least one component rule from the component rule database; based on the at least one component rule, select user-interface components to include in or to omit from the user- interface of the instance of the application, and based on the selected user-interface components, retrieve at least
- information regarding the client device comprises: client network bandwidth; client geo-location; client user role; client user context; and client application feature.
- the component aggregator is further configured to: intermittently accept additional information regarding a client from the client information collector, the additional information regarding a client reflecting changed operating conditions of the client; and retrieve at least one additional component rule from the component rule database based at least in part on the additional information regarding a client, wherein the at least one additional component rule causes greater or fewer user- interface components to be rendered and displayed by the application executing on the client device in response to the changed operating conditions.
- information regarding the client device further comprises information regarding user-interface components with which the user of the application executing on the client device has interacted.
- the client information collector is further configured to identify at least one client cluster comprising a plurality of client devices each having substantially similar operating conditions as reflected in the information regarding a client device provided by each.
- the component aggregator is further configured to detect whether the client device is a member of an existing client cluster and, in response to the client being a member of an existing client cluster, selecting at least one additional component rule from the component rule database, the at least one additional component rule dictating selection of an additional user-interface component different from the at least one user-interface component.
- a computer implemented method for adaptively selecting a user-interface component for rendering and displayed by an instance of an application executing on a client includes: collecting and storing information regarding the client; based at least in part on the information regarding the client, retrieving at least one component rule from a component rule database; based on the at least one component rule, selecting user-interface components to include in or to omit from the user-interface of the application, and based on the selected user-interface components, retrieving at least one user-interface component from a user-interface component database; and assembling the at least one user-interface component into rendering primitives and transmitting the rendering primitives to the client for rendering and display by the application, or transmitting templates associated with the at least one user-interface component to the client for assembly, rendering and display by the application.
- information regarding the client comprises: client network bandwidth; client geo-location; client user role; client user context; and client application feature.
- assembling the at least one user- interface component into rendering primitives and transmitting the rendering primitives to the client for rendering and display by the application is done in response to determining, based on the at least one component rule, that the at least one user-interface component should be assembled locally by the system.
- transmitting templates associated with the at least one user-interface component to the client for assembly, rendering and display by the application is done in response to determining, based on the at least one component rule, that the at least one user-interface component should be assembled remotely by the application.
- the computer implemented method further comprises: intermittently collecting and storing additional information regarding the client from the client, the additional information regarding the client reflecting changed operating conditions at the client; and retrieving at least one additional component rule from the component rule database based at least in part on the additional information regarding the client, wherein the at least one additional component rule causes greater or fewer user- interface components to be rendered and displayed by the client in response to the changed operating conditions.
- information regarding the client further comprises information regarding user-interface components of the application executing on the client the user of the client has interacted with.
- the computer implemented method further comprises: identifying at least one client cluster comprising a plurality of clients each having substantially similar operating conditions as reflected in the information regarding the client provided by each.
- the computer implemented method further comprises: detecting whether an additional client device is a member of the at least one client cluster and, in response to the client being a member of the at least one client cluster, selecting at least one additional component rule from the component rule database, the at least one additional component rule dictating selection of an additional user- interface component different from the at least one user-interface component.
- a computer program product comprising a computer readable memory device having computer program logic recorded thereon that when executed by at least one processor of a computing device causes the at least one processor to perform operations is described herein.
- the operations include: collecting and storing information regarding a client device upon which an instance of an application is executing; based at least in part on the information regarding a client device, retrieving at least one component rule from a component rule database; selecting user-interface components to include in or to omit from the user-interface of the application, and based on the selected user-interface components, retrieving at least one user-interface component from a user-interface component database; and determining based on the at least one component rule whether the at least one user- interface component should be assembled locally by the system, or assembled remotely by the application executing on the client device; in response to determining the at least one user-interface component should be assembled locally, assembling the at least one user- interface component into rendering primitives, and transmitting the rendering primitives to the client device for rendering and display by the
- information regarding client device comprises: client network bandwidth; client geo-location; client user role; client user context; and client application feature.
- the operations further comprise: intermittently collecting and storing additional information regarding a client from the client, the additional information regarding a client reflecting changed operating conditions at the client; and retrieving at least one additional component rule from the component rule database based at least in part on the additional information regarding a client, wherein the at least one additional component rule causes greater or fewer user- interface components to be rendered and displayed by the client in response to the changed operating conditions.
- information regarding the client further comprises information regarding user-interface components of the application executing on the client the user of the client has interacted with.
- the operations further comprise: identifying at least one client cluster comprising a plurality of clients each having substantially similar operating conditions as reflected in the information regarding a client provided by each.
- the operations further comprise: detecting whether an additional client device is a member of the at least one client cluster and, in response to the client being a member of the at least one client cluster, selecting at least one additional component rule from the component rule database, the at least one additional component rule dictating selection of an additional user-interface component different from the at least one user-interface component.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/022,279 US11080068B2 (en) | 2018-06-28 | 2018-06-28 | Adaptive user-interface assembling and rendering |
| PCT/US2019/038352 WO2020005723A1 (en) | 2018-06-28 | 2019-06-21 | Adaptive user-interface assembling and rendering |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP3815342A1 true EP3815342A1 (en) | 2021-05-05 |
| EP3815342B1 EP3815342B1 (en) | 2023-09-06 |
Family
ID=67254008
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP19739479.4A Active EP3815342B1 (en) | 2018-06-28 | 2019-06-21 | Adaptive user-interface assembling and rendering |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11080068B2 (en) |
| EP (1) | EP3815342B1 (en) |
| WO (1) | WO2020005723A1 (en) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11514232B2 (en) * | 2018-10-04 | 2022-11-29 | Oracle International Corporation | Multi dimensional rules-based dynamic layouts |
| US11010536B2 (en) * | 2018-12-20 | 2021-05-18 | AINS, Inc. | Systems and methods for dynamic web user interface generation |
| WO2020227310A1 (en) * | 2019-05-06 | 2020-11-12 | Google Llc | Generating and updating voice-based software applications using application templates |
| CN111767051B (en) * | 2020-06-30 | 2024-04-16 | 深圳赛安特技术服务有限公司 | A web page rendering method and device |
| CN112527428B (en) * | 2020-11-30 | 2024-11-29 | 北京嘀嘀无限科技发展有限公司 | Interface rendering method and device, electronic equipment and storage medium |
| CN112732491B (en) * | 2021-01-22 | 2024-03-12 | 中国人民财产保险股份有限公司 | Data processing system and business data processing method based on data processing system |
| CN114661287B (en) * | 2022-03-14 | 2025-11-04 | 北京百度网讯科技有限公司 | Component-based rendering methods, devices, electronic equipment, storage media, and products |
| CN116860247B (en) * | 2023-08-31 | 2023-11-21 | 江西省信息中心(江西省电子政务网络管理中心 江西省信用中心 江西省大数据中心) | User interface generation method and device, storage medium and electronic equipment |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7353234B2 (en) | 1998-12-30 | 2008-04-01 | Aol Llc, A Delaware Limited Liability Company | Customized user interface based on user record information |
| AU2582401A (en) | 1999-12-17 | 2001-06-25 | Dorado Network Systems Corporation | Purpose-based adaptive rendering |
| US20070300185A1 (en) | 2006-06-27 | 2007-12-27 | Microsoft Corporation | Activity-centric adaptive user interface |
| US8713144B2 (en) * | 2007-09-14 | 2014-04-29 | Ricoh Co., Ltd. | Workflow-enabled client |
| US20120137235A1 (en) | 2010-11-29 | 2012-05-31 | Sabarish T S | Dynamic user interface generation |
| US10303526B2 (en) | 2011-03-08 | 2019-05-28 | Facebook, Inc. | Device specific handling of user interface components |
| US8884974B2 (en) | 2011-08-12 | 2014-11-11 | Microsoft Corporation | Managing multiple GPU-based rendering contexts |
| US10019962B2 (en) | 2011-08-17 | 2018-07-10 | Microsoft Technology Licensing, Llc | Context adaptive user interface for augmented reality display |
| US9996322B2 (en) | 2012-12-22 | 2018-06-12 | Oracle International Corporation | Dynamically generated user interface |
| US9235429B1 (en) | 2013-07-17 | 2016-01-12 | Amazon Technologies, Inc. | Dynamic user interface rendering |
| US9565224B1 (en) * | 2013-12-31 | 2017-02-07 | Google Inc. | Methods, systems, and media for presenting a customized user interface based on user actions |
-
2018
- 2018-06-28 US US16/022,279 patent/US11080068B2/en active Active
-
2019
- 2019-06-21 EP EP19739479.4A patent/EP3815342B1/en active Active
- 2019-06-21 WO PCT/US2019/038352 patent/WO2020005723A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US11080068B2 (en) | 2021-08-03 |
| WO2020005723A1 (en) | 2020-01-02 |
| US20200004560A1 (en) | 2020-01-02 |
| EP3815342B1 (en) | 2023-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3815342B1 (en) | Adaptive user-interface assembling and rendering | |
| US12205058B2 (en) | Systems and methods for identifying processes for robotic automation and building models therefor | |
| US11886464B1 (en) | Triage model in service monitoring system | |
| US10942960B2 (en) | Automatic triage model execution in machine data driven monitoring automation apparatus with visualization | |
| US11385871B2 (en) | Adjusting a user interface layout based on user usage patterns | |
| JP5243779B2 (en) | System and method for adaptive spell checking | |
| CN108027833B (en) | Methods for creating structured data language queries | |
| US9098384B2 (en) | Runtime connection suggestion engine for portal content | |
| US10664498B2 (en) | Interconnected graph structured database for identifying and remediating conflicts in resource deployment | |
| CN112559522A (en) | Data storage method and device, query method, electronic device and readable medium | |
| CN111339098A (en) | Authority management method, data query method and device | |
| EP3062245A1 (en) | Dynamic modular ontology | |
| US20170235713A1 (en) | System and method for self-learning real-time validation of data | |
| US9170780B2 (en) | Processing changed application metadata based on relevance | |
| US20240086409A1 (en) | Techniques for pre-assignment validation of data managed by a data processing system | |
| US20260058984A1 (en) | Automated vulnerability exception process | |
| CN117170655A (en) | Metadata processing method and device, data processing equipment and storage medium | |
| US20250307041A1 (en) | Automation rule creation for collaboration platforms | |
| US10831511B2 (en) | Customized application programming interface presentation | |
| US10922366B2 (en) | Self-adaptive web crawling and text extraction | |
| US9460139B2 (en) | Distributed storage system with pluggable query processing | |
| CN115803729A (en) | Direct data loading of records generated by middleware | |
| US20260030545A1 (en) | Using synthetic data to supplement small datasets | |
| US12423329B2 (en) | Cluster based node assignment in multi-dimensional feature space | |
| US20260024107A1 (en) | Natural language user interface for an automated loyalty program designer framework |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20201118 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC |
|
| REG | Reference to a national code |
Ref country code: DE Free format text: PREVIOUS MAIN CLASS: H04L0029080000 Ref country code: DE Ref legal event code: R079 Ref document number: 602019036798 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: H04L0029080000 Ipc: H04L0067100000 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 67/306 20220101ALI20230125BHEP Ipc: H04L 67/10 20220101AFI20230125BHEP |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
| GRAJ | Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR1 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| INTG | Intention to grant announced |
Effective date: 20230306 |
|
| INTC | Intention to grant announced (deleted) | ||
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
| INTG | Intention to grant announced |
Effective date: 20230509 |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230607 |
|
| GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
| REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602019036798 Country of ref document: DE |
|
| REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG9D |
|
| REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20231207 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20231206 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20231207 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1610055 Country of ref document: AT Kind code of ref document: T Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240106 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240106 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240108 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602019036798 Country of ref document: DE |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240522 Year of fee payment: 6 |
|
| 26N | No opposition filed |
Effective date: 20240607 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20230906 |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20240621 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20240621 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20240630 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20240630 |
|
| REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20240630 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20250520 Year of fee payment: 7 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20250520 Year of fee payment: 7 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20190621 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20190621 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20250630 |