ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:29.17KB ,
资源ID:24029982      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24029982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(J2EE系统架构师参考手册.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

J2EE系统架构师参考手册.docx

1、J2EE系统架构师参考手册J2EE系统架构师参考手册Derek C. Ashmore 著Mellon 译Mellon的前言 1前言 2本书如何组织 3资源 4欢迎反馈 4答谢 4第一章 项目开发团队和项目生命周期 6项目开发团队: 角色与职责 6技术架构师(Technical Architect) 7项目经理(Project Manager) 9业务分析师(Business Analyst) 9界面布局设计师(Layout Designer) 10表现层开发者(Presentation-Tier Developer) 10业务逻辑开发者(Business Logic Developer) 11

2、数据建模工程师(Data Modeler) 11数据库管理员(Database Administrator) 11数据迁移专家(Data Migration Specialist) 11配置专家(Infrastructure Specialist) 12测试专家(Testing Specialist) 12项目开展方式(Project Life Cycle Approaches) 12瀑布式(Waterfall Approach) 12迭代式(Iterative Approaches) 13那种方式更流行呢? 14考虑混合模式 14更多读物(Further Reading): 15第一部分:J

3、2EE应用的筹划 15第二章:项目的定义 16Mellon的前言 首先我觉得这是一本好书,至少看起来是。我在上得到了免费的PDF版本,并且是限制打印的版本,这本书有印刷品出版,在亚马逊书店上有的卖;只是咱中国开发者们赚的是人民币,说的看的通常都是中文;所以,无论从钱的角度还是从看书的角度,到亚马逊在线书店购买英文原版.,呵呵,至少我是舍不得。 我打算把它翻译出来给大家看,今天是国庆节长假的第五天,我完成了第一章。在此之前,我从未翻译过任何XX,有中肯的建议欢迎提给我:mellon.想骂人的,请免开尊口;唉,曾经在J道论坛因评价Hibernate被骂,心有余悸,以后就很少到论坛回答别人问题了。

4、大学里我是学化学的,我也没能幸运的结识学法律的朋友。所以,关于我这样的翻译别人免费发布在网上的文章,并继续免费发布在网上的行为,是否合乎法理,还不太知道。有谙此道的朋友,请指点一二。 其实我从上个月、或者是上上个月就开始了,只是一直比较忙,所以直到今天才完成这么一点点,糊口先啊,翻译这本书毕竟没有经济效益。如果有朋友愿意一起完成,我将非常欢迎。前言 J2EE系统架构师参考手册写给技术架构师和那些从事系统设计、领导J2EE应用开发的资深开发者。通过大量的指导性策略、忠告、技巧和最佳实践等,帮助架构师领导从需求分析到项目部署的整个开发过程。为了帮助你成为一名成功的J2EE技术架构师,本书向你阐述如

5、下几个方面: * 一个满足技术架构师角色需要的基本技术框架 * 技术架构师视角的策略、技巧和最佳实践 * 提高代码可维护性的技巧、策略和最佳实践 * 完成并传达设计的技巧、策略和最佳实践 * 一个帮助架构师的开源实用工具包 * 一些典型应用的模板实现 * 项目估算和项目计划 这本书并不是为Sun公司J2EE技术体系认证考试写就的学习指南。另外,这本书也不是写给新手的。本书的读者需要了解Java句法,需要有中级以上的编程技能,以及下面的基本知识: * Enterprise beans(最好写过至少一个Entity Bean和一个Session Bean) * 关系数据库,SQL和JDBC * X

6、ML以及如何通过Java解析XML * JSP和Servlet * 团队式系统开发 * 面向对象设计的概念 一个常见的错误看法是:J2EE应用难以置信的复杂。技术文章和书籍的作者们总是喜欢讨论那些非常有深度和难度但却很少被用到的技术,从而无意中支持了这个谬论。例如,许多文章讨论企业级Java Bean的时候,从细节性的描述J2EE事务处理能力开始;但是大多数J2EE应用很少用到J2EE事务管理。在本书中,我去掉了那些大多数开发者很少用到的复杂东西,给大家相对简单地揭示一个J2EE应用的真实面目。您的宝贵时间不应该浪费在那些在江湖中很少用到的招式和概念上,不是吗?本书如何组织 本书第一章描述了技

7、术架构师在大多数组织结构中所处的角色;还讲解了本书中的项目生命周期是如何对应XP、RUP或者其它开发模式的。 第一部分细述如何通过用例分析来定义项目目标,以及如何制定项目初步计划和划分项目范围。由于这些对于项目的时间和预算不可或缺,所以本部分讨论的主题还将帮助你成功完成这些任务。大多数常见的导致项目失败或超出预算的原因是项目的目标和范围没有明确定义,而不是技术问题。 第二部分着眼于对象模型和数据模型的具体实践,描述了它们需要的细致程度,并举例说明了常见的一些错误。此外,你还将学习到如何构建与外部系统的接口,以及如何改进项目计划和相关的项目估算。本章中的模型化技能是有效地向开发者传达设计的关键。

8、 第三部分展示了J2EE应用方方面面的一些实现片段和指导方针。你将会学习到如何给一个应用分层以最小化升级和变更给应用带来的冲击。你还会了解CementJ,一个开源的辅助框架工具,它使得您可以流水化进行每一个层的开发。此外,第三部分祥述了在测试、异常处理、日志、线程等方面你作为架构师需要做出哪些应用架构方面的决策;你将会学习到一些用于设计主要关键部分的技巧和手段。技术架构师在实现方法和策略方面的失误会在相当大程度上减缓项目进度并且增加bug的数量。 第四部分提供了开发测试程序和过程改进方面的指导方针和片段实例。这些建议在子在如何使应用更加稳定和易于维护方面有指导意义。此外你还会学到,哪些情况下意

9、味着对应用必须进行重构。读了这一部分,将会使你在后续项目中取得更多成就。资源 本书使用了开源项目CementJ,一份Java API。CementJ项目提供了大多数J2EE应用需要用到但还没有在JDK规范中直接提供的功能。CementJ协助给你的应用提供坚实、健壮的基础,在JDK和你的应用间提供有力衔接。CementJ的使用,能够帮助你流水化进行开发工作。CementJ二进制文件和源代码可以在欢迎反馈 我一直对能提升本书后续版本品质的书评和建议非常感兴趣。请把您的反馈信息直接发送给我:dashmore。如果您的评语或建议是同类中的第一个并且在下一个版本中使用的话,我会非常荣幸送给你我亲笔签名的

10、新书。答谢 有好几个人在本书的编写中给了我莫大的帮助,我衷心向他们致以感谢和感激之情。没有他们的帮助,我恐怕很难完成这本书,他们分别是: Ron Clapman Ron Clapman是芝加哥地区的一位够年头、经验丰富的资深架构师。Ron于80年代在AT&T的贝尔实验室开始了他的职业生涯。那时候,面向对象软件还是新生的成长中事物,在那里他接触到了相关的第一手资料。如今,他提供广泛的服务,担任了多个角色,例如:技术项目经理,业务分析师,企业应用架构师以及一些要求苛刻的应用和系统的开发者。Ron 作为架构师、讲师、教员和监护人都备受赞誉,广为推崇。 Jeff Hayes Jeff Hayes是一个

11、独立的应用软件工程师,他在数学运算、金融、医疗系统应用的开发方面,以及生物电信号处理方面都颇有造诣。他的客户来源广泛,有核电工程方面的;医疗器械质量保证方面的;医院系统、银行系统方面的;以及信托管理方面的。作为芝加哥软件工作室的主人,Jeff在他的工作中注重教育和长远规划。他拥有西北大学电气工程的硕士学位,他也是IEEE的成员。 Ross MacCharles Ross MacCharles 是加拿大渥太华Nakina系统的首席架构师。十四年来,他在各种商业领域一直是颇有影响力的解决方案提供者和技术领袖;包括全球电讯、联邦政府、国际通讯社、大银行和保险公司。Ross可以通过邮件联系:rossm

12、acc. Jason Prizeman Jason Prizeman 是一名技术架构师,专门从事J2EE框架研究已经有5年多了。在一系列商业部门的大量工程中,他的项目都大放异彩。 Mike Trocchio Mike Trocchio 是Leading Architectures Inc.(一家芝加哥地区的咨询公司)的资深架构师。Mike现在正致力于设计、开发和部署大型英特网应用。他在信息科技的方方面面都非常有经验,包括需求收集,对象建模,面向对象设计,数据模型化,代码开发、实现和性能调优方面。他还在应用的安全性方面,团体安全性方案方面有所建树,另外他还善于在应用中使用开源产品以节省时间和金钱

13、。Mike可以通过邮件联系:mtrocchio. D. Scott Wheeler Scott Wheeler 在过去的16年中几乎担当过系统研发中的每一个角色,使用过各种各样的技术。现在他是开源项目研发和推广的技术架构师。他是Open SourceDevelopers Kit( Inc.( Foundation ( 也可以通过邮件联系:dwheeler.第一章 项目开发团队和项目生命周期 本章立足于从头至尾建立第一个成功的项目。本章从阐述一个技术架构师是什么、一个架构师应该作甚么以及一个架构师如何与团队成员合作开始,然后着眼于一些可供选择的开发过程。成功创建一个项目的标准过程并不存在,所以许

14、多公司选择的是采用混合的方案。项目开发团队: 角色与职责 所有的J2EE开发团队都需要具有各种不同技能的成员来满足团队中不同角色的需要。在众多技能角色中,下面这些是使一个J2EE项目获得成功所必须的: Technical architect Project manager Business analyst Layout designer Presentation-tier developer Business logic developer Data modeler Database administrator Data migration specialist Infrastructure

15、specialist(system administrator) Testing specialist 虽然本书的焦点在于技术架构师角色,但是本书也定义了J2EE项目开发团队中的其它主要角色和他们相应的职责.在有的组织中,这些角色有不同的名称。例如,有些机构中基础设施专家被叫做系统管理员;一个测试专家被叫做测试员,或者有些机构将测试工作管理者和单独的测试员区分开来。不管这些角色叫什么,备齐这些角色会使你的J2EE项目更容易获得成功。 更进一步,一个人担任多个角色是可以的,如果项目足够庞大,多个人分担一个角色也是允许的。有些组织合并了技术架构师和项目经理的角色。也有些组织让一个资深开发者同时担任

16、数据库管理员或者系统管理员。或者师同一个开发者既忙于表现层工作也忙于商业逻辑层工作。在这里我不是推荐该如何组织一个开发团队,而仅仅是想交流一下个合理的J2EE项目团队中,应该设置哪些职能角色。技术架构师(Technical Architect) 技术架构师应确定项目需要用到哪些技术 在许多组织中,一些技术的选择是企业级行为。例如,许多组织有既定的硬件平台选择和软件平台选择(例如,J2EE容器提供商)。通常,选择什么编程语言,例如Java,是企业级行为。 不过,绝大多数应用都有尚未在企业级明确约定或选择的技术需求。在这里,我区分了企业行为进行的技术选择和个人行为进行的技术选择。例如,决定在服务器

17、端使用Java作为编程语言可能是企业明确约定过的要求,但是确定用哪个XML解析器,还是可能要由负责该应用的架构师来决定的。许多组织中,进行企业级行为的技术选择的人员和J2EE开发团队人员并不是同一批人。技术架构师通常负责选择用于项目开发的第三方开发包和实用工具,如XML的解析工具包的选用,是否使用Hibernate,Struts等。 技术架构师推荐开发方式和项目技术框架 一般来说,项目架构师向项目经理针对这些提供推荐和建议。例如,技术架构师建议项目经理将所有需求分析结果用UseCase 完整描述,并最好附有原型示例;或者建议设计文档使用对象化描述方式进行文档化等。 技术架构师提供从头到尾的设计

18、和应用结构 不同开发者给项目带来不同的先入为主的观念、习惯和选择。技术架构师扮演乐队指挥的角色,统一矛盾之处,保证不同开发者的成果能够很好的融合在一起。也就是维持整个项目的概念完整性和同一性,达到和谐。 技术架构师保证项目被良好的定义 项目的分析必须详细一致,概念统一,能为构建应用提供良好的基础。技术架构师通常要和项目经理、业务分析员一起合作定义项目。 技术架构师保证应用的设计被适当的文档化 在项目团队的开发者之间建立良好沟通的关键步骤是写好应用的设计文档。写文档的具体过程强迫架构设计师充分详细地考虑设计中的问题。形成的文档也可以保证在改变和增加项目团队成员时,不占用技术架构师的时间。对于开发

19、者来说,应用设计文档可以使得在技术架构师短时间缺席的情况下,工作能够继续良好开展;并且可以在不占用其它团队成员时间的情况下,解决应用设计中的冲突或矛盾。文档还可以将人员流动的影响和项目分离开来。 如果没有文档支持,项目团队新增成员,需要技术架构师口头传授设计给新人,必须通过口头交流设计,弱化了新增成员带来的好处。 技术架构师应该建立编码规范方针 因为不同的开发者有编码偏好;编码标准需要颁布,这样不同人编写的代码片断更容易糅合在一起。通常,系统架构师负责建立的编码规范方针包括下面几方面的内容: Exception handling Logging Testing Threading 技术架构师为

20、项目经理识别和分解任务 在J2EE项目中,这个作用尤为重要,因为J2EE项目往往比一般系统项目牵涉更多的技术层面。另一方面,帮助项目经理做估算和计划,也需要架构师提供项目主要任务的划分情况。 技术架构师为困难任务向开发者提供监护 如果开发者因困难的任务而放缓进度,通常是技术架构师帮助提供解决方案。技术架构师更多的是提供监护而不是亲自操刀去做实现。 技术架构师应贯彻编码规范的实施 作为编码规范的制定人,技术架构师最可能在编码规范没有被遵照时及时发现问题,因此应该担负贯彻执行编码规范的任务。项目经理通常关注的是开发任务的完成与否,而不是实现任务的代码是否遵照了编码规范。 直接审核代码是非常好的手段

21、之一。如果团队成员审核代码的话,任何开发者都很难绕开团队开发代码规范。 代码审核机制还是团队成员互相学习编码技巧的上好手段。技术架构师在这个过程中发现设计缺陷和漏洞,所有参与者从其余的团队成员学习编码手段和技巧。团队中最富经验的和架构师帮助和指导代码审核。为取得最好效果,代码审核应该在和谐友好的气氛中进行。 系统架构师应该为项目经理在项目估算方面提供的帮助 虽然项目成本和收益的估算通常是项目经理的职责,但是许多项目经理在J2EE技术体系方面经验不多,无法觉察到项目中所有应该做到的事情。 系统架构师应该在如何确定开发者定位方面向管理者提供帮助 虽然人员使用和任免通常是管理范畴的事情,但技术架构师

22、更能适合评价技术水平和价值。不正确的人员任用会对项目时间线造成相当大的损害。项目经理(Project Manager) 项目经理负责协调安排项目开发团队的所有任务。项目经理还要针对当前项目的事务和状态向管理层和最终用户代表做好沟通。甚至,项目经理还需要收集项目或项目团队所需的各种资源。技术架构师负责向项目经理提供技术方面的建议和指导。技术架构师还协助项目经理明晰必须完成的项目任务分工和和必须遵照的任务次序;以及帮助项目经理对项目所需资源和条件进行识别,包括项目团队成员的选择,从技术角度确认他们的技能是否适合。业务分析师(Business Analyst) 业务分析师负责面向最终用户,定义应用的

23、需求设计和创建应用所需要的需求细节。因为最终用户和开发者通常使用不同的术语,业务分析师还需要承担最终用户和开发者之间的翻译转换工作。通常一个业务分析师应该应该具有用户端的经验和开发者的经验。 随着项目进程不断向前,业务分析师的任务和角色功能逐渐弱化,但是并没有消失。开发者通常会在代码实现逐渐明朗,测试活动逐步开展的过程中附带提出一些细化的业务逻辑问题。业务分析师需要针对这些问题向用户方面寻求答案。技术架构师负责确认业务分析师定义的应用需求是适当的,满足开发和设计需要的。期望百分百的分析都能完成且正确,是没有道理的。毕竟,分析工作本身在一些程度上就是主观的东西。但是,分析的结果起码足够保证设计阶

24、段的工作能够顺利进行。界面布局设计师(Layout Designer) 许多应用,尤其是那些非常大众化的应用,需要专业的美工和布局设计。绝大部分技术架构师,通过他们自己的手段能够产生功能性Web页面,但那些页面通常丑陋且难于使用。图形界面设计,是技术更是艺术。通常,界面布局设计师主要和业务分析师以及其它的业务方面的代表们一起工作,作出相应的设计。但界面布局设计师也可一和表现层开发者一起创作系统原型。 技术架构师需要负责确认界面设计在技术上的可行性。我见过许多Web 页面的设计众,使用了一些在word中才允许的特效,但这些HTML是不支持的;例如:使用旋转90度的文本。技术架构师应该尽可能早地纠

25、正这些错误。表现层开发者(Presentation-Tier Developer) 表现层开发者,负责为整个应用编写所有与HTML, Javascript, JSPs, Applet/Swing code, Servlets 等相关的代码。一般来说,任何直接产生用户界面的程序,都是表现层开发者们的职责范围。表现层开发者常常和界面布局设计者合作,由表现层开发者创建原型和最终实现。表现层开发者还与架构师一起确定前端结构和业务导航设计。 技术架构师负责保证所用的设计模式是可维护的,可扩展的。导航问题通常是复杂的容易导致产生难维护的代码。架构师处在很好的位置上,去发现和纠正可维护性问题,以及凸现出的其

26、它方面的技术问题。业务逻辑开发者(Business Logic Developer) 业务逻辑开发者负责编写应用中所有不可见部分的代码:包括Enterprise bean,Web services,RMI services,CORBA services,业务对象(business objects),以及数据存取对象(data access objects).也有人把这些不可见部分称为应用的服务器端组件。业务逻辑开发者通常是Java专家,与架构师合作紧密,并且还在需要的时候做性能调整方面的辅助工作。技术架构师给业务逻辑开发者提供指导。通常,技术问题都出现在服务器端组件,毕竟服务器端组件是应用中最

27、复杂的部分。因此,技术架构师常要监督业务逻辑开发者的工作。数据建模工程师(Data Modeler) 数据建模工程师根据业务逻辑分析的信息,对应用中所有需要存储到数据库的数据进行识别、定义和编目(catalog)。数据建模通常需要将应用的数据用实体联系图(ER diagrams)描述出来。DBA根据实体联系图生成数据库的物理设计。因此,数据建模工程师和DBA常常是同一个家伙。 技术架构师需要负责确认数据建模是适当的。和业务逻辑分析工作一样,期望数据建模工作100正确是无理的。不过,如果数据模型基本上遵照第三范式完成的话,未来的建模的变化和数据库的变化就会很小了。数据库管理员(Database

28、Administrator) 数据库管理员负责遵照应用的业务需求设计数据库,并搭建和维护应用所需的数据库和环境。通常,数据库管理员要辅助性能调优,还要帮助业务逻辑开发者诊断应用开发中在数据存取上出现的问题。有时候,数据管理员既是业务逻辑开发者,还充当数据迁移专家。 技术架构师和数据库管理员一起解决有关数据存储的问题。不过,通常情况数据库管理员还是首先和数据建模工程师以及业务逻辑开发者沟通解决问题。数据迁移专家(Data Migration Specialist) 有些应用,例如哪些涉及到数据仓库的应用,很大程度依赖与从其它来源做数据迁移工作。数据迁移专家书写并管理所有脚本和程序,保证在运行中,

29、将应用所需的数据转移出来。如果一个应用少有或没有数据迁移工作,则这个角色就没有,或者由数据库管理员一并充当了。 系统架构师为数据迁移专家定义数据迁移需求。和数据迁移专家一起解决数据迁移中的问题,则是技术架构师的另一个角色。配置专家(Infrastructure Specialist) 基础结构专家负责提供全部研发、测试、生产环境和部署方法。正规的研发和部署配置,能节省时间和精力。职责在于容器管理,书写部署脚本,辅助开发者们诊断测试环境的问题。 架构师定义配置需求给配置专家。架构师和配置专家一起决定所需环境的数量、特点以及每个环境所需的支持等级。许多项目至少需要一个开发环境、一个测试环境和一个生

30、产环境。有些组织中将配置专家的角色和技术架构师的角色合而为一。测试专家(Testing Specialist) 一个测试专家通常是面向细节的,测试专家负责确认软件产品符合规范,并发现那些不该被漏过的bug。一般而言,测试专家至少需要具有软件产品所涉及业务的基础知识。 技术结构师需要和测试人员一起明确配置需求和所需的支持。项目经理和业务逻辑分析师通常需要创建测试计划文档和测试方法。因此,架构师在测试工作方面,通常是提供一些必要的支持。项目开展方式(Project Life Cycle Approaches) 关于一个J2EE项目周期该如何构化,有着不同派别的方法论。本节描述这些派系的观点和我对于此的看法。本书的指导方针是和所有这些方法论都相融合的。瀑布式(Waterfall Approach) 项目以瀑布式开展,需要在编写代码和测试之前,完成所有分析和设计工作。This approach was commonly used when most development was mainframe-based 并且仍然是最多公司选择的方式。 基于瀑布式研发的项目,通常比较庞大,且交付时期比较长。因此,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1