01
Apache
Apache也被叫做>理论上经验这个东西是学不来的
说一下我的例子
刚入行的时候,基本就是写了一些增删改查甚至session都不太理解
随着入行后,你会遇到各种各样的问题在解决问题的过程中,经验来了
简单说一下所谓大规模高并发访问的web架构吧
其实,对于大规模高并发不外乎两点,第一点是及时相应(尽可能优化io)第二点是数据安全
这两点控制的好,就没问题的所以,我们的架构也就围绕在这两点应运而生
第一点,为了尽可能提高应用的io吞吐量则需要我们把所有耗时的io *** 作尽可能的优化,比如全局使用很少更改的一些配置,则可以采用nosql来全局共享(注意,这里的全局是指服务器集群如果涉及到了大规模,肯定是多服务器的)在其次可以增加服务器缓存比如2秒钟从上一条的服务器读取配置,存到服务器级别以提高效率还有线程缓存如果业务复杂可能对一个请求需要查询多次数据,不变的,老规矩,放到线程缓存基本也就差不多了
第二点,因为应用不同,要考虑容错率这个部分优化,可以考虑分离业务,把必须要数据安全的业务逻辑提取出来,队列执行或者特殊处理
剩下的就是服务器部署与如何分配,比如多少台web服务器,数据库配置,内存服务器配置等
这只能是在实际项目和工作过程中来区别对待了基于总线的应用集成平台:UAP—NC是基于ESB总线来做应用集成,可以成为企业级的应用集成平台。企业信息门户(Enterprise Information Portal)作为一个Web应用,是一个企业信息发布、内部员工办公、供应链协同以及应用集成的平台。企业的内部员工、客户、合作伙伴、供应商可通过单一的门户访问其所需的所有个性化信息、获得个性化服务和进行商务活动,最大程度上共享企业的信息资源,从而更好地协同工作,提高企业的生产力、市场竞争力和把握商机的能力
个性化应用配置:在UAP—NC中,80%的都可以通过个性化配置来解决,而不是提倡完全的个性化开发来解决,在UAP-NC55中采用了模板和模型技术的完美结合。在UAP-NC上提供一个开发平台RAD,可以提供产品的个性化开发,但个性化开发跟个性化配置不矛盾,首选应该是个性化配置,其次个性化开发。
开发平台:UAP-NC在为复杂企业应用软件系统的开发提供一个基本框架(技术框架层和应用框架层)的同时,提供了与之相应的、方便易用的开发、实施、维护和管理工具集。这个工具集预置了大量的基本功能件、核心功能件和应用组件,支持企业模型的仿真、分析、诊断、优化和调整。通过技术框架和应用框架提供的开发与管理工具集降低开发难度,提高开发效率;提供全新的应用软件开发模式;提供基于跨中间件的开发平台
优良的系统可扩展性、可靠性:UAP-NC提供了服务器集群技术。服务器集群提供了尽可能多的处理能力和数据的透明访问能力,实现高性能和负载均衡(平衡资源的负载,使用资源得以有效利用),并根据需要随时在机群中增加新的硬件,提高系统的伸缩性和和可扩展性(服务更多客户,提高系统吞吐量),保证系统的可靠性及可用性(提供故障恢复机制和容错功能)。同时在服务器的部署上支持最新的技术方向云计算,可以随时节省机器满足企业其它应用,如果繁忙时可以随时增加服务器满足业务的运行需要
可靠的实施管理保障:企业服务架构(ESA)是UAP-NC产品内部模块间的服务总线,它主要解决模块服务版本管理和具体服务技术的隔离,同时提供跨中间件技术的支撑体系,可以化繁为简,保证ERP的顺利实施。在UAP-NC中所有的服务模块之间耦合度降低,任何两个模块之间都是通过ESA总线完成,从而实现ERP实施的分步性。 LINUX系统中常见的有:CERN、NCSA、Apache三种方式,一般最常用的方法就是用Apache。此种方式特点明显,配置简明,具有最大的对系统兼容性,以下是用此方式配置基于Linux的WEB服务器的全过程。
一. Apache服务器慨述。
其特征是显著的:可以运行于所有计算机平台,自然包括UNIX/LINUX系统;集成代理服务器和Perl编程脚本;对用户的访问会话过程跟踪;可对服务器日志定制;还支持虚拟主机及>那就是数据层,表示层,业务层!
数据层:用于与数据打交道啊``
表示层:用户显示的表示层
业务层:数据层与业务层的桥梁
三层的好处在于表示明确,扩展性好,逻辑性好,但要加开发成本!松散耦合,这一特征也是源于对象/组件技术,当一个Web服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要Web服务的调用界面不变,Web服务的实现任何变更对他们来说都是透明的,甚至是当Web服务的实现平台从J2EE迁移到了NET或者是相反的迁移流程,用户都可以对此一无所知。对于松散耦合而言,尤其是在Internet环境下的Web服务而言,需要有一种适合Internet环境的消息交换协议
。而XML/SOAP正是目前最为适合的消息交换协议。
使用协约的规范性,这一特征从对象而来,但相比一般对象其界面规范更加规范化和易于机器理解。首先,作为Web服务,对象界面所提供的功能应当使用标准的描述语言来描述(比如WSDL);其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到Web服务的聚合、跨Web服务的事务、工作流等,而这些又都需要服务质量(QoS)的保障。其次,我们知道安全机制对于松散耦合的对象环境的重要性,因此我们需要对诸如授权认证、数据完整性(比如签名机制)、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。
使用标准协议规范,作为Web服务,其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范,以便由任意方进行实现。一般而言,绝大多数规范将最终有W3C或OASIS作为最终版本的发布方和维护方。
高度可集成能力。由于Web服务采取简单的、易理解的标准Web协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是CORBA、DCOM还是EJB都可以通过这一种标准的协议进行互 *** 作,实现了在当前环境下最高的可集成性。
Web Service "Stack"在前一节中,我们已经了解到为了完成在松散耦合的环境下的对象访问,以及在基本对象访问之上的诸如事务、工作流、安全机制等。实现一个完整的Web服务体系需要有一系列的协议规范来支撑。
其中,绿色部分是先前已经定义好的并且广泛使用的传输层和网络层的标准:IP、>一。java方面的话,现在还是流程mvc架构。
v:View层用于与用户的交互,通常用JSP来实现,如果交互性要求比较高,可能还需要ajax方面的工具,小巧强大的jquery必不可少。
c:Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的 *** 作。控制层struts2用的比较多,改进了很多struts1的缺点。当然也可以自己写servlet来做控制层。
m:Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。
二。Java开发Web Application有几种符合MVC设计模式的开发方式。 1:Jsp+Servlet+JavaBean(EJB)
2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
3:TDK(Turbine,Velocity)
4:Xsp
5:Jsp+Struts+JavaBean(EJB)
6:SSH (Struts + Spring + Hibernate)
三。常见的MVC组件
Struts: Apache的,最流行的MVC组件
Struts2 :Apache用Struts 和 WebWork的组合出来的新产品,目前上升势头强劲 WebWork: 这个可是老牌的MVC组件,后来组合成了Struts2, 不过自身仍在发展
Spring MVC:SpringFramework自己整合自己Spring的优势推出的MVC组件,用户也不少 JSF: 这个是一个规范,Sun的和 Apache的都有各自的实现。用户量很大,被众多IDE支持。 Tapestry: 最彻底的MVC开发框架,丰富的组件资源,重用性很高。组件扮演着控制器Controller的角色,是模式层(Model) 中pure-domain objects和包含有组件的HTML模板之间的媒介。大多数情况下,这种方式应用于页面(页面也 是 Tapestry组件),但是在某些情况中,一个组件拥有自己的模板,包含着更多的组件,并且支持与使用者的互交。页面通过配置一系列属性表达式(Property expressions)连接模式层和表现层。属性表达式使用另外一种开源框架OGNL(Object Graph Navigation Language)。OGNL的开源工程(project)独立于Tapestry,但是在Tapestry中起很重要的作用。OGNL主要的目的在于读取和更新对象的Java Bean属性。
如有其它问题可以追问。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)