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 相关。