Board logo

标题: 设计和实现社交网络应用程序中的隐私控制(4)示例应用程序更新 [打印本页]

作者: look_w    时间: 2018-9-3 11:51     标题: 设计和实现社交网络应用程序中的隐私控制(4)示例应用程序更新

我们假设在隐私特性生效之前,系统的默认行为将返回一个邮箱地址列表。然后我们输入列表作为 filterByPP 的第一个参数,然后输入数据类型作为第二个参数。对于输入列表中的每个人的信息,我们首先根据电子邮箱地址取得国家名称(清单 3 的第 10 行)。然后我们输入国家名称和 dataType 值作为另一个方法 FBUtils.getDisplayRoleSet(country, dataType) 的参数(清单 3 的第 15 行)。该方法返回一个角色集合(displayRoleSet),该集合描述了根据国家和当前 dataType 值允许显示哪些类型。然后该方法通过调用 FBUtils.getRole(email)(清单 3 的第 22 行)并检查返回的类型是否包含在 displayRoleSet 中来取得当前用户的角色类型。如果包含的话,此用户的信息将被添加到返回列表并显示,否则,将根据隐私策略被过滤掉。最后,filterByPP 方法返回结果。        
让我们沿着这条思路看看隐私控制特性如何在系统中起作用。回头看看我们的朋友 Bob。他能看到根据他上传的通讯记录得到的直接朋友列表(图 1)。有三位直接朋友:Field、Bacon 和 James。Bob 可以通过查找他的直接朋友 Bacon  认识的人来扩展社交圈。于是,他选择 Bacon 前面的单选按钮并单击 Find friends of Bacon。        
系统首先根据 Bacon 的通讯配置文件获得一张直接朋友列表。
清单 4. bacon@friendbridge.com.txt
1
2
bacon@friendbridge.com  Bacon   China   daisy@friendbridge.com,ellis@friendbridge.com,
gilbert@friendbridge.com




清单 4 是 Bacon 的通讯配置文件。Bacon 的配置文件保存了三个直接朋友的邮箱地址。这三个邮箱地址将成为由系统默认行为返回的邮箱地址列表。在其成为最终结果之前,我们需要先根据私密信息的隐私策略过滤邮箱列表。因此,filterByPP 方法的输入是三个邮箱地址的列表,dataType 值是 private。                               
在程序循环中,第一个邮箱是 daisy@friendbridge.com。filterByPP 方法从 Daisy 的配置文件取得其国家名称(此例中是英国)。清单 5 是 Daisy 的配置文件。        
清单 5. daisy@friendbridge.com.txt
1
daisy@friendbridge.com  Daisy   UK




filterByPP 方法从 privacPolicy.xml 获取 UK 的私密数据类型 displayRoleSet。根据 privacyPolicy.xml 第 17 和 18 行定义,UK 与 ID 为 1 的 <data-policy-suite>(简称为 data-policy-suite1)关联,data-policy-suite1 中的 <private-display-role> 的值是 2 和 3(清单3 第 7 行)。最后,displayRoleSet 的值是 2、3。此方法从 options.txt 获取 daisy@friendbridge.com 的选项,它保存所有用户的 opt-in 信息。                                
清单 6. options.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
adams@friendbridge.com  2
bacon@friendbridge.com  3
carter@friendbridge.com 4
daisy@friendbridge.com  1
ellis@friendbridge.com  2
field@friendbridge.com  3
gilbert@friendbridge.com    3
harper@friendbridge.com 4
isaac@friendbridge.com  2
james@friendbridge.com  3
mark@friendbridge.com   2
michael@friendbridge.com    4
noah@friendbridge.com   4
bob@friendbridge.com    3




清单 6 是 options.txt,filterByPP 方法从此文件中得知 daisy@friendbridge.com 的角色类型是 1。由于 1 不包含在 displayRoleSet 的值 2 和 3 中,Daisy 的私密信息不会显示在查询结果中;它被该方法过滤了。该方法对 ellis@friendbridge.comgilbert@friendbridge.com 也进行同样处理,gilbert@friendbridge.com 由于满足隐私策略,因此将显示出来。图 3 显示的是在隐私控制特性启用后得到的不同查询结果。查询结果与图 1 不同。        
图 3. 启用隐私控制的查询结果这就是隐私控制特性的工作原理。
隐私特性的优点采用配置文件来实现隐私策略是我们的设计中最有创意的一部分。由于 <data-policy-suite> 和 <privacy-policy-suite> 都具有可设置性和可重用性,当面对以下三项设计变更时,就可以对代码变更进行限制:        





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0