科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道评论专栏: Rachel Reinitz:SOA 领域开发技能,成为 SOA 专家

评论专栏: Rachel Reinitz:SOA 领域开发技能,成为 SOA 专家

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

面向服务的体系结构的范围很广,可能使得任何试图开发 SOA 技能的人望而却步。但是您只需要了解您的角色,了解您所需要掌握的内容的广度、深度和相关经验,就可以制定出在 SOA 方面获得成功的方法。

作者:ibm 来源:ibm 2007年10月7日

关键字: SOA IBM 技术 中间件

  • 评论
  • 分享微博
  • 分享邮件

需要帮助您找到适合自己的方法吗?

我很荣幸和同事 Andre Tost 一起工作了好几年,而当他告诉我关于他正在撰写的评论专栏 文章“您是一名 SOA 专家吗?”时,我想,如果我有机会向这个专栏投稿,那么我将在他的文章的基础上进行扩展。在他的文章中,Andre 介绍了一名 SOA 专家要想取得成功所需具备的所有技能。在本文中,我希望与您分享一些关于如何构建这些技能以使得您能够获得成功的思想,以及我自己在这方面的一些经验。

在 IBM 中,我是公认的“SOA 专家”。即便如此,尽管我能够讨论 Andre 的文章中所介绍的所有主题(事实上,这些主题中有两个是我建议的!),但是对于每个主题,我能够提供建议的深度也是不确定的。事实上,当我在阅读 Andre 的文章中所概要介绍的详尽技能列表时,我有些担心他所设定的 SOA 知识杆的高度(对于我自己,以及其他的人),但是在最后一部分中看到他进行了下面的陈述后,就放心了:要彻底地了解 SOA 的每个方面并不可能,因此我们所能做的就是专注于它的某个特定部分,并同时保持对整体情况的足够认识,并且这一点正是编写这个专栏的目的。

深度、广度和经验

公司中什么样的角色能够称得上“SOA 专家”呢?Andre 和我充当了 SOA 顾问的角色,我们与顾客一同工作,以帮助他们使用 IBM 的软件产品实现 SOA。为 SOA 客户提供建议或指导的顾问,需要同时具备 Andre 所讨论的深度广度经验。在积极采用 SOA 的公司中,作为 SOA 项目的整体技术负责人,SOA Center of Excellence (COE) 的高级成员也将需要这些技能,他们同时需要广泛的知识和深入的技能。对于采用 SOA 的公司中的其他角色,如架构师、开发人员和组装人员,要实现最大的有效性,他们每个人都应该对 Andre 的文章中提到的所有主题有所了解,但不是仅仅深入研究其中的某些内容。

您应该如何具备专业技能呢?

有一些常规的方法可用于发展和加深您的技能。我做过很多指导性的工作,设计过许多内部 SOA 培训项目,当然,在不断更新技能的方面也具有一定的个人经验。关于感兴趣的学习内容,我们中的每个人都有自己的个人偏好(与自学相比,我更喜欢实践经验和课堂教学),所以我将讨论各种各样的选择。然而,充分认识到各种各样的学习方法和特定的资源远胜于我在这里提供的几条建议,所以,请您确保深入研究其他不同的选择。本文的目的是帮助您起步,而不是提供全面的内容。





回页首


学习的经验

在我看来,没有比在经验丰富的负责人或顾问的手下完成项目更好的学习方式了。对于任何新的经验,您可以通过在完成任务的过程中所碰到的挑战来学习,有时可能煞费周折。尽管在未知的领域中,您可以通过自学的方式学到很多知识,但如果有一个经验丰富的人引导或带领您进行学习,那么将可以极大地加速学习过程。通过导师的指导,可以更加容易地了解什么是正确的方法、错误的方法和最好的方法。

例如,我始终最喜欢的一个项目是,在 1997 年使用 ServletExpress(ServletExpress 是一种 Servlet 引擎,后来发展成为 WebSphere®)内部测试代码为某家银行开发技术验证的项目。这也是我的第一个 Java™ 项目。我与来自 Toronto 实验室的 Dave Stokes 合作,幸运的是,他对 Java 的了解比我多得多。我们绞尽脑汁努力地使用这些不带任何文档的代码,并且通过每天与 ServletExpress 开发团队进行电话交流,终于熬了过来。我们最终完成了这个项目,并且这次实践经验使我成为了真正的 Servlet 专家!

