J2EE这种应用模型允许不同的开发人员同时进行开发的各个元素。这里阐述一下对不同层次的设计人员,开发人员的技术要求。对以下几个分类进行描述。 设计师组建团队
表现逻辑层的团队角色
业务逻辑层等团队角色
数据库访问层的团队角色
团队的组成可以根据人员的数量和系统的范围大小。例如,不一定所有的角色都要分配,有些人可以担当不能的角色。
设计师
在基于组件的应用系统开发中,一个或几个人必须对这个系统的整体需求有全面的了解,比如系统的控制流程,和其他的接口等等。有些公司称这个角色为总工程师,不管怎么叫,这个角色非常重要,他承担协调不同开发小组之间的工作,帮助他们考虑系统这个“大图”。
表现逻辑层的团队角色
在表现层,用户界面是动态生成的。需要如下开发人员:
Java servlet 开发人员
JSP 开发人员
HTML 设计人员
美工人员
客户端的JavaScript 开发人员
Servlet 开发人员建立表现层的逻辑,而其他人员建立表现的形式。
Java Servlet 开发人员
Servlet处理页和页之间的浏览,会话管理,简单的输入验证。Servlet也将业务逻辑的元素连接起来。
Servlet开发人员必须理解一些相关事宜,HTTP请求,安全,多语言,和一些页面元素如session, cookie,超时等等。J2EE的应用里面,servlet必须用Java来写,Servlet可能会调用JSP, EJB, JDBC等等。因此,servlet开发人员要与应用系统的其他人员紧密合作。
JSP 开发人员
JSP开发人员与servlet开发人员密切合作来定义系统的表现层页面。即使在复杂的开发项目里,JSP和servlet的开发人员也可能是一个人。
然而,如果一个系统中大部分Java在servlet而不是在JSP里,JSP人员就不必对Java非常熟悉。
HTML 设计人员
HTML 设计人员对HTML页面进行优化。例如,他可能要完成以下任务:
保证在不同的浏览器中所有的页面都能正常显示
保证低速的调制解调器访问也不受影响
对JSP设计人员的页面进行进一步的优化
美工人员
美工人员创建图片等等。这些图片要能小体积,快速下载。美工与HTML页面人员紧密合作。
客户端的JavaScript 开发人员
使用客户端的JavaScript有很多原因。比如,可以处理简单的输入验证,不必提交给服务器,还可以让用户界面更生动。这个角色和servlet, JSP人员紧密合作。
业务逻辑层的团队角色
业务逻辑层包含业务规则和业务实体。需要以下人员:
Session bean 开发人员
Entity bean 开发人员
Session Bean 开发人员
Session beans包含业务处理和业务规则的逻辑。比如,一个session bean 可能设计成计算一个支票的税率。如果一个系统面临处理经常变化的复杂逻辑,而又大量使用session bean,结果是,session bean就需要不断的更新。
Session bean 的开发人员一般是一个领域的专家,理解复杂的,专门领域的逻辑,还有数据验证的规则。这个人员与servlet和entity bean开发人员紧密合作。
Session bean可能需要调用JDBC接口,和其他的EJB。无状态的session bean系统运行的会更好一些。因为,如果计算费率是一个有状态的session bean,系统就必须访问一个保存bean的状态信息的服务器。如果那个服务器恰巧出现问题,整个流程就会受阻。
Entity Bean 开发人员
Entity bean代表永久的对象,如一个数据库中的一条记录。Entity bean开发人员的任务是设计一个面向对象的所有业务数据的组织图。建立面向对象的试图意味着要将数据库中的表(关系型的)映射成entity bean。例如,开发人员需要将客户表,发票表,和订单表转换成相应的客户,发票,和订单对象。
一个entity bean 开发人员与session bean, Servlet开发人员密切合作,保证应用系统提供快速的,灵活的,可扩展的对业务数据的访问。
Entity bean 可能会大量的调用JDBC接口。而entity bean 之间的调用会很少。
数据库访问层的团队角色
在数据库访问层,开发人员需要建立关系型数据库的ER图,数据字典等等相关文档。所有对数据库的修改,访问等等权限操作都要经过数据库访问层开发人员。这个角色在大部分项目中担当DBA的角色。
团队组建之后,就可以开始设计用户界面。
设计用户界面
建议从前到后开始设计应用系统。就是说,先设计用户界面,再设计EJB,这样效率最高。
下面提一些常用的建议性问题:
页面流程是什么?
每个页面上的命令按钮是什么?
是否适用frame?
是否有公司标准的Logo,广告条幅?
在什么地方需要登录过程?
多语言的问题?
这些和设计servlet, JSP相关。