阅读更多

10顶
4踩

编程语言

原创新闻 Seam 2.1中有什么新特性?-采访Peter Muir

2008-08-07 09:42 by 副主编 QQbyte 评论(16) 有8529人浏览
在这个采访中,Peter Muir预示了即将发布的Seam 2.1的新特性:包括支持GWT和Wicket,提升的身份管理/许可/单点登录的安全性,更好的支持RESTful应用开发。

在这里下载完全视频:Download the Podcast Here (14 MB)


完整采访内容如下:

问:我们正在采访Peter Muir,他是Seam,Web Beans和Rich Faces的核心开发者。Peter现在主要工作包括:让Seam超越JSF,让Wicket成为视图层第一选择,创建Web Beans参考手册。Peter Muir,你好,告诉我们一些关于你的事情,以及你在JBoss的工作?

Peter:我住在苏格兰的爱丁堡,我花费大量的业余时间在爱丁堡爬山,这是我认为爱丁堡是最值得居住的地方的原因。

至于我在JBoss的工作,我做JBoss方面工作大概一年,Seam方面工作一年半。在JBoss我也是Web Beans参考手册项目主管。同时我也做了大量Rich Faces方面工作,这是一个JSF组件库。我同时在JSF 2.0专家团队中代表JBoss。

问:那么,Peter,你能说说什么是JBoss Seam,它主要解决什么问题?

Peter:Seam是一个应用框架,目标是创建一个企业级应用。它提供的第一件事是一个同一标准的组件模型,能够完美集成JSF/EJB3和JPA。当我说完美集成,我的意思同时指在概念上,以及在实践上你写应用,完美到感觉你在写同一个系统。

第二件事是我们提供申明式状态管理,支持会话(conversation)。而且自从Seam开始这样做,这已经成为一种流行趋势。另外我们也提供整套解决方案,带走当你开始尝试到底使用何种技术时面对的困惑。这套解决方案深度整合技术比如:AJAX,JPS,商业流程管理,规则引擎,安全管理等。

而且我们也提供整套框架的引导,我们不会强迫你只用一种方式来设计你的应用。我们希望你框架帮助你来设计应用,而不是让你围绕框架来设计应用。

问:现在的Seam 2.0版本的主要功能是什么?

Peter:现在的2.0版本是去年11月份发布的,已经过了大半年。我们对1.0版本做了大量改进,包括提供更好的依赖管理系统,允许在EL中使用参数,使Seam组件架构和包更干净,你能看到逻辑结构做了更好的设计。

2.0也有很多新功能,比如能够用Groovy而不是Java写组件,集成Hibernate搜索,增加在web页面和PDF中画图表的JSF库,集成Quartz库做异步管理和计划任务,集成RPC-style web services等。

问:很多开发者使用不同的开发环境,包括不同的容器和开发框架,Seam在除JBoss应用服务器之外的容器运行如何?

Peter:是的,在最近的几个月中这是我们优先级最高的一个任务,提供Seam在其他应用服务器上的支持。现在,我们支持WebSphere,WebLogic,OC4J(Oracle容器),GlassFish 2,Tomcat,当然支持JBoss应用服务器,包括GA 4.2和即将发布的JBoss 5。

问:很好,目前Seam 2.0只支持JSF作为显示框架,2.1会不会有所改变?

Peter:是的。Seam目前支持GWT,但是没有深度集成,这是Seam 2.1的目标。

首先,我们打算支持Wicket,作为第一选择的显示层,这包含着一些技术细节:我们所作的是让你能够明显的通过Wicket使用Seam组件,使用annotation控制注入,能够控制会话,从Wicket内部类中使用annotations,能够控制你的业务进程管理任务等,简单的说,就是所有的控制事务你能够在你的应用显示层完成。

我们也已经支持GWT,我们正在改进,如果你想要使用RIA,我们主要考察的RIA框架是Flex,现在已经有两个关于Flex集成的竞争项目。一个是Exadel提供的名叫Flamingo的项目(Exadel的Flamingo项目是一个快速启动后台使用Java构建的RIA应用的工具),另外一个是开源项目名叫Granite Tide。我们正在Seam中捆绑支持和例子。

问:首先支持GWT和Wicket是不是意味着Seam打算放弃JSF,未来Seam如何对待JSF?

Peter:我认为现在很难给出回答。我们一定不会放弃JSF。我提到,我在JSF专家团队中作为JBoss和Seam代表,我们讨论过Seam回到JSF 2.0,在JSF专家团队有很多讨论。我认为JSF的强大体现在JSF是一个可以创建其他组件库的坚强基础,比如Seam,这是JSF 2.0设计的核心。而且我认为JSF是一种标准,未来会更强,JSF 2.0拥有光明的未来。

