CN106233250A - 用于定制应用的动态运行时间生成的方法和系统 - Google Patents

用于定制应用的动态运行时间生成的方法和系统 Download PDF

Info

Publication number
CN106233250A
CN106233250A CN201580013039.XA CN201580013039A CN106233250A CN 106233250 A CN106233250 A CN 106233250A CN 201580013039 A CN201580013039 A CN 201580013039A CN 106233250 A CN106233250 A CN 106233250A
Authority
CN
China
Prior art keywords
group
code
application
definition file
assembly
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
Application number
CN201580013039.XA
Other languages
English (en)
Inventor
H.托尔格曼
B.哈尔斯特
O.昂特埃克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN106233250A publication Critical patent/CN106233250A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

一种用户设备(UE)装置,用于应用的程序化运行时间生成。UE装置接收UI定义文件,其包含指示应用的部分的可视外观属性、是要呈现在应用内的UI构建块的一组组件以及可由组件执行的一组行为的定义,其中定义包含属性值对。UE装置接收包含用于实现包含由UE定义文件指示的组件的组件的代码的一组组件定义文件,并且在开始执行应用之后,UE装置解析UI定义文件以标识可视外观属性、该组组件和该组行为;以及基于解析的UI定义文件和该组组件定义文件来动态例示该组组件以创建应用。

Description

