From SJTU Developers
Jump to: ,
Canvas App Developement Mannual/门户应用开发指南将详细阐述上海交通大学门户(简称门户、Canvas)下第三方应用(简称应用、App)的基本概念、UI集成技术、API接口技术和一些开发的最佳实践。
面向上海交通大学门户应用的开发者提供技术支持文档和实验环境。
Contents
基本概念
与传统的企业信息门户EIP(Enterprise Information Portal)相比,Canvas本身并不支持Java Portlet或.NET WebPart等集成技术,而是采用较为灵活的Mashup技术。选择Mashup的一个理由参见,以此来解决传统门户的性能、难以深度整合的问题,提高分布式计算的能力,并提供一个SaaS平台。Canvas不支持用户自定义UI和布局,UI和布局的设计在开发时完成。
Canvas提供社交功能的支持,以此作为API开放平台的基础,具体参见后续章节。
Canvas提供应用市场的机制,为第三方应用提供低耦合、自助的接入方式。第三方应用只需要遵循一定的标准即可方便的和门户做UI层的集成。
工作区/Workspace
工作区/Workspace,对于应用而言,作为一个租户的概念存在。

个人工作区是一个特殊的工作区,该工作区并不存在Id标识,用于展示用户相关的的信息,并且用户在此获得服务。
其他的所有工作区的产生,依赖于用户的岗位所在的部门。
一个用户可能隶属于多个部门,比如某用户同时在不同的部门任不同岗位,或者一个在职博士同时是另一个部门的老师,所以门户允许用户切换工作区。
与个人工作区相反,其他的工作区作为用户提供服务、办公的环境存在。
工作区的菜单将会随工作区的变化而变化。关于菜单及其变化规则的解释,详见后续章节。
工作区是一些人的集合,所以工作区是一种特殊的圈子/circle(参加下节)。
圈子/Circle
圈子/Circle,用来表示社交系统中,表示一些人的集合。
圈子的概念仅出现在API中,并不对直接最终用户可见。
圈子按照性质不同,有多种性质的表现,其中主要包括:工作区/workspace、群组/group、列表/list等。
群组表示一组人之间彼此认识且平等,比如一个教学班;而列表则是一种单向关系,比如某用户的一个关注列表。
人和人之间的关系通过圈子发生,任何人之间并不直接发生关系。
人和圈子直接存在4种关系,分别是:拥有/has,属于/in,信任/trust,拒绝/mute。
一个用户has一个群组,表示该用户是该群组的管理员;同样用户可以has一个或多个列表。
一个用户和一个群组in关系的改变,需要一定的业务流程,比如申请加入、批准等;而一个用户属于一个列表,是该列表has者的个人行为,与该用无无关。
trust表明,该用户是该群组的友人,虽然并属于/in这个群组。trust是一个比in稍弱的联系。
拒绝/mute一个列表的一个典型应用场景是黑名单;同样用户也可以mute一个群组。
应用
传统的关于管理信息系统/MIS,往往作为独立的Web站点而存在。
对与这种按照功能划分的应用体系,我们的理念是:
按照MIS系统应用场景的不同,用户大致可以分成两类:使用MIS系统提供服务的用户和享受服务的用户。
提供服务的用户,比如各个职能部门的一线工作人员,这类用户会专注于特定MIS的使用,工作区给这类用户提供了隔离性较高的Workspace。
使用服务的用户,比如普通教师或者院系领导,这类用户需要经常跨各个MIS系统来使用,因此应用的概念系统能给这类用户提供一站式的服务。
应用/app,为了和门户在UI和API上有更好的整合,需要遵循一定的规范。
如下图所示(此处仅作简单介绍,后续章节有详细说明):

UI上和应用相关的主要有三部分内容:
绿色区域:应用列表,在门户内置的应用市场中,用户可以自行选择安装;工作区管理员可以指定工作区安装
红色区域:应用菜单,通过约定的接口实现,具体参见SJTU Canvas Sitemap
蓝色区域:应用内容,通过IFrame或HTML方式嵌入。现阶段只支持IFrame方式
应用还可以通过Widget或Api与门户交互,将来后续介绍。
开发流程
应用和门户集成的过程主要是:
现阶段(2013年9月份前)尚无工具辅助此过程,门户应用的开发申请需要直接与网络信息中心开发部联系。
应用注册
应用注册对开发者而言,将获得一个应用的id和key。
这个app的id和key即:*JAccount & OAuth/上海交通大学单点登录与授权所提供。但反之不然,即拥有jaccount不表示可以开发门户应用。
此id和key除做SSO登陆外,还用于访问SJTU开放API
权限/服务申请
可选。
应用可以选择需要使用的基础服务。参见
数据交换服务,需额外申请
通知/notification服务,如果用到邮件或者短信渠道,需要申请绑定计费帐号
结构化存储/file服务,需要额外申请存储空间
(待定)消息队列服务,需申请开通的消息类型和开发包
应用配置
设置应用的宽高
高度支持3种类型:
固定高度
自动高度,自动调整适应应用内容。需要引用canvas jssdk
窗口高度,自动调整适应浏览器。
宽度支持3种类型:
默认宽度:800px,如上图的蓝色区域
完全宽度:1000px,左侧绿色区域自动隐藏
固定宽度
应用上线
决定应用是否在应用市场可见
UI集成
应用集成到门户中
即前面提到的三部分:
应用列表
应用菜单
内容区域
门户集成到应用中
采用Widget的方式。
CanvasEditor
用户名片
群组选择
API集成
Canvas APIs
Canvas javascript sdk
sdk引用地址
请在body开头引用如下代码。
djsd.js js.id = id;
js.fjs.documentscript>
最佳实践
Retrieved from "http://developer.sjtu.edu.cn/wiki/CanvasManual"