至于Seam要引进其他的显示层框架,是因为我们希望给开发者提供更多的选择。

问:现在Seam支持GWT和Wicket,是不是有很多人将选择这两个框架?

Peter:是的,GWT现在很流行,界面也很好看,所以我觉得会有很多人使用GWT,但是Wicket,我不认为采用者会超过GWT或JSF,Wicket是一个很有趣的选择,因为它类似JSF,是一个面向组件的框架,Wicket的性能非常棒,而且Wicket非常容易来执行客户行为和客户组件,在Wicket中,你总是使用Java,而不是XML。

问:很好,那么Peter,Seam 2.1中有些什么新功能呢?

Peter:有很多更新,简单来说,我们在安全性方面有了巨大提升,首先是身份管理。所有的应用都需要身份管理:增加用户,修改用户密码,保存用户在数据库中或LDAP服务器中等。Seam新版本增加了很多扩展许可模型,你能够创建一些静态许可定义你自己的许可体系,用来使用权限控制列表类型许可,在现在顶级许可中,可以是一个非常简单的许可,或者基于Drools规则引擎(Drools是一款开源的业务规则引擎)。

在安全性方面我们的另一个改进是单点登录,将通过JBoss单点登录库来提供,我想这一点对于大型企业用户非常重要。

下面一件事情就是,我感到很兴奋的是,Seam 2.1将提供给RESTful应用更好的支持。我们通过集成JAX-RS(JSR-311),RESTful web services java标准,和RESTeasy,由另一个JBoss的成员Bill Burke完成。我是一个REST fan,我也很期待看到Seam 2.1如何支持RESTful应用。

另外Seam 2.1的性能也有很大进步,我正在做大量关于性能和扩展分析方面的工作。

问:Peter,你提到你也在做WebBeans方面工作,你能够说说这对于Seam用户意味着什么吗?

Peter:当然,WebBeans,不仅仅基于Seam,它同时基于Juice和Seam。我提到是什么组成了Seam?申明式的状态管理和统一的组件模型,这同样适用于WebBeans。WebBeans是一个完整的新的注明前后关系的组件模型,所以它替代了所有现存的会话控制,注入支持,组件定义,组件生命周期,事务集成,JPA集成和验证validation-它尤其在框架内提供了验证支持。

这对于Seam意味着什么呢?Seam 3将基于WebBeans规格,并且Seam的角色能够通过WebBeans实现,提供我之前提到的集成套件,提供所有所有现存的:安全性,业务进程管理集成,REST集成,也许还有集成AJAX等等。

你希望在Seam 3中运行哪些现存的Seam组件呢,在新的模型下?不会使用WebBeans,因为WebBeans是一个完全新的容器,但是,我们在Seam 3.0系列中将提供运行Seam合法组件的仿真层。

那么,另外一个大问题就是:什么时候Seam 3会发布?我不知道,我估计在2009年早期将发布第一个beta版本。

问:现在有什么阻碍阻止WebBeans成为一个官方的标准?

Peter:是的,我不确定阻碍来自专家组,我也不知道未来是怎样。但是我的理解,通过和Gavin,专家组的主管交流,他希望看到更多spec实现,当方案正式确定前。

所以,我们正让更多spec实现。

问:现在市场上有哪些工具能够帮助Seam开发,你能比较一下吗?

Peter:当然,我认为JBoss工具是第一个,我们在JBoss工具中增加了Seam支持,没有其他工具拥有这种支持。

问:最后你还想和我们的读者说什么吗?

Peter:如果你还没有用过Seam,你一定得试一试,如果你已经使用Seam,你可以到我们的社区看看,我们的社区非常棒。
来自: java.dzone.com
10
4
评论 共 16 条 请登录后发表评论
16 楼 kenter1643 2008-12-25 15:34
seam的出现本来就是扩展完善jsf的一个框架
我们现在做的项目就是基于seam的
至于seam的新方向更趋向一个系统化 而不是像spring那样趋向一个平台
15 楼 yhzrobert 2008-08-08 17:40
java版 的Ruby on Rails
14 楼 cuiyi.crazy 2008-08-08 11:15
seam以jsf ejb起身;主要是打规范;现在又学spring什么都想支持,美其名曰多一个选择,哎
13 楼 QQbyte 2008-08-08 10:35

引用
"我们一定不会放弃JSF" 我想这个只是他出于某种原因必须要这么说
但是他心里是不是这么想呢?


