开启互联网AI+ 从我们开始

这里的内容很全面,我们为您提供最全面的网站建设百科全书

当前位置:首页 > 百科> 行业热点>行业热点基于模块化的弹性扩展门户网站架构设计

行业热点基于模块化的弹性扩展门户网站架构设计

浏览次数:        来源:北京知辰方科技有限公司

在政府机构中, 工商、公安等机构根本都具有本人的门户网站;在企事业单位中, 各中大型企业、医院、学校等也有相应的办公门户.在这些门户网站中, 常常会碰到信息陈旧、板块空缺、规划杂乱、进入层次太深、系统更新迟缓、用户很难找到本人关注信息等问题.招致这些现象的要素很多, 有的由于经费缺乏而短少维护;有的由于测试不全面招致系统稳定性差;有的由于短少规划而赶不上开展速度;还有由于无法应用现有系统资源, 机构小而没有内容支撑门户网站建立等缘由.


北京网站建设,北京网站制作,北京系统软件开发公司北京知辰方科技有限公司.jpg


作为企事业单位中的信息部门, 面对系统扁平化、个性化需求的增加, 招致系统定制化趋向越来越明显, 信息部门除了创立数量庞大的系统来满足用户不时变化和增加的需求之外, 还有其他应对措施吗?大多数人都晓得, 传统网站架构常常是依据业务需求、现有团队等要素思索设计, 主要处理的是通用需求和当前业务, 团队成员之间也相对理解, 能快速完成一个个独立的信息系统.但这样的系统设计与开发团队耦合性太严密, 一旦团队中心人员变动, 常常会招致系统可扩展性和稳定性遭到极大的影响, 或一旦需求变化太大, 系统就必需大范围重新设计才干满足需求.在越来越依赖信息化的今天, 需求快速变化是比拟正常的, 这就招致上述各种现象.为了躲避这些现象, 信息部门必需具备以下的才能才可以应对应战:

1) 持续进步创新才能, 使系统的技术含量越来越高, 以满足客户需求;

2) 不时缩短系统研发时间, 快速响应用户需求;

3) 不时强化本钱控制才能, 经过优化产品生命周期内的各种本钱来控制系统总本钱, 获得投入产出比优势;

4) 持续稳定的质量改良才能.


经历标明, 设计信息系统一方面必需应用业务模块的批量化、规范化和通用化来缩短系统上线周期、降低研发本钱、进步模块重用性和系统稳定性, 另一方面还要不时地停止研发创新使系统越来越个性化, 满足用户的定制需求.这样, 如何均衡系统的规范化、通用化与定制化、稳定性之间的矛盾, 成为博得竞争的关键要素.基于这两方面的思索, 设计一套基于模块化的弹性扩展门户网站架构.该设计把业务拆分为一个个模块, 经过这些模块的组合能够向分支机构、下属单位、以至岗位、人员提供相应的个性化门户系统, 不只处理了企事业单位整体的系统建立本钱, 而且也处理了门户网站内容缺乏、内容复用、组织机构之间信息交互等问题.对软件开发团队来说, 也处理了系统迭代的稳定性、模块之间的耦合度、用户需求的个性化、开发团队分工与辅佐等问题.


1 系统剖析与建模

1.1 架构需求

企业门户是一个联接企业内部和外部的网站, 它把各种应用系统、数据资源、业务处置与企业各部门、分支机构等需求统一集成到门户之下, 能够为企业提供一个单一的访问企业各种信息资源的入口, 企业的员工、分支机构、协作同伴等都能够经过这个门户取得个性化的信息和效劳.经过屡次整理归结, 明白了企业及用户对架构的主要需求内容如下:

1) 企业门户统一入口地址, 针对特定节假日有换肤功用, 每个分支机构和部门有独立的门户, 特定岗位和特定角色也有特定门户.

2) 企业门户、部门门户等内部常规门户必需包含总公司的公告、邮件、流程审批等模块.

