中国联通云门户项目流程服务项目开发及编码规范中国联合网络通信集团有限公司2019-10-17中国联通云门户流程服务项目项目开发及编码规范第2页共69页产权说明本文件中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,任何个人、机构未经授权许可,不得复制或引用本文件的任何片断,无论是通过电子形式或非电子形式。中国联通云门户流程服务项目项目开发及编码规范第3页共69页文档信息项目名称:中国联通云门户项目项目经理:肖永威文档版本号:v1.1项目阶段:设计阶段文档版本日期:2012年12月120日起草人:张玉明起草日期:2012年12月13日评审人:评审日期:评审方式:会议评审【】、邮件评审【】版本历史版本号版本日期作者说明v1.02012-12-13张玉明创建文档v1.12012-12-17张玉明修订文档,增加WS配置classpath增加流程建模复用组件配置及使用规范v1.22012-12-18张玉明增加4.5Identifiers数据提取v1.32012-12-18张玉明、刘彦利增加3.3.5方法集和命名空间v1.42012-12-20张玉明增加4.84.9节v1.52013-01-22张玉明增加3.3.7节中国联通云门户流程服务项目项目开发及编码规范第4页共69页目录错误!未找到引用源。中国联通云门户流程服务项目项目开发及编码规范第5页共69页1概述指导云流程服务项目开发,提供设计、开发、编码的参考、执行规范。1.1目标规范项目各环节实施、开发、编码规范,以及故障处理、调优问题汇总记录。此文档会在整个项目实施过程中不断维护,保持版本更新。1.2名词解释CordysCWSRESTBinLog2功能设计2.1页面设计2.1.1页面设计一般原则2.1.2XFORM开发原则2.1.3菜单菜单项应当赋予角色,而不是直接赋给用户中国联通云门户流程服务项目项目开发及编码规范第6页共69页2.1.4调试可以使用fiddler、httpwatch、firebug、IEdeveloperToolbar来对Http请求及JS脚本进行调试和性能调优。2.2数据库设计2.2.1原则数据库设计必须符合第一范式。数据库只保留基本逻辑约束,包括以下方面:主键主子表关联外键约束属性表不添加外键约束。所有数据库设计的内容体现在数据模型文档中,针对特定字段的约束体现在该字段的属性和注释中,需要特别说明的,可以在物理模型图中加Notes。注意:由于本项目中使用的是CordysBOP平台产品,在BOP中能够提供API来解决的或者可以通过查询平台系统表提取数据的,原则上不要再增加新表来辅助设计和逻辑实现,以避免后期与应用耦合性过高。2.2.2主键以单一整形或字符串类型字段做主键。2.2.3关联当一个表通过外键引用另一个表时,往往主表的删除意味着相关记录的删除,如果确认这里的业务逻辑是正确的,而且没有其他的影响,可以使用“级联删除”选项来简化代码,但必须在相应的数据库模型上有所体现。同样的,“级联更新”也起到类似的作用。中国联通云门户流程服务项目项目开发及编码规范第7页共69页2.2.4触发器对于一些简单的,基本业务无关的数据操作,可以使用触发器来实现:比如生成序列号。但业务相关的,复杂的逻辑,则避免在触发器中实现。2.2.5索引对于查询频度远高于修改的数据表,或者需要经常对查询结果排序的表,创建相应的索引。2.3流程设计2.3.1原则以详细设计为准,模型设计摘要如下。1.创建流程模型时修改流程的namespace,如下所示:泳道颜色使用双色交替,循环使用cordys提供的第1个颜色和第2个颜色,3.泳道间的间距1px4.泳道的长度要统一5.decision的描述用“...是否...”,条件描述为“是”“否”,摆放位置应在连接线的起始端,水平连线上方、垂直连线右侧,偏移位移在5px以内6.当decision的出口在3条或3条以上,根据实际业务情况进行描述7.活动节点间的连线,水平或垂直平行时用直线,除此之外用带直角的连线8.group组件上下边框应大于泳道边界1px,group的描述有实际的业务含义9.流程中的组件大小用default。如果文字太多(超过50字时),可根据实际情况调整10.相同组件的大小在同一流程模型中保持一致11.流程的起始位置在上方,结束位置在下方中国联通云门户流程服务项目项目开发及编码规范第8页共69页循环中驳回节点尽可能共用,以减少驳回节点个数3项目构建与编码规范本项目开发基于CordysBOP4.1平台进行开发。Cordys层使用SOAPWS进行服务开发,中间层使用RESTful的WS对外暴露资源和服务。REST风格的WS使用JbossResteasy作为框架的基础上进行开发,开发测试服务器使用ApacheTomcat7.0,JDK统一使用1.6,Eclipse需要eclipse-jee-juno版,并整合CordysCoE插件作为WS开发IDE。开发数据库使用MySQL5.5+,推荐使用5.5.19版,生产环境使用MySQLMaster/Slave模式,前端连接使用MySQLProxy模式进行JDBC连接。开发工程包DEMO中提供了Ant打包脚本,方便进行服务打包,第三方常用的lib库则都包含在EIPDEMO工程中,请避免使用其他版本的库。每个EIP服务的客户端是一个Jar文件,命名为XXX_impl.jar,最新的客户端jar文件以现网运行的版本为准。开发工程包请向开发人员索取。3.1项目开发工具一览表平台:CordysBOP4.1Cu7MySQLServer:MySQLServerCommunity5.5.19EclipseIDE:eclipsejavaeejunowithCordysCoEpluginSvnplugins:EclipseupdatesiteURL::NavicatforMySQL10.0.11enterpriseeditionWebContanier:ApacheTomcatv7.0WebBrowser:GoogleChrome最新版,MozillaFirefox,IE8+,推荐使用Chrome浏览器进行开发。SSH客户端:Xmanager3.0+,SecureCRT7.0,推荐使用XME3.0,可以直接使用图形界面,FTP客户端:Xftp,FilezillaXML格式化工具:foxe(XML格式化工具)、XPathVisualizer1.3.0中国联通云门户流程服务项目项目开发及编码规范第9页共69页文本编辑工具:Notepad++6.22…3.2开发资源及服务器信息3.2.1SVN服务器1、项目开发服务器地址:项目开发人员帐号,联系配置管理员获取。开发服务器管理员帐号:远程桌面:adminstrator密码:联系相关人员IP:10.64.6.98SVN客户端需使用TortoiseSVN1.7.*2、公司SVN服务器:项目根路径:注意:本节以下所述SVN地址均相对此项目SVN根路径中国联通云门户流程服务项目项目开发及编码规范第10页共69页开发工程SVN地址:Cordys中CWS创建项目工程时绑定的SVN地址:00Developing/02code/cloudbpm/trunk/projects/bpm-cordys-cws-allCordys中CWS中创建的Java代码在Eclipse中编辑时,需下载Eclipse工程,下载地址:00Developing/02code/cloudbpm/trunk/project/bpm-cws-java项目基础类库开发的Eclipse工程SVN地址:00Developing/02code/cloudbpm/trunk/project/bpm-common项目REST服务开发的Eclipse工程SVN地址:00Developing/02code/cloudbpm/trunk/project/bpm-rest项目java版本SDK开发的Eclipse工程SVN地址:00Developing/02code/cloudbpm/trunk/project/bpm-sdk-java项目php版本SDK开发的工程SVN地址:00Developing/02code/cloudbpm/trunk/project/bpm-sdk-php类库Jar包发布地址项目基础类库编译后jar包发布的SVN地址:00Developing/02code/cloudbpm/trunk/projects/bpm-cordys-cws-all/rest-ws/Java/JavaArchives/bpm-lib第三方厂商-HP提供的类库发布的SVN地址:00Developing/02code/cloudbpm/trunk/projects/bpm-cordys-cws-all/rest-ws/Java/JavaArchives/hp-eip-lib开发工具下载地址00Developing/02code/cloudbpm/trunk/tools版本标签创建地址00Developing/02code/cloudbpm/tags/注意:各模块在模块目录下创建版本标签个人目录地址:00Developing/04personal每人的文件夹下有三个文件夹根据每天的任务,将相应的成果放到这三个文件夹里每天都得将当天成果放入文件夹中提交,并在svn备注中写明当天提交的是什么,多少个功能点3.2.2CordysBOP4开发服务器CordysBOP4:中国联通云门户流程服务项目项目开发及编码规范第11页共69页服务器访问地址位置:黑龙江集成公司按开发人员建立租户,在各自的租户下进行开发开放服务:SSHFTPMySQL数据库:数据库名:eipdb数据库地址:10.64.8.149端口:3306用户名:eip_app1密码:TrueTomcatServer:地址:10.64.8.149端口:8080管理用户:admin/adminwebappRoot:/usr/local/tomcat-7.0.33/webappsFTP用户用户:ftpuser密码:ftpTrueCordysBop集团服务器:访问地址位置:集团按开发人员建立租户,在各自的租户下进行开发中国联通云门户流程服务项目项目开发及编码规范第12页共69页3.3CordysBOP平台3.3.1测试环境租户建立规范EIP云门户端是按省分分配的应用ID。EIP云门户中的‘EIP应用ID’、‘EIP租户ID’与Cordys流程平台中的‘CARS租户’的对应规则为:‘EIP应用ID’-‘EIP租户ID’=‘CARS租户ID’由于Cordys中租户为LDAP的DN格式,所以‘CARS租户ID’对应的‘CARS租户DN’为:cn=zhangym195,cn=organizationalusers,o=CARS租户ID,cn=cordys,cn=defaultInst,o=chinaunicomsi.cn例如:EIP中的某XX系统的应用ID为na999,某YY的租户ID为hl328,其对应的Cordys中的租户ID为hl328-na999,对应的Cordys中的租户DN为:cn=zhangym195,cn=organizationalusers,o=hl328-na999,cn=cordys,cn=defaultInst,o=chinaunicomsi.cn3.3.2CWS项目