哈哈,的确是这样。
12 楼 fins 2008-08-08 10:26
JSF?
呵呵 我会一如既往的 看衰它

"我们一定不会放弃JSF" 我想这个只是他出于某种原因必须要这么说
但是他心里是不是这么想呢?
11 楼 bottom 2008-08-08 07:05
在表现层加入其他frameworks,。。。在integration层也可以选其他frameworks,。。。在其他层也可以选其他frameworks。。。全部通过配置来搭配。最后,岂不是跟spring一样了?
10 楼 robbin 2008-08-07 15:09
很好,Seam确实应该提供JSF以外的更多选择。
9 楼 guoshiguan 2008-08-07 15:00
看起来前景真的很不错,
8 楼 打倒小日本 2008-08-07 14:42
支持JSF 支持Seam
7 楼 hetylei 2008-08-07 14:09
引用
加上GWT和Wicket就好些吗?如果component base的web表现层框架不被接受,那结果还是一样的。

GWT和wicket社区很活跃,但也都有不成熟的地方
个人感觉比较适合于企业应用,不太适合web应用

不管怎么说对于GWT和wicket都是好消息
6 楼 dingyuan 2008-08-07 12:50
obviously ,the person in the news is  a geek
5 楼 vieri122 2008-08-07 12:32
引用
JSF至少目前看来还是seam普及的一个障碍。


seam的普及程度与JSF无关!
个人觉得在某种意义上JSF会给seam带来更好的发展空间
4 楼 fkpwolf 2008-08-07 11:54
The time of Seam has past
3 楼 upheart 2008-08-07 11:41
引用
JSF至少目前看来还是seam普及的一个障碍。

