架构师要做些什么
软件架构师考试知识点

软件架构师考试知识点一、知识概述《软件架构师考试知识点》①基本定义:软件架构师考试的知识点就是涵盖了成为一名软件架构师所需要掌握的各类知识内容。
简单说呢,就像是建房子,软件架构师要知道怎么规划整个房子的结构(软件整体框架),用哪些材料(开发工具、技术等),怎么让各个部分协调工作(系统集成等)。
这些知识包括软件设计原理、各种开发模式、系统性能优化之类的内容,都是为了把一个软件从无到有,从概念到可以实际运行并且好用而必须明白的点。
②重要程度:在软件相关学科里那可是相当重要的地位啊。
要知道,软件架构师就是软件开发团队里的领航员,就像足球队里的教练。
要是架构师不懂这些知识,那就好比教练不懂战术,整个软件开发就会像没头的苍蝇乱撞。
软件架构师通过这些知识来确定软件系统的整体架构、规划项目进度、规避技术风险等,直接影响软件的质量、可维护性和扩展性等重要方面。
③前置知识:需要提前掌握些编程语言方面的知识,比如说Java或者C等。
还得懂一点数据库的知识,就像知道仓库怎么存储东西一样,像MySQL或者Oracle数据库相关知识。
另外,操作系统相关的知识也得有,比如Windows或者Linux的基本操作、进程管理之类的,毕竟软件是在操作系统上运行的,这就跟汽车必须在公路上跑一个道理。
④应用价值:在实际中,如果去开发一个电商平台软件。
软件架构师运用这些知识点去设计用户登录系统怎么运用最好的安全模式,商品展示系统用哪种架构能最快地加载商品信息,订单处理系统怎么能够高效准确地处理大量订单等。
这些都会影响电商平台的用户体验,能否处理大量流量,能不能在安全方面避免被攻击等现实的业务需求。
二、知识体系①知识图谱:在软件架构相关学科里,这些知识点分布得很广,有很多知识板块都有涉及。
比如说基础的计算机基础知识像是金字塔的基座,这之上是各类软件相关技术知识,如软件开发模式像是重要的支柱,系统架构设计像是给自己家房子设计版型,就在核心位置,周围还有像性能优化、安全设计等枝叶部分。
架构师笔记

架构师笔记作为一名大学生,我对架构师这个职业充满了向往和好奇。
今天就跟大家聊聊我所了解的架构师相关的东西。
我觉得架构师就像是一个超级建筑师,只不过他们构建的不是高楼大厦,而是软件或者系统的框架。
架构师得懂好多好多知识,就像一个知识的百宝箱。
他们得精通各种编程语言。
像Java这种超级流行的语言,架构师要知道怎么用它来构建稳定又高效的系统。
Java的面向对象特性,那些类啊、对象啊,架构师得像玩积木一样熟练地摆弄它们。
还有Python,那简洁又强大的语法,架构师可以用它来快速地做出一些小工具或者进行数据处理的原型。
架构师还得对操作系统有深入的了解。
Windows系统下怎么进行资源分配、怎么保证程序的兼容性,Linux系统里那些复杂的命令,怎么配置服务器,这些都是架构师要掌握的技能。
就好比你要开车,得先了解车的各个部件是怎么运作的一样。
数据库方面也不能马虎。
关系型数据库如MySQL,怎么设计表结构才能让数据存储得又合理又高效,怎么进行数据的查询优化。
非关系型数据库像MongoDB,什么时候适合用它来存储数据,这些都是架构师要考虑的。
在设计架构的时候,架构师还得考虑系统的可扩展性。
就像盖房子要考虑以后还能不能往上加盖楼层一样。
如果一个系统设计得太死,以后业务扩展了,要添加新功能就会变得超级困难。
所以架构师得有远见,要预见到未来可能的变化,然后把架构设计得灵活一些。
而且架构师还得和不同的人打交道呢。
和开发团队的小伙伴,要把自己的架构思路清晰地告诉他们,让他们知道怎么按照这个框架来写代码。
和客户呢,又得把那些技术上的东西转化成客户能听懂的话,让客户明白这个系统的架构为什么是这样的,有什么好处。
还有性能方面,架构师得像一个严格的质检员。
要保证系统在大量用户访问的时候不会崩溃,要对系统进行压力测试。
如果一个电商网站在双11的时候老是崩溃,那可就麻烦了。
所以架构师要想办法优化系统的性能,减少资源的浪费。
我觉得成为一名架构师真的很不容易,但也超级酷。
架构设计师必考知识点

