Live Services Jumpstart第一天
微软最近正在大力推广live services这一套东西(在TechEd中也占了不小的比例)
这个Jumpstart貌似是一个全球的培训活动,北京这边是2天的课程,包括session和HOL,讲师是总部live services team来的
Part 1. Overview
第一节课比较困,不过基本上都是在show一些demo,概念也不是很多。总的来说,live services的目的就是将用户(Users)、设备(Devices,比如PC、Mac、Mobile、XBox之类的)、应用(Application)整合起来。
用户体验到的是Hotmail、Messenger、Live Mesh这样的应用;开发人员面对的是Live Framework(这个明天讲)。而现在的开发人员还是在做一些底层的比如用户系统、目录、存储管理、通讯管理这样的基础架构,到Live Services中这些都由微软提供了,开发人员可以更加关注业务和用户体验。
目前有一个开源的项目是完全用live services构建的:http://www.adventureworksresorts.com
Part 2. Online Identity(其实就是LiveID)
首先就是一堆概述,比如为什么要用LiveID之类的(号称是全球最大用户数的身份验证提供方,可以安全、稳定的提供用户身份验证服务,且免费;目前有很多应用都是以LiveID作为身份的——当然,基本上都是微软的应用)
当然,这里面提到LiveID的意思是说我们可以在自己的应用中使用LiveID作为身份验证服务,也可以将LiveID和已有的验证服务(比如AD之类的)集成起来。在身份集成的APPZ(Authentication, Policy, Profile, Authorization,又是一个拼写的噱头)中,LiveID负责解决Authentication、Policy和部分Profile的问题。
将LiveID集成进我们自己的应用的另一个好处就是安全,所有的登陆操作都在live.com上完成,用户不再会担心网站会保留我们的live的用户名和密码用来做其他一些事情(似乎有些网站就是要直接输入live的用户名和密码的……),所以他一再强调一定不要在不是live.com的网址上输入live的用户名和密码。
LiveID的集成方式主要有三种:
(1)Web Authentication。这种方式基本上就是在我们的页面中嵌一小段html代码,用于显示登陆(或退出登陆)的按钮(或链接)。这种方式基本上就是和传统的第三方验证提供程序一样的工作原理。需要在live services中注册一个AppId,同时指定这个AppId对应的domain,live在做验证的时候会检查跳转回去的地址,如果不是注册的domain的话,就不允许,以放置信息被窃取。这种方式登陆后会返回一个token,这个token是根据AppId、UserId、时间戳和签名加密成的。在界面上,这种登陆方式是跳转到live.com上进行用户登陆,但是这个登陆页面是允许用户进行部分的修改的(通过一段xml上传到live services中),比如css。这个方式最为简单,只是纯粹的身份验证,我们的应用可以直接使用token解析出来的userId作为用户身份的标志。
(2)Delegate Authentication。这个方式要更复杂一些,可以在网站中获取更多关于用户的信息,比如用户的好友列表(Flickr现在似乎就支持这个功能)、用户的照片库之类的。
(3)Client Authentication。客户端程序的验证,验证的时候直接弹出一个Live的控件输入邮箱和密码(有点像msn的登陆界面),登陆后就拥有了这个live的身份,可以无缝的和微软其他的live应用集成(比如通过接口直接发space的blog之类的)。
然后现在LiveID正在(或者已经?)作为OpenID的一个提供方,凡是可以用OpenID作为身份认证的应用,都可以使用LiveID,这个他做了一个demo,不过没有成功……
Part 3. Communication
这部分主要介绍的是Messenger的lib(javascript的),通过这个lib,可以在我们的页面上嵌入一个小型的messenger。我做的HOL里有一个这个,不过非常简单,只是登陆后显示用户名而已,不过是纯前台的,没有任何后台代码。(当然,登陆也是要先跳转到live.com上)另外,也有服务器端的Messnger控件可以用,使用起来更方便一些,拖上去配置几下就行了。
其余的还有可以在应用中做自己的alert(可以通过msn消息做提醒,不过这个似乎要经过微软验证和授权);还有自己的基于msn的p2p应用,叫做Activity(比如写个小游戏之类的,底层通讯是走msn协议,但是不经过服务器),但是目前不支持2人以上,而且同样要经过微软的检查和授权才可以最终发布。
Part 4. Virtual Earth
这个似乎没啥新鲜的东西了,和google那套差不多。不过接口更开放一些,而且可定制的东西更多(可以自己定义3D模型放在自己的地图上),有一大堆服务器端控件可以用,js的似乎也有(记不太清楚了)。现场做了一些demo,比如嵌入一个地图(居然显示了实时的天气情况,3D的,云层,很酷……);西雅图的建筑基本都3D话了,可以直接在里面walkthrough;在自己的应用中设定起点终点,然后画出行车路线图。
有人问这个和google嵌入应用的区别在哪里,他说主要在于license方面、3D方面等等。
Part 5. Live Search
主要就是一些开发接口,同样需要去注册一个appID,然后就可以通过形如: http://api.search.live.net/xml.aspx?Appid=xxxx&query=xxxx这样的request直接取到搜索结果;当然这是xml形式的结果,还有其他形式的通过不同的页面,比如json.aspx
转载于:https://www.cnblogs.com/erucy/archive/2008/11/27/2416082.html
Live Services Jumpstart第一天相关推荐
- Web Services模式——第一部分:基本数据类型
作者 Dennis Sosnoski译者 崔康 发布于 2009年3月25日 下午6时0分 社区 Java, SOA 主题 XML 数据绑定 标签 数据绑定 XML 消息交换是大多数web服务的基础, ...
- 《RESTful Web Services》第一章 使用统一接口
序言 HTTP是一种应用层协议.SOAP和一些Ajax Web框架都将HTTP作为一种传输信息的协议,难以充分利用HTTP层的基础设施. 1.2 如何保持交互的可见性 可见性是HTTP的一个核心特征. ...
- IDEA Run DashBoard(services)显示
IDEA Run DashBoard(services)显示 第一步:view-Tool Windows-services 第二步:第一步完成之后 底下会出现services控制台(dashboard ...
- linux中典型文件档案分析
/etc/passwd 中一行记录的最后一个字段(字段间以:分割)为对应用户登录后取得的默认shell.倒数第二个字段为登录后默认的当下工作目录,即pwd查看到的目录. /etc/services 中 ...
- sed教程入门与实例练习(一)
UNIX 世界中有很多文本编辑器可供我们选择.思考一下 - vi.emacs 和 jed 以及很多其它工具都会浮现在脑海中.我们都有自己已逐渐了解并且喜爱的编辑器(以及我们喜爱的组合键).有了可信赖的 ...
- Docker-Compose快速部署开源网盘系统Tank蓝眼网盘系统
Docker-Compose快速部署开源网盘系统Tank蓝眼网盘系统 前置条件 请在操作系统上安装Docker及Docker-Compose 保证足够的磁盘空间 编写脚本 将下列文本在指定目录中,目录 ...
- 通用线程 -- sed 实例
通用线程 -- sed 实例,第 1 部分 Daniel Robbins, President/CEO, Gentoo Technologies, Inc. 2001 年 10 月 在本文章系列中, ...
- nginx+docker+gunicorn+flask部署到云服务器
项目结构图: app:app 第一个app是文件名,第二个app是flask实例 1. nginx 安装:apt instll nginx 配置:在/etc/nginx/conf.d/目录下新建配置文 ...
- Docker基础30--6.4 Docker三剑客之Swarm
6.4 Docker三剑客之Swarm Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案.使用它,用户可以将多个 ...
最新文章
- django_2.0_请求处理
- C语言标准库函数getenv的实现
- reduction_indices的用法
- Groovy 设计模式 -- 借贷
- Modbus协议栈开发笔记之一:实现功能的基本设计
- 解决“添加删除程序”里面隐藏问题
- 09 - java 包命名规范
- 编译器前端概述与可信编译器
- 开发必学的验证码,教你从零写一个验证码
- XtraBackup备份mysql5.1.73
- 软件工程基础 实验1《可行性研究与项目计划》
- 干货分享|Compare essay的写作方法
- SpringCloud基础学习
- 618,拼多多玩起流量没阿里、京东啥事了
- JavaWeb项目(登录注册页面)全过程详细总结
- uniapp封装多图上传
- Java Annotation 应用 -- 导出Excel表格
- 微信群如何引流最快?微信群裂变引流工具首选这款
- MQ报错 (inequivalent arg ‘durable‘ for exchange ‘xxxxx‘ in vhost ‘/‘: received ‘false)
- 【Java基础】NoClassDefFoundError 和 ClassNotFoundException的定义及其区别
热门文章
- SpringBoot+Dubbo+Zookeeper分布式项目打包时子模块依赖找不到解决方案
- _ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe26deta
- 有声电子书成市场新宠 影响人们阅读习惯
- centos7 安装vnc(服务端)
- 服务器和lamb架构
- 9寸触屏 电影中曝光诺基亚首款平板Z500
- 用遥控器的例子逐步介绍命令模式
- RK3566,ES7202声卡驱动添加
- HTML学生个人网站作业设计——中华美食(HTML+CSS) 美食静态网页制作 WEB前端美食网站设计与实现
- mysql索引视图实验总结_视图和索引的创建和使用实验报告