XXXX公司XXX发布平台设计方案XX单位2019年12月1、概述阐述项目建设背景……项目必要性、先进性……2、建设目标1、宣传公司、中心的管理理念,促进企业文化的建设与传播;2、实现对外信息发布的信息资源分类整合、集中展现和优化组合;3、面向各类用户XXXX提供信息发布、意见反馈的处理平台,加强与社会的沟通,更好地提供信息服务;4、内部建立信息内容的编辑、审核、发布的严格审批流程,确保发布信息的严肃性、严谨性;5、按照XX公司外部信息披露要求,规范访问域名以及安全性规范,确保系统的安全、可靠、稳定和快速响应。3、建设思路围绕以上建设目标,按照稳定、安全、高效、方便、快速部署的思路进行XXXX信息发布平台建设,构建公共信息(如新闻、公告等)与业务动态信息信息发布模式,探讨下一步客户服务体系的应用部署的架构模式。对其中……这类业务相关性的动态数据,这类数据来源可以是来自于信息系统,也可以采用填报功能,数据设计存储在物理表中,一是把发布和数据来源管理分离,二是更加方便地进行权限控制。从数据安全角度考虑,考虑动态数据与网站数据库分开存储,同时把动态数据展现界面也单独部署,与对外网站建立链接,形成主站与子站的关系,可以利用公司现有网络安全控制机制很好地保护动态数据的安全性。4、系统架构系统基于XXXX技术开发,采用XXXX主流技术架构,采用伪静态结合页面缓存技术建设.系统结构图如下:略如上图所示,网站服务器由两台PC服务器组成,一台服务器位于外网,向互联网提供WEB服务;另一台服务器放置在内网,向省公司用户提供WEB服务,一台数据库服务器放置在内网,与内网的WEB服务器放置在同一网段,负责为内网与外网提供数据服务,外网Web服务不允许直接访问数据库,而是通过隔离设备。网站相关管理员和业务人员通过内网或外网访问,实现对网站的访问、管理或数据上传。网站运营平台:1、网站服务器,PC机型号XXXX;操作系统:XXXX;主频:XXXX;内存:XXXX2、网站服务器,Pc机型号:XXXX操作系统:XXXX;主频:XXXX;内存:XXXX;3、数据库服务器现有数据库配置如下:型号:XXXX内存:XXXX硬盘:XXXX盘raid1方式Cpu:XXXX每颗XXXX4、weblogicXXX。根据XXXX的要求,从高可用性和高靠性考虑,建议网站内、外网PC服务器均配置双机或一台备用机;如果是配置备用机,一台运行,另一台做备份和备用,当运行的服务器出现故障时人工切换到另一台服务器上运行。名词解释:Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Session接口Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。SessionFactory接口SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Configuration接口Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。Spring:Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。◆目的:解决企业应用开发的复杂性◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能◆范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。[编辑本段]为什么需要Spring你可能正在想“Spring不过是另外一个的framework”。当已经有许多开放源代码(和专有)J2EEframework时,我们为什么还需要SpringFramework?Spring是独特的,因为若干个原因:◆它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。◆Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。◆它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。Struts2:Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2.因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架。ApacheStruts2是一个优雅的,可扩展的JAVAEEweb框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。ApacheStruts2即是之前大家所熟知的WebWork2.在经历了几年的各自发展后,WebWork和Struts社区决定合二为一,也即是Struts2。5、功能设计按照XXXX公司要求,搭建与内网相同的内容管理平台,对外达到展现企业形象、信息发布、客服服务、留言反馈甚至业务处理的目标,对内实现信息采集、业务系统数据整合、编辑、页面制作、审核、发布完整的链条。系统还要为网站系统维护人员提供较为齐全的维护功能。作为严肃的官方网站,功能组织和界面展现要美观、大方、协调、方面和快捷。下面从功能规划、栏目设计、可视化编辑、信息发布流程、后台管理等多个方面进行详尽介绍。5.1功能规划序号功能名称描述1展现形象向外界展现XXXX公司、XXXX的企业文化、XXXX风采等。2信息披露向外界定期发布公司动态,市场,行业动态,服务信息,政策法规等;实现与XXXX系统数据对接,XXXX系统中部分数据内容通过网站对外展示。3客户服务提供网上业务咨询等4用户管理用户注册要实名制;内、外网均能访问系统;对用户实行分类权限管理;可以禁止指定的注册用户访问系统;5外网业务处理6网站连接连接XXXX及常用网站等7网站检索为用户提供网站内容的检索8网站导航为用户提供网站网页的导航功能9网站地图为用户提供网站栏目的分布图,是用户对网站整体框架能快速了解10企业邮箱为用户提供互联网邮件服务的访问入口OutlookExpress11服务监督设立意见建议反馈、服务举措等专用邮箱,接受客户及公众的监督12网站计数器显示网站实时在线人数,以及登陆人数计数13版权声明对网站的版权、维护单位及联系方式等网站信息进行说明14网站管理为网站维护人员提供内容编辑、审核、发布、管理等平台;能够查询到登陆用户的登录IP和登陆次数及最后的登陆时间;对发布的内容需要经过审核后才能对外发布;5.2栏目设计栏目管理:支持直观、方便的树状网站栏目管理功能;可以根据需要进行调整、增减、删除栏目。点击某个父栏目,您将看到它的子栏目列表,这里以前面添加的“城市热点”为例,如下图所示。图略5.3页面可视化编辑对于非专业人员来说,页面制作是困难的,所以如何让业务人员就快速高质量地完成信息编辑就显得非常必要,从而让网站维护人员可以有更多的精力关注安全等其它事情。系统高度集成了FreeMarker,为各级使用者提供了可视化的页面编辑界面,对可以对发布的内容进行在线的编辑、格式化等动作,并保存到内容库,其他用户浏览时直接在线打开。。编辑过程中可以随时使用预览功能查看效果。如下图所示:图略FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序,FreeMarker具有一些编程的能力,通常由Java程序准备要显示的数据,由FreeMarker生成页