尽管我通过这个项目学到了很多东西,但是我所获得的知识来自于反复的试验和错误,并且花费了很长的时间。

1998 年和 1999 年,我和 Kyle Brown 组织了 WebSphere 体系结构研讨会,我们将其作为与客户之间的专题会议,在研讨会上,这些客户提供了各种需求、提议的体系结构和项目。在研讨会期间,我们深入地研究了体系结构和项目的细节,经常会请教一些最资深的 IBM 专家(如果需要的话)。Kyle 是早期研讨会的负责人,我们每次都在一起合作,这提高了我在 J2EE™ 最佳实践、WebSphere 应用服务器、应用模式、构建项目计划和许多其他方面的专业技能。我直到现在一直认为,在 IBM 内部或者对于用户,最好的学习体验就是通过我们的团队所组织的、有专家指导的专题体系结构研讨会;现在,我们继续为 WebSphere 产品、SOA、ESB、Portal、安全和许多其他的主题举办各种研讨会。研讨会是一种很好的途径,可以加深我们的许多首席顾问和客户的首席架构师的专业技能。

教育

我也很喜欢正规的课堂培训。我认为,向知识渊博的教师请教问题并聆听课堂讨论,这样的机会是非常宝贵的。为了保持在我们的产品中和各种关键技术主题(如 SOA)方面具有最深入的技能,我们在 Software Services for WebSphere 组中花费了大量的时间进行培训,其中大部分是高强度的课堂课程。我们的内部教育是 IBM 提供的外部培训课程的基础。在我们的 SOA 架构师教育中,我们进行了团队培训,重点关注于以协作的方式深入研究各种主题。在我们的产品课程中,我们提供了各种实践实验室。当采用一种全新的技术或者产品时,课堂教育显得特别关键。在我所参加过的专业课程中,最有价值的是 1994 年关于面向对象的编程和 Smalltalk 的系列课程,以及 2005 年在我们的 WebSphere Process Server 的为期两周的新手培训营。

对于我们的顾问和我们的客户,我们创建了基于 SOA 角色的培训路线。WebSphere Education 提供了这些路线图。例如,本文为集成开发人员角色(包括我在前面提到的为期两周的 WebSphere Process Server 新手培训营的客户版本)提供了一个示例:


图 1. 集成开发人员培训路线
图 1. 集成开发人员培训路线

Service Oriented Architecture (SOA) Education 提供了关于 IBM 的 SOA 培训(包括产品)的完整列表。

但是正如我前面所提到的,教育是个人的事情。您的个人课程可以是在线培训和实验的组合。对于实验,我特别喜欢学习教程或者文章系列,但我也知道有许多人,他们更喜欢通过创建自己的示例来深入地研究相关主题。独立式教育的优点是,可以自我调节进度,并且可以在有时间的时候参加。IBM 提供了一些基于 Web 的收费培训课程,以及各种免费教育内容。例如,我们提供了关于了解 Web 服务标准和 WS-Policy 最新部分的 developerWorks 教程系列。对于更正规的在线 SOA 架构师培训,目前提供了一个包含三门课程的系列:

  • SW717:介绍面向服务的体系结构的价值和治理模型(免费的)
  • SW718:设计 SOA 解决方案和应用项目、技术、以及操作治理(收费的)
  • SW719:用于实现 SOA 项目的技术和标准(收费的)

WebSphere Education 中可以找到这些课程以及其他的 SOA 相关课程。

会议和活动

