Gavin King真正走上EJB路线,推出基于JSF/EJB3的快速开发框架JBoss Seam

06-06-15 banq
              

JBoss Seam 1.0是试图给出一种基于JSF+EJB的快速开发框架,是和ROR和JF类似一种框架,我最为看中的是其终于意识到状态管理是框架基本重要的功能了,而这点正是Spring缺乏的:

1.A unified component model centered around EJB.

围绕EJB的组件模型。

2. Raises the semantic level of development.

提高开发阶段层次。

3. A new contextual component model / higher level state management over HTTPSession.

基于HttpSession的高层次组件架构状态管理。

4. DRW-style AJAX EJB invocation and the ability to recieve JMS messages in the browser.

DRW风格的AJAX EJB调用方式(实际EJB remote调用)

5. Support for process-driven applications.

过程驱动应用支持

6. Portal integration.

门户整合,可和JBoss Portlet整合

7. Testability.

http://www.theserverside.com/news/thread.tss?thread_id=40908

              

1
banq
2006-06-15 18:30

又出来一个Web Beans标准 Web Beans

http://jcp.org/en/jsr/detail?id=299

专为JSF/EJB3使用的,看来Beans规定真不少啊

banq
2006-06-16 08:58

这件事情解释了三个疑惑:

1.当初作为Hibernate创始者 Gavin King进入JBoss后,表示他将自己的新鲜理念来增强EJB。

2.本人在EJB vs Spring中一直强调Spring没有Session状态管理缺陷,并且专门写文章“状态对象:数据库的替代者”http://www.jdon.com/artichect/state.htm

而JdonFramework从1.2版本后就支持基于HttpSession的状态管理。

3.Seam是使用在JSF+EJB架构下,而Struts目前应用最广,而JdonFramework可以使用在Struts+EJB获Struts+POJO架构下,有人曾经责问:已经有EJB,还需要JdonFramework做什么?这个问题同样可以问问Gavin King了,他为什么还要做基于JSF+EJB上的框架?

banq
2006-06-30 14:44

这件事情同时又说明另外一个问题:

有人说:Struts+Spring+Hibernate是一种非常好的架构选择,我想,Hibernate创建人Gavin King可能不同意这样的架构选择是最完美的,否则,Gavin King不会再重新发明相同轮子,再次开发Seam。

Gavin King开发Seam是目的将那些被Rubby on Rails(RoR)吸引的程序员再次吸引回来,为什么认为能够吸引回来?前提是RoR肯定又不足之处(如将业务写在MVC的COntroller中,混淆层次,这是以丧失可维护性换来的快速性)。

再向前推理,为什么那么多热衷于Spring的人突然被RoR吸引,因为RoR肯定又Spring所没有,但符合程序员要求的心理,那是什么?快速简洁,也就是说,真正使用Spring开发一个完整带权限的项目,并不真正象他宣言和Demo展示的那样简单,甚至巨复杂,看看号称经典组合的Spring + Acegi关于实现基于容器的URL访问权限和组件访问权限的配置文件,配置行如此复杂,你的将来被捆绑在Spring下一个子框架Acegi上,Spring不是号称优雅解决一切吗,为什么Acegi的权限配置如此让人看不懂?

看看那下面的配置:

http://www.jdon.com/jive/thread.jsp?forum=61&thread=25141&message=18262459#18262459

在使用Struts+Spring+Hibernate架构中,最大的缺失就是:没有状态管理支持,只依靠Hibernate那点可怜的缓存是不行的,但是直接使用EJB的有态Bean本身又有不方便之处,这也就是Seam突出状态管理特点的原因。

没有感到Session支持这种缺憾的程序员都是因为他没有状态设计概念,他实际是使用这种架构做他的围绕数据库编程的软件系统,然后自我安慰以为达到OO设计最高水平,进而狂欢Struts+Spring+Hibernate简单得不是高科技了,都是自欺欺人罢了。

没有状态管理支持的意思就是:使用数据库持久替代状态管理,不使用内存缓存支持状态管理,打个比喻,当你在编辑文档时,是不是每个敲入每个字后,都要保存一次?我想大多数人不会因为怕掉电坠入如此神经质的操作中,但是你在企业开发时,为什么每次将新的状态数据都保存到数据库中进行持久呢?

所以,我们需要基于内存(如httpSession)的状态管理,而不是基于数据库,如果不抛弃数据库概念,就不能完全坚持OO面向对象的思维,就会产生思维方式的错误,见下面案例提问:

关于要经过7,8次审核的商品发布数据库设计:

http://www.jdon.com/jive/thread.jsp?forum=46&thread=27544

也就是说:在java世界中,没有一个架构象.NET世界那样主宰世界,包打天下,完美无缺,总是各有所长,我也不相信有完美无缺的架构,如果微软硬说它的东西是,那么出问题的就是微软本身,所幸bill gates 2008年前就退出日常管理了,他的时代要画个句号了。

banq
2006-06-30 14:47

我的最终目的不是说:EJB就是好,如果你得出这个结论,而且你认为板桥里人我就是维护EJB的,说明你的脑子还是简单了点。

在java世界中,没有一个架构包打天下。

如果说EJB2.0忽悠了你,那么Spring是不是也在另外一处忽悠了你呢?如果说RoR好像不错,但是是不是又在某处忽悠了你?按起葫芦飘起了瓢,这在java世界反复上演。

所以,你当心EJB3和Seam再次忽悠你。

8Go 1 2 3 4 ... 8 下一页