5. 员工缺乏SOA技能
在SOA实施过程中有许多专业的角色和技能要求,而其中大部分都需要从公司外寻找。比如SOA架构师,商业流程模型师,工具管理员,数据结构师等等。寻找人才来填补这些缺口需要付出不菲的代价。
在没有任何有经验的专家的协助下就盲目上马SOA是一种严重的错误。SOA实施会影响包括测试、基础架构和安全在内的所有IT部门单元。这不仅仅是送一批程序开发员去上课培训如此简单。
建议:在一开始就制定详细的培训和资源计划,然后纳入到预算申请中。尽量减少反复要求增加预算的次数,正确在第一次就筹备充分。否则,公司管理层只会把SOA项目视为一个永无止境的资金黑洞。
6.项目管理差强人意
项目经理必须能够严密检查、排减风险、让每个成员按计划工作,并善于沟通交流。其中,充分收集用户要求是一大关键。
建议:把你的非常好的项目管理团队安排在SOA项目上。或者去外面聘请资深项目经理人。不管你选择的是谁,对方都应当在大型项目上具备有说服力的成功记录。此外,他还需要有足够的技术背景,以便从理论层面去理解SOA。
7. SOA是项目,更是架构
SOA是一种软件架构,只有当公司贯彻了以服务为导向的核心理念,并确保交付持续符合SOA路标时,它才会体现预期的价值。
SOA要求高度的专业化,比如建立一套商业服务,就要求SOA架构师、开发人员、数据结构师、网络架构师和安全专家多方合作而成,单枪匹马搞定SOA是不现实的。
此外,根据公司的具体要求,你或许还需要用户界面设计师,商业流程模型师,数据服务专家,商业规则专家,ESB专家等等。所有这些专业人员都要有高度的协同能力。
建议:对实施SOA来说,标准的IT团队结构是难以成功奏效的。建立开放式的专业人员合作环境,多使用协同技术,尽量避免低效繁琐的会议程序。
8. 低估SOA的复杂性
SOA的概念易于理解,但却难在正确执行。为用户提供简单应用的背后,是巨大的软件管理复杂性,可以说,SOA是一种软件工程。
此外,在SOA实施过程中尽早收集安全要求是非常重要的,这样底层架构才能从一开始就对安全形成良好的支持。否则,任何架构中的大型变更都会引发安全问题。
建议:做好在SOA实施中遭遇各种技术障碍的心理准备,有些是因为代码而引起,有些是因为工具本身所造成。然后设定切合实际的预期,不要抱有一步登天的想法。从小处入手,再逐渐累加,同时从从一开始就考虑到安全机制,不要在事后才想到。
9. 没有实施并严格遵守SOA治理
为了实现SOA的回报(服务重用、灵活性等),团队必须严格遵守架构方针,即设计时的治理。如果没有设计时的治理,你很可能迷失一大堆的Web服务中。
接着就是运行时的治理,即管理SOA环境的健康度。其中涉及到用户所使用的服务种类,加强策略与服务等级协议(SLA)、问题解决、分析绩效和管理所有资产。不要认为部署完成就可以高枕无忧,管理一个分散的环境同样不是一件轻松的任务。
建议:配备一支专门的团队(在企业架构内),制定团队的短期和长期目标。SOA治理是一种长期的过程,一般要花上几年的时间来实现满意的成熟度。随着治理的逐渐成熟,你的SOA也会越来越成功。
10. 不要让厂商左右你的决定
不要过于依赖厂商。厂商的目标是尽可能地多地卖出产品,而你的目标是成功实施SOA,以最少的成本提供最大的回报。另外对厂商所承诺的能够无缝集成所有从他们这里购买的工具也不要盲目信从。不少厂商都是转售原始厂商的工具应用,而原始厂商有时都无法实现无缝集成。
建议:在与厂商进行洽谈之前执行一次彻底的评估流程。在缩小了备选范围后,让他们到现场进行试操作,这样你就能了解更多隐藏在幻灯片介绍背后的真实资料。
另外,尝试去与那些已经实施了SOA的同行公司,或使用过你所选择的那家厂商的服务与工具的公司交流取经。记住,SOA实施没有捷径。