要保持与 SOA 领域和相关技术的最新发展动态同步,另一种很好的方法(也是我最喜欢的方法之一)是参加各种会议。通过参加提供我所感兴趣的主题的各种会议,并有机会与专家进行交流,使我学到了大量的知识。我负责组织了最近的内部服务会议的 SOA 专题。这个专题的核心是一组基本会议,重点关注于使我们的顾问跟上 SOA 的发展动态。对于我们关注的 SOA 顾问(已经具备一定的 SOA 经验),我注重的主题包括:

  • SOA 的业务方面
  • Rational® Unified Process for Service Oriented Modeling and Architecture (RUP SOMA)
  • IBM 用于进行 SOA 成熟度评估的方法论
  • SOA 基础产品的更新
  • ESB 的更新
  • WebSphere Service Registry and Repository 的概述
  • WebSphere Business Service Fabric 的概述
  • SOA 性能最佳实践
  • WebSphere Web 服务支持的更新
  • IBM 的 SOA 治理方法
  • IBM 用于进行 SOA 成熟度评估的方法论 (Service Integration Maturity Model)。

我还负责了其他的一些会议,涉及我们所有的 SOA 入口点以及许多其他的主题,具体包括:

  • SOA 未来的技术
  • Web 2.0
  • Rational 工具
  • Tivoli SOA 管理
  • 服务版本控制
  • 提供团队培训的交互式高级 SOA 研讨会
  • 解密协作服务
  • 将信息作为服务

对于 IBM 顾问来说,这些内容是非常合适的,但是它们能够为您提供什么帮助呢?很高兴您这样问!在 5 月 20 到 25 日,您将有机会获得关于 SOA 的更好的会议教育:将在奥兰多举行 IBM IMPACT 2007 活动。究竟是什么使得它成为“更好的活动”呢?技术专题的组织者挑选了我们的内部服务会议中最好的会议,并对其进行了扩展,增加了面向业务负责人和 IT 执行人员的专题,以及有关业务和 IT 一致性的专题。因此,IMPACT 提供了更多的会议,来自我们的会议的所有 IBM 服务和开发 SOA 会议负责人(以及更多)以及客户,展示了他们自己的经验、令人激动的主题发言和简短的发言。

我认为在本文中无法为那些想参加的人提供会议推荐内容,实际上很难做到这一点,因为每个主题都会有来自 IBM 的专家出席。我的意思是,将有 WebSphere Web 服务的首席架构师、ESB 首席架构师、WebSphere Services Registry and Repository 服务负责人和首席开发人员等出席会议。我曾列出了一份我个人想要参加的会议的列表,但是这个列表很快就变得非常冗长,而无法在这里全部列举出来。(另外,Andre 与我将出席“前 10 大 SOA 问题,以及如何解决它们”的会议,并且我将参与几个附加的 SOA 和 ESB 主题,所以如果您也参加了这些会议,可以随时中止我们的介绍,并提出有关我们的文章的任何问题。)

现在就获得更多相关信息并注册 IMPACT。

除了这些会议之外,IBM 和其他供应商还经常为特定听众举办为期一天的活动,在那里,您可以了解到 SOA 的基本内容或有关特定的 SOA 主题,如 SOA 治理。我一直参与开发 SOA 架构师峰会并在会上发言,其目的是让企业和首席架构师了解关于 SOA 参考体系结构和采用方面的内容。在我们去年举行的活动中,收到了非常好的反馈,今年,我们进一步扩展了这个计划,以涵盖更多的听众和特定的主题。IBM 提供了全年的、在全世界范围内的各种类型活动的安排。定期查看 SOA 活动时间表以注册并参加与您相关的活动。

除了会议和正式活动之外,另一种可供选择的是本地用户组和行业活动。我住在旧金山海湾地区,那里所举办的活动非常多,我都参加不过来了。例如,SDForum 每个月举办一次 Web 服务 SIG。您可以去了解一下本地的活动,可能会惊讶发现一些很好的资源。

书籍、Blog 和其他更多内容

