`
opensdp
  • 浏览: 78507 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

J2EE成功背后的问题

阅读更多

Dan Creswell(这个人在2004获得了Jini Contributors Award,而且是Apache River项目的重要成员)发表了一篇Blog"Victims Of J2EE Success,",其中谈到:现在J2EE已经在Java中间件中成为统治地位的技术标准,但一些特定的应用程序的需求却不能够使用J2EE所设计的标准去解决,例如eBay,MySpace或者Google,这时问题就产生了.

对于J2EE编程者,他说:(下的的引用是从Blog中翻译的)

  
引用
...程序员已经将他们的思维封锁在了J2EE里了,通常会这样想:

       1. 除了数据库,还是数据库
       2. POJO只是针对业务逻辑
       3. 这是分布式程序设计
       4. Ops是其他人的事
       5. 通过部署更强大或更多的服务器来提供可伸缩性

    大多数的企业可以很高兴的接受以这种方式建立的系统,但是如果你不是这个大多数中的一员呢? 如果你是eBay或者MySpace该怎么办?例如eBay已经抛弃大多数J2EE上的东西,他们开发了自己的librarie来解决他们所面对的问题.

       1. Monitoring
       2. Hot Upgrades
       3. Scaling

    基本上一旦你遇到的问题挑战超过了某个水平,J2EE方式的思考模式和设计模式就不能使用了. 到哪儿去找可以应对这一挑战的Java程序员呢?


作者的文章里谈到一些其它技术,但核心的问题就是这个.
不知道各位有没有遇到他所说的情况?

. 外刊IT评论  
.

 

分享到:
评论
5 楼 opensdp 2007-04-29  
JavaEE应该扮演的是基础库,兼容规范,平台的角色,Spring、Hibernate等开源框架都属于兼容性方案
4 楼 dlee 2007-04-29  
Sam1860 写道
spring, hibernate能实现企业级解决方案,但明显不是JavaEE这个词所包含的。

Rod Johnson等人应该不是这样想的。他们写的书名叫做《J2EE Development without EJB》,说明他们认为基于轻量级框架(例如Spring、Hibernate等开源框架)所做的开发仍然是J2EE开发。Spring和Hibernate仍然属于J2EE,只是把EJB这个技术排除掉了。否则Rod Johnson会将书名改为《Server-side Java Development without J2EE》。Spring和Hibernate仍然是基于一些J2EE规范(Servlet、JDBC、JTA、etc.)来做开发的,只是更多地利用了Java语言本身的能力,而不是将自己限制在J2EE规范的狭小范围内。
3 楼 Sam1860 2007-04-29  
dlee 写道
其实现在很多人提到J2EE或者JavaEE,这个名词本身的概念都是含糊不清的。我们需要讨论以下的几个问题:

1. JavaEE是否仅代表JCP所制定的各种规范?
是否只有JSF和EJB属于JavaEE?Spring是否属于JavaEE?Hibernate呢?(当然,Hibernate现在已经能够支持JPA了,那么在它不支持某个JCP规范之前呢?)还有貌似另类的Cocoon呢?
2. JavaEE能否代表服务器端基于Java的各种技术的总和?
如果只有RMI/EJB和SOAP/WSDL/JAX-RPC属于JavaEE,那么Hessian是否属于JavaEE呢?还有Lucene呢?
3. 与Rod Johnson提出的J2EE!=EJB一样,Java!=J2EE。做服务器端的Java开发,是否一定要把自己局限在JCP官方所制定的各种规范上呢?

把这几个问题讨论清楚之后,才能认识清楚究竟很多地方是Java语言本身的问题呢?还是因为一些拙劣的设计和缺乏实践检验的规范(就是Rod Johnson所谓的“委员会驱动的设计”)所造成的。

虽然据我看来,Java的能力要比现在的JavaEE规范还要大的多,但是我们确实也应该眼界更加宽广一些,多了解一些其他社区例如Ruby、Python社区的成功实践经验。这样才能以pragmatic的观点来做设计,而不是处处design by buzzword。


JavaEE是什么,很清晰,JavaEE规范有明确的定义,某技术属不属于JavaEE,去查官方规范吧。 spring, hibernate能实现企业级解决方案,但明显不是JavaEE这个词所包含的。 rod johnson很pragmatic,早在几年前已经在他的书中提出J2ee并非万能,应该根据具体应用去组合各种j2ee/非j2ee技术去设计系统。

这篇blog的意思也就提醒设计都不要把思维被“规范”,“标准”所束缚。规范比较适合解决已经遇到过的问题,但像myspaces, ebay, google, yahoo等“非典型”的网站来说,他们的问题都是不是规范可以解决的。当然当“非典型”的数量大了,慢慢地也就成了典型了。
2 楼 dlee 2007-04-28  
其实现在很多人提到J2EE或者JavaEE,这个名词本身的概念都是含糊不清的。我们需要讨论以下的几个问题:

1. JavaEE是否仅代表JCP所制定的各种规范?
是否只有JSF和EJB属于JavaEE?Spring是否属于JavaEE?Hibernate呢?(当然,Hibernate现在已经能够支持JPA了,那么在它不支持某个JCP规范之前呢?)还有貌似另类的Cocoon呢?
2. JavaEE能否代表服务器端基于Java的各种技术的总和?
如果只有RMI/EJB和SOAP/WSDL/JAX-RPC属于JavaEE,那么Hessian是否属于JavaEE呢?还有Lucene呢?
3. 与Rod Johnson提出的J2EE!=EJB一样,Java!=J2EE。做服务器端的Java开发,是否一定要把自己局限在JCP官方所制定的各种规范上呢?

把这几个问题讨论清楚之后,才能认识清楚究竟很多地方是Java语言本身的问题呢?还是因为一些拙劣的设计和缺乏实践检验的规范(就是Rod Johnson所谓的“委员会驱动的设计”)所造成的。

虽然据我看来,Java的能力要比现在的JavaEE规范还要大的多,但是我们确实也应该眼界更加宽广一些,多了解一些其他社区例如Ruby、Python社区的成功实践经验。这样才能以pragmatic的观点来做设计,而不是处处design by buzzword。
1 楼 daquan198163 2007-04-28  
opensdp 写道
Dan Creswell(这个人在2004获得了Jini Contributors Award,而且是Apache River项目的重要成员)发表了一篇Blog"Victims Of J2EE Success,",其中谈到:现在J2EE已经在Java中间件中成为统治地位的技术标准,但一些特定的应用程序的需求却不能够使用J2EE所设计的标准去解决,例如eBay,MySpace或者Google,这时问题就产生了.

对于J2EE编程者,他说:(下的的引用是从Blog中翻译的)

  
引用
...程序员已经将他们的思维封锁在了J2EE里了,通常会这样想:

       1. 除了数据库,还是数据库
       2. POJO只是针对业务逻辑
       3. 这是分布式程序设计
       4. Ops是其他人的事
       5. Deploy more or bigger boxes to scale(这句话不知如何翻译,特别是 box,scale 这两个词)

    大多数的企业可以很高兴的接受以这种方式建立的系统,但是如果你不是这个大多数中的一员呢? 如果你是eBay或者MySpace该怎么办?例如eBay已经抛弃大多数J2EE上的东西,他们开发了自己的librarie来解决他们所面对的问题.

       1. Monitoring
       2. Hot Upgrades
       3. Scaling

    基本上一旦你遇到的问题挑战超过了某个水平,J2EE方式的思考模式和设计模式就不能使用了. So where does one find Java programmers that can cope with such a challenge?(这句话不知如何翻译?)

作者的文章里谈到一些其它技术,但核心的问题就是这个.
不知道各位有没有遇到他所说的情况?


Deploy more or bigger boxes to scale:通过部署更强大或更多的服务器来提供可伸缩性
So where does one find Java programmers that can cope with such a challenge?
到哪儿去找可以应对这一挑战的Java程序员呢?

ebay只是开发了自己的基于j2ee的框架,以及在应用配置、部署上作了些文章,并没有跳出j2ee吧?

相关推荐

    我的j2ee成功之路源码第四章

    在本资源中,"我的j2EE成功之路源码第四章"显然是一份与学习和实践J2EE(Java 2 Platform, Enterprise Edition)相关的代码集合。J2EE是Java平台的一个版本,专为开发和部署企业级应用程序而设计,如Web应用、分布式...

    J2EE扫盲之-揭开J2EE集群的神秘面纱

    本文旨在深入探讨J2EE集群这一重要概念及其背后的技术原理,帮助读者更好地理解如何利用集群技术来提升系统的可用性和扩展性。 #### 2. 基本术语 在正式讨论J2EE集群之前,有必要先了解一些与集群相关的基础概念:...

    J2EE宠物医院系统

    本篇文章将深入探讨以J2EE技术构建的“宠物医院系统”,解析其背后的技术原理、设计模式以及实现流程。 首先,我们需要理解J2EE的核心概念。J2EE平台主要包括以下组件:Servlets、JSP(JavaServer Pages)、EJB...

    J2EE单点登录组件源码

    - 认证成功后,AC会产生一个唯一的票据(Token),并将其返回给客户端,同时保存在服务器端。 3. **会话共享(Session Sharing)** - 子系统通过检查用户请求中的票据,向AC验证用户身份。验证通过后,子系统会...

    通用电子商务平台(当当网)

    在本文中,我们将深入探讨如何构建一个通用的电子商务平台,以当当网为例,了解其背后的IT技术架构和实现过程。当当网作为知名的在线图书和商品销售平台,它的功能涵盖了用户注册登录、商品浏览、购物车管理和订单...

    javaee集群

    面对商业J2EE服务器高昂的价格、应用移植难题以及性能瓶颈等问题,深入理解J2EE集群的实现机制变得尤为关键。通过本文对伸缩性、高可用性、负载均衡、容错、失效转移和等幂方法的阐述,我们可以看出,J2EE集群不仅...

    新闻站点(有session)

    提交表单后,服务器会验证用户凭据,如果验证成功,将创建并设置session属性,如“isLoggedIn”或用户ID,以标识用户已登录。 4. **新闻列表**:这个功能可能由一个Servlet或JSP页面实现,它从数据库中查询所有新闻...

    Spring Framework 概述.rar

    自从这篇文章的第一版在2003 年10 月... 只选择Struts 或其他为J2EE API 量身定做的框架时被留给你解决的问题。Spring 的配 置管理服务可以被运用于任何运行环境的各种架构性分层中,这也许是中间层中最有价 值的。

    ATM成功进驻便利商店构成台湾最大宗Java建置案

    此次项目中,德利多富采用了Sun ONE Web服务器、J2EE(Java 2企业版)以及Java虚拟机等关键技术。这些技术确保了系统的开放性和灵活性,使ATM能够快速适应不断变化的金融服务需求。德利多富的ProCash 1500型ATM因其...

    2019年软件工程师年度总结.doc

    正如“一分耕耘,一分收获”,每个成功的背后都是辛勤的努力和时间的积累。 其次,明确个人的发展方向至关重要。无论是专注于技术提升,期望成为技术专家,还是走向管理岗位,成为一名职业经理人,或者选择在某个...

    有关Java的一些面试题目

    以上知识点对于Java工程师来说至关重要,理解和掌握它们是成功面试和日常工作中解决问题的基础。在准备面试时,不仅要理解这些概念,还要深入研究其背后的原理和技术细节,以及它们在实际项目中的应用。

    java面试200题(经典的东西哦,面试必看)

    Java面试是每位求职者在进入IT行业,尤其是Java开发领域...同时,实践项目经验也是面试官关注的重点,因此,将理论知识应用于实际开发能够大大增加面试成功的概率。切记,死记硬背并不是长久之计,理解和运用才是关键。

    java自学之路(仅对以后就业java方面的人)

    它们不仅能够帮助你理解程序背后的工作原理,还能提升你的编程能力和解决问题的能力。 随着对JavaSE的掌握,你应该开始关注市场需求,并根据职位分析的结果,选择是否深入J2ME(针对移动设备的Java平台)、Java GUI...

    对Java初学者的一些建议

    要深入理解OOP,不仅要知道如何编写代码,还要知道为什么要这样写,以及这些设计模式背后的逻辑。 其次,学习Java不应只停留在表面,要深入理解其底层机制。例如,了解JVM(Java虚拟机)的工作原理,包括类加载、...

    佳达利地产OA智慧办公系统系统方案2.docx

    **2.3 本质:问题背后的问题** - **深层次原因**: 分析问题背后的深层次原因,如缺乏有效的信息管理系统、流程设计不合理等。 **2.4 系统建设思路** - **基本原则**: 结合房地产行业的特性,制定科学合理的系统建设...

    WEB应用开发平台市场需求激增

    1. **系统兼容性问题**:很多企业早期上马的应用系统之间存在兼容性不佳的问题,导致系统无法有效协同工作。 2. **成本考虑**:自主研发成本高昂,而成熟的平台可以有效控制成本。 3. **复杂性考量**:对于大型应用...

    设计模式的应用--论文素材2

    此外,设计模式应与具体的技术框架和开发环境相结合,例如,在Java或.NET这样的IDE中,有些设计模式可以通过内置工具或插件自动化实现,但理解其背后的意图和工作原理仍然至关重要。 总的来说,设计模式是一种强大...

Global site tag (gtag.js) - Google Analytics