微软最近正在大力推广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第一天相关推荐

  1. Web Services模式——第一部分:基本数据类型

    作者 Dennis Sosnoski译者 崔康 发布于 2009年3月25日 下午6时0分 社区 Java, SOA 主题 XML 数据绑定 标签 数据绑定 XML 消息交换是大多数web服务的基础, ...

  2. 《RESTful Web Services》第一章 使用统一接口

    序言 HTTP是一种应用层协议.SOAP和一些Ajax Web框架都将HTTP作为一种传输信息的协议,难以充分利用HTTP层的基础设施. 1.2 如何保持交互的可见性 可见性是HTTP的一个核心特征. ...

  3. IDEA Run DashBoard(services)显示

    IDEA Run DashBoard(services)显示 第一步:view-Tool Windows-services 第二步:第一步完成之后 底下会出现services控制台(dashboard ...

  4. linux中典型文件档案分析

    /etc/passwd 中一行记录的最后一个字段(字段间以:分割)为对应用户登录后取得的默认shell.倒数第二个字段为登录后默认的当下工作目录,即pwd查看到的目录. /etc/services 中 ...

  5. sed教程入门与实例练习(一)

    UNIX 世界中有很多文本编辑器可供我们选择.思考一下 - vi.emacs 和 jed 以及很多其它工具都会浮现在脑海中.我们都有自己已逐渐了解并且喜爱的编辑器(以及我们喜爱的组合键).有了可信赖的 ...

  6. Docker-Compose快速部署开源网盘系统Tank蓝眼网盘系统

    Docker-Compose快速部署开源网盘系统Tank蓝眼网盘系统 前置条件 请在操作系统上安装Docker及Docker-Compose 保证足够的磁盘空间 编写脚本 将下列文本在指定目录中,目录 ...

  7. 通用线程 -- sed 实例

    通用线程 -- sed 实例,第 1 部分  Daniel Robbins, President/CEO, Gentoo Technologies, Inc. 2001 年 10 月 在本文章系列中, ...

  8. nginx+docker+gunicorn+flask部署到云服务器

    项目结构图: app:app 第一个app是文件名,第二个app是flask实例 1. nginx 安装:apt instll nginx 配置:在/etc/nginx/conf.d/目录下新建配置文 ...

  9. Docker基础30--6.4 Docker三剑客之Swarm

    6.4 Docker三剑客之Swarm Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案.使用它,用户可以将多个 ...

最新文章

  1. django_2.0_请求处理
  2. C语言标准库函数getenv的实现
  3. reduction_indices的用法
  4. Groovy 设计模式 -- 借贷
  5. Modbus协议栈开发笔记之一:实现功能的基本设计
  6. 解决“添加删除程序”里面隐藏问题
  7. 09 - java 包命名规范
  8. 编译器前端概述与可信编译器
  9. 开发必学的验证码,教你从零写一个验证码
  10. XtraBackup备份mysql5.1.73
  11. 软件工程基础 实验1《可行性研究与项目计划》
  12. 干货分享|Compare essay的写作方法
  13. SpringCloud基础学习
  14. 618,拼多多玩起流量没阿里、京东啥事了
  15. JavaWeb项目(登录注册页面)全过程详细总结
  16. uniapp封装多图上传
  17. Java Annotation 应用 -- 导出Excel表格
  18. 微信群如何引流最快?微信群裂变引流工具首选这款
  19. MQ报错 (inequivalent arg ‘durable‘ for exchange ‘xxxxx‘ in vhost ‘/‘: received ‘false)
  20. 【Java基础】NoClassDefFoundError 和 ClassNotFoundException的定义及其区别

热门文章

  1. SpringBoot+Dubbo+Zookeeper分布式项目打包时子模块依赖找不到解决方案
  2. _ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe26deta
  3. 有声电子书成市场新宠 影响人们阅读习惯
  4. centos7 安装vnc(服务端)
  5. 服务器和lamb架构
  6. 9寸触屏 电影中曝光诺基亚首款平板Z500
  7. 用遥控器的例子逐步介绍命令模式
  8. RK3566,ES7202声卡驱动添加
  9. HTML学生个人网站作业设计——中华美食(HTML+CSS) 美食静态网页制作 WEB前端美食网站设计与实现
  10. mysql索引视图实验总结_视图和索引的创建和使用实验报告