当然,有许多关于 SOA 和相关主题的好书值得一读。我倾向于阅读那些我认为是优秀作者的同事、或者我很希望了解他们的观点的同事所撰写的书籍,所以我最喜欢的书籍列表可能也反映了我的偏好:

  • Martin Fowler 撰写的 Patterns of Enterprise Application Architecture Gregor Hohpe 和 Bobby Woolf 撰写的 Enterprise Integration Patterns:Designing, Building, and Deploying Messaging Solutions
    阅读这些书籍以具备基本专业技能,因为对于优秀的 SOA 实现来说,其基础是优秀的体系结构和分布式系统设计。

  • IBM SOA 基础
    我强烈推荐这本白皮书,该书包含了关于体系结构的介绍和概述。该书写于 2005 年 12 月,但是核心概念和参考体系结构现在同样适用。

  • Steve Graham 等所撰写的 Building Web Services with Java:Making Sense of XML, SOAP, WSDL and UDDI
    这是关于 Web 服务的早期书籍之一,但仍然是很好的参考资料。就个人来说,我不会过多地关注于 UDDI,因为使用供应商解决方案比使用 UDDI 更合适。

  • Olaf Zimmerman 等撰写的 Perspectives on Web Services
    这是我最喜欢的关于 Web 服务的书籍之一,该书从您需要了解的不同角色的角度出发介绍了 Web 服务。

  • Sanjiva Weerawarana 等撰写的 Web Services Platform Architecture:SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More
    阅读该书以了解更新的 Web 服务标准,以及它们如何组合在一起。

  • Norbert Bieberstein 等撰写的 Service-Oriented Architecture (SOA) Compass:Business Value, Planning, and Enterprise Roadmap
    该书对 SOA 进行了更全面的介绍。

请稍等!还有(总是)更多的内容!

还可以通过什么其他的方法跟上 SOA 的发展动态呢?我的首选信息来源就是去查看 developerWorks 上最新的文章。我通常将它们打印出来,然后在排队或者等待飞机起飞时阅读它们。我不经常使用 Podcast,但如果您经常使用,developerWorks 也提供了包括许多关键 SOA 主题的技术讲座系列Web 服务互操作性组织是一个很重要的资源,用于了解正在广泛地采用什么样的标准,如果该标准已经形成轮廓,那么可能即将会采用它。同时,WS-I 还提供了测试工具和示例应用程序。

但老实说,我在学习 SOA 时最好的信息来源是我的同事们。对于本文,我在 Chris Ferris 最喜欢的 Blog 摘录了很多内容,他是我们的标准团队的一员。有两个 David Chappells 都撰写了有趣的 Blog:其中一个刚刚仅仅加入 Oracle,所以我们不确定他的 Blog 在哪里,另一个是 http://www.davidchappell.com/Steve Vinoski,他在 IEEE DSO 中撰写了文章,并且也常在 Blog 上发表文章,是 Chris 推荐的另一个 Blog 作者。要了解在标准领域中的发展动态,可以阅读 Kelvin Lawrence 的 Blog,他是 IBM 的 Emerging Internet Software Standard 的 CTO,以及我们自己的 Bobby Woolf,他的 developerWorks Blog 中涵盖了许多 SOA 主题。





回页首


接下来是什么呢?

我要向希望学习 SOA 的您提供一些建议:

  • 首先,考虑您所扮演的角色,然后确定对于 Andre 的文章中所描述的主题,您需要掌握何种深度的专业技能。
  • 寻求与一位经验丰富的负责人一同完成项目。如果您团队中的所有人都是 SOA 新手,那么我建议引进一位外面的专家,以便为团队提供指导和 SOA 方面的支持。
  • 当您正在采用新技术(或者不同于过去所使用的产品的新产品)的时候,需要多花些时间来开发相应的技能。根据我的经验,我推荐课堂教育。
  • 要拓宽或加深您所熟悉的技术或产品方面的技能,我推荐各种会议和活动。IBM IMPACT 是构建您的 SOA 技能的一个很好机会。

更有可能的是,您将保持与 SOA 中某些方面的同步。您将研究并评估其中的许多内容,并且每次都可以根据您正在完成的工作,以确定您应该重点关注哪些内容。IBM 的 developerWorks、前面介绍的 Blog 和 WS-I 都是非常优秀和重要的资源,可以从中获得关于 SOA 的最新信息。

最后,我想以对 Andre Tost 道一声感谢来结束本文,感谢他重点关注于成为 SOA专家的关键主题,这也再次说明,我们将从同事那里学到最多的知识。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章