具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例中,场景服务可用于表示基于场景的服务,也即在特定场景下提供的特定服务。场景服务的处理逻辑可以包括:触发条件和服务方式。
其中,作为场景服务的触发条件,场景可以依据信号流确定。信号流可用于表示载有变量信息的信号的传递,具体到本申请实施例,信号可用于表示终端设备中数据的载体,该信号所承载的数据可以包括:设备数据和/或设备接收数据;其中,设备数据可以包括终端设备内的软硬件数据,如设备软件交互的指令数据、传感器信号、GPS(地球定位系统,Global Positioning System)数据、时间(Time)数据、天气数据、接口数据等,设备接收数据可以包括终端设备接收的指令数据、硬件、接口数据等。
本申请实施例中,信号流可由信号源产生或接收,该信号源可通过各种触发方式获取信号,如通过被动触发方式(如非用户主动触发的方式)或主动触发方式(如用户主动触发的方式)。其中针对被动触发方式,信号源可获取来自外部设备的信号、来自传感器的信号、来自设备内部的各种消息(如广播消息、应用消息、通知等)数据,以及根据设备状态产生的设备状态信息等。对于主动触发方式,信号源可通过用户操作触发获取信号,例如用户扫描二维码获取的二维码信号,该二维码可对应到某项服务功能,又如用户点击分享的、涉及服务代理的链接或快捷入口,又如用户可从提供若干信号的集合中选择获取的信号等。从而通过信号源可以获取各种信号,基于该信号提供所需的服务。
服务方式可用于表示场景服务的具体形式或方法。例如,上述服务方式可以包括:提供卡片(Card)、输出通知(Notification)信息、输出链接、调用APP、或者控制其他终端设备等。其中,该链接又称超级链接,是指从一个页面指向一个目标的连接关系,所指向的目标可以是另一个页面,可选地,该连接关系对应的两个页面可以属于相同或者不同的场景服务。
在实际应用中,用户可以根据实际应用需求,确定场景服务的任意触发条件和任意服务方式。其中,这里的用户可以包括:服务的开发者,和/或,接受服务的用户(也即终端设备的用户)。也即,服务的开发者可以根据服务的运营需求,确定场景服务的任意触发条件和任意服务方式;同理,接受服务的用户可以根据自身需求,确定场景服务的任意触发条件和任意服务方式,以满足自身的个性化需求。
本申请实施例可以应用于IOT(物联网,Internet of Things)的应用场景,物联网指的是将信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等信息传感设备与互联网结合起来而形成的一个巨大网络。其目的是让所有的物品都与网络连接在一起,方便识别和管理。在万物互联的时代,用户的设备越来越多样化,包括有屏设备、无屏设备、家居设备、穿戴设备等等,这样,可以联通信息传感设备,并串联服务,以向用户提供主动的、自动化的场景服务。
参照表1,示出了本申请的场景服务的示例,表1中的场景服务可以通过触发条件和服务方式来表征。
表1
可以理解,物联网的应用场景、以及表1所示的场景服务只是作为本申请的场景服务的触发条件和服务方式的可选实施例,实际上,用户可以根据实际应用需求,确定场景服务的任意触发条件和任意服务方式,本申请实施例对于场景服务的具体触发条件和具体服务方式不加以限制。
通过上述场景服务,能够智能地判断终端设备的信号流是否符合场景服务的触发条件,若是,则通过服务方式提供对应的场景服务。
在本申请的一种可选实施例中,可以在系统层面自动判断终端设备的信号流是否符合场景服务的触发条件,若是,则自动向用户对应的场景服务。由于可以基于信号流自动判断并执行对应的场景服务,故可以提高操作的便捷性和服务的智能性。
本申请实施例的发明人在实施本申请实施例的过程中发现,无论是APP对应的服务还是场景服务,通常均需要通过编写代码实现,然而,通过编写代码实现的服务开发方式,提高了开发门槛,而且代码重用率低,导致服务的开发效率较低。
本申请实施例提供了一种场景服务的生成方案,该方案可以将场景服务抽象为最基本的两种组件(Component):用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件,并向用户提供上述组件,以使用户根据场景服务的需求,选择场景服务对应的组件,这样,可以依据用户选择的组件,生成场景服务的标记语言文件或者可执行代码,其中,上述标记语言文件或者上述可执行代码中可以包括所述场景服务的触发条件以及服务方式,上述触发条件可根据用户选择的第一组件确定,上述服务方式可根据用户选择的第二组件确定;由于从计算设备的角度,组件是对数据和方法的简单封装,组件可以有自己的属性和方法,也即组件的实现可以依赖于一段代码或配置文件中的配置(如配置得到的参数),故本申请实施例在生成场景服务的标记语言文件或者可执行代码的过程中,可以根据用户选择的第一组件,得到场景服务的触发条件对应的标记语言或者代码,同理,可以根据所述用户选择的第二组件所依赖的代码或参数,得到场景服务的服务方式对应的标记语言或者代码,最终可以得到场景服务的标记语言文件或者可执行代码;综上,本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择;因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升用户的生成体验。
本申请实施例中,终端设备可用于表示具备信号获取和场景服务的能力的任意设备。可选地,该终端设备可以是具有多媒体功能的终端设备,这些设备支持音频、视频、数据等方面的功能;或者,该终端设备也可以为具有信号收发、存储或处理的设备,如灯光系统等,本申请实施例中终端设备可包括:智能手机、平板电脑能、智能穿戴设备等智能移动终端,也可以是物联网系统的设备以及车载设备等,例如包括智能电视、智能路由、门禁系统、灯光系统等家居设备,又如包括智能冰箱、智能烤箱、智能电饭煲等厨电设备。该终端设备可以采用各种智能操作系统,如IOS、Android、YunOS等。
参照图1,示出了本申请的一种场景服务的生成方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101、根据用户对组件的选择,生成表征场景服务的显示界面;其中,所述显示界面至少可以包括:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件;
步骤102、依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码;其中,所述标记语言文件或者可执行代码中可以包括所述场景服务的触发条件以及服务方式,所述触发条件可根据所述显示界面中第一组件确定,所述服务方式可根据所述显示界面中的第二组件确定。
本申请实施例可以根据用户对组件的选择,生成表征场景服务的显示界面,并依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码;由于本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择操作和界面操作,因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升了用户的生成体验。
本申请实施例可以将场景服务抽象为最基本的两种组件:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件。
其中,第一组件用于表征信号流,本领域技术人员或者用户可以根据实际应用需求,预置所需的信号流,并针对预置的信号流设置对应的第一组件。例如,可以预置一些使用频率超过第一频率阈值的信号流,如设备软件交互的指令数据、传感器信号、GPS数据、时间数据、天气数据、接口数据、终端设备接收的指令数据、硬件、接口数据等。可以理解,本申请实施例对于第一组件表征的具体信号流不加以限制。
第二组件用于表征场景服务的服务方式,本领域技术人员或者用户可以根据实际应用需求,预置所需的服务方式,并针对预置的服务方式,设置对应的第二组件。例如,预置的服务方式可以包括:提供卡片、输出通知信息、或者输出链接、控制其他终端设备等。可以理解,本申请实施例对于第二组件表征的具体服务方式不加以限制。
在本申请的一种应用示例中,假设场景服务为:接收到头戴设备的信号时,调用某播放APP;则用户选择的第一组件可以包括:Headphone,用户选择的第二组件可以包括:APP调用。在本申请的另一种应用示例中,假设场景服务为:空气质量参数超过第二阈值时,通知空气净化器开启,则用户选择的第一组件可以包括:空气质量参数对应的第一组件,用户选择的第二组件可以包括:向空气净化器发送Notification,以通知空气净化器开启等。
在本申请的一种可选实施例中,当场景服务涉及两种或者两种以上的信号流时,场景服务对应的组件还可以包括:第三组件,该第三组件可用于表征信号流之间的逻辑关系,相应地,所述显示界面还可以包括:用于表征信号流之间逻辑关系的第三组件,则所述触发条件根据所述显示界面中第一组件以及所述第三组件表征的逻辑关系确定。
在实际应用中,本领域技术人员或者用户可以根据实际应用需求,预置对应的逻辑关系,并针对预置的逻辑关系,设置对应的第三组件。例如,预置的逻辑关系可以包括:AND(和)、OR(或)、NOT(非)等,其中,AND指的是两个信号流同时发生,OR指的是两个信号流只有有一个发生,NOT指的是某个信号流不发生。可以理解,本申请实施例对于第三组件表征的具体逻辑关系不加以限制。
在本申请的一种应用示例中,假设场景服务为:中午到达某商圈时,提供预置卡片(Card);则用户选择的第一组件可以包括:地理围栏(GeoFence)和Time,用户选择的第三组件可以包括:AND,用户选择的第二组件可以包括:Card。在本申请的一种应用示例中,假设场景服务为:在中午到达某商圈时、或者接收到头戴设备的信号时,提供预置卡片;则用户选择的第一组件可以包括:GeoFence、Time和Headphone,用户选择的第三组件可以包括:AND和OR,用户选择的第二组件可以包括:Card。可以理解,本领域技术人员可以根据场景服务的触发条件和服务方式选择所需的任意组件,本申请实施例对于用户选择的具体组件不加以限制。
从计算设备的角度,组件是对数据和方法的简单封装,组件可以有自己的属性和方法,也即组件的实现可以依赖于一段代码或配置文件中的配置(如配置得到的参数)。这样,本申请实施例可以针对组件编写对应的预置代码,或者,针对组件在配置文件中建立对应的组件配置项。
上述配置文件可用于进行组件的配置。可选地,可以通过如下步骤获取所述配置文件:接收用户在配置文件模板中输入的组件配置项,将输入组件配置项后的配置文件模板作为配置文件。其中,该配置文件模板可以提供配置文件的基本格式,以使用户在配置文件模板的基础上配置所需的组件配置项。例如,该配置文件模板可以包括:Stream(信号流)、Function(功能)、以及Actuator(执行体)等3个字段,其中,Stream、Actuator、Function分别对应第一组件、第二组件和第三组件。进一步,可以针对字段设置对应的组件配置项,例如,Stream对应的组件配置项可以包括:GeoFence、Time和Headphone、URI(唯一资源标识符,Uniform Resource Identifier)等,Function对应的组件配置项可以包括:AND、OR、NOT等,Actuator对应的组件配置项可以包括:Card、Notification、Page Link和APP调用等。
在本申请的一种可选实施例中,可以在配置文件模板中预置一些使用频率超过第二频率阈值的组件配置项,以节省用户对于元素的配置操作。
在本申请的一种可选实施例中,可以解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件,并对所述配置文件或者预置代码包含的组件进行显示,以供用户选择。
在实际应用中,步骤101可以根据用户对组件的选择,生成表征场景服务的显示界面;其中,所述显示界面中第一组件、或者显示界面中第一组件以及第二组件表征的逻辑关系可用于确定场景服务的触发条件,所述显示界面中的第二组件可用于确定场景服务的服务方式。
按照场景服务的处理逻辑,场景服务的触发条件可以依据信号流确定;这样,可以通过一种信号流确定场景服务的触发条件,也即,当一种第一组件形成特定的触发条件时,则可触发第二组件对应的服务方式。例如,场景服务“接收到头戴设备的信号时,调用某播放APP”的触发条件可以通过“头戴设备的信号”这一种信号流确定,又如,场景服务“空气质量参数超过第二阈值时,通知空气净化器开启”的触发条件可以通过“空气质量参数”这一种信号流确定。
或者,可以通过两种或者两种以上信号流确定场景服务的触发条件,此种情况下,若干第一组件可以通过第三组件表征的逻辑关系形成场景服务的触发条件,也即,当若干第一组件通过第三组件组合成特定的触发条件时,则可触发第二组件对应的服务方式。例如,场景服务“中午到达某商圈时,提供预置卡片”可以通过“Time”和“GeoFence”两种信号流来确定。
在实际应用中,可以预置场景服务对应的触发条件,其中,场景服务与触发条件可以为一一对应的关系,这样,任意场景服务所支持的触发条件都可以订阅有相关的信号流。例如,可以采用Subscription记录场景服务与信号流之间的订阅关系,从而便于确定信号流对应的场景服务,从而能够自动感知到要提供给用户的场景服务。可以理解,本申请实施例对于场景服务或者场景服务订阅的具体信号流不加以限制。
在本申请的一种可选实施例中,上述显示界面除了包括:用户选择的第一组件、第二组件和第三组件之外,还可以包括:用户选择的组件之间的连接。可选地,用户选择的组件之间的连接具体可以包括如下连接中的至少一种:用户选择的第一组件与用户选择的第二组件之间的连接、用户选择的第二组件与用户选择的第三组件之间的连接、用户选择的第一组件与用户选择的第三组件之间的连接、以及用户选择的第三组件与用户选择的第三组件之间的连接,这样,可以依据组件之间的连接确定场景服务的触发条件和服务方式。
相应地,所述根据用户对组件的选择,生成表征场景服务的显示界面的步骤101,具体可以包括:接收用户选择的组件;针对所述用户选择的组件,建立其中包含的组件之间的连接,以得到表征场景服务的显示界面。
在本申请的一种可选实施例中,本申请实施例的方法还可以包括:在组件区显示组件;则所述接收用户选择的组件的步骤,可以包括:响应于用户对于所述组件区中显示的组件的第一触发操作,将所述第一触发操作对应的组件作为用户选择的组件。组件区可用于显示供选择的组件,本申请实施例可以通过组件区向用户提供组件的选择接口,以使用户通过该选择接口进行所需组件的选择。
在本申请的另一种可选实施例中,所述在组件区显示组件的步骤,具体可以包括:解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件;将所述配置文件或者预置代码包含的组件显示到组件区。
上述配置文件可用于进行组件的配置,其中,上述配置文件中可以包括:第一组件、第二组件、第三组件等类型的组件所对应的组件配置项,以使用户针对所需的组件配置所需的组件配置项。上述预置代码可以为用户针对组件预先编写的代码。
随着终端技术的发展,终端设备所具备的场景感知能力越来越强,故第一组件的数量会越来越多,这容易出现一个屏幕无法显示所有组件的问题,进而增加用户从所有的组件中选择所需的组件的难度。针对上述问题,在本申请的一种可选实施例中,所述在组件区显示组件的步骤,可以包括:显示组件对应的标签;响应于用户对于所述标签的选择操作,在组件区显示用户选择的标签所对应的组件。上述标签可用于标志组件的分类或者内容,标签与组件之间可以为一对多的关系,这样,可以使用户基于标签进行组件的筛选,进而降低用户选择组件的难度。
例如,可以依据信号流类型对第一组件进行分类,以得到第一组件的分类标签,可选地,第一组件的分类标签可以包括:软件、传感器、地理位置、时间、天气、接口、硬件等。又如,可以预置一些场景标签,并建立场景标签与第一组件之间的对应关系,例如,上述场景标签可以包括:物联网场景、地理位置场景、运动场景等等,则可以获取场景标签对应的第一组件,以得到场景标签与第一组件。同理,在第二组件或者第三组件的数量较多时,也可以针对第二组件或者第三组件预置对应的分类标签或者场景标签,以降低用户选择组件的难度。例如,可以基于服务方式的类型,预置第三组件的分类标签,可以理解,本申请实施例对于组件对应的标签的具体确定方式不加以限制。
在本申请的一些实施例中,若用户选择的第一组件的数量等于1,则可以建立用户选择的第一组件与用户选择的第二组件之间的第一连接。参照图2,示出了本申请的一种场景服务的显示界面的示意,图2所示显示界面可以与场景服务“空气质量参数超过第二阈值时,通知空气净化器开启”相应,图2所示显示界面可以包括:作为第一组件的空气质量参数201、以及作为第二组件的通知空气净化器开启202。
在本申请的一些实施例中,若用户选择的第一组件的数量大于1,可以建立用户选择的第一组件与用户选择的第三组件之间的第二连接,以通过第二连接表征第一组件对应信号流之间的逻辑关系。参照图3,示出了本申请的一种场景服务的显示界面的示意,图3所示显示界面可以与场景服务“中午到达某商圈时,提供预置卡片”相应,图3所示显示界面可以包括:作为第一组件的“GeoFence”301和“Time”302、作为第二组件的“Card”303、以及作为第三组件的“AND”304,其中,可以通过“AND”304表征“GeoFence”301与“Time”302之间的逻辑关系,因此可以分别建立“AND”304与“GeoFence”301和“Time”302之间的第二连接。
在本申请的一些实施例中,若用户选择的第三组件的数量大于1,则可以建立用户选择的第三组件之间的第三连接,以通过该第三连接表征第一组件对应信号流之间的逻辑关系;并且,还可以建立用户选择的第三组件与用户选择的第二组件之间的第四连接,以通过该第四连接对应的第三组件指向第二组件表征的服务方式。参照图4,示出了本申请的一种场景服务的显示界面的示意,图4所示显示界面可以与场景服务“在中午到达某商圈时、或者接收到头戴设备的信号时,提供预置Card”相应,图4所示显示界面可以包括:作为第一组件的“GeoFence”401、“Time”402和“Headphone”403、作为第三组件的“AND”404和“OR”405、以及作为第二组件的“Card”406;其中,可以通过“AND”404表征“GeoFence”401与“Time”402之间的逻辑关系,可以通过“OR”405表征“GeoFence”401、“Time”402与“Headphone”403之间的逻辑关系,因此可以分别建立“AND”404与“GeoFence”401和“Time”402之间的第二连接,且可以分别建立“OR”405与“Headphone”403之间的第二连接、以及“OR”405与“AND”404之间的第三连接;并且,可以建立“OR”405与“Card”406之间的第四连接,以通过“OR”405指向“Card”406对应的服务方式。
为了提高组件的辨识度,第一组件“GeoFence”401、“Time”402、“Headphone”403和第二组件“Card”406均呈现为矩形,而第三组件“AND”404和“OR”405呈现为圆形。可以理解,本申请实施例对于组件对应的具体呈现形式不加以限制。
在本申请的一种可选实施例中,上述场景服务的显示界面可以包括:目标图形。这样,用户可以通过基于第一组件和第二组件的图形化操作,可以实现依据第一组件确定的触发条件与依据第二组件确定的服务方式之间的连通,用户可以通过基于第一组件、第三组件和第二组件的图形化操作,将第一组件与第三组件之间的连接形成场景服务的触发条件,并将第三组件指向第二组件对应的服务方式,也即可以实现触发条件与服务方式之间的连通。最终可以得到所述场景服务的目标图形,可选地,该场景服务的目标图形可以为有向无环图。
在本申请的一种可选实施例中,所述针对所述用户选择的组件,建立其中包含的组件之间的连接的步骤,可以包括:在绘制区显示用户选择的组件;响应于用户在所述绘制区内产生的连接操作,建立所述绘制区中组件之间的连接,将所述绘制区对应的界面作为表征场景服务的显示界面。绘制区可用于图形的绘制,可选地,可以在组件区显示组件,以使用户通过对于所述组件区中显示的组件的第一触发操作,向绘制区添加第一触发操作对应的组件,也即,绘制区对应的界面可以是不断变化的界面,用户可以通过绘制区的操作最终得到表征场景服务的显示界面。其中,上述第一触发操作可用于将组件区中显示的组件添加至绘制区,可选地,上述第一触发操作可以为单击操作、拖拽操作等,可以理解,本申请实施例对于具体的第一触发操作不加以限制。
另外,可以向用户提供例如画笔的绘制工具,以使用户通过该绘制工具建立组件之间的连接。
按照场景服务的处理逻辑,可以通过第一组件与第二组件之间的连接、或者通过第三组件与第一组件和第二组件之间的连接,触发条件与服务方式之间的连通,故本申请实施例可以支持不同类型的组件之间的连接,也即,可以支持第一组件与第二组件之间的连接、以及第三组件与第一组件或者第二组件之间的连接;另外,本申请实施例也可以支持第三组件之间的连接,而可以不支持同类型的第一组件之间、或者同类型的第二组件之间的连接。相应地,在本申请的一种可选实施例中,上述针对所述用户选择的组件,建立其中包含的组件之间的连接的步骤,可以包括:接收用户针对用户选择的两个组件产生的连接操作;判断所述连接操作涉及的两个组件的类型是否符合预置的绘制条件;若是,则执行所述连接操作,也即在该两个组件之间连线;其中,所述预置的绘制条件可以包括:所述连接操作涉及的两个组件的类型不同,或者,所述连接操作涉及的两个组件均为第二组件。上述预置的绘制条件的判断可以避免错误绘制,提高绘制的精确度。
本申请实施例中,组件是对数据和方法的简单封装,组件可以有自己的属性和方法,为方便起见,本申请实施例通过参数表征组件的属性和方法。
在本申请的一种可选实施例中,采用预置数据格式,描述所述第一组件、第三组件和第二组件中任意一种组件的参数。其中,上述预置数据格式可以支持组件的可拓展性,可选地,上述预置数据格式可以为预置的数据交换格式,其具体可以包括:JSON(JavaScript对象表示法,JavaScript Object Notation)、XML(可扩展标记语言,Extensible MarkupLanguage)、INI(初始化文件,Initialization File)、YAML(另一种标记语言,Yet AnotherMarkup Language)等,可以理解,本申请实施例对于具体的预置数据格式不加以限制。
在本申请的一种应用示例中,在上述预置数据格式为JSON格式时,可以采用<key,value>的形式来描述组件的至少一个参数,其中,key代表参数名称,value代表参数值。以用于描述地理位置的第一组件(如GeoFence)为例,其可以包括:纬度(lat)、经度(lng)以及距离范围(radius)等参数,则对应的JSON格式描述可以为:
可以理解,对于纬度(lat)、经度(lng)以及距离范围等参数而言,还可以在配置文件设置对应的子选项,如name(名称)、value(值)、Type(类型)、isUriParam(是否URI参数),其中,可以针对子选项设置相应的默认值,且可支持用户该默认值的修改。
可以理解,本领域技术人员可以根据实际应用需求,确定组件的至少一个参数,本申请实施例对于组件的具体参数不加以限制。以用于描述物理参数的第一组件(如温度参数、空气质量参数)为例,其可以包括:名称、参数值、阈值、参数值与阈值之间的大小关系等参数。
在本申请的另一种可选实施例中,本申请实施例的方法还可以包括:针对所述用户选择的第一组件,显示所述第一组件表征的信号流的参数配置界面;依据用户通过所述参数配置界面输入的内容,对所述第一组件的参数进行更新,则所述标记语言文件或者可执行代码中可以包括:所述第一组件表征的信号流的最新参数。本可选实施例可以针对第一组件提供参数配置界面,以使用户通过该参数配置界面实现对于组件的参数的配置。
需要说明的是,通过该参数配置界面配置得到的最新参数可被更新至对应的配置文件、显示界面的描述文件、以及场景服务的标记语言文件或者可执行代码中。对于显示界面的描述文件而言,其所包含的组件的信息可以源自配置文件中的最新参数,其所包含的组件之间的关系可以源自用户的界面化操作。另外,本申请实施例对于针对所述用户选择的组件,建立其中包含的组件之间的连接的步骤、与针对所述用户选择的第一组件,显示所述第一组件表征的信号流的参数配置界面的步骤之间的执行顺序不加以限制,二者可以先后、后先、或者并列执行。
在本申请的再一种可选实施例中,上述显示所述第一组件表征的信号流的参数配置界面的步骤,可以包括:响应于用户对于绘制区显示的所述第一组件的第二触发操作,在参数区显示所述第二触发操作对应第一组件的参数配置界面。本可选实施例可以通过参数区提供参数配置界面,以使用户通过该参数配置界面实现对于组件的参数的编辑。上述第二触发操作可以为单击操作等任意操作。
参照图5,示出了本申请的一种场景服务的生成界面的示意图,该场景服务的生成界面可以包括:组件区501、绘制区502和参数区503。
图5所示场景服务的生成界面可由编辑器提供,该编辑器可以为能够识别配置文件所采用的语言的任意编辑器,如ATOM编辑器、sublime编辑器等,上述编辑器的入门简单,因此能够降低场景服务生成的门槛。
该编辑器可以解析配置文件,并将解析得到的配置文件所包括的组件绘制到组件区501。作为示例,组件区501可以包括:第一组件Stream、第三组件Function、以及第二组件Actuator。进一步,可以针对字段设置对应的组件配置项,例如,Stream对应的组件配置项可以包括:GeoFence、Time、Headphone、URI等,Function对应的组件配置项可以包括:AND、OR、NOT等,Actuator对应的第二组件可以包括:Card、Notification、调用APP和PageLink等。需要说明的是,图5示出的组件区501的展现样式只是作为示例,可以理解,本领域技术人员还可以根据实际应用需求,依据配置文件的结构样式,按照树形结构对在组件区501对配置文件包含的组件进行展现,在树形结构中,Stream的子节点可以包括:GeoFence、Time、Headphone、URI,其中,作为子节点,GeoFence、Time、Headphone、URI可以进一步包括对应的子节点。可以理解,本申请实施例对于组件区501中组件的展现样式不加以限制。
用户可以基于组件区501绘制所需的任意场景服务的显示界面,也即,某场景服务需要的组件可以源自组件区501。在本申请的一种应用示例中,在接收到用户对于组件区501中组件的第一触发操作后,绘制区502可以显示相对应的没有参数值的图形化组件,可选地,不同类型的组件可以对应不同的图形,如图5中,第一组件GeoFence、第一组件Time、第一组件Headphone和第二组件Card均呈现为矩形,而第三组件AND和OR呈现为圆形。可以理解,本申请实施例对于组件对应的具体图形不加以限制。
进一步,若用户触发绘制区502中显示的图形化组件,则可以在参数区503显示相应的参数配置界面。参数区503示出了GeoFence的参数配置界面,具体地,可以通过表格样式示出该参数配置界面,以使用户在表格中填写参数对应的参数值。另外,参数区503的清除531可用于清除当前的参数词,保存532可用于保存当前的参数值。
进一步,若用户在绘制区502内产生连接操作,则可以响应于该连接操作,建立所述绘制区502中组件之间的连接。例如,场景服务为:在中午到达某商圈时、或者接收到头戴设备的信号时,提供预置Card,则可以响应于绘制操作,分别建立图形化的AND与GeoFence和Time之间的连接、图形化的OR与Headphone和Card之间的连接、以及图形化的AND与OR之间的连接,这样,可以得到有向无环图,并将该有向无环图作为该场景服务的显示界面;该场景服务的显示界面中,通过第三组件表征第一组件对应信号流之间的逻辑关系、并给第一组件赋予对应的参数值,便可得到任意个性化的触发条件,且第三组件可以指向特定的第二组件,以通过第二组件表征场景服务的服务方式。可以理解,绘制区502所示的场景服务的显示界面只是作为应用示例,实际上,本领域的用户可以根据实际应用需求,基于任意的第一组件、或者第一组件和第三组件得到任意个性化的触发条件,且该个性化的触发条件中的第三组件可以指向个性化的第二组件,以确定该触发条件对应的具体服务方式。
需要说明的是,本申请实施例对于给第一组件赋予对应的参数值、以及建立所述绘制区502中第三组件与所述绘制区域502中第一组件和第二组件之间的连接的顺序不加以限制,二者可以先后或者后先或者并列执行。另外,给第一组件赋予对应的参数值只是作为可选实施例,实际上,若需要对第二组件进行编辑,也可以为第二组件赋予对应的参数值。另外,图5中退出534可用于退出场景服务的生成界面。清除531、保存532、文件生成接口533和退出534均可以表现为控件的形式,可以理解,本申请实施例对于清除531、保存532、文件生成接口533和退出534的具体实现形式不加以限制。
在步骤101生成表征场景服务的显示界面后,步骤102可以依据步骤101得到的显示界面,生成所述场景服务的标记语言文件或者可执行代码。
在本申请的一种可选实施例中,上述依据所述场景服务的显示界面,转换得到所述场景服务的标记语言文件或者可执行代码的步骤102,可以包括:响应于用户对于生成接口的触发操作,生成所述场景服务的标记语言文件或者可执行代码。其中,上述生成接口可以位于场景服务的生成界面之上,也可以为预置的快捷键。例如,文件生成接口533为生成接口的一种,若绘制区502中的图形符合用户的意图,则用户可以触发参数区503中的文件生成接口533,以生成绘制区502中的图形对应的标记语言文件。
本申请实施例可以依据场景服务的显示界面生成场景服务的可执行代码,以供使用。上述依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码的步骤102,可以包括:依据所述显示界面所包括组件对应的参数,将所述显示界面所包括组件转换为所述场景服务的可执行代码的属性项;依据所述显示界面所包括组件之间的连接关系,确定所述可执行代码的属性项之间的关系。
可选地,若所述显示界面包括:目标图形,则所述显示界面所包括组件之间的连接关系可以包括:所述目标图形中节点之间的父子关系。例如,可以对所述目标图形进行遍历,以得到所述目标图形包含的节点信息,所述节点信息可以包括:节点参数和节点之间的父子关系,并将节点的信息转换为可执行代码。其中,图形的节点可以与用户选择的组件相应,目标图形的描述文件可以记录节点的节点参数,该节点参数可以源自配置文件中的最新参数。可以利用图形的遍历方法进行目标图形的遍历,上述图形的遍历方法可以包括:深度优先遍历方法和广度优先遍历方法,本申请实施例可以采用任意的遍历方法实现对于目标图形的遍历。通常上述节点信息表现为字符串形式,故可以采用任意的字符串到二进制的转换方法,将字符串形式的节点信息转换为二进制形式的可执行代码,本申请实施例对于字符串到二进制的具体转换方法不加以限制。
在本申请的一种实施例中,可以不直接依据场景服务的显示界面生成对应的可执行代码,而是依据场景服务的显示界面生成对应的标记语言文件;相对于适用于平台(如操作系统平台、应用平台等任意的使用场景服务的平台)的可执行代码,标记语言文件的结构更清晰,易读性更强,故可以使用户更容易理解其所描述的图形的意义,也即,本申请实施例能够通过标记语言文件清晰地描绘出特定场景所提供的特定服务;并且,本申请实施例的标记语言文件可以不关注平台的具体实现,故能够很好地与平台解耦,这样,可以使不同平台基于该标记语言文件生成平台下的可执行代码,因此本申请实施例的标记语言文件具有跨平台的特性,方便场景服务的移植。
在实际应用中,标记语言文件可以使用任意的标记语言,其中,XML具有通用性好和可读性广的优点,故可以将XML作为场景服务的标记语言,当然,JSON、YAML等语言也在本申请的标记语言的保护范围之内。
在本申请的一种可选实施例中,上述上述依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码的步骤102,可以包括:依据所述显示界面所包括组件对应的参数,将所述显示界面所包括组件转换为所述场景服务的标记语言文件的属性项;依据所述显示界面所包括组件之间的连接关系,确定所述标记语言文件的属性项之间的关系。假设组件的参数包括:名称和属性,则组件可被转换为标记语言文件的一个属性项<名称属性1属性2…属性n>,其中n为正整数。可选地,可以采用任意的字符串到标记语言的转换方法,将所述显示界面所包括组件转换为所述场景服务的标记语言文件的属性项,本申请实施例对于具体转换方法不加以限制。上述所述标记语言文件的属性项之间的关系可用于确定可执行代码的执行逻辑。
在步骤102得到所述场景服务的标记语言文件或者可执行代码后,可以对标记语言文件或者可执行代码进行存储。可选地,可以将标记语言文件或者可执行代码上传至应用中心平台Page Center,以使终端设备从应用中心平台同步所需场景服务的标记语言文件或者可执行代码。
综上,本申请实施例的场景服务的生成方法,可以根据用户对组件的选择,生成表征场景服务的显示界面,并依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码;由于本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择操作和界面操作,因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升了用户的生成体验。
另外,本申请实施例可以依据场景服务的显示界面生成场景服务的标记语言文件;相对于适用于任意平台(如操作系统平台、应用平台等任意的使用场景服务的平台)的可执行代码,标记语言文件的结构更清晰,易读性更强,故可以使用户更容易理解其所描述的图形的意义,也即,本申请实施例能够通过标记语言文件清晰地描绘出特定场景所提供的特定服务;并且,本申请实施例的标记语言文件可以不关注平台的具体实现,故能够很好地与平台解耦,这样,可以使不同平台基于该标记语言文件生成平台下的可执行代码,因此本申请实施例的标记语言文件具有跨平台的特性,方便场景服务的移植。
参照图6,示出了本申请的另一种场景服务的生成方法实施例的步骤流程图,具体可以包括如下步骤:
步骤601、接收用户选择的组件;其中,所述组件可以包括:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件;
步骤602、依据所述用户选择的组件,生成场景服务的标记语言文件或者可执行代码;其中,所述标记语言文件或者可执行代码中包括所述场景服务的触发条件以及服务方式,所述触发条件可根据用户选择的第一组件确定,所述服务方式可根据用户选择的第二组件确定。
本申请实施例可以依据所述用户选择的组件,生成场景服务的标记语言文件或者可执行代码;由于本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择操作,因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升了用户的生成体验。
在实际应用中,步骤602可以对用户选择的组件进行分析,以得到场景服务的触发条件对应的第一组件、以及场景服务的服务方式对应的第三组件,这样,可以得到触发条件对应的第一组件、以及服务方式对应的第三组件直接的连通关系,并依据该连通关系生成场景服务的标记语言文件或者可执行代码。
在本申请的一种应用示例中,假设场景服务为:接收到头戴设备的信号时,调用某播放APP;用户选择的第一组件可以包括:Headphone,用户选择的第二组件可以包括:APP调用,则Headphone可用于确定触发条件,APP调用可用于确定服务方式。在本申请的另一种应用示例中,假设场景服务为:空气质量参数超过第二阈值时,通知空气净化器开启,且用户选择的第一组件可以包括:空气质量参数对应的第一组件,用户选择的第二组件可以包括:向空气净化器发送Notification,以通知空气净化器开启等,则空气质量参数对应的第一组件可用于确定触发条件,“向空气净化器发送Notification”可用于确定服务方式。
在本申请的一种可选实施例中,当场景服务涉及两种或者两种以上的信号流时,用户选择的组件还可以包括:第三组件,该第三组件可用于表征信号流之间的逻辑关系,则所述触发条件可根据用户选择的第一组件以及用户选择的第三组件表征的逻辑关系确定。
在本申请的一种应用示例中,假设场景服务为:中午到达某商圈时,提供预置卡片;则用户选择的第一组件可以包括:地理围栏和Time,用户选择的第三组件可以包括:AND,用户选择的第二组件可以包括:Card,则触发条件可根据地理围栏、Time、以及AND表征的逻辑关系确定。
在实际应用中,可以对用户选择的第一组件和第三组件进行分析,以得到第一组件表征的至少两种信号流之间的逻辑关系。
可选地,可以利用预置规则,进行用户选择的第一组件和第三组件的分析;例如,该预置规则可以包括:不支持同类型的第一组件之间的连接,则在第三组件的数量为1,第一组件的数量大于等于2时,可以通过该第三组件表征多个第一组件对应信号流之间的逻辑关系。例如,用户选择的第一组件包括:地理围栏和Time,用户选择的第三组件包括:AND,则AND可以表征地理围栏和Time之间的逻辑关系。
可选地,可以按照第一组件和第三组件被用户选择的顺序,进行用户选择的第一组件和第三组件的分析;例如,用户依次选择了:第一组件GeoFence、第一组件Time、第三组件AND、第一组件Headphone和第三组件OR,则可以通过最近邻的第三组件AND表征第一组件GeoFence、第一组件Time之间的逻辑关系;以及,通过最近邻的第三组件OR表征第一组件Headphone与其他第一组件之间的逻辑关系。
在实际应用中,还可以依据用户的指令,得到第一组件表征的至少两种信号流之间的逻辑关系。例如,可以按照图1根据用户选择的组件,生成表征场景服务的显示界面,以使用户通过针对该显示界面的界面操作,指定第一组件与第三组件之间的连接,进而可以得到第一组件表征的至少两种信号流之间的逻辑关系。
在本申请的一种实施例中,可以不直接依据所述用户选择的组件,生成场景服务的可执行代码,而是依据所述用户选择的组件生成对应的标记语言文件;可选地,上述所述依据所述用户选择的组件,生成场景服务的标记语言文件或者可执行代码的步骤602,可以包括:依据所述用户选择的组件的参数,将所述用户选择的组件转换为场景服务的标记语言文件的属性项;依据所述用户选择的组件之间的关系,确定所述标记语言文件的属性项之间的关系。其中,用户选择的组件的参数可以源自预置代码或者配置文件,假设组件的参数包括:名称和属性,则组件可被转换为标记语言文件的一个属性项<名称属性1属性2…属性n>,其中n为正整数。
在本申请的再一种可选实施例中,在所述依据所述用户选择的组件之间的关系,确定所述标记语言文件的属性项之间的关系的步骤之前,所述方法还可以包括:获取表征所述用户选择的组件之间的关系的目标图形,并依据所述目标图形中节点之间的父子关系,确定所述用户选择的组件之间的关系。
本申请实施例可以依据所述用户选择的组件生成场景服务的可执行代码,以供使用。上述依据所述用户选择的组件,生成所述场景服务的标记语言文件或者可执行代码的步骤602,可以包括:依据所述用户选择的组件的参数,将所述用户选择的组件转换为所述场景服务的可执行代码的属性项;依据所述用户选择的组件之间的关系,确定所述可执行代码的属性项之间的关系。
在本申请的一种可选实施例中,本申请实施例的方法还可以包括:针对所述用户选择的第一组件,显示所述第一组件表征的信号流的参数配置界面;依据用户通过所述参数配置界面输入的内容,对所述第一组件的参数进行更新,则所述标记语言文件或者可执行代码中可以包括:所述第一组件表征的信号流的最新参数。本可选实施例可以针对第一组件提供参数配置界面,以使用户通过该参数配置界面实现对于组件的参数的配置。
在本申请的一种可选实施例中,本申请实施例的方法还可以包括:在组件区显示组件;则所述接收用户选择的组件的步骤,可以包括:响应于用户对于所述组件区中显示的组件的第一触发操作,将所述第一触发操作对应的组件作为用户选择的组件。组件区可用于显示供选择的组件,本申请实施例可以通过组件区向用户提供组件的选择接口,以使用户通过该选择接口进行所需组件的选择。
在本申请的另一种可选实施例中,所述在组件区显示组件的步骤,具体可以包括:解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件;将所述配置文件或者预置代码包含的组件显示到组件区。
上述配置文件可用于进行组件的配置,其中,上述配置文件中可以包括:第一组件、第二组件、第三组件等类型的组件所对应的组件配置项,以使用户针对所需的组件配置所需的组件配置项。上述预置代码可以为用户针对组件预先编写的代码。
随着终端技术的发展,终端设备所具备的场景感知能力越来越强,故第一组件的数量会越来越多,这容易出现一个屏幕无法显示所有组件的问题,进而增加用户从所有的组件中选择所需的组件的难度。针对上述问题,在本申请的一种可选实施例中,所述在组件区显示组件的步骤,可以包括:显示组件对应的标签;响应于用户对于所述标签的选择操作,在组件区显示用户选择的标签所对应的组件。上述标签可用于标志组件的分类或者内容,标签与组件之间可以为一对多的关系,这样,可以使用户基于标签进行组件的筛选,进而降低用户选择组件的难度。
例如,可以依据信号流类型对第一组件进行分类,以得到第一组件的分类标签,可选地,第一组件的分类标签可以包括:软件、传感器、地理位置、时间、天气、接口、硬件等。又如,可以预置一些场景标签,并建立场景标签与第一组件之间的对应关系,例如,上述场景标签可以包括:物联网场景、地理位置场景、运动场景等等,则可以获取场景标签对应的第一组件,以得到场景标签与第一组件。同理,在第二组件或者第三组件的数量较多时,也可以针对第二组件或者第三组件预置对应的分类标签或者场景标签,以降低用户选择组件的难度。例如,可以基于服务方式的类型,预置第三组件的分类标签,可以理解,本申请实施例对于组件对应的标签的具体确定方式不加以限制。
对于图6所示实施例而言,由于其场景服务的生成过程与图1所示实施例中场景服务的生成过程类似,故在此不作赘述,相互参照即可。
综上,本申请实施例的场景服务的生成方法,可以依据所述用户选择的组件,生成所述场景服务的标记语言文件或者可执行代码;由于本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择操作,因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升了用户的生成体验。
另外,本申请实施例可以依据所述用户选择的组件生成场景服务的标记语言文件;相对于适用于任意平台(如操作系统平台、应用平台等任意的使用场景服务的平台)的可执行代码,标记语言文件的结构更清晰,易读性更强,故可以使用户更容易理解其所描述的图形的意义,也即,本申请实施例能够通过标记语言文件清晰地描绘出特定场景所提供的特定服务;并且,本申请实施例的标记语言文件可以不关注平台的具体实现,故能够很好地与平台解耦,这样,可以使不同平台基于该标记语言文件生成平台下的可执行代码,因此本申请实施例的标记语言文件具有跨平台的特性,方便场景服务的移植。
在本申请的一种可选实施例中,在步骤102或者步骤602得到所述场景服务的标记语言文件或者可执行代码后,还可以通过执行场景服务的可执行代码,以提供所述场景服务。相应地,本申请实施例的方法还可以包括:依据获取的信号流,确定对应的目标场景服务;获取基于所述目标场景服务的显示界面或者标记语言文件得到的可执行代码;执行所述可执行代码,以提供所述目标场景服务。由此可以基于信号流感知的场景自动执行对应的场景服务,故可以提高操作的便捷性和服务的智能性。
终端设备的系统运行过程中可以获取到任意的信号流,则可以依据获取的信号流,在场景服务与信号流之间的订阅关系中进行查找,以得到上述信号流对应的目标场景服务。以场景服务为“中午到达某商圈时提供预置Card”为例,该场景服务订阅的信号流为“时间为12:00-14:00,地理位置在预设地理位置范围内”,则在获取的时间信号和地理位置信号与该场景服务订阅的信号流相匹配时,可以将该场景服务作为目标场景服务。
在确定信号流对应的目标场景服务后,本申请实施例可以获取基于所述目标场景服务的显示界面或者标记语言文件转换得到的可执行代码,并通过执行该可执行代码,向用户提供上述目标场景服务。
在本申请的一种可选实施例中,所述获取基于所述标记语言文件转换得到的可执行代码的步骤,可以包括:采用当前平台的翻译引擎,将所述目标场景服务的标记语言文件转换为所述当前平台能够执行的可执行代码。例如,若当前平台为云OS,则可以将标记语言文件转换为云OS环境下的Context Agent Engine能够执行的可执行代码;同理,其他平台也可以将目标场景服务的标记语言文件转换为自身能够执行的可执行代码。在将所述目标场景服务的标记语言文件转换为所述当前平台能够执行的可执行代码后,即可在当前平台提供对应的目标场景服务。
在实际应用中,当前平台的翻译引擎可以采用任意的标记语言到二进制的转换方法,目标场景服务的标记语言文件转换为自身能够执行的可执行代码,本申请实施例对于翻译引擎所采用的具体转换方法不加以限制。
本申请实施例中,可通过图7-8所示的服务提供架构来提供前述的场景服务。本申请实施例可以结合该服务提供架构,来对监听到的信号流进行相应的处理,从而能够在系统层面自动判断监听的信号流是否符合场景服务的触发条件(也即场景),若是,则通过服务方式提供对应的场景服务,该服务提供架构可以应用于IOS、Android、YunOS系统等操作系统的环境中。
本申请实施例中,应用程序可以具有服务代理agent,服务代理agent用于感知场景服务的场景并执行逻辑处理,则服务代理agent在具体设备和环境绑定后的实例AgentInstance可以为,应用程序中服务代理agent的运行态即运行载体。因此,应用程序基于服务代理agent进行对场景的感知和处理,即应用程序在系统运行后台服务service监听信号后通过服务代理agent感知场景并进行逻辑处理。
在开发出服务代理后,应用程序及操作系统,可以基于该服务提供架构执行自动化的场景服务。例如可以在接收到信号流后确定服务代理,从而感知该信号流对应服务的服务指示信息,并且确定该服务指示信息的处理逻辑,并执行相应的处理。
如图7A所示的一种服务系统的示例架构图,该服务系统可包括感知和处理的设备(或平台),如手机、平板电脑、可穿戴设备等移动设备,还可以包括IOT设备如智能冰箱、智能烤箱、智能空调、灯光系统等设备。因此可先将IOT设备和物联网操作系统连接,从而能够处理IOT设备的信号。手机、平板电脑等设备的物联网操作系统可与至少一个IOT设备建立连接。然后操作系统获取该IOT设备对应场景的数据适配器,基于该数据适配器能够适配信号并执行逻辑处理。其中,一个数据适配器可以适配一个或多个信号,基于数据适配器能够对信号进行注册、注销以及逻辑判断等处理。因此IOT设备产生、获取信号后,可以将该信号发送给服务平台如操作系统,对应服务平台可接收信号,然后采用数据适配器对应信号进行解析,从而能够感知该信号对应的应用场景,执行对应的处理操作,给用户提供场景服务。其中,依据所述数据适配器对所述信号进行处理后,可发送处理得到的信号给应用程序或操作系统,应用程序或操作系统可基于信号确定对应的服务代理,依据该服务代理执行相应的处理。
例如手机操作系统接收温度信号,感知到气温超过30°,基于该信号确定满足服务条件的服务代理,然后基于该服务代理的服务指示信息可以控制家中的空调启动运行;又如操作系统接收到安保信号基于该信号确定至少一个服务代理,然后确定该信号表征家中已锁门无人,可确定为灯光控制代理,获取该灯光控制代理的服务指示信息,基于该服务指示信息可以控制关闭家中的电灯等电器,防止资源浪费。
以一种设备对应操作系统下的环境为例。可在系统层面打造场景引擎基础设施和场景开发框架,在系统底层提供场景感知能力,在动态语言(Javascript)基础上提供反应式编程模型(Reactive Programming),并以统一的协议接入IOT设备。主体架构如下图7B所示:
主体架构主要包括三个模块:上层应用(Context Agent Host)、代理应用框架(Context Agent Framework)和代理引擎(Context Agent Engine),上述三个模块的关系如图8A所示,代理引擎管理上层应用,上层应用依赖于代理应用框架。其中:
上层应用(Context Agent Host)指的是具备场景感知能力的应用容器,它继承于最基本的应用单元或称服务组件(Page),用户可以通过它生成若干场景服务,并作为应用在系统中运行。具体地,用户可以通过本申请实施例的场景服务的生成方法,生成所需的场景服务,场景服务的可执行代码可由上层应用执行。
代理应用框架(Context Agent Framework)指的是场景引擎应用框架,系统底层通过此框架给上层应用(ContextAgentHost)提供场景感知和场景服务能力。
代理引擎(Context Agent Engine)指的是场景引擎系统服务,它是系统内置的独立服务,负责管理上层应用(ContextAgentHost)。
其中,上层应用(ContextAgentHost)包括各种场景应用如ContextAgentA、B、C。
代理应用框架(Context Agent Framework)包括:信号流(SignalStream)、订阅关系(Subscription)、处理任务(Actuator)、代理实例(Agent Instance),上述各模块基于JavaScript实现处理逻辑。
代理引擎(Context Agent Engine)包括:场景管理(Agent Management)、任务调度管理(Execution Scheduling)、安全监控(Security Gatekeeper)、信号流管理(StreamManagement)、订阅管理(Subscription Management)和任务管理(Actuator Management)。
开发者基于上层应用开发各个场景应用,一个场景应用可以包括如下组成部分,如图8B所示:
应用包(Cloud App Package):是一个场景应用的整个应用包,可以通过domain来标识。
服务组件(Page):是应用的最基本单元,Context Agent Host继承于它,代表一个具有场景化感知和服务能力的服务组件。
视图(Page Cover):是应用中的视图模块,在场景服务中负责人机交互的部分。
信息实体(Page Link):可具有应用之间交互的协议,通过信息实体可以唤起场景应用,也可以连接其他类型应用。
从而基于应用包下载到终端设备本地后,在感知应用场景后启动场景应用提供相应的服务,并且可以提供人机交互界面,便于用户进行控制。
本实施例中,代理应用框架给上层提供场景感知和服务能力,具体分为信号流(SignalStream)、订阅关系(Subscription)、处理任务(Actuator)、服务代理和代理实例(Agent Instance),以上各个组成部分之间的关系如图8C所示,其中:
服务代理(Agent):是一个完整场景的逻辑单元,通过服务代理来描述一个场景的感知以及逻辑处理。
服务实例(Agent Instance):是一个服务实例在具体设备和环境绑定后的实例。
信号流(SignalStream):代表信号流,它负责收集和处理各种设备或者信号,通过信号的各种操作,给上层应用提供场景感知的能力,Agent通过信号流组织关于场景感知的逻辑。
订阅关系(Subscription):代表在一个场景里对各种信号的订阅关系,通过订阅关系来连接场景感知和服务。
处理任务(Actuator):代表在场景服务里可以使用的具体执行任务,它是场景感知和逻辑处理后实际的服务任务,比如感知到天气闷热后,控制空调启动。
代理引擎(Context Agent Engine)负责管理各个场景应用,并维护应用的生命周期,一个应用的生命周期如下图8D所示,其中:
创建阶段(Created):代表应用的已创建状态,表征用户目标机器上已安装了此场景应用。
运行阶段(Running):代表运行中状态,处于此状态的应用会按服务代理组织的逻辑来运转。
冻结阶段(Froze):代表冻结状态,处于此状态的应用不会占用系统资源,也不会运行场景服务,但可以被代理引擎重新唤起和运行。
结束阶段(Disposed):代表完结和停止状态。
各状态间的流转由代理引擎控制,如图8E所示,其中包括:依据代理引擎和代理控制界面(Agent Control UI)创建上层应用(Context Agent Host);代理引擎控制上层应用为冻结状态,以及恢复上层应用的运行状态;代理引擎控制上层应用完结,并且DPMS停止服务。其中,DPMS(Dynamic Page Manager Service,动态页面管理服务),是服务组件(Page)运行期实例的管理的服务端,一般是指服务进程。
以下实施例以YunOS为例,描述基于YunOS的服务组件管理,其中:
(1)服务组件Page
服务组件Page也可以称为服务组件,是对本地服务和远程服务的抽象,也即应用服务的基本单元,通过对数据和方法的封装,可以提供各种服务。一个服务场景可以包括多个服务组件Page。举例来说,一个服务组件Page可以是UI(用户界面)、拍照等服务,也可以是后台服务,如账户认证。运行态服务组件Page称为服务组件实例,是本地服务或远程服务的运行载体,可由DPMS创建(比如DPMS收到PageA发送的指向PageB的PageLink后可创建PageB的实例)、调度、管理,DPMS可维护服务组件实例的生命周期。
每个服务组件可以在YunOS中被唯一标识,比如可以使用URI(Uniform ResourceIdentifier,唯一资源标识符)对服务组件进行标识。URI可以通过各种方式生成,只要可以保证唯一性即可,本申请并不对URI的生成方式进行限制。
URI可以理解为一个地址链接,通过该URI可以唯一地确定出其对应的服务组件。例如,为了便于区分服务组件提供的服务,为该服务组件分配的URI中可以选择性地包括该服务的相关信息,例如:服务名称、服务内容、服务提供方等。
例如:A公司提供的日历服务,为其对应的服务组件分配的URI可以如下:
Page://calendar.a.com
其中:“Page://”用于区分该地址为Page对应的地址,以和其他类型的地址区分;“calendar”表示提供的服务名称;“a”表示该服务的提供方。
根据场景需求,一个服务组件可能需要创建多个服务组件实例,为便于区分同一服务组件的不同实例,可以进一步为每个服务组件实例分配唯一的Page ID进行标识,该标识可以在服务组件实例被创建时分配。服务组件实例是指服务组件的运行态,即本地或远程服务的运行载体,由DPMS创建调度并管理其生命周期。进一步地,该Page ID可以被携带在信息实体PageLink中传递。
服务组件之间可以传递事件和/或数据,服务组件可以通过UI与用户进行交互,以提供服务,如图8F所示,PageA可以向PageB发送事件(Event),并从PageB获取返回的数据(Data),PageA可以通过UI与用户交互。其中,PageA可以提供服务A,PageB可以提供服务B。进一步地,PageA还可以以UI方式向用户提供显示界面,通过该界面为用户展示服务以及接收用户的各种输入,PageB可以主要在后台运行,可以为其他Page提供服务支持。
服务组件Page可被创建和销毁。服务组件从创建到销毁有三种状态:
Created(建立)状态:表示服务组件被创建,Page被创建(即被实例化)后首先进入建立状态;
Running(运行)状态:服务组件被激活后进入运行状态,运行状态下的服务组件之间能够传递事件和/或数据,以及能够处理其他运行状态的服务组件传递来的事件和/或数据;
Stopped(停止)状态:服务组件被去激活后进入停止状态,停止状态下的服务组件不能够与其他服务组件进行事件和/或数据的传递。
服务组件可在上述不同状态之间进行转换,并在转换的时接收到生命事件通知,该生命事件通知用于指示服务组件转换后的状态。其中,服务组件的状态转换以及生命事件通知可以由DPMS控制。图8G示出了服务组件状态转换示意图,如图8G所示,当服务组件从建立状态进入运行状态时,会收到开始(onStart)事件,当服务组件从运行状态进入停止状态时,会收到开始事件,服务组件在运行状态下,可以通过连接(onLink)接口接收到其他服务组件发来的信息实体。。其中,开始事件是用于指示服务组件开始进入运行状态的生命事件通知,开始事件是用于指示服务组件开始进入停止状态的生命事件通知。
若服务组件具有用UI(用户界面),则运行状态可以扩展成为以下三种状态中的一种:
Hided(隐藏)状态:隐藏状态下的服务组件Page能够在后台运行,对于用户来说不可见;
Showed-inactive(可见地非交互)状态:可见地非交互Showed-inactive状态下的服务组件Page对于用户来说可见,但是不响应用户输入;
Showed-active(可见地交互)状态:可见地交互Showed-active状态下的服务组件Page对用户来说可见,并且可以响应用户输入。
例如:PageA为全屏窗口,PageB为非全屏窗口,当PageB在PageA之上显示时,PageA是可见地非交互(Showed-inactive)状态,PageB是可见地交互(Showed-active)状态。
通过生命事件通知,服务组件Page可在上述不同状态之间进行转换。图8H示出了服务组件Page的状态转换示意图,如图所示,隐藏状态下的服务组件Page收到开始事件后进入可见地非交互Showed-inactive状态,可见地非交互Showed-inactive状态下的服务组件Page收到隐藏onHide事件后进入隐藏Hided状态;可见地非交互Showed-inactive状态下的服务组件Page收到活动onActive事件后进入可见地交互Showed-active状态,Showed-active状态下的服务组件Page收到交互onInactive事件后进入可见地非交互Showed-inactive状态。
(2)PageLink
PageLink是服务组件Page之间流转的信息实体,可以在服务组件Page间传递信息,例如,事件和/或数据等。具体传递数据可以使用设定的API(Application ProgrammingInterface,应用程序编程接口),YunOS以此为基础记录服务组件之间的关联关系。信息实体PageLink可以指定目标服务组件Page的URI,并且可以包含事件、数据、服务等信息中的一种或多种。
服务组件Page通过信息实体PageLink以更加灵活的方式的组合,可以实现丰富的服务场景。
(3)DPMS
DPMS是Dynamic Page Manager Service的英文简称,中文称为动态Page管理服务,可以被看作是服务组件管理实体,是一种系统服务。DPMS可以管理服务组件Page生命周期以及运行时调度,Page从创建到销毁的生命周期管理,以及服务组件间经信息实体PageLink的交互都可以通过DPMS实现。
基于以上描述,本申请实施例提供了一种服务组件管理系统,该系统可包括服务组件管理实体以及N个(N为大于1的整数)服务组件。基于该架构,服务组件管理实体可接收一个服务组件(为方便描述,此处称为第一服务组件)发送的指向另一个服务组件(为方便描述,此处称为第二服务组件的信息实体),并发送该信息实体给第二服务组件进行处理。
基于上述架构和概述,本申请实施例可以结合上述架构论述场景感知服务的方法,感知用户所需的场景,为用户提供所需的各种服务。
在开发出应用程序后,可以基于上述架构提供自动化的场景服务。例如可以在接收到信号流后确定服务代理,从而感知该信号流对应场景服务的服务指示信息,并且确定该服务指示信息的处理逻辑,从而调用上层应用运行场景应用进行处理。例如接收到烤箱停止运行的信号后,感知提醒场景提供用户食物暂停处理需要人工操作等,在人工操作完毕接收到烤箱门关闭信号后再次启动烤箱,又如接收到卧室电灯开启信号,感知使用卧室的场景,则可管理廊灯,防止资源浪费。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
本申请实施例还提供了一种场景服务的生成装置。
参照图9,示出了本申请的一种场景服务的生成装置实施例的结构框图,具体可以包括如下模块:
界面生成模块901,用于根据用户对组件的选择,生成表征场景服务的显示界面;其中,所述显示界面至少可以包括:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件;以及
文件代码生成模块902,用于依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码;其中,所述标记语言文件或者可执行代码中包括所述场景服务的触发条件以及服务方式,所述触发条件可根据所述显示界面中第一组件确定,所述服务方式可根据所述显示界面中的第二组件确定。
可选地,所述显示界面还可以包括:用于表征信号流之间逻辑关系的第三组件,则所述触发条件根据所述显示界面中第一组件以及所述第三组件表征的逻辑关系确定。
可选地,所述界面生成模块901可以包括:
组件接收子模块,用于接收用户选择的组件;
组件连接子模块,用于针对所述用户选择的组件,建立其中包含的组件之间的连接,以得到表征场景服务的显示界面。
可选地,所述装置还可以包括:
组件显示模块,用于在组件区显示组件;
则所述组件接收子模块可以包括:
触发选择单元,用于响应于用户对于所述组件区中显示的组件的第一触发操作,将所述第一触发操作对应的组件作为用户选择的组件。
可选地,所述组件显示模块可以包括:
标签显示子模块,用于显示组件对应的标签;
标签选择子模块,用于响应于用户对于所述标签的选择操作,在组件区显示用户选择的标签所对应的组件。
可选地,所述组件显示模块可以包括:
解析子模块,用于解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件;
显示子模块,用于将所述配置文件或者预置代码包含的组件显示到组件区。
可选地,上述装置还可以包括:
配置文件获取模块,用于接收用户在配置文件模板中输入的组件配置项,将输入组件配置项后的配置文件模板作为配置文件。
可选地,上述组件连接子模块可以包括:
组件显示单元,用于在绘制区显示用户选择的组件;
连接建立单元,用于响应于用户在所述绘制区内产生的连接操作,建立所述绘制区中组件之间的连接,将所述绘制区对应的界面作为表征场景服务的显示界面。
可选地,所述连接建立单元可以包括:
操作接收子单元,用于接收用户针对用户选择的两个组件产生的连接操作;
判断子单元,用于判断所述连接操作涉及的两个组件的类型是否符合预置的绘制条件;若是,则执行所述连接操作;
其中,所述预置的绘制条件可以包括:所述连接操作涉及的两个组件的类型不同,或者,所述连接操作涉及的两个组件均为第三组件。
可选地,所述装置还可以包括:
配置界面显示模块,用于针对所述用户选择的第一组件,显示所述第一组件表征的信号流的参数配置界面;
参数更新模块,用于依据用户通过所述参数配置界面输入的内容,对所述第一组件的参数进行更新,则所述标记语言文件或者可执行代码中可以包括:所述第一组件表征的信号流的最新参数。
可选地,所述配置界面显示模块可以包括:
界面显示子模块,用于响应于用户对于绘制区显示的所述第一组件的第二触发操作,在参数区显示所述第二触发操作对应第一组件的参数配置界面。
可选地,所述文件代码生成模块902可以包括:
转换子模块,用于依据所述显示界面所包括组件对应的参数,将所述显示界面所包括组件转换为所述场景服务的标记语言文件的属性项;
关系确定子模块,用于依据所述显示界面所包括组件之间的连接关系,确定所述标记语言文件的属性项之间的关系。
可选地,所述显示界面可以包括:目标图形,则所述显示界面所包括组件之间的连接关系可以包括:所述目标图形中节点之间的父子关系。
可选地,所述装置还可以包括:
服务确定模块,用于依据获取的信号流,确定对应的目标场景服务;
代码获取模块,用于获取基于所述目标场景服务的显示界面或者标记语言文件得到的可执行代码;
代码执行模块,用于执行所述可执行代码,以提供所述目标场景服务。
可选地,所述代码获取模块可以包括:
标记语言翻译子模块,用于采用当前平台的翻译引擎,将所述目标场景服务的标记语言文件转换为所述当前平台能够执行的可执行代码。
综上,本申请实施例的场景服务的生成装置,可以根据用户对组件的选择,生成表征场景服务的显示界面,并依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码;由于本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择操作和界面操作,因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升了用户的生成体验。
参照图10,示出了本申请的另一种基于场景的生成装置实施例的结构框图,具体可以包括如下模块:
组件接收模块1001,用于接收用户选择的组件;其中,所述组件包括:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件;以及
文件代码生成模块1002,用于依据所述用户选择的组件,生成场景服务的标记语言文件或者可执行代码;其中,所述标记语言文件或者可执行代码中包括所述场景服务的触发条件以及服务方式,所述触发条件根据用户选择的第一组件确定,所述服务方式根据用户选择的第二组件确定。
可选地,所述组件还可以包括:用于表征信号流之间逻辑关系的第三组件,则所述触发条件根据用户选择的第一组件以及用户选择的第三组件表征的逻辑关系确定。
可选地,所述文件代码生成模块1002可以包括:
转换子模块,用于依据所述用户选择的组件的参数,将所述用户选择的组件转换为场景服务的标记语言文件的属性项;
关系确定子模块,用于依据所述用户选择的组件之间的关系,确定所述标记语言文件的属性项之间的关系。
可选地,所述装置还可以包括:
目标图形获取模块,用于在所述关系确定子模块依据所述用户选择的组件之间的关系,确定所述标记语言文件的属性项之间的关系之前,获取表征所述用户选择的组件之间的关系的目标图形,并依据所述目标图形中节点之间的父子关系,确定所述用户选择的组件之间的关系。
可选地,所述装置还可以包括:
配置界面显示模块,用于针对所述用户选择的第一组件,显示所述第一组件表征的信号流的参数配置界面;
参数更新模块,用于依据用户通过所述参数配置界面输入的内容,对所述第一组件的参数进行更新,则所述标记语言文件或者可执行代码中可以包括:所述第一组件表征的信号流的最新参数。
可选地,所述装置还可以包括:
组件显示模块,用于在组件区显示组件;
则所述组件接收子模块可以包括:
触发选择单元,用于响应于用户对于所述组件区中显示的组件的第一触发操作,将所述第一触发操作对应的组件作为用户选择的组件。
可选地,所述组件显示模块可以包括:
标签显示子模块,用于显示组件对应的标签;
标签选择子模块,用于响应于用户对于所述标签的选择操作,在组件区显示用户选择的标签所对应的组件。
可选地,所述组件显示模块可以包括:
解析子模块,用于解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件;
显示子模块,用于将所述配置文件或者预置代码包含的组件显示到组件区。
可选地,所述装置还可以包括:
服务确定模块,用于依据获取的信号流,确定对应的目标场景服务;
代码获取模块,用于获取所述目标场景服务的可执行代码;所述获取所述目标场景服务的可执行代码包括:依据所述目标场景服务的标记语言文件,得到对应的可执行代码;
代码执行模块,用于执行所述可执行代码,以提供所述目标场景服务。
综上,本申请实施例的场景服务的生成装置,可以依据所述用户选择的组件,生成所述场景服务的标记语言文件或者可执行代码;由于本申请实施例可以将枯燥且难于理解的代码编写、转化成组件的选择操作,因此不仅能够降低场景服务生成的门槛,而且能够有效提升场景服务的生成效率,进而提升了用户的生成体验。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中场景服务的生成方法所包含步骤的指令(instructions)。
图11为本申请一实施例提供的终端设备的硬件结构示意图。如图11所示,该终端设备可以包括:输入设备1100、处理器1101、输出设备1102、存储器1103和至少一个通信总线1104。通信总线1104用于实现元件之间的通信连接。存储器1103可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器1103中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器1101例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器1101通过有线或无线连接耦合到上述输入设备1100和输出设备1102。
可选的,上述输入设备1100可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备1102可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图12为本申请的一个实施例提供的终端设备的硬件结构示意图。图12是对图11在实现过程中的一个具体的实施例。如图12所示,本实施例的终端设备可以包括处理器1201以及存储器1202。
处理器1201执行存储器1202所存放的计算机程序代码,实现上述实施例中图1、图6的场景服务的生成方法。
存储器1202被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器1202可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器1201设置在处理组件1200中。该终端设备还可以包括:通信组件1203,电源组件1204,多媒体组件1205,音频组件1206,输入/输出接口1207和/或传感器组件1208。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件1200通常控制终端设备的整体操作。处理组件1200可以包括一个或多个处理器1201来执行指令,以完成上述图1、图6所示方法的全部或部分步骤。此外,处理组件1200可以包括一个或多个模块,便于处理组件1200和其他组件之间的交互。例如,处理组件1200可以包括多媒体模块,以方便多媒体组件1205和处理组件1200之间的交互。
电源组件1204为终端设备的各种组件提供电力。电源组件1204可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件1205包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件1206被配置为输出和/或输入音频信号。例如,音频组件1206包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1202或经由通信组件1203发送。在一些实施例中,音频组件1206还包括一个扬声器,用于输出音频信号。
输入/输出接口1207为处理组件1200和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件1208包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件1208可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件1208可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件1208还可以包括摄像头等。
通信组件1203被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务器建立通信。
由上可知,在图12实施例中所涉及的通信组件1203、音频组件1206以及输入/输出接口1207、传感器组件1208均可以作为图11实施例中的输入设备的实现方式。
在本申请的一些实施例中,服务器可以包括:处理器和输入组件;所述输入组件,耦合至所述处理器,接收用户对组件的选择,并向所述处理器发送所述用户对组件的选择;所述处理器,根据用户对组件的选择,生成表征场景服务的显示界面;其中,所述显示界面至少包括:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件;依据所述场景服务的显示界面,生成所述场景服务的标记语言文件或者可执行代码;其中,所述标记语言文件或者可执行代码中包括所述场景服务的触发条件以及服务方式,所述触发条件根据所述显示界面中第一组件确定,所述服务方式根据所述显示界面中的第二组件确定。
所述显示界面还包括:用于表征信号流之间逻辑关系的第三组件,则所述触发条件根据所述显示界面中第一组件以及所述第三组件表征的逻辑关系确定。
所述处理器,接收用户选择的组件;针对所述用户选择的组件,建立其中包含的组件之间的连接,以得到表征场景服务的显示界面。
所述处理器,在组件区显示组件;响应于用户对于所述组件区中显示的组件的第一触发操作,将所述第一触发操作对应的组件作为用户选择的组件。
所述处理器,显示组件对应的标签;响应于用户对于所述标签的选择操作,在组件区显示用户选择的标签所对应的组件。
所述处理器,解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件;将所述配置文件或者预置代码包含的组件显示到组件区。
所述处理器,接收用户在配置文件模板中输入的组件配置项,将输入组件配置项后的配置文件模板作为配置文件。
所述处理器,在绘制区显示用户选择的组件;响应于用户在所述绘制区内产生的连接操作,建立所述绘制区中组件之间的连接,将所述绘制区对应的界面作为表征场景服务的显示界面。
所述处理器,接收用户针对用户选择的两个组件产生的连接操作;判断所述连接操作涉及的两个组件的类型是否符合预置的绘制条件;若是,则执行所述连接操作;其中,所述预置的绘制条件包括:所述连接操作涉及的两个组件的类型不同,或者,所述连接操作涉及的两个组件均为第三组件。
所述处理器,针对所述用户选择的第一组件,显示所述第一组件表征的信号流的参数配置界面;依据用户通过所述参数配置界面输入的内容,对所述第一组件的参数进行更新,则所述标记语言文件或者可执行代码中包括:所述第一组件表征的信号流的最新参数。
所述处理器,响应于用户对于绘制区显示的所述第一组件的第二触发操作,在参数区显示所述第二触发操作对应第一组件的参数配置界面。
所述处理器,依据所述显示界面所包括组件对应的参数,将所述显示界面所包括组件转换为所述场景服务的标记语言文件的属性项;依据所述显示界面所包括组件之间的连接关系,确定所述标记语言文件的属性项之间的关系。
所述显示界面包括:目标图形,则所述显示界面所包括组件之间的连接关系包括:所述目标图形中节点之间的父子关系。
所述处理器,依据获取的信号流,确定对应的目标场景服务;获取基于所述目标场景服务的显示界面或者标记语言文件得到的可执行代码;执行所述可执行代码,以提供所述目标场景服务。
所述处理器,采用当前平台的翻译引擎,将所述目标场景服务的标记语言文件转换为所述当前平台能够执行的可执行代码。
在本申请的一些实施例中,终端设备可以包括:处理器和输入组件;所述输入组件,耦合至所述处理器,接收用户选择的组件,并向所述处理器发送所述用户选择的组件;其中,所述组件包括:用于表征信号流类型的第一组件、以及用于表征场景服务的服务方式的第二组件;所述处理器,依据所述用户选择的组件,生成场景服务的标记语言文件或者可执行代码;其中,所述标记语言文件或者可执行代码中包括所述场景服务的触发条件以及服务方式,所述触发条件根据用户选择的第一组件确定,所述服务方式根据用户选择的第二组件确定。
所述组件还包括:用于表征信号流之间逻辑关系的第三组件,则所述触发条件根据用户选择的第一组件以及用户选择的第三组件表征的逻辑关系确定。
所述处理器,依据所述用户选择的组件的参数,将所述用户选择的组件转换为场景服务的标记语言文件的属性项;依据所述用户选择的组件之间的关系,确定所述标记语言文件的属性项之间的关系。
所述处理器,在依据所述用户选择的组件之间的关系,确定所述标记语言文件的属性项之间的关系之前,获取表征所述用户选择的组件之间的关系的目标图形,并依据所述目标图形中节点之间的父子关系,确定所述用户选择的组件之间的关系。
所述处理器,针对所述用户选择的第一组件,显示对应的参数配置界面;依据用户通过所述参数配置界面输入的内容,对所述用户选择的第一组件的参数进行更新,则所述标记语言文件或者可执行代码中包括:所述第一组件表征的信号流的最新参数。
所述处理器,在组件区显示组件;响应于用户对于所述组件区中显示的组件的第一触发操作,将所述第一触发操作对应的组件作为用户选择的组件。
所述处理器,显示组件对应的标签;响应于用户对于所述标签的选择操作,在组件区显示用户选择的标签所对应的组件。
所述处理器,解析配置文件或者预置代码,以得到所述配置文件或者预置代码包含的组件;将所述配置文件或者预置代码包含的组件显示到组件区。
所述处理器,依据获取的信号流,确定对应的目标场景服务;获取所述目标场景服务的可执行代码;所述获取所述目标场景服务的可执行代码包括:依据所述目标场景服务的标记语言文件,得到对应的可执行代码;执行所述可执行代码,以提供所述目标场景服务。
本申请实施例还提供一种基于场景服务的操作系统,如图13所示,该终端设备的操作系统可以包括:代理应用框架1302、场景解析引擎1304和场景应用层1306。
代理应用框架1302,用于依据获取的信号流,确定对应的目标场景服务;
场景解析引擎1304,用于获取基于所述目标场景服务的显示界面或者标记语言文件得到的可执行代码;其中,所述标记语言文件为依据所述场景服务的显示界面得到;
场景应用层1306,用于执行所述可执行代码,以提供所述目标场景服务。
一种示例为应用于上述图7-8的服务提供框架,则代理应用框架为Context AgentFramework;场景解析引擎为Context Agent Engine;场景应用层为Context Agent Host。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被终端设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种场景服务的生成方法、一种场景服务的生成装置、以及一种终端设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。