CN103917948B - 使用单个搜索查询来搜索非公开数据的方法和系统 - Google Patents
使用单个搜索查询来搜索非公开数据的方法和系统 Download PDFInfo
- Publication number
- CN103917948B CN103917948B CN201280034200.8A CN201280034200A CN103917948B CN 103917948 B CN103917948 B CN 103917948B CN 201280034200 A CN201280034200 A CN 201280034200A CN 103917948 B CN103917948 B CN 103917948B
- Authority
- CN
- China
- Prior art keywords
- long
- source unit
- search
- range source
- file
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000004044 response Effects 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims description 104
- 230000005540 biological transmission Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 18
- 239000004744 fabric Substances 0.000 claims description 14
- 238000012876 topography Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 67
- 230000009471 action Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 21
- 230000002349 favourable effect Effects 0.000 description 20
- 230000015654 memory Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000006116 polymerization reaction Methods 0.000 description 9
- 235000013399 edible fruits Nutrition 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 6
- 241000283973 Oryctolagus cuniculus Species 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000007639 printing Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000005094 fruit set Effects 0.000 description 1
- 206010022000 influenza Diseases 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
Abstract
提供用于使用单个搜索查询来实时搜索非公开数据的方法和设备。该方法包括向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据。所述配套应用程序是非公开应用。所述单个搜索查询包含一个搜索项。该方法包括允许通过单个搜索查询来自动访问远程源单元上的非公开数据。该方法包括在远程源单元上,接收带有搜索项的单个搜索查询。并且该方法包括响应于所述单个搜索查询,使用所述搜索项来实时搜索远程源单元上的非公开数据;实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及实时传送所述非公开数据的搜索结果。
Description
相关申请的交叉引用
本申请要求依照35 U.S.C.$119而享有2011年5月9日提交的名为“Method andApparatus for Searching Information on Multiple Remote Locations”美国临时专利申请61/484,170以及2011年12月13日提交的名为“Method and Apparatus for SearchingNon-Public Data on Multiple Remote Source Units Using a Single Search Query”的美国临时专利申请61/570,185的优先权,其中所述申请在这里作为参考而被全部引入,以便用于各种目的。
技术领域
本技术主题主要涉及搜索,尤其涉及的是使用单个搜索查询来搜索多个远程计算设备上的非公开数据。
背景技术
网络爬虫可以浏览和搜索大量包含了公之于众的数据的网站,然后可以创建公共网页拷贝,以便在以后由搜索引擎进行处理,从而为拷贝的网页编制索引。当用户请求搜索web时,web搜索引擎不会搜索实际网站,相反,其搜索的是编入索引的网页拷贝,并且回传的是来自编入索引的拷贝的搜索结果。所述web搜索并不是实时搜索,其仅仅提供在web上被公开的数据。
发明内容
在一个方面中,提供一种用于使用单个搜索查询来实时处理搜索非公开数据的方法。该方法可以包括:向自动发现模块报告远程源单元的配套应用程序(companionapplication)的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包含一个搜索项。该方法可以包括:在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元安装在客户机设备上的同时,通过单个搜索查询来启用针对远程源单元上的非公开数据的自动访问。该方法可以包括:在远程源单元上,接收带有搜索项的单个搜索查询。该方法还可以包括:响应于所述单个搜索查询,使用所述搜索项来实时搜索远程源单元上的非公开数据;实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及实时传送所述非公开数据的搜索结果。
在一个方面中,提供一种用于使用单个搜索查询来处理实时搜索非公开数据的非临时性机器可读介质。所述机器可读介质包含了指令。所述指令可以包括用于向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及允许客户机设备使用单个搜索查询来实时搜索远程源单元上的非公开数据的代码,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包含一个搜索项。该指令可以包括:用于在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元安装在客户机设备上的同时,通过单个搜索查询来启用针对远程源单元上的非公开数据的自动访问的代码。该指令可以包括:用于在远程源单元上接收带有搜索项的单个搜索查询的代码。该指令还可以包括用于以下处理的代码:响应于所述单个搜索查询,使用所述搜索项来实时搜索远程源单元上的非公开数据的代码;实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及实时传送非公开数据的搜索结果。
在一个方面中,提供一种用于使用单个搜索查询来实时搜索非公开数据的处理的系统。该系统可以包括一个或多个处理器。并且该系统可以包括一个包含了指令的存储器。所述指令可以包括向自动发现模块的远程源单元报告配套应用程序的可用性,以使客户机设备能够自动发现远程源单元以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据的代码,其中所述配套应用程序是一个非公开应用,并且其中所述单个搜索查询包括搜索项。所述指令可以包括:在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元安装在客户机设备上的同时,通过单个搜索查询来启用针对远程源单元上的非公开数据的自动访问的代码。该指令可以包括:用于在远程源单元上接收带有搜索项的单个搜索查询的代码。该指令还可以包括:响应于所述单个搜索查询而使用所述搜索项来实时搜索远程源单元上的非公开数据的代码。所述指令可以包括用于实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果的代码。并且所述指令可以包括实时传送所述非公开数据的搜索结果的代码。
在一个方面中,提供一种用于通过使用单个搜索查询来实时搜索多个远程源单元上的非公开数据的方法。该方法可以包括:在免却客户机设备用户识别多个远程源单元的位置或地址的同时,由客户机设备借助自动发现模块来自动发现多个远程源单元。该方法可以包括向自动发现模块提供针对多个远程源单元的单个搜索查询,以便能够基于所述单个搜索查询来同时搜索所述多个远程源单元中的所有远程源单元上的非公开数据,同时免却客户机设备与多个远程源单元中的每一个发起安全的远程联机阶段登录,以及免却将所述多个远程源单元安装在客户机设备上。该方法可以包括:响应于提供给单个搜索查询,按顺序或同时接收非公开数据的搜索结果,其中每一个非公开数据的搜索结果都与多个远程源单元中的一个相对应,并且其中每一个非公开数据的搜索结果都包括一个或多个文件名或文件夹名;自动地实时聚合来自多个远程源单元的非公开数据的搜索结果;自动实时地对所聚合的非公开数据的搜索结果进行排名;以及实时显示经过排名的非公开数据的搜索结果。
在一个方面中,提供一种单个搜索查询来实时搜索多个远程源单元上的非公开数据的非临时性机器可读介质。所述机器可读介质包含了指令。这些指令可以包括代码,用于在免却由客户机设备用户识别多个远程源单元的位置或地址的同时供客户机设备借助自动发现模块来自动发现多个远程源单元。所述指令可以包括代码,用于在免却客户机设备与多个远程源单元中的每一个发起安全的远程联机阶段登录以及免却将所述多个远程源单元安装在客户机设备上的同时,向自动发现模块提供针对多个远程源单元的单个搜索查询,以便能够基于所述单个搜索查询来同时搜索所述多个远程源单元中的所有远程源单元上的非公开数据。所述指令还可以包括代码,用于对提供单个搜索查询的处理做出响应而按顺序或者同时接收非公开数据的搜索结果,其中每一个非公开数据的搜索结果都与多个远程源单元中的一个相对应,并且其中每一个非公开数据的搜索结果都包括一个或多个文件名或文件夹名;自动地实时聚合来自多个远程源单元的非公开数据的搜索结果;自动实时地对所聚合的非公开数据的搜索结果进行排名;以及实时显示经过排名的非公开数据的搜索结果。
在一个方面中,提供一种方法。该方法可以包括:接收一个包含了搜索查询以及多个远程源单元的标识符的输入,其中多个远程源单元中的每一个都与相应的隐私障碍相关联。该方法可以包括:基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入,向多个远程源单元中的每一个传送包含了搜索请求的消息。该方法可以包括:接收来自多个远程远端中的每一个的相应的搜索结果集合。该方法可以包括:提供相应的第一搜索结果集合的至少第一子集的指示以进行显示,所述第一搜索结果集合来自多个远程源单元中的第一远程源单元。该方法可以包括:提供相应的第二搜索结果集合的至少第二子集的指示以进行显示,所述第二搜索结果集合来自多个远程源单元中的第二远程源单元。
在一个方面中,提供一种包含指令的非临时性的机器可读介质。所述指令可以包括用于接收一个包含了搜索查询以及多个远程源单元的标识符的输入的代码,其中多个远程源单元中的每一个都与相应的隐私障碍相关联。该指令可以包括基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入而向多个远程源单元中的每一个传送包含了搜索请求的消息的代码。该指令可以包括接收来自多个远程远端中的每一个的相应搜索结果集合的代码。该方法可以包括用于提供相应的第一搜索结果集合的至少第一子集的指示以进行显示的代码,其中所述第一搜索结果集合来自多个远程源单元中的第一远程源单元。该指令还可以包括:用于提供相应的第二搜索结果集合的至少第二子集的指示以进行显示的代码,所述第二搜索结果集合来自多个远程源单元中的第二远程源单元。
在一个方面中,提供一种方法。该方法可以包括:接收一个包含了搜索查询以及多个远程源单元的标识符的输入,其中多个远程源单元中的每一个都与相应的隐私障碍相关联。所述方法可以包括:基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入,向多个远程源单元中的每一个传送包含了搜索请求的消息。该方法可以包括:在第一时间,从多个远程源单元中的第一远程源单元接收第一搜索结果集合。该方法可以包括:在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示,以便进行显示。该方法可以包括:在晚于第一时间的第二时间,从多个远程源单元中的第二远程源单元接收第二搜索结果集合。该方法可以包括:在单个显示单元内部提供关于第二搜索结果集合的至少第二子集的指示,以便进行显示,同时继续在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示以进行显示。
在一个方面中,提供一种包含指令的非临时性的机器可读介质。所述指令可以包括:用于接收一个包含了搜索查询以及多个远程源单元的标识符的输入的代码,其中多个远程源单元中的每一个都与相应的隐私障碍相关联。所述指令可以包括:用于以搜索查询以及用于克服远程源单元的相应隐私障碍的输入为基础而向多个远程源单元中的每一个传送包含了搜索请求的消息的代码。该指令可以包括:用于在第一时间从多个远程源单元中的第一远程源单元接收第一搜索结果集合的代码。并且该指令可以包括:用于在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示以进行显示的代码。该指令可以包括:用于在晚于第一时间的第二时间,从多个远程源单元中的第二远程源单元接收第二搜索结果集合的代码。该指令可以包括:用于在单个显示单元内部提供关于第二搜索结果集合的至少第二子集的指示以进行显示,并且同时继续在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示以进行显示的代码。
应该理解的是,从后续举例显示和描述了本技术主题的不同配置的详细描述中,本领域技术人员很容易清楚了解本技术主题的其他配置。可以认识到的是,本技术主题是能够实施其他不同的配置的,并且其细节是能够进行不同方面的修改的,所有这些均未脱离本技术主题的范围。相应地,附图和详细描述本质上应被看作是说明性而不是限制性的。
附图说明
图1示出的是根据本技术主题的一个方面的系统的示例;
图2示出的是根据本技术主题的一个方面的远程源单元的示例;
图3示出的是根据本技术主题的一个方面的客户机设备的示例;
图4A示出的是根据本技术主题的一个方面的客户机设备上的显示的示例;
图4B示出的是根据本技术主题的一个方面的客户机设备上的显示的示例;
图4C示出的是根据一个场景的网络系统的示例;
图5是示出了计算设备的示例的概念性框图;
图6A是网络系统的一个示例的图示;
图6B是网络系统的另一个示例的图示;
图7示出的是根据本技术主题的一个方面的显示了搜索结果的web浏览器窗口的示例;
图8示出的是根据本技术主题的一个方面的显示了用于与搜索结果交互的界面的web浏览器窗口的一个示例;
图9A示出的是根据本技术主题的一个方面的可用于搜索包含非公开数据的远程源单元的处理的一个示例;
图9B示出的是根据本技术主题的一个方面的包含了可用以搜索包含非公开数据的远程源单元的指令的设备的一个示例;
图9C示出的是根据本技术主题的一个方面的包含了可用于搜索包含非公开数据的远程源单元的模块的设备的一个示例;
图10A示出的是根据本技术主题的一个方面的可供客户机设备搜索多个远程源单元上的非公开数据的处理的一个示例;
图10B示出的是根据本技术主题的一个方面的包含了可供客户机设备搜索多个远程源单元上的非公开数据的指令的设备的一个示例;
图10B示出的是根据本技术主题的一个方面的包含了可供客户机设备搜索多个远程源单元上的非公开数据的模块的设备的一个示例;
图11A示出的是根据本技术主题的一个方面的可用于搜索非公开数据以及显示搜索结果的处理的一个示例;
图11B示出的是根据本技术主题的一个方面的包含了可用于搜索非公开数据以及显示搜索结果的指令的设备的一个示例;
图11C示出的是根据本技术主题的一个方面的包含了可用于搜索非公开数据以及显示搜索结果的模块的设备的一个示例;
图12A示出的是根据本技术主题的一个方面的用于从多个远程源单元搜索非公开数据以及显示搜索结果的处理的一个示例;
图12B示出的是根据本技术主题的一个方面的包含了用于从多个远程源单元搜索非公开数据以及显示搜索结果的指令的设备的一个示例;
图12C示出的是根据本技术主题的一个方面的包含了用于从多个远程源单元搜索非公开数据以及显示搜索结果的模块的设备的一个示例;
图13是根据本技术主题的不同方面的本地设备虚拟化系统的概念性框图。
具体实施方式
以下阐述的具体实施方式旨在描述本技术主题的不同配置,而不是描绘可以实践本技术主题的唯一配置。在这里引入了附图,并且所述附图构成了具体实施方式的一部分。所述具体实施方式包含了用于全面理解本技术主题的具体细节。然而,对本领域技术人员来说,很明显,本技术主题是可以在没有这些具体细节的情况下实施的。在一些实例中,为了免却混淆本技术主题的概念,众所周知的结构和组件是以框图的形式显示的。为了易于理解,相同的组件是用相同的部件编号标记的。
在一个方面中,本技术主题促进了安全搜索多个远程位置上的非公开数据的处理。在一个方面中,不管数据或者搜索请求的原始来源处于什么位置,本技术主题都允许用户使用单个查询来从多个来源搜索非公开数据(例如用户个人数据)。
传统上,为了搜索分布在多个位置(例如位于远端位置的计算设备或是基于网络或虚拟的源单元)的数据,用户被迫先要识别和定位每一个计算设备,然后独立地搜索每一个远程计算设备。此外,在某些情况中,系统会迫使用户首先借助远程桌面协议登录到每一个远程计算设备,以便运行搜索。一旦用户在每一个远程计算设备上运行了独立搜索,则用户必须手动聚合结果,并且决定结果的相对相关性,以便选择关于其搜索的最佳匹配。在一个有利的方面中,本技术主题可以消除这些缺陷。
从搜索过程会随用户搜索的位置/设备/应用而改变的事实中产生了一个非常重要的问题。更具体地说,搜索体验将会取决于诸如远程计算设备上的操作系统、网络连接以及提供给用户(即客户机设备)的应用之类的因素。
一些用以解决上述问题的方法的示例包括:(a)将每一个远程位置(例如文件夹/文件)挂载在客户机设备的本地文件系统上,并且通过本地搜索功能来执行搜索;以及(b)远程连接到每一个需要搜索的远程位置,例如借助于使用远程桌面协议的远程联机阶段,然后在每一个远程位置执行独立搜索。
然而,这些方法存在以下缺陷:用户必须有意识地决定其将要搜索和访问的位置。就上述方法(a)而言,在将远程位置挂载在客户机设备的本地文件系统上的时候,搜索是在本地执行的。这意味着在远程位置与客户机设备之间将要传送大量数据,由此,在通过慢速网络连接的时候会导致处理非常缓慢。至于上述方法(b),该方法不允许用户使用一个查询来同时搜索所有的远程计算机。用户必须登录到每一个远程位置,在该位置搜索数据,然后从该远程位置注销并且登录到下一个位置,并且按顺序在所有远程位置重复相同顺序的操作。在一个有利的方面中,本技术主题可以消除这些缺陷。
在一个方面中,物理或虚拟的远程计算设备可被称为远程位置、远程源单元、远程机或远程计算机,反之亦然。在一个方面中,客户机设备可被称为客户机、用户设备、本地设备、客户计算设备或用户,反之亦然。在一个方面中,搜索查询有时可被称为搜索指令,反之亦然。并且在一个方面中,指令有时可被称为请求或查询,反之亦然。此外,在一个方面中,术语非公开数据有时可以与术语非公开数据或个人数据交换使用,反之亦然。
关于网络系统配置的示例
图1示出的是根据本公开的一个方面的本技术主题的配置的一个示例。网络系统110可以包括一个或多个客户机设备120,一个或多个自动发现服务器130,以及一个或多个远程源单元(例如远程位置或虚拟源单元)140A到140N。在一个实施方式中,单个机器(例如190A,它可以是客户机设备)可以同时实施客户机设备120以及自动发现服务器130的功能。作为替换,不同的机器可以实施一个或多个客户机设备120以及一个或多个自动发现服务器130中的每一个的功能。客户机设备120和自动发现服务器130彼此可以借助超文本传输协议(HTTP)来进行通信。
客户机设备
在一个方面中,客户机设备120(例如移动电话或平板)可以是通信的端点。在一个方面中,大多数的请求是由客户机设备120发起的(例如由客户机设备120内部的搜索模块122发起)。作为示例,客户机设备120可以是任何启用网络/互连网的设备。客户机设备120可以是物理机或虚拟机。客户机设备120的搜索模块122可以负责向其用户提供用户界面,以便显示被发现的连接以及输入文本框,从而允许进行搜索。客户机设备120的搜索模块122可以运行自动发现组件。
远程源单元
在一个方面中,远程源单元(或远程位置/远程存储单元)140A到140N可以是N个,其中N是任意整数。例如,N可以是1、2、3、4、5或是5以上。每一个远程源单元140可以具有任何操作系统,并且安装了一个配套应用程序(例如142A)。所述远程源单元140可以包括物理机,例如膝上型计算机、台式计算机、移动电话、台式计算机或是家庭网络源单元。远程源单元140可以包括虚拟机,处于虚拟专用网内部的源单元,处于企业内部网之类的内部网的内部的源单元,基于云或互联网的源单元,或是处于存储了诸如照片或评论的社交联网服务的内部的数据源单元。远程源单元140可被理解成是系统110的另一个端点。远程源单元的每一个配套应用程序负责对来自客户机设备的请求做出响应。每一个远程源单元140可以运行其配套应用程序所支持的任何操作系统(例如WindowsTM 7、MACTM)。作为替换,远程源单元140可以包括一个没有运行任何操作系统的数据库,其中所述数据库被配置成对诸如SQL指令之类的数据访问指令做出响应。远程源单元140具有遍历文件系统以及为文档编制索引的软件。此外,远程源单元可以包括私有源单元,并且在所述私有源单元中必须克服了隐私障碍才能访问所述私有源单元。举例来说,要想访问个人计算设备上的私有源单元或是基于互联网的个人源单元,则有可能必须输入用户名或密码。此外,要想访问企业网络内部的私有源单元,则有可能需要提供一个证书。虽然图1仅仅显示了一个配套应用程序142A以及一个索引器144A,但是应该理解,每一个远程源单元可以包括一个配套应用程序和一个索引器。
在一个实施方式中,远程源单元140经由互联网或蜂窝网之类的网络来与自动发现服务器130或客户机设备120进行通信。所述远程源单元140可以借助可扩展消息传递和表示协议(XMPP)来与自动发现服务器130或客户机设备120进行通信。所述自动发现服务器130可以在网络上借助超文本传输协议(HTTP)来与客户机设备120进行通信。
配套应用程序
在一个方面中,在N个远程源单元140A-140N中的每一个上都安装了一个配套应用程序。配套应用程序可以自动发现服务器130的自动发现模块132、其他配套应用程序以及一个或多个客户机设备进行通信。
在一个方面中,每一个配套应用程序(例如142A)都在其相应的远程源单元上运行,并且其负责所有进出相应远程位置的通信,以及将其可用性报告给自动发现服务器的自动发现模块。它处理并解释客户机通过自动发现模块发送的消息。此外它还使用可用的索引器(例如144A)来取回关于特定搜索项的相关数据(例如文件、文件夹及应用)。
索引器
在一个方面中,在N个远程源单元中的每一个远程源单元上都安装了搜索索引器(或索引器)。索引器可以执行不同的排名和搜索处理。所述索引器是作为使用操作系统特征的配套应用程序的一部分运行的。例如,索引器可以通过分析诸如字频分布(也就是在文档中发现的搜索项的次数)、文件名相关性、文件创建日期、文件作者、文件大小和/或文件类型来对文档内容进行排名。
在一个方面中,每一个索引器(例如144A)负责对每一个远程源单元上的文件/文档进行排名。当远程源单元通过自动发现模块接收到来自客户机设备的搜索查询时,安装在每一个远程源单元上的配套应用程序将会处理该搜索项,并且会将该搜索项传送到与之对应的索引器。索引器则搜索处于相应远程位置的远程源单元,并且回传与搜索项最为相关的元素的排名。所述索引器可以通过创建字频分布来搜索文档内容,其中所述字频分布标识的是搜索项与文档/文件的相关程度。作为替换,索引器可以通过只搜索文件名而不搜索内容来窄化搜索,或者它还可以考虑其他元数据,例如文件创建日期。
在一个方面中,一个或多个索引器或每一个索引器(例如144A)可以被配置成遍历远程源单元的文件系统。所述一个或多个索引或每一个索引器可以被配置成为一个或多个远程源单元上的文件和文件夹或是文件和文件夹的子集编制索引。作为示例,文件子集可以是字处理文档的一节或一章。此外,作为示例,文件夹子集可以是子文件夹或是附着于文件夹内部的所有或部分文件的标签。
自动发现服务器
在一个方面中,自动发现服务器130包括在即便不处于相同网络上的所有组件(例如客户机设备和远程源单元)之间提供通信能力的自动发现模块132。在一个方面中,唯一的要求是所有组件与自动发现服务器130(例如自动发现模块132)都具有网络连接。
在一个方面中,自动发现服务器130的自动发现模块132可以作为“中间人”来运行。它负责在客户机设备与远程源单元之间中继消息。这些消息可以采用任何文本格式(例如JSON)。
关于远程源单元的配置的示例
图2示出的是根据本技术主题的一个方面的远程源单元的示例。远程源单元(例如140A)可以包括索引器144A、配套应用程序142A以及文件系统270。
索引器
索引器144A可以包括一个或多个不同类型的索引器。例如,索引器1可以是WindowsTM搜索索引器。索引器2可以是定制的索引器(例如用于使用Linux操作系统运作的远程源单元的定制索引器)。索引器可以由远程源单元的用户或是由别的装置来选择。
一旦接收到包含搜索项的搜索查询(例如从搜索指令处理机220),则索引器(例如索引器1)可以使用该搜索项来搜索器远程源单元(例如文件系统270)。依照用户或索引器选择的搜索判据,索引器可以在其远程源单元中搜索文件名、文件夹名、文件和文件夹内容和/或文件及文件夹的元数据。
在一个示例中,索引器可以确定所述搜索判据是只搜索文件及文件夹名,并且该索引器可以使用该搜索想来搜索文件名和文件夹名。然后,索引器可以回传名称中包含了搜索项的文件名和文件夹名。在另一个示例中,索引器可以确定搜索判据是搜索文件及文件夹的内容,并且可以搜索文件和文件夹的内容,以及回传具有包含了搜索项的内容的文件名和文件夹名。在另一个示例中,索引器可以确定搜索判据是搜索文件和文件夹的元数据,并且可以搜索文件和文件夹的元数据,以及回传具有与搜索项匹配的元数据的文件名和文件夹名。
在一个方面中,索引器可以对在指定远程源单元中发现的文件和/或文件夹进行排名,并且当在远程源单元中发现了更多文件和/或文件夹的时候,或者当在远程源单元的指定文件和/或文件夹中发现搜索项的次数增加的时候,所述索引器可以持续更新排名信息。对在指定远程源单元中发现的每一个文件或文件夹,索引器可以标识并且持续更新相关联的搜索排名信息(例如在指定文件或文件夹中发现搜索项的次数和/或在指定远程源单元中发现文件和文件夹的百分比排名)。
在另一个方面中,一个远程源单元的配套应用程序可以充当主配套应用程序,并且可以与其他远程源单元的配套应用程序进行通信,以便聚合所有远程源单元的搜索结果,以及跨越所有远程源单元的文件和/或文件夹来对文件和/或文件夹进行排名,并且所述主配套应用程序可以将聚合的排名提供给客户机设备。
在一个示例中,索引器可以提供一个索引器结果,其中该结果包含了被发现的一个或多个文件或文件夹名,并且包含了与文件或文件夹相关联的任何搜索排名信息。所述文件名或文件夹名可以是远程源单元的文件系统270中与文件或文件夹名、文件或文件夹内容和/或文件或文件夹元数据字段中的搜索项匹配的文件或文件夹名(例如与文件或文件夹相关联的元数据,或是与文件或文件夹的内容相关联的元数据)。
远程源单元网络接口模块
配套应用程序142A可以包括一个往来于客户机设备的通信的远程源单元网络接口模块210,其中作为示例,所述通信是经由自动发现模块132而在一个或多个信道146A上进行的。所述远程源单元网络接口模块210可以耦合到隐私障碍验证器212。所述隐私障碍验证器212可被配置成验证访问保存在远程源单元140A上的数据的外部设备(例如客户机设备120或自动发现服务器130)是否有权访问所述数据。例如,所述隐私障碍验证器212可以验证外部设备提供的用户名和密码正确,并且所述外部设备具有访问远程源单元140A所需要的证书。
指令处理机
配套应用程序142A可以包括一个能从远程源单元网络接口模块210接收指令的指令处理机220,其中所述指令是通过信道146A而从自动发现模块132接收的。一旦接收到指令,则指令处理机220可以确定所接收的每个指令的类型,恰当的目的地模块,以及将所述指令提供给所选择的恰当的目的地模块(例如230,240,250或260)。
在一个示例中,一旦接收到指令,如果指令处理机220确定该指令是搜索指令,那么指令处理机220会将该指令转发给搜索指令处理机。如果指令处理机220确定该指令是图标指令,那么指令处理机会将该指令发送给图标处理机260。如果指令处理机220确定该指令是图像/预览指令,那么指令处理机会将该指令提供给图像/预览处理机250。如果指令处理机220确定该指令是文件下载指令,那么指令处理机会将该指令提供给文件下载处理机240。
搜索指令处理机
配套应用程序142A可以包括一个搜索指令处理机230。当搜索指令处理机230从指令处理机220接收到包含搜索项(例如“university”)的搜索指令时,所述搜索指令处理机将会构造一个包含该搜索项的搜索查询,并且会将该搜索项提供给某个选择使用的索引器(例如索引器1,索引器2)。所述搜索指令处理机230还可以接收来自索引器的搜索结果,并且可以将所述结果转发给结果处理机进行处理以及将其转发给客户机设备(例如经由210)。
结果处理机-元数据模块
配套应用程序142A可以包括一个结果处理机280。结果处理机280可以包括元数据模块286,所述模块可以确定与索引器发现的每个文件、每个文件夹和/或每个文件或文件夹的内容相关联的元数据的类型。元数据可以提供与被发现关联于所述搜索的文件或文件夹有关的描述。所述元数据可以包括与文件或文件夹有关的信息(例如创建日期,作者,大小,类型,图标,或是文件或文件夹的图像)。元数据可以包括与文件或文件夹的内容相关的信息(例如文件内容或文件夹内容预览(或“外观和感觉”),文件内容或文件夹内容的缩略图,文件内容或文件夹内容的图像,文件内容或文件夹内容的其他任何局部视图)。
在一个方面中,元数据模块可以提供一个或多个指示符,所述指示符标识了文件或文件夹是否具有相关联的图标,相关联的文件内容或文件夹内容预览,相关联的文件、文件夹、文件内容或文件夹内容的图像,和/或文件内容或文件夹内容的其他任何局部视图(“图像或局部视图元数据”或“图像/局部视图元数据”。在另一个方面中,元数据模块可以提供一个或多个指示符,其中所述指示符标识的是文件或文件夹是否具有其创建日期、作者、大小和/或类型(“文本元数据”)。
“图像或局部视图元数据”可以是尺寸相对较大的元数据。所述图像或局部视图元数据可以是与文件、文件夹或是文件或文件夹的内容相关的一个或多个属性(或描述),并且它可以被表示成图标、图像、音频、视频或是文件或文件夹内容的局部视图。“文本元数据”可以是尺寸相对较小的元数据,并且它可以是与文件或文件夹相关的一个或多个属性(或描述),并且可以用文本而不是图像、图标、音频或视频来表示。
在一个示例中,如果文件包含散文,那么文件的图像/局部视图元数据可以包括散文的片段。如果文件是关于桥梁的图片,那么文件的图像/局部视图元数据可以包括显示了人脸的桥梁图片的一部分。文件的元数据可以包括标签。
结果处理机-群集模块
结果处理机280可以包括群集模块284,所述模块可以基于用户或配套应用程序标识的类别来对搜索结果(例如被发现的文件和/或文件夹)进行分组。例如,群集模块可以依照文件类型、数据、作者或大小来对搜索结果进行分组。在一个示例中,群集模块可以将所有文字文档聚合到一个群组中。在另一个示例中,群集模块可以将所有图片文档聚合到一个群组中。在再一个示例中,群集模块可以将属于选定人员的所有图片文档聚合到一个群组中。
结果处理机-许可过滤模块
结果处理机280可以包括一个许可过滤模块282,其中所述模块可以基于客户机设备用户许可判据来过滤搜索结果,以便允许仅仅在搜索结果满足许可判据的程度上将搜索结果传输至客户机设备。举例来说,如果只允许发起搜索查询的客户机设备的用户访问处于远程源单元的某些目录中的文件或是该用户编辑的文件,那么许可过滤模块282只允许从远程源单元传送这些得到许可的文件。
图标处理机
配套应用程序142A可以包括一个图标处理机260。一旦接收到指令(例如来自客户机设备并经由210、132),如果指令处理机220确定该指令是一个关于文件或文件夹的图标的指令,那么指令处理机220会将该指令提供给图标处理机260。图标处理机260可以确定与文件系统270中的文件或文件夹相关联的图标,并且可以从文件系统270向客户机设备提供被请求的图标(例如经由210,132)。
图像/预览处理机
配套应用程序142A可以包括一个图像/预览处理机250。一旦接收到指令(例如来自客户机设备并经由210、132),如果指令处理机220确定该指令是一个关于文件或文件夹的图像或预览的指令,那么指令处理机220会将该指令提供给图像处理机250。图像处理机250可以确定与文件系统270中的文件或文件夹相关联的图像或预览,并且可以从文件系统270向客户机设备提供被请求的图像或预览(例如经由210,132)。
文件下载处理机
配套应用程序142A可以包括一个文件下载处理机240。一旦接收到指令(例如来自客户机设备并经由210、132),如果指令处理机220确定该指令是一个关于文件下载指令,那么指令处理机220会将该指令提供给文件下载处理机240。文件下载处理机240可以识别文件系统270中的文件,并且可以从文件系统270向客户机设备提供被请求的文件(例如经由210,132)。
其他类型的处理机
虽然为了简洁起见没有显示,但是配套应用程序还可以具有其他类型的处理机。例如,一旦接收到指令,如果指令处理机220确定该指令是一个关于文件或文件夹的其他类型的元数据(例如音频、视频元数据)的请求,那么指令处理机220可以将该指令提供给恰当的元数据处理机(未显示),并且此类元数据处理机可以确定与文件或文件夹相关联的元数据,以及从文件系统270向客户机设备提供所述元数据的内容(例如经由210,132)。
加密/解密模块
配套应用程序142A可以包括一个加密/解密模块290。在从配套应用程序向客户机设备传送信息(其示例可以是针对请求的响应,例如搜索结果,文件内容,图像,图标)之前(例如经由132),加密/解密模块290可以对信息进行加密,由此可以在传输过程中保证信息安全。此外,所述加密/解密模块290可以对配套应用程序从客户机设备接收(例如经由132)的信息(例如请求或指令)进行解密。
关于客户机设备配置的示例
图3示出的是根据本技术主题的一个方面的客户机设备的示例。客户机设备(例如120)可以包括搜索模块122和用户界面(UI)360。所述客户机设备可以具有与图3所示的每一个组件进行通信并且可以存储各种数据及搜索结果的存储器(例如319)。
客户机网络接口模块
搜索模块122可以包括往来于远程源单元的通信的客户机网络接口模块310,其中作为示例,所述通信是经由自动发现模块132而在一个或多个信道126上进行的。客户机网络接口模块310可以向结果聚合器模块330提供信息,发送/接收去往/来自动作处理机350的信息,发送/接收去往/来自元数据缓存器340的信息,以及发送/接收去往/来自注册模块305的信息。
指令生成器模块
搜索模块122可以包括一个能与UI 360通信的指令生成器模块320。一旦接收并确定从UI 360接收到搜索项,则指令生成器模块320可以将该搜索项与一个指令相结合,以便产生搜索指令,以及将所述搜索指令提供给客户机设备(例如经由310,132)。
结果聚合器模块
搜索模块122可以包括一个结果聚合器模块330。响应于搜索指令,远程源单元可以将搜索结果提供给客户机设备的客户机网络接口模块310(例如经由132)。一旦接收到搜索结果(经由310),则结果聚合器模块330可以聚合从所有远程源单元接收的结果,并且可以依照类别(例如依照搜索项在被发现的文件中的字频分布,依照远程源单元,依照日期,依照作者,依照文件类型等等)来对所有结果进行分类、排序或排名。所述类别可以是由客户机设备的用户或是搜索模块122选择的。该结果聚合器模块可以在接收到结果的时候立即对所述结果进行聚合、分类和排名,而不用等待来自所有远程源单元的所有结果,并且所述结果聚合器模块可以持续更新由其聚合、分类和排名的信息,直至其确定接收、聚合、分类并排名了来自所有远程源单元的所有结果。
结果聚合器模块可以通过对与搜索结果中的文件和/或文件夹关联的搜索排名信息(例如字频分布)或是与之关联的元数据(例如日期,作者,文件类型)进行分类或排序来对所述文件和/或文件夹进行排名。所述结果聚合器模块可以向UI 360提供经过聚合和排名的搜索结果(例如按照排名顺序的文件名和/或文件夹名,任何相关联的聚合搜索排名信息,以及一些相关联的元数据(例如尺寸相对较小的文本元数据),以便显示给用户(例如使用存储器319和/或元数据缓存器340)。
元数据缓存器
搜索模块122可以包括一个元数据缓存器,所述元数据缓存器可以确定搜索结果中的文件或文件夹是否具有或关联于任何“大型”元数据。例如,元数据缓存器340可以通过检查搜索结果中的元数据指示符来确定文件或文件夹是否具有或关联于一个或多个图像/局部视图元数据。然后,元数据缓存器340可以确定客户机设备是否已经从远程源单元接收过所述文件或文件夹的元数据(例如文件或文件夹的图标、图像或预览)的内容并将其缓存在存储器中。
如果元数据缓存器340确定由于是首次搜索并找到相关联的文件或文件夹之类的原因而在客户机设备(例如319)中没有所述元数据的内容,那么所述元数据缓存器340可以确定适当的远程源单元,制订用于从所述适当的远程源单元请求所述元数据(例如图标、图像、预览)内容的指令,并且将所述指令发送到所述恰当的远程源单元(例如经由310,132)。一旦接收到被请求的元数据的内容,则元数据缓存器340可以缓存接收到的元数据的内容(例如在319中),由此,所述元数据缓存器340可以在以后仅仅取回和再次使用所述内容(而不是重新从远程源单元请求该内容)。这样做提供了有效的远程计算处理。
如果元数据缓存器340确定由于是第二次搜索相关联的文件或文件夹之类的原因而在客户机设备(例如319)中已经存在所述元数据的内容,那么元数据缓存器340不会从一个或多个远程源单元重新请求元数据内容,而是仅仅从客户机设备的存储器中取回所述元数据的内容。
元数据缓存器340可以将所述元数据(例如与文件或文件夹相关联的图标或图像)提供给UI 360,以便显示给用户。
动作处理机
搜索模块122可以包括一个动作处理机350,其中所述动作处理机可以监视用户经由UI 360请求的关于一个或多个文件的一个或多个动作,并且可以执行被请求的动作。举例来说,如果用户请求打开、复制、存储找到的文件或是将其附加至电子邮件或打印,那么动作处理机350可以确定该请求是一个关于文件内容的请求,并且可以确定适当的远程源单元,制订用于从所述适当的远程源单元请求文件内容的指令,以及向所述恰当的远程源单元发送该指令(例如经由310,132)。一旦客户机设备(例如319)接收到被请求的文件内容,那么动作处理机350可以在使用客户机设备的其他资源的同时对所述文件执行用户请求的动作(例如打开并在UI上显示该文件的内容,将文件附着到电子邮件上,或者打印该文件等等)。
加密/解密模块
搜索模块122可以包括一个加密/解密模块390。在将信息(其示例可以是指令或请求,例如搜索指令、关于元数据内容或文件内容的请求)从搜索模块传送到远程源单元(例如经由132)之前,加密/解密模块390可以加密所述信息,由此可以在传输过程中保证信息安全。此外,加密/解密模块390可以解密搜索模块从远程源单元接收(例如经由132)的信息(例如针对指令或请求的响应)。
远程源单元隐私障碍信息
如所示,客户机设备120包括远程源单元隐私障碍信息395。远程源单元隐私障碍信息395可以被配置成允许客户机设备120访问远程源单元140。所述远程源单元隐私障碍信息395既可以保存在客户机设备120的长期存储器中,也可以由用户输入或者保存在客户机设备120的短期存储器中。远程源单元隐私障碍信息395可以包括登录信息,例如用户名或密码,或是用于访问一个或多个远程源单元140的证书。
用户界面
UI 360可以包括输入设备(例如键盘、鼠标、麦克风、触摸屏),输出设备(例如显示器、扬声器、触摸屏、打印机)和/或界面(例如驱动器)。
关于操作的不同例证
以下描述的是根据本公开的不同方面来搜索远程源单元上的数据的不同细节层次的不同例证。
例证1
根据本公开的一个方面,所示出的是在多个远程计算设备上搜索非公开数据的例示操作。
远程源单元(例如140A到140N)上的配套应用程序(例如142A,205)向自动发现模块(例如132)报告其可用性。
客户机设备(例如120,122,305)登录自动发现模块。
客户机设备(例如120,122,305)借助自动发现模块提供的服务来自动发现远程源单元,而不必指定远程源单元的位置或网际协议(IP)地址。
客户机设备请求对所述客户机设备从自动发现模块中发现的所有远程源单元(例如140A到140N)进行异步搜索查询(经由自动发现模块)。例如,当客户机设备传送单个搜索查询时,作为响应,自动发现模块可以同时将所述单个搜索查询传送至所有远程源单元(而不是逐一向远程源单元顺序发送查询)。客户机设备可以简单地通过传送单个搜索查询来搜索所有远程设备,并且客户机设备不需要单独为每一个单个的远程源单元传送一个搜索查询。
一旦搜索查询抵达,则远程源单元的每个索引器(例如144A)会依照相关性并使用基于索引的搜索算法来对其相应远程源单元中的所有文档/文件进行排名,并且远程源单元的每一个配套应用程序都会经由自动发现模块来将结果回传给客户机设备。
客户机设备接收每一个远程源单元经由自动发现模块发送的结果,并且依照所述结果的排名来聚合这些结果。一旦从每一个远程源单元获取了搜索结果,则客户机设备将会开始显示搜索结果。
如果客户机设备尚不具有与已发现的文件和文件夹关联的附加信息,例如图标、元数据或更多细节(例如预览,下载),那么客户机设备将会经由自动发现模块来向远程源单元的配套应用程序发送用于取回此类信息的第二查询。在一个方面中,元数据包括与文件或文件夹相关的信息。在一个方面中,元数据包括与文件或文件夹的内容相关的信息。
远程源单元使用附加信息并通过自动发现模块来做出回应。
客户机设备接收并缓存所述附加信息,以便在以后使用。
例证2
根据本公开的一个方面,所示出的是在多个远程计算设备上搜索非公开数据的另一个示例。
在一个有利的方面中,举例来说,远程源单元(例如访问模块206)的每一个配套应用程序可以允许搜索查询自动绕过远程源单元上的防火墙,由此可以在远程源单元的用户/管理员未介入的情况下,允许客户机设备发起的搜索查询访问并搜索远程源单元上的非公开数据。
在一个有利的方面中,配套应用程序(例如访问模块206)可以确定远程源单元是否启用了防火墙。通常,当远程源单元接收到要求建立连接的“未经请求”的请求时(例如并非远程源单元发起或请求的通信),如果远程源单元具有防火墙,那么该防火墙将会阻止发起所述连接的处理。在本示例中,配套应用程序希望允许由自动发现模块发起的连接请求。因此,如果启用了防火墙,那么配套应用程序(例如206)可以选择性地为外部来源(例如客户机设备,处于远程源单元外部的自动发现模块)始发或发起且定向至该配套应用程序的所有通信禁用防火墙。在另一个示例中,如果启用了防火墙,那么配套应用程序(例如206)可以选择性地为自动发现模块始发或发起和/或定向至该配套应用程序的所有通信禁用防火墙。
在一个有利的方面中,这种选择性的防火墙禁用或例外(或者选择性地绕过防火墙)可以允许客户机设备自动访问远程源单元上的非公开数据,而不需要通过远程源单元或用户或管理员的介入来解封每一个定向至所述远程源单元的配套应用程序的通信。
在一个示例中,当在相应的远程源单元(例如首次)安装配套应用程序时,每一个配套应用程序(例如206)可以自动执行选择性的防火墙禁用,并且只要配套应用程序仍旧是安装在远程源单元上的,则所述配套应用程序将会允许在其相应的远程源单元中保持选择性的防火墙禁用。在另一个示例中,在每次启动或运行所述配套应用程序的时候,所述配套应用程序(例如206)可以自动执行选择性的防火墙禁用。在一个方面中,配套应用程序可以在向自动发现模块报告其可用性之前执行选择性的防火墙禁用。
在一个有利的方面中,当远程源单元(例如140A)通电并且在远程源单元上运行配套应用程序(例如142A)时,所述配套应用程序(例如报告模块205)可以向自动发现模块(例如132,130)报告其可用性。同样,其他远程源单元的配套应用程序也可以向自动发现模块报告其可用性。在一个方面中,一个或多个配套应用程序可以自动报告其可用性,而不需要用户的动作。在一个示例中,一个或多个配套应用程序可以在一个或多个远程源单元启动的时候自动报告其可用性。在一个示例中,如果一个或多个配套应用程序正在运作并且可用,那么所述配套应用程序可以定期地自动报告其可用性。
当客户机设备(例如登录模块305)登录到自动发现模块时,所述客户机设备(例如305)可以自动发现可用的远程源单元,而不必由用户搜索或识别远程源单元。所述客户机设备(例如122,305,360)可以在其显示器(例如图3和4A中的360)上自动显示可用的远程源单元(相关示例参见图4A中的430)。当用户选择了某个搜索图标(例如图4A中的420A)时,客户机设备(例如122,305)可以提供一个供用户使用诸如触摸屏键盘(例如图4A中的440)来输入搜索项的搜索框(例如420B)。在一个有利的方面中,所有远程源单元都可以在用户未选择远程源单元的情况下被自动搜索。在另一个示例中,用户可以选择仅仅选定其中一些远程源单元以进行搜索。
指令生成器(例如320)可以确定在UI 360上输入了搜索项,并且可以产生带有该搜索项的搜索指令,以及将所述搜索指令同时提供给远程源单元。
当自动发现模块(例如132)接收到搜索指令时,它可以同时向所有的远程源单元传送搜索指令。
一旦收到指令,如果每一个远程源单元的指令处理机(例如220)确定接收到的指令是搜索指令,那么该指令处理机会将所述指令转发给每一个相关联的远程源单元的搜索指令处理机(例如230),所述搜索指令处理机则会构造一个带有该搜索项的搜索查询,并且会将该搜索查询提供给每一个相关联的远程源单元的索引器(例如索引器1或索引器2)。
每一个远程源单元的索引器可以使用该搜索项来搜索与之关联的远程源单元(例如文件系统270)。依照用户、搜索模块或配套应用程序选择的搜索选项,索引器可以在文件和文件夹名、文件内容和/或文件和文件夹的元数据中搜索该搜索项。所述索引器可以依照匹配质量或其他排名类别而在其远程源单元内部或是一些或所有远程源单元上对文件和/或文件夹进行排名。并且所述索引器可以提供关于所发现的文件和/或文件夹的排名信息。
每一个远程源单元的元数据模块(例如286)可以确定已发现的文件/文件夹是否用一个或多个元数据表示。一些元数据的尺寸有可能较大(例如图标或图像),由此,元数据模块可以产生用于规定已发现的文件/文件夹是否用特定类型的元数据表示的元数据指示符。为了方便起见,在本公开中有时也将此类元数据称为图像/局部视图元数据。
每一个远程源单元的群集模块(例如284)可以依照分组判据来将已发现的文件/文件夹分组到一个或多个群组中。
每一个远程源单元的许可过滤模块(例如282)可以基于发起搜索请求的用户的许可判据来过滤文件/文件夹,由此只从每一个远程源单元传送那些已被授权用户访问的文件/文件夹。
响应于单个搜索指令,每一个远程源单元的配套应用程序(例如270,230,280)可以向自动发现模块传输搜索结果,其中所述搜索结果包含了一个或多个文件名和/或文件夹名,相关联的搜索排名信息(如果有的话,其示例可以是索引器产生的在每一个文件中被发现的匹配次数)以及相关联的元数据指示符(如果有的话,其示例可以是元数据模块产生的关于文件是否具有图标的指示符)。如果存在尺寸较小的元数据(例如作者、文件大小、文件类型、文件创建日期),那么该搜索结果可以包括此类元数据的内容。为了方便起见,在本公开中有时也将此类元数据称为文本元数据。为了提高远程计算效率,响应于搜索查询传送的搜索结果不包含任何图像/局部视图元数据。
一旦接收到搜索结果,则自动发现模块可以将其接收的每个搜索结果转发给客户机设备。
一旦搜索结果抵达,则客户机设备的结果聚合器模块(例如330)可以聚合所述搜索结果并对其排名,以及更新已被合并和排名的搜索结果,直至接收到所有搜索结果。
元数据缓存器(例如340)可以确定该搜索结果是否包含与图像/局部视图元数据有关的元数据指示符,如果是的话,则向所有适当的远程源单元传输关于此类元数据的请求或指令(经由132)。
一旦接收到请求或指令,位于远程源单元的适当元数据处理机(例如图标处理机260或图像/预览处理机250)可以向客户机设备提供被请求的元数据的内容。
一旦接收到取回的元数据内容,则客户机设备的元数据缓存器可以缓存该内容(例如文件图标)。
如图4B所示,一旦完成聚合、排名以及取回搜索结果的处理,则客户机设备(例如330和340)可以在UI 360上显示关于所有远程源单元的已合并和排名的搜索结果(例如460)。举例来说,如图4B所示,结果聚合器模块可以向UI提供文件名(例如文件名1,文件名2,文件名3)以及与文件相关联的某些元数据(尺寸较小),例如被找到文件所在的远程源单元的相关名称(文件1的远程源单元名称,文件2的远程源单元名称,文件3的远程源单元名称),文件创建日期(例如文件1的日期,文件2的日期,文件3的日期)以及每一个文件的相关字频分布(例如文件1中的出现情况,文件2中的出现情况,文件3中的出现情况)。元数据缓存器340可以向UI提供与文件关联的某些元数据(尺寸较大)(例如图标1,图标2,图标3)。
当用户点击文件名(例如文件名1)并选择打印、附着于电子邮件或打开文件之类的文件动作时,动作处理机(例如350)可以检测出关于文件的用户动作,确定恰当的远程源单元,以及向所述恰当的远程源单元发送指令。
一旦接收到指令,则所述适当远程源单元的文件下载处理机(例如240)可以标识并向客户机设备提供被请求的文件的内容。
一旦接收到文件内容,则客户机设备(例如动作处理机350)可以执行被请求的动作(例如打印、附着、打开文件)。
在一个方面中,所有或一些信息可被加密以进行传输,并且可以在被接收时使用诸如加密/解密模块290和390来对其进行解密。
在一个方面中,远程源单元可以响应于客户机设备发起的搜索查询来搜索,取回非公开数据的搜索结果,以及向客户机设备传送所述非公开数据的搜索结果,并且所有这些处理都是实时进行的(例如小于1小时、30分钟、5分钟或1分钟,这一点取决于被搜索的数据量)。
例证3
在一个有利的方面中,自动发现服务器、远程源单元以及客户机设备是不同的独立设备,并且位于彼此远端。参考图4C,在一个有利的示例中,客户机设备是手持移动设备(例如用户的移动电话或便携式平板470),自动发现服务器是固定的计算服务器471,远程源单元则可以是移动或固定的计算设备。在一个示例中(未示出),计算服务器471可以是用户移动电话或平板470内部的组件。在所示出的示例中,远程源单元可以包括用户的办公室台式计算机472,用户的膝上型计算机473,用户的家用台式计算机474,在实验室被多个用户共用的台式计算机475,以及属于该用户的基于云的源单元476。所述基于云的源单元476可以与基于互联网的文档、图像、音乐或视频存储系统相关联。此外,所述基于云的源单元476还可以与在线商店或是在线社交网络服务相关联,并且可以包括从在线商店购买的内容或是张贴到在线社交网络服务的内容。用户数据则被保存在防火墙之后的每一个远程源单元中。
此外,办公室台式机472、膝上计算机473、家用台式机474、实验室台式机475以及基于云的源单元476中的每一个都可以与一个隐私障碍相关联,并且计算服务器需要克服该隐私障碍来访问源单元472、473、474、475和476中存储的内容。例如,要想访问办公室台式机472上存储的内容,计算服务器471有可能需要企业网证书以及该用户的用户名或密码。要想访问个人膝上型计算机473以及家用台式机474上存储的数据,计算服务器471有可能需要具有用于登录到用户家庭网络的登录证书。要想访问实验室台式机475上存储的数据,计算服务器471有可能需要实验室证书。要想访问基于云的源单元476上存储的数据,计算服务器471有可能需要该用户的用户名和密码。克服隐私障碍所需要的信息可以保存在用户的移动电话或平板470上,或者可以由用户借助移动电话或平板470手动输入。
远程源单元中的用户数据(例如文件和文件夹)是非公开数据,此类数据不能被公众访问,并且无法被网络搜索引擎或网络爬虫搜索。在web服务器上有可能发布该数据的拷贝,或者有可能会从某个网站复制远程源单元中存储的一些用户数据。然而,如上所述,保存在防火墙或其他隐私障碍之后的远程源单元中的数据是不能被公开访问或搜索的。
远程源单元中的用户数据(例如文件和文件夹)是用户个人的,用户或用户代表有可能对其执行过编辑、创建、保存、修改、打印、供应、拷贝、发送、接收、查看或是其他方面的动作,或者所述用户数据有可能是该用户可用的。在这样的场景中,用户可以代表该用户所属的群组或是该用户的组织或公司。
在一个场景中,用户有可能在其办公室台式机472上保存了一些文字和演示文档及电子邮件,并且有可能将图片和电子邮件下载至其膝上型计算机473,此外他还有可能在其家用台式机474上保存了绘图、图片和游戏,并且有可能在实验室台式机475上保存了电子表格、绘图及分析文档。当用户在路上需要审阅一个或多个远程源单元472、473、474和475上的一个或多个文件时,用户只要登录计算服务器471的自动发现模块并且输入一个搜索项进行搜索,即可使用单个搜索查询来同时搜索所有远程源单元中的所有文件。
不同例证的优点
根据不同的方面,本技术主题尤其可以提供以下的优点和益处:
允许使用单个查询搜索所有远程源单元,而不必传送大量信息(“分布式搜索”)。先前的方法并不允许用户发起分布式搜索。
允许执行搜索的客户机自动将所有结果聚合在一个按照任意排名系统(例如匹配质量)排序的搜索结果列表中(例如在用户未干预的情况下单纯基于搜索模块选择的排名判据,或者基于用户选择的排名判据)。
用户不需要向每一个远程机器发起远程联机阶段(例如使用远程桌面协议)。该搜索可以在所有可用的远程源单元上无缝执行,而不必由用户对其进行识别或者确定其是否可用。这在先前是无法实现的。
不需要用户有意识地决定应该搜索哪些位置。所有可用的远程源单元都可被搜索,并且针对用户的响应可以是一个关于搜索结果的合并视图,而不用考虑信息所在的位置。
允许用户访问搜索到的所有信息。例如,用户只要点击搜索结果即可打开/查看作为搜索结果一部分的文件(例如不需要客户机设备用户或远程源单元的用户/管理员实施其他任何动作)。
在一个有利的方面中,当客户机设备(例如305,122,120)登录自动发现模块时,与本技术主题的一个或多个其他方面结合的报告处理可以允许客户机设备(例如122,120)自动并同时地发现报告给自动发现模块的所有远程源单元。
在一个有利的方面中,与本技术主题的一个或多个其他方面(例如登录)相结合的报告处理可以允许实时使用单个搜索查询来同时无缝地搜索所有远程源单元上的非公开数据。这样做可以有利地消除客户机设备在每个远程源单元上发起单独的安全远程联机阶段登录的需要(例如不需要用户单独和顺序地登录、搜索和注销每一个远程源单元)。
在一个有利的方面中,与本技术主题的一个或多个其他方面(例如登录)相结合的报告处理可以消除客户机将每一个远程源单元挂载在该客户机设备上的需要,并且可以消除在远程源单元与客户机设备之间经由带宽受限的网络信道来传送大量数据的需要。
在一个有利的方面中,与本技术主题的一个或多个其他方面(例如报告或其他方面)相结合的远程源单元上的选择性服务器禁用可以允许自动访问远程源单元上的非公开数据,而不会危害远程源单元上的非公开数据的安全性,并且不需要用户/管理员的介入。非常有利的是,这样做还允许客户机设备用户只要点击搜索结果(例如单击或双击)即可打开、查看、打印和/或附着在远程源单元中发现的非公开文件。
在一个有利的方面中,与本技术主题的一个或多个其他方面(例如登录)相结合的报告处理可以消除用户有意识且繁琐地做出应该搜索哪一个远程源单元的决定的需要。
在一个有利的方面中,远程源单元的报告处理可以允许使用单个查询来同时搜索非公开数据,而不用考虑非公开数据或远程源单元所在的位置。
在一个有利的方面中,客户机设备登录到自动发现模块的处理可以允许使用单个查询来同时搜索非公开数据,而不用考虑始发源或客户机设备所在的位置。
在一个有利的方面中,远程源单元的报告处理以及客户机设备的登录和结果聚合动作可以允许客户机设备依照一个排名系统而将来自所有远程源单元的非公开数据的搜索结果自动聚合在一个关于所有搜索结果的合并列表中。
在一个有利的方面中,搜索结果包括元数据指示符(尤其是关于大型元数据,例如图标或图像),由此,客户机设备(例如340)可以确定已发现的文件是否用大型元数据表示,如果是的话,则取回并缓存此类大型元数据,以便可以再次使用所述元数据,而不用经由带宽受限的网络来从远程源单元中将其再次取回。这样做提供了有效的远程计算处理。
在一个有利的方面中,与本技术主题的一个或多个其他方面相结合的报告处理以及选择性的防火墙禁用可以允许响应于一个搜索查询来同时搜索位于多个远程源单元的原始非公开数据(而不是包含公开数据的网页)(而不是搜索在发起该搜索查询之前已被取回的非公开数据的拷贝)。
计算设备的示例
图5示出的是计算设备的示例的概念性框图。
作为示例,计算设备500可以是客户机设备120,自动发现服务器130,或是任何远程源单元140A到140N。一个计算设备可以包括一个或多个计算设备。
计算设备500可以包括一个处理系统502。该处理系统502能够通过总线或是其他结构或设备来与接收机506以及发射机508进行通信。应该理解的是,除了总线之外,其他通信装置也可以与所公开的配置一起使用。处理系统502可以产生提供给发射机509以进行传递的音频、视频、多媒体和/或其他类型的数据。此外,在接收机506上可以接收并且处理系统502可以处理音频、视频、多媒体和/或其他类型的数据。
处理系统502可以包括用于运行指令的通用处理器或专用处理器,并且还可以包括用于存储软件程序的数据和/或指令的机器可读介质519。所述指令可以保存在机器可读存储介质510和/或519中,并且可以由处理系统502运行,以便控制和管理针对不同网络的接入,以及提供其他通信和处理功能。此外,这些指令还可以包括能够由处理系统502为显示器512和数字键盘514之类的不同用户接口设备运行的指令。处理系统502可以包括输入端口522和输出端口524。每一个输入端口522和输出端口524可以包括一个或多个端口。所述输入端口522和输出端口524既可以是相同端口(例如双向端口),也可以是不同端口。
处理系统502可以用软件、硬件或软硬件组合来实施。例如,处理系统502可以用一个或多个处理器来实施。处理器可以是通用微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、状态机、门逻辑、分立硬件元件和/或其他任何能够执行计算或其他信息操作的适当设备。本领域技术人员将会认识到如何以最佳方式来为处理系统502实施所描述的功能。
无论被称为软件、固件、中间件、微代码、硬件描述语言还是其他,软件都应该被广义地解释成指令、数据或是其任何组合。指令可以包括代码(例如采用源代码格式、二进制码格式、可执行代码格式或其他任何适当的代码格式)。作为示例,指令可以由计算设备(例如客户机设备,自动发现服务器或远程源单元)或是处理系统(例如客户机设备、自动发现服务器或远程源单元的处理系统)执行。例如,指令可以是包含代码的计算机程序。
机器可读介质可以是一个或多个机器可读媒体。所述机器可读介质(例如510)可以包括位于处理系统外部的存储器,例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦写PROM(EPROM)、寄存器、硬盘、可移除磁盘、CD-ROM、DVD或其他任何适当的存储设备。此外,机器可读介质519还可以具有易失存储器和非易失存储器。所述机器可读介质(例如510)可以包括集成在处理系统中的存储器,作为示例,专用集成电路(ASIC)即为这种情况。存储器可以是机器可读介质(例如510或519)或是其一部分。
根据本公开的一个方面,机器可读介质是用指令编码或存储了指令的计算机可读介质,并且是一个定义了指令与能够实现指令功能的系统剩余部分之间的结构和功能方面的相互关系的计算部件。在一个方面中,机器可读介质是非临时性的机器可读介质,机器可读存储介质,或非临时性的机器可读存储介质。并且在一个方面中,机器可读介质是计算机可读介质,非临时性的计算机可读介质,计算机可读存储介质,或非临时性的计算机可读存储介质。非临时性介质可以包括一个或多个易失和/或非易失存储器。
接口516可以是任何类型的接口,并且可以驻留在图5所示的任何组件之间。例如,接口516也可以是与外部世界的接口(例如互联网网络接口)。收发信机部件507可以代表一个或多个收发信机,并且每一个收发信机都可以包括接收机506和发射机509。在处理系统502中实施的功能可以在接收机506的一部分、发射机509的一部分、机器可读介质510的一部分、显示器512的一部分、数字键盘514的一部分或是接口516的一部分中实施,反之亦然。在一个方面中,计算设备可以只包含图5所示的一些部件或所有部件。计算设备可以包括图5未显示的其他部件。并且计算设备还可以包括一个以上的相同部件。
关于网络系统的示例
图6A是网络系统示例的图示。系统600可以包括经由一个或多个计算设备(例如自动发现服务器130)以及一个或多个网络606而与一个或多个计算设备604(例如远程源单元140A到140N)通信的一个或多个计算设备602(例如客户机设备120)。所述网络606可以是相同或不同的网络。
图6B是网络系统的另一个示例的图示。系统600可以包括经由网络606来进行通信的一个或多个计算设备602(例如客户机设备102),一个或多个计算设备604(例如远程源单元140A-140N)以及一个或多个计算设备(例如自动发现服务器130)。在另一个示例中,计算设备604可以是串行连接的。
作为例证而不是限制,计算设备602可以代表移动电话,便携平板,手持设备,膝上型计算机,瘦计算设备,个人数字助理(PDA),便携式计算设备,或是具有处理器的适当设备。在一个示例中,计算设备602可以是智能电话(例如iPhoneTM、AndroidTM电话、BlackberryTM等等)。在某些配置中,计算设备602可以代表音频播放器,游戏机,相机,摄影机,音频设备,视频设备,多媒体设备或是能够支持与远程计算设备的连接的设备。在一个优选示例中,计算设备602是移动的。在一个有利的示例中,计算设备602是手持设备。在另一个示例中,计算设备602可以是固定的。根据本发明的一个方面,计算设备602可以是至少具有处理器和存储器的设备,其中计算设备602的存储器总量少于计算设备604的存储器总量。在一个示例中,计算设备602不具有硬盘。在一个方面中,计算设备602的显示器要小于计算设备604或608所支持的显示器。
在一个方面中,计算设备604或608可以代表计算机。在另一个方面中,计算设备604或608可以代表膝上型计算机,计算设备,虚拟机(例如虚拟机),桌面联机阶段(例如Microsoft Terminal Server),已发布的应用(例如Microsoft Terminal Server)或是具有处理器的适当设备。在一个示例中,计算设备604或608是固定的。在另一个方面中,计算设备604或608可以是移动的。在某些配置中,计算设备604或608可以是能够代表客户机设备的任何设备。
在一个方面中,一个计算设备可以包括一个或多个计算设备。
在一个示例中,当第一设备不直接连接到第二设备时,所述第一设备处于第二设备远端。在一个示例中,第一远端设备可以经由通信网络连接到第二设备。
当计算设备602、计算设备608以及计算设备604位于彼此远端时,计算设备602可以经由网络606连接到计算设备604,并且计算设备604可以借助网络连接而在网络606上与计算设备608相连,作为示例,该网络连接是调制解调器连接,包括以太网在内的局域网连接,包括DSL、电缆、T1、T3、光纤、Wi-Fi在内的宽带WAN连接,或是包括GSM、GPRS、3G、WiMax或其他网络连接在内的移动网络连接。网络606可以是LAN网络、WAN网络、无线网络、互联网、内部网或其他网络。网络上的计算设备(例如计算设备120,130或是140A-140N中的任何一个)可以用相应网络地址来寻址,例如网际协议(IP)地址、互联网名称、Windows Internet命名服务(WINS)名称、域名或其他系统名称,但其并不局限于此。以上示出的仅仅是一个设备如何位于另一个设备远端的一些示例。但是,本技术主题并不受这些示例的限制。
在一个方面中,术语“本地”和“远端”是相对术语,依照计算设备处于网络的一端还是网络的另一侧,可以将该计算设备称为本地计算设备或远程计算设备。
例如,依照从客户机侧(例如120)还是服务器侧(例如130)或远程源单元侧(例如140A)描述客户机设备,可以将客户机设备称为本地设备或远程源单元。依照从远程源单元侧(例如140A)还是客户机(例如120)或服务器侧(例如130)描述远程源单元,可以将远程源单元(例如140A)城北本地设备或远程源单元。同样,依照从服务器侧还是客户机侧或远程源单元侧描述服务器,可以将自动发现服务器称为本地服务器或远程服务器。
此外,如果从远程源单元侧描进行描述,那么可以将在远程源单元上运行的应用称为本地应用,如果从客户机侧或服务器侧进行描述在,则可以将其称为远程应用。
在一个方面中,,位于客户机侧的设备(例如直接连接到一个或多个客户机设备的设备,或者彼此使用有线或短距离无线连接(例如Bluetooth)相连的设备)相对于客户机设备120而言可被称为本地设备,并且相对于远程位置140A到140N或是自动发现服务器130而言可被称为远程源单元。同样,相对于远程源单元140A而言,置于远程源单元140A的远程位置的设备(例如直接使用有线或短距离无线连接相连的设备)可被称为本地设备。
显示搜索结果的web浏览器窗口
图7示出的是根据本技术主题的一个方面的显示了搜索结果的web浏览器窗口700的一个示例。
如所示,web浏览器窗口700包括标题栏702,关闭按钮704,搜索框706,搜索结果计数器708,搜索控制区域710、712和714,以及搜索结果区域716。
标题栏712可以包括在web浏览器窗口700中显示的网页的标题,例如“私人搜索服务”。在一个示例中,web浏览器窗口700可以包括一个或多个web浏览器标签,并且在标题栏702上可以显示活动标签的标题。
关闭按钮704可以被配置成在被选择的时候使web浏览器窗口700关闭。举例来说,通过用鼠标点击关闭按钮704,借助触摸屏触摸关闭按钮704,或者在数字键盘上点击与关闭按钮704相关联的热键,都可以选择所述关闭按钮704。
搜索框706可以被配置成允许用户输入搜索查询,例如文本查询。如所示,用户在搜索框706中输入了查询“rabbit”。作为示例,当文本鼠标处于搜索框时,用户可以通过点击“输入”或“回车”按键或者通过点击“搜索”按键(未示出)来使基于搜索框706中的搜索查询的搜索处理运行。
搜索结果计数器708可以被配置成显示基于该搜索查询发现的搜索结果的数量。如所示,搜索结果计数器708指示的是发现了五个结果。应该指出的是,在搜索结果区域716中出现了五个搜索结果。
搜索控制区域710、712或714可以包括被配置成控制所述搜索的一个或多个单选按钮或复选框。所述搜索可被定向到个人或非公开数据源,例如个人计算设备,个人云端源单元,公司内部网,少量用户(例如少于100个用户)共用且不能被全体公众访问的计算设备,或是电子邮件账户内部的个人存储区域,在线日历账户,社交网络服务,在线文档管理账户等等。
如所示,搜索控制区域710允许用户借助复选框界面来选择所要搜索的个人或非公开位置。用户能够将所述搜索定向到“家用台式机”、“web-storage.com云驱动器”、“ABC企业内部网”以及“生物实验室计算机”中的一个或多个。用户可以访问这其中的每一个源,并且可以访问隐私障碍,例如用户名和密码或证书,以便访问这其中的每一个源。举例来说,用户有可能具有ABC公司内部网的证书,并且有可能知道用于访问web-storage.com云驱动器的用户名和密码。所述证书和用户名或密码可以以与web浏览器窗口关联的方式存储,或者用户可以在发起搜索之后响应于某个提示来提供证书或是用户名和密码。所述提示可以出现在web浏览器的弹出窗口中。
搜索控制区域712允许web浏览器窗口700的用户借助复选框接口来选择该用户是希望搜索结果包含文件和文件夹还是只包含文件。所述搜索控制区域714允许web浏览器窗口700的用户选择该用户所期望的是仅仅基于文件名的搜索还是基于文件文本的搜索。
如所示,搜索结果区域716包括一组搜索结果718、720、722、724以及726。虽然指示了五个搜索结果,但是本技术主题是可以结合任何数量的搜索结果实施的。每一个搜索结果的名称、位置、文件大小以及修改日期可被显示。在一个示例中,搜索结果区域中的搜索结果可以依照某种顺序排列,作为示例,该顺序可以是与搜索框706中的搜索查询的相关性的顺序,基于名称的顺序,基于位置的顺序,基于文件大小的顺序,或是基于修改日期的顺序。与搜索框706中的搜索查询的相关性可以是用任何技术计算的。例如,该相关性可以基于所述搜索查询的文本在文件中出现的次数或是访问该文件的频繁程度。作为替换,搜索结果718、720、722、724或726可以是依照任意顺序显示的。在一个实施方式中,在发现了更多搜索结果之后,所述搜索结果可被实时提供和实时更新。例如,显示web浏览器窗口700的客户机计算设备首先可以从家用台式机接收搜索结果718和726,之后可以从web-storage.com接收搜索结果720。一旦接收到结果720,则客户机计算设备可以促使更新web浏览器窗口中显示的数据,以便包含搜索结果718、720和726。以下结合图12显示了基于所接收的附加搜索结果来更新所显示的搜索结果集合的处理的一个示例。
虽然web浏览器窗口700示出的是可用以输入搜索查询以及可用以显示搜索结果的一种格式,但是本领域技术人员无疑可以认识到用以输入搜索查询可以显示搜索结果的其他格式。例如,作为web浏览器窗口700的替换,可以使用移动电话或平板计算机应用之类的专用应用来输入搜索查询以及显示搜索结果。作为替换,web浏览器窗口700有可能没有搜索结果计数器708或是搜索控制区域710、712和714。在一个实施方式中,用以输入搜索查询以及显示结果的格式是基于客户机设备的屏幕尺寸、客户机设备的硬件或是客户机设备上安装的软件中的一项或多项确定的。作为示例,在膝上型/台式计算机客户机设备、平板计算机客户机设备或是移动电话/个人数字助理(PDA)客户机设备上可以采用不同的格式来显示结果。
用于与搜索结果交互的界面
图8示出的是依照本技术主题的显示了用于与搜索结果交互的界面的web浏览器窗口700的一个示例。
如所示,用户将鼠标802放在web浏览器窗口700中与搜索结果724“bunny-rabbit.doc”相关联的区域上。作为对用户将鼠标802放置在与搜索结果724相关联的区域上的响应,web浏览器窗口可以显示一个用于与搜索几口724交互的界面元素,例如悬停提示卡(hover card)。如所示,悬停提示卡804包括查看链接806,编辑链接808,打印链接810以及共享链接812。在选择了查看链接806的时候,该链接会导致显示与搜索结果724相关联的文件。在选择了编辑链接808的时候,该链接会导致呈现与搜索结果724相关联的文件以进行编辑。在选择了打印链接810的时候,该链接会导致使呈现用于打印与搜索结果724相关联的文件的界面,或者导致产生一个用于与借助默认打印机打印的搜索结果724相关联的文件的界面。在选择了共享链接812的时候,该链接会导致呈现一个用于共享与搜索结果724相关联的文件的界面。作为示例,与搜索结果724相关联的文件可以借助电子邮件、即时消息传递或是基于本地或远程网络的共享协议来共享。
虽然悬停提示卡804是一种可供用户与搜索结果交互的格式,但是本领域技术人员将会认识到可供用户与搜索结果交互的其他格式。例如,链接806、808、810或812可以用不同的链接替代;web浏览器弹窗可以替代悬停提示卡804;或者点击搜索结果的文件名有可能导致打开与搜索结果相关联的文件。
可用以搜索包含非公开数据的远程源单元的处理
图9A示出的是根据本技术主题的一个方面的可用以搜索包含非公开数据的远程源单元的处理900A的一个示例,其中举例来说,所述搜索是以来自客户机设备的请求为基础的。远程源单元可以是多个远程源单元之一。该远程源单元可以包括以下各项中的一项或多项:远程个人计算设备,公司内部网,诸如个人云端驱动器之类的用于非公开数据且基于网络的源单元,电子邮件账户,在线日历账户,在线照片源单元,社交网络账户等等。
处理900A始于步骤910A,其中远程源单元向自动发现模块报告配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够实时地使用单个搜索查询来同时搜索多个远程源单元上的非公开数据。所述自动发现模块可以处于客户机设备内部或是客户机设备外部。该配套应用程序可以是一个非公开应用。单个搜索查询可以包括一个或多个搜索项。所述配套应用程序还可以被配置成基于搜索查询来搜索远程源单元文件系统或是以与账户相关联的方式保存在远程源单元上的数据,该搜索查询可以包括一个或多个搜索项。
在步骤920A,在免却在远程源单元与客户机设备之间进行安全的远程联机阶段登录以及免却将远程源单元挂载到客户机设备上的同时,远程源单元允许通过定向到多个远程计算设备的单个搜索查询来自动访问远程源单元上的非公开数据。
在步骤930A,远程源单元接收由客户机设备发起且带有一个或多个搜索项的单个搜索查询。在一个示例中,该搜索项可以伴有附加信息,例如关于是只搜索文件名还是搜索文件名和文件内容以及是只搜索文件还是搜索文件和文件夹的指示。
在步骤940A,响应于单个搜索查询,远程源单元使用该搜索项来实时搜索非公开数据。被搜索的非公开数据可以包括远程源单元中存储的非公开数据。所述非公开数据可以被客户机设备的用户访问,但是不能被全体公众访问,例如不能被不知道用户所知的密码或是不具有保存在客户机设备上的证书或令牌(token)的公众成员访问。作为示例,所述实时可以是指不到1小时、30分钟、5分钟或1分钟,这一点取决于被搜索的数据量。
在步骤950A中,远程源单元实时取回非公开数据的搜索结果,其中所述搜索结果包含了一个或多个文件名或文件夹名,任何相关联的搜索排名信息,以及任何相关联的元数据指示符。举例来说,如果搜索项是“rabbit”,那么远程源单元可以搜索文件名中有字符串“rabbit”的文件,例如rabbit.txt或bob-rabbit-x.jpg。
在步骤960A,远程源单元将会实时传送非公开数据的搜索结果。该远程源单元可以将非公开数据的搜索结果传送到自动发现模块(例如客户机设备120),以便将其实时转发给客户机设备(例如客户机设备120),或者也可以将所述结果直接传送到客户机设备。作为示例,实时可以是指不到1小时、30分钟、5分钟或1分钟,这一点取决于所传送的数据量。在步骤960A之后,处理900A结束。
带有用于实施搜索包含非公开数据的远程原单元的处理的指令的设备
图9B示出的是设备900B的一个示例。
设备900B可以包括用于向自动发现模块报告配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够实时地使用单个搜索查询来同时搜索多个远程源单元上的非公开数据的指令910B,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包括一个搜索项。
设备900B可以包括用于在免却在远程源单元与客户机设备之间进行安全远程联机阶段登录以及免却将远程源单元挂载到客户机设备上的同时,允许通过定向到多个远程计算设备的单个搜索查询来自动访问远程源单元上的非公开数据的指令920B。
设备900B可以包括用于在免却在远程源单元与客户机设备之间进行安全远程联机阶段登录以及免却将远程源单元挂载到客户机设备上的同时,允许通过定向到多个远程计算设备的单个搜索查询来自动访问远程源单元上的非公开数据的指令930B。
设备900B可以包括响应于单个搜索查询来使用该搜索项来实时搜索非公开数据的指令940B。
设备900B可以包括用于实时取回非公开数据的搜索结果的指令950B,其中所述搜索结果包含了一个或多个文件名或文件夹名,任何相关联的搜索排名信息,以及任何相关联的元数据指示符。
设备900B可以包括用于实时传送非公开数据的搜索结果的指令960B。
带有用于实施搜索包含非公开数据的远程原单元的处理的模块的设备
图9C示出的是设备900C的一个示例。
设备900C可以包括一个或多个模块910C,用于向自动发现模块报告配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够实时地使用单个搜索查询来同时搜索多个远程源单元上的非公开数据,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包括一个搜索项。
设备900C可以包括一个或多个模块920C,用于在免却在远程源单元与客户机设备之间进行安全远程联机阶段登录以及免却将远程源单元挂载到客户机设备上的同时,允许通过定向到多个远程计算设备的单个搜索查询来自动访问远程源单元上的非公开数据。
设备900C可以包括一个或多个模块930C,用于在免却在远程源单元与客户机设备之间进行安全远程联机阶段登录以及免却将远程源单元挂载到客户机设备上的同时,允许通过定向到多个远程计算设备的单个搜索查询来自动访问远程源单元上的非公开数据。
设备900C可以包括一个或多个模块940C,用于响应于单个搜索查询来使用该搜索项来实时搜索非公开数据。
设备900C可以包括一个或多个模块950C,用于实时取回非公开数据的搜索结果,其中所述搜索结果包含了一个或多个文件名或文件夹名,任何相关联的搜索排名信息,以及任何相关联的元数据指示符。
设备900C可以包括一个或多个模块950C,用于实时传送非公开数据的搜索结果。
可供客户机设备搜索多个远程源单元上的非公开数据的处理
图10A示出的是根据本技术主题的一个方面的可供客户机设备搜索多个远程源单元上的非公开数据的处理1000A的一个示例。客户机设备可以登录到自动发现模块(例如自动发现模块132)。该自动发现模块可以驻留在处于客户机设备外部的自动发现服务器(例如自动发现服务器130)的内部。作为替换,自动发现模块可以是客户机设备应用中的组件。例如,自动发现模块可以是web浏览器应用内部或是与web浏览器无关的软件应用内部的一个组件。
处理1000A始于步骤1010A,其中客户机设备借助自动发现模块自动发现多个远程源单元。所述多个远程源单元可以包括物理源单元,例如远程膝上型或台式机计算机,远程家用或办公室网络源单元,或是虚拟源单元,例如云驱动器或是电子邮件或社交网络账户。客户设备可以免却由客户机计算设备的用户来识别多个远程源单元的位置或地址。例如,客户机设备可以存储远程源单元的地址。作为替换,自动发现服务器可以存储远程源单元的地址。在一个实施方式中,一个或多个远程源单元可以是没有必要与特定物理地址相关联虚拟源单元(例如云驱动器)。
在步骤1020A,在免却由客户机设备发起针对多个远程源单元中的每一个的安全远程联机阶段登录以及免却将多个远程源单元挂载到客户机设备上的同时,所述客户机设备向自动发现模块提供定向到多个远程源单元的单个搜索查询,以便能够同时搜索所有的多个远程源单元上的非公开数据。在一个示例中,每一个远程源单元可以与一个隐私障碍相关联。例如,云端驱动器有可能需要用于登录的用户名和密码。远程办公室网络源单元有可能需要用于登录的证书或密码。诸如证书、令牌或用户名和密码之类的克服隐私障碍所必需的信息可以以与客户机设备用户的账户相关联的方式保存在客户机设备或是自动发现服务器上。由此,客户机设备或自动发现服务器能够访问远程源单元。
在步骤1030A,响应于单个搜索查询,客户机设备按顺序或者同时接收非公开数据的搜索结果,每一个非公开数据的搜索结果都可以与多个远程计算设备中的一个相应的远程计算设备相关联。每一个非公开数据的搜索结果都可以包括一个或多个文件名或文件夹名。所述非公开数据的搜索结果还可以包括搜索排名信息或元数据指示符。例示的搜索排名信息可以包括搜索项在搜索结果中出现的频繁程度,或者搜索结果被访问的频率。例示的元数据指示符可以包括文件位置,文件大小,文件创建、文件修改或文件访问日期。
在步骤1040A,客户机设备自动地实时聚合来自多个远程源单元的非公开数据的搜索结果。该客户机设备可以聚合来自多个远程源单元中的所有或是一部分的远程源单元的非公开数据的搜索结果。聚合的非公开数据的搜索结果集合可以包括来自两个或多个远程源单元的结果。作为示例,实时可以是指不到1小时、30分钟、5分钟或1分钟,这一点取决于所聚合的数据量。
在步骤1050A,客户机设备自动地实时排名所聚合的非公开数据的搜索结果。在一个实施方式中,客户机设备可以依照与搜索项或搜索查询的相关性来对所聚合的非公开数据的搜索结果进行排名,例如依照搜索查询中的一个或多个搜索项在文件中出现的次数或者依照文件被访问的频率来进行排名。在一个实施方式中,该顺序可以包括来自不同远程源单元的交错搜索结果。作为示例,实时可以是指不到1小时、30分钟、5分钟或1分钟,这一点取决于被排名的数据量。
在步骤1060A,客户机设备实时显示已排名的非公开数据的搜索结果。这些搜索结果可以显示客户机设备的屏幕上,例如显示在web浏览器窗口中,或者可以显示在专用应用窗口中,例如显示在移动电话或平板计算机上的应用的窗口中。在步骤1060A之后,处理1000A结束。
在一些方面中,客户机设备可以请求更多或附加的信息(例如在步骤1060A)。该处理可以由客户机设备依照需要来进行。例如,客户机设备可以请求(例如向自动发现模块或者一个或多个远程源单元)关于初始或之后接受的一个或多个搜索结果的更多或附加信息。作为响应,客户机设备可以从自动发现模块或是一个或多个远程源单元接收被请求的信息(附加搜索结果,或是关于一个或多个搜索结果的附加信息)。
在一些方面中,一个或多个远程源单元(或每一个单元)可以接收一个或多个关于更多或附加信息的请求。例如,一个或多个远程源单元(或每一个单元)可以接收一个或多个要求得到与初始或之后提供的一个或多个搜索结果有关的更多或附加信息的请求。作为响应,一个或多个远程源单元(或每一个单元)可以提供被请求的信息。举例来说,一个或多个远程源单元(或每一个单元)可以默认只提供前10个结果,以便将业务量减至最少。所述一个或多个远程源单元(或每一个单元)一开始将会执行该处理,然后则会响应于每一个后续请求来提供接下来的10个最佳结果。
在一些方面中,自动发现模块可以执行上述动作。
在一些方面中,作为文件或文件夹的补充或替换,如果客户机设备具有恰当的设置和/或权限,那么客户机设备还可以给出文件或文件夹的子集。例如,客户机计算设备可以给出与搜索查询相关联的文件夹内部的文件的某些部分(例如字处理文档的章节)或是文件标签。作为示例,如果搜索查询是“elephant”,那么搜索结果可以包括文档中标题为“baby-elephant”的章节和/或文件夹内部标题是“elephant-safari”文件标签。
具有用于实施可供客户机设备搜索多个远程源单元上的非公开数据的处理的指
令的设备
图10B示出的是设备1000B的一个示例。
设备1000B可以包括用于在免却由客户机设备识别多个远程源单元的位置或地址的同时,让客户机设备经由自动发现模块自动发现多个远程源单元的指令1010B。
设备1000B可以包括用于在免却由客户机设备发起针对多个远程源单元中的每一个的安全远程联机阶段登录以及免却将多个远程源单元挂载到客户机设备上的同时,向自动发现模块提供定向到多个远程源单元的单个搜索查询,以便能够同时搜索所有的多个远程源单元上的非公开数据的指令1020B。
设备1000B可以包括响应于提供单个搜索查询的处理而按顺序或者同时接收非公开数据的搜索结果的指令1030B,其中每一个非公开数据的搜索结果都与多个远程计算设备中的一个相应的远程计算设备相关联,其中每一个非公开数据的搜索结果都包括一个或多个文件名或文件夹名,任何相关联的搜索排名信息,以及任何相关联的元数据指示符。
设备1000B可以包括用于自动地实时聚合来自多个远程源单元的非公开数据的搜索结果的指令1040B。
设备1000B可以包括用于自动地实时排名所聚合的非公开数据的搜索结果的指令1050B。
设备1000B可以包括用于实时显示已排名的非公开数据的搜索结果的指令1060B。
具有用于实施可供客户机设备搜索多个远程源单元上的非公开数据的处理的模
块的设备
图10C示出的是设备1000C的一个示例。
设备1000C可以包括用于在免却由客户机设备识别多个远程源单元的位置或地址的同时,让客户机设备经由自动发现模块自动发现多个远程源单元的指令1010C。
设备1000C可以包括用于在免却由客户机设备发起针对多个远程源单元中的每一个的安全远程联机阶段登录以及免却将多个远程源单元挂载到客户机设备上的同时,向自动发现模块提供定向到多个远程源单元的单个搜索查询,以便能够同时搜索所有的多个远程源单元上的非公开数据的一个或多个模块1020C。
设备1000C可以包括响应于提供单个搜索查询的处理而按顺序或者同时接收非公开数据的搜索结果的一个或多个模块1030C,其中每一个非公开数据的搜索结果都与多个远程计算设备中的一个相应的远程计算设备相关联,其中每一个非公开数据的搜索结果都包括一个或多个文件名或文件夹名,任何相关联的搜索排名信息,以及任何相关联的元数据指示符。
设备1000C可以包括用于自动地实时聚合来自多个远程源单元的非公开数据的搜索结果的一个或多个模块1040C。
设备1000C可以包括用于自动地实时排名所聚合的非公开数据的搜索结果的一个或多个模块1050C。
设备1000C可以包括用于实时显示已排名的非公开数据的搜索结果的一个或多个模块1060C。
用于搜索非公开数据以及显示搜索结果的处理
图11A示出的是根据本公开的一个方面的用于搜索非公开数据以及显示搜索结果的处理1100A的一个示例。
处理1100A始于步骤1110A,其中客户机设备接收(例如从用户那里)一个输入,并且该输入包含了搜索查询以及多个远程源单元的标识符。作为替换,该搜索查询可以包括文本查询、图像查询、音频查询或视频查询中的一个或多个。远程源单元可以包括例如远程台式机,办公室的远程网络源单元,云端驱动器,或是与社交网络服务相关联的源单元。多个远程源单元中的每一个都可以与一个隐私障碍相关联。例如,云端驱动器有可能需要用于登录的用户名和密码。远程办公室源单元有可能需要用于登录的证书或令牌。诸如证书、令牌或用户名和密码之类的克服隐私障碍所必需的信息可以以与客户机设备用户的账户相关联的方式保存在客户机设备或是自动发现服务器上。
在步骤1120A,客户机设备向多个远程源单元中的每一个传送一个消息,其中该消息包含了基于搜索查询的搜索请求以及用于克服远程源单元的相应隐私障碍的输入。举例来说,如果远程源单元是需要用户名和密码以进行访问的云端驱动器,那么针对远程源单元的消息可以包括基于搜索查询的搜索请求以及用户在用于提供云端驱动器的服务中的账户的用户名和密码。从客户机设备传送到远程源单元的数据可以经过自动发现服务器。作为替换,客户机设备可以直接将数据传送到远程源单元。
在步骤1130A,客户机设备从多个远程源单元中的每一个接收相应的搜索结果集合。这些搜索结果可以是以所述搜索查询为基础的。相应搜索结果集合中的每一个都可以被实时接收。实时可以是指不到1小时、30分钟、5分钟或1分钟,这一点取决于所要搜索和传送的数据量或是实施该搜索的处理器的速度。在一个示例中,一个或多个相应的搜索结果集合可以具有一个顺序。例如,相应的搜索结果集合可以依照编辑日期、访问频率或是与搜索查询的相关性来进行排序。作为示例,与搜索查询的相关性可以以访问频率或者以搜索项在搜索结果中出现的次数为基础并使用任何已知的技术来确定。
在步骤1140A,客户机设备提供一个与来自多个远程源单元中的第一远程源单元的第一代表性搜索结果集合的至少第一子集相关的指示来显示。例如,客户机设备可以显示第一子集中的一个或多个文件的文件名以及关于第一源单元的指示,例如名称。提供显示的数据可以经由客户机计算设备的屏幕以进行显示。
在步骤1150A,客户机设备提供与来自多个远程源单元中的第二远程源单元的第二个代表性搜索结果集合的至少第二子集有关的指示来显示。例如,客户机设备可以显示第二子集中的一个或多个文件的文件名以及关于第二源单元的指示,例如名称。提供显示的数据可以经由客户机计算设备的屏幕以进行显示。
在一个实施方式中,终端用户可以将鼠标放在客户机计算设备屏幕中的显示元素上。响应于表明鼠标被置于与文件相关联的显示元素上的输入,客户机设备可以提供一个悬停提示卡来显示。与文件相关联的显示元素可以包括文件名或是与文件或文件相关信息相关联的屏幕区域。所述悬停提示卡可以包括用于与文件交互的一个或多个链接。与文件的交互可以包括查看文件,编辑文件,打印文件或共享(例如经由电子邮件或即时消息传递)文件。在步骤1150A之后,处理1100A结束。
具有用于实施搜索非公开数据和显示搜索结果的处理的指令的设备
图11B示出的是设备1100B的一个示例。
设备1100B可以包括用于接收一个包含了搜索查询以及多个远程源单元的标识符的输入的指令1110B,其中多个远程源单元中的每一个都与一个相应的隐私障碍相关联。
设备1100B可以包括用于向多个远程源单元中的每一个传送一个消息的指令1120B,其中该消息包含了基于搜索查询的搜索请求以及用于克服远程源单元的相应隐私障碍的输入。
设备1100B可以包括用于从多个远程源单元中的每一个接收相应的搜索结果集合的指令1130B。
设备1100B可以包括用于提供一个与来自多个远程源单元中的第一远程源单元的第一代表性搜索结果集合的至少第一子集相关的指示以进行显示的指令1140B。
设备1100B可以包括用于提供与来自多个远程源单元中的第二远程源单元的第二个代表性搜索结果集合的至少第二子集有关的指示以进行显示的指令1150B。
具有用于实施搜索非公开数据和显示搜索结果的处理的模块的设备
图11C示出的是设备1100C的一个示例。
设备1100C可以包括用于接收一个包含了搜索查询以及多个远程源单元的标识符的输入的一个或多个模块1110C,其中多个远程源单元中的每一个都与一个相应的隐私障碍相关联。
设备1100C可以包括用于向多个远程源单元中的每一个传送一个消息的一个或多个模块1120C,其中该消息包含了基于搜索查询的搜索请求以及用于克服远程源单元的相应隐私障碍的输入。
设备1100C可以包括用于从多个远程源单元中的每一个接收相应的搜索结果集合的一个或多个模块1130C。
设备1100C可以包括用于提供一个与来自多个远程源单元中的第一远程源单元的第一代表性搜索结果集合的至少第一子集相关的指示以进行显示的一个或多个模块1140C。
设备1100C可以包括用于提供与来自多个远程源单元中的第二远程源单元的第二个代表性搜索结果集合的至少第二子集有关的指示以进行显示的一个或多个模块1150C。
用于从多个远程源单元搜索非公开数据以及显示搜索结果的处理
图12A示出的是根据本公开的一个方面的用于从多个远程源单元搜索非公开数据以及显示搜索结果的处理1200A的一个示例。
处理1200A始于步骤1210A,其中客户机设备接收(例如从用户那里)一个包含了搜索查询以及多个远程源单元标识符的输入。作为示例,远程源单元可以包括远程台式机,办公室的远程网络源单元,云端驱动器,或是与社交网络服务相关联的源单元。多个远程源单元中的每一个都可以与一个隐私障碍相关联。例如,云端驱动器有可能需要用于登录的用户名和密码。远程办公室源单元有可能需要用于登录的证书或令牌。诸如证书、令牌或用户名和密码之类的克服隐私障碍所必需的信息可以以与客户机设备用户的账户相关联的方式保存在客户机设备或是自动发现服务器上。
在步骤1220A,客户机设备向多个远程源单元中的每一个传送一个消息,其中该消息包含了基于搜索查询的搜索请求以及用于克服远程源单元的相应隐私障碍的输入。举例来说,如果远程源单元是需要用户名和密码以进行访问的云端驱动器,那么针对远程源单元的消息可以包括基于搜索查询的搜索请求以及用户在用于提供云端驱动器的服务中的账户的用户名和密码。从客户机设备传送到远程源单元的数据可以经过自动发现服务器。作为替换,客户机设备可以直接将数据传送到远程源单元。
在步骤1230A,客户机设备第一次从多个远程源单元中的第一源单元接收第一搜索结果集合。
在步骤1240A,客户机设备在单个显示单元内部提供与第一搜索结果集合的至少第一子集有关的指示以进行显示。例如,客户机设备可以显示第一子集中的文件的文件名。其中举例来说,所述单个显示单元可以是web浏览器窗口中的单个标签。作为替换,所述单个显示单元也可以是诸如移动电话或平板计算机应用中的单个应用窗口。所提供的用于显示的数据可被传送到客户机设备的屏幕,以便进行显示。
在步骤1250A,在第一次之后,客户机设备第二次从多个远程源单元中的第二源单元接收第二搜索结果集合。所述第二源单元可以不同于第一源单元。所述第二次可以是晚于第一次之后的任何时间量,例如第一次之后的5秒、10秒、1分钟、5分钟、10分钟或1小时。第一次与第二次之间的时间差取决于第一源单元和第二源单元的相对处理速度或文件系统大小。
在步骤1260A,在继续于单个显示单元内部提供与第一搜索结果的至少第一子集有关的指示以进行显示的同时,客户机设备会在单个显示单元内部提供与第二搜索结果集合的至少第二子集相关的指示。例如,客户机设备可以显示第一子集中的文件的文件名。这些文件可以依照某个基于文件与搜索结果的相关性的顺序来显示,例如依照搜索查询中的一个或多个搜索项在文件中出现的次数,或者依照文件被访问的频率。在一个实施方式中,第一子集中的文件的文件名以及第二子集中的文件的文件名可以彼此交错,由此可以依照与搜索查询的相关性来同时显示源自第一子集和第二子集的文件。在步骤1260A之后,处理1200A结束。
具有用于实施从多个远程源单元搜索非公开数据以及显示搜索结果的处理的指
令的设备
图12B示出的是设备1200B的一个示例。
设备1200B可以包括用于接收一个包含了搜索查询以及多个远程源单元标识符的输入的指令1210B,其中多个远程源单元中的每一个都可以与一个隐私障碍相关联。
设备1200B可以包括用于向多个远程源单元中的每一个传送一个消息的指令1220B,其中该消息包含了基于搜索查询的搜索请求以及用于克服远程源单元的相应隐私障碍的输入。
设备1200B可以包括用于第一次从多个远程源单元中的第一源单元接收第一搜索结果集合的指令1230B。
设备1200B可以包括用于在单个显示单元内部提供与第一搜索结果集合的至少第一子集有关的指示以进行显示的指令1240B。
设备1200B可以包括用于于在第一次之后第二次从多个远程源单元中的第二源单元接收第二搜索结果集合的指令1250B。
设备1200B可以包括用于在继续于单个显示单元内部提供与第一搜索结果的至少第一子集有关的指示以进行显示的同时,在单个显示单元内部提供与第二搜索结果集合的至少第二子集相关的指示的指令1260B。
具有用于实施从多个远程源单元搜索非公开数据以及显示搜索结果的处理的模
块的设备
图12C示出的是设备1200C的一个示例。
设备1200C可以包括用于接收一个包含了搜索查询以及多个远程源单元标识符的输入的一个或多个模块1210C,其中多个远程源单元中的每一个都可以与一个隐私障碍相关联。
设备1200C可以包括用于向多个远程源单元中的每一个传送一个消息的一个或多个模块1220C,其中该消息包含了基于搜索查询的搜索请求以及用于克服远程源单元的相应隐私障碍的输入。
设备1200C可以包括用于第一次从多个远程源单元中的第一源单元接收第一搜索结果集合的一个或多个模块1230C。
设备1200C可以包括用于在单个显示单元内部提供与第一搜索结果集合的至少第一子集有关的指示以进行显示的一个或多个模块1240C。
设备1200C可以包括用于于在第一次之后第二次从多个远程源单元中的第二源单元接收第二搜索结果集合的一个或多个模块1250C。
设备1200C可以包括用于在继续于单个显示单元内部提供与第一搜索结果的至少第一子集有关的指示以进行显示的同时,在单个显示单元内部提供与第二搜索结果集合的至少第二子集相关的指示的一个或多个模块1260C。
虚拟化系统
图13是根据本公开的一个方面的本地设备虚拟化系统1300的框图。系统1300可以包括与服务器1304通信的客户机1302,作为示例,该通信是在诸如图6A和6B中的网络606之类的网络上进行的。客户机1302可以包括代理1310,存根(stub)驱动器1320以及总线驱动器1330。如图13所示,客户机1302可以连接到设备1340。服务器1304可以包括中介(agent)1350以及虚拟总线驱动器1360。
根据所示出的配置,虽然设备1340不在服务器1304本地或与之物理连接,并且是位于服务器1304远端的,但是如下文中进一步论述的那样,在服务器1304看来,设备1340是本地连接到服务器1304的。由此,设备1340在服务器1304看来是一个虚拟设备1390。在一个实施方式中,图1的一个或多个远程源单元140可以作为虚拟设备(例如虚拟设备1390)来实施。
作为例证而不是限制,设备1340可以是机器可读存储介质(例如闪存设备),打印机,扫描仪,相机,传真机,电话,音频设备,视频设备,周边设备或是可以连接到客户机1302的其他适当设备。设备1340可以是外部设备(即处于客户机1302外部)或内部设备(即处于客户机1302内部)。
在本公开的一个方面中,设备1340是可以用有线USB或无线USB连接与客户机1302本地相连并且可以依照USB通信协议来与客户机1302通信的通用串行总线(USB)设备。在另一个方面中,设备1340可以是USB设备之外的其他设备。
这里使用的系统的“本地”设备或者与系统“本地”连接的设备可以是使用一个或多个线路或连接器直接与系统相连(与系统物理连接)的设备,或是使用无线链路(例如Bluetooth)直接连接到系统的设备。例如,设备1340是客户机1302的本地设备。此外,在本公开的一个方面中,系统的本地设备或是与系统本地连接的设备可以包括系统内部的设备(例如客户机1302的内部设备)。
“远程”设备或位于系统“远端”的设备可以不与系统直接连接的设备。例如,由于服务器1304并未直接连接到客户机1302或设备1340,而是通过别的服务器或互联网之类的网络间接连接的,因此,服务器1304是客户机1302和设备1340的远程设备。
总线驱动器1330可以被配置成允许客户机1302的操作系统和程序与设备1340交互。在一个方面中,当设备1340与客户机1302相连(例如被插入客户机1302的端口)时,总线驱动器1330可以检测到设备1340的存在性,并且可以从设备1340中读取与设备1340相关的信息(“设备信息”)。该设备信息可以包括设备特有的特征、特性以及其他信息。以USB设备为例,设备信息可以包括设备描述符(例如产品ID、厂家ID和/或其他信息),配置描述符,接口描述符,端点描述符和/或字串描述符。总线驱动器1330可以通过计算机总线或其他有线或无线通信接口来与设备1340进行通信。
在一个方面中,在客户机1302本地运行的程序(例如应用)可以访问设备1340。例如,当客户机1302没有连接至服务器1304时,设备1340可被本地访问。关于这一点,客户机1302的操作系统(例如Microsoft)可以使用设备信息来发现和加载用于设备1340的恰当设备驱动程序(未显示)。所述设备驱动程序可以为程序提供与设备1340对接的高级接口。
在一个方面中,从服务器1304可以像设备1340连接在服务器1304的本地那样来访问设备1340。例如,设备1340是可以从服务器1304上运行的桌面(即虚拟桌面环境)访问的。关于这一点,总线驱动器1330可被配置成加载存储驱动器1320,以此作为设备1340的默认驱动器。该存根驱动器1320可以被配置成向代理1310报告设备1340的存在性,以及向代理1310提供设备信息(例如设备描述符)。
代理1310可以被配置成经由网络来向服务器1304的中介1350报告设备1340的存在性以及设备信息。由此,存根驱动器1320会经由代理1310来将设备1340重定向到服务器1304。
中介1350可以被配置成从代理1310接收关于设备1340已与客户机1302相连以及设备信息的报告。所述中介1350可以将设备1340的通知连同设备信息一起提供给虚拟总线驱动器1360。所述虚拟总线驱动器1360可以被配置成向服务器1304的操作系统报告设备1340已经连接,以及向该操作系统提供设备信息。这样做允许服务器1304的操作系统识别出设备1340的存在性,即便是在设备1304与客户机1302相连的情况下。服务器1304的操作系统可以在所述服务器1304上使用该设备信息来发现和加载设备1340的恰当设备驱动程序1380,其示例是在图13中示出的。由此,在服务器1304上枚举了设备1340。一旦将设备1340的存在性报告给了服务器1304的操作系统,则可以从服务器1304上运行的桌面(即虚拟桌面环境)访问设备1340。例如,设备1340在虚拟桌面环境上可以显现为图标,和/或可以被服务器1304上运行的应用访问。
在一个方面中,服务器1304上运行的应用1370可以通过直接或者经由设备驱动程序1380向虚拟总线驱动器1360发送关于设备1340的事务请求来访问设备1340。虚拟总线驱动器1360可以将该事务请求定向到中介1350,所述中介则会通过网络将该事务请求发送到代理1310。代理1310接收来自中介1350的事务请求,并且将接收到的事务请求定向到存根驱动器1320。然后,存根驱动器1320将该事务请求通过总线驱动器1330定向到设备1340。
总线驱动器1330接收来自设备1340的事务请求结果,并且将事务请求结果发送到存根驱动器1320。存根驱动器1320将事务请求结果定向到代理1310,所述代理则将事务请求结果通过网络发送到中介1350。中介1350将事务请求结果定向到虚拟总线驱动器1360。然后,虚拟总线驱动器1360将事务请求结果直接或者通过设备驱动程序1380定向到应用1370。
由此,虚拟总线驱动器1360可以从应用1370接收关于设备1340的事务请求。并且可以将事务请求结果回送到应用1370(直接或者通过设备驱动程序1380)。同样,应用1370可以与虚拟总线驱动器1360进行交互,其交互方式与总线驱动器为本地连接到服务器1340的设备所使用的交互方式相同。虚拟总线驱动器1360可以隐藏其向中介1350发送事务请求以及从中介1350接收事务请求结果的事实,以此取代本地连接到服务器1304的设备。结果,与客户机1302相连的设备1340在应用1370看来就像是该物理设备1340与服务器1304本地连接一样。
作为关于远程源单元的条款的技术主题的例证
为了方便起见,关于本公开的方面的不同示例是作为带编号的条款(1,2,3,……)描述的。这些条款是作为示例提供的,其并不对本技术主题构成限制。以下提供的附图标记和参考数字仅仅是作为示例并被用于例证目的的,并且所述条款并不受这些标记的限制。
1.一种用于使用单个搜索查询来实时搜索非公开数据的方法,该方法包括:
向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包括搜索项;
在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元挂载在客户机设备上的同时,允许通过单个搜索查询来自动访问远程源单元上的非公开数据;
在远程源单元上,接收具有搜索项的单个搜索查询;以及
响应于单个搜索查询,
实时地使用该搜索项来搜索远程源单元上的非公开数据;
实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及
实时传送所述非公开数据的搜索结果。
2.如条款1所述的方法,其中远程源单元是多个远程源单元之一,其中单个搜索查询是定向到多个远程源单元中的每一个远程源单元的。
3.如条款1所述的方法,其中自动发现模块被配置成允许客户机计算设备同时搜索多个远程源单元上的非公开数据。
4.如条款1所述的方法,其中单个搜索查询是由客户机设备发起的。
5.如条款1所述的方法,其中远程源单元与隐私障碍相关联,其中该方法还包括在远程源单元上接收用于克服隐私障碍的输入。
6.如条款5所述的方法,其中隐私障碍包括以下的一项或多项:防火墙,登录信息验证模块,证书验证模块,或令牌验证模块。
7.如条款5所述的方法,其中用于克服隐私障碍的输入包括以下的一项或多项:登录信息,用户名,密码,证书,或令牌。
8.如条款1所述的方法,其中报告的处理至少部分是由远程源单元的报告模块执行的,其中允许自动访问的处理至少部分是由访问模块执行的,其中接收的处理至少部分是由远程源单元的搜索指令处理机执行的,其中搜索的处理至少部分是由搜索指令处理机执行的,其中搜索处理至少部分是由远程源单元的索引器执行的,其中取回处理至少部分是由远程源单元的结果处理机执行的,其中传送处理至少部分是由结果处理机执行的,以及
其中该方法包括:
由搜索指令处理机来向索引器提供单个搜索查询;
由索引器创建指示了搜索项与远程源单元中的文件的相关性的字频分布,以及
由索引器将字频分布提供给配套应用程序,
其中非公开数据的搜索结果与搜索排名信息相关联,以及
其中搜索排名信息包括字频分布。
9.一种用于使用单个搜索查询来搜索非公开数据的非临时性的机器可读介质,所述机器可读介质包括指令,其中在被一个或多个处理器运行的时候,所述指令所述一个或多个处理器执行以下处理:
向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包括搜索项;
在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元挂载在客户机设备上的同时,允许通过单个搜索查询来自动访问远程源单元上的非公开数据;
在远程源单元上,接收具有搜索项的单个搜索查询;以及
响应于单个搜索查询,
实时地使用该搜索项来搜索远程源单元上的非公开数据;
实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及
实时传送所述非公开数据的搜索结果。
10.如条款9所述的非临时性机器可读介质,其中单个搜索查询是由客户机设备发起的。
11.如条款9所述的非临时性机器可读介质,其中远程源单元包括以下的一个或多个:远程计算设备,基于云的源单元,存储电子邮件消息的电子邮件账户,存储预约的在线日历账户,在线文档管理账户,存储社交网络信息的社交网络账户。
12.如条款9所述的非临时性机器可读介质,其中用于允许自动访问远程源单元上的非公开数据的指令包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:自动和选择性地禁用远程源单元上的防火墙,以便将通信定向到配套应用程序。
13.如条款12所述的非临时性机器可读介质,其中用于自动和选择性地禁用防火墙的指令包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:在首次将配套应用程序安装在远程源单元上的时候,自动并且选择性地禁用防火墙,并且当配套应用程序继续安装在远程源单元上的时候,所述防火墙保持选择性地被禁用。
14.如条款12所述的非临时性机器可读介质,其中非公开数据的搜索结果还包括相关联的搜索排名信息以及一个或多个相关联的元数据指示符。
15.如条款14所述的非临时性机器可读介质,其中一个或多个文件名或文件夹名是远程源单元的一个或多个文件或文件夹的名称、内容或元数据中与搜索项匹配的一个或多个文件或文件夹的一个或多个名称,
其中机器可读介质还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:响应于单个搜索查询,识别与一个或多个文件或文件夹相关联的元数据,以及识别与一个或多个文件或文件夹的内容相关联的元数据,
其中与一个或多个文件或文件夹相关联的元数据包括一个或多个文件或文件夹的一个或多个图标指示符,
其中与一个或多个文件或文件夹相关联的元数据包括一个或多个预览指示符,一个或多个缩略图指示符,一个或多个局部内容指示符,以及一个或多个局部图像指示符,
其中图标指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的图标,
其中预览指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的预览,
其中缩略图指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的缩略图,
其中局部内容指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的局部内容,
其中局部图像指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的局部图像,
其中一个或多个相关联的元数据指示符包括与一个或多个文件或文件夹相关联的元数据以及与一个或多个文件或文件夹的内容相关联的元数据中的至少一个。
16.如条款14所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在传输了非公开数据的搜索结果之后,基于一个或多个相关联的元数据指示符,在远程源单元上接收一个要求得到与具有一个或多个文件名或文件夹名的一个或多个文件或文件夹相关联的图标的请求;
响应于该图标请求,取回所述图标并且将所述图标传送到自动发现模块,以便将其实时转发给客户机设备,
其中非公开数据的搜索结果不包含图标。
17.如条款12所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在传输了非公开数据的搜索结果之后,基于一个或多个相关联的元数据指示符,在远程源单元上接收一个要求得到与具有一个或多个文件名或文件夹名的一个或多个文件或文件夹相关联的预览、缩略图、局部内容或局部图像的请求;
响应于所述关于预览、缩略图、局部内容或局部图像的请求,取回所述预览、缩略图、局部内容或局部图像并且将其传送到自动发现模块,以便将其实时转发给客户机设备,
其中非公开数据的搜索结果不包含预览、缩略图、局部内容或局部图像。
18.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在传输了非公开数据的搜索结果之后,基于一个或多个相关联的元数据指示符,在远程源单元上接收一个要求得到具有一个或多个文件名或文件夹名的一个或多个文件或文件夹的内容的请求;
响应于该内容请求,取回所述内容并且将其传送到自动发现模块,以便将其实时转发给客户机设备,
其中非公开数据的搜索结果不包含内容。
19.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在远程源单元的一个或多个文件或文件夹的名称、内容或元数据中,识别与搜索项匹配的一个或多个文件或文件夹的一个或多个文件名或文件夹名;
基于搜索项在远程源单元的一个或多个文件或文件夹中的字频分布来计算相关联的搜索排名信息。
20.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:基于客户机用户的许可判据来过滤非公开数据的搜索结果,以便允许仅仅在搜索结果满足许可判据的程度上传输搜索结果。
21.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:基于群集判据来分组非公开数据的搜索结果。
22.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:在传输之前,通过加密非公开数据的搜索结果来允许安全地传输非公开数据的搜索结果。
23.如条款9所述的非临时性机器可读介质,其中远程源单元是多个远程源单元之一,并且其中单个搜索查询是定向到多个远程源单元中的每一个的,以及其中自动发现模块被配置成允许客户机计算设备同时搜索多个远程源单元上的非公开数据。
24.如条款23所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
向自动发现模块报告多个远程源单元内部的第二远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现第二远程源单元,以及使得客户机设备能够实时使用单个搜索查询来同时搜索多个远程源单元上的非公开数据;
在免却第二远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将第二远程源单元挂载在客户机设备上的同时,允许通过定向到多个远程源单元的单个搜索查询来自动访问第二远程源单元上的非公开数据;
在第二远程源单元上,接收具有搜索项的单个搜索查询,其中所述单个搜索查询是由客户机设备发起的;以及
响应于单个搜索查询,
实时地使用该搜索项来实时搜索第二远程源单元上的非公开数据;
实时取回包含了一个或多个文件名或文件夹名,相关联的搜索排名信息以及一个或多个相关联的元数据指示符的第二非公开数据的搜索结果;以及
实时地将第二非公开数据的搜索结果传送到自动发现模块,以便实时转发至客户机设备。
25.如条款23所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
多个远程源单元内部的远程源单元的配套应用程序与所述多个远程源单元内部的其他远程源单元的配套应用程序进行通信。
26.如条款23所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
远程源单元的配套应用程序与其他远程原单元的配套应用程序进行通信,其中所述多个远程源单元包括所述远程源单元以及其他远程源单元,
其中通信的指令包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:允许在所述远程源单元与其他远程源单元之间共享包括搜索排名信息内的信息,
其中该指令还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:基于远程原单元的额搜索排名信息以及来自其他远程源单元的搜索排名信息来更新相关联的搜索排名信息。
27.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:对在来自搜索处理的远程源单元中发现的文件或文件夹进行排名,其中所述排名包括:分析搜索项频率分布、文件或文件夹创建日期以及文件或文件夹相关性中的一项或多项。
28.如条款9所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
遍历远程源单元的文件系统;
为远程源单元上的文件和文件夹或是文件和文件夹子集编制索引;
为远程源单元上的文件或文件子集的内容编制索引。
29.一种很使用单个搜索查询来实时搜索非公开数据的系统,该系统包括:
一个或多个处理器;以及
包含指令的存储器,其中在被一个或多个处理器运行的时候,所述指令所述一个或多个处理器执行以下处理:
向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据,其中所述配套应用程序是非公开应用,并且其中单个搜索查询包括搜索项;
在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元挂载在客户机设备上的同时,允许通过单个搜索查询来自动访问远程源单元上的非公开数据;
在远程源单元上,接收具有搜索项的单个搜索查询;以及
响应于单个搜索查询,
实时使用该搜索项来搜索远程源单元上的非公开数据;
实时取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及
实时传送所述非公开数据的搜索结果。
30.如条款29所述的系统,其中远程源单元是多个远程源单元之一,以及其中单个搜索查询是定向到多个远程源单元中的每一个的。
31.如条款30所述的系统,其中自动发现模块被配置成允许客户机计算设备同时搜索多个远程源单元上的非公开数据。
32.如条款29所述的系统,其中单个搜索查询是由客户机设备发起的。
作为关于客户机设备的条款的技术主题的例证
为了方便起见,关于本公开的方面的不同示例是作为带编号的条款(1,2,3,……)描述的。这些条款是作为示例提供的,其并不对本技术主题构成限制。以下提供的附图标记和参考数字仅仅是作为示例并被用于例证目的的,并且所述条款并不受这些标记的限制。
1.一种用于使用单个搜索查询来实时搜索多个远程源单元上的非公开数据的方法,包括:
在免却由客户机设备用户识别多个远程源单元的位置或地址的同时,由客户机设备借助自动发现模块来自动发现多个远程源单元;
在免却客户机设备与多个远程源单元中的每一个发起安全远程联机阶段登录,以及免却将所述多个远程源单元挂载在客户机设备上的同时,向自动发现模块提供针对多个远程源单元的单个搜索查询,以便能够基于所述单个搜索查询来同时搜索所述多个远程源单元中的所有远程源单元上的非公开数据;以及
响应于提供给单个搜索查询的处理,
按顺序或同时接收非公开数据的搜索结果,其中每一个非公开数据的搜索结果都与多个远程源单元中的一个相对应,并且其中每一个非公开数据的搜索结果都包括一个或多个文件名或文件夹名;
自动地实时聚合来自多个远程源单元的非公开数据的搜索结果;
自动地实时对所聚合的非公开数据的搜索结果进行排名;以及
实时显示经过排名的非公开数据的搜索结果。
2.如条款1所述的方法,还包括:由客户机设备的登录模块登录到自动发现服务器,
其中自动发现处理至少部分是由客户机设备的登录模块执行的,
其中提供的处理至少部分是由客户机设备的指令生成器模块执行的,
其中接收非公开数据的搜索结果的处理至少部分是由客户机设备的结果聚合器模块执行的,
其中自动聚合处理至少部分是由结果聚合器模块执行的,
其中自动排名的处理至少部分是由结果聚合器模块执行的,
其中显示的处理至少部分是由结果聚合器模块执行的。
3.如条款1所述的方法,其中自动排名已聚合的非公开数据的搜索结果的处理包括:将已聚合的非公开数据的搜索结果的多个搜索结果中的每一个关联于相关联的搜索排名信息,
其中该方法还包括:
基于已聚合的非公开数据的搜索结果,自动更新多个搜索结果中的每一个相关联的搜索排名信息,
其中每一个非公开数据的搜索结果中的相关联的搜索排名信息提供了在多个远程源单元中的相应远程源单元上发现的所有文件或文件夹之间的搜索排名,
其中经过更新的关联搜索排名信息在所有的多个远程源单元中发现的所有文件或文件夹之间提供了搜索排名。
4.一种单个搜索查询来实时搜索多个远程源单元上的非公开数据的非临时性机器可读介质,所述机器可读介质包含了在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在免却由客户机设备用户识别多个远程源单元的位置或地址的同时,由客户机设备借助自动发现模块来自动发现多个远程源单元;
在免却客户机设备与多个远程源单元中的每一个发起安全的远程联机阶段登录以及免却将所述多个远程源单元安装在客户机设备上的同时,向自动发现模块提供针对多个远程源单元的单个搜索查询,以便能够基于所述单个搜索查询来同时搜索所述多个远程源单元中的所有远程源单元上的非公开数据;以及
响应于提供单个搜索查询的处理,
按顺序或者同时接收非公开数据的搜索结果,其中每一个非公开数据的搜索结果都与多个远程源单元中的一个相对应,并且其中每一个非公开数据的搜索结果都包括一个或多个文件名或文件夹名;
自动地实时聚合来自多个远程源单元的非公开数据的搜索结果;
自动实时地对所聚合的非公开数据的搜索结果进行排名;以及
实时显示经过排名的非公开数据的搜索结果。
5.如条款4所述的非临时性机器可读介质,其中每一个非公开数据的搜索结果还包括:相关联的搜索排名信息以及一个或多个相关联的元数据指示符。
6.如条款5所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在接收到非公开数据的搜索结果之后,由客户机设备基于一个或多个相关联的元数据指示符来自动确定具有一个或多个文件名或文件夹名的一个或多个文件或文件夹是否与一个或多个图像或局部视图元数据相关联,其中所述一个或多个图像或局部视图元数据包括与一个或多个文件或文件夹相关联的图标、预览、缩略图、局部内容以及局部图像中的一项或多项;
基于所述判定,自动向一个或多个相应的远程源单元提供请求,其中该请求旨在要求得到一个或多个图像或局部视图元数据;
响应于提供请求的处理,由客户机设备接收一个或多个图像或局部视图元数据;
其中已排名的非公开数据的搜索结果不包含所述一个或多个图像或局部视图元数据。
7.如条款5所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:自动客户机设备缓存接收到的一个或多个图像或局部视图元数据,以便在以后使用。
8.如条款5所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:实时显示所接收的一个或度过偶尔图像或局部视图元数据。
9.如条款4所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在运行了显示已排名的非公开数据的搜索结果的指令之后,确定在客户机设备上是否发起了关于已排名的非公开数据的搜索结果的文件内容的请求;
基于所述判定,自动向相关联的远程源单元提供关于该文件内容的请求;
响应于运行了提供该请求的指令,由客户机设备接收该文件的内容,
其中已排名的非公开数据的搜索结果不包含该文件的内容。
10.如条款4所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:基于该请求来实时运行一下指令中的至少一个:显示指令,打印指令,保存指令,或是将接收到的文件内容附着于电子邮件的指令。
11.如条款5所述的非临时性机器可读介质,其中用于自动排名已聚合的非公开数据的搜索结果的指令包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:将已聚合非公开数据的搜索结果中的多个搜索结果中的每一个关联于相关搜索排名信息,以及其中每一个非公开数据的搜索结果中的相关搜索排名信息是在多个远程源单元中的相应远程源单元的文件或文件夹中发现的单个搜索查询的搜索项的字频分布的表示。
12.如条款4所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
在自动发现之后,自动显示已发现的多个远程源单元的一个表示;
接收一个表明发起搜索的指示;
响应于该指示,显示一个输入搜索框,以使用户能够输入搜索项;
接收该搜索项;以及
基于该搜索项来产生单个搜索查询。
13.如条款4所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:在运行用以提供单个搜索查询的指令之前,对所述单个搜索查询进行加密,以便能够安全传输所述单个搜索查询。
14.一种方法,包括:
接收一个包含了搜索查询以及多个远程源单元的标识符的输入,其中多个远程源单元中的每一个都与相应的隐私障碍相关联;
基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入,向多个远程源单元中的每一个传送包含了搜索请求的消息;
接收来自多个远程远端中的每一个的相应的搜索结果集合;
提供来自多个远程源单元中的第一远程源单元的相应的第一搜索结果集合的至少第一子集的指示以进行显示;以及
提供来自多个远程源单元中的第二远程源单元的相应的第二搜索结果集合的至少第二子集的指示以进行显示。
15.如条款14所述的方法,其中从多个远程源单元中的每一个接收相应搜索结果集合的处理包括:从多个远程源单元中的每一个实时接收相应的搜索结果集合、
16.如条款14所述的方法,其中提供来自多个远程源单元中的第一远程源单元的相应的第一搜索结果集合的至少第一子集的指示以进行显示的处理包括:
至少提供第一子集中的文件的文件名以及第一远程源单元的指示以进行显示。
17.一种包含指令的非临时性的机器可读介质,其中在被一个或多个处理器运行的时候,所述指令所述一个或多个处理器执行以下处理:
接收一个包含了搜索查询以及多个远程源单元的标识符的输入,其中多个远程源单元中的每一个都与相应的隐私障碍相关联;
基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入而向多个远程源单元中的每一个传送包含了搜索请求的消息;
接收来自多个远程远端中的每一个的相应搜索结果集合;
提供来自多个远程源单元中的第一远程源单元的相应的第一搜索结果集合的至少第一子集的指示以进行显示;以及
提供来自多个远程源单元中的第二远程源单元的相应的第二搜索结果集合的至少第二子集的指示以进行显示。
18.如条款17所述的非临时性机器可读介质,其中用于从多个远程远程接收相应搜索结果集合的指令包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:从多个远程源单元中的每一个实时接收相应的搜索结果集合。
19.如条款17所述的非临时性机器可读介质,其中用于提供来自多个远程源单元中的第一远程源单元的相应的第一搜索结果集合的至少第一子集的指示以进行显示的指令还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
至少提供第一子集中的文件的文件名以及第一远程源单元的指示以进行显示。
20.如条款19所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
接收一个表明鼠标被置于与文件相关联的显示元素上的输入;以及
响应于这个表明鼠标被置于与文件相关联的显示元素上的输入,提供一个悬停提示卡以进行显示,其中所述悬停提示卡包括用于文件交互的至少一个链接。
21.如条款20所述的非临时性机器可读介质,其中与文件相关联的显示元素包括以下的一项或多项:与文件或文件的文件名相关联的显示区域。
22.如条款20所述的非临时性机器可读介质,其中用于与文件交互的至少一个链接包括以下的一项或多项:用于查看文件的链接,用于编辑文件的链接,用于打印文件的链接,或是用于共享文件的链接。
23.一种方法,包括:
接收一个包含了搜索查询以及多个远程源单元的标识符的输入,其中多个远程源单元中的每一个都与相应的隐私障碍相关联;
基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入,向多个远程源单元中的每一个传送包含了搜索请求的消息;
在第一时间,从多个远程源单元中的第一远程源单元接收第一搜索结果集合;
在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示,以便进行显示;
在晚于第一时间的第二时间,从多个远程源单元中的第二远程源单元接收第二搜索结果集合;
在继续在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示以进行显示的同时,在单个显示单元内部提供关于第二搜索结果集合的至少第二子集的指示,以便进行显示。
24.如条款23所示的方法,其中单个显示单元包括单个web浏览器窗口的标签。
25.如条款23所述的方法,其中单个显示单元包括单个应用窗口。
26.如条款23所述的方法,其中第二次是第一次之后至少五秒。
27.一种包含指令的非临时性的机器可读介质,其中在被一个或多个处理器运行的时候,所述指令所述一个或多个处理器执行以下处理:
接收一个包含了搜索查询以及多个远程源单元的标识符的输入,其中多个远程源单元中的每一个都与相应的隐私障碍相关联;
基于搜索查询以及用于克服远程源单元的相应隐私障碍的输入,向多个远程源单元中的每一个传送包含了搜索请求的消息;
在第一时间,从多个远程源单元中的第一远程源单元接收第一搜索结果集合;
在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示,以便进行显示;
在晚于第一时间的第二时间,从多个远程源单元中的第二远程源单元接收第二搜索结果集合;
在继续在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示以进行显示的同时,在单个显示单元内部提供关于第二搜索结果集合的至少第二子集的指示,以便进行显示。
28.如条款27所述的非临时性机器可读介质,其中单个显示单元包括单个web浏览器窗口的标签。
29.如条款27所述的非临时性机器可读介质,其中单个显示单元包括单个应用窗口。
30.如条款27所述的非临时性机器可读介质,其中用于提供至少第一子集的指示以进行显示的指令包括用于提供第一子集中的文件的文件名以进行显示的指令,其中用于提供至少第二子集的指示以进行显示的指令包括用于提供第二子集中的文件的文件名以进行显示的指令。
31.如条款27所述的非临时性机器可读介质,其中用于提供文件的文件名以进行显示的指令包括:用于依照与搜索查询的相关性来提供文件的文件名以进行显示的指令。
32.如条款31所述的非临时性机器可读介质,其中用于在继续在单个显示单元内部提供关于第一搜索结果集合的至少第一子集的指示以进行显示的同时在单个显示单元内部提供关于第二搜索结果集合的至少第二子集的指示以进行显示的指令包括:用于依照与搜索查询的相关性来交错第一子集中的文件的文件名以及第二子集中的文件的文件名的指令。
33.如条款27所述的非临时性机器可读介质,还包括在被一个或多个处理器运行的时候所述一个或多个处理器执行以下处理的指令:
从用户接收一个关于与第一搜索结果集合中的一个或多个成员或是第二搜索结果集合中的一个或多个成员有关的附加信息的请求,其中该附加信息并不是为了与第一搜索结果集合的至少第一子集的指示结合显示而被提供的,并且其中该附加信息并不是为了与第二搜索结果集合的至少第二子集的指示结合显示而被提供的;以及
提供该附加信息以进行显示。
其他附注
在一个方面中,这里的任何条款都可以从属于任一独立条款或任一从属条款。并且在一些方面中,任何条款(例如从属或独立条款)都可以与其他任何条款(例如从属或独立条款)结合。在一个方面中,权利要求可以包含条款、语句、短语或段落中述及的一些或所有文字(例如步骤,操作,装置或组件)。在一个方面中,权利要求可以包括在一个或多个条款、语句、断句或段落中述及的一些或所有文字。在一个方面中,每一个条款、语句、短语或段落中的一些文字是可以移除的。在一个方面中,在条款、语句、短语或段落中中可以添加附加的文字或元素。在一个方面中,本技术主题是可以在不使用这里描述的一些组件、元素、功能或操作的情况下实施的。在一个方面中,本技术主题是可以使用附加组件、元素、功能或操作实施的。
在一个方面中,这里描述和要求保护的任何方法、指令、代码、装置、逻辑、组件、部件、模块等等(例如软件或硬件)都可以用图形(例如流程图,框图)表示,此类图形(无论是否明确显示)在这里作为参考而被明确引入,并且此类图形(如果没有显性显示)可以在不产生新事项的情况下被添加到本公开中。为了简明起见,一些(但未必是所有)条款/描述/权利要求是用图形显性表示的,但是任何条款/描述/权利要求都可以采用与使用图形显性显示的条款/描述/权利要求相类似的方式来用图形表示。例如,在这里可以为用于方法的条款、语句或权利要求绘制图形,由此,每一个操作或步骤都会通过箭头而与接下来的操作或步骤相联系。在另一个示例中,具有“用于……的装置”的元素(例如用于执行某个动作的装置)的条款、语句或权利要求可被绘制框图,由此,每一个用于……的装置的元素都可以被表示成是用于该元素的模块(例如用于执行某个动作的模块)。
本领域技术人员将会了解,这里描述的不同说明性部件、模块、元素、组件、方法和算法(例如210,220,230,240,250,260,280,282,284,286,142A,144A,310,320,330,340,350,390以及其内组件,或是包含前述任何一项的部件)是可以作为电子硬件、计算机软件或是这二者的组合实施的。
为了例证硬件与软件的这种可互换性,在这里依照功能概括性地描述了各种项目,例如不同的说明性部件、模块、要素、组件、方法和算法。此类功能是用硬件还是软件实施取决于特定的应用以及施加于整个系统的设计约束条件。技术人员可以采用不同方式来为每一个特定应用实施所描述的功能。
在一个方面中,“装置”、部件、模块、要素、组件或处理器可以是用于执行一个或多个功能或操作的项目(例如部件、模块、要素、组件或处理器中的一个或多个)。在一个方面中,此类项目可以是设备、硬件或是其一部分。作为示例,在一个示例中,一个项目可以是用于执行一个或多个功能或是一个或多个操作的一个或多个指令,其中所述一个或多个指令是被编码或存储在机器可读介质、别的设备或是其一部分上的,并且其中一个或多个指令可以是软件、一个或多个应用、一个或多个子例程或是其一部分。在一个示例中,一个项目可以作为被配置成执行一个或多个功能或是一个或多个操作的一个或多个电路来实施。一个电路可以包括一个或多个电路和/或逻辑。电路可以是模拟和/或数字的。并且电路可以是电子和/或光学的。此外,电路还可以包括晶体管。在一个示例中,一个或多个项目可以作为处理系统(例如数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等等、或是前述各项的一部分或一些部分或者前述各项的组合)来实施。本领域技术人员将会认识到如何实施这些指令、电路和处理系统。
在本公开的一个方面中,应该理解的是,在将操作或功能描述成是由某一项执行(例如接收,确定,提供,产生,转换,跳过,显示,通知,接受,选择,控制,发布,传送,报告,或是其他任何操作或功能)的时候,此类操作或功能可以由项目直接或间接执行。举例来说,应该理解的是,在将模块描述成执行某个操作时,该模块既可以直接执行该动作,也可以间接执行该动作操作,例如通过此类操作(例如允许、导致或执行某一个动作的至少一部分)。
不同的项可以用不同方式排列(例如按照不同的顺序排列或者按照不同方式划分),所有这些均未脱离本技术主题的范围。在本公开的一个方面中,附加权利要求所述的元素可以由一个或多个模块或子模块执行。
应该理解的是,所公开的步骤、操作或处理的具体顺序或层级是对例示方法所做的例证。此外还应该理解,步骤、操作或处理的特定步骤顺序或层次是可以基于设计偏好而被重排的。一些步骤、操作或处理是可以同时执行的。附带的方法权利要求给出的是采用了作为样本的顺序的不同步骤、操作或处理的要素的,但这并不意味着受所给出的特定顺序或层级的限制。
在一个示例中,诸如210,220,230,240,250,260,280,282,284,286,142A,144A,310,320,330,340,350,390及其内部组件或是包含前述任何一项的部件之类的项目可以按照不同方式排列,以不同方式连接或者以不同方式组合。这些项目的功能可以由如上所述的部件执行,或者可以部件或其他部件的组合来执行。这其中的一些项可以置于其高级部件的外部。例如,项目210、290和206可被置于配套应用程序141A的外部。在另一个示例中,项目310、305和390可被置于搜索模块122的外部。在一个示例中,自动发现模块132可以是在某一个远程源单元140A到140N中实施的。在另一个示例中,自动发现模块132可以是在客户机设备120中实施的。在一个示例中,自动发现模块被用于在客户机设备及远程源单元之间建立连接以及中继请求、指令、响应和数据。在另一个示例中,自动发现模块仅仅被用于建立连接。例如,在远程源单元(例如140A-140N)向自动发现模块(例如132)报告了其可用性之后,在客户机设备(例如120)登录自动发现模块之后,以及在选择性地禁用了防火墙(如果恰当的话)之后,客户机设备以及远程源单元可以在不使用自动发现模块的情况下交换其请求、指令、响应和数据。在一个示例中,模块或部件(例如210,220,230,240,250,260,280,282,284,286,142A,144A,310,320,330,340,350,390)既可以代表一个或多个编码在机器可读介质上的子例程,也可以代表用于执行功能的电话,还可以代表与存储器的一部分相结合的前述各项之一。
应该理解的是,所公开的特定顺序或层次的步骤、操作或处理是关于例示方法的例证。应该理解的是,基于设计偏好,特定顺序或层级的步骤、操作或处理是可以重新排列的。一些步骤、操作或处理是可以同时执行的。如果给出了附带的方法权利要求,那么此类权利要求是以作为样本的顺序来给出不同步骤、操作或处理的要素,而不意味着局限于所给出的特定顺序或层级。
本公开是为了能使本领域技术人员实现这里描述的不同方面而被提供的。本公开提供了本技术主题的不同示例,并且本技术主题并不局限于这些示例。对本领域技术人员来说,针对这些方面的不同各种修改都是显而易见的,并且这里定义的通用原理也可以应用于其他放卖弄。由此,权利要求并不局限于这里显示的方面,而是与符合文本权利要求的完整范围相及其法定等效范围一致,其中除非特别说明,否则,对于单数形式的部件的引用并不意味着“唯一”,而是意味着“一个或多个”。此外,除非另加说明,否则术语“一些”指的是一个或多个。阳性代词(例如他)包含了阴性和中性(例如她和它),反之亦然。这里出现的标题和子标题仅仅是为了方便起见而被使用的,其并未对本发明构成限制。
诸如“方面”之类的短语既不意味着所述方面是本技术主题所必需的,也不意味着所述方面适用于本技术主题的所有配置。与一个方面相关的公开既可以适用于所有配置,也可以适用于一个或多个配置。一个方面可以提供一个或多个示例。诸如一个方面之类的短语可以是指一个或多个方面,反之亦然。诸如“实施例”之类的短语既不意味着该实施例是本技术主题所必需的,也不意味着该实施例适用于本技术主题的所有配置。与一个实施例相关的公开既有可能适用于所有实施例,也有可能适用于一个或多个实施例。一个实施例可以提供一个或多个示例。短语“此类实施例”可以是指一个或多个实施例,反之亦然。诸如“配置”之类的短语既不意味着该配置是本技术主题必需的,也不意味着该配置适用于本技术主题的所有配置。与一个配置相关的公开既有可能适用于所有配置,也有可能适用于一个或多个配置。一个配置可以提供一个或多个示例。短语“此类配置”可以是指一个或多个配置,反之亦然。
这里使用的单词“例示”指的是“充当一个示例或例证”。在这里被描述成“例示”的任何方面或设计都不必被理解成比其他方面或设计更为优先或优越。在一个方面中,这里描述的各种替换配置和操作至少可以被认为是等价的。
作为参考,在这里显性地引入了本领域普通技术人员已知或者以后将会知道的与本公开中描述的不同方面的要素等价的所有结构和功能等价物,并且权利要求应该包含这些等价物。此外,不管有没有在权利要求书中明确地要求保护,本申请公开的内容都不应该无偿贡献给公众。除非明确使用了短语“用于……的装置”来表达部件或者在方法权利要求中使用了短语“用于……的步骤”来表达要素,否则不能根据35U.S.C.&112第六款来解释权利要求中的元素。另外,在说明书或权利要求中使用了“包括”、“具有”等术语,从这个意义上讲,与在权利要求中使用术语“包含”作为过渡词时对其所做的解释相类似,此类术语同样应该是包含性的。
在本公开中引入了标题、背景技术、发明内容、附图说明以及摘要,并且这些内容是作为本公开的说明性实施例而不是限制性描述提供的。在提交时应该理解,这些内容并未限制权利要求的范围或意义。此外,在具体实施方式中可以看出,该描述提供的是说明性示例,并且各种特征被共同分组在了不同的实施例中,以便简化本公开。本公开的方法不应被解释成意图反映出请求保护的主题所需要的特征多于每个权利要求中明确陈述的特征。相反,如后续权利要求所反映的那样,本发明的主题所依据的特征要少于所公开的单个配置或操作中的所有特征。由此,以下的权利要求将被引入具体实施方式,其中每一个权利要求都是作为单独要求保护的主题而独立存在的。
这些权利要求并不局限于这里描述的方面,而是与符合文本权利要求的完整范围相一致,并且包含了所有的等同法定效应。然而,没有一个权利要求包含不满足35 U.S.C.§101、102或103的需求的主题,并且也不应该以这种方式来解释权利要求。据此,如果无意中包含了此类主题,那么此类主题将被放弃。
Claims (29)
1.一种使用单个搜索查询来实时搜索非公开数据的方法,该方法包括:
向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元,以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据;其中所述远程源单元与所述客户机设备相互独立、位于彼此远端、并且通过网络相互连接;其中所述配套应用程序是非公开应用程序,并且其中单个搜索查询包括搜索项;
在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元挂载在客户机设备上的同时,允许通过单个搜索查询来自动访问远程源单元上的非公开数据;
在远程源单元上,接收具有搜索项的单个搜索查询;以及
响应于单个搜索查询,
实时地使用该搜索项来搜索远程源单元上的非公开数据;
实时地取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果;以及
实时地传送所述非公开数据的搜索结果。
2.如权利要求1所述的方法,其中远程源单元是多个远程源单元之一,其中单个搜索查询被定向到多个远程源单元中的每一个远程源单元。
3.如权利要求2所述的方法,其中自动发现模块被配置成允许客户机计算设备同时搜索在多个远程源单元上的非公开数据。
4.如权利要求1所述的方法,其中单个搜索查询是由客户机设备发起的。
5.如权利要求1所述的方法,其中远程源单元与隐私障碍相关联,其中该方法还包括在远程源单元上接收用于克服隐私障碍的输入。
6.如权利要求5所述的方法,其中隐私障碍包括以下的一项或多项:防火墙,登录信息验证模块,证书验证模块,或令牌验证模块。
7.如权利要求5所述的方法,其中用于克服隐私障碍的输入包括以下的一项或多项:登录信息,用户名,密码,证书,或令牌。
8.如权利要求1所述的方法,其中报告的处理至少部分是由远程源单元的报告模块执行的,其中允许自动访问的处理至少部分是由访问模块执行的,其中接收的处理至少部分是由远程源单元的搜索指令处理机执行的,其中搜索的处理至少部分是由搜索指令处理机执行的,其中搜索处理至少部分是由远程源单元的索引器执行的,其中取回处理至少部分是由远程源单元的结果处理机执行的,其中传送处理至少部分是由结果处理机执行的,以及
其中该方法包括:
由搜索指令处理机来向索引器提供单个搜索查询;
由索引器创建指示了搜索项与远程源单元中的文件的相关性的字频分布,以及
由索引器将字频分布提供给配套应用程序,
其中非公开数据的搜索结果与搜索排名信息相关联,以及
其中搜索排名信息包括字频分布。
9.如权利要求1所述的方法,其中所述远程源单元包括以下的一个或多个:远程计算设备,基于云的源单元,存储电子邮件消息的电子邮件账户,存储预约的在线日历账户,在线文档管理账户,存储社交网络信息的社交网络账户。
10.如权利要求1所述的方法,其中所述允许自动访问远程源单元上的非公开数据的步骤包括:自动和选择性地禁用远程源单元上的防火墙,以便将通信定向到配套应用程序。
11.如权利要求10所述的方法,其中所述自动和选择性地禁用防火墙的步骤包括:在首次将配套应用程序安装在远程源单元上的时候,自动并且选择性地禁用防火墙,并且当配套应用程序继续安装在远程源单元上的时候,所述防火墙保持选择性地被禁用。
12.如权利要求10所述的方法,其中非公开数据的搜索结果还包括相关联的搜索排名信息以及一个或多个相关联的元数据指示符。
13.如权利要求12所述的方法,其中一个或多个文件名或文件夹名是远程源单元的一个或多个文件或文件夹的名称、内容或元数据中与搜索项匹配的一个或多个文件或文件夹的一个或多个名称,
其中所述方法还包括:响应于单个搜索查询,识别与一个或多个文件或文件夹相关联的元数据,以及识别与一个或多个文件或文件夹的内容相关联的元数据,
其中与一个或多个文件或文件夹相关联的元数据包括一个或多个文件或文件夹的一个或多个图标指示符,
其中与一个或多个文件或文件夹相关联的元数据包括一个或多个预览指示符,一个或多个缩略图指示符,一个或多个局部内容指示符,以及一个或多个局部图像指示符,
其中图标指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的图标,
其中预览指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的预览,
其中缩略图指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的缩略图,
其中局部内容指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的局部内容,
其中局部图像指示符指示的是在远程源单元中是否存在与文件或文件夹相关联的局部图像,
其中一个或多个相关联的元数据指示符包括与一个或多个文件或文件夹相关联的元数据以及与一个或多个文件或文件夹的内容相关联的元数据中的至少一个。
14.如权利要求12所述的方法,还包括:
在传输了非公开数据的搜索结果之后,基于一个或多个相关联的元数据指示符,在远程源单元上接收一个要求得到与具有一个或多个文件名或文件夹名的一个或多个文件或文件夹相关联的图标的请求;
响应于该图标请求,取回所述图标并且将所述图标传送到自动发现模块,以便将其实时转发给客户机设备,
其中非公开数据的搜索结果不包含图标。
15.如权利要求10所述的方法,还包括:
在传输了非公开数据的搜索结果之后,基于一个或多个相关联的元数据指示符,在远程源单元上接收一个要求得到与具有一个或多个文件名或文件夹名的一个或多个文件或文件夹相关联的预览、缩略图、局部内容或局部图像的请求;
响应于所述关于预览、缩略图、局部内容或局部图像的请求,取回所述预览、缩略图、局部内容或局部图像并且将其传送到自动发现模块,以便将其实时转发给客户机设备,
其中非公开数据的搜索结果不包含预览、缩略图、局部内容或局部图像。
16.如权利要求1所述的方法,还包括:
在传输了非公开数据的搜索结果之后,在远程源单元上接收一个要求得到具有一个或多个文件名的一个或多个文件的内容的请求;
响应于该内容请求,取回所述内容并且将其传送到自动发现模块,以便将其实时转发给客户机设备的一部分,
其中非公开数据的搜索结果不包含内容。
17.如权利要求1所述的方法还包括:
在远程源单元的一个或多个文件或文件夹的名称、内容或元数据中,识别与搜索项匹配的一个或多个文件或文件夹的一个或多个文件名或文件夹名;
基于搜索项在远程源单元的一个或多个文件或文件夹中的字频分布来计算相关联的搜索排名信息。
18.如权利要求1所述的方法,还包括:基于客户机用户的许可判据来过滤非公开数据的搜索结果,以便允许仅仅在搜索结果满足许可判据的程度上传输搜索结果。
19.如权利要求1所述的方法,还包括:基于群集判据来将非公开数据的搜索结果分组。
20.如权利要求1所述的方法,还包括:在传输之前,通过加密非公开数据的搜索结果来允许安全地传输非公开数据的搜索结果。
21.如权利要求1所述的方法,还包括:
向自动发现模块报告多个远程源单元内部的第二远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现第二远程源单元,以及使得客户机设备能够实时使用单个搜索查询来同时搜索在多个远程源单元上的非公开数据;
在免却第二远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将第二远程源单元挂载在客户机设备上的同时,允许通过定向到多个远程源单元的单个搜索查询来自动访问第二远程源单元上的非公开数据;
在第二远程源单元上,接收具有搜索项的单个搜索查询,其中所述单个搜索查询是由客户机设备发起的;以及
响应于单个搜索查询,
实时地使用该搜索项来搜索第二远程源单元上的非公开数据;
实时地取回包含了一个或多个文件名或文件夹名,相关联的搜索排名信息以及一个或多个相关联的元数据指示符的第二非公开数据的搜索结果;以及
实时地将第二非公开数据的搜索结果传送到自动发现模块,以便实时转发至客户机设备。
22.如权利要求2所述的方法,还包括:
多个远程源单元内部的远程源单元的配套应用程序与所述多个远程源单元内部的其他远程源单元的配套应用程序进行通信。
23.如权利要求2所述的方法,还包括:
远程源单元的配套应用程序与其他远程源单元的配套应用程序进行通信,其中所述多个远程源单元包括所述远程源单元以及其他远程源单元,
其中所述通信包括:允许在所述远程源单元与其他远程源单元之间共享包括搜索排名信息内的信息,
其中所述方法还包括:基于远程源单元的搜索排名信息以及来自其他远程源单元的搜索排名信息来更新相关联的搜索排名信息。
24.如权利要求1所述的方法,还包括:对在来自搜索处理的远程源单元中发现的文件或文件夹进行排名,其中所述排名包括:分析搜索项频率分布、文件或文件夹创建日期以及文件或文件夹相关性中的一项或多项。
25.如权利要求1所述的方法,还包括:
遍历远程源单元的文件系统;
为远程源单元上的文件和文件夹或是文件和文件夹子集编制索引;
为远程源单元上的文件或文件子集的内容编制索引。
26.一种使用单个搜索查询来实时搜索非公开数据的系统,该系统包括:
向自动发现模块报告远程源单元的配套应用程序的可用性,以使客户机设备能够自动发现远程源单元的装置;以及使得客户机设备能够使用单个搜索查询来实时搜索远程源单元上的非公开数据的装置;其中所述远程源单元与所述客户机设备相互独立、位于彼此远端、并且通过网络相互连接;其中所述配套应用程序是非公开应用程序,并且其中单个搜索查询包括搜索项;
在免却远程源单元与客户机设备之间的安全远程联机阶段登录以及免却将远程源单元挂载在客户机设备上的同时,允许通过单个搜索查询来自动访问远程源单元上的非公开数据的装置;
在远程源单元上,接收具有搜索项的单个搜索查询的装置;以及
响应于单个搜索查询,
实时地使用该搜索项来搜索远程源单元上的非公开数据的装置;
实时地取回包含了一个或多个文件名或文件夹名的非公开数据的搜索结果的装置;以及
实时地传送所述非公开数据的搜索结果的装置。
27.如权利要求26所述的系统,其中远程源单元是多个远程源单元之一,以及其中单个搜索查询是定向到多个远程源单元中的每一个的。
28.如权利要求27所述的系统,其中自动发现模块被配置成允许客户机计算设备同时搜索在多个远程源单元上的非公开数据。
29.如权利要求26所述的系统,其中单个搜索查询是由客户机设备发起的。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161484170P | 2011-05-09 | 2011-05-09 | |
US61/484,170 | 2011-05-09 | ||
US201161570185P | 2011-12-13 | 2011-12-13 | |
US61/570,185 | 2011-12-13 | ||
US13/467,002 | 2012-05-08 | ||
US13/467,002 US9092525B2 (en) | 2011-05-09 | 2012-05-08 | Method and apparatus for searching non-public data using a single search query |
PCT/US2012/037140 WO2012154863A1 (en) | 2011-05-09 | 2012-05-09 | Method and apparatus for searching non-public data using a single search query |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103917948A CN103917948A (zh) | 2014-07-09 |
CN103917948B true CN103917948B (zh) | 2017-09-08 |
Family
ID=47139633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280034200.8A Active CN103917948B (zh) | 2011-05-09 | 2012-05-09 | 使用单个搜索查询来搜索非公开数据的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9092525B2 (zh) |
EP (1) | EP2707791B1 (zh) |
CN (1) | CN103917948B (zh) |
WO (1) | WO2012154863A1 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547694B1 (en) | 2002-05-25 | 2017-01-17 | hopTo Inc. | Aggregated search |
US9552414B2 (en) * | 2012-05-22 | 2017-01-24 | Quixey, Inc. | Dynamic filtering in application search |
US10204170B2 (en) | 2012-12-21 | 2019-02-12 | Highspot, Inc. | News feed |
WO2014100605A1 (en) * | 2012-12-21 | 2014-06-26 | Highspot, Inc. | Interest graph-powered search |
US9477785B2 (en) * | 2013-03-15 | 2016-10-25 | NutraSpace LLC | Customized query application and data result updating procedure |
US10055418B2 (en) | 2014-03-14 | 2018-08-21 | Highspot, Inc. | Narrowing information search results for presentation to a user |
WO2014144905A1 (en) | 2013-03-15 | 2014-09-18 | Highspot, Inc. | Interest graph-powered feed |
US20150112996A1 (en) * | 2013-10-23 | 2015-04-23 | Microsoft Corporation | Pervasive search architecture |
US9319727B2 (en) | 2013-10-29 | 2016-04-19 | Fx Networks, Llc | Viewer-authored content acquisition and management system for in-the-moment broadcast in conjunction with media programs |
US9710434B2 (en) | 2013-12-10 | 2017-07-18 | Highspot, Inc. | Skim preview |
US10033668B2 (en) * | 2014-01-16 | 2018-07-24 | Dropbox, Inc. | Enhancing performance of message search and retrieval |
US20160125098A1 (en) * | 2014-10-30 | 2016-05-05 | Lenovo (Singapore) Pte. Ltd. | Aggregate service with search capabilities |
CN104462575B (zh) * | 2014-12-29 | 2019-03-08 | 北京奇虎科技有限公司 | 音乐综合搜索的实现方法和装置 |
US9984310B2 (en) | 2015-01-23 | 2018-05-29 | Highspot, Inc. | Systems and methods for identifying semantically and visually related content |
US20160239508A1 (en) * | 2015-02-12 | 2016-08-18 | Harman International Industries, Incorporated | Media content playback system and method |
US20180046720A1 (en) * | 2016-02-14 | 2018-02-15 | Ousmane Conde | XoomDat, real-time search and analytics information system |
US9552412B1 (en) * | 2016-04-07 | 2017-01-24 | Quid, Inc. | Boolean-query composer |
US10785372B2 (en) | 2016-06-30 | 2020-09-22 | Verint Systems UK Limited | System and method of embedding and launching a form from third-party knowledge content |
US10834261B2 (en) | 2016-06-30 | 2020-11-10 | Verint Systems UK Limited | System and method of running an agent guide script-flow in an employee desktop web client |
EP3264352A1 (en) | 2016-06-30 | 2018-01-03 | Verint Systems UK Limited | System and method of running an agent guide script-flow in an employee desktop web client |
EP3264351A1 (en) * | 2016-06-30 | 2018-01-03 | Verint Systems UK Limited | System and method of embedding and launching a form from third-party knowledge content |
US20190102841A1 (en) * | 2017-10-04 | 2019-04-04 | Servicenow, Inc. | Mapping engine configurations with task managed workflows and grid user interfaces |
US20200043479A1 (en) * | 2018-08-02 | 2020-02-06 | Soundhound, Inc. | Visually presenting information relevant to a natural language conversation |
US11222063B2 (en) * | 2019-04-03 | 2022-01-11 | Microsoft Technology Licensing, Llc | Dynamic query adjustment based on data protection configurations |
US11637821B2 (en) | 2020-05-11 | 2023-04-25 | Samsung Electronics Co., Ltd. | System and method for certificate based authentication for tethering |
US11593155B2 (en) * | 2020-05-27 | 2023-02-28 | Vmware Inc. | Workflow service application networking |
US20220398290A1 (en) * | 2021-06-10 | 2022-12-15 | Dell Products L.P. | System and method for image file generation using a web browser |
US20230161789A1 (en) * | 2021-11-22 | 2023-05-25 | International Business Machines Corporation | Realtime viewer in cloud storage environments |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1723672A (zh) * | 2002-12-09 | 2006-01-18 | 皇家飞利浦电子股份有限公司 | 在对等网络中搜索数据的方法和设备 |
CN101341484A (zh) * | 2005-12-19 | 2009-01-07 | 微软公司 | 使用客户机侧重新排序的个性化的基于关键词的信息的传递 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6498795B1 (en) * | 1998-11-18 | 2002-12-24 | Nec Usa Inc. | Method and apparatus for active information discovery and retrieval |
US20050060417A1 (en) * | 2003-09-16 | 2005-03-17 | Rose Keith R. | Automated electronic personal preference & proxy network |
US7289806B2 (en) * | 2004-03-30 | 2007-10-30 | Intel Corporation | Method and apparatus for context enabled search |
US20060085431A1 (en) * | 2004-10-13 | 2006-04-20 | Burns David M | Systems and methods for protecting private electronic data |
WO2007052285A2 (en) * | 2005-07-22 | 2007-05-10 | Yogesh Chunilal Rathod | Universal knowledge management and desktop search system |
US20070061317A1 (en) * | 2005-09-14 | 2007-03-15 | Jorey Ramer | Mobile search substring query completion |
US7881969B2 (en) * | 2005-12-13 | 2011-02-01 | Microsoft Corporation | Trust based architecture for listing service |
US7783622B1 (en) * | 2006-07-21 | 2010-08-24 | Aol Inc. | Identification of electronic content significant to a user |
US8407220B2 (en) * | 2006-09-28 | 2013-03-26 | Augme Technologies, Inc. | Apparatuses, methods and systems for ambiguous code-triggered information querying and serving on mobile devices |
US7877369B2 (en) * | 2007-11-02 | 2011-01-25 | Paglo Labs, Inc. | Hosted searching of private local area network information |
US7877368B2 (en) * | 2007-11-02 | 2011-01-25 | Paglo Labs, Inc. | Hosted searching of private local area network information with support for add-on applications |
TWI382717B (zh) * | 2007-11-12 | 2013-01-11 | D Link Corp | A method of sharing resources by interconnecting a network terminal device of two private networks by a user agent |
US20090254375A1 (en) * | 2008-04-08 | 2009-10-08 | The Quantum Group, Inc. | System and methods for automated healthcare patient record search, extraction, and creation |
US8965920B2 (en) * | 2008-12-15 | 2015-02-24 | Verizon Patent Licensing Inc. | Distributing and sharing content in a network |
US8315953B1 (en) * | 2008-12-18 | 2012-11-20 | Andrew S Hansen | Activity-based place-of-interest database |
US10244056B2 (en) * | 2009-04-15 | 2019-03-26 | Wyse Technology L.L.C. | Method and apparatus for transferring remote session data |
US8589375B2 (en) * | 2011-01-31 | 2013-11-19 | Splunk Inc. | Real time searching and reporting |
-
2012
- 2012-05-08 US US13/467,002 patent/US9092525B2/en active Active
- 2012-05-09 WO PCT/US2012/037140 patent/WO2012154863A1/en active Application Filing
- 2012-05-09 CN CN201280034200.8A patent/CN103917948B/zh active Active
- 2012-05-09 EP EP12782337.5A patent/EP2707791B1/en active Active
-
2015
- 2015-07-02 US US14/791,069 patent/US9552423B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1723672A (zh) * | 2002-12-09 | 2006-01-18 | 皇家飞利浦电子股份有限公司 | 在对等网络中搜索数据的方法和设备 |
CN101341484A (zh) * | 2005-12-19 | 2009-01-07 | 微软公司 | 使用客户机侧重新排序的个性化的基于关键词的信息的传递 |
Also Published As
Publication number | Publication date |
---|---|
US20150310110A1 (en) | 2015-10-29 |
CN103917948A (zh) | 2014-07-09 |
US20120290614A1 (en) | 2012-11-15 |
EP2707791A4 (en) | 2014-11-19 |
EP2707791A1 (en) | 2014-03-19 |
EP2707791B1 (en) | 2019-03-20 |
US9092525B2 (en) | 2015-07-28 |
WO2012154863A1 (en) | 2012-11-15 |
US9552423B2 (en) | 2017-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103917948B (zh) | 使用单个搜索查询来搜索非公开数据的方法和系统 | |
US11822759B2 (en) | System and methods for configuring event-based automation in cloud-based collaboration platforms | |
US9756022B2 (en) | Enhanced remote key management for an enterprise in a cloud-based environment | |
US10574442B2 (en) | Enhanced remote key management for an enterprise in a cloud-based environment | |
JP5982343B2 (ja) | クラウドベース環境におけるリモートキー管理 | |
US11580305B2 (en) | Automatically assisting conversations using graph database | |
US8533284B2 (en) | Sharing of media and other content through a communication channel | |
Tramp et al. | An architecture of a distributed semantic social network | |
JP4824390B2 (ja) | 動的なコンテンツ変更通知 | |
US20130179799A1 (en) | System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment | |
US20200311680A1 (en) | Expandable data object management and indexing architecture for intersystem data exchange compatibility | |
JP6149434B2 (ja) | 情報処理装置、文書管理サーバ、プログラム、ファイルシステム | |
US11586591B1 (en) | Electronic file management | |
US20170024698A1 (en) | Managing team mailbox integrating email repository and content management store services | |
US9705967B2 (en) | Corporate user discovery and identification of recommended collaborators in a cloud platform | |
CN112069410A (zh) | 一种消息处理方法、装置、设备及介质 | |
US20120290567A1 (en) | Method and apparatus for searching non-public data using a single search query | |
US20210311620A1 (en) | Organization of channel labels associated with a plurality of group-based communication channels in a communication platform | |
EP3771147B1 (en) | Group-based communication system and apparatus configured to manage channel titles associated with group-based communication channels | |
KR20130064714A (ko) | 비동기 수동 지식 공유 시스템 및 방법 | |
US20120047568A1 (en) | Digital Asset Management on the Internet | |
GB2499097A (en) | Discussion forum with integrated task assignment function | |
WO2012019046A1 (en) | Online protocol community | |
Toelle et al. | Core eDiscovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220601 Address after: Texas, USA Patentee after: DELL marketing Address before: California, USA Patentee before: WYSE TECHNOLOGY Inc. |
|
TR01 | Transfer of patent right |