3) 特定用户可能在多个部门任职, 则该用户的门户可能是包含多部门信息的独立门户, 也可能是采用切换的方式访问多个部门的门户.

4) 每个用户登录到门户首页, “第一眼”就能看到本人当天的待办工作和关注信息.

5) 每个模块只开发一次, 后期只是各模块单独晋级, 能够反复应用, 不要反复开发.

6) 每个门户的关注点和导航都不相同, 但是相同模块在不同门户里的详细内容相同, 导航页面之间的切换不能改动用户的默许选择.

7) 每个模块相对独立, 不能影响其他模块及整体系统的运用.


1.2 系统选型

无架构, 不系统, 架构选型是门户系统胜利的关键.面对明晰的业务架构, 而现有OA系统和零散业务系统无法满足企业开展.在调查过单体式应用架构、散布式架构、SOA架构等架构后, 最后集中在OSGI框架平台和自主研发基于模块化的弹性扩展门户网站架构的选择上.


OSGi (open service gateway initiative) 技术是Java动态化模块化系统的一系列标准.基于该标准, 一些开源社区和厂商完成详细的OSGI开发平台, 如Java开发的Felix和Equinox, 以及.NET平台完成的OSGi.NET.这些基于OSGI标准的架构, 根本处理了软件复用、团队协作、软件可维护性、开放性等问题.但是基于这些架构开发出来的产品, 很难处理系统美观性和友好性问题, 以及用户个性化需求的问题.基于开源的OSGI架构平台思绪, 思索到系统之间的集成和现有开发团队, 最终选择自主研发基于模块化的弹性扩展门户网站架构.


1.3 系统建模

在本企业门户中, 业务参与者包括各部门、分支机构、分 (子) 公司的全体人员.系统管理员指整个门户系统的管理者.用例指各个业务场景, 不同的业务场景可能由不同团队或人员独立开发.图1是以财务人员、人力人员、财务总监为例, 阐明各个模块之间的关系.


2 定制首页设计

门户首页是门户的精髓所在, 是企事业单位的办公和肉体集中地, 常常用户记住和运用最多的是门户首页.当用户看到首页, 就晓得门户是做什么, 用户从这里得到哪些效劳, 取得哪些信息, 下一步用户将到哪里去, 最终目的就是给用户带来极佳体验, 并吸收足够多的留意力.同样引导什么功用呢, 用户进入门户首页不可能只停留在首页, 他会依据本人的工作和目的来决议去点击链接.而如何引导用户用最快的时间找到本人想要做和去的中央, 则是对门户设计、用户体验和引导的综合考量.门户首页模块化设计的目的就是最大水平满足多样化用户需求, 最大水平给每位用户带来极佳体验.


网页的模块化和汽车消费是一模一样, 首先把一个页面的每一个局部依照内容的独立性和关联性分红不同的模块, 这样一个页面就由背景和很多个模块组成, 然后再将每个模块依照业务类别、外观款式等要素分配给不同的组员停止开发, 并最终又将这些模块按用户所需拼合在一同, 构成一个完好的门户首页。


后台配置设计

从定制首页设计中可预知, 系统管理员需求在后台把页面主题、模板、模框、模块等信息配置终了供门户首页呈现调用.下面先解释几者之间的关系, 再细致阐明每一项的详细含义。


一个模板对应多个模框, 详细对应几个模框是依据用户首页建模拆分出的模框研讨性和创新性.模框与模块是一对一关系, 每个模块都需求一个模框装载才干在页面上渲染.模框只是为了到达模块在设计和开发上的别离和渲染上的交融, 以及模块复用的功用才在模板和模块之间笼统出的中间逻辑, 是模块在模板上的一个预占位.对一个集体来说, 统一主题制造不只俭省主题开发本钱, 而且能够更好地适配页面.对用户来说, 能看到和关注的是模板上最终呈现的那些内容 (即那些模块) .在常规页面看似简单的开发, 但在模块化的门户首页中, 门户首页渲染是经过系统、页面、模框、模块层层入栈传送参数, 层层出栈结构页面结果.首页的渲染不只是模块的规则组合, 而且还需页面作风、用户言语等参数的搭配渲染.下面是几项中心配置的扼要阐明:


1) 主题配置:用于指定门户CSS款式、图片、言语包等调用的文件夹, 主要属性包括主题称号、主题言语、描绘.

2) 模板配置:用于表现门户首页模框位置的固化和配置模块的定位.主要属性包括称号、模板文件名、URL地址、宽度、高度、模框总数、设计预览图、言语类别.

3) 模框配置:用于描绘未来配置特定模块呈如今页面上的固定位置以及模框与页面的关系.主要属性包括模框称号、标志、宽度、高度、适配阐明.图4是模板、模框的配置展现.

4) 模块配置:用于描绘每个业务模块根本信息, 主要供系统管理员或用户选择查看.主要属性包括显现称号、类名、相对途径、宽度、高度、类型、能否异步加载、能否可调整、言语类别.

5) 模块与模板配置:用于配置首页呈现的内容形态, 主要是配置模板与门户导航和模块的关系.图5是模板与模块配置阐明图.

6) 主题与模板配置:用于配置最终首页呈现款式, 一个模板能够配置多个主题, 一个主题能够配置多个模板.


后台配置及用户设置的最终目的是生成加载门户首页的配置信息。

依据以上“后台配置设计”引见, 分离“定制化首页”设计思绪, 推导出门户首页渲染过程如下:首先, 针对不同用户的个性化需求停止逐一建模, 并发掘出不同首页模板.然后, 在后台依据首页建模的规划和用户岗位、角色、部门等信息停止首页模板、模框、模块的配置, 并最终生成不同的“门户首页配置信息”配置关系.最后, 不同的首页模板依据相应配置文件渲染出个性化的首页.


4 模块开发

4.1 总体开发思绪

模块是构成门户的一局部, 普通具有独立完好的功用, 具有分歧的前后端接口和加载方式, 相同形态的模块在门户中能够互相交换, 不同模块的按需组合就构成了最终个性化首页.为什么要这样设计呢?我们发如今一个项目里, 需求提出者常常参照某一两个系统而提出, 在这些系统页面中, 都会存在内容和外观相同或类似的局部, 假如我们依照模块化来设计与开发, 不同的业务曾经变成了一个个的模块, 那么这些相同业务或类似界面的模块就能够分给同一个团队或个人来开发.假设不同模块之间互不影响, 或不同模块互相之间交互都有相应标准, 那么不同开发团队能够同步停止开发, 这样效率必将有很大的进步, 且代码的质量和系统稳定性也会得到相应保证.由于每个模块都是单独存在的, 所以当任何门户首页需求用到这个模块时, 都能够


怎样设计开发出这种具有通用性、互换性、相对独立性的模块呢?在“后台配置设计”中曾经理解模块呈现过程关系设计的根底上, 再扼要引见模块的交互设计思绪.首先把模块类型分为:列表自顺应型、焦点图型、导航条型、广告型.其次在列表自顺应型中, 曾经定义好模块自顺应模框的款式和供前端调用的常用办法, 业务开发人员不在关注怎样顺应模框、模块加载处置等共性问题, 只需关注列表数据来源及列表对应二级、三级业务页面, 而且在二级、三级等页面开发中, 业务开发人员也只需关注页面内容, 而页面导航、作风等共性问题不需求破费精神.同样, 焦点图型的模块基类曾经定义好适配模框办法和图片切换办法, 导航条型基类曾经处置好相同的页面在不同门户自动加载不同导航条的办法;只要广告型模块约束相对较少, 合适模块扩展和特殊处置场景.针对不同的业务版块, 不同团队能够依照微效劳的方式同步开发首页模块和相应二级、三级页面, 也能够依照常规方式开发首页模块.


4.2 根本完成思绪

