`
unsid
  • 浏览: 8394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

web应用,javaEE企业级应用,如何严格区分?

阅读更多
一、为什么要区分?(提这个问题的目的)
   
   区分的目的是了解web应用和企业级应用各自的边界在哪,从而总结一套思路在未来构建项目时如何选择,从中获取到,“当遇到何种场景是,适合构建企业级应用而何种场景web应用足矣”。

二、观察

   在观察自己做过的,别人做过的项目中,web应用和企业级应用各自带有一定的特征。
   web应用运行在web服务器上,比如tomcat,只需要简单的servlet容器就可运行,部署的时候发布整个目录或者打成war包发布。
   企业级应用运行在application server上,app server通常比webserver多EJB容器,所以企业级应用多支持EJB,通常打包成EAR包发布,其中EAR中有多个WAR和EJBJAR。
  
三、思考

  乍一看上去,好像EJB就是web应用和企业级应用的分水岭,所以我起初认为:

  (观点一)web应用和企业级应用的区分点在于web应用适合那些只需要简单的MVC就满足需要的场景,企业级应用适合那些有核心业务模式的场景。通常这两种场景抓不到明显边界,但是我感觉,那些大家一看就能熟知(比如借书系统,几乎谁都知道怎么借书),虽然也有其核心的业务模式(借书还书流程),但是大家一看就能掌握的,不需要把核心业务单独抽取出出来这么麻烦,构建web应用即可;而企业级应用适合那些领域性很深的,业务错综的场景,需要把业务单独抽取到领域层进行维护。
  
   根据观点一区分:是否为企业级应用就看应用中是否仅仅包含简单MVC和数据库访问,如果是就是web应用。

   可是逐渐,观点有所变化,原因在于例如Spring这样的不依赖于服务器的轻量级框架也适合构建具有复杂领域性的项目,然而由Spring构建的项目发布在web服务器上能够良好的运行,它不需要服务器首先承诺什么,所以我觉得web应用和企业级应用区分不仅仅是是否涉及深入的领域这么简单。

  (观点二)web应用面向单一的发布,所发布的应用程序模块集成在一起。而企业级应用通常包含多个组件WAR,EJB等等,为了统一发布的方面,企业级应用服务器带来了集成发布的便利。

  根据观点二区分:是否为企业级应用就看是打包成EAR还是WAR。

  觉得这种想法也不妥

  (观点三)企业级应用通常伴随着比web应用更大的并发量,对事务、安全等等因素要求更严格,所以通常把对并发、事务、安全等等因素要求高的项目构建在企业级应用服务器上,利用服务器对事务、安全等等规范的支持来使其得到保证。

   根据观点三区分:是否为企业级应用就看是发布在web server上还是发布在app server上,如果应用仅仅包含mvc但是发布在app server也是企业级应用。

四、总结

  很难想出一种明确的明确思路来区分一个项目是web应用还是企业级应用,也很难找出一条线索来针对采集到的需求判断是构建企业级应用还是web应用足以,我不知道有过多少项目构建成企业级应用更合理却被构建成了web应用。。反之亦然,我觉得关于这个问题的思考还是值得的
分享到:
评论
5 楼 unsid 2009-04-19  
在刚开始解除servlet的时候,书上都说web应用是分为MVC三层,其中带有业务部分的内容很多都写在了C里面,或者在C的基础上提出一层handler,并且handler与controller一一对应,这只不过比业务写在servlet里仅仅好了一点点而已。乍一看上去MVC代表了web应用,并非说这个完全不存在业务逻辑,是否存在业务逻辑完全看个人的实现方式。
但是按照经验论,如果业务逻辑复杂,或者领域性极其,那么最佳实践的分层方式是表现层-领域层-持久层,其中mvc全部集中在了表现层并完全不负责任何业务,这是人们在长期实践中总结的最佳实践方式,只有把业务抽离在单独的领域层才容易维护,这是标准企业级应用的结构。
当然同样复杂的业务你也可以 mvc-handler这样处理,当然你的程序越来越难以维护,这也是为什么会有应当被构建成企业级应用的场景却被错误构建成简单web应用这种错误的存在。当然相反一个很简单的需求,正如Evans所说的Smart UI反模式,如果构建复杂的领域层只会为了不必要的灵活性而付出很多代价,也是不可取的。
Rails宣扬的全栈式mvc貌似是要摒弃领域层,Rails加强了构建项目速度,强调开发效率,强调简洁,但是对于复杂的可伸缩性的需求变更可能不如领域模型应对自如,也是属于面向相对简单需求下的快速建站,web应用。

这是我的理解
4 楼 clasp 2009-04-19  
按LZ的说法才明白俺做了几年都是在做web应用。个人支持  朗拿颠老 的说法
3 楼 unsid 2009-04-14  
就简单说一个借书系统,有很简单的业务,大家一看就会,好像没听谁用企业级应用这么庞大的字眼来形容,那么说web应用完全没有业务是不是太绝对了?
2 楼 朗拿颠老 2009-04-14  
查了一下资料,跑在web服务器上基于http的应用,不夹杂业务逻辑的应用是web应用。在应用服务器(包括web服务器)端包含商业逻辑处理程序的应用,为企业级应用。例子:web服务器向客户端返回内容写死的HMTL,为web应用;应用服务器根据用户提交查询表单返回HTML,企业级应用。企业级应用包含web应用,企业级应用 可以 =  web应用+业务逻辑处理程序。个人感觉严格区分无意义。个人愚见...
1 楼 key232323 2009-04-14  
web应用是 软件开发 update to today 的一种主要展现形式,谁让大家都用互联网,都用web呢,web不止是http/browser,手机***不也都是web应用吗?

企业应用概念太多,不如简单理解为“企业”的“应用”,不同企业需求不同。企业应用对应的应该是ngo和个人等“应用”吧

总之企业应用 和 web应用时交叉关系,交集越来越多,因为企业越来越“开放”。

另外别bs做网站的,做网站的有时候技术含量更高些,哈哈,个人愚见,欢迎拍砖

相关推荐

    JavaEE5教程重点大学的教材

    JavaEE5引入了诸多改进,简化了企业级应用的开发,如使用注解简化配置、JSF(JavaServer Faces)提供组件化UI开发、EJB3.0简化了企业级bean的编程模型等。 总的来说,这本书通过讲解Web开发基础,旨在帮助学生建立...

    javaee编写小bbs

    JavaEE(Java Platform, Enterprise Edition)是用于构建企业级Web应用程序的框架,它包括一系列的API和服务,如Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)等。...

    j2ee6-javaEE6文档 手册 CHM

    Java EE 6,全称Java Platform, Enterprise Edition 6,是Java平台上用于构建企业级Web应用的一套标准规范。这个“j2ee6-javaEE6文档 手册 CHM”是一个关于Java EE 6的详细参考资料,对于学习和掌握该版本的开发者来...

    JAVAEE_学生信息管理系统

    JAVAEE,全称为Java Platform, Enterprise Edition,是Java语言在企业级应用开发中的标准。它包括一系列的组件和服务,如Servlet、JSP、EJB、JPA、JMS等,提供了构建分布式、多层架构的企业级应用框架。在这个学生...

    基于JavaEE的网上书店项目(完整代码+sql文件)

    首先,JavaEE(Java Platform, Enterprise Edition)是开发企业级应用程序的标准框架,它提供了服务器端组件模型、事务管理、安全性和其他服务。在这个网上书店项目中,JavaEE的核心技术包括Servlet、JSP(Java...

    基于 JavaEE 的文具销售系统.zip

    1. **JavaEE基础**:JavaEE(Java Platform, Enterprise Edition)是Java平台的一个版本,用于开发企业级应用程序。它包含一系列的框架和API,如Servlet、JSP、EJB、JMS、JPA等,用于构建分布式、多层架构的应用。 ...

    Java-EE企业级项目开发JavaEE-单元5-任务3-文档检索设计.ppt

    本篇内容主要聚焦于JavaEE-单元5的第3个任务,即文档检索设计,它涵盖了Struts2、Hibernate和Spring的集成应用。 任务目标在于理解和熟练掌握Spring框架的注解配置,以便在文档管理模块中实现更简洁、高效的代码。...

    超棒的web应用技术课程设计——在线影评系统.pdf

    此外,通过HTML和CSS构建用户界面,实现美观和易用的交互体验,而JavaEE技术则提供了企业级的扩展性和性能,确保了系统的稳定运行。 总的来说,【在线影评系统】是一个综合运用了Web开发技术、数据库管理和用户权限...

    JavaEE源码java新闻发布管理源码数据库sql文档

    - **JavaEE(Java Platform, Enterprise Edition)**:是Sun Microsystems公司推出的一个企业级应用开发平台标准,它定义了一套用于开发、部署多层分布式企业级Java应用程序的标准。 - **版本4.3**:JavaEE 4.3 是在...

    JavaEE源码酒店管理系统源码数据库sql文档

    本项目基于JavaEE 5.6版本,该版本强调轻量级Web服务、简化开发过程,并提供了更强大的企业级功能。 ### 二、原生Servlet技术 Servlet是一种运行在服务器端的小程序,主要用于处理客户端的HTTP请求并返回响应。...

    基于JavaEE的多用户学生信息管理系统(MVC+JavaBean+servlet))

    JavaEE(Java Platform, Enterprise Edition)是一种用于构建企业级Web应用程序的标准框架,它提供了丰富的组件和服务,包括Servlet、JSP、EJB等,以支持多层次架构,如MVC(Model-View-Controller)。在本项目中,...

    《Java EE应用开发》考查试卷.doc

    《Java EE 应用开发》考查试卷涉及到的知识点主要集中在基于SSM(Spring、Spring MVC、MyBatis)框架的Web应用开发上,这是一份关于设计和实现一个留言板系统的项目任务。以下是对这些知识点的详细说明: 1. **用户...

    基于JavaEE的电子相册管理系统_JSP网站设计_SqlServer数据库设计.rar

    JavaEE,全称为Java Platform, Enterprise Edition,是用于构建企业级应用的开源框架。它提供了一系列API和服务,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)、JMS(Java Message...

    glassFish+postgres+NetBeans j2ee开发指南

    JavaEE支持Web服务、组件模型、管理API和通信API,是实现企业级面向服务体系结构(SOA)和Web2.0应用程序的技术基础。 JavaEE技术在过去曾被广泛使用,尤其是J2EE 1.4版本,但该版本的开发过程较为复杂,有时难以...

    JavaEE.doc

    - **跨平台的多层互联网应用系统**:学会构建多层架构的Web应用。 - **主流应用服务器中间件产品(WebLogic Server)**:掌握WebLogic Server等中间件的配置和使用方法。 - **Web Services与SOA** - **...

    javaee学生信息管理系统报告材料.pdf

    JavaEE(Java Enterprise Edition)是一种用于构建企业级分布式应用的平台,它提供了丰富的组件和服务,包括Servlet、JSP(JavaServer Pages)以及EJB(Enterprise JavaBeans)等,这些工具和技术对于开发复杂的Web...

    JAVAEE期末复习参考题.pdf

    Java EE,全称为Java Platform, Enterprise Edition,是一个用于构建企业级Web应用的开源标准框架。它定义了多种组件、服务和通信技术,旨在简化开发、部署和管理分布式系统的复杂性。以下是对Java EE期末复习的一些...

    Java + SSM基于Java EE的阅读与存储图书网站(毕业设计、课程设计使用).rar

    【Java + SSM基于Java EE的阅读与存储图书网站】是一个综合性的项目,适用于毕业设计或课程设计,它集成了Java、...通过深入理解和实践这个项目,开发者可以提升自己的全栈开发技能,更好地理解企业级应用的构建。

    ssm框架整合jar包

    首先,Spring框架是核心,它提供了一个全面的编程和配置模型,特别是对于企业级应用。Spring的主要功能包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问/集成以及一系列的工具支持。依赖注入使得对象...

    第56套试题

    【标题】"第56套试题"所涉及的是一份针对JavaEE技术的练习测试,这通常是指Java企业版(Java Platform, Enterprise Edition),它是一个用于开发和部署企业级应用程序的平台。JavaEE包含了多种服务、接口和组件模型...

Global site tag (gtag.js) - Google Analytics