架构设计师必考知识点一、知识概述《软件架构设计原则》①基本定义:软件架构设计原则就像是盖房子时遵循的一些规则。
比如说,像高内聚低耦合原则,就是让软件内部各个模块自身功能紧紧凑在一起(高内聚),不同模块之间联系尽量少(低耦合),这样系统就好维护,就像一家人在自己家里各干各的事(高内聚),和邻居家往来不要太多太复杂(低耦合)。
②重要程度:在架构设计师领域,这就相当于基石,如果不遵循这些原则,软件系统后期肯定问题一堆,比如难以扩展、不好维护等。
③前置知识:得懂点基本的程序设计概念,像函数、变量是什么这些,如果这个都搞不懂,没法理解架构设计原则。
④应用价值:拿企业的ERP系统来说,如果遵循这些原则,随着企业规模扩大,员工、业务流程增加,系统就很容易扩容、修改某些功能。
要是不遵守,可能稍微加点功能,整个系统就崩溃了。
二、知识体系①知识图谱:在架构设计这里面,软件架构设计原则是核心内容。
就好比是人体的骨骼框架构建的规则。
②关联知识:和软件设计模式关系很紧密,原则是大方向,模式是实现这些原则的具体方式。
还有软件工程流程也有关联,不同的流程阶段都要考虑这些原则。
③重难点分析:掌握难度在于理解那些抽象的概念如何在实际中运用。
关键从大量的实践里体会原则的意义,不能光靠理论死记,就像学骑自行车,光看书上描述平衡感是没用的,得真骑上去。
④考点分析:在考试里非常重要,直接考查对这些原则的理解,比如给个系统案例问遵循了哪些原则,或者违背了哪些让改正。
三、详细讲解【理论概念类】①概念辨析:高内聚就是一个模块内元素关联性强,干的事紧凑。
低耦合就是模块和模块间联系松散。
像一个生产汽车的工厂,发动机车间就是高内聚的,发动机车间内部的各个工序和设备联系紧密合作来生产发动机,而发动机车间和车身车间就是低耦合,各自能完成自己主要任务,不过通过一定的方式又能组合成汽车。
②特征分析:可维护性高、扩展性好是遵循这些原则的系统的特性。
比如一个电商系统,要增加一种新的支付方式,如果设计遵循高内聚低耦合等原则,很容易就加上去了,不会影响其他功能。
架构师、技术总监、CTO职位区别

【干货】CTO、技术总监、首席架构师的区别(汇总版)【技术总监】:提升自已的能力,比如专业技术,行业发展趋势,技术发展趋势,协调能力,组织能力,管理能力等【首席架构师】:需要从技术总监和研发Leader身上剥离职责。
让技术总监和研发Leader偏项目管理(管理族),把各个模块之间的架构设计工作,独立出一个岗位,就是架构师来负责。
【首席技术官CTO】:真正的CTO,是软件产品和技术是统一管理的。
商业、产品、技术、管理、团队相平衡的综合统管。
一、高级程序员如果你是一个刚刚创业的公司,公司没有专职产品经理和项目经理,你就是公司的产品经理,你如果对你现在的开发员能力不满,那么你只需要的是一个高级程序员。
你定义功能、你做计划推进和管理,他可以带1-2个副手把你规划的功能实现了,他是主力干活者,有技术难题也是他来亲自攻克解决。
所以,一个高级程序员,他的职责很清晰:1、负责核心复杂功能的实现方案设计、编码实现2、负责疑难BUG分析诊断、攻关解决二、研发Leader公司再长大些。
如果你就有一个研发团队(含产品/开发/测试),你就一套主产品,而且你的研发团队小于15人,那么你需要的就是一个研发Leader。
因为你已经有了1-2个高级程序员,核心难题攻克和核心功能研发进度与质量保证,已经可以靠他们自身能力解决掉了。
那么你需要研发Leader干什么。
研发Leader的职责是:1、团队任务管理:开发工作量评估、开发任务分配2、团队生产质量提升:代码审核、开发风险识别/报告/协调解决3、团队生产力提升:代码模板研发与推广、最佳实践规范总结与推广、自动化研发生产工具研发与推广4、团队专业力提升:招聘面试、新人指导、领导复盘总结改进三、技术总监如果你的研发团队超过20人了,而且有多套主打产品线了,你可能已经有了多个研发Leader了,那么你需要一个技术总监。
技术总监的职责:1、组建平台研发部,搭建公共技术平台,方便上面各条产品线开发。
IT人员的三十项技能技能