在理解上面设计思绪后, 下面以3个中心基类来阐明主要完成思绪. 门户首页基类BaseHomePage、门户首页模块基类BaseUserControl、其他二三级页面基类BasePage.门户首页基类除了当前主题、言语和用户信息外, 其中最重要的办法就是加载模块办法 (LoadControls) , 在页面基类办法中曾经完成了从缓存及配置文件中自动加载模块的办法, 后期开发人员只需关注“定制首页设计”中的首页建模和特殊细节处置.门户首页模块基类主要目的是提供规范启动办法 (On Start) 供首页经过反射的方式调用, 并把用户及配置信息传送给详细模块初始化运用;在常范围块的开发中, 模块开发人员只需思索采用前端或后台的方式获取后端数据并停止模块渲染, 不再关怀常规权限、换肤、日志等通用功用.二三级页面基类固然只提供了当前用户信息及配置信息供调用, 但在页面前端提供了导航、款式等动态生成内容和通用途理办法.

关于业务复杂、流量及并发大的模块, 团队成员能够思索采用微效劳的方式处置模块业务逻辑, 为了交互便当, 架构也提供了共享session和单点登录集成方式.在整个项目开发中, 为了进步开发效率、系统稳定性、分工明白性.为此, 在本架构设计过程中, 同步编写了“门户开发标准及过程管控”的标准化文档, 为开发理论打下了良好的根底.


4.3 开发理论

有了以上的设计和开发思绪, 在停止实践开发过程中还需思索根本标准、模块前端、模块后端及模块交互等系列问题.根本标准包括那些呢?首先, 在依照不同业务停止团队分工后, 需求避免不同开发团队的命名抵触, 否则可能招致模块加载失败;其次, 需求思索不同模块的并发控制;最后, 还需思索模块与系统间的集成.


在实践开发过程中, 针对该架构制定了前端、后端及数据库开发标准.在停止单个模块开发时, 需求依据规划肯定模块的简写, 如系统模块简写是“SYS”.规则命名空间 (java叫包) 以模块简写单独结尾, 这样在加载模块的时分就不会形成抵触.同样, 在前端的css款式文件和javascript脚本文件中也把不同模块的文件放在以模块简写的文件夹下面;并且在脚本中触及相同的函数称号添加模块前缀, 在款式文件中触及到款式文件采用模块简称的类限定, 避免款式文件抵触.在数据库层面, 除了根本数据库标准外, 主要是在表名的前缀添加模块简写的方式辨别和避免不用要的抵触;当然, 依据模块流量和并非状况, 不同模块数据能够放在同一数据库, 也能够把单个模块寄存在一个或多个独立数据库中.


在模块前端开发过程中, 除了恪守根本前端标准之外, 本设计提炼出常用的前端模块款式和通用javascript函数, 如多种列表款式、图片切换款式及相应的自顺应款式等, 当模块开发人员发现本人开发的模块存在对应模块款式时, 只需依照前端文档停止调用, 减少前端调试时间.款式文件、脚本及图片等静态文件依照标准统一放在主题包文件夹下面, 整个主题包能够单独部署在单独二级域名下的效劳器上, 也能够部署在网站的子目录下.当配置文件配置为相对途径时, 则模块前端和后端调用相对途径下的静态文件;同理, 配置为二级域名时, 前后端则自动调用独立效劳器下的静态资源.


在模块后端开发过程中, 我们引荐采用模块后台代码轻量化方式, 分离微效劳处置后端业务逻辑方式.当然没有后台业务代码逻辑, 或把简单业务逻辑直接写在后台也是能够正确停止模块渲染.主要是依据模块业务复杂性和模块并发大小来综合思索能否在后端采用微效劳方式处置业务逻辑, 能否提供统一的API供模块后台调用, 以及后端数据库能否分库和集群等方式.在模块与各系统交互过程中, 假如是自主开发的系统, 引荐采用Session共享集成方式, 否则引荐采用单点登录集成方式.


本文链接: http://www.zhichenfang.com/content/?353.html

本站文章均为北京网站建设公司北京知辰方科技有限公司摘自权威资料,书籍,或原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...