出自Yahoo_cn_wiki
NCP基本概念
目录 |
NCP的基本组件
NCP页面和NCP站点
NCP为应用提供了一个基于Web的运行环境,允许应用以HTML模块的形式嵌入NCP输出的页面。这些由NCP应用模块所组成的页面称为NCP页面。
以雅虎站长天下为例,用户可以在自己的站点中创建和维护多个NCP页面,然后选择喜欢的模块嵌入到页面中。这些能够容纳NCP页面的站点称为NCP站点。
NCP应用和模块
一个应用可能会被很多用户使用,例如在站长天下中,原创文章、视频分享等都是非常基础的应用,它们被成千上万的站长所使用。这些应用以不同的实例存在于不同的站点中,每一个实例称为一个模块。
象Hello, World这样的应用,显示的是静态的内容,每一个模块的展现都是相同的。但是原创文章、视频分享等应用,不同的模块显示的是不同的内容,也就是说这些应用是支持多实例的。
站点、页面、模块和应用的关系可以用下图表示:
用户角色和访问控制
某些应用中需要对内容或功能的访问进行用户权限的控制,例如公告板中只允许站长或管理员对公告内容进行修改,而普通用户只能浏览。
NCP中定义了一些基本的用户角色,这些角色包括:
- 站长
- 该站点的创建者,拥有添加、删除和设置模块等基本权限。
- 管理员
- 由站长任命,可以对本站的页面进行管理,拥有添加、删除和设置模块的权限。
- 会员
- 由站长或管理员批准加入站点的正式成员,不具有任何的页面或模块管理权限。
- 普通用户
- 非本站正式成员,分为已登录状态和未登录状态,对于已登录的用户,NCP会将其用户ID传递给应用。
对于上述用户角色,NCP只定义了页面、模块的管理权限,并不对具体应用的功能权限进行定义。
NCP每次调用应用的回调接口时,都会将当前请求的用户角色及用户ID传递给应用。应用可以根据用户角色和用户ID自行定义访问控制规则。
应用的展示方式
应用的视图模式
NCP定义了应用的3种展示方式,分别为:标准视图,完整视图和配置视图。
- 标准视图:一般的NCP页面由多个应用模块组成,每个模块只占据页面的部分显示区域,此视图为应用的标准视图。NCP调用应用的回调地址会传递一个y_view_mode,对于标准视图,其值为“box”。标准视图是应用的入口,在标准视图中点击模块中的链接或标题栏,将转到应用的完整视图。
- 完整视图:是应用的完整展现视图,模块占据页面的主要显示区域。NCP调用应用的回调地址会传递一个y_view_mode,对于完整视图,其值为“full”。
- 配置视图:配置视图是对模块参数进行设置的视图,管理员点击模块标题栏的“管理”链接时,即可打开该模块的配置视图。开发者可以根据需要来展示配置视图的内容。目前配置视图只是支持通过iframe来实现,所以对其展现视图不做限制。NCP调用应用的回调地址会传递一个y_view_mode,对于配置视图,其值为“conf”。。
模块内容的嵌入方式
应用服务器输出的内容可以以两种方式嵌入NCP页面中:
- 代码嵌入:NCP对应用的应答进行适当转换,做为HTML代码直接嵌入最终页面中。
- 框架嵌入:NCP将应用输出的页面做为iframe嵌入页面中。
这两种方式各有优缺点,开发者可以自行选择。
NCP和应用的通讯方式
NCP页面的内容是由一个或者多个应用模块组成的,NCP将应用的应答组装成为最终的页面。
下图描述了用户浏览器,NCP和应用之间的通讯过程(针对代码嵌入的方式)。当用户浏览NCP页面时,浏览器向NCP发出HTTP请求,平台会调用此页面中应用的回调接口,然后将各应用的应答结果按照组合成最终的展示页面,返回给浏览器。
在应用回调接口中我们将详细介绍NCP和应用的通讯协议。



