技术宅
如上所述,出于隐私安全和竞争等因素的限制,大部分网络工具的数据是无法实现彼此互联互通的。因为对于各自开发的网络软件,每个公司都使用不同的技术和开发、加密协议,这些协议互不兼容,因此大多无法实现彼此的互联互通。
举个简单的例子,比如谷歌和微软都提供了日历功能,但是默认情况下我们是无法在谷歌Gmail中导入微软日历功能的。为了便于其他网络工具访问自己的数据,服务商一般是通过开放的API来实现数据的共享。API(Application Programming Interface),即应用程序编程接口,它是一段写好的代码,或者编译好的程序,提供给第三方使用,这样第三方程序利用API就可以实现对特定数据的访问(图1)。
API可以让第三方实现对自己开发软件数据的调用,但是传统 API只能实现单向的调用,比如B公司通过A公司的API可以访问用户C的数据,但是A公司却无法访问B公司的数据。如果要实现A对B的访问,B就必须再开发相应的API。这样每个公司都需要开发API,显然要实现彼此的数据共享就极不方便。为此谷歌、微软等提出Data Transfer Project计划,该计划可以实现各大公司之间数据的双向、多向共享(图2)。
如上所述,为了方便各大网络软件之间数据的共享,谷歌、微软等提出Data Transfer Project计划。那么Data Transfer Project又是怎样实现彼此数据共享的呢?
这项计划首先是建立一个数据模型,这个模型的作用是为不同服务商的数据传输和读取制定一个通用的标准格式。这里主要使用一种名为“适配器”的工具,它可以将用户的私有数据(如邮件、日历)和身份验证格式(如账号、密码)转换为各个服务商都可以用的统一表单。用户数据模型被聚集在一起,大多是按照行业分组,形成垂直的数据。用户可以在一个或多个垂直方向上拥有数据,比如垂直搜索可以是照片、电子邮件、联系人或音乐。这样通过数据模型就可以将用户在不同服务商的数据变为互为可读的通用数据(图3)。
接着Data Transfer Project借助“数据适配器”和“身份适配器”来实现数据读取和认证。其中数据适配器可以将每个公司原来开发的API转换为Data Transfer Project可以使用的数据模型的代码片段,这样在其他服务商开发的网络工具上就可以读取用户保存在其中的数据。身份验证适配器允许使用者在将数据从一个服务商传输出去或传输到另一个服务商之前对其账户进行身份验证(图4)。
最后剩下的就是传输管道,Data Transfer Project开发了一组任务管理库来对数据的传输进行管理,同时在传输过程中使用同一加密协议来保证数据传输的安全。
这样Data Transfer Project借助一个通用框架(数据模型)和生态系统(数据适配器和身份验证适配器),完成用户的身份验证后,用户私有数据就可以从一个服务商到另一个服务商之间无缝迁移(图5)。
现在几乎每个网虫都有很多的网络账号,我们会在每个账号里保存很多的私人文件,如收发的邮件,拍摄的照片、下载的程序等资源。由于每个网络服务商提供的服务和品质都不同,很多时候我们会根据自己的需要更换服务商,但是在之前我们如果希望停止某一网络服务,比如不想使用Gmail服务,而想改用微软服务,那么原来在谷歌账户上保存的邮件、日历、照片等,我们就需要下载到本地,然后再上传到微软账户才能完成账户的迁移工作。
现在借助Data Transfer Project服务,我们只要在谷歌账户上发起申请,利用Data Transfer Project提供的遷移服务,在微软账户上就可以将这些数据全部迁移到微软服务器。这样的数据迁移是不是方便多了?当然作为一项多方共享的数据服务,Data Transfer Project将来还会提供更多的服务,比如笔记本的面部识别文件、指纹支付配置文件这些数据文件都可以实现迁移,意味着我们只要初始设置一份文件,以后更换硬件或者网络账号时都可以继续使用,方便我们的网络生活。