发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网络应用的运行状态监控方法和应用服务器。
依据本发明的一个方面,本发明实施例提供了一种网络应用的运行状态监控方法,该网络应用在运行时具有不同的运行阶段,该方法包括下述步骤:
为网络应用的不同运行阶段设置相应的监测事件;与客户端建立网络连接,在客户端处开始启动网络应用;将与在客户端处运行的网络应用的运行阶段相对应的监测事件发送到客户端,以便当在客户端处网络应用运行到相应运行阶段时,触发与该运行阶段相对应的监测事件,使客户端将监测事件以及该监测事件对应的客户端信息和网络应用的信息传输至事件监控服务器,以使事件监控服务器获取网络应用的运行状态信息。
其中,上述为网络应用的不同运行阶段设置相应的监测事件包括:根据客户端处的用户类型选取需要监控的网络应用的运行阶段,且当客户端处的用户类型不同时所选取的运行阶段不相同;分别为选取的运行阶段设置至少一个监测事件。
其中,当网络应用为网络游戏应用时,上述根据客户端处的用户类型选取需要监控的网络应用的运行阶段包括:当客户端处的类型为已有用户时,选取的运行阶段包括第一阶段、第二阶段、第三阶段和/或第四阶段,当客户端处的类型为新用户时,选取的运行阶段包括第一阶段、第二阶段、第三阶段和/或第五阶段;
上述分别为选取的运行阶段设置至少一个监测事件包括:为第一阶段设置页面加载监测事件,为第二阶段设置动画Flash加载前监测事件,为第三阶段设置Flash加载完成监测事件,为第四阶段设置游戏进入成功监测事件,为第五阶段设置角色创建监测事件。
其中,将从客户端处启动网络应用开始到网络游戏应用的页面显示在客户端界面上的运行阶段,选取为第一阶段;将从第一阶段结束至客户端处启动加载网络游戏应用的Flash的运行阶段,选取为第二阶段;将从第二阶段结束至客户端处网络游戏应用的Flash加载完毕的运行阶段,选取为第三阶段;将从第三阶段结束至网络游戏应用的游戏场景页面显示在客户端界面上的运行阶段,选取为第四阶段;将从第三阶段结束至网络游戏应用成功创建了游戏角色的运行阶段,选取为第五阶段。
依据本发明的另一个方面,本发明实施例提供了一种应用服务器,包括网络应用以及监控事件控制器。其中,该网络应用在运行时具有不同的运行阶段,以及该监控事件控制器包括:
设置单元,适于为网络应用的不同运行阶段设置相应的监测事件;通信单元,适于将与在客户端处运行的网络应用的运行阶段相对应的监测事件发送到客户端,以便当在客户端处网络应用运行到相应运行阶段时,触发与该运行阶段相对应的监测事件,使客户端将监测事件以及该监测事件对应的客户端信息和网络应用的信息传输至事件监控服务器,以使事件监控服务器获取网络应用的运行状态信息。
其中,设置单元还包括事件选取模块和事件设置模块。该事件选取模块,适于根据客户端处的用户类型选取需要监控的网络应用的运行阶段,其中,当客户端处的用户类型不同时所选取的运行阶段不相同;该事件设置模块,适于分别为选取的运行阶段设置至少一个监测事件。
由上所述,本发明实施例通过分别为网络应用的不同运行阶段设置监测事件,当网络应用在客户端处运行到某一运行阶段时,触发该运行阶段对应的监测事件,以及收集所触发的监测事件、相应的网络应用以及运行该网络应用的客户端的信息的技术手段,能够在网络应用运行时对内部的各个运行阶段的状态进行监控,全面获知网络应用运行的状态,得到准确、全面的网络应用的运行情况数据,从而能够利用该运行情况数据准确分析出网络应用运行的特点,对网络应用的性能进行响应的改善和提升。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明一个实施例提供了一种通信系统。参见图1,该系统包括至少一个应用服务器300和至少一个客户端设备200以及事件监控服务器100。
应用服务器300包括网络应用311以及监控事件控制器310。
其中,网络应用311在运行时具有不同的运行阶段。不同特点的网络应用的运行阶段也不同。本实施例中的网络应用包括但不局限于网络视频应用、网络交友应用以及网络游戏应用等。
监控事件控制器310包括设置单元320和通信单元322。设置单元320适于为网络应用的不同运行阶段设置相应的监测事件。
可选的,设置单元320还包括事件选取模块3202和事件设置模块3204。该事件选取模块3202适于根据客户端处的用户类型选取需要监控的网络应用的运行阶段。举例而言,当客户端处的用户类型不同时所选取的运行阶段不相同。例如,客户端处的用户类型可以为第一次使用网络应用的新用户,或者,客户端处的用户类型为已经使用过网络应用的老用户。很多网络应用为不同用户类型提供的网络业务是不同的,例如,对网络交友应用,当用户类型为新用户时,网络交友应用会向相应客户端推送身份认证业务,身份认证成功后,再向新用户提供交友业务,而当用户类型为老用户时,网络交友应用会直接向相应客户端推送交友业务。又例如,当网络应用为网络游戏应用时,事件选取模块3202还适于当客户端处的类型为已有用户时,选取的运行阶段包括第一阶段、第二阶段、第三阶段和/或第四阶段,当客户端处的类型为新用户时,选取的运行阶段包括第一阶段、第二阶段、第三阶段和/或第五阶段。该第一阶段至第五阶段中的一个对应于网络应用本身具有的一个运行阶段,或者,该第一阶段至第五阶段中的一个对应于网络应用本身具有的多个运行阶段。
示例性的,对于网络游戏应用,事件选取模块3202将从客户端处启动网络应用开始到网络游戏应用的页面显示在客户端界面上的运行阶段,选取为第一阶段;将从第一阶段结束至客户端处启动加载网络游戏应用的Flash的运行阶段,选取为第二阶段;将从第二阶段结束至客户端处网络游戏应用的Flash加载完毕的运行阶段,选取为第三阶段;将从第三阶段结束至网络游戏应用的游戏场景页面显示在客户端界面上的运行阶段,选取为第四阶段;将从第三阶段结束至网络游戏应用成功创建了游戏角色的运行阶段,选取为第五阶段。
通过事件选取模块3202可以仅选取网络应用中某些关注的运行阶段进行监控,在保证监控质量的同时,尽量降低所需处理的监控数据量,或者,选取网络应用中的所有运行阶段进行监控以得到最全面的网络应用的运行状态。
事件设置模块3204适于分别为选取的运行阶段设置至少一个监测事件。例如,在网络应用为网络游戏应用的示例中,事件设置模块3204为第一阶段设置页面加载(pageload)监测事件,为第二阶段设置动画Flash加载前(beforeloadflash)监测事件,为第三阶段设置Flash加载完成(flashloaded)监测事件,为第四阶段设置游戏进入成功(entergame)监测事件,为第五阶段设置角色创建(playercreated)监测事件。上述每一事件分别对应于相应的运行阶段,当客户端处的网络游戏应用分别运行到某一运行阶段时,会触发相应的监测事件。
通信单元322适于将与在客户端处运行的网络应用的运行阶段相对应的监测事件发送到客户端,以便当在客户端处网络应用运行到相应运行阶段时,触发与该运行阶段相对应的监测事件,使客户端将所触发的监测事件以及该监测事件对应的客户端信息和网络应用的信息传输至事件监控服务器100,以使事件监控服务器100获取网络应用的运行状态信息。
应用服务器300还可以包括应用接口312。应用接口312建立应用服务器300和各个客户端200之间的通信连接。经由应用接口312,可以将网络应用传输到客户端来执行。可选地,可以经由应用接口312将网络应用的各个运行阶段分阶段传输到客户端来执行,并且还可以将网络应用的各个运行阶段以及监控事件控制器310所确定的、与各个运行阶段相对应的监测事件一起发送到客户端。
监控事件控制器310中的通信单元可以利用应用服务器300中的应用接口312将监控事件数据下载至客户端。
客户端设备200包括事件触发器212和应用执行器210。应用执行器210与提供网络应用311的应用服务器300建立网络连接,并在客户端上启动并执行网络应用。应用执行器210同时会接收来自应用服务器300的与在客户端处运行的网络应用311的运行阶段相对应的监测事件。当应用执行器210在客户端处运行网络应用并运行到相应运行阶段时,会触发与该运行阶段相对应的监测事件,以便由事件触发器212将所触发的监测事件以及该监测事件对应的客户端信息和网络应用的信息传输至事件监控服务器100,以使事件监控服务器100获取网络应用的运行状态信息。
其中,当网络应用为网络游戏应用时,应用执行器210和事件触发器212能够执行下述的一种或多种操作。
应用执行器210从客户端处启动网络游戏应用开始,当监测到客户端处网络游戏应用的运行数据包括显示在客户端界面上的页面数据时,确认网络游戏应用运行在第一阶段,触发与该第一阶段相对应的页面加载监测事件。页面加载监测事件为客户端设备200与应用服务器300连接成功,网络游戏应用在客户端处启动后到游戏页面展现时立即触发的事件。页面加载监测事件对应的客户端信息指示了尝试登录网络游戏的客户端用户的数量。
应用执行器210当监测到客户端处网络游戏应用的运行数据包括启动加载网络游戏应用的Flash的指示数据时,确认网络游戏应用运行在第二阶段,触发与该第二阶段相对应的Flash加载前监测事件。Flash加载前监测事件为在客户端开始加载游戏动画(Flash)时立刻触发的事件,Flash加载前监测事件对应的客户端信息指示了启动Flash加载的客户端用户的数量。第二阶段与第一阶段中客户端用户的数量的差值指示了登录过程中流失的客户端用户的数量。
应用执行器210当监测到客户端处网络游戏应用的运行数据包括网络游戏应用的Flash加载完毕的指示数据时,确认网络游戏应用运行在第三阶段,触发与该第三阶段相对应的Flash加载完成监测事件。Flash加载完成监测事件为Flash加载完毕、展现进入游戏/创建角色页面时触发的事件,Flash加载完成监测事件对应的客户端信息指示了执行完Flash加载的客户端用户的数量。第三阶段与第二阶段中客户端用户的数量的差值指示了Flash加载过程中流失的客户端用户的数量。对于不同类型的客户端用户,Flash加载完毕后网络游戏应用提供的业务会不相同,显示的页面不相同,
例如,对于老用户,Flash加载完毕后展现的是进入游戏页面,应用执行器210当监测到客户端处网络游戏应用的运行数据包括显示在客户端界面上的网络游戏应用的游戏场景页面数据时,确认网络游戏应用运行在第四阶段,触发与该第四阶段相对应的游戏进入成功监测事件。游戏进入成功监测事件为用户正式进入游戏场景、可以开始正式游戏时触发的事件,第四阶段与第三阶段中客户端用户的数量的差值指示了游戏进入过程中流失的客户端用户的数量。
而对于新用户,Flash加载完毕后展现的是创建角色页面。应用执行器210当监测到客户端处网络游戏应用的运行数据包括网络游戏应用成功创建了游戏角色的指示数据时,确认网络游戏应用运行在第五阶段,触发与该第五阶段相对应的角色创建监测事件。角色创建监测事件为接收到用户点击创建角色按钮发送的指令、成功创建角色时触发的事件,第五阶段与第四阶段中客户端用户的数量的差值指示了角色创建过程中流失的客户端用户的数量。
在上述监测事件被触发时,事件触发器212可以至少采用下述两种方式将信息上报至事件监控服务器100。
方式一、事件触发器212将所触发的监测事件的标识、客户端标识和网络应用标识设置在表述性状态转移(Representational State Transfer,REST)消息的消息体中,将REST消息发送至事件监控服务器100。下述显示了一条REST消息的示例:
var urlBase:String=http://XXX;
var param:String=“?game=cqgd&server=S 1&qid=23789524&event=entergame”;
var request:URLRequest=new URLRequest(urlBase+param);
该消息由地址部分(urlBase)和参数部分(param)组成。地址部分中http://XXX为事件监控服务器100的地址,参数部分中game表示网络(游戏)应用标识,event表示监控事件的标识,server表示网络(游戏)应用的区域服务器,一个网络应用可以由多个区域服务器,通过server来区别具体的区域服务器,qid表示客户端标识(如客户端上用户的id号)。
上述例子中的REST消息指示网络应用标识为cqgd,区域服务器为S 1,用户的标识为23789524,监测事件为entergame。
方式二、事件触发器212利用加载在网络应用页面中的脚本文件调用JavaScript接口,通过JavaScript接口将监测事件的标识、客户端标识和网络应用标识写入至事件监控服务器100中。
可以通过在网络应用的网页的超文本传输协议头(Html head)区域设置一段代码,利用该代码在网页中加载预先编写的脚本文件,如Javascript脚本文件,通过运行脚本文件调用JavaScript接口,利用JavaScript接口将监测事件的标识、客户端标识和网络应用标识写入至事件监控服务器100。
在本方式下,对每一个监测事件,可以预先对客户端标识和网络应用标识按照键值对(Key-Value)机制进行编码,调用JavaScript接口向事件监控服务器100写入信息的调用方式可以表示为:
_360G.game_event(evt,{′key1′:′val1′,′key2′:′val2′,′key3′:′val3′...});
其中,_360G.game_event表示JavaScript接口,evt表示监控事件,Key1、Key2、Key3可以分别对应于网络应用标识、区域服务器标识和客户端标识,而由Key1、Key2、Key3分别哈希计算得到的Val1、Val2、Val3各自对应于网络应用标识的取值、区域服务器标识的取值和客户端标识的取值。
图1中的事件监控服务器100可以包括事件接收器110、事件分析器112和事件存储器114。
事件接收器110适于接收客户端设备200上报的监测信息,该监测信息包括监测事件以及该监测事件对应的客户端信息和网络应用的信息,其中,不同的监测事件对应网络应用运行的不同阶段;
事件存储器114可以在事件接收器110接收客户端设备200上报的监测信息的同时,对接收到的监测信息进行存储。例如,事件存储器114设置一个日志文件,将接收到的监测信息都存储在日志文件中。
事件分析器112适于根据监测信息对在网络应用运行的不同阶段中的客户端的数量进行统计,并根据统计结果得到网络应用的运行状态信息。例如,事件分析器112从事件存储器存储的监测信息中提取针对同一网络应用的监测信息,利用提取出的监测信息对在该网络应用运行的不同阶段中的客户端的数量进行统计,从而获知网络应用的运行状态信息。例如,通过网络应用的运行状态信息获知网络应用在不同运行阶段的客户端流失情况,从而判断网络应用的需要改进的地方,有针对性地对网络应用进行优化,为提高网络应用质量进行导向。
由上所述,本发明实施例通过分别为网络应用的不同运行阶段设置监测事件,当网络应用在客户端处运行到某一运行阶段时,触发该运行阶段对应的监测事件,以及收集所触发的监测事件、相应的网络应用以及运行该网络应用的客户端的信息的技术手段,能够在网络应用运行时对内部的各个运行阶段的状态进行监控,全面获知网络应用运行的状态,得到准确、全面的网络应用的运行情况数据,从而能够利用该运行情况数据准确分析出网络应用运行的特点,对网络应用的性能进行响应的改善和提升。
本发明又一实施例还提供了一种网络应用的运行状态信息的获取方法,参见图2,该方法包括始于步骤S200,其中应用服务器与客户端设备建立连接。应用服务器接收到客户端设备发送的建立连接请求时,开始建立与客户端设备之间的连接,应用服务器向客户端设备返回建立连接成功消息,连接建立成功。在客户端处开始启动该应用服务器所提供的网络应用。
随后,在步骤S202中,应用服务器将监测事件发送到客户端。应用服务器可以预先为网络应用的不同运行阶段设置相应的监测事件,例如,应用服务器根据客户端处的用户类型选取需要监控的网络应用的运行阶段,当客户端处的用户类型不同时所选取的运行阶段不相同,如对于网络游戏应用,当客户端处的类型为已有用户时,应用服务器选取的运行阶段包括第一阶段、第二阶段、第三阶段和/或第四阶段,当客户端处的类型为新用户时,应用服务器选取的运行阶段包括第一阶段、第二阶段、第三阶段和/或第五阶段。示例性的,应用服务器将从客户端处启动网络应用开始到网络游戏应用的页面显示在客户端界面上的运行阶段,选取为第一阶段;将从第一阶段结束至客户端处启动加载网络游戏应用的Flash的运行阶段,选取为第二阶段;将从第二阶段结束至客户端处网络游戏应用的Flash加载完毕的运行阶段,选取为第三阶段;将从第三阶段结束至网络游戏应用的游戏场景页面显示在客户端界面上的运行阶段,选取为第四阶段;将从第三阶段结束至网络游戏应用成功创建了游戏角色的运行阶段,选取为第五阶段。
应用服务器分别为选取的运行阶段设置至少一个监测事件。仍以网络游戏应用为例,应用服务器为第一阶段设置页面加载监测事件,为第二阶段设置动画Flash加载前监测事件,为第三阶段设置Flash加载完成监测事件,为第四阶段设置游戏进入成功监测事件,为第五阶段设置角色创建监测事件。
可选地,网络应用可以分阶段传输中客户端处来运行,因此,在步骤S202中,应用服务器可以将与在客户端处运行的网络应用的运行阶段相对应的监测事件与该运行阶段一起发送到客户端。
随后,在步骤S204中,在客户端处,当网络应用运行到相应运行阶段时,触发在步骤S202接收的、与该运行阶段相对应的监测事件。
客户端设备接收来自应用服务器的与在客户端处运行的网络应用的运行阶段相对应的监测事件,并在监测到客户端处网络应用运行到相应运行阶段时,触发与该运行阶段相对应的监测事件,例如,当网络应用为网络游戏应用时,从客户端处启动网络游戏应用开始,当客户端设备监测到客户端处网络游戏应用的运行数据包括显示在客户端界面上的页面数据时,确认网络游戏应用运行在第一阶段,触发与该第一阶段相对应的页面加载监测事件;和/或,当客户端设备监测到客户端处网络游戏应用的运行数据包括启动加载网络游戏应用的Flash的指示数据时,确认网络游戏应用运行在第二阶段,触发与该第二阶段相对应的Flash加载前监测事件;和/或,当客户端设备监测到客户端处网络游戏应用的运行数据包括网络游戏应用的Flash加载完毕的指示数据时,确认网络游戏应用运行在第三阶段,触发与该第三阶段相对应的Flash加载完成监测事件;和/或,当客户端设备监测到客户端处网络游戏应用的运行数据包括显示在客户端界面上的网络游戏应用的游戏场景页面数据时,确认网络游戏应用运行在第四阶段,触发与该第四阶段相对应的游戏进入成功监测事件;和/或,当客户端设备监测到客户端处网络游戏应用的运行数据包括网络游戏应用成功创建了游戏角色的指示数据时,确认网络游戏应用运行在第五阶段,触发与该第五阶段相对应的角色创建监测事件。
随后,在步骤S206处,客户端设备将在步骤S204处触发的监测信息上报至事件监控服务器。上述监测信息包括监测事件以及该监测事件对应的客户端信息和网络应用的信息,其中,不同的监测事件对应网络应用运行的不同阶段。可以为不同的监测事件设置不同的标识,为不同客户端设置不同的客户端标识,为不同网络应用设置不同的网络应用标识,则上述客户端信息中包括客户端标识,网络应用的信息中包括网络应用标识。客户端设备可以将监测信息设置在REST消息中,将所REST消息发送至事件监控服务器,或者,客户端设备可以通过JavaScript接口将监测信息写入至事件监控服务器中。
在步骤S208中,事件监控服务器对监测信息进行统计。事件监控服务器可以对接收到的监测信息进行存储,在执行统计时,从存储的监测信息中提取针对同一网络应用的监测信息,利用提取出的监测信息对在该网络应用运行的不同阶段中的客户端的数量进行统计,并根据统计结果得到网络应用的运行状态信息。例如,事件监控服务器通过网络应用的运行状态信息获知网络应用在不同运行阶段的客户端流失情况,从而判断网络应用的需要改进的地方,有针对性地对网络应用进行优化,为提高网络应用质量进行导向。
应当注意的是,上面的步骤S202、S204、S206和S208可以为网络应用的每个运行阶段重复执行。
本发明方法实施例中各步骤的具体执行方式可以参见本发明系统实施例的相关内容,在此不再赘述。
由上所述,本发明实施例通过分别为网络应用的不同运行阶段设置监测事件,当网络应用在客户端处运行到某一运行阶段时,触发该运行阶段对应的监测事件,以及收集所触发的监测事件、相应的网络应用以及运行该网络应用的客户端的信息的技术手段,能够在网络应用运行时对内部的各个运行阶段的状态进行监控,全面获知网络应用运行的状态,得到准确、全面的网络应用的运行情况数据,从而能够利用该运行情况数据准确分析出网络应用运行的特点,对网络应用的性能进行响应的改善和提升。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。