安全:涉及到会员敏感信息,需要通过加密来实现。签名不可否认,如果不需要解密,推荐使用Md5加密。如需解密,可以通过DES加密或者RSA加密。
超时:任何一种接口方式,都必须提供超时机制。
监控:对于接口是否OK,要做到可监控,上线后,要对接口进行监控;内部调用与需要有日志与监控,有频度控制,有调用者服务器的应用名和IP等信息记录。
压力:需要考虑压力情况,要做压力测试。
协议:建议分两类协议,短连接与长连接,高频的走长连接,使用ICE等协议,次高频(调用不频繁)建议用HTTP接口或者RESTful HTTP风格的接口等,不建议走RMI。
性能:提供的服务接口,需要经过性能测试,并符合性能规范。线上提供的接口服务能满足性能要求。客户端需要考虑有访问超时控制,服务器端需要考虑调用频率超高时的自我保护控制。
权限:控制不同应用之间交互有权限控制,而不是调用者硬编码写死;服务提供提要有调用者检查,如APPID,APPKEY;权限要明确是应用级隔离还是用户级隔离,集中登记这些信息。
SSO: 不同系统间用户实现SSO,基于OPENID或OAUTH等统一的协议,实现 内部系统的SSO。实现可以用UDB部门提供的SSO免登录。
内外区分:外部应用与内部应用之间安全隔离。
传输数据格式:推荐使用JSON,XML做为数据交互。
------------------------------------------------------------------------------------------------------------
职责分离
1.横向--层
部门推荐的分层方式
展示层 | Action | 基于一个UC封装一组事件,完成该UC的功能 |
业务层 | Service | 封装基于UC的业务操作,负责组装对象或者判断业务规则,调用服务层的Service,不能复用 |
服务层 | Service | 细粒度,可重用的,处理核心领域模型 |
持久层 | DAO | 封装数据库操作 |
2. 纵向--模块
业务设计中统一概念,从领域中提炼,细化领域模型,避免super service,service模块化。比如联保对于团成员就抽取出GroupMemberChangeService,GroupMmeberInfoQueryService