加上GWT和Wicket就好些吗?如果component base的web表现层框架不被接受,那结果还是一样的。
2 楼 yhzrobert 2008-08-07 11:40
very good!
1 楼 johnnyhg 2008-08-07 10:32
JSF至少目前看来还是seam普及的一个障碍。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • visual c++ 6.0 完整扫雷源代码

    绝对好用的扫雷源代码,想以前我到处找一些源代码,费好大劲找到的一般都不好使。这个代码有完整的visual c++6.0工作区,打开直接编译就能执行了,可以让满足编程初学者的好奇心,所改即所见。

  • c++简易版扫雷游戏

    c++小练习——简易版扫雷游戏,代码如下: #include<iostream> #include<cstdlib> #include<time.h> using namespace std; void menu(); void game(); void initialize_mineboard(char mine[][11], char set); void print_mineboard(char mine[][11]); void set_laymine(cha

  • 贪吃蛇完美版(VC++6.0)

    /*******************************************************/ /*本程序仅仅实现贪吃蛇最基本的功能,可供初学C/C++者参考*****/ /*******************************************************/ # include <iostream> # include...

  • C/C++语言使用数组和函数实现控制台扫雷游戏

    C/C++语言使用数组和函数实现控制台扫雷游戏

  • C语言:扫雷游戏演示和说明

    我们提供给大家的扫雷游戏,不要求大家精通 C 语言,也不会涉及到指针的使用,只需要学会以下几个知识点即可: 会使用变量(int、char)和二维数组; 能够懂得函数的声明和使用; 掌握 C 语言的分支结构(if-else 和 switch 语句)和循环结构(while 和 fo() 循环); 设计扫雷游戏的主要目的是让大家夯实 C 语言基础,训练编程思维,培养解决问题的思路,领略多姿多彩的 ...

  • MFC小游戏之坦克大战

    这是基于MFC下的坦克大战游戏,编程工具使用VC++6.0。 下面将详细介绍如何一步一步实现坦克大战小游戏。 1.新建MFC工程 新建一个MFC工程,应用程序类型选择单文档类型,点击完成即可。 2.新建坦克大战类 3.定义结构体及变量 根据分析可知,坦克大战游戏主要有三个部分,即坦克,敌机,子弹。故在类的头文件中定义相应的结构体和变量。 由于坦克只有一个,敌机和子弹有多个,因此敌机和子弹使用结构体定义,坦克使用变量定义。在TanKeWar.h添加代码具体如下 typedef s

  • 用C/C++制作一个简单的俄罗斯方块小游戏

    用C/C++制作一个简单的俄罗斯方块小游戏

  • c++开发游戏

    使用 C++ 开发游戏是一项复杂但充满成就感的任务。通过选择合适的引擎、掌握基础编程技能、理解游戏的核心概念,你可以开始设计并开发属于自己的游戏。C++ 的高性能和灵活性为你提供了无限可能,无论是小型的 2D 游戏还是大型的 3D 游戏,都能通过它实现。

  • 面向对象程序设计扫雷小游戏.cpp

    扫雷C++代码实现 面向对象程序设计 大二项目实践

  • c/c++游戏编程之扫雷

    扫雷是Windows平台的家喻户晓的经典小游戏,本节内容将讲解扫雷的开发细节,并完成控制台扫雷的开发。

  • C++简单扫雷

    简单扫雷 操作方式: wasd移动,q标记,e翻开 需求: 1、e翻开,如果是数字显示,0即周围无雷继续翻开周围格,直到无可翻的 2、如果是雷结束游戏,显示全部雷位置 3、e已经翻开的且周围8格标记雷数=该格数字,自动翻开其余格,有雷结束游戏 4、当所有非雷位置全部翻开游戏结束,胜利 5、生成时保证第一次点击不是雷 默认是16 * 16大小,共16 * 16 / 9 = 28个雷 map用来存雷和数字 map2用来存状态(未翻开、翻开、标记) #include<iostream..

  • c++实训游戏开发 扫雷项目

    开发实训教程 (C#版)(... C++Builder精彩编程实例...“扫雷”的设计为技术剖析,由浅至深,层层引导...免费下载。阅读本书应具有C++面向对象程序设计基础。目录...

  • C++ 扫雷小游戏实现(小白入门 + 详细解析)

    扫雷小游戏具体实现 寒假的时候作为一个接触C语言一个学期的咸鱼,笔者尝试挑战了贪吃蛇的编写 不过当时的笔者在编写过程中仍然大量借助了其他各路大佬的思路与算法 时至暑假,笔者决定编写扫雷小游戏,并且全程尝试按照自己的设计思路来编写 虽然过程经常遇阻,最终设计也存有大量优化空间 但在独立的编程中笔者还是有了很多收获 以下尝试从头解析自己的程序,希望也能对大家有帮助(滑稽) 程序结构 我的将自己程序整理...

  • 【C语言】之实现俄罗斯方块游戏

    实现思路: 关键点是使用闹钟信号,闹钟定时一段时间触发信号函数,在信号函数里对方块进行自动下落操作,而主线控制界面显示以及处理用户的输入。 共有两个文件 main.c 和 data.h,需要把两个文件放到同一目录下 main.c /*********************** * name: main * 功能:实现俄罗斯方块小游戏 * 编辑人:王廷云 * 编辑日期:2017...

  • 源代码 用VC编写的小游戏全集 非常强大 全部可以直接运行 强力推荐

    用VC编写的小游戏全集 非常强大 全部可以直接运行哦!!! 里面有俄罗斯方块,连连看,拼图,扫雷,贪吃蛇,推箱子等等。 强力推荐……

  • 用C语言写一个扫雷小游戏(用VS2010实现)

    1.第一次踩不到雷 2.如果扫的位置不是雷,那么可以展开一片相关的非雷位置

  • 手把手教你用c语言实现扫雷操作(可能是史上最简单的了吧还有完整代码呢)

      今天我们要做的就是用C语言写出扫雷游戏的代码。对不起,今天是一个没有骚话的很正经的分享。还请继续看下去。不想看讲解的,完整代码在文末。OK,进入正文!   在写代码之前,我们应该要想想设计步骤。同上次写三子棋一样,我们第一步要做的就是打印游戏开始菜单,为了程序整体看上去显得比较整齐,我们把游戏菜单也用一个函数实现。代码如下。 void menu() { printf("***********...

  • 用C语言实现扫雷小游戏

    多文件实现扫雷游戏,并满足:第一次不被炸死 ,当坐标周围没雷,可以实现展开 创建两个12*12的数组,一个实现埋雷等操作mine[12][12],另一个则是用户所见的界面board[12][12]。 在mine.h中进行一些文件引入和定义及声明 mine.h #ifndef _MINE_H_ #define _MINE_H_ #pragma warning (disable:4996) #inc...

  • 基于VC的扫雷游戏开发

    基于VC的扫雷游戏开发 1.  引言:   1.1          背景: “扫雷”是Windows操作系统自带的一款小游戏,以其简约的界面而不失逻辑推理的玩法深得广大玩家的喜爱。该游戏通过左键打开安全的格子,格子上的数字表明了在此格周围的八个格子中地雷的总数;用右键标记地雷、待定地雷;双击已开的格子自动开出周围八个未开格子。将所有非雷格子全部打开则游戏成功,开到有雷格子则游戏失败。

Global site tag (gtag.js) - Google Analytics