微软最近正在大力推广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