18. 项目管理。如果你管理过至少一个项目,那么当下次项目经理向你询问进度的时候,你就明白为什么需要这些数据。
更理想的情况是你已经把那些项目管理需要的统计数据提交给了项目经理。
19. 了解项目的经营成本和资金成本。经营成本是指运行所需要的开支,
比如,删除数据、发送邮件以及拷贝文档。
11. 制作备份。在你做任何操作之前,为了自己的便利,一定要先做备份。
12. 检查备份。如果你没有仔细检查之前所做的备份,那么你并不知道它是否真的可用。相信我。
13. 写作文档。他人没有办法清楚的知道你曾经做了什么以及为什么要那么做,即使是你认为简单的操作或者有充分的理由,
这样一来,你可以逐渐掌握在众人面前如何沉着稳定的解释一件事情的能力。如果你比较紧张,
那么你可以请一个助手或者采用圆桌会议的形式,一旦你陷入了僵局,总有人会站出来帮你释放压力。
4. 给别人讲课。最好的学习方式是教导他人。
5. 多听少说。我很少谈论自己不知道的事情,我更愿意倾听其他人讨论一些事情和想法,“哦,真希望我早点知道这个”。
当你和团队成员一起熬夜完成了一个非常困难的项目,你所获得的信任和友谊是无可替代的。
16. 规范布线。看 起来容易,做起来很有学问。也许你认为部署一台新的服务器只需要五分钟——只要连上所有的接口即可。
千万不要这样做,一定要按照正确的方式,给所有的线缆 贴上标签(是的,所有的),并且把它们捆扎干净整齐。
资金成本是指在一段时间内(比如36个月)增加能够发挥效益的设备和人员。经营成本有时候会带来收益,
有候会成为负担,分清楚其中的区别,能够帮助你做出决定。
j2ee架构师认证指南

j2ee架构师认证指南架构师之路:一、书籍1、基础书籍《Java编程思想》《J2EE应用与BEA WebLogic Server》《精通EJB》2、设计书籍《UML和模式应用》《设计模式:可复用面向对象软件的基础》《Java与模式》《J2EE核心模式》《EJB设计模式》《敏捷软件开发:原则、模式与实践》《企业应用架构模式》《软件架构:组织原则与模式》《重构:改善既有代码的设计》3、流程书籍《统一软件开发过程》二、专注做好一件事1、分享分享自己的工作或者学习心得,同时会有理解、应用、总结、表达甚至推广方面的提高,对于自己的进步很有利。
2、共进找志同道合的高手,和他们多交流,向他们多学习,少走弯路,同时扩大自己的社交圈子。
3、协同学习重要,实践也很重要。
有机会参与开源项目,与世界各地的高手交流,学习。
4、修炼能力不是天生的,是可以后天培养的;能力不是一成不变的,是可以学习提高的;一个人的成功,不是他做事的成功,而是他自我修炼的成功。
认真规划自己的目标和时间。
第一,要找到一件事,把它当目标,然后发誓把这件事做到超乎想象的程度。
第二,要学会利用时间。
用长远的眼光来规划这件事,用短期角度来思考和执行这件事。
三、架构师的职业技能1、卓越的程序员做产品之前,架构师必须要帮助产品团队把可行性、技术需求以及权衡取舍等因素一一剖析清楚。
技术需求出来之后,架构师需要设计整体的技术实现步骤(大多数成功的架构师都喜欢与其他团队成员一同完成架构和设计这一块的工作)。
与开发团队一起,完成设计与实施的细节。
与开发团队和运维团队一起,完成部署的过程。
与运维团队一起,进行部署之后的维护和故障排除。
在这个过程中,一个架构师至少有一半以上的工作是需要与开发团队一起进行的,一个架构师不能将实施细节抛之脑后。
一个架构师必须通过自己的个人影响力来对开发团队进行指导工作,通过自己写代码以及和其他成员一起写代码,来指导团队成员实现每个架构细节的思路。
学云计算可以做什么工作

