上一期介绍了分布式社交协议solid,solid把应用跟数据分开了:
数据是一种分布式的服务POD,有点像我们会碰到非常多的网盘产品,有些网盘存用户的照片,有些网盘存用户的文章,有些存用户的歌单,有些存用户的运动数据,有些存用户的社交好友关系,有些存用户的知识等等,只要值得存储的数据,都可以有一种网盘的形式去存储;
应用也是一种独立的存在,它本身不存储用户的数据,它是整合用户数据的地方,也是处理用户数据的地方,比如我们可以开发一款图片社交产品,用户可以在上面发图片,发的图片会保存在用户选定的网盘上,此款社交app只是把用户的照片跟用户的个人信息汇总在一起,按照某个逻辑来呈现。就算此款app,只提供了几个月的服务就被关闭了,用户的照片数据还是存在于用户选定的网盘上;当有另一款app也需要用户提供照片数据时,可以直接调用用户之前发布的照片数据。
整个网络世界,变成了应用跟数据两种基本服务。
非常灵活,我们可以开发各种的创新应用。因为不需要面临数据冷启动的问题。
下面用代码的方式,帮助大家深度了解技术原理,有几个知识点,我们需要提前理解:
什么是POD?
webID是什么?
阅读难度:★★★☆☆
技能要求:JS基础、HTML基础
字数:900字
阅读时长:4分钟
STEP1
获取一个 solid pod
为了读写数据,你需要拥有一个solid pod和账号。访问inrupt网址( https://inrupt.net/ ),注册一下,获取一个webID(账号)。
我的webID:
https://shadowcz.inrupt.net/profile/card#me
STEP2
新建一个HTML文件
新建一个html文件,输入以下代码:
STEP3
添加 Solid auth client 库 及 jQuery 库
为了支持solid,我们需要添加2个组件,一个是JS,一个是登录页面。
• JS库:
https://solid.github.io/solid-auth-client/dist/solid-auth-client.bundle.js
• 登录页面:
https://solid.github.io/solid-auth-client/dist/popup.html
popup是登录页面,在登录页面填入我们自己的webID,然后会跳到webID对应的POD服务提供站点处,登录授权即可。
• jQuery 库:
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js
STEP4
添加登录状态的UI及登录,退出按钮
在html文件里添加标签,如下:
Step 5
为登录按钮添加JS事件,并运行html
在html文件里添加一个script标签,并输入以下js代码:
打开终端,输入:
python -m http.server
打开浏览器,输入:
http://localhost:8000
登录下试试,如下图:
Step 6
为退出登录的按钮添加一个js事件
输入以下代码:
Step 7
把登录用户的webID显示出来
可以把授权的用户webID显示出来,在html中输入input标签,并在script中输入js代码:
Step 8
获取用户存储在POD上的数据
使用RDFlib.js库,操作我们存储在POD上的Linked Data;RDFlib.js已经在html里引用了,我们看一下如何用js获取数据:
使用RDFlib.js获取webID的名字,对应的RDFlib的代码,主要有3步:
Step 9
显示其他字段
由于我们刚创建的webID没有friends关系,可以使用官方示例的一个webID,在
<input id="profile">尝试填入:
https://ruben.verborgh.org/profile/#me
点击view按钮,可以拉取friends关系,js代码:
至此,9步完成了一个简单的solid 应用。
去中心化的网络世界,是不是很性感?
有没有兴趣一起研究下solid源码?及探索相关的应用?
——公众号回复留言即可加入社群。
以上为全文。
近期活动推荐:
快!TensorFlow、黑客马拉松、DevFest千人大会 ,GDG DevFest 2018在召唤你
--------------------------------------
mixlab 无界社区 是一所面向未来的实验室,它提倡“跨界创新,开放成长”的理念。
——跨界 开放 互助 学习 思维 创新。
目前社区汇集了15000+跨学科人群,主要来自GoogleBrain、微软、华为、阿里鲁班、腾讯、旷视、三角兽、物灵科技、众安保险、美团、360等科技人才、设计师及CEO和投资人;高校分布MIT、Oxford、Cambridge、CMU、UoM、清华、上交大、同济等学生及教师群体;学科跨越机器学习、自然语言处理、量化交易、物联网、区块链、前端、后端、产品经理、UI设计、建筑设计、服装设计、珠宝设计、音乐、艺术等。
社区典型的用户技能为: ML00:小程序开发、AI+设计、区块链技术 ML04: 算法作曲 ML05:AI变脸 ML07:WebGL+Three.js数据可视化 ML14:增长黑客 ML16:机器学习 ML37:AR ML41:人工智能+音乐 ML44:珠宝设计+参数化设计 ML83:量化交易、数字货币交易 ML109:Arduino、processing ML113:人工智能+服装设计 ML206:VR/AR ML245:建筑设计智能化
详细介绍点击以下卡片:
mixlab期待您的加入!