用于定制应用的动态运行时间生成的方法和系统
相关申请的交叉引用
此申请要求2014年3月11日提交的美国临时申请No.61/951,514的利益,该申请通过引用结合于此。
技术领域
本发明的实施例涉及应用生成领域;并且更确切地说,涉及通过使用参数化代码的应用动态运行时间生成。
背景技术
IPTV是利用基于分组的网络基础设施(例如宽带因特网接入网)向客户递送视频内容(通常作为通过传统空中电视、卫星电视和有线电视进行递送的备选)的多媒体递送平台。典型的IPTV解决方案包含用于接收电视内容的头端视频获取设备、包含服务器平台和关联的IPTV中间件的中间IPTV设施(例如爱立信Mediaroom™)、用于在IPTV系统的各种节点之间的内容分布的连网装置(例如路由器、交换机)、实现高带宽传输传输到客户驻地或从客户驻地高带宽传输的接入节点(例如超高比特率数字订户线(VDSL或VHDSL)或无源光网络(PON)设备)以及管理IPTV系统和/或提供最终用户IPTV应用的运营商提供的应用。
IPTV服务的消费者(也称为用户、最终用户、观众、客户或订户)利用用户设备(UE)装置(诸如机顶盒(STB)、平板电脑、智能电话、膝上型计算机、个人计算机等)上的运营商提供的应用的用户界面来访问IPTV内容。然而,这些应用难以创建,因为它们经常是极其复杂的系统,包含许多抽象层,并且依赖于定制编码基数。另外,运营商还期望为不同用户或装置提供定制应用用户界面(UI),并且已经证明了,生成并维护此类定制UI都是极其困难的。
web应用的UI的外观和行为通常是预先定义的。定义它的代码—CSS,对于大部分—是固定过去编译时间的,并且通常由web应用静态参考。
尽管一些应用可为了应用定制目的准许“磨皮”,但许多应用(例如大公司的那些应用)要求远远超出“磨皮”可提供的大量定制,因为存在能够控制用户界面元素应该如何看和/或行动的需要—可能完全不同。为了满足此类要求,一些应用开发人员已经转向挖掘编码基数,并且(静态)应用此类定制。这通常要求编码基数的专业知识,并且可导致创建许多非故意的漏洞。因而,存在对于用于修改允许取决于开发人员偏好而无需要求编码基数改变来创建广泛不同UI体验的复杂web应用的解决方案的需要。
层叠样式表(CSS)预处理器已经是近来用于更容易地构建可定制的基于丰富web技术的应用的一种方法。然而,CSS预处理器通常设计成作为产生静态CSS文件的构建步骤的一部分运行,静态CSS文件然后可由浏览器直接使用,而无需附加定制。此外,一些CSS预处理器在客户端侧在一个计算上开销高的步骤中执行所有解析、变换和变量替换,由此使性能和用户体验降级了。因而,仍存在对于以显著更小的内存占用(footprint)生成并维护web应用的每用户(或者每装置)样式定制使得它可能适合于可由web服务器或web浏览器在要求时生成的高度定制的CSS的需要。
发明内容
在本发明的实施例中,公开了一种在服务器端站中用于有效提供用于应用的定制用户界面的方法。所述方法包含将一组一个或多个增广样式(augmented style)规则变换成样式生成代码。该组增广样式代码规则包含样式句法和包含一组一个或多个变量的一组一个或多个表达式(expression)两者。该组增广样式代码规则根据样式句法的样式标准不是有效的,并且样式生成代码当由一组一个或多个调用使用一组一个或多个输入变量执行时根据样式标准生成一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量。所述方法进一步包含向用户的用户设备(UE)装置传送样式生成代码。在一些实施例中,样式生成代码包括由该组调用使用输入变量作为参数执行的JavaScript代码。在一些实施例中,样式标准是层叠样式表(CSS)标准,并且在一些实施例中,样式生成代码和/或该组调用包括JavaScript代码。在一些实施例中,样式生成代码的执行作为构建步骤的一部分发生,构建步骤包含生成多组有效样式规则以匹配相同数量的已知组输入变量。在包含构建步骤的这些实施例中的一些实施例中,所述方法进一步包含:使用计算机可读介质存储多组有效样式规则,以及向多个用户的多个UE装置传送多组样式规则。
根据本发明的实施例,描述了非暂时性计算机可读存储介质。非暂时性计算机可读存储介质存储指令,所述指令当由计算装置的一组一个或多个处理器执行时使计算装置通过执行一组操作来有效地提供用于应用的定制用户界面。该组操作包含将一组一个或多个增广样式规则变换成样式生成代码。该组增广样式代码规则包含样式句法和包含一组一个或多个变量的一组一个或多个表达式两者。该组增广样式代码规则根据样式句法的样式标准不是有效的,并且样式生成代码当由一组一个或多个调用使用一组一个或多个输入变量执行时根据样式标准生成一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量。该组操作进一步包含向用户的UE装置传送样式生成代码。在一些实施例中,样式标准是层叠样式表(CSS)标准,并且在一些实施例中,样式生成代码和/或该组调用包括JavaScript代码。在一些实施例中,样式生成代码的执行在要求时发生。在一些实施例中,样式生成代码的执行作为构建步骤的一部分发生,构建步骤包含生成多组有效样式规则以匹配相同数量的已知组输入变量。在包含构建步骤的这些实施例中的一些实施例中,该组操作进一步包含:使用非暂时性计算机可读存储介质或另一非暂时性计算机可读存储介质存储多组有效样式规则,并且还向多个用户的多个UE装置传送多组样式规则。
在本发明的实施例中,公开了一种在服务器端站中用于有效提供用于应用的定制用户界面的方法。所述方法包含将一组一个或多个增广样式规则变换成样式生成代码。该组增广样式代码规则包含样式句法和包含一组一个或多个变量的一组一个或多个表达式两者。该组增广样式代码规则根据样式句法的样式标准不是有效的,并且样式生成代码当由一组一个或多个调用使用一组一个或多个输入变量执行时根据样式标准生成一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量。该方法进一步包含:使用该组输入变量来执行样式生成代码以生成该组有效样式规则。在一些实施例中,样式生成代码包括由该组调用使用输入变量作为参数执行的JavaScript代码。所述方法进一步包含:向用户的用户设备(UE)装置传送该组有效样式规则,其使定制用户界面被呈现给用户。在一些实施例中,方法进一步包含:由服务器端站用另一组一个或多个输入变量执行样式生成代码以生成另一组一个或多个有效样式规则,并且然后向另一用户的另一UE装置传送另一组有效样式规则,其使得向另一用户呈现另一定制用户界面,其不同于呈现给该用户的定制用户界面。在一些实施例中,样式标准是层叠样式表(CSS)标准,并且在一些实施例中,样式生成代码和/或该组调用包括JavaScript代码。在一些实施例中,样式生成代码的执行响应于从UE装置接收到对于该组有效样式规则的请求在要求时发生。在一些实施例中,样式生成代码的执行作为构建步骤的一部分发生,构建步骤包含生成多组有效样式规则以匹配相同数量的已知组输入变量。在包含构建步骤的这些实施例中的一些实施例中,所述方法进一步包含:使用计算机可读介质存储多组有效样式规则,以及向多个用户的多个UE装置传送多组样式规则。
根据本发明的实施例,描述了非暂时性计算机可读存储介质。非暂时性计算机可读存储介质存储指令,所述指令当由计算装置的一组一个或多个处理器执行时使计算装置通过执行一组操作来有效地提供用于应用的定制用户界面。该组操作包含将一组一个或多个增广样式规则变换成样式生成代码。该组增广样式代码规则包含样式句法和包含一组一个或多个变量的一组一个或多个表达式两者。该组增广样式代码规则根据样式句法的样式标准不是有效的,并且样式生成代码当由一组一个或多个调用使用一组一个或多个输入变量执行时根据样式标准生成一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量。该组操作进一步包含:使用该组输入变量来执行样式生成代码以生成该组有效样式规则。在一些实施例中,样式生成代码包括由该组调用使用输入变量作为参数执行的JavaScript代码。该组操作进一步包含:向用户的用户设备(UE)装置传送该组有效样式规则,其使定制用户界面被呈现给用户。在一些实施例中,该组操作进一步包含:由服务器端站用另一组一个或多个输入变量执行样式生成代码以生成另一组一个或多个有效样式规则,并且然后向另一用户的另一UE装置传送另一组有效样式规则,其使得向另一用户呈现另一定制用户界面,其不同于呈现给该用户的定制用户界面。在一些实施例中,样式标准是层叠样式表(CSS)标准,并且在一些实施例中,样式生成代码和/或该组调用包括JavaScript代码。在一些实施例中,样式生成代码的执行响应于从UE装置接收到对于该组有效样式规则的请求在要求时发生。在一些实施例中,样式生成代码的执行作为构建步骤的一部分发生,构建步骤包含生成多组有效样式规则以匹配相同数量的已知组输入变量。在包含构建步骤的这些实施例中的一些实施例中,该组操作进一步包含:使用非暂时性计算机可读存储介质或另一非暂时性计算机可读存储介质存储多组有效样式规则,并且还向多个用户的多个UE装置传送多组样式规则。
根据本发明的实施例,描述了一种在用户设备(UE)装置中用于生成用于应用的定制用户界面的方法。该方法包含:在UE的一组网络接口处从服务器端站接收样式生成代码。样式生成代码当由一组一个或多个调用使用一组一个或多个输入变量执行时生成样式标准的一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量,并将有效样式规则动态注入到应用中。该方法还包含:使得根据该组调用向用户呈现作为执行样式生成代码的结果的定制用户界面。用户界面包含根据该组有效样式规则定样式的一组一个或多个用户界面元素。在一些实施例中,该方法进一步包含:从服务器端站接收使用该组输入变量的该组调用。在一些实施例中,样式标准是层叠样式表(CSS)标准,并且在一些实施例中,样式生成代码和/或该组调用包括JavaScript代码。
根据本发明的实施例,描述了非暂时性计算机可读存储介质。非暂时性计算机可读存储介质存储指令,所述指令当由计算装置的一组一个或多个处理器执行时使计算装置通过执行一组操作来生成用于应用的定制用户界面。该组操作包含:在计算装置的一组网络接口处从服务器终端站接收样式生成代码。样式生成代码当由一组一个或多个调用使用一组一个或多个输入变量执行时生成样式标准的一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量,并将有效样式规则动态注入到应用中。该组操作还包含:使得根据该组调用向用户呈现作为执行样式生成代码的结果的定制用户界面。用户界面包含根据该组有效样式规则定样式的一组一个或多个用户界面元素。在一些实施例中,该组操作进一步包含:从服务器端站接收使用该组输入变量的该组调用。在一些实施例中,样式标准是层叠样式表(CSS)标准,并且在一些实施例中,样式生成代码和/或该组调用包括JavaScript代码。
根据本发明的实施例,描述了一种在用户设备(UE)装置中用于程序化运行时间应用创建的方法。该方法包含接收单个用户界面(UI)定义文件。UI定义文件指示应用的部分的可视外观属性、要呈现在应用内的一组一个或多个组件以及可由组件执行的一组行为的多个定义。多个定义包含多个属性值对。该方法进一步包含:接收包含用于实现包含由UI定义文件指示的所述组组件的多个组件的代码的一组一个或多个组件定义文件。所述方法进一步包含:在开始执行所述应用之后,解析UI定义文件以标识可视外观属性、该组组件以及该组行为。所述方法进一步包含:基于解析的UI定义文件和该组组件定义文件来动态例示该组组件以创建所述应用。
根据本发明的实施例,描述了非暂时性计算机可读存储介质。非暂时性计算机可读存储介质存储指令,所述指令当由计算装置的一组一个或多个处理器执行时使计算装置通过执行一组操作在运行时间以编程方式生成应用。该组操作包含接收单个用户界面(UI)定义文件。UI定义文件指示应用的部分的可视外观属性、要呈现在应用内的一组一个或多个组件以及可由组件执行的一组行为的多个定义。多个定义包含多个属性值对。该组操作还包含:接收包含用于实现包含由UI定义文件指示的所述组组件的多个组件的代码的一组一个或多个组件定义文件。该组操作进一步包含:在开始执行所述应用之后,解析UI定义文件以标识可视外观属性、该组组件以及该组行为。该组操作进一步包含:基于解析的UI定义文件和该组组件定义文件来动态例示该组组件以创建所述应用。
因而,本发明的实施例实现了用于web应用的用户界面的动态运行时间生成。此类实施例给应用开发人员提供了容易地构建、测试和开发web定制应用(包含定制的可视外观、定制的组件/结构和定制的行为)的能力。在一些实施例中,应用开发人员可通过修改单个UI定义文件内的表达性(expressive)人类可读定义来构造定制应用。这个UI定义文件可由UE装置灵活使用,以在运行时间动态生成应用,或者可由服务器端站执行以生成UE装置的准备好使用的应用代码。本发明的实施例允许应用开发人员通过依赖于一组共享的组件定义简单且容易地修改应用的外观和功能性来创建、保持和修改这些定制的应用。另外,在本发明的实施例中,UI定义文件抽象出呈现和逻辑代码(例如超文本标记语言(HTML)代码、层叠样式表(CSS)规则、JavaScript代码),允许应用开发人员反而聚焦在生成应用本身,而不是应用后面的代码和概念(例如文档对象模型(DOM))。本发明的实施例使用参数化样式规则提供了这些好处,参数化规则可使用有力的和表达性调用容易地最终定下成用于多环境和/或用户的标准CSS规则。在一些实施例中,或者由渲染(render)用户的应用的UE装置或者由集中式服务器可基于系统的具体需要灵活地执行最终定下的标准CSS规则的生成。在一些实施例中,本文描述的方法、装备和系统可用于生成各种基于web技术的应用,诸如由IPTV系统的用户使用的应用。
附图说明
通过参考用于图示本发明实施例的以下描述和附图可最好地理解本发明。在附图中:
图1图示了根据本发明实施例的用于应用的用户界面的动态运行时间生成的系统中的阶段;
图2图示了根据本发明的实施例在用户设备装置中用于基于UI定义文件在运行时间动态生成应用的流程;
图3图示了根据本发明的实施例包含利用基于样式规则参数化的动态运行时间应用生成的IPTV系统的系统的框图;
图4图示了根据本发明实施例的增广样式代码和样式生成代码;
图5A图示了根据本发明实施例的样式生成调用代码,其当用于调用图4的样式生成代码时,得到图示组有效样式规则和生成的定制用户界面;
图5B图示了根据本发明实施例的附加样式生成调用代码,其当用于调用图4的样式生成代码时,得到图示的附加组有效样式规则和正在生成的附加定制用户界面;
图6图示了根据本发明实施例在服务器端站中用于利用参数化样式规则允许应用的用户界面的动态运行时间生成的流程;
图7图示了根据本发明一些实施例在服务器端站中用于利用参数化样式规则允许应用的用户界面的动态运行时间生成的流程;以及
图8图示了根据本发明实施例在用户设备装置中用于利用由服务器端站生成的样式生成代码进行应用用户界面的动态运行时间生成的流程。
具体实施方式
在如下描述中,阐述了众多特定细节。然而,要理解到,本发明的实施例可以在没有这些特定细节的情况下实施。在其它实例中,众所周知的电路、结构和技术尚未详细示出,以免模糊了对此描述的理解。本领域普通技术人员用所包含的描述将能够实现适当功能性,而无需过多实验。
带括号的文本以及具有虚线边框(例如大破折号、小破折号、点划线等)的框在本文用于图示向本发明实施例添加附加特征的可选操作。然而,此类记号不应该被视为意味着这些是唯一选项或可选的操作,和/或具有实线边框的框在本发明的某些实施例中不是可选的。
在说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可包含具体特征、结构或特性,但每一个实施例可能不一定都包含该具体特征、结构或特性。而且,此类短语不一定是指同一实施例。进一步说,当具体特征、结构或特性结合实施例进行描述时,认为它在本领域技术人员的知识范围内,以结合其它实施例实现此类特征、结构或特性,不管是否明确描述了。
在以下说明书和权利要求书中,可使用术语“耦合”和“连接”,连同它们的派生词。应该理解,这些术语不打算作为彼此的同义词。“耦合”用于指示两个或更多元件彼此协同操作或交互,它们可以或者可以不彼此直接物理接触或电接触。“连接”用于指示在彼此耦合的两个或更多元件之间建立通信。
电子装置使用机器可读媒体(也称为计算机可读媒体)诸如机器可读存储媒体(例如磁盘、光盘、只读存储器(ROM)、闪存装置、相变存储器)和机器可读传输媒体(也称为载体)(例如电、光、无线电、声学或其它形式的传播信号—诸如载波、红外信号),存储和传输(在内部和/或通过网络与其它电子装置)代码(其由软件指令组成并且其有时被称为计算机可读代码或计算机程序)和/或数据。从而,电子装置(例如计算机)包含硬件和软件,诸如一组一个或多个处理器,耦合到一个或多个机器可读存储媒体以存储用于在该组处理器上执行的代码和/或存储数据。比如,电子装置可包含含有代码的非易失性存储器,由于非易失性存储器可永久保存代码,甚至当电子装置关闭时,并且当电子装置开启时,要由那个电子装置的一个或多个处理器执行的代码的部分从较慢的非易失性存储器拷贝到那个电子装置的易失性存储器(例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))。典型的电子装置还包含一组或一个或多个物理网络接口以与其它电子装置建立网络连接(或使用传播信号传送和/或接收代码和/或数据)。本发明实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
本文描述了用于定制用户界面和应用的动态运行时间生成的方法、装备和系统。本发明的实施例引入了框架以便容易地定义和构造应用的用户界面,不需要应用的底层代码的专门知识。在本发明的实施例中,应用开发人员(例如IPTV运营商)可通过修改单个UI定义文件内的表达性人类可读定义来构造定制应用。这个UI定义文件可由UE装置灵活使用,以在运行时间动态生成应用,或者可由服务器端站用于构造准备好使用的应用代码(例如HTML、CSS和/或JavaScript代码)。应用开发人员通过还构造备选UI定义文件(包含将引起随后生成的应用的外观、结构和行为有差别的不同定义)可快速且容易地构造应用变体。例如,对于准许各种用户访问的不同类型访问(例如,允许一些用户访问某种类型内容,并且从而UI定义文件将包含用于访问那个内容的定制UI元素的定义)、对于不同类型的UE装置(例如,对于较大或较小的显示器)、对于用户使用的不同类型操作系统或支持应用等,可生成不同UI定义文件。
在一个实施例中,UI定义文件与提供可在运行时间例示的组件的定义的一组组件定义文件一起使用。每一个组件定义都可包含一组默认可视样式和/或行为,它们可通过相应UI定义文件中的定义进行改写/改变。
在一些实施例中,系统可配置用于UE装置访问UI定义文件连同该组组件定义文件,以在运行时间动态生成应用。在一些实施例中,这个动态生成包含将HTML元素、CSS规则和/或JavaScript代码动态注入到应用的基于web的显示中。
在一些实施例中,系统可配置用于服务器端站访问UI定义文件连同该组组件定义文件,以生成应用。在实施例中,这个生成包含生成应用在用户的UE装置执行所必需的HTML、CSS和/或JavaScript。在另一实施例中,此生成包含基于UI定义文件和该组组件定义文件来创建样式生成代码。样式生成代码当由一组调用使用一组一个或多个输入变量执行时生成样式标准的一组有效样式规则,并将有效样式规则动态注入到应用中。
从而,本发明的实施例允许应用开发人员通过依赖于一组共享的组件定义简单且容易地修改应用的外观和功能性来创建、保持和修改定制的应用。另外,在本发明的实施例中,UI定义文件抽象出呈现和逻辑代码(例如超文本标记语言(HTML)代码、层叠样式表(CSS)规则、JavaScript代码),允许应用开发人员反而聚焦在生成应用本身,而不是应用后面的代码和概念(例如文档对象模型(DOM))。本发明的一些实施例使用参数化样式规则提供了这些好处,参数化规则可通过使用有力的和表达性调用容易地最终定下成用于多环境和/或用户的标准CSS规则。在一些实施例中,或者由渲染用户的应用的UE装置或者由集中式服务器可基于系统的具体需要灵活地执行最终定下的标准CSS规则的生成。
在一些实施例中,本文描述的方法、装备和系统可用于生成各种基于web技术的应用,诸如由IPTV系统用户使用的应用。在一些IPTV系统中,用户与应用代码(例如在STB、平板电脑、智能电话、个人计算机等上执行的应用)交互以便访问IPTV内容。这些应用通过通常最初由IPTV技术提供商创建,经常被IPTV运营商重度定制。使用本发明的实施例,IPTV运营商需要仅与一个或多个UI定义文件交互以生成用于其用户的一个或多个定制应用。
图1图示了根据本发明实施例在系统100中用于在定义文件的控制下动态运行时间生成应用的阶段。系统100包含三个分开但互相关的阶段:应用创建和执行102阶段、应用编辑104阶段以及组件生命周期管理108阶段。
应用编辑104阶段由运营商/应用开发人员执行,其可利用基于文本或图形的界面进入“设计模式”124,以创建或更新UI定义文件。在实施例中,这涉及启动另一UI定义编辑器网页显示样本UI定义文件,其可被编辑。运营商然后可开始作为半连续过程126进行编辑,其中交互编辑106发生在编辑的结果/效果可被表示给运营商的情况下。这个交互编辑106可包含组件选择128(例如选择包含在应用的定制版本中的那些组件)、定位130(例如定义组件要放置在UI上的哪里)、参数编辑(例如改变或设置影响其显示或使用的应用的值,诸如颜色、大小、文本等)和/或组件例示134(例如加载运营商查看组件的当前定义版本和/或与之交互的定义组件)中的一个或多个。在UI定义文件被修改时或之后,它将被保存到服务器端站或UE装置120。UE装置是由用户用于经由向媒体系统(诸如IPTV系统)提供访问的应用访问视频资产的电子装置。UE装置可以是机顶盒(STB)、智能电话、平板、膝上型或台式计算机、可穿戴计算装置等。
应用创建和执行102阶段包含从服务器端站或客户端(即UE装置)120本身获取114UI定义文件122。在本发明的实施例中,UI定义文件包含Webapp定义语言(“WADL”)的指令。WADL是准许描述web应用组件装配、它们的连接(例如行为和交互)以及用于自动web应用生成的定制器特定参数集的语言。在实施例中,WADL充当程序化web应用创建的较大系统的“外部定义”部分。在实施例中,WADL混叠在JSON上,并且从而作为XMLHttpRequest (XHR)有效载荷容易地传输,容易地机写和机读以及人工可写和人工可读。WADL使用类型定义进一步准许内部一致性校验以及对内部可计算类型的有效映射。另外,WADL使用变量准许对一个定义的共享引用,以及人工写定义的增加的舒适度,并且JavaScript直通准许以最小的“开销”的大程度表现力(对于语言的实现者或学习者)。
UI定义文件可包含许多区段,详述了要包含在应用中的组件(即,web应用的结构)、应用的外观以及应用内组件的行为。在实施例中,UI定义文件还包含版本标识符、一组“应用范围的”默认属性值和一组组件声明中的一项或多项。示例UI定义文件的一部分在下面被提供为表A:
表A-示例UI定义文件
返回到图1,应用创建和执行102阶段除了使用UI定义文件122,还包含解析UI定义文件以标识所需要的组件,并用框架注册这些组件116。在这一点,组件生命周期管理108阶段是在118开始。
对于可由UI定义文件136定义的每个组件和每一个子组件,组件生命周期管理阶段108阶段包含组件例示子阶段112,其在实施例中可当应用开始启动时(例如当浏览器第一次加载应用页面时)开始。在这个组件例示子阶段112中,默认属性值(如由定义的组件定义文件所提供的,其还可包含代码—HTML和/或JavaScript以提供组件功能性)将基于一组规则与来自UI定义文件的定义的属性值调和(或“混合”)。在一些实施例中,UI定义文件的组件特定属性值将优先于UI定义文件的“默认”部分的冲突属性值,并且UI定义文件的“默认”部分的属性值将优先于由组件定义文件设置的冲突属性值;然而,其它优先规则可取决于具体配置实例的期望来定义。
用确定的“混合”组件默认,组件例示子阶段112接下来执行CSS参数映射140以向放在页面中的组件应用样式规则,而没有创建冲突。接下来,样式规则(例如CSS)被注入到该页面。本文在后面将更详细描述CSS参数映射。
组件例示子阶段112还包含将UI定义参数(例如与组件行为相关的)混合144到默认组件参数中。这也可根据优先规则发生;在实施例中,UI定义参数优先于来自组件定义文件的默认组件参数。
接下来,(基于来自内容定义文件的代码)获得146用于必要组件的必要参数化显示代码(例如HTML),并将必要的HTML注入到应用中。类似地,搜集参数化脚本代码组件定义150,并且分配支持组件和UI的所有必要脚本代码(例如JavaScript)152。从而,每个生成的组件都作为框架中的活性(live)组件参与154。
组件生命周期管理阶段108阶段在实施例中还可包含组件破坏子阶段110,其必要时工作以消除应用组件。例如,如果一个组件的行为是移除另一组件,则移除该另一组件可通过从活动使用中移除任何组件特定样式规则(例如CSS)156,从活动使用中移除158组件的任何显示代码(例如HTML)并且移除160为该组件创建的任何脚本代码(例如JavaScript)对象。
图2图示了根据本发明的实施例在用户设备装置中用于基于UI定义文件在运行时间动态生成应用的流程200。这个流程图和其它流程图的操作将参考其它图解的示范实施例进行描述。然而,应该理解,流程图的操作可由本发明的实施例执行,而不是参考这些其它图解论述的实施例执行,并且参考这些其它图解论述的本发明实施例可执行与参考流程图论述的操作不同的操作。
流程图200包含:在框205接收由运营商生成的用户界面(UI)定义文件。UI定义文件包含指示应用的部分的可视外观属性、在应用内显现的一组组件以及可由组件执行的一组行为的多个定义。可选地,跨网络210从服务器端站的UI定义文件的这个接收发生在框210,并且可选地,UI定义文件的这个接收作为应用包的一部分发生在框215。
在一些实施例中,运营商通过基于简单文本的界面、拖和放界面(用于将组件添加到UI中)或二者的组合来生成UI定义文件。
流程200还包含:在框220,接收包含用于实现多个组件的代码的一组一个或多个组件定义文件。多个组件包含由UI定义文件指示的该组组件(即,所有该组组件,可能还有附加组件,在该组组件定义文件中具有定义)。
在框225开始启动应用之后,在框230读取和/或解析UI定义文件以标识可视外观属性、该组组件以及该组行为。可选地,在框230的解析包含在框235用应用的组件框架注册标识的该组组件作为注册表。
流程200还包含:在框240,基于UI定义文件和该组组件定义文件动态例示该组组件。在实施例中,这包含:在框245,基于在UI定义文件中定义的标识参数,动态生成表示该组组件的HTML、CSS和JavaScript对象。
在实施例中,此动态例示由UI生成模块基于解析的UI定义文件(其定义哪些组件要例示、何时例示它们以及用哪些参数)和注册表执行。在实施例中,组件可具有固有默认参数、在UI定义文件中所定义的每个组件的默认参数(在其“defaults”区段—见上面的表A)以及在具体例示级上按照UI定义文件定义的参数(在其“components”区段)。组件参数(如在UI定义文件中所定义的,并且作为与UI组件类关联的默认)通知动态HTML和CSS生成,它们是组件例示的一部分。它们还通知表示组件框架内组件的JavaScript对象的配置。在实施例中,这个UI组件框架提供原始(尚未配置的)组件,并管理组件的生命周期(以及隐含的可视性)。在一些实施例中,部署平台是基于任何web的渲染应用,并且在实施例中,部署平台是HTML5,并且从而支持能运行HTML5的任何装置,包含但不限于智能电话、平板电脑和传统计算机。
因而,本发明的实施例准许在UI定义文件的控制下在UI构建块(即组件)的有限集以及它们关联的配置参数的有限集的极限内的web应用流形(manifold)的运行时间构造。
图3图示了根据本发明的实施例包含利用基于参数化代码的动态运行时间应用生成的IPTV系统306的系统300的框图。系统300包含一个或多个内容提供商310A-310M,它们向IPTV系统306(或直接向UE装置328)提供视频资产,它们最终要被分布/经由通信网络304通过UE装置328(可选地在用户驻地308处)通信。通信网络304可包含任何类型的数据网络、语音网络、广播网络、基于IP的网络和/或促进以任何格式传递数据和媒体内容的无线网络。通信网络304可使用任何众所周知类型的网络拓扑和/或通信协议实现,并且可表示为或以其它方式实现为两个或更多网络的组合。
UE装置328(或观察系统、消费者装置、客户端装置等)是由用户302A-302N用于经由提供对IPTV系统306的访问的应用326A-326E访问视频资产的电子装置。一组非详尽的UE装置328在本文图示了,并且包含机顶盒(STB) 322,其连接到显示器324A(通常是电视,但也可以是另一类型的监视器、投影仪等)。其它UE装置328包含智能电话330、平板电脑332和膝上型或桌上型计算机334—它们每个都可包含处理器、计算机可读存储装置、显示器324B-324D,可选地还有执行以允许与IPTV系统306的连接性/交互的应用326A-326E。然而,其它UE装置可实现为有线和/或无线装置中的任一个或组合,实现为任何形式的电视客户端装置(例如STB 322、数字录像机(DVR))、游戏装置、计算机装置、便携式计算机装置、消费者装置、媒体装置、通信装置、视频处理和/或渲染装置、电器装置、移动电话(例如蜂窝、通过IP的语音(VoIP)、Wi-Fi等)、便携式媒体装置(例如个人/便携式媒体播放器、手持媒体播放器等)、可穿戴装置,和/或实现为被实现成接收任何形式音频、视频和/或图像数据的媒体内容的任何其它类型的装置。UE装置(例如STB 333)还可与操作该装置的用户302A(即,人)和/或实体关联。
在系统300中示出的各种UE装置(322,330,332,334)可包含或者可以不包含相应显示装置(例如324A-324D)。UE装置和显示装置一起渲染并回放音频、视频和/或图像数据。显示装置(例如显示器324A)可被实现为任何类型电视、高清电视(HDTV)、液晶显示器(LCD)、发光二极管(LED)显示器或类似显示系统。各种客户端装置(例如电视、游戏装置或计算机装置)还可与一个或多个输入装置(诸如用于接受到电视客户端装置的用户可选择输入和选择的遥控装置、用于到游戏装置的用户可选择输入的游戏控制器和/或用于到UE装置的用户可选择输入的键盘和/或鼠标输入装置)关联。本文描述的UE装置还可用其它组件(诸如一个或多个处理器、通信组件(例如网络接口)、存储器组件和/或处理和控制电路)的任何不同组合来实现。例如,UE装置可包含从IPTV系统306和/或内容提供商310A-310M接收视频资产的接口、接收广播和/或空中输入的接口,经由其可通过空中接收视频资产。UE装置还可包含一个或多个调谐器以调谐电视频道和/或数据流以便显示和查看。
UE装置和/或显示器可选地可包含IPTV应用(或“APP”)326A-326E以辅助提供到IPTV系统306的连接性。这些IPTV应用326当由相应装置的处理器执行时可配置成使相应装置连接到IPTV系统306(例如使用一组网络接口),向IPTV系统306发送(例如对于视频资产列表的、对于视频资产本身的)请求,从IPTV系统306接收响应(例如来自IPTV系统306的用户界面(UI)元素、视频资产),在显示器上向用户呈现IPTV系统306的用户界面,和/或显示视频资产以及任何(可选的)对应用户界面(例如回放控制、附加视频资产、广告等)。在本发明的一些实施例中,使用基于web的技术,包含HTML代码、CSS规则、JavaScript代码等中的一个或多个,来构建应用326A-326E。
在所描绘的图3实施例中,IPTV系统306包含一个或多个计算装置330,计算装置330包含一个或多个处理器334、网络接口336(用于连接到内容提供商310A-310M和/或社交网络系统320和/或UE装置328)以及计算机可读存储媒体332。计算机可读存储媒体332在一些实施例中可存储视频资产的拷贝,它们可由内容提供商310A-310M提供。术语“视频资产”一般用于指的是可包含音频或者可不包含音频的视频或图像集合;然而,术语“视频资产”一般也可用于指的是一段多媒体内容,包含但不限于从任何媒体内容和/或数据源接收的任何类型音频、视频和/或图像数据。如本文所描述的,视频资产可包含记录的视频内容、视频点播(VOD)内容、OTT视频内容、电视内容(例如“直播”电视、“广播”电视)、广告、商业广告、音乐视频、电影、视频剪辑以及其它媒体内容。取决于配置,IPTV系统306可经由网络304向UE装置328提供视频资产,但在一些配置中,UE装置328使用网络304直接访问来自内容提供商310A-310M的视频资产。
计算机可读存储媒体332也可存储其它媒体内容、元数据、交互游戏、基于网络的应用和/或任何其它内容或数据(例如节目指南应用数据、用户界面数据、广告内容、隐藏式字幕数据、内容元数据、搜索结果和/或推荐等)以便由IPTV系统306和/或UE装置328当与IPTV系统306和/或视频资产交互时使用。
在所描绘的实施例中,一个或多个计算装置330的该组处理器334执行定制样式模块实例340B,其可使用由计算机可读存储媒体332存储的定制样式模块代码340A启动。定制样式模块实例340B被用作用于通过使用由计算机可读存储媒体332存储的增广样式单元342和样式生成代码344来动态生成应用的系统的部分。增广样式代码342在一个实施例中包含遵循已经被修改或增广成包含包括参数的表达式的样式标准(例如CSS)的样式规则的部分。从而,增广样式代码342在其整体上将不严格遵循该样式标准,并且从而根据那个样式标准将被视为无效。定制样式模块实例340B可将增广样式代码342翻译成样式生成代码344。在实施例中,样式生成代码344是能生成由应用326要使用的有效样式规则348的可执行代码(或者由一个或多个计算装置330或者由在一个或多个UE装置324上执行的应用326)。在一些实施例中,这个样式生成代码344包括JavaScript代码,但在其它实施例中,它可包含任何其它计算机可执行代码(例如用Python、Lua、C++、C、ML、Fortran、PHP、Ruby、VBScript、Scheme、Shell scripts、XSLT、Tcl、Java、Smalltalk、Objective C、C#、VisualBasic等写的代码)。
在实施例中,样式生成代码344通过一组样式生成调用346执行,样式生成调用可选地可存在于一个或多个计算装置330(并且由一个或多个计算装置330执行)或者由UE装置324在运行时间直接执行。该组样式生成调用346在实施例中使得使用一组输入变量执行样式生成代码344,这使得生成定制生成的一组样式规则348。现在在图4、图5A和图5B中更详细地呈现了增广样式代码342、样式生成代码344、样式生成调用代码346和生成的多组有效样式代码348的示例。
图4图示了根据本发明实施例的增广样式代码342和样式生成代码344。增广样式代码342和样式生成代码344被用作用于提供动态生成的应用的总体解决方案的一部分;具体地说,这些段解决方案考虑到应用的用户界面的动态定样式。
因而,在实施例中,增广样式代码342包括可在延迟可评价变换系统中用于高性能、动态、运行时间、参数化最终定下(finalization)的参数化CSS文件。增广样式代码342在实施例中被提供为包含已经用附加基于表达式的句法增广的修改的CSS规则的一个或多个输入文件。在一些实施例中,增广样式代码342由技术提供商生成,并且故意构造成“暴露”通过使用包含变量415的表达式410要修改的UI的某些方面。
在实施例中,值得注意的是,增广样式代码342输入文件本身可能是其它CSS预处理软件(诸如Less.js动态样式表语言)的输出。
如图4中所描绘的,图示的增广样式代码342A包含两个规则—或样式声明—各包含样式句法420和由表达式定界符405标定的表达式410(使用变量415)。在此示例中,表达式定界符405包括开始定界符(包括美元符号后面是开花括号)和结束定界符(包括闭花括号),尽管在其它实施例中可使用其它开始和结束定界符(假若它们可通过解析器无歧义地标识)。在此示例中,第一规则(用于具有匹配选择器“.rule1”的类的对象)包含三个声明(或“子规则”),其中“width”属性具有包含表达式410的关联值,表达式410将该值定义成“itemWidth”变量与数字30相加的和。第二声明也包含表达式410,其指示属性“border-style”要具有由名为“borderPattern”的变量的值表示的关联属性值。最后,第一规则还包含第三声明,其指示“color”属性要具有由名为“defaultColor”的变量的值表示的关联属性值。第二规则(用于具有匹配选择器“.rule2”的类的对象)类似于第一规则,因为它还包含“width”、“border-style”和“color”属性的三个声明。然而,“width”和“color”的表达式410是不同的—在此,“width”的属性值配置成表示1.5乘以itemWidth变量的值,而“color”的属性值配置成是来自使用变量“defaultColor”作为其变元的“lighten()”函数的应用的结果。这个lighten()函数可以是作为后面生成的样式生成代码344A的语言的一部分的函数,其由技术提供商定义或以某种其它方式变得可用的。
增广代码内的表达式410的格式可以用各种方式配置—在实施例中,技术提供商简单地定义这些表达式410的语法/句法,其将由用于生成样式生成代码344A的解析器识别。然而,在其它实施例中,表达式410的格式遵循常见编程语言的定义的语言语法/句法。
用表示增广样式代码342A的一个或多个文件,定制样式模块实例340B会将增广样式代码342A解析和编译成样式生成代码344A。在实施例中,样式生成代码344A是JavaScript代码,其当执行时将CSS规则注入到应用加载中(例如浏览器中)。在其它实施例中,样式生成代码344A是配置成当用翻译的表达式455的恰当输入变元执行时生成有效CSS的另一语言的代码。在所描绘的图4实施例中,样式生成代码344A包括一组函数,这组函数接受itemWidth、borderPattern和defaultColor的一组输入变量/变元,并基于那些变元的值返回有效CSS的字符串。在实施例中,样式生成代码344A确切地说设计得很快。作为示例,在一些实施例中,它不包含任何显式解析。在一些实施例中,样式生成代码344A被设计成在具体类型的应用326(例如web浏览器)内执行,设计成在服务器上运行,或者灵活地由任一个运行。
例如,在所描绘的图4实施例中,所生成的样式生成代码344A是有效JavaScript代码,其中每个参数化CSS文件(即增广样式代码342A)被变换成样式生成代码344A,包括采取几个参数作为其输入的JavaScript函数,其中一个参数是在该函数内变得可用的值的映射,如在输入参数化CSS文件(例如增广样式代码342A)中所定义的。所生成的样式生成代码344A被设计用于高性能,并且包含主要简单的字符串级联操作,连同用参数化CSS表达的任何附加操作。在一些部署中,这第一步预计不频繁发生(作为要开发的应用的初始构建步骤)。
包含使用增广样式代码342A生成样式生成代码344A的这种方法提供了围绕灵活性和性能的几个明显优势。这种方法是灵活的,因为它允许参数化样式规则(例如CSS规则)被容易地“最终定下”成用于多环境/配置的标准规则。此外,这种方法是高性能的,因为这种“两步”方法在其第一步“翻译增广样式代码342A以生成样式生成代码344A”中执行计算上开销高的方面,这给第二步“调用样式生成代码344A”留下了“较轻”量的计算开销(例如在运行时间由相对不太有力的UE装置),同时保留了样式参数化的能力和表现力。
解决方案的第二步包含:在环境中部署样式生成代码344A,并且根据需要运行以获得期望级别的定制。那个步骤的一个实现可以是紧接在生成它之后运行它,作为同一构建过程的一部分。这将主要用于在构建时间有限数量的参数已知的情形下,因为然后可对于每组参数高效地生成匹配样式文件(例如CSS文件)。从而,在一些实施例中,服务器端站(即,一个或多个计算装置330)可直接使用样式生成代码344A来执行“第二步”以通过使用一组样式生成调用346调用样式生成代码344A来生成多组有效的样式规则348。例如,一个或多个计算装置330在计算机可读存储媒体332中可存储用于需要为应用生成的部署情形和/或用户界面和/或每个用户的一组样式生成调用。这个第二步的另一实现可以是将生成的样式生成代码344A部署成提供应用方面的web服务器,并基于可随每个请求改变的一组参数使那些web服务器“最终定下”样式规则(例如CSS)。
第二步的又一实现可作为被服务浏览器的客户端侧JavaScript文件的一部分部署生成的样式生成代码344A,并且让这个样式最终定下代码使用由客户端侧应用获取的参数在每个用户的浏览器内运行。从而,在一些实施例中,服务器端站(即,一个或多个计算装置330)相反可向UE装置328传送样式生成代码344A(直接或通过其它计算装置和/或过程间接),其本身将通过使用一组样式生成调用346调用样式生成代码344A来生成多组有效的样式规则348。该组样式生成调用346可本地存储在UE装置328,从服务器端站检索,或者从另一计算装置检索。在实施例中,尽管相同版本的样式生成代码344A可被传送到潜在不同服务协定(指示应用要呈现什么内容)的潜在不同用户的许多不同UE装置,但该组样式生成调用346可能对每个用户、用户群、共享公共特性的装置群等都是唯一的,以允许生成完全不同的应用。
在本发明的这些实施例中,实现了增广样式代码342(例如参数化CSS)的解析与最终样式规则的生成(例如通过调用样式生成代码344A)的分开,实现的方式为:使样式生成能够很快,并且能够在多个环境下进行,包含在浏览器中,其中现有CSS预处理器工具或者不支持以此类方式使用,或者由于将以此类方式使用它们会随之而来的性能惩罚而不实用。
图5A图示了根据本发明实施例的样式生成调用代码346A,其当用于调用图4的样式生成代码344A时,得到一组图示的有效样式规则348A和生成的定制用户界面525A。在这个描绘的实施例中,样式生成调用代码346A包括具有对应于样式生成代码344A的变量/参数的多个输入变量525的代码(例如JavaScript代码,诸如jQuery代码)。样式生成调用代码346A包含这些输入变量525,这些变量包括匹配样式生成代码344A的翻译表达式455的变量的属性505以及被用作变元以调用样式生成代码344A生成该组有效的样式规则348A的值510。在这个描绘的示例中,输入变元包含属性itemWidth的“50”的值510、属性border-style的值“solid”以及属性defaultColor的值“#567A3C”。当使用这些值调用时,样式生成代码344A将生成根据样式标准是有效的该组图示的有效样式规则348A。作为示例,“50”的itemWidth被传到样式生成代码344A,其使第一类选择器“.rule1”具有值“80px”(基于与“px”级联的“30+itemWidth”翻译的表达式455),并使第二类选择器“.rule2”具有值“75px”(基于与“px”级联的“1.5 * itemWidth”的翻译的表达式455)。类似地,border-style“solid”和defaultColor “#567A3C”的输入变元值使第一类选择器具有值“solid”和“#567A3C”(只是如所传入的),并使第二类选择器具有值“solid dashed”和“#6A8E50”。
因而,样式生成代码344A的调用在此实施例中使样式规则被应用到定制UI 525A,其包含第一组用户标识符545A(例如用户“登录”或“检测成正使用”该应用)、允许用户执行应用中功能的一组集线器选择UI元素530以及第一UI元素535A和第二UI元素540A。为了此图示目的,第一UI元素535A(例如<div>、<span>等)具有类“rule1”,并且将根据所生成的该组样式规则348A的第一规则呈现,而第二UI元素540A具有类“rule2”,并且将根据所生成的该组样式规则348A的第二规则呈现。在此示例中,第一UI元素535A相比第二UI元素540A长度(75px)具有较长的水平长度(80px),如生成的该组样式规则348A所指示的。类似地,所生成的该组样式规则348A的“rule1”border-style使第一UI元素535A具有4个实线边界,并且所生成的该组样式规则348A的“rule2”border-style使第二UI元素535A具有“solid”上下边界和“dash”左右侧边界。此外,所生成的该组样式规则348A的“rule1”颜色使第一UI元素535A具有墨绿边界,并且所生成的该组样式规则348A的“rule2”颜色使第二UI元素535A具有相对较亮的绿色边界。
以类似脉络,图5B图示了根据本发明实施例的附加样式生成调用代码346B,其当用于调用图4的样式生成代码344A时,得到一组图示的附加有效样式规则348B和生成的附加定制用户界面525B。这个附加样式生成调用代码346B例如可由同一应用的另一用户(例如由第二用户标识符545B表示的)或相同(或不同)用户的另一装置用于生成(不同)定制UI525B。在此描绘的示例中,样式生成调用代码346B相反包含“70”的itemWidth、“dotted”的border-style以及“#333333”的defaultColor。通过用这些参数调用样式生成代码344A,所生成的该组有效样式规则348B将不同于所生成的该组有效样式规则348A,尽管二者都源自于使用相同样式生成代码344A。从而,在此示例中,第一UI元素535B现在将比第二UI元素540B短,具有4个点线黑灰边界。类似地,第二UI元素540B现在将比第一UI元素535B长,具有亮灰点线上下边界和亮灰虚线左右边界。
图6图示了根据本发明实施例在服务器端站(例如计算装置330)中用于利用参数化样式规则(即增广样式代码342A)允许应用的用户界面的动态运行时间生成的流程600。
流程600包含在框605将一组一个或多个增广样式规则变换成样式生成代码。该组增广样式代码规则包含样式句法(例如CSS规则部分)和包含一组一个或多个变量的一组一个或多个表达式两者。然而,根据样式句法的样式标准(例如CSS),该组增广样式代码规则不是有效的。这个样式生成代码当由使用一组一个或多个输入变量的一组一个或多个调用执行时根据样式标准生成一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量。
该流程还包含:在框610执行使用该组输入变量来执行样式生成代码以生成该组有效样式规则。在实施例中,该组输入变量是该组调用的一部分,调用可以是用公共语言用样式生成代码写的代码。在实施例中,公共语言是JavaScript,并且在实施例中该组有效样式规则是CSS规则。
在框615,流程图进一步包含:向用户的UE装置传送一组有效样式规则,使定制用户界面被呈现给用户。在实施例中,该组有效样式规则是CSS文件的一部分,CSS文件由在UE装置上执行的浏览器应用渲染。
可选地,该流程继续一次或多次,通过:使用另一组输入变量生成另一组有效样式规则(在框620)并将该另一组有效样式规则传送到另一用户的另一UE装置(其使另一定制用户界面被呈现给该另一用户(在框625))来执行样式生成代码。框620和625可选地可执行一次或多次,以容易且高效地为应用/系统的不同用户提供定制用户界面。在实施例中,用户界面属于IPTV应用以允许用户访问由IPTV系统提供的内容。
如上面所描述的,样式生成代码可由各种不同装置在各种位置执行。例如,样式生成代码可在UE装置执行。
图7图示了根据本发明实施例在服务器端站(例如计算装置330)中用于利用参数化样式规则(即增广样式代码342A)允许应用的用户界面的动态运行时间生成的流程700。图7的操作类似于图6的操作,只是服务器端站将样式生成代码传送到UE装置,其然后配置成执行样式生成代码。
流程图700包含在框705将一组一个或多个增广样式规则变换成样式生成代码。该组增广样式代码规则包含样式句法(例如CSS规则部分)和包含一组一个或多个变量的一组一个或多个表达式。然而,根据样式句法的样式标准(例如CSS),该组增广样式代码规则不是有效的。这个样式生成代码当由使用一组一个或多个输入变量的一组一个或多个调用执行时根据样式标准生成一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量。流程还包含:在框710向用户的UE装置传送样式生成代码。
图8图示了根据本发明实施例在用户设备装置中用于利用由服务器端站生成的样式生成代码进行应用用户界面的动态运行时间生成的流程800。流程800包含:在框805在UE的一组网络接口处从服务器端站接收样式生成代码。样式生成代码当由使用一组一个或多个输入变量的一组一个或多个调用执行时生成样式标准的一组一个或多个有效样式规则,其中该组一个或多个输入变量对应于该组变量,并将有效样式规则动态注入到应用中。在实施例中,样式规则是CSS规则,并且在各种实施例中,应用可以是在浏览器中执行的web应用或专用应用。
可选地,流程800包含:在框810从服务器端站接收使用该组输入变量的该组调用。不过在其它实施例中,该组调用在UE装置创建(例如提供用户界面以征求调用的增广/值)或者从不同服务器端站或不同UE装置检索。
在框815,流程进一步包含:使得根据该组调用向用户呈现作为执行样式生成代码的结果的定制用户界面。用户界面包含根据该组有效样式规则定样式的一组一个或多个用户界面元素。
尽管图4-8聚焦在样式规则的动态生成,但本发明的实施例还能够使用类似系统动态创建应用的其它部分,包含但不限于组件和行为。虽然已经关于IPTV系统描述了实施例,但备选实施例相反可用于使用可定制应用的其它系统。例如,本发明的实施例工作在几乎任何类型web应用/网站中,其可受益于提供应用中的定制“视图”,这些视图展示了不同界面、样式、功能、组件和/或行为。
虽然本文公开的实施例将CSS描述为用作样式标准和样式表语言,但本发明的范围不限于使用CSS作为唯一样式表语言,因为可以使用其它样式表语言。
此外,虽然本文公开的许多实施例聚焦在样式规则(例如CSS)的参数化,但本发明的范围不限于此。相反,在本发明的各种实施例中,可以以这种方式参数化其它类型计算机代码,包含但不限于结构和/或行为组件代码(例如JavaScript)、显示代码(例如HTML)以及可形成应用(不管它是web应用还是其它类型应用)的部分的几乎任何其它类型代码。
虽然附图中的流程图示出了由本发明某些实施例执行的具体操作顺序,但应该理解,这种顺序是示范性的(例如备选实施例可按不同顺序执行操作,组合某些操作,重叠某些操作等)。
此外,虽然本发明已经依据几个实施例进行了描述,但本领域技术人员将认识到,本发明不限于所描述的实施例,可用在所附权利要求书的精神和范围内的修改和变化来实行。从而,描述被视为说明性的,代替限制性的。

Claims (16)

1.一种在用户设备(UE)装置(128A)中用于应用(126)的程序化运行时间生成的方法,包括:
接收单个用户界面(UI)定义文件(622),其中所述UI定义文件(622)包含指示所述应用(126)的部分的可视外观属性、是要呈现在所述应用(126)内的UI构建块的一组一个或多个组件以及可由所述组件执行的一组行为的多个定义,其中所述多个定义包含多个属性值对;
接收包含用于实现包含由所述UI定义文件(622)指示的所述组组件的多个组件的代码的一组一个或多个组件定义文件;
在开始执行所述应用(126)之后,解析所述UI定义文件(622)以标识所述可视外观属性、所述组组件以及所述组行为;以及
基于所述解析的UI定义文件(622)和所述组组件定义文件来动态例示(612)所述组组件以创建所述应用(126)。
2.如权利要求1所述的方法,其中所述UI定义文件(622)从服务器端站(130)接收。
3.如权利要求2所述的方法,其中所述UI定义文件(622)在开始执行所述应用(126)时接收。
4.如权利要求3所述的方法,进一步包括:向所述服务器端站(130)传送对所述UI定义文件(622)的XMLHttpRequest。
5.如权利要求2所述的方法,其中所述UI定义文件(622)在提供所述应用的包内接收。
6.如权利要求1所述的方法,其中所述动态例示(612)包括使用来自所述UI定义文件(622)的一组或多组参数来调用一组一个或多个脚本语言函数。
7.如权利要求6所述的方法,其中所述组脚本语言函数动态创建表示所述组组件的UI元素。
8.如权利要求6所述的方法,其中所述组脚本语言函数是JavaScript函数。
9.一种非暂时性计算机可读存储介质(132),存储指令,所述指令当由计算装置的一组一个或多个处理器执行时使所述计算装置通过执行包括如下操作的操作来以编程方式在运行时间生成应用(126):
接收单个用户界面(UI)定义文件(622),其中所述UI定义文件(622)包含指示所述应用(126)的部分的可视外观属性、是要呈现在所述应用(126)内的UI构建块的一组一个或多个组件以及可由所述组件执行的一组行为的多个定义,其中所述多个定义包含多个属性值对;
接收包含用于实现包含由所述UI定义文件(622)指示的所述组组件的多个组件的代码的一组一个或多个组件定义文件;
在开始执行所述应用(126)之后,解析所述UI定义文件(622)以标识所述可视外观属性、所述组组件以及所述组行为;以及
基于所述解析的UI定义文件(622)和所述组组件定义文件来动态例示(612)所述组组件以创建所述应用(126)。
10.如权利要求9所述的非暂时性计算机可读存储介质(132),其中所述UI定义文件(622)从服务器端站(130)接收。
11.如权利要求10所述的非暂时性计算机可读存储介质(132),其中所述UI定义文件(622)在开始执行所述应用(126)时接收。
12.如权利要求11所述的非暂时性计算机可读存储介质(132),其中所述操作进一步包括:
向所述服务器端站(130)传送对所述UI定义文件(622)的XMLHttpRequest。
13.如权利要求10所述的非暂时性计算机可读存储介质(132),其中所述UI定义文件(622)在提供所述应用(126)的包内接收。
14.如权利要求9所述的非暂时性计算机可读存储介质(132),其中所述动态例示(612)包括使用来自所述UI定义文件(622)的一组或多组参数来调用一组一个或多个脚本语言函数。
15.如权利要求14所述的非暂时性计算机可读存储介质(132),其中所述组脚本语言函数动态创建表示所述组组件的UI元素。
16.如权利要求9所述的非暂时性计算机可读存储介质(132),其中所述组脚本语言函数是JavaScript函数。
CN201580013039.XA 2014-03-11 2015-03-10 用于定制应用的动态运行时间生成的方法和系统 Pending CN106233250A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461951514P 2014-03-11 2014-03-11
US61/951514 2014-03-11
US14/287,904 US9189207B2 (en) 2014-03-11 2014-05-27 Methods and systems for dynamic runtime generation of customized applications
US14/287904 2014-05-27
PCT/IB2015/051740 WO2015136445A1 (en) 2014-03-11 2015-03-10 Methods and systems for dynamic runtime generation of customized applications

Publications (1)

Publication Number Publication Date
CN106233250A true CN106233250A (zh) 2016-12-14

Family

ID=54068956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580013039.XA Pending CN106233250A (zh) 2014-03-11 2015-03-10 用于定制应用的动态运行时间生成的方法和系统

Country Status (7)

Country Link
US (2) US20150264423A1 (zh)
EP (1) EP3117304B1 (zh)
CN (1) CN106233250A (zh)
BR (1) BR112016020142B1 (zh)
CA (1) CA2942206C (zh)
TW (1) TWI515583B (zh)
WO (2) WO2015136447A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133035A (zh) * 2017-04-25 2017-09-05 东莞中国科学院云计算产业技术创新与育成中心 响应式网页生成方法和装置
CN108399088A (zh) * 2018-01-19 2018-08-14 北京奇艺世纪科技有限公司 页面展示方法、用户终端、页面服务器及样式配置服务器
CN110727482A (zh) * 2018-07-16 2020-01-24 阿里巴巴集团控股有限公司 一种界面的更新方法和装置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2463329B (en) 2008-09-10 2013-02-20 Echostar Advanced Technologies L L C Set-top box emulation system
CN104063415B (zh) * 2014-02-27 2018-07-10 优视科技有限公司 显示网页自定义内容的方法及系统
ES2545974B1 (es) * 2014-03-17 2016-04-27 Bankinter, S.A. Sistema de protección automático y personalizado para aplicaciones móviles
CN104238746B (zh) * 2014-08-25 2019-02-05 联想(北京)有限公司 信息处理方法及电子设备
US10963539B2 (en) 2014-09-10 2021-03-30 Mk Systems Usa Inc. Interactive web application editor
US9432734B2 (en) 2014-09-10 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Multi-person and multi-device content personalization
US9632991B2 (en) 2014-09-15 2017-04-25 Oracle International Corporation High performant and high fidelity previews for CSS preprocessing frameworks
US9996230B2 (en) * 2014-11-13 2018-06-12 Microsoft Technology Licensing, Llc Using sections for customization of applications across platforms
CN105786924B (zh) * 2014-12-25 2020-03-31 广州市动景计算机科技有限公司 网页夜间模式处理方法、装置及移动终端
EP3281390B1 (en) * 2015-04-09 2022-03-23 OMRON Corporation Embedded web server
KR102529142B1 (ko) * 2015-05-12 2023-05-03 미네우스 )( 에스.알.오. 소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템
US11016646B1 (en) * 2016-03-22 2021-05-25 Open Text Corporation Method and mechanism for context driven alteration of UI artifacts instances behavior using expression based pluggable UI aspects
US9824075B1 (en) * 2016-03-31 2017-11-21 Google Inc. System and method for interaction coverage
CN106020808A (zh) * 2016-05-13 2016-10-12 北京金山安全软件有限公司 一种锁屏界面的开发方法、装置及电子设备
US10409565B2 (en) * 2017-03-30 2019-09-10 Ice Tea Group Llc Pixel perfect real-time web application framework
TWI648682B (zh) * 2017-05-05 2019-01-21 如如研創股份有限公司 軟體的自動化產生系統
EP3474136A4 (en) * 2017-05-16 2020-02-12 Makeblock Co., Ltd. METHOD AND APPARATUS FOR USE IN CONVERTING PROGRAMMING OF BUILDING BLOCKS INTO PROGRAM CODE
US10268657B2 (en) * 2017-06-06 2019-04-23 Tealium Inc. Configuration of content site user interaction monitoring in data networks
CN108965930B (zh) * 2017-12-29 2021-05-28 视联动力信息技术股份有限公司 一种视频数据处理的方法和装置
US11380031B2 (en) * 2018-11-16 2022-07-05 Cimpress Schweiz Gmbh Technology for enabling elastic graphic design
CN111324347B (zh) * 2020-02-06 2023-08-18 北京字节跳动网络技术有限公司 组件构造方法、装置、系统、页面生成方法、设备及介质
US11650831B2 (en) * 2020-04-30 2023-05-16 Salesforce, Inc. Enhancement of application service engagement based on user behavior
KR20210156523A (ko) * 2020-06-18 2021-12-27 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 사용자 인터페이스 정의 파일을 이용한 사용자 인터페이스 표시
JP2022086152A (ja) * 2020-11-30 2022-06-09 ブラザー工業株式会社 情報処理装置およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041879A1 (en) * 2004-08-19 2006-02-23 Bower Shelley K System and method for changing defined user interface elements in a previously compiled program
CN101202665A (zh) * 2007-12-06 2008-06-18 中兴通讯股份有限公司 图形用户界面的生成方法
CN101216838A (zh) * 2008-01-15 2008-07-09 中兴通讯股份有限公司 基于web标记的xml界面配置文件分发系统及方法
CN102132243A (zh) * 2008-08-28 2011-07-20 京瓷株式会社 用户界面生成装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049867A1 (en) * 2000-08-29 2002-04-25 Yoshitomo Kumagai Application transfer method, application transfer system and storage medium therefore
US20020085033A1 (en) * 2000-12-27 2002-07-04 G.E. Information Services, Inc. Process for generating a user interface in a data processing system
CA2364628A1 (en) * 2001-12-04 2003-06-04 Kevin W. Jameson Collection role changing gui
US20030160822A1 (en) * 2002-02-22 2003-08-28 Eastman Kodak Company System and method for creating graphical user interfaces
US8453175B2 (en) 2003-05-29 2013-05-28 Eat.Tv, Llc System for presentation of multimedia content
US7562131B2 (en) * 2004-06-25 2009-07-14 Intel Corporation UPnP user interface system and method
US20070168872A1 (en) * 2006-01-19 2007-07-19 Raytheon Company Multi-monitor, multi-JVM java GUI infrastructure with layout via XML
WO2007136399A1 (en) * 2006-05-19 2007-11-29 Nokia Siemens Networks Gmbh & Co.Kg Method and apparatus for maximizing 'last mile' bandwidth through non-real-time personal video recorder (pvr) transmission in internet protocol television (iptv) systems
US7908551B2 (en) * 2006-06-29 2011-03-15 Google Inc. Dynamically generating customized user interfaces
US7685168B2 (en) * 2007-08-31 2010-03-23 International Business Machines Corporation Removing web application flicker using AJAX and page templates
US8281287B2 (en) * 2007-11-12 2012-10-02 Finocchio Mark J Compact, portable, and efficient representation of a user interface control tree
KR101450640B1 (ko) * 2008-06-27 2014-10-14 교세라 가부시키가이샤 유저인터페이스생성장치
US9292307B2 (en) * 2008-07-30 2016-03-22 Kyocera Corporation User interface generation apparatus
WO2010024357A1 (ja) * 2008-08-28 2010-03-04 京セラ株式会社 ユーザインタフェース生成装置
GB2463329B (en) * 2008-09-10 2013-02-20 Echostar Advanced Technologies L L C Set-top box emulation system
EP2530583B1 (en) * 2011-05-31 2019-11-27 Accenture Global Services Limited Computer-implemented method, system and computer program product for displaying a user interface component
CN102693323B (zh) 2012-06-06 2015-01-28 新浪网技术(中国)有限公司 级联样式表解析方法及解析器、网页展示方法及服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041879A1 (en) * 2004-08-19 2006-02-23 Bower Shelley K System and method for changing defined user interface elements in a previously compiled program
CN101202665A (zh) * 2007-12-06 2008-06-18 中兴通讯股份有限公司 图形用户界面的生成方法
CN101216838A (zh) * 2008-01-15 2008-07-09 中兴通讯股份有限公司 基于web标记的xml界面配置文件分发系统及方法
CN102132243A (zh) * 2008-08-28 2011-07-20 京瓷株式会社 用户界面生成装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133035A (zh) * 2017-04-25 2017-09-05 东莞中国科学院云计算产业技术创新与育成中心 响应式网页生成方法和装置
CN108399088A (zh) * 2018-01-19 2018-08-14 北京奇艺世纪科技有限公司 页面展示方法、用户终端、页面服务器及样式配置服务器
CN110727482A (zh) * 2018-07-16 2020-01-24 阿里巴巴集团控股有限公司 一种界面的更新方法和装置
CN110727482B (zh) * 2018-07-16 2023-05-12 阿里巴巴集团控股有限公司 一种界面的更新方法和装置

Also Published As

Publication number Publication date
TWI515583B (zh) 2016-01-01
US20150261506A1 (en) 2015-09-17
WO2015136445A1 (en) 2015-09-17
BR112016020142B1 (pt) 2022-11-22
TW201546631A (zh) 2015-12-16
WO2015136447A1 (en) 2015-09-17
CA2942206C (en) 2022-11-08
US20150264423A1 (en) 2015-09-17
BR112016020142A2 (zh) 2017-08-15
US9189207B2 (en) 2015-11-17
EP3117304A1 (en) 2017-01-18
EP3117304B1 (en) 2018-07-25
CA2942206A1 (en) 2015-09-17

Similar Documents

Publication Publication Date Title
CN106233250A (zh) 用于定制应用的动态运行时间生成的方法和系统
US11693915B2 (en) Interactive web application editor
US8930824B2 (en) Facilitating propagation of user interface patterns or themes
CN105426448B (zh) 界面显示方法、装置及系统
US8707258B2 (en) Multi-modal/multi-channel application tool architecture
CN110308908B (zh) 应用的配置文件的生成和应用页面的展示方法、装置及存储介质
US20140201618A1 (en) Client-side personalization of websites and corresponding network environment
Mayer et al. A comparative study of systems for the design of flexible user interfaces
CN104111768B (zh) 可交互窗口及自定义、引用、同步可交互窗口的方法和系统
Simoes et al. The future of services in next generation networks
CN115994517A (zh) 信息处理方法、装置、存储介质、设备及程序产品
KR102261152B1 (ko) 앱 생성 장치
KR102261153B1 (ko) 앱 생성 방법
KR20120050016A (ko) 멀티미디어 콘텐츠를 이용한 소셜 네트워크 구축 장치 및 방법
Ünlü Energy efficient mobile web via scripts&stylesheets based transcoding
JP2018514827A (ja) インタラクティブな操作方法、及びそれを用いた送信機、受信機及びインタラクティブな操作システム
Chaisatien et al. A description-based composition method for mobile and tethered Mashup applications
US20120233536A1 (en) Web display program conversion system, web display program conversion method and program for converting web display program
Yaici et al. A model-based approach for the generation of adaptive user interfaces on portable devices
CN117271934A (zh) 一种网页生成方法、装置、电子设备及存储介质
CN115293122A (zh) H5数据模板化处理方法、装置和设备及存储介质
CN114647806A (zh) 数据投放方法和装置、电子设备及计算机可读存储介质
Pastore et al. Implementations of the Web 2.0 phenomenon and its technologies for science outreach and communication in the research network
Oliveira et al. Using Telecommunications Middleware to Dynamically Adapt Multimedia Services
Beleg Ad-hoc Integration von annotierten Diensten in Google-Android-Applikationen

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20161214

RJ01 Rejection of invention patent application after publication