学云计算可以做什么工作云计算已成为当今科技行业的热门方向,学习云计算技术可以为个人在职业发展中打开更广阔的职场机会。
云计算是一种通过网络进行计算和数据存储的技术,通过虚拟化和分布式计算,将计算资源提供给用户。
学习云计算不仅可以拓宽技术视野,还能使个人在多个领域中获得更多就业机会。
一、云计算基础架构师云计算基础架构师是使用云计算技术搭建并管理云平台的专业人士。
他们负责规划和设计云服务平台,并确保其高效、安全地运行。
学习云计算技术可以帮助个人成为一名优秀的云计算基础架构师,为企业提供高效的云服务平台。
二、云系统管理工程师云系统管理工程师负责管理云平台的整个运维过程,包括监控云系统的运行状态、优化系统性能、维护系统安全等工作。
学习云计算技术可以让个人更好地掌握云系统管理技能,成为一名专业的云系统管理工程师,为企业提供稳定的云服务。
三、云安全专家云安全专家是负责保护云服务平台安全的专业人士。
他们负责监测和防御云平台的安全威胁,确保云服务的安全性。
学习云计算技术可以让个人深入了解云安全技术,成为一名优秀的云安全专家,为企业提供可靠的安全保障。
四、云数据分析师云数据分析师利用云计算平台提供的大数据处理能力,对海量数据进行分析和挖掘,帮助企业做出决策。
学习云计算技术可以使个人掌握数据分析技能,成为一名顶尖的云数据分析师,为企业提供有价值的数据分析服务。
总的来说,学习云计算技术可以让个人在云计算领域中有更广阔的发展空间,可以选择从事基础架构搭建、系统管理、安全保障以及数据分析等多个方向的工作。
随着云计算技术的持续发展和普及,从事云计算工作的人才将会越来越受到社会的青睐,因此学习云计算技术将成为未来求职的重要优势。
程序员与架构师的区别

