专利汇可以提供基于云计算架构的网络服务聚合系统及其聚合方法专利检索,专利查询,专利分析的服务。并且本 发明 揭示了一种基于 云 计算架构的网络服务聚合系统及其聚合方法,所述系统包括客户端、Web 接口 服务器 、任务调度服务器、消息处理服务器、 数据库 服务器。Web接口服务器用以给客户端提供信息,并且处理和消息无关的数据。任务调度服务器负责监视消息处理服务器的资源消耗状态,并在Web接口服务器为登入用户索取相对空闲的消息处理服务器地址时返回,让Web接口服务器自行调用。消息处理服务器通过Web接口服务器与客户端连接,用户的网络服务在消息处理服务器进行登入、登出、状态管理、消息收发处理。本发明可支持各类网络服务,让处于不同平台的各个用户进行无障碍交流的环境。,下面是基于云计算架构的网络服务聚合系统及其聚合方法专利的具体信息内容。
1.一种基于云计算架构的网络服务聚合系统,其特征在于,所述系统包括:
客户端;
Web接口服务器,用以给客户端提供信息,并且处理和消息无关的数据;在用户登入时,向任务调度服务器索取相对空闲的消息处理服务器地址,操控和监视消息处理服务器,并即时将状况反馈给客户端;
任务调度服务器,负责监视消息处理服务器的资源消耗状态,并在Web接口服务器为登入用户索取相对空闲的消息处理服务器地址时返回,让Web接口服务器自行调用;在运行后,任务调度服务器定时对消息处理服务器更新资源使用情况;
消息处理服务器,通过Web接口服务器与客户端连接,用户的网络服务在消息处理服务器进行登入、登出、状态管理、消息收发处理;消息处理服务器启动后自动向任务调度服务器注册,让任务调度服务器能监视其状态,同时等待Web接口服务器的调用;发生需要提醒用户的情况时,消息处理服务器会推送到Web接口服务器处理;
数据库服务器,同时被Web接口服务器和消息处理服务器调用来记录各类信息。
2.根据权利要求1所述的基于云计算架构的网络服务聚合系统,其特征在于:
设置于客户端和消息处理服务器之间的Web接口服务器主要负责用户登入、分配服务器资源,将客户端的命令传给消息处理服务器,再将消息处理服务器的命令反馈给客户端,同时处理一些不需要消息处理服务器介入的事务;
加载过程中除了加载容器所必要的组件外,Web接口服务器还要加载配置文件,读取任务调度服务器的相关信息,与任务调度服务器建立连接,获取消息处理服务器集群的信息,再加载可被消息处理服务器集群支持的网络服务列表,以便在用户需要的时候及时反馈给用户;
用户需要登入后才能管理设定信息;用户登入后,服务器将相互处理一系列用户信息,读取用户服务列表,从任务调度服务器获得合适的消息处理服务器地址,使用获取到的服务器登入用户的服务,加载联系人列表,并监听从消息处理服务器反馈的信息;
用户自行输入用户名和密码以登入,用户名和密码在用户上次登入后就已经保存在客户端里;对此,在登入前,每次接收连接时,都要检查是否包含了有效的用户登入信息,如果有效就自动登入;
用户登入后,服务器将新建线程,进行登入后的操作;即用户在登入和进入自己的个人主页之时,服务器只检查用户名和密码的合法性;新建的线程完成以下六个步骤:
(1)从数据库服务器读取用户的联系人列表;
(2)从数据库服务器读取用户的服务列表;
(3)向任务调度服务器索取当前用户将要使用的消息处理服务器地址;
(4)连接获取的消息处理服务器地址;
(5)将获取的服务列表发送给消息处理服务器,让消息处理服务器登入这些服务;
(6)监听来自消息处理服务器的回推;
完成上述六个步骤后,服务列表、联系人列表连接后的消息处理服务器接口都将保存在Web接口服务器的一个处理用户系统信息的内存单元内;用户在登入后会产生大量信息,为每个用户专门分配内存单元,以便于管理;
用户在登入后,Web接口服务器将监听来自消息处理服务器的回推;回推的主要内容是消息处理服务器收到新的用户消息、用户的服务状态变更;Web消息处理服务器在接收到消息处理服务器的回推后,将进行处理,如果需要,打断和客户端更新状态的长连接,把更新的消息在一个请求中返回给客户端;
两种情况会使用户登出;一种是用户主动登出,客户端会按照用户的意愿联系Web接口服务器登出用户;另一种是用户长时间没有进行长连接;在用户登出后,Web接口服务器将通知消息处理服务器和任务调度服务器销毁与用户有关的资源,同时销毁Web接口服务器和用户有关的资源;其中和此用户有关的回推将不被监听。
3.根据权利要求2所述的基于云计算架构的网络服务聚合系统,其特征在于:
所述Web接口服务器负责管理被用户所要求管理的用户信息;
(1)管理联系人列表
用户管理自己的联系人列表,除了添加和删除联系人以外,还可对联系人的联系方式进行排序;用户在管理联系人列表的时候,Web接口服务器还会和信息处理服务器进行交互;保证联系人列表和用户服务的联系人列表同步;
(2)管理服务列表
用户需要添加自己所使用的网络服务才能让系统发挥效用;用户添加和删除网络服务、添加网络服务时,Web接口服务器会通知消息处理服务器尝试以用户提供的信息登入;
如果登入成功,就将用户提供的信息保存到数据库,以便下次用户使用,用户需要提供自己的帐号和密码信息;
(3)管理帐号
用户在此管理自己在注册的时候提供的信息,除了用户名以外,其他任何信息都可修改,包括密码和名字;
(4)查询话题
用户需要分类检索自己的话题;在系统中,话题被分为我的话题、加入的话题和我回复的话题;用户在知道自己检索的目的时,可方便地从中寻找并查看话题;由于查询到的话题可能数量非常多,Web接口服务器支持分页查询,按照时间的先后顺序排列,新的信息排列在前面;
(5)查询帖子内容
通过Web接口服务器可直接查询数据库中的帖子,列出话题并列出话题的回复与回复的回复;帖子的内容即为用户和其联系人交流的内容;在提供父级帖子编号和根帖子编号的情况下,客户端非常容易地组合成树形结构并呈现给用户;
(6)发布话题与回复
Web接口服务器接收在客户端用户的要求下发布话题或者回复;用户需要提供帖子的相关信息,Web接口服务器不直接处理这些信息,而是转发到用户的消息处理服务器,让消息处理服务器进行写数据库和消息发送的工作;
(7)将状态推送到客户端
系统在一次长连接中推送多条信息给客户端,一次推送同时包含用户在线状态和服务状态、是否有新的消息;Web接口服务器在收到消息处理服务器的推送后,会将其缓存在用户内存单元的一个变量中,在Web接口服务器的长连接的循环中,一旦监测到变量变化,就会打断并返回给客户端;因为用户可能在不同地方登入,会拥有多个Session ID,所以,在推送前需要给每个不同Sesssion ID保留一个副本,将推送消息发送到用户所有的客户端上;
(8)服务新鲜事
将用户服务中带有社交网站元素的信息搬到客户端通常是主页的位置,让用户知道自己的联系人或者此服务的其他人在做什么而主动进行交流;这些信息由消息处理服务器定时从用户登入的服务中获取,Web接口服务器再定时从消息处理服务器获取并放入用户内存单元中;这些信息是由消息处理服务器的服务插件生成,包含状态标题、内容、联系人和反馈方式;反馈方式的作用是告诉客户端用户在点击这条状态后该如反馈;反馈方式包括:
①直接给状态的联系人产生新话题;
②复制状态内容作为新话题,再对其进行回帖;
③将联系人和状态标题及内容返回给Web接口服务器,再转发消息处理服务器,由消息处理服务器的服务插件处理行为。
4.根据权利要求1所述的基于云计算架构的网络服务聚合系统,其特征在于:
消息处理服务器是处理系统用户消息的主要部分,是真正实现消息收发的部分;Web接口服务器调用指定的消息处理服务器,消息处理服务器会将任务进行处理,调用服务插件,让服务插件实现消息最后的接收、发送功能;
服务插件启动后,从配置文件读取任务调度服务器地址,建立和数据库的连接,并加载加RMI服务到注册表;一开始启动时,只加载通用RMI服务;然后将此服务器在任务调度服务器上进行注册;结束后根据配置文件中插件的信息加载服务插件;
动态加载插件文件来实现插件的特性;插件都按照设定的接口和模式进行设计;插件加载模块在加载之前读取配置文件,配置文件包含了插件的系统名称、类名称、是否依赖联系人列表发送消息、默认优先级、插件所依赖的文件和登入服务时所需要提供的信息模版;
插件系统名称可在系统内部识别此服务,是否依赖联系人决定了能否在联系人不在联系列表的情况下也能通过地址发送消息,默认优先级决定了用户在添加此服务作为联系人的联系方式的时候所赋予的优先级,插件依赖的文件就是插件运行所需要的其他文件;在加载插件的时候,依赖文件将和插件文件一起加载到消息处理服务器中;
由于Web接口服务器需要通过任务调度服务器来为用户分配消息处理服务器的分布式服务器资源,而且为了使整个分布式网络更加灵活,每台消息处理服务器上线后都要自动向任务调度服务器注册,使任务调度服务器知道消息处理服务器的存在,以便在Web接口服务器索取用户资源时将自己的资源给Web接口服务器使用。
5.根据权利要求4所述的基于云计算架构的网络服务聚合系统,其特征在于:
整个消息处理服务器提供通用RMI服务;Web消息服务器可从通用RMI服务获取可用服务列表、生成用户RMI服务;任务调度服务器从通用RMI获取此消息处理服务器的硬件资源消耗情况;因为不同的用户可能分散在不同服务器里,消息处理服务器之间在需要通讯时互相通讯;
可用服务列表由加载的配置文件而来,消息处理服务器直接将可用服务列表返回至询问的Web接口服务器,让Web接口服务器自行处理;
Web接口服务器被指令用户登入后,消息处理服务器会被要求为用户生成一个用户专有的RMI远程对象;消息处理服务器将此对象的RMI地址返回Web接口服务器,让Web接口服务器自行连接刚才生成的RMI远程对象;连接该用户的远程对象后Web接口服务器即可控制用户的服务资源;
任务调度服务器根据信息处理服务器的资源消耗情况分配用户资源的方式;任务调度服务器每隔一段时间更新消息处理服务器的硬件资源使用状况;提供给任务调度服务器的是一个性能指数,此信息从系统获取;
当系统在发帖的时候发现联系人有其他用户,就在用户内存单元寻找本机是否存在此用户,存在就说明用户和联系人中的用户在同一台服务器,可以直接以相应回推,不存在就要询问任务调度服务器此用户的消息处理服务器,将回推的消息转发到联系人用户的消息处理服务器,被转发的消息的服务器将按照不同流程将消息回推到Web接口服务器;如果在任务调度服务器找不到,将把这个帖子放入延迟发送的数据表中,在下次合适的时候发送;
用户在登入以后,Web接口服务器就会从被指定的消息处理服务器中获得用户RMI;
所有和该用户有关的远程调用都通过这个接口实现;包括如下步骤:
1)指定此用户RMI的所有人;
该过程由Web接口服务器调用,检查消息处理服务器是否已经存在关于此用户的用户内存单元;如果有,就使用已经存在的资源,如果没有,就为该用户创建资源;同时开启定时器定时从用户服务更新新鲜事,并且记录此Web接口服务器;
2)测试服务;
该函数只有在用户尝试添加新服务或者修改服务时由Web接口服务器调用,确认用户提供的信息是否能登入;这个函数将返回一个值,所以不是异步的,用户则需要等待此服务登入成功或者失败;
3)测试服务是否可通过用户提供的信息登入
Web接口服务器会把用户的服务和服务登入信息发送给用户的消息处理服务器;消息处理服务器将在加载好的服务插件上创建服务实例,每个用户的每个服务都有这样一个实例,根据不同的服务和帐号而实例不相同;加载完毕后,消息处理服务器会让每个加载好的服务插件实例登入服务;登入过程由服务插件对象控制,返回是否登入结果到Web接口服务器;
4)加载并登入用户服务;
Web接口服务器将发送用户服务列表和相关登入信息给指定的消息处理服务器列表,由消息处理服务器登入服务;Web消息处理服务器将异步为每个服务调用“测试服务是否可通过用户提供的信息登入”函数,而登入服务的函数到此结束,登入是否成功的消息由服务插件实例回推到Web接口服务器中;
5)销毁;
这个过程是在Web接口服务器的用户注销后所发生;考虑到用户在多个地方登入的可能,必须要在确认用户完全登出后才能销毁用户相关的资源;销毁资源的过程中,所有服务将离线,所有定时器关闭,最后从内存销毁所有此用户所使用的资源;
6)获取联系人优先联系服务;
获取联系人优先联系服务函数可直接被Web消息处理服务器调用、在回推联系人可使用服务和发帖的时候调用;这个过程中,消息处理服务器将从联系人列表中读取联系人的联系方式;按照联系方式的优先级在每个已经登入的用户服务中判断联系方式是否可用;
将找到的第一个联系方式返回;
7)获取所有服务在线情况;
Web接口服务器调用此函数来获取目前服务的在线情况;消息处理服务器将直接查询用户服务的在线状态并返回;
8)广播用户状态;
一些服务具有广播用户状态的特性;广播用户状态函数由Web接口服务器调用,消息处理服务器将为用户所有服务都设定状态;如果用户的某些服务不支持,状态广播的行为将不被处理;或者通过用户状态实现分享之类广播的特性;
9)获取用户状态;
获取用户状态函数是由Web接口服务器调用;通常用户状态不保存在数据库中,而是直接从用户服务读取;消息处理服务器只读取第一个有状态的服务的状态发送返回给Web接口服务器;
10)获取用户服务新鲜事;
服务新鲜事由Web接口服务器获取;Web接口服务器获取的时候,用户新鲜事已经收集好并放在一个变量中;收集工作由新鲜事获取定时器完成;新鲜事获取定时器以固定的频率将用户服务的新鲜事放入变量中,等待Web接口服务器获取;
11)发帖;
作为整个系统的核心之一,发帖被消息处理服务器内部调用,或者被Web接口服务器调用;发帖的执行方是用户,或者是用户的服务中收到的消息;发帖需要提供数据库表的所有信息,作为话题帖子,还需要提供话题的联系人列表;发帖步骤进一步包括如下步骤:
11A)检查唯一编号是否已经在数据库存在;如果不存在进行下一步,如果存在直接退出发帖步骤;
11B)将信息格式化;
11C)如果为话题帖子,检查是否缺少用户为其中之一的联系人,如果是,将其补上;
11D)检查联系人列表的联系人和作者;一些情况下,用户或者联系人会直接使用服务的地址作为联系人字符串,而这个地址刚好是某个联系人的联系方式;这个过程将把使用服务地址联系人字符串改变为用户的联系人的联系人字符串;当用户的联系人发帖时将地址转换成联系人,让用户能直接识别;
11E)将帖子插入数据库;
11F)如果这个帖子为回复,更新父帖和根帖的数据库纪录中“回复人”和“最后回复时间”字段;
11G)读取已经插入数据库的帖子的编号;
11H)如果为话题帖子,将帖子联系人列表插入帖子联系人表;
11I)如果是回复,获取根帖的编号;如果是话题帖子,根帖编号为已经插入数据库的帖子的编号;
11J)通过获取的根帖子的编号从数据库获取根帖子的联系人列表;
11K)根据读取的帖子联系人列表,将消息转发给联系人;
12)转发消息;
转发消息函数不被Web接口服务器调用,是发帖时用来为指定联系人或用户转发消息时使用;转发消息需要作为远程方法调用来执行;转发消息过程具体进一步包括如下步骤:
12A)检查转发的联系人和作者是否为同一人,如果是,此消息将不被转发到这个联系人;
12B)检查转发的联系人是否为系统的另一个用户,并且此用户不在本地的消息处理服务器中;如果是,将从任务调度服务器读取此用户位置,并把此消息转发到用户位置进行处理;整个本服务器的转发过程结束;
12C)检查转发消息的联系人字符串的格式;
12D)如果为用户联系人字符串,将通过获取联系人优先联系服务方法获取最合适用户联系人联系方式,通过这个联系方式所对应的服务插件实例发送消息;
12E)如果为用户的某个服务插件的实例地址,直接通过这个实例发送;
12F)如果为系统用户,将消息回推到用户的Web接口服务器;
上述整个过程是否成功将被监视,如果不成功,这个消息将保存到数据库,在下次合适的时候发送;
13)执行服务命令;
命令由服务插件实例在服务新鲜事的时候生成,由服务插件实例识别并执行相关操作。
6.根据权利要求1所述的基于云计算架构的网络服务聚合系统,其特征在于:
任务调度服务器用以为用户分配消息处理服务器资源,同时索引用户消息处理服务器;任务处理服务器启动时注册自己的RMI,就等待其他服务器的连接;
消息处理服务器的注册过程将把此消息处理服务器的IP地址纪录在案,并且打开一个定时器定期从消息处理服务器获取性能指数,找出资源剩余最大的服务器并记录;期间将为每个服务器打开定时器检测消息处理服务器是否离线来更新消息处理服务器列表;
每次Web接口服务器获取用户消息处理服务器的时候,任务调度服务器将记录的消息处理服务器返回;
服务插件是用户服务收发的最终端,运行于消息处理服务器中;服务插件所提供的服务是任何具有消息交流特性的互联网服务,但是每个服务插件都要按照特定的接口编写,以便消息处理服务器支持;服务插件接口的函数包括:加载函数;登入函数;登出函数;发送消息函数;获取服务在线情况函数;获得用户状态函数;广播用户状态函数;搜索函数;
重新加载函数;此函数为消息处理服务器为每个插件实例的一个定时器调用,提醒其更新自己的状态;添加联系人函数,与用户联系人列表中的联系方式绑定;删除联系人函数,与用户联系人列表中的联系方式绑定;判断地址是否可以发送函数,消息处理服务器据此判断是否通过此联系方式转发用户消息;获取新鲜事函数;执行服务命令函数;
虽然每个服务并不相同,但是针对同一类型的服务使用同一套处理方式;服务插件可自主搭配使用任何消息处理服务的函数来实现具有服务特色的插件;服务插件可自主处理服务命令,使得让新鲜事的功能变得更加灵活,服务插件自己订制新鲜事的指令,让用户选择后还将自行处理这些指令;
服务插件在接收到服务消息后,将其托管到消息处理服务器中处理消息;使用的方法和用户发帖时Web接口服务器所调用的是同一个函数;当服务插件以话题形式发布话题时,联系人则是接收此消息的系统用户;
7.根据权利要求1所述的基于云计算架构的网络服务聚合系统,其特征在于:
所述聚合系统包括保留服务基本特性的模块,包括:
获得用户状态单元,由Web接口服务器调用,通常用户状态不保存在数据库中,而是直接从用户服务读取;消息处理服务器只读取第一个有状态的服务的状态发送返回给Web接口服务器;
广播用户状态单元,一些服务具有显示用户状态的特性;所述广播用户状态单元由Web接口服务器调用,消息处理服务器将为用户所有服务都设定状态;如果用户的某些服务不支持,状态设定的行为将不被处理;
搜索单元,对于具有或者需要搜索特性才能完全操控的网络服务,使用所述搜索单元对服务进行搜索;搜索过程和结果由服务插件实例完成和生成,对于用户对结果的响应由服务插件实例识别并执行相关操作;
新鲜事获取定时器,服务新鲜事由Web接口服务器获取;Web接口服务器获取服务新鲜事时,用户新鲜事已经收集好并放在一个变量中;收集工作由新鲜事获取定时器完成,新鲜事获取定时器获取设定的频率将用户服务的新鲜事放入变量中,等待Web接口服务器获取;
执行服务命令单元,执行服务命令由服务插件实例在服务新鲜事的时候生成,由服务插件实例识别并执行相关操作。
8.一种权利要求1所述基于云计算架构的网络服务聚合系统的聚合方法,其特征在于,所述聚合方法包括如下步骤:
客户端按照运行的设备和Web接口进行通讯;
Web接口服务器给客户端提供信息,并且处理和消息无关的数据;在用户登入时,向任务调度服务器索取相对空闲的消息处理服务器地址,操控和监视消息处理服务器,并即时将状况反馈给客户端;
任务调度服务器负责监视消息处理服务器的资源消耗状态,并在Web接口服务器为登入用户索取相对空闲的消息处理服务器地址时返回,让Web接口服务器自行调用;在运行后,任务调度服务器定时对消息处理服务器更新资源使用情况;
消息处理服务器通过Web接口服务器与客户端连接,用户的网络服务在消息处理服务器进行登入、登出、状态管理、消息收发处理;消息处理服务器启动后自动向任务调度服务器注册,让任务调度服务器能监视其状态,同时等待Web接口服务器的调用;发生需要提醒用户的情况时,消息处理服务器会推送到Web接口服务器处理;
数据库服务器同时被Web接口服务器和消息处理服务器调用来记录各类信息。
9.根据权利要求8所述的聚合方法,其特征在于:
设置于客户端和消息处理服务器之间的Web接口服务器主要负责用户登入、分配服务器资源,将客户端的命令传给消息处理服务器,再将消息处理服务器的命令反馈给客户端,同时处理一些不需要消息处理服务器介入的事务;
加载过程中除了加载容器所必要的组件外,Web接口服务器还要加载配置文件,读取任务调度服务器的相关信息,与任务调度服务器建立连接,获取消息处理服务器集群的信息,再加载可被消息处理服务器集群支持的网络服务列表,以便在用户需要的时候及时反馈给用户;
用户需要登入后才能管理设定信息;用户登入后,服务器将相互处理一系列用户信息,读取用户服务列表,从任务调度服务器获得合适的消息处理服务器地址,使用获取到的服务器登入用户的服务,加载联系人列表,并监听从消息处理服务器反馈的信息;
用户自行输入用户名和密码以登入,用户名和密码在用户上次登入后就已经保存在客户端里;对此,在登入前,每次接收连接时,都要检查是否包含了有效的用户登入信息,如果有效就自动登入;
用户登入后,服务器将新建线程,进行登入后的操作;即用户在登入和进入自己的个人主页之时,服务器只检查用户名和密码的合法性;新建的线程完成以下六个步骤:
(1)从数据库服务器读取用户的联系人列表;
(2)从数据库服务器读取用户的服务列表;
(3)向任务调度服务器索取当前用户将要使用的消息处理服务器地址;
(4)连接获取的消息处理服务器地址;
(5)将获取的服务列表发送给消息处理服务器,让消息处理服务器登入这些服务;
(6)监听来自消息处理服务器的回推;
完成上述六个步骤后,服务列表、联系人列表连接后的消息处理服务器接口都将保存在Web接口服务器的一个处理用户系统信息的内存单元内;用户在登入后会产生大量信息,为每个用户专门分配内存单元,以便于管理;
用户在登入后,Web接口服务器将监听来自消息处理服务器的回推;回推的主要内容是消息处理服务器收到新的用户消息、用户的服务状态变更;Web消息处理服务器在接收到消息处理服务器的回推后,将进行处理,如果需要,打断和客户端更新状态的长连接,把更新的消息在一个请求中返回给客户端;
两种情况会使用户登出;一种是用户主动登出,客户端会按照用户的意愿联系Web接口服务器登出用户;另一种是用户长时间没有进行长连接;在用户登出后,Web接口服务器将通知消息处理服务器和任务调度服务器销毁与用户有关的资源,同时销毁Web接口服务器和用户有关的资源;其中和此用户有关的回推将不被监听;
所述Web接口服务器负责管理被用户所要求管理的用户信息;
(1)管理联系人列表
用户管理自己的联系人列表,除了添加和删除联系人以外,还可对联系人的联系方式进行排序;用户在管理联系人列表的时候,Web接口服务器还会和信息处理服务器进行交互;保证联系人列表和用户服务的联系人列表同步;
(2)管理服务列表
用户需要添加自己所使用的网络服务才能让系统发挥效用;用户添加和删除网络服务、添加网络服务时,Web接口服务器会通知消息处理服务器尝试以用户提供的信息登入;
如果登入成功,就将用户提供的信息保存到数据库,以便下次用户使用,用户需要提供自己的帐号和密码信息;
(3)管理帐号
用户在此管理自己在注册的时候提供的信息,除了用户名以外,其他任何信息都可修改,包括密码和名字;
(4)查询话题
用户需要分类检索自己的话题;在系统中,话题被分为我的话题、加入的话题和我回复的话题;用户在知道自己检索的目的时,可方便地从中寻找并查看话题;由于查询到的话题可能数量非常多,Web接口服务器支持分页查询,按照时间的先后顺序排列,新的信息排列在前面;
(5)查询帖子内容
通过Web接口服务器可直接查询数据库中的帖子,列出话题并列出话题的回复与回复的回复;帖子的内容即为用户和其联系人交流的内容;在提供父级帖子编号和根帖子编号的情况下,客户端非常容易地组合成树形结构并呈现给用户;
(6)发布话题与回复
Web接口服务器接收在客户端用户的要求下发布话题或者回复;用户需要提供帖子的相关信息,Web接口服务器不直接处理这些信息,而是转发到用户的消息处理服务器,让消息处理服务器进行写数据库和消息发送的工作;
(7)将状态推送到客户端
系统在一次长连接中推送多条信息给客户端,一次推送同时包含用户在线状态和服务状态、是否有新的消息;Web接口服务器在收到消息处理服务器的推送后,会将其缓存在用户内存单元的一个变量中,在Web接口服务器的长连接的循环中,一旦监测到变量变化,就会打断并返回给客户端;因为用户可能在不同地方登入,会拥有多个Session ID,所以,在推送前需要给每个不同Sesssion ID保留一个副本,将推送消息发送到用户所有的客户端上;
(8)服务新鲜事
将用户服务中带有社交网站元素的信息搬到客户端通常是主页的位置,让用户知道自己的联系人或者此服务的其他人在做什么而主动进行交流;这些信息由消息处理服务器定时从用户登入的服务中获取,Web接口服务器再定时从消息处理服务器获取并放入用户内存单元中;这个特性没有使用推送机制,因为联系人状态的信息可能变化非常快;客户端需要主动向Web接口服务器索取这些信息;这些信息是由消息处理服务器的服务插件生成,包含状态标题、内容、联系人和反馈方式;反馈方式的作用是告诉客户端用户在点击这条状态后该如反馈;反馈方式包括:
①直接给状态的联系人产生新话题;
②复制状态内容作为新话题,再对其进行回帖;
③将联系人和状态标题及内容返回给Web接口服务器,再转发消息处理服务器,由消息处理服务器的服务插件处理行为。
10.根据权利要求8所述的聚合方法,其特征在于:
消息处理服务器是处理系统用户消息的主要部分,是真正实现消息收发的部分;Web接口服务器调用指定的消息处理服务器,消息处理服务器会将任务进行处理,调用服务插件,让服务插件实现消息最后的接收、发送功能;
服务插件启动后,从配置文件读取任务调度服务器地址,建立Hibernate和数据库的连接,并加载加RMI服务到注册表;一开始启动时,只加载通用RMI服务;然后将此服务器在任务调度服务器上进行注册;结束后根据配置文件中插件的信息加载服务插件;
动态加载插件文件来实现插件的特性;插件都按照设定的接口和模式进行设计;插件加载模块在加载之前读取配置文件,配置文件包含了插件的系统名称、类名称、是否依赖联系人列表发送消息、默认优先级、插件的文件所依赖的文件和登入服务时所需要提供的信息模版;插件系统名称可在系统内部识别此服务,是否依赖联系人决定了能否在联系人不在联系列表的情况下也能通过地址发送消息,默认优先级决定了用户在添加此服务作为联系人的联系方式的时候所赋予的优先级,插件依赖文件就是插件运行所需要的其他文件;
在加载插件文件的时候,依赖项将和插件一起加载到消息处理服务器中;
由于Web接口服务器需要通过任务调度服务器来为用户分配消息处理服务器的分布式服务器资源,而且为了使整个分布式网络更加灵活,每台消息处理服务器上线后都要自动向任务调度服务器注册,使任务调度服务器知道消息处理服务器的存在,以便在Web接口服务器索取用户资源时将自己的资源给Web接口服务器使用;
整个消息处理服务器提供通用RMI服务;Web消息服务器可从通用RMI服务获取可用服务列表、生成用户RMI服务;任务调度服务器从通用RMI获取此消息处理服务器的硬件资源消耗情况;因为不同的用户可能分散在不同服务器里,消息处理服务器之间在需要通讯时互相通讯;
可用服务列表由加载的配置文件而来,消息处理服务器直接将可用服务列表返回至询问的Web接口服务器,让Web接口服务器自行处理;
Web接口服务器被指令用户登入后,消息处理服务器会被要求为用户生成一个用户专有的RMI远程对象;消息处理服务器将此对象的RMI地址返回Web接口服务器,让Web接口服务器自行连接刚才生成的RMI远程对象;连接该用户的远程对象后Web接口服务器即可控制用户的服务资源;
任务调度服务器根据信息处理服务器的资源消耗情况分配用户资源的方式;任务调度服务器每隔一段时间更新消息处理服务器的硬件资源使用状况;提供给任务调度服务器的是一个性能指数,此信息从系统获取;
当系统在发帖的时候发现联系人有其他用户,就在用户内存单元寻找本机是否存在此用户,存在就说明用户和联系人中的用户在同一台服务器,可以直接以相应回推,不存在就要询问任务调度服务器此用户的消息处理服务器,将回推的消息转发到联系人用户的消息处理服务器,被转发的消息的服务器将按照不同流程将消息回推到Web接口服务器;如果在任务调度服务器找不到,将把这个帖子放入延迟发送的数据表中,在下次合适的时候发送;
用户在登入以后,Web接口服务器就会从被指定的消息处理服务器中获得用户RMI;所有和该用户有关的远程调用都通过这个接口实现;包括如下步骤:
1)指定此用户RMI的所有人;
该过程由Web接口服务器调用,检查消息处理服务器是否已经存在关于此用户的用户内存单元;如果有,就使用已经存在的资源,如果没有,就为该用户创建资源;同时开启定时器定时从用户服务更新新鲜事,并且记录此Web接口服务器;
2)测试服务;
该函数只有在用户尝试添加新服务或者修改服务时由Web接口服务器调用,确认用户提供的信息是否能登入;这个函数将返回一个值,所以不是异步的,用户则需要等待此服务登入成功或者失败;
3)测试服务是否可通过用户提供的信息登入
Web接口服务器会把用户的服务和服务登入信息发送给用户的消息处理服务器;消息处理服务器将在加载好的服务插件上创建服务实例,每个用户的每个服务都有这样一个实例,根据不同的服务和帐号而实例不相同;加载完毕后,消息处理服务器会让每个加载好的服务插件实例登入服务;登入过程由服务插件对象控制,返回是否登入结果到Web接口服务器;
4)加载并登入用户服务;
Web接口服务器将发送用户服务列表和相关登入信息给指定的消息处理服务器列表,由消息处理服务器登入服务;Web消息处理服务器将异步为每个服务调用“测试服务是否可通过用户提供的信息登入”函数,而登入服务的函数到此结束,登入是否成功的消息由服务插件实例回推到Web接口服务器中;
5)销毁;
这个过程是在Web接口服务器的用户注销后所发生;考虑到用户在多个地方登入的可能,必须要在确认用户完全登出后才能销毁用户相关的资源;销毁资源的过程中,所有服务将离线,所有定时器关闭,最后从内存销毁所有此用户所使用的资源;
6)获取联系人优先联系服务;
获取联系人优先联系服务函数可直接被Web消息处理服务器调用、在回推联系人可使用服务和发帖的时候调用;这个过程中,消息处理服务器将从联系人列表中读取联系人的联系方式;按照联系方式的优先级在每个已经登入的用户服务中判断联系方式是否可用;
将找到的第一个联系方式返回;
7)获取所有服务在线情况;
Web接口服务器调用此函数来获取目前服务的在线情况;消息处理服务器将直接查询用户服务的在线状态并返回;
8)广播用户状态;
一些服务具有广播用户状态的特性;广播用户状态函数由Web接口服务器调用,消息处理服务器将为用户所有服务都设定状态;如果用户的某些服务不支持,状态广播的行为将不被处理;或者通过用户状态实现分享之类广播的特性;
9)获取用户状态;
获取用户状态函数是由Web接口服务器调用;通常用户状态不保存在数据库中,而是直接从用户服务读取;消息处理服务器只读取第一个有状态的服务的状态发送返回给Web接口服务器;
10)获取用户服务新鲜事;
服务新鲜事由Web接口服务器获取;Web接口服务器获取的时候,用户新鲜事已经收集好并放在一个变量中;收集工作由新鲜事获取定时器完成;新鲜事获取定时器以固定的频率将用户服务的新鲜事放入变量中,等待Web接口服务器获取;
11)发帖;
作为整个系统的核心之一,发帖被消息处理服务器内部调用,或者被Web接口服务器调用;发帖的执行方是用户,或者是用户的服务中收到的消息;发帖需要提供数据库表的所有信息,作为话题帖子,还需要提供话题的联系人列表;发帖步骤进一步包括如下步骤:
11A)检查唯一编号是否已经在数据库存在;如果不存在进行下一步,如果存在直接退出发帖步骤;
11B)将信息格式化;
11C)如果为话题帖子,检查是否缺少用户为其中之一的联系人,如果是,将其补上;
11D)检查联系人列表的联系人和作者;一些情况下,用户或者联系人会直接使用服务的地址作为联系人字符串,而这个地址刚好是某个联系人的联系方式;这个过程将把使用服务地址联系人字符串改变为用户的联系人的联系人字符串;当用户的联系人发帖时将地址转换成联系人,让用户能直接识别;
11E)将帖子插入数据库;
11F)如果这个帖子为回复,更新父帖和根帖的数据库纪录中“回复人”和“最后回复时间”字段;
11G)读取已经插入数据库的帖子的编号;
11H)如果为话题帖子,将帖子联系人列表插入帖子联系人表;
11I)如果是回复,获取根帖的编号;如果是话题帖子,根帖编号为已经插入数据库的帖子的编号;
11J)通过获取的根帖子的编号从数据库获取根帖子的联系人列表;
11K)根据读取的帖子联系人列表,将消息转发给联系人;
12)转发消息;
转发消息函数不被Web接口服务器调用,是发帖时用来为指定联系人或用户转发消息时使用;转发消息需要作为远程方法调用来执行;转发消息过程具体进一步包括如下步骤:
12A)检查转发的联系人和作者是否为同一人,如果是,此消息将不被转发到这个联系人;
12B)检查转发的联系人是否为系统的另一个用户,并且此用户不在本地的消息处理服务器中;如果是,将从任务调度服务器读取此用户位置,并把此消息转发到用户位置进行处理;整个本服务器的转发过程结束;
12C)检查转发消息的联系人字符串的格式;
12D)如果为用户联系人字符串,将通过获取联系人优先联系服务方法获取最合适用户联系人联系方式,通过这个联系方式所对应的服务插件实例发送消息;
12E)如果为用户的某个服务插件的实例地址,直接通过这个实例发送;
12F)如果为系统用户,将消息回推到用户的Web接口服务器;
上述整个过程是否成功将被监视,如果不成功,这个消息将保存到数据库,在下次合适的时候发送;
13)执行服务命令;
命令由服务插件实例在服务新鲜事的时候生成,由服务插件实例识别并执行相关操作。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
可调节提高显色指数的LED射灯 | 2020-05-14 | 352 |
高显色指数的可调色温照明器件 | 2020-05-12 | 21 |
产生高显色指数的白光的装置及方法 | 2020-05-14 | 448 |
高显色指数白光LED的制作方法 | 2020-05-15 | 181 |
显色指数可调的灯和灯具 | 2020-05-13 | 954 |
高显色指数白色发光装置及驱动电路 | 2020-05-12 | 81 |
高显色指数高可靠性COB集成封装LED | 2020-05-13 | 274 |
一种低色温高显色指数的白光LED灯具 | 2020-05-12 | 883 |
高显色指数LED均匀光源 | 2020-05-11 | 98 |
高显色指数暖白光LED | 2020-05-11 | 101 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。