如何使用Powerdesigner建立多个数据源?

YANGYANG111310 2009-01-05 11:37:07
如何使用Powerdesigner建立多个数据源?具体怎么操作??
...全文
470 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenery 2009-04-09
  • 打赏
  • 举报
回复
建立一个文件夹,为每个数据源做一个PDM图。
再新建一个空的PDM图,合并前面的PDM。
在 TOOLS-》Merge Model
我这样好维护
gosling 2009-04-07
  • 打赏
  • 举报
回复
可能先建好一种数据源的PDM,然后再复制一个副本,然后把这个副本的数据源改一下就OK了!
只是同步很马烦,要每同时维护这两个PDM!
不知大家还能不能提供更加好的方式!
lihan6415151528 2009-02-25
  • 打赏
  • 举报
回复
...这都能推荐
xhan2000 2009-01-06
  • 打赏
  • 举报
回复
一个PDM一个数据源
分了三个压缩包,请分别下载 本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析建模的最新成果,是市场占有率最高的软件分析建模平台。它将需求模型理论、业务流程理论、实体联系理论、统一建模理论贯穿其中,实现了业务建模、数据建模和应用程序建模的无缝集成。 第1章 软件分析建模基础 1.1 软件分析建模概述 1.2 业务建模概述 1.3 数据建模概述 1.3.1 概念数据模型 1.3.2 物理数据模型中的物理图 1.3.3 物理数据模型中的多维图 1.3.4 XML模型 1.4 应用程序建模概述 1.4.1 用例图 1.4.2 类图、对象图、组合结构图和包图 1.4.3 时序图、通信图、状态图、活动图和交互纵览图 1.4.4 组件图和部署图 1.5 辅助建模工具概述 1.6 分析建模实例 1.6.1 学生上机系统的业务建模 1.6.2 学生上机系统的数据建模 1.7 最具影响的软件分析建模平台 1.7.1 Sybase公司的软件分析建模平台简介 1.7.2 IBM公司的软件分析建模平台简介 1.7.3 CA公司的软件分析建模平台简介 1.7.4 Microsoft公司的软件分析建模平台简介 第2章 PowerDesigner软件分析建模的基本概念 2.1 PowerDesigner概况 2.1.1 软件分析建模需要安装的软件 2.1.2 PowerDesigner能够完成的分析建模工作 2.1.3 PowerDesigner启动时的界面 2.1.4 PowerDesigner新建模型的步骤 2.1.5 模型类型的图标及扩展名 2.1.6 PowerDesigner的工具选项板 2.1.7 PowerDesigner模型对象的特性窗口 2.1.8 PowerDesigner模型对象的列表窗口 2.1.9 PowerDesigner检查模型的相关窗口 2.2 PowerDesigner的公共资源 2.3 模型间的生成和跟踪关系 2.3.1 模型、外部系统间的关系 2.3.2 各种模型与需求模型间的跟踪关系 2.4 模型对象的快捷方式 2.4.1 快捷方式的目标对象 2.4.2 产生快捷方式的方法 2.5 模型对象的复制品 2.5.1 复制品的源对象 2.5.仑产生复制品的方法 2.5.3 修改复制特性 2.6 模型的比较与合并 2.6.1 比较模型 2.6.2 合并模型 2.7 模型的影响分析 2.7.1 产生用户定义事件的方法 2.7.2 从企业知识库中提取模型的交叉依赖 2.7.3 改变影响传播的集合 2.8 模型对象的映射 2.8.1 模型对象映射的基本知识 2.8.2 启动映射编辑器的方法 2.8.3 映射编辑器界面 2.8.4 在映射编辑器窗口产生映射的方法 2.8.5 修改映射语法的方法 2.8.6 从对象特性窗口创建映射的方法 2.9 模型间生成的连接 第3章 PowerDesigner的基本操作 3.1 分析建模环境的设置 3.1.1 设置环境选项 3.1.2 通用工具条 3.1.3 预定义符号工具条 3.2 模型对象操作 3.2.1 模型对象的图形符号 3.2.2 修改模型对象的显示参数 3.2.3 模型图形的打印 3.2.4 模型图形的导人和导出 第4章 需求模型及PowerDesigner实现 4.1 建立RQM的方法 4.1.1 RQM中的包 4.1.2 设置RQM的环境 4.2 需求文档视图 4.2.1 需求特性窗口的General选项卡 4.2.2 需求特性窗口的Detau选项卡 4.2.3 需求特性窗口的Traceabilityunks选项卡 4.2.4 需求特性窗口的UseiAllocations选项卡 4.2.5 需求特性窗口的其他特性选项卡 4.3 追踪矩阵视图 4.4 用户分配矩阵视图 4.5 RQM的有效性检查 4.6 需求与设计对象的连接 4.6.1 在需求上连接设计对象 4.6.2 在设计对象上连接需求 4.7 需求与设计对象的导人与导出 4.7.l把需求导出到设计模型中 4.7.2 把设计对象导人到RQM中 4.8 RQM与MSWord文档的信息交换 4.8.1 把Word文档导人到RQM中 4.8.2 把RQM导出到Wor.d文档中 4.8.3 更新RQM或Word文档 4.8.4 断开RQM与Word文档之间的连接 第5章 业务流程模型及PowerDesignet实现 5.1 BPM的3种图形 5.1.1 业务流程图 5.1.2 流程层次图 5.1.3 流程服务图 5.2 BPM的建立方法 5.3 分析型BP
数据库设计说明书 版本:V1.0 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录 1 引言 1 1.1 编写目的 1 1.2 系统名称及版本号 1 1.3 电子文档编写工具 1 1.4 定义说明与符号 1 1.5 参考资料 1 2 概述 1 3 命名 1 4 实体域设计 2 4.1 担保物 2 4.2 贷款申请 2 5 表模型设计 2 5.1 聚合表Package 2 5.2 xxx Package 2 5.2.1 CDBEC_PM_CONTROL_RECORD (表) 3 5.3 系统管理 3 5.3.1 运行日志 3 5.3.2 系统代码表 3 6 物理设计 3 6.1 数据视图 3 6.2 存储空间规划 3 6.3 冗余设计 3 6.4 索引设计 4 7 数据组织 4 7.1 数据分布方式 4 7.2 数据传输与通讯 4 7.3 历史数据管理 4 7.4 数据量估计 4 引言 编写目的 本文档是对xxx项目数据库模型的概要设计,是进行CDM模型设计的基础。 系统名称及版本号 系统全称: 系统简称: 电子文档编写工具 【说明】工具名、版本号、操作系统平台。使用多种工具时,应分别说明。 Microsoft Office Word Professional Edition 2003 Microsoft Office Visio Professional Edition 2003 Sybase PowerDesigner® Version 9.5 定义说明与符号 【说明】包括对专用术语及缩略语的解释、所用到的图(物理数据模型图/功能层次图/逻辑框图/流程图等)中图符的表示与解释、屏幕界面中图标与按钮的表示与含义等。 参考资料 【说明】格式:作者,[版本号],资料来源,日期,[起止页号]。其中,《软件需求规格说明书》与《软件概要设计说明书》是必选的参考资料。 概述 模型域划分【说明】数据模型的整体划分原则,分多少个package,为什么如此划分: Package KM临时数据:用于接收KM平移过来的数据 Package 上报数据:按照上报系统的要求存储数据,供修改界面使用 命名 参照《开发银行数据平台命名规范》【说明】项目所引用的规范 项目空间CDBEC 【说明】项目所需建立的schema,如果有多个,要说明各自的用途 表前缀: 数据接收表 STA_【说明】依据规范罗列出本系统所需建立的表前缀 数据存储表 DT_ 系统管理表 SM_ 上报报文数据表 MS_ 上报过程管理表 PM_ 实体域设计 【说明】要确定模型设计的方式:星型、雪花,对于分析应用,可以按照主题域的方式进行实体域的设计 担保物 【说明】 1.从概要层次说明每类实体所反映的业务信息关系,说明实体域有多少实体。 2.通过PowerDesigner 做出实体间的主从关系,主从的数据关系及约束关系 3.在CDM模型中对字段进行解释 贷款申请 表模型设计 聚合表Package 【说明】说明聚合原因,聚合的依赖关系及层次。 xxx Package 【说明】每类package设计的原则 设计该系列表的目的是将数据复制到本地数据库后再进行计算,提高计算速度。如果未来使用数据ETL工具,虽然可以在抽取的过程中就完成大量的计算操作,但是考虑到这种工作方式需要相关系统都在线的情况下才能进行计算处理,对开发调试的环境要求较高,并且在上线运行后如果出现故障,还需要相关系统调整到位的情况下才能重新运行,因此在源到目标的数据移动过程中不进行复杂的数据运算,并且在本地保留接口数据表。 按照计算中需要从KM获取的数据表和数据项内容,进行设计,实现数据的简单平移。该部分模型需要参照目前有效发放系统、Symbols系统的表结构、命名、数据类型。 因为上报中要求对变更进行上报,当采集系统不能提供变更情况时,需要上报系统根据当天数据和前一次存储的数据进行比较之后才能知道发生了哪些业务变更。因此本系列的表需要对上报的数据保存本期和两期的数据。 CDBEC_PM_CONTROL_RECORD (表) 【说明】有特殊设计原因的表的用途,辨别此类表的方法:非业务数据存储表、实体域间的关联表、或设计规范中没有定义过的。注意不是简单解释字段的含义,而是要说明未来的系统如何使用这张表,以及表的变化更新情况 存储上报数据的概要汇总信息,每条上报数据在本表中有一条对应的存储记录。该表供查询界面中进行摘要信息显示,系统根据摘要记录再进行后续过程的处理。 在每天数据导入系统后,由系统向此表添加新的需要上报的数据。在xxx情况下该记录将被删除。…… 【说明】在CDM模型中对字段进行解释 系统管理 【说明】除了说明表的用途外,还要说明按照设计规范中的要求引用了哪些标准 运行日志 系统代码表 物理设计 数据视图 【说明】数据库视图、同义词、物化视图、DBLink的建设原因,并阐述是否存在性能问题 存储空间规划 【说明】 1.估算系统的初始数据量,增长量及周期,初始数据空间需求 2.是否建立独立的表空间,索引空间,临时表空间,使用的表空间名称 3.是否需要分区存储,哪些表进行分区存储,分区方案 冗余设计 【说明】 1.说明什么情况下进行了哪些数据项的冗余设计及原因 2.说明冗余设计后保证数据一致性的方案,如要求应用系统同步多处修改,还是系统提供变更服务 索引设计 【说明】 说明主键以外的索引原因 数据组织 数据分布方式 【说明】如集中式、分布式、混合式(集中+分布)。用图表予以描述。【说明】采用表格方式,应与数据量分布表对应。形如: 子系统名: 实体名 保存期限(天) 存放位置 CDBKM CDBFR 广域网服务器 数据传输与通讯 历史数据管理 【说明】 历史数据管理方式:备份磁带、备份表、删除 历史数据检索方式、数据恢复方式 历史数据操作方案 数据量估计 【说明】使用表格+文字的方式,对每个子系统进行估计。形如: 子系统名: 实体名 数据总量(KB) … … 本子系统数据总量= 占空系数= 预计数据量= 这里,预计数据量=本子系统数据总量×占空系数 其中,占空系数表示实际开销与理论开销之比值。其值可根据具体项目及运行环境而定,如可取1.5至2.5。
这是2003年得一个作品,陆续做了基本得功能,当初做这个只是一时性起,帮朋友讲解树型得数据结构,并写了个简单得例子,但后来还是作成一个软件。该程序功能已经实现,并且可以正常使用,但是‘最爱’收藏夹还有一些问题,一直没有修改过;另外,ADO方式写二进制数据到表里,速度确实太慢了。当时得能力有限,很多代码未很好得设计,可以重构得地方很多,程序可以给初学者作为参考。//////////InfoBase 0.2 Beta Build 20031119开发日志这是我续 ASPDecoder(ASP反编码 delphi版) 之后很长时间的又一个作品;目前还在开发期间,完成度80%。如果你对程序的功能或者是程序的错误上有建议,请给作者发信。开发前: 作者学习delphi 过程中见过很多类型的资料管理软件,比如myBase 是非常典型的软件,myBase 的作者的编程功底很深,myBase做的非常实用;并且带上好几兆的Delphi 开发资料。所以我也想自己写一个这样的文档资料管理软件。一来可以锻炼自己的编程能力,因为很多软件看到功能自己能想出实现方法,但往往只是在想,而没去做,这样可不行。二个就是,这类软件做的好的基本上都需要收费。 但这些都不是促使我去编写InfoBase的目的。而是因为我的室友兄弟们也在学delphi,正学到树型,缺少一个树型的好算法;所以我写了个树型分类打算让他们参考一下,没想到结果还是做成了现在这个样子 :)未实现的功能: 2003.7.8 准备将部分功能模块移植到WEB 上,把一些常用数据信息存储在服务器上,这样无论今后在何地均可使用该软件访问资源。但目前作者缺少服务器资源,是个很头痛的问题,想法在写InfoBase 之前就已经策划妥善。 2003.11.19 准备着重实现“导入功能”,具体涉及所支持的导入类型还在策划中……软件名称: InfoBase 0.2中文名称:信息数据库软件版本: 0.1 Build 20031119 Beta软件作者: Chinasf (萧寒)(S.F.)作者邮箱: Chinasf@hotmail.com软件网站: http://chinasf.cnblogs.com软件语言: 中文应用平台: Win9x/Win2000/WinXP + IE5.0以上软件简介: 1、无限级分类(分类名作为文章头) 2、文档内容支持多种类型,如图片,URL地址,包括任意OLE对象 3、支持选定部分文档内容打印 4、支持自动给代码加颜色(语法加亮) 5、支持将文本内容直接转换为图形 6、支持快速索引定位文章(类似CHM文档索引) 7、支持书签记录(类似CHM文档书签) 8、‘最爱’网站链接收藏功能 9、支持多种打开URL方式 10、支持将URL送如系统收藏夹 11、支持导出到HTML 12、文档支持附件 13、内置浏览器,可浏览网站和浏览附件 14、执行附件文件自动监听 15、数据全程压缩 (new) 还有更多的细节……有问题的功能:..分类的拖动未实现..文本编辑环境功能选项有待加强,并等待bug 信息反馈..打印未实现预览..预计加入代码格式化排版功能..文档内容保存到图象高度计算有误差..其他细节的设计…最爱模块发现小错误更新历史: 2003.7.3 树型分类算法 开始和朋友讨论树型算法,一时兴起,写了个树型结构并做了个示例。2003.7.4 主程序和数据库设计 见自己完成了树型分类和节点的管理代码,感觉不能浪费,便有做InfoBase的想法;开始使用PowerDesigner 建立数据库模型(有点杀鸡用牛刀的味道),并生成数据库文件 (1.0 ?)。 开发环境采用delphi 7.0 Enterprise,使用ADO 连接Access数据库,软件名字也定了,叫做infoBase 。 最后将程序的主框架搭好,并实现了richEdit 的文本读取和保存。2003.7.5 “OLE嵌入、URL捕获、UI、附件监听”(代码的实现) 搞定了richEdit 读取保存后开发增加高级功能,其后写完了插入OLE对象,URL文本捕获,插入图形……最后感觉差不多象个样子了,把主界面的图标,工具条统统更新了一遍,变成了现在这个样子。 吃了晚饭就开始写文件附件功能;搞定了附件存储,又写到凌晨一直在实现文件附件监听……(因为明天是星期天)2003.7.6 “代码着色、索引、书签”(星期天) 加入代码加色的功能和另外一些细节功能。 继续休整代码,和修正遗留的bug。 主要的模块差不多后,准备罢手(我的坏习惯),见室友在看CHM版的水木清华的帖子,感觉索引功能和书签功能很重要,至少自己用的时候方便。赶紧加上。 再看了myBase 一些功能后,模仿它加上了一些典型的功能,增加了一个内置的浏览器,用于浏览N格式的附件。2003.7.7 增加“数据库维护”功能(星期一上班) 上午很早就起床了,结果又去睡……!·##¥%%……差点迟到了。 下班后,在家玩魔兽冰峰王座,过全关一个种族(打了3天),开始写InfoBase的MainMenu (主菜单我一直都没有整理功能,呵呵),Access数据库在删除数据后并不会减少文件尺寸,所以加了几个数据库的维护功能。2003.7.8 新增“开发日志”和“最爱收藏夹”(迟到了) 星期一弄的太晚,结果早上迟到了……罚款:¥20RMB 上午去腾讯社区见个朋友发表了自己写了很长时间的代码; 我想,先把我的这个烂东西也发出去吧,结果公司网络掉线了,只好作罢,把网友的帖子内容和代码都保存了下来放在InfoBase中。 从上个星期修正了NC接口的“最后一个BUG”后,工作上有点闲了(其实还有一大堆工作上的事情我还没解决) 想起见到一个网友写的‘梦幻浏览器’的一个功能模块是类似IE的收藏夹,感觉挺好,在网友的浏览器里叫做“最爱”,我觉得也挺好听,干脆也叫这个,做一个这个功能; 然后一直到写完这个模块后,就开始写这个文档。 目前并未让“最爱”与系统收藏夹互动,功能等到过了今天再实现吧……毕竟源代码.PAS加起来就有199KB 了。2003.11.19 增加“全程压缩”功能(星期三,工作任务下来了,‘重’) 上午,客户递交上来了满满一页的新需求和需求的修正列表,哎!相当痛苦,是整整做了一年的东西啊,什么时候才是尽头…… Infobase自己使用了一段时间,总有些不足的地方,最明显的就是,数据文件的大小。我习惯把代码参考和相关的Code文件都保存下来,结果,数据库越来越大,已经差不多60多兆了,如果某篇文章保存的内容多的话,加载的速度非常慢,并不是程序的问题,而是字段内容太大了,Access数据库必须先读入到内存里,才能把字段的值给我。考虑之后决定采用压缩的方式保存文件数据,并且文本内容也压缩,因为文本格式是富文本格式的,它支持OLE,而OLE的信息格式是相当大的,而压缩算法对文本字符串的压缩比率是相当高的,压缩它是化得来得,但是丢失了一个功能,因为压缩后得数据必须是二进制模式,所以,“全文搜索”功能只能简化到“标题搜索”了。下次再想办法解决“全文搜索”得功能。
软件工程与数据库 课程设计 任务书 学院名称: 数学与计算机学院 课程代码:_6014419_ 专 业: 年 级: 一、设计题目 图书管理系统 二、主要内容 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的 借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续 借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学 生,借阅、续借、归还的确认。如: 图书室有各种图书一万多册。 每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容 简介。 借书证记录有借阅者的姓名、所在单位、职业等。 凭借书证借书,每次最多能借8本书。借书期限最长为30天。 实现新进图书的数据录入。 实现对所有购进图书的分类查询和分类统计。 能够按书名、作者等分类查询现有图书的数量。 记录借阅者的个人资料和所借图书的书名、书号数据等。 三、具体要求 1、完成系统的需求分析 通过需求分析确定系统需要处理的数据的需求,要求使用数据库的辅助设计工具( PowerDesigner等),建立业务处理模型。 2、完成系统概念结构设计 概念数据模型(CDM)用于完成数据库的设计,与人和数据库平台和具体数据存储结构和 工具无关。首先选择局部应用画出分E-R图,最终形成系统的E-R图 3、完成系统逻辑结构设计 按照E- R图转换成关系模式的规则,将CDM转换成逻辑数据模型,并为每个关系模式设计主键、 外键。分析关系模式中的依赖关系,对关系模式规范化处理 4、完成系统物理结构设计 为每个关系分配存储长度,建立数据库的索引和视图,定义关系中的主码和外码,写 出关系创建和查询的SQL语句。 5、编码 选择你自己熟悉的开发工具完成一个DBS系统的编码工作。 源代码格式规范,注释不少于三分之一 四、主要技术路线提示 1.仔细阅读设计指导书内容,认真掌握任务要求(2. 需求分析( 3.概念结构设计( 4.逻辑结构设计(5.物理结构设计(6.编码. 2.后台推荐采用SQL server或Oracle;前台开发环境不限制。可采用ADO,ODBC,OLE DB或JDBC连接数据库, 并调用系统存储过程、自定义存储过程、函数等。 五、进度安排 第1周: 数据库系统概念模型、数据模型设计,创建数据库以及相关对象; 第2周: 前台程序开发,撰写报告,接受检查。 六、完成后应上交的材料 1. 源程序一份(包含数据库) 2. 课程设计报告一份 七、推荐参考资料 1.王珊.数据库系统概论(第四版). 高等教育出版社 2.闪四清.数据库系统原理与应用教程.清华大学出版社 3.周龙骧.数据库管理系统实现技术.中国地质大学出版社 4.张海藩.软件工程概论.清华大学出版社 5.陈明 编著.实用软件工程基础.清华大学出版社 6.成先海.数据库基础与应用-SQL SERVER2000. 机械工业出版社出版 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日 ----------------------- 数据库课程设计--图书管理系统全文共3页,当前为第1页。 数据库课程设计--图书管理系统全文共3页,当前为第2页。 数据库课程设计--图书管理系统全文共3页,当前为第3页。
单点登录, SSM框架公共模块 ├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ├── zheng-config -- 配置中心[端口:1001] ├── zheng-upms -- 用户权限管理系统 | ├── zheng-upms-common -- upms系统公共模块 | ├── zheng-upms-dao -- 代码生成模块,无需开发 | ├── zheng-upms-client -- 集成upms依赖包,提供单点认证、授权、统一会话管理 | ├── zheng-upms-rpc-api -- rpc接口包 | ├── zheng-upms-rpc-service -- rpc服务提供者 | └── zheng-upms-server -- 用户权限系统及SSO服务端[端口:1111] ├── zheng-cms -- 内容管理系统 | ├── zheng-cms-common -- cms系统公共模块 | ├── zheng-cms-dao -- 代码生成模块,无需开发 | ├── zheng-cms-rpc-api -- rpc接口包 | ├── zheng-cms-rpc-service -- rpc服务提供者 | ├── zheng-cms-search -- 搜索服务[端口:2221] | ├── zheng-cms-admin -- 后台管理[端口:2222] | ├── zheng-cms-job -- 消息队列、任务调度等[端口:2223] | └── zheng-cms-web -- 网站前台[端口:2224] ├── zheng-pay -- 支付系统 | ├── zheng-pay-common -- pay系统公共模块 | ├── zheng-pay-dao -- 代码生成模块,无需开发 | ├── zheng-pay-rpc-api -- rpc接口包 | ├── zheng-pay-rpc-service -- rpc服务提供者 | ├── zheng-pay-sdk -- 开发工具包 | ├── zheng-pay-admin -- 后台管理[端口:3331] | └── zheng-pay-web -- 演示示例[端口:3332] ├── zheng-ucenter -- 用户系统(包括第三方登录) | ├── zheng-ucenter-common -- ucenter系统公共模块 | ├── zheng-ucenter-dao -- 代码生成模块,无需开发 | ├── zheng-ucenter-rpc-api -- rpc接口包 | ├── zheng-ucenter-rpc-service -- rpc服务提供者 | └── zheng-ucenter-web -- 网站前台[端口:4441] ├── zheng-wechat -- 微信系统 | ├── zheng-wechat-mp -- 微信公众号管理系统 | | ├── zheng-wechat-mp-dao -- 代码生成模块,无需开发 | | ├── zheng-wechat-mp-service -- 业务逻辑 | | └── zheng-wechat-mp-admin -- 后台管理[端口:5551] | └── zheng-ucenter-app -- 微信小程序后台 ├── zheng-api -- API接口总线系统 | ├── zheng-api-common -- api系统公共模块 | ├── zheng-api-rpc-api -- rpc接口包 | ├── zheng-api-rpc-service -- rpc服务提供者 | └── zheng-api-server -- api系统服务端[端口:6666] ├── zheng-oss -- 对象存储系统 | ├── zheng-oss-sdk -- 开发工具包 | ├── zheng-oss-web -- 前台接口[端口:7771] | └── zheng-oss-admin -- 后台管理[端口:7772] ├── zheng-shop -- 电子商务系统 ├── zheng-im -- 即时通讯系统 ├── zheng-oa -- 办公自动化系统 ├── zheng-eoms -- 运维系统 └── zheng-demo -- 示例模块(包含一些示例代码等) ├── zheng-demo-rpc-api -- rpc接口包 ├── zheng-demo-rpc-service -- rpc服务提供者 └── zheng-demo-web -- 演示示例[端口:8888] ``` ### 技术选型 #### 后端技术: 技术 | 名称 | 官网 ----|------|---- Spring Framework | 容器 | [http://projects.spring.io/spring-framework/](http://projects.spring.io/spring-framework/) SpringMVC | MVC框架 | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc) Apache Shiro | 安全框架 | [http://shiro.apache.org/](http://shiro.apache.org/) Spring session | 分布式Session管理 | [http://projects.spring.io/spring-session/](http://projects.spring.io/spring-session/) MyBatis | ORM框架 | [http://www.mybatis.org/mybatis-3/zh/index.html](http://www.mybatis.org/mybatis-3/zh/index.html) MyBatis Generator | 代码生成 | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html) PageHelper | MyBatis物理分页插件 | [http://git.oschina.net/free/Mybatis_PageHelper](http://git.oschina.net/free/Mybatis_PageHelper) Druid | 数据库连接池 | [https://github.com/alibaba/druid](https://github.com/alibaba/druid) FluentValidator | 校验框架 | [https://github.com/neoremind/fluent-validator](https://github.com/neoremind/fluent-validator) Thymeleaf | 模板引擎 | [http://www.thymeleaf.org/](http://www.thymeleaf.org/) Velocity | 模板引擎 | [http://velocity.apache.org/](http://velocity.apache.org/) ZooKeeper | 分布式协调服务 | [http://zookeeper.apache.org/](http://zookeeper.apache.org/) Dubbo | 分布式服务框架 | [http://dubbo.io/](http://dubbo.io/) TBSchedule & elastic-job | 分布式调度框架 | [https://github.com/dangdangdotcom/elastic-job](https://github.com/dangdangdotcom/elastic-job) Redis | 分布式缓存数据库 | [https://redis.io/](https://redis.io/) Solr & Elasticsearch | 分布式全文搜索引擎 | [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/](https://www.elastic.co/) Quartz | 作业调度框架 | [http://www.quartz-scheduler.org/](http://www.quartz-scheduler.org/) Ehcache | 进程内缓存框架 | [http://www.ehcache.org/](http://www.ehcache.org/) ActiveMQ | 消息队列 | [http://activemq.apache.org/](http://activemq.apache.org/) JStorm | 实时流式计算框架 | [http://jstorm.io/](http://jstorm.io/) FastDFS | 分布式文件系统 | [https://github.com/happyfish100/fastdfs](https://github.com/happyfish100/fastdfs) Log4J | 日志组件 | [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/) Swagger2 | 接口测试框架 | [http://swagger.io/](http://swagger.io/) sequence | 分布式高效ID生产 | [http://git.oschina.net/yu120/sequence](http://git.oschina.net/yu120/sequence) AliOSS & Qiniu & QcloudCOS | 云存储 | [https://www.aliyun.com/product/oss/](https://www.aliyun.com/product/oss/) [http://www.qiniu.com/](http://www.qiniu.com/) [https://www.qcloud.com/product/cos](https://www.qcloud.com/product/cos) Protobuf & json | 数据序列化 | [https://github.com/google/protobuf](https://github.com/google/protobuf) Jenkins | 持续集成工具 | [https://jenkins.io/index.html](https://jenkins.io/index.html) Maven | 项目构建管理 | [http://maven.apache.org/](http://maven.apache.org/) #### 前端技术: 技术 | 名称 | 官网 ----|------|---- jQuery | 函式库 | [http://jquery.com/](http://jquery.com/) Bootstrap | 前端框架 | [http://getbootstrap.com/](http://getbootstrap.com/) Bootstrap-table | Bootstrap数据表格 | [http://bootstrap-table.wenzhixin.net.cn/](http://bootstrap-table.wenzhixin.net.cn/) Font-awesome | 字体图标 | [http://fontawesome.io/](http://fontawesome.io/) material-design-iconic-font | 字体图标 | [https://github.com/zavoloklom/material-design-iconic-font](https://github.com/zavoloklom/material-design-iconic-font) Waves | 点击效果插件 | [https://github.com/fians/Waves](https://github.com/fians/Waves) zTree | 树插件 | [http://www.treejs.cn/v3/](http://www.treejs.cn/v3/) Select2 | 选择框插件 | [https://github.com/select2/select2](https://github.com/select2/select2) jquery-confirm | 弹出窗口插件 | [https://github.com/craftpip/jquery-confirm](https://github.com/craftpip/jquery-confirm) jQuery EasyUI | 基于jQuery的UI插件集合体 | [http://www.jeasyui.com](http://www.jeasyui.com) React | 界面构建框架 | [https://github.com/facebook/react](https://github.com/facebook/react) Editor.md | Markdown编辑器 | [https://github.com/pandao/editor.md](https://github.com/pandao/editor.md) zhengAdmin | 后台管理系统模板 | [https://github.com/shuzheng/zhengAdmin](https://github.com/shuzheng/zhengAdmin) autoMail | 邮箱地址自动补全插件 | [https://github.com/shuzheng/autoMail](https://github.com/shuzheng/autoMail) zheng.jprogress.js | 加载进度条插件 | [https://github.com/shuzheng/zheng.jprogress.js](https://github.com/shuzheng/zheng.jprogress.js) zheng.jtotop.js | 返回顶部插件 | [https://github.com/shuzheng/zheng.jtotop.js](https://github.com/shuzheng/zheng.jtotop.js) #### 架构图 ![架构图](project-bootstrap/architect.png) #### 模块依赖 ![模块依赖](project-bootstrap/project.png) #### 模块介绍 > zheng-common Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。 > zheng-admin 基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`项目所有后台系统都是使用该模块界面作为前端展示。 > zheng-ui 各个子系统前台thymeleaf模板,前端资源模块,使用nginx代理,实现动静分离。 > zheng-upms 本系统是基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。接入的系统可自由定义组织、角色、权限、资源等。用户权限=所拥有角色权限合集+用户加权限-用户减权限,优先级:用户减权限>用户加权限>角色权限 > zheng-oss 文件存储系统,提供四种方案: - **阿里云** OSS - **腾讯云** COS - **七牛云** - 本地分布式存储 ![阿里云OSS](project-bootstrap/aliyun-oss-post-callback.png) > zheng-api 服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该模块支持验签、鉴权、路由、限流、监控、容错、日志等功能。示例图: ![API网关](project-bootstrap/gateway_config.png) > zheng-cms 内容管理系统:支持多标签、多类目、强大评论的内容管理,有基本单页展示,菜单管理,系统设置等功能。 > zheng-pay - 一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的纯粹的支付平台。 - 统一下单(统一下单接口、统一扫码)、订单管理、数据分析、财务报表、商户管理、渠道管理、对账系统、系统监控。 ![统一扫码支付](project-bootstrap/zheng-pay.png) > zheng-ucenter 通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。 > zheng-wechat-mp 微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。 > zheng-wechat-app 微信小程序后台 ## 环境搭建(QQ群内有“zheng环境搭建和系统部署文档.doc”) #### 开发工具: - MySql: 数据库 - jetty: 开发服务器 - Tomcat: 应用服务器 - SVN|Git: 版本管理 - Nginx: 反向代理服务器 - Varnish: HTTP加速器 - IntelliJ IDEA: 开发IDE - PowerDesigner: 建模工具 - Navicat for MySQL: 数据库客户端 #### 开发环境: - Jdk7+ - Mysql5.5+ - Redis - Zookeeper - ActiveMQ - Dubbo-admin - Dubbo-monitor ### 工具安装 环境搭建和系统部署文档(作者:小兵,QQ群共享提供下载) ### 资源下载 - JDK7 [http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html](http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html "JDK7") - Maven [http://maven.apache.org/download.cgi](http://maven.apache.org/download.cgi "Maven") - Redis [https://redis.io/download](https://redis.io/download "Redis") - ActiveMQ [http://activemq.apache.org/download-archives.html](http://activemq.apache.org/download-archives.html "ActiveMQ") - ZooKeeper [http://www.apache.org/dyn/closer.cgi/zookeeper/](http://www.apache.org/dyn/closer.cgi/zookeeper/ "ZooKeeper") - Dubbo [http://dubbo.io/Download-zh.htm](http://dubbo.io/Download-zh.htm "Dubbo") - Elastic Stack [https://www.elastic.co/downloads](https://www.elastic.co/downloads "Elastic Stack") - Nginx [http://nginx.org/en/download.html](http://nginx.org/en/download.html "Nginx") - Jenkins [http://updates.jenkins-ci.org/download/war/](http://updates.jenkins-ci.org/download/war/ "Jenkins") - dubbo-admin-2.5.3 [http://download.csdn.net/detail/shuzheng5201314/9733652](http://download.csdn.net/detail/shuzheng5201314/9733652 "dubbo-admin-2.5.3") - dubbo-admin-2.5.4-SNAPSHOT-jdk8 [http://download.csdn.net/detail/shuzheng5201314/9733657](http://download.csdn.net/detail/shuzheng5201314/9733657 "dubbo-admin-2.5.4-SNAPSHOT-jdk8") - 更多资源请加QQ群 ## 开发指南: - 1、本机安装Jdk7、Mysql、Redis、Zookeeper、ActiveMQ并**启动相关服务**,使用默认配置默认端口即可 - 2、克隆源代码到本地并打开,**推荐使用IntelliJ IDEA**,本地编译并安装到本地maven仓库 ### 修改本地Host - 127.0.0.1 ui.zhangshuzheng.cn - 127.0.0.1 upms.zhangshuzheng.cn - 127.0.0.1 cms.zhangshuzheng.cn - 127.0.0.1 pay.zhangshuzheng.cn - 127.0.0.1 ucenter.zhangshuzheng.cn - 127.0.0.1 wechat.zhangshuzheng.cn - 127.0.0.1 api.zhangshuzheng.cn - 127.0.0.1 oss.zhangshuzheng.cn - 127.0.0.1 config.zhangshuzheng.cn - 127.0.0.1 zkserver - 127.0.0.1 rdserver - 127.0.0.1 dbserver - 127.0.0.1 mqserver ### 编译流程 maven编译安装zheng/pom.xml文件即可 ### 启动顺序(后台) > 准备工作 - 新建zheng数据库,导入project-datamodel文件夹下的zheng.sql - 修改各dao模块和rpc-service模块的redis.properties、jdbc.properties、generator.properties数据库连接等配置信息,其中master.redis.password、master.jdbc.password、slave.jdbc.password、generator.jdbc.password密码值使用了AES加密,请使用com.zheng.common.util.AESUtil工具类修改这些值 - 启动Zookeeper、Redis、ActiveMQ、Nginx(配置文件参考project-tools/nginx下的*.conf文件) > **zheng-upms** - 首先启动 zheng-upms-rpc-service(直接运行src目录下的ZhengUpmsRpcServiceApplication#main方法启动) => zheng-upms-server(jetty),然后按需启动对应子系统xxx的zheng-xxx-rpc-service(main方法) => zheng-xxx-webapp(jetty) ![启动演示](project-bootstrap/start.png) - 访问 [http://upms.zhangshuzheng.cn:1111/](http://upms.zhangshuzheng.cn:1111/ "统一后台地址"),子系统菜单已经配置到zheng-upms权限中,不用直接访问子系统,默认帐号密码:admin/123456 - 登录成功后,可在右上角切换已注册系统访问 > **zheng-cms** - zheng-cms-admin:启动ActiveMQ-启动 => 启动zheng-rpc-service => 启动zheng-cms-admin - zheng-cms-web:启动nginx代理zheng-ui静态资源,配置文件可参考 [nginx.conf](http://git.oschina.net/shuzheng/zheng/attach_files) > **zheng-oss** - 首先启动zheng-oss-web服务 - 开发阶段,如果zheng-oss-web没有公网域名,推荐使用`ngrok`内网穿透工具,为开发环境提供公网域名,实现上传回调 - 启动nginx代理zheng-ui静态资源 ### 开发演示(QQ群内有“zheng十分钟视频:从检出到启动.wmv”) - 创建数据表(建议使用PowerDesigner) - 直接运行对应项目dao模块中的generator.main(),可自动生成单表的CRUD功能和对应的model、example、mapper、service代码 - 生成的model和example均已实现Serializable接口,支持分布式 - 已包含抽象类BaseServiceImpl,只需要继承抽象类并传入泛型参数,即可默认实现mapper接口所有方法,特殊需求直接扩展即可 - BaseServiceImpl默认已实现四种根据条件分页接口 - selectByExampleWithBLOBsForStartPage() - selectByExampleForStartPage() - selectByExampleWithBLOBsForOffsetPage() - selectByExampleForOffsetPage() - BaseServiceImpl方法根据读写操作自动切换主从数据源,继承的扩展接口,可手动通过`DynamicDataSource.setDataSource(DataSourceEnum.XXX.getName())`指定数据源 - 启动流程:优先rcp-service服务提供者,再启动其他webapp - 扩展流程:可扩展和拆分rpc-api和rpc-service模块,可按微服务拆分或场景拆分 ### 部署方式(QQ群内有“zheng十分钟视频:从打包到linux服务器部署.wmv”) - war包项目:使用tomcat等web容器启动 - rpc-service服务提供者jar包:将打包后的zheng-xxx-rpc-service-assembly.tar.gz文件解压,使用bin目录的管理脚本运行即可,支持优雅停机。 ### 框架规范约定 约定优于配置(convention over configuration),此框架约定了很多编程规范,下面一一列举: ``` - service类,需要在叫名`service`的包下,并以`Service`结尾,如`CmsArticleServiceImpl` - controller类,需要在以`controller`结尾的包下,类名以Controller结尾,如`CmsArticleController.java`,并继承`BaseController` - spring task类,需要在叫名`task`的包下,并以`Task`结尾,如`TestTask.java` - mapper.xml,需要在名叫`mapper`的包下,并以`Mapper.xml`结尾,如`CmsArticleMapper.xml` - mapper接口,需要在名叫`mapper`的包下,并以`Mapper`结尾,如`CmsArticleMapper.java` - model实体类,需要在名叫`model`的包下,命名规则为数据表转驼峰规则,如`CmsArticle.java` - spring配置文件,命名规则为`applicationContext-*.xml` - 类名:首字母大写驼峰规则;方法名:首字母小写驼峰规则;常量:全大写;变量:首字母小写驼峰规则,尽量非缩写 - springmvc配置加到对应模块的`springMVC-servlet.xml`文件里 - 配置文件放到`src/main/resources`目录下 - 静态资源文件放到`src/main/webapp/resources`目录下 - jsp文件,需要在`/WEB-INF/jsp`目录下 - `RequestMapping`和返回物理试图路径的url尽量写全路径,如:`@RequestMapping("/manage")`、`return "/manage/index"` - `RequestMapping`指定method - 模块命名为`项目`-`子项目`-`业务`,如`zheng-cms-admin` - 数据表命名为:`子系统`_`表`,如`cms_article` - 更多规范,参考[[阿里巴巴Java开发手册] http://git.oschina.net/shuzheng/zheng/attach_files ``` ## 演示地址 演示地址: [http://upms.zhangshuzheng.cn/](http://47.93.195.63/zheng-upms-server/sso/login?backurl=http://47.93.195.63/zheng-upms-server/manage/index "演示地址") ### 预览图 ![idea](project-bootstrap/idea.png) ![login](project-bootstrap/zheng-login.png) ![upms](project-bootstrap/zheng-upms.png) ![cms](project-bootstrap/zheng-cms.png) ![swagger](project-bootstrap/api.png) ### 数据模型 ![数据库模型](project-datamodel/zheng.png) ### 拓扑图 ![拓扑图](project-bootstrap/distributedSystem.png) ### 开发进度 ![开发进度](project-bootstrap/progress.png) ### 参与开发 首先谢谢大家支持,如果你希望参与开发,欢迎通过[Github](https://github.com/shuzheng/zheng "Github")上fork本项目,并Pull Request您的commit。 ### 常见问题 - Eclipse下,dubbo找不到dubbo.xsd报错,不影响使用,如果要解决,可参考 [http://blog.csdn.net/gjldwz/article/details/50555922](http://blog.csdn.net/gjldwz/article/details/50555922) - 报zheng-xxx.jar包找不到,请按照文档编译顺序,将源代码编译并安装到本地maven仓库 - zheng-cms-admin启动卡住:因为没有启动activemq - zheng-upms-server访问报session不存在:因为没有启动redis服务 - 界面没有样式:因为zheng-admin没有编译安装到本地仓库 ## 附件 ### 优秀文章和博客 - [创业互联网公司如何搭建自己的技术框架](http://shuzheng5201314.iteye.com/blog/2330151 "创业互联网公司如何搭建自己的技术框架") - [微服务实战](https://segmentfault.com/a/1190000004634172 "微服务实战") - [单点登录原理与简单实现](http://shuzheng5201314.iteye.com/blog/2343910 "单点登录原理与简单实现") - [ITeye论坛关于权限控制的讨论](http://www.iteye.com/magazines/82 "ITeye论坛关于权限控制的讨论") - [RBAC新解:基于资源的权限管理(Resource-Based Access Control)](http://globeeip.iteye.com/blog/1236167 "RBAC新解:基于资源的权限管理(Resource-Based Access Control)") - [网站架构经验随笔](http://jinnianshilongnian.iteye.com/blog/2289904 "网站架构经验随笔") - [支付系统架构](http://shuzheng5201314.iteye.com/blog/2355431 "支付系统架构") - [Spring整合JMS](http://elim.iteye.com/blog/1893038 "Spring整合JMS") - [跟我学Shiro目录贴](http://jinnianshilongnian.iteye.com/blog/2018398 "跟我学Shiro目录贴") - [跟我学SpringMVC目录汇总贴](http://jinnianshilongnian.iteye.com/blog/1752171 "跟我学SpringMVC目录汇总贴") - [跟我学spring3 目录贴](http://jinnianshilongnian.iteye.com/blog/1482071 "跟我学spring3 目录贴") - [跟我学OpenResty(Nginx+Lua)开发目录贴](http://jinnianshilongnian.iteye.com/blog/2190344 "跟我学OpenResty(Nginx+Lua)开发目录贴") - [Redis中文网](http://www.redis.net.cn/ "Redis中文网") - [读懂Redis并配置主从集群及高可用部署](http://mp.weixin.qq.com/s?__biz=MzIxNTYzOTQ0Ng==&mid=2247483668&idx=1&sn=cd31574877d38cf7ff9c047b86c9bf23&chksm=979475eda0e3fcfb6b5006bcd19c5a838eca9e369252847dbdf97820bf418201dd75c1dadda3&mpshare=1&scene=23&srcid=0117KUiiITwi2ETRan16xRVg#rd "读懂Redis并配置主从集群及高可用部署") - [Redis哨兵-实现Redis高可用](http://redis.majunwei.com/topics/sentinel.html "Redis哨兵-实现Redis高可用") - [ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台](http://www.open-open.com/lib/view/open1451801542042.html "ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台") - [Nginx基本功能极速入门](http://xxgblog.com/2015/05/17/nginx-start/ "Nginx基本功能极速入门") - [mybatis-genarator 自定义插件](https://my.oschina.net/alexgaoyh/blog/702791 "mybatis-genarator 自定义插件") - [Elasticsearch权威指南(中文版)](https://es.xiaoleilu.com/510_Deployment/20_hardware.html "Elasticsearch权威指南(中文版)") - [springMVC对简单对象、Set、List、Map的数据绑定和常见问题.](http://blog.csdn.net/z_dendy/article/details/12648641 "springMVC对简单对象、Set、List、Map的数据绑定和常见问题.") - [如何细粒度地控制你的MyBatis二级缓存](http://blog.csdn.net/luanlouis/article/details/41800511 "如何细粒度地控制你的MyBatis二级缓存") - [做个男人,做个成熟的男人,做个有城府的男人](http://shuzheng5201314.iteye.com/blog/1387820 "做个男人,做个成熟的男人,做个有城府的男人") ### 在线小工具 - [在线Cron表达式生成器](http://cron.qqe2.com/ "在线Cron表达式生成器") - [在线工具 - 程序员的工具箱](http://tool.lu/ "在线工具 - 程序员的工具箱") ### 在线文档 - [JDK7英文文档](http://tool.oschina.net/apidocs/apidoc?api=jdk_7u4 "JDK7英文文档") - [Spring4.x文档](http://spring.oschina.mopaas.com/ "Spring4.x文档") - [Mybatis3官网](http://www.mybatis.org/mybatis-3/zh/index.html "Mybatis3官网") - [Dubbo官网](http://dubbo.io/ "Dubbo官网") - [Nginx中文文档](http://tool.oschina.net/apidocs/apidoc?api=nginx-zh "Nginx中文文档") - [Freemarker在线手册](http://freemarker.foofun.cn/ "Freemarker在线中文手册") - [Velocity在线手册](http://velocity.apache.org/engine/devel/developer-guide.html "Velocity在线手册") - [Bootstrap在线手册](http://www.bootcss.com/ "Bootstrap在线手册") - [Git官网中文文档](https://git-scm.com/book/zh/v2 "Git官网中文文档") - [Thymeleaf](http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html "Thymeleaf") ## 许可证 [MIT](LICENSE "MIT")

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