程序员与架构师的区别好的程序员做不出好的软件设计你不能看到⼀个程序员还不错,就把他推到系统分析师、软件设计师或软件架构师的位置上。
如果你在团队或公司⾥寻找⼀个能胜任软件架构师或设计师这样重要位置的⼈时,⾸先出现在脑⼦⾥的想法通常是在程序员中选⼀个最好的。
别这么⼲。
这样的位置不是随意的找个不错的程序员就能胜任的。
把你最资深的程序员晋升到这个位置也未必就合适。
乍⼀听你可能感觉荒诞。
为什么我不能让⼀个程序员去做系统设计呢?毕竟,他们是设计程序的,不是吗?的确是的,没错。
但你要明⽩的事情是,设计软件相对于编写程序,它需要的是⼀套完全不同的技能。
让我们来看看为什么⼀个好的程序员就未必可以做⼀个好的软件设计师。
但⾸先,让我们来问问⾃⼰⼀个问题,是什么让⼀个程序员变的优秀,甚⾄杰出?要想成为⼀个好的程序员,你需要有能⼒实现真实世界⾥重要的软件。
只能够写出⼀个简单的⽂本编辑器是远远不够的。
为了能做到可以解决重⼤的、复杂的编程问题,⼀个程序员需要在某个特点的编程语⾔上进⾏数年的经验积累。
也就是说,为了能熟练的使⽤这种语⾔、熟悉这种语⾔的各种特⾊,他必须专注于这种语⾔。
问题就在这⼉。
对于只有锤⼦的⼈,他能解决的问题就是钉钉⼦如果你专注于⼀种语⾔,并能做到精通掌握,那你遇到的问题模式很可能就限制于跟这种语⾔相关的领域。
简⾔之,如果你懂PHP,那所有的问题都基本上是跟 Web开发相关。
相同的道理,如果你全部的知识都集中的Java上,那你对所有问题的解决思路都会沿着⾯向对象的⽅向,即使是使⽤过程式编程对于解决你的问题会更优的情况下,你也会如此。
⼀个程序员,只懂得⼀、两种编程语⾔,这会严重的限制他的解决问题的能⼒。
例如,如果你的编程语⾔是C语⾔,对于⼿头出现的问题,你绝对不可能想出⼀种⾯向对象的解决思路,因为你的编程语⾔不提供这样的语⾔特征。
跟Haskell程序员不⼀样,C++程序员不可能想出函数式解决⽅案。
你的编程语⾔⾥提供了结构体和枚举类型与否,会严重的影响你剖析⼀个问题的⽅式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一. 架构师
1.1 架构设计涉及范围图
如图所示架构设计说涉及到的范围,首先是对架构支撑的底层平台选择,目前业界流行和通用的就是.Net平台和Java平台(J2EE);然后在平台支持之上做技术相关架构设计(主要会采用面向对象OO,面向方面编程AOP以及面向服务架构设计SOA等思想),在SOA推广上IBM和SUN两家公司尤为突出;在业务不断的变化中、架构的更新中,找到变化中不变的东西,并针对服务、架构制定一系列规范对架构进行有效的管理和成为架构设计的原则;当然,最上层就是善变的业务架构层。
1.2 一个优秀的架构师需要了解的知识
1.操作系统OS:能对操作系统内核有很好的了解和认识,从中吸取设计理念;推荐可以找一个小
的linux版本代码阅读内核的实现,去理解“简单”的代码怎样去完成不简单的事情
2.虚拟机技术:去了解虚拟机的实行原理和它所做的工作,如Java的JVM、和.Net的CLR,CL
R提交到欧洲标志组织可以阅读文档ECMA-335-CLI
3.计算机语言:一个好的架构师对计算机语言应该有深刻的认识,建议熟悉过程路径:C -> C+
+ -> C# ,Java
4.开源资源:当然多研究开源架构是提高的必要途径,理解开源架构中设计的思想以什么样的设计
思想为出发点,比较它们每个版本升级中的设计变化;资源:JBoss、Spring等Java开源框架,.
net方面有5大实用案例架构、以及 Starter Kit等,和MS:Enterprise library;
JBOSS 4.0:包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。
完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持,但是他的面向方面设计(AOP)是它真正突出的部分。
JBOSS 的AOP架构负责处理AOP,使用了一组命名概念,比如"interceptor," "pointcut," 和“intro duction”。
一个interceptors编码“拦截器”(intercepts),它把一个对象放到一个被拦截的类中等。
Spring是一个轻量级容器,非侵入式,ioc容器,它所带的包装器使许多不同的服务和框架更易于使用。
轻量级容器接受任何JavaBean,而不是只接受特定类型的组件。
要了解Sp ring同时就应该了解Eclipse、Struts、Hibernate之间的衔接应用Spring: A Developer' s Notebook
Starter Kit: 是官方网站推出的一整套解决方案的De mo;是提供给初学入门者的教材!包括了门户、商业站点、社区站点、报表、时间跟踪排程、问题跟踪这6套系统。
在这里,随便也提一下WSS/SPS,具有微软官方支持,是成熟的产品,是通过Web Part扩展的,Web Part将会是发展的一个领域,使用We b Part进行页面的定制是更加人性化的,拖拉的所见即所得效果是Portal Start Kit无法达到了。
WSS\SPS是扩展性非常好的系统平台,WSS\SPS的工作区可以无限向下添加,集成Of fice 2003、Exchange、Biztalk、Content Manager Server......而Portal Starter Kit 仅仅是一个单纯的网站演示,虽然也能够布局定制,但仅此而已。
二. 还是需求
万水千山始于脚下,需求始终是一切的第一步!
从两种软件类型入手分别谈一谈,其中采集需求的方法和注意点
2.1 企业信息化软件
企业信息化软件,及软件的最终用户是一个企业,企业希望通过软件项目的采购来达到企业内部管理等流程的信息化;采集这类需求通常有两种情况,其一:
2.1.1 甲方驱动
如ERP,甲方非常了解要他们需要一个什么样的软件,或者通过软件来达到一个什么样的效果。
其中从甲方采集需求的采集点注意一下不能遗漏:
∙中层领导:--> 从他们这采集业务的流程,因为他们是对甲方公司业务流程最熟练的
∙现场人员:--> 从他们这采集业务规则
∙高层领导:--> 这个很重要,从他们这采取决策规则,及可以让软件实现知识发现,即以后可成为软件的一个亮点即对公司决策的支持
∙信息人员:--> 操作规范,可以提供易用性
乙方需要参加的人员:
架构师(实力所服,让对方放心),需求分析师,开放人员(实现需求的原型化),UI原型需求化:有三个好处, 需求固化、设计规则明确、开放复用
2.1.2 乙方强势论
由于甲方需求不明确,而乙方在此行业中资历深厚,了解行业标准,这种非常好做事就不多说了。
2.2 需要采集中注意项
1.需求采集的起点:
∙找到所有执行者
∙找到组织机构
∙业务流程
2.需求管理,这个是必不可少的;
需求稳定化,乙方提供需求详细规格说明书
同时,制定词汇表,如图
3.掌握中间语言,及快速得了解行业规范
2.3 商业化软件
需求采集为行业商用软件,要做到:
收集行业中所有企业得需求
行业规范,最好就是成为行业的领头人成为标准的制定者--> 业务原型
同时要考虑到市场因素,以及竞争对手、市场亮点(有必要时可能采用保存亮点的方式)
也要考虑环境因素,硬件、社会等
三. 领域分析
通过领域分析,获得领域模型;这节内容涉及到UML建模、建模流程、用例切片归包、DS L规范定义领域语言等等一些比较晕的内容!!
领域模型:切词(名词实体)
实体关系-->类图、E-R
实体约束规则(要求精确度)
其中涉及到工作流分析,以及工作流所涉及到的技术,建议研究工作流:其一,Vista平台的WWF,其二,开源框架OsWorkflow; 其下图有利于我们理解工作流设计:visual studio 2 005中插件DSL支持
3.1 最小建模技术
对于大多数问题而言,只需要20%的UML就可以完成80%的建模工作,所以只需要以下建模中的关键三个元素:
四. 少不了的设计模式
具体的这个就不多说了,应该是不是的对设计模式进行温习、多阅读一些设计模式论文及应用场景实践。
使用时注意考虑以下重要几点:
4.1 设计模式应用场景
既是处理变化--> 原构件基础上增加变化
--> 替代构件
4.2 设计模式的弱点
增加复杂度、性能有损耗、模式有可能选择不当、装配不当、增加测试难度
4.3 面向对象开放技术今天的核心基础
核心基础:组件技术、UML建模技术
组件技术:大型项目和系统的必经之路
-》需要支持多平台:SOA、ESB-连接组件
-》拥有大量组件:重用、MDA(模型驱动开发)-快速、廉价组件
-》响应日益复杂的业务操作
-》框架: .net, Java
五. AOP面向方面编程
在架构设计中也要引用AOP设计思想,在整个架构设计过程中横切关注点来达到面向方面编程,现实框架某些功能的统一处理,减少重复。
AOP强调通过面向方面的思维方式来进行有效的架构设计,所以AOP设计≠ AOP技术, AOP技术是面向方面设计AOP的最佳实现。
开源AOP架构研究推荐:JBoss4.0
架构师进行架构设计,要心中有此轴向图从而做到不同纬度对架构进行充分的设计考虑。
六. 架构设计
6.1 主要架构模式
流程处理模式:以算法和数据结构为中心,由一系列处理步骤、相邻步骤用数据流管道连接。
主要用于批处理系统软件
、C/S模式、MVC模式、分层模式
七. SOA
SOA(Service Oriented Architecture 服务导向架构),是一种应用程式架构的概念,将应用程式及资源以重复使用的服务方式呈现,使用标准化的借变相互沟通,借此提供更高弹性、更高效率、及资讯整合的IT环境。
SOA是一种用于建构分散式系统的方法,它可以将应用程序以服务的方式提供给终端使用者,也能建构成其他的服务。
透过SOA,我们可以将单一的软件开发成为可提供其他应用系统使用的基本元件。
要理解SOA,更重要的得研究ESB(Enterprise Service Bus)企业服务总线,请看另一篇文档的详细介:SOA-ESB企业服务总线概念; 这里就不熬述了。