??xml version="1.0" encoding="utf-8" standalone="yes"?>
"一切都在流动,没有什么是持久的。一切都在融化,没有什么是固定不变? - 赫拉克利?Heracleitus)
大约?003q中的时候,SOA的概念逐渐q入Z的视野,一旉众h乐此不疲的发表各自对SOA的见解。SOA已经? 为IT业,其是Y件开发及(qing)pȝ集成领域从业者的热门话题。很多的权威机构也纷U预SOA的美妙前景,例如QGartner 预言Q到?2008 q_(d)臛_ 60% 的企业将使用 SOA 作ؓ(f)其IT架构。抛开喧嚣w动以及(qing)随声附和Q对于Y件开发者而言Q经q了一q多的概늁输,伴随着不断增长的困惑,更多的h希望能静下心来看一看:(x)I竟? L(fng)pȝ架构是符合SOA设计的,而又有哪些技术可以用来实现SOA呢?特别是企业服务ȝ(Enterprise Service Bus, ESB)Q?看v来更是SOA中一个玄虚的概念Q本pd文章通过实际的案例分析来详细讲解在SOApȝ中是怎样实施ESB的?/p>
本系列文章将直接面向q大的Y件开发h员, 首先以直观的方式介绍什么是ESBQ? 然后引入一个实际案例,以此为基Q详l介l怎样一步一步实现ESB。现在我们谈论SOA和ESB的时候都不再是空中楼阁,IBM作ؓ(f)SOA的倡导者,? l提供了很好的品来实现我们的设惟뀂我们会(x)在本pd中的W二、第三部分中分别介绍ZWebSphere 6 和IBM EAI产品的两U实现方式, 然后在第四部分中介绍在复杂的企业应用场景中ȝ(Bus)怎样互联Q?怎样扩展。希望通过本系列文章,能让q大读者朋友快速掌握ESB的实际开发技巧?/p>
关于SOA的概念,你可以找到很多的文章从不同的角度来描q它Q不同的软g提供商也有不同的定义方式。BEA有流体计, 微Y有Indigo 和SOA-buildingQ?SAP有ESA? 每个人都可以从不同的视角来理解SOAQ从E序员的角度QSOA是一U全新的开发技术,新的lg模型Q比如说Web ServiceQ从架构设计师的角度QSOA是一U新的设计模式,Ҏ(gu)学;从业务分析h员的角度QSOA是Z标准的业务应用服务。从概念的角 度,IBM对SOA的定义是最为全面的Q既SOA是一U构造分布式pȝ的方法,它将业务应用功能以服务的形式提供l最l用户应用或其他服务。SOA包括? 下要?
本文针对的读者是软g开发h员,站在开发h员的角度Q往往希望软g开发能够满_于开发效率、可靠性、易l护性、易理{多斚w的更高要求。让我们通过回顾软g开发的演化q程来看一看SOA出现的必然性:(x)
我们注意刎ͼSOA同样也强调重?Reuse)Q? 但是相对于传l的代码重用Q对象重用,和部仉用,SOA的重用粒度更_。SOA的重用在于业务的应用,x务的重用Q这与Y件的发展规律是相一致的? 在Y件发展的q程中,软g重用的对象越来越接近我们的现实生zR通过部g的重用,软g的开发更h率,q且开始试囄lg表达业务模式。但是,IT人员? 很难对业务h员解释清楚ITl构怎样映射C务模型上。然而,IT架构与业务模型的弥合是不可避免的方向。现代企业的业务环境所面(f)的最大挑战就是变化, 规则在变Q需求在变,而对变化做出最快的反应Q尽快地适应变化Q成Z业占得先机,成功q作的关键。很多企业的业务环境依赖于他们的IT架构Q因此,IT 部门往往直接承蝲了业务变化带来的压力。每一个具体的业务变化Q都直接反应到对现有的ITq_的要求:(x)要么企业IT架构本n对变化自适应Q要么IT架构? 够在短时间内Ҏ(gu)新的业务规则做出调整。这是SOA架构提出的根本原因,我们需要一U更加脓(chung)q业务的IT架构Q能够直接描l业务,寚w些不懂IT技术的 业务领域专家来说Q业务服务却是他们最熟?zhn)的,也就是说是SOA把Y仉用的对象从IT人员上升C业务人员。因此,我们可以说SOA与其它的模式相比Q? 最大的q步在于它与业务的关联性,"服务"对应到实际业务。IT通过"服务"与业务发生了密切的关p,业务人员和IT人员都可以专注于业务逻辑的实玎ͼ? 共同的语a是"服务"?/p>
但不是什么场合都适用SOA。通常来讲QSOA适用于较为复杂的IT架构Q经帔R要与外部复杂的IT环境交互Qƈ且需要快 速地应对频繁发生的业务变化。就像你不可能在控制z衣机的芯片上用EJB开发一P如果你的IT环境规模很小Q以灵zd应对变化Q不需要与其他的异? IT环境频繁交互Q那么SOA带来的好处就不以抵消它l你带来的系l复杂性。但是,即o(h)如此Q你也ƈ没有被完全排除在SOA的大势之外。SOA是如? 地倍受瞩目Q我们可以预见到它的q猛发展Q因此即使你的内部IT架构本nq不是基于SOA的,你也q有Z(x)参与到未来的SOA架构中去。例如,你的某? 业务以服务的形式发布到某个外部SOAq_上供别h使用Q作为第三方SOAq_的一个服务提供?Service Provider)存在?/p>
在选择SOA的实施方案时Q要CQY件的具体实现技术诸如Web 服务与SOA是两回事QSOA是一个概念,Ҏ(gu)学, 或者用一个更旉的词Q一U模型。而W(xu)eb 服务呢?它是一U具体的实现技术,像EJB一栗SOA ≠ Web服务。不q公q_ԌW(xu)eb 服务倒确实是目前最适合实现SOA的技术之一Q用Web 服务来封装业务服务是个不错的选择。因为Web服务是标准的QW(xu)S-I协议保证了来自不同厂商的Web服务即ɘq行在不同的q_上,底层的实现机理不同也 可以利交互Q这是以前的M一U技术如CORBAQEJBQ或DCOM都不能做到的。而且QW(xu)eb服务的定义与实现是分开描述的,x散耦合Q因此,? 以很方便地替换服务的内在实现而不?x)对现有的系l造成M冲击Q这也极大地促进了IT架构的灵zL?/p>
对于SOA更进一步的了解Q可以参考IBM developerWorks上其他SOA相关的文?请参见参考资?Q我们的pd文章主要讨论ESBQ因此不再此q多地论qSOA了。ؓ(f)了我们下面的论q更畅Q请先牢记典型的SOA架构有哪些基本的要求Q?/p>
让我们暂时回到网l技术不普及(qing)的时代,你怎样在两台机器之间传递文Ӟ我还记得Zl实验室的每台机器安装Borland C++的环境,猜猜我动用了什么:(x)一?串口U?。不q,我仍然觉得庆q,好在每台机器都运行同L(fng)操作pȝ- DOS(很少有hq记得DOS中有Interlnkq样一个命令吧)Q? 用来通过串口U在两台机器间传递流文g。否则我不得不用Y盘来拯所有的安装文g。我那个时候的梦想是Q哪一天有q么一个叫?|络"的东西能够把? 验室里面所有机器都q接hQ而不用我在各机器之间跑来跑去?/p>
让我们回归主题,你现在已l基本明白了什么是SOA。假定你已经按照SOA的思想提炼Z各种业务服务Q公布出来,同样Q?
你发现其他很多h也做了同L(fng)事情。大安很振奋,开始踊跃的试Q我调用你的一个服务,你调我的一个服务。啊哈!大家都SOA了。且慢,那么q个SOA
l你们带来了什么好处呢QOkQ现在我可以在J2EE环境里调?Net的组件了Q但是原来没有SOA的时候也可以做到的呀。只要两个节点之间互相认可对
方的方式Q即使不存在公开/l一的服务界面也可以实现点到点的互联。因此我们不得不承认Q如果我们只有服务,而服务的h者和服务的提供者之间仍焉要这
U显式的点到点的调用Q那么这׃是一个典型的SOA架构。请看图二,服务的参与双斚w必须建立1?
的联pR这样一个结构与我十几年前的那种互联的方式何其相|但是Q还记得我们上面提到的SOA三个基本要素吗?昄W三Ҏ(gu)有做到?/p>
因此Q在SOA中,我们q需要这样一个中间层Q能够帮助实现在SOA架构中不同服务之间的化管理。最Ҏ(gu)惛_的是q样 一个HUB-Spokel构Q在SOA架构中的各服务之间设|一个类gHub的中间gQ由它充当整个SOA架构的中央管理器的作用。请看图三,现在服务 的请求者和提供者之间有了一个智能的中{站, 服务的请求者不再需要了解服务提供者的l节。不错!看上L一个好的SOAl构。事实上Q传l的EAI是通过q样一U方式来试图解决企业内部的应用整? 问题?/p>
EAI的目标是支持对现有ITpȝ的重新利用,通过EAI技术能够将不同的Y件和pȝ串联hQg长这些应用系l的生命? 期。传l的EAIQ往往使用如CORBA和COM{的消息中间件进行分布式Q跨q_的程序交互,修改企业资源规划以达到新的目标,使用中间件、XML{方 法来q行数据分配。因此,实际上传l的EAI是部件的重用。很不幸的是Q基于部件的架构没有l一的标准,因此Q各个厂商都有各自不同的EAI解决Ҏ(gu)Q? 你会(x)看到各种各样的中间gq_。如果EAI到了异构的IT环境Q就必须分别考虑怎样在各个不同的中间件之间周旋,来实现合理的互联方式Q你不得不考虑? U复杂的可能性。因此,你所见过的大多数传统EAI解决Ҏ(gu)都比较笨重?/p>
再回一下我们上面介l过的SOA的应用场景:(x)复杂的企业架构。如果我们选择Hub的模式来构徏SOA基础架构Q从Ua(b) 逻辑的角度,可能?x)出现哪些问题呢Q首先,整个SOA架构的性能Q如果每个服务的h都经q中央Hub的中转,那么Hub的负担会(x)很重Q速度?x)随着参与? 的增多而愈来愈慢;其次Q这L(fng)pȝ?x)很脆弱Q一旦Hub出错Q整个SOA架构都会(x)瘫痪Q最后,q样的架构会(x)破坏SOA的开放性原则,参与者运行在一个相 对封闭的环境中,扩展h十分ȝ。因此,q也不是理想的SOA架构?/p>
好了Q现在该ESBd了,L(fng)我们的正解:(x)
它与前面的Hubl构有什么不同呢Q首先,它比单一Hub的Ş式更开放,ȝl构有无限扩展的可能Q其ơ,真正体现? SOA的理念, 一切皆为服务,服务在ȝ(BUS)中处于^{的C。即使我们需要一些HubQ那么它们也是以某种服务的Ş式部|在ȝ上,相比上面的结构要灉|的多? q就是ESBQ我们需要给它一个明的定义QESB是一U在松散耦合的服务和应用之间标准的集成方式。它可以作用于:(x)
很不q,上面的定义看上去很拗口,我们暂且用一句较通俗的话来描q它QESB是在SOA架构中实现服务间化集成与? 理的中介。而它与SOA的关p要相对好理解一些:(x)ESB是逻辑上与SOA 所遵@的基本原则保持一致的服务集成基础架构Q它提供了服务管理的Ҏ(gu)和在分布式异构环境中q行服务交互的功能。可以这栯QESB是特定环境下(SOA 架构?实施EAI的方式:(x) 首先Q在ESBpȝ中,被集成的对象被明定义ؓ(f)服务Q而不是传lEAI中各U各L(fng)中间件^収ͼq样极大简化了在集成异构性上的考虑Q因Z有怎样 的应用底层实玎ͼ只要是SOA架构中的服务Q它?yu)׃定是Z标准的?/p>
其次QESB明确消息(Message)处理在集成过E中的作用,q里的消息指的是应用环境中被集成对象之间的沟通? 以往传统的EAI实施中碰到的最大的问题是被集成者都有自q方言Q即各自的消息格式。作为基架构的EAIpȝQ必能够对pȝ范畴内的M一U消? q行解析。传l的EAIpȝ中的消息处理大多是被动的Q消息的处理需要各自中间g的私有方式支持,例如API的方式。因此尽消息处理本w很重要Q但消息 的直接处理不?x)是传统EAIpȝ的核心。ESBpȝ׃集成对象l一到服务,消息在应用服务之间传递时格式是标准的Q直接面向消息的处理方式成ؓ(f)可能。如 果ESB能够在底层支持现有的各种通讯协议Q那么对消息的处理就完全不考虑底层的传输细节,而直接通过消息的标准格式定义来q行。这P在ESB中,Ҏ(gu) 息的处理׃(x)成ؓ(f)ESB的核心,因ؓ(f)通过消息处理来集成服务是最单可行的方式。这也是ESB中ȝ(Bus)功能的体现。其实,ȝ的概念ƈ不新鲜,? l的EAIpȝ中,也曾l提信息ȝ的概念,通过某种中间件^収ͼ如CORBA来连接企业信息孤岛,但是QESB的概念不仅仅是提供消息交互的通道Q? 更重要的是提供服务的化集成基架构?/p>
最后,事g驱动成ؓ(f)ESB的重要特征。通常服务之间传递的消息有两UŞ式,一U是调用(Call)Q? 卌?回应方式Q这是常见的同步模式。还有一U我们称之ؓ(f)单\消息(One-way)Q它的目的往往是触发异步的事gQ? 发送者不需要马上得到回复。考虑到有些应用服务是长时间运行的Q因此,q种异步服务之间的消息交互也是ESB必须支持的。除此之外,ESB的很多功能都? 以利用这U机制来实现Q例如,SOA中服务的性能监控{基架构功能Q需要通过ESB来提供数据,当服务的h通过ESB中{的时候,ESB很容易通过? 仉动机制向SOA的基架构服务传递信息?/p>
首先Q我们来看一看ESB有哪些基本的功能。既然ESB?x)以中介的n份出玎ͼ它就必须有两斚w的考虑Q首先它必须了解被它 中介的两个端点:(x)1)服务的请求者以?qing)请求者对服务的要求,2)服务的提供者和它所提供服务的描qͼ其次Q它必须h某种机制能够完成中介的Q务。我们把 q两c考虑归纳为ESB的两个基本功能:(x)面向服务的原数据(MetaData)理功能 和中?Mediation)功能? 作ؓ(f)SOA的重要构成部分,ESB承担的重任还包括怎样企业架构中已存在的业务服务q接到ȝ上来Q我们称之ؓ(f)适配?Adapter)功能。尽服? 本n已经用公开的接口来描述Q但具体的实现还是运行在不同的环境中Q因此,ESBq应该提供对服务底层协议的支持,譬如应用协议J2eeQ?NetQ? 通讯协议如HttpQJMS{等。除此之外,q需要对具体应用中涉?qing)到的服务加以管理,如性能Q可靠性,安全性等{?/p>
ESB 提供了最基本的功能来保障SOApȝ的运行,q些功能应该包含下列内容Q?/p>
很多时候,很难界定哪些功能是应该由SOA的基架构(infrastructure)提供的,而哪些应该放在ESB的范 畴内来解冟뀂笔者认为,攑֤或突出ESB在SOA架构中的Cq不很恰当。比较合理的解释是:(x)ESB应该构筑在完善的SOA架构上,做它应该做的?服务 集成。至于怎样集成Q应该根据你的上下文环境Q考虑有哪些SOA的基设施可供你用,然后再基于SOA的基架构来实C的ESB设计?/p>
在更高的层次QESBq提供诸如服务代理,协议转换{等功能Q我们称之ؓ(f)ESB的应用模?ESB usage pattern)。作为SOA架构的服务集成功能提供者,我们可以ȝ出的一些比较常用的应用模式Q例如:(x)
1Q协议{换模型,用于当服务的h者与服务提供者基于不同协议时的消息{换情?/p>
2Q消息广播模式,用于事g驱动多个动作或者消息广播的情Ş
3Q服务匹配模式,用于需要动态选择服务提供者的情ŞQ例如可以根据消息的内容Q或负蝲情况Q或服务U别U定(SLA)Q来为服务请求者选择合适的服务?/p>
q里我们只列举了3个典型的模式Q而这L(fng)例子实在太多了,发挥你的创造性,你还?x)想出来更多的,q也是ESB的魅力所 在。但是,在ESB的设计上Q注意不能喧宑֤主,ESB的功能在于帮助服务的集成Q而不是参与业务逻辑。业务逻辑应该装在业务服务中Q或通过业务~排? ?Process Service)来组l?/p>
关于ESBQ目前还没有被一致接受的标准。我们可以通过选择成熟的EAI 中间件来实现服务的集成与互操作性。这样做的好处是你的开发过E会(x)很顺畅,因ؓ(f)它已l够稳定且有丰富的工具支持。通常q样的EAI产品在目前阶D都q不 是基于开攄标准Q例如IBM的WebSphere MQ5.3Q作为IBM EAI实现ESB的消息^収ͼ׃是开攄标准。如果一定要选择开放标准的ESB实现方式QW(xu)eb 服务加上WS-* 协议几乎是我们唯一的选择Q但毕竟SOA、ESB仍处于v步的阶段Q一斚w我们q没有很成熟的品支持所有的WS-*协议Q另一斚wq些WS-* 协议本nq处在频J变化的阶段。因此当你选择ESB实施Ҏ(gu)的时候,最好考虑qESB实施、开发的工作量?/p>
q里你可能会(x)有疑问,既然SOA架构q求开放性,Z么我们要容忍用私有的ESB产品如IBM WBI/MQ来构建SOA架构的集成环境?q是一个好问题。SOA始终是我们追求的大目标,开放是必然的趋势,q是毋庸|疑的。但是,h意ESB的定 义,臛_到目前ؓ(f)止,q没有明的要求它的实现一定是开攄Q每一个Y件供应商对它都可能有不同的理解和实现的策略。我们不用怀疑ESB来的开放之路, 但至在目前阶段Q我们不能坐下来{待它的到来? 其实QESB充当的是SOA中的中介角色Q因此,即ɞ来ESB变化了,Ҏ(gu)务的h者和服务的提供者都不会(x)造成很大的冲击,因ؓ(f)它本来就是对用户透明 的。D个例子,J2EEQ它的标准一直在变化中,但是大家通常都能接受它的变化Q社?x)L要进步的QIT也一栗你不可能因为J2EE 两年以后要出1.6׃再用现在的1.4了?/p>
IBM目前可以用于ESB实施的品也可以分ؓ(f)两大阵营Q?/p>
现有的EAI解决Ҏ(gu)Q可能涉?qing)如下的IBM软g产品Q?/p>
WAS6 中提供了崭新的消息服务^台WPM(WebSphere platform messaging)QƈZq一q_提供了ESB的一个具体实? SIBus(Service Integration Bus) 它可以支持同步和异步的消息通信。ȝ(Bus)通过互联的消息引擎管理消息源。同时支持基于Web服务和JMSQMQ格式的消息交互。你可以从WAS6 w上看到IBM战略的变化,SIBus只是IBM加大对于SOA支持的一步,你还?x)很快看到更多的变化Q例如独立的ESB产品QESB的开发工L(fng){。但 是,你完全不必担心,q些变化都会(x)保持兼容性,现在SOA的投入,无论是以哪一U方式,都会(x)在IBM的SOA整体考虑之中?/p>
上述的两U方案ƈ不是对立的,你可以选择Z成熟产品实现ESBQ也可以试一下IBM的最新技术。这两种Ҏ(gu)甚至可以互联Q见囑օ。我们将在系列的W四部分讲解q一较ؓ(f)复杂的场景?/p>
在本pd文章接下来的三部分中Q我们将l箋详细描述ESB的具体实现步骤?/p>
本文向?zhn)介绍了SOA以及(qing)ESB 的基本知识,定了一?ESB 实现中最常见的基本功能,了ESB产生的必要性,以及(qing)ESB在SOA中的C?/p>
李珉QIBM SOA Design Center 高工程师,技术经理,N导WAS6 SIBus的测试工作,对ESB的技术发展一直有所x?/p>
1996q_(d)Gartner最早提出SOA?002q?2月,Gartner提出SOA?C应用开发领域最重要的课?QSOAq不是一个新? 物,ITl织已经成功建立q实施SOA应用软g很多q了QBEA、IBM、等厂商看到了它的h(hun)|UL(fng)跟进。SOA的目标在于让IT变得更有Ҏ(gu),以更? 地响应业务单位的需求,实现实时企业(Real-Time EnterpriseQ这是Gartner为SOA描述的愿景目?。而BEA的CIO Rhonda早在2001q?月就提出要将BEA的IT基础架构转变为SOAQƈ且从Ҏ(gu)个企业架构的控制能力、提升开发效率、加快开发速度、降低在客户 化和人员技能的投入{方面取得了不错的成l?/p>
SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一U规范。这个定义决定了SOA的广泛性。SOA要求开发者从服务集成? 角度来设计应用YӞ即ɘq么做的利益不会(x)马上昄。SOA要求开发者超应用Y件来思考,q考虑复用现有的服务,或者检查如何让服务被重复利用。SOA 鼓励使用可替代的技术和Ҏ(gu)(例如消息机制)Q通过把服务联pd一赯非~写C码来构架应用。经q适当构架后,q种消息机制的应用允许公总通过调整? 有服务模式而非被迫q行大规模新的应用代码的开发,使得在商业环境许可的旉内对变化的市场条件做出快速的响应?
SOA也不仅仅是一U开发的Ҏ(gu)?-它还包含理。例如,应用SOA后,理者可以方便的理q些搭徏在服务^C的企业应用,而不 是管理单一的应用模块。其原理是,通过分析服务之间的相互调用,SOA使得公司理人员方便的拿C么时候、什么原因、哪些商业逻辑被执行的数据信息Q这 样就帮助了企业管理h员或应用架构师P代地优化他们的企业业务流E、应用系l?
SOA的一个中心思想是使得企业应用摆脱面向技术的解决Ҏ(gu)的束~,L应对企业商业服务变化、发展的需要。企业环境中单个应用E序 是无法包容业务用L(fng)(各种)需求的Q即使是一个大型的ERP解决Ҏ(gu)Q仍然不能满个需求在不断膨胀、变化的~口Q对市场快速做出反应,商业用户只能 通过不断开发新应用、扩展现有应用程序来艰难的支撑其现有的业务需求。通过注意力攑֜服务上,应用E序能够集中h提供更加丰富、目的性更强的商业? E。其l果是Q基于SOA的企业应用系l通常?x)更加真实地反映Z业务模型的结合。服务是从业务流E的角度来看待技术的--q是从上向下看的。这U角? 同一般的从可用技术所驱动的商业视角是相反的。服务的优势很清楚:(x)它们?x)同业务程l合在一P因此能够更加_地表CZ务模型、更好地支持业务程。相 反我们可以看C应用E序Z心的企业应用模型q业务用户其能力局限ؓ(f)应用E序的能力?
企业程(enterprise process)是流l企业框架的I气Q它赋予业务模型里的lg以生命,q更加清晰地定义了它们之间的关系。流E定义了同业务模型进行交互操作的专门? 法。例如,?x)计可能是企业服务系l的一个组?-但是发寄l客户却是一个业务流E。服务被定义用来支持业务程Q因而诏I整个流E始l的是:(x)各种服务 lg在流E和逻辑实现q程中的装配操作。理解业务流E是定制服务的关键所在?
二、SOA 的描q所适用的原?/p>
?1说明了这些原则。注意,虽然 Web 服务技术非常符合这些原则,但它q不是唯一W合q些原则的技术?
Z实现 SOAQ应用程序和基础架构都必L?SOA 原则。启?SOA 应用E序涉及(qing)到创建服务接口,服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。从最基本的别来看,启用该基架构涉及(qing)到规划功能来服务请?em>路由和传递给正确的服务提供者。然而,基础架构支持在不影响服务的客L(fng)的情况下由另一个服务实?em>替代原有的服务实C是至关重要的。这不仅需要根?SOA 原则指定服务接口Q而且需要基架构允许客户端代码以独立于所涉及(qing)的服务位|和通信协议的方式来调用服务?
三、ESB是什么?
Ҏ(gu)l基癄的ESB定义QESB有如下特性:(x)
对于其中一些厂商(IBM、微软)来说QESB是将一pd能力联结在一L(fng)一U模式,而其他厂商认为ESB是一U品。在2005q_(d)微YIdentity Platform的品经理Rich Turner写道Q?
ESB[产品]是一根聪明的子Q用来连接各个愚W的节点。[……]Web Service的途径让节Ҏ(gu)w也变得聪明Q减了对底下聪明管道的需要,q确保了跨越Mq_与设备的开攄通讯?
The OWASP Top 10 Web Application Security Risks for 2010 are:
Please help us make sure every developer in the ENTIRE WORLD knows about the OWASP Top 10 by helping to spread the word!!!
As you help us spread the word, please emphasize:
We need to encourage organizations to get off the penetrate and patch mentality. As Jeff Williams said in his 2009 OWASP AppSec DC Keynote: “we’ll never hack our way secure – it’s going to take a culture change” for organizations to properly address application security.
If you are interested in doing a presentation on the OWASP Top 10, please feel free to use all or parts of this:
The OWASP Top Ten provides a powerful awareness document for web application security. The OWASP Top Ten represents a broad consensus about what the most critical web application security flaws are. Project members include a variety of security experts from around the world who have shared their expertise to produce this list. Versions of the 2007 were translated into English, French, Spanish, Japanese, Korean and Turkish and other languages. Translation efforts for the 2010 version are underway and they will be posted as they become available.
We urge all companies to adopt this awareness document within their organization and start the process of ensuring that their web applications do not contain these flaws. Adopting the OWASP Top Ten is perhaps the most effective first step towards changing the software development culture within your organization into one that produces secure code.
SecondLife服务器构?/p>
SecondLifeQ下USLQ的服务器端包括q六大类服务器:(x)Login serverQ登陆服务器Q;User serverQ用h务器Q;Space serverQ空间服务器Q;Data serverQ即数据服务器)QSimulatorQ即模拟器)Q常被称为SIMQOther serversQ其他服务器Q,包含若干不同功能服务器,林登公司QLindenQ似乎对它们的详情有所保留?/p>
下面对这六大cL务器q行详细解释?/p>
1、Login serverQ登录服务器。是q行在login.agni.lindenlab.com上的CGI脚本。顾名思义Q就是用来验证用户名和密码的。验证后q要军_用户dC么区域:(x)是用L(fng)家、还是上ơ离开SL时的区域或者URL指定的某个区域。接下来要找到运行该区域的模拟器Q验证用h否被允许q接到该区域。最后向模拟器发接请求,q告知客L(fng)q接C处?/p>
2、User serverQ用h务器。曾被用来处理用L(fng)录,即登录服务器现在的功能。现在负责管理即旉讯Qinstant messageQ会(x)话,其是组内即旉讯?/p>
3、Space serverQ空间服务器。处理基于不同网格XQY坐标间消息的路径选择。模拟器与空间服务器?x)话以便被其登记在案Q还可以发现自己的邻居是谁。作用与|络概念中\由器总?/p>
4、Data serverQ数据服务器。处理与中心数据库、日志服务器、仓库数据库以及(qing)搜烦数据库的q接Q上q?U服务器属于W?cd他服务器Q,代表模拟器运行查询。(注:(x) SL 服务器网g只有一个中心服务器Q日志服务器Q而仓库服务器以及(qing)搜烦服务器分别有多个Q或者在某个范围内,前两者与后两者分别是一对多的关pR)
5、SimulatorQ模拟器。这是SL最主要的服务器。每个模拟器模拟一?56*256q米的整块区域。当SL客户端浏览器满虚拟世界{(zhn)时Q实际上是在不同的模拟器间被倒手。模拟器的Q务有Q存储物体状态、土地状态、地形v拔图状态。模拟器q负责计物体和土地的能见度Qƈ把计数据传送给客户端。模拟器q用优先队列传送图像数据。还有一U物理学模拟器专门掌Hovak物理学例库[1]。公p话(ChatQ和x通讯Qinstant messageQ也由模拟器处理。全速运行时Q模拟器可达每秒45帧,如果不能保持全速,它将在不减低帧速率的情况下试旉膨胀[2]Q在Second Life中如果不能全速,则会(x)以物体显Cgqؓ(f)代h(hun)Q而不?x)媄响已昄物品的质量,q种效果也被叫做Lag?/p>
模拟器两两之间以UDP|络q接q行通信Qƈq?c)模拟器保持通信q接?/p>
要注意的是:(x)在Second Life中,模拟器与客户端浏览器QViewerQ之间的区别与其他虚拟环境差异较大。模拟器负责q行物理引擎Q碰撞检,跟踪每一事物和用户化wAvitar的位|,物品的位置发送给客户端,必要时将更新的数据发送给客户端(只有当发生碰撞或者方向和速度变化{情况下才会(x)有这U更斎ͼ。而客L(fng)负责处理本地物品的位|,获取速度{物理学信息Q进行简单的物理学运以跟踪何物向何处移动,不进行碰撞检?/p>
6、Other serversQ其他服务器Q其中包含若q规模较?yu)的服务器。下面一一说明Q?/p>
l 中央枢纽Q在SL的官方网站上没有l出说明Q但Ҏ(gu)字面意思推断,应当与全局通讯、调度以?qing)分布式q算有关?/p>
l 代理数据库:(x)掌管元数据与目idQUUIDQ之间的映射。代理(AgentQ一词在SL中特指与用户化nQAvatarQ相对应的后台底层的唯一表示Q在SL计算机系l中有唯一识别PUUUIDQ该L(fng)与用h唯一对应且持久存在的。其他物品也有UUIDQ但物品的UUID是在物品攄于虚拟世界中时(f)时生成的Q不是持久的UUID。元数据是指在Second Life中不可分的数据,比如构成物体形状的基本单元(primQ,或者一张纹理(textureQ。一个物体可能由多个元数据组成,因此需要记录元数据与物体,也即是此处所U的目之间的关p,而代理数据库承担此责Q。同ӞM物体都有唯一拥有者,记录物体的拥有者,也是代理数据库的d?/p>
l 中心数据库:(x)官方文档描述该服务器存储谁拥有什么,用于记录账单Q而实际上q不止这么简单,但囿于目前所能取得的资料Q很有对其详细的叙q?/p>
l 搜烦数据库:(x)中心数据库的副本Q用于搜索。可以断定,Z提高搜烦效率Q此数据库一定保有大量烦引。而中心数据库Z保证数据写入和修改的效率Q用的索引肯定是比较少的?/p>
l 地图服务器:(x)使用OpenGLl制全局地图。Second Life客户端也是用OpenGLl制的,此外普通网上的SL地图使用的是Google的地图API?/p>
l RPC服务器:(x) XML RPCQ远E过E调用)服务器。其作用包含Q开发者需要的Q不通过客户端浏览器来操作Second Life的APIQ可XMLRPC服务器代码翻译ؓ(f)in-worldhQ与I间数据库和中心数据库通讯?/p>
SecondLife用户d验证步骤解析
我们不妨通过分析d验证的步骤,来看看这些服务器是如何进行互盔R信的。流E可参见文后囄?/p>
1. 客户端对用户服务器发出安全信息校验和QChecnsumQ请求,端口P(x)12036?/p>
2. 客户端对d服务器发出登录请求:(x)
a) 通过HTTP打包发送XML RPCq行dQ?/p>
b) Web服务器(多数情况下是ApacheQ与SQL数据库通话Q获得用户信息,q接模拟器所需信息Q比如IP地址Qƈ生成q接Q?/p>
c) 用户帐号名称QMD5口o(h)Q客L(fng)版本Q登录地址h?/p>
3. d服务器从数据库获得授权证书?/p>
4. d服务器与|格中的模拟器对话:(x)
a) 军_哪个模拟器负责该客户端;
b) h?x)话开始;
c) |格q回与客L(fng)通讯的UDP端口?12035Q?3000-13050
5. SIM响应d服务器,告知用户是否允许d到模拟器?/p>
6. d服务器响应客L(fng)Q?/p>
a) q回的信息有Q用户idQ会(x)话idQ安全会(x)话idQ模拟器IPQ模拟器端口P全局坐标Q用户仓库信息等Q?/p>
b) 大部分id都是UUIDQ比如用户idQ会(x)话idQ安全会(x)话idQ;
c) 用户id是唯一的,q且是永久的?/p>
7. 客户端与模拟器握手,q发送用户id和会(x)话id?/p>
8. 客户端与用户服务器握手:(x)
a) 发送出席信息,以便收到l及(qing)时消息(Group IMQ;
b) l用h予组权限Q?/p>
c) 用户服务器验证模拟器?x)话信息Q在数据库的Presence-Agent表中Q?/p>
l语
以上是对SecondLife架构的一个简要介l,目前国内已经出现了类似SecondLife的在U虚拟游戏/CQ希望本文能够ؓ(f)大家提供一些启C,同时也期待国内的架构师们出来分n自己的经验与心得?/p>
说明Q本文部分内容译自SecondLife官方wiki?/p>
--------------------------------------------------------------------------------
[1]单地说物理学模拟器负责物理学相关的运,比如重力加速度的效果,不同物体的空间占位关pȝ。Hovak是服务器端系l(gridQ的代号Q即发布的是Hovak4?/p>
[2]物理学名词,来自相对论。时间ƈ不是永远以我们感受到的当前这U速度q行的,它也?x)发生变化;一般和速度有关。速度快Q越接近于光速,旉׃(x)慢
DEM 的目的和特点
1.刉技术的发展带来了管理思想的改变。最早的理思想可以q溯?1911 q?F.W.TAYLOR 的著?" U学理原理 (PRINCIPLES OF SCIENTIFIC MANAGEMENT)" ?1913 q_(d) F.W. HARRIS 提出?EOQ 公式Q目的是Z合理地控制库存?60 q代?70 q代Q?ORLICKY 提出?MRP 。随后,又出C MRPII Q包括集成的财务理pȝ?MRP 和需求管理等?90 q代后,提出?ERP Q其包括了与企业相关的各U系l的集成 ( ?HR Q? CAD/CAM Q?PDM Q?FINITE SCHEDULING ?EDI {?) ?2.q入 90 q代以后Q世界格局发生了根本的变化。反映在刉业Q就是全球化势日益明显?
3.动态多变的市场要求企业的业务过E有较好的柔性,能根据环境的变化?qing)时调整其业务过E?业务q程重组Q?BPR )。在业务q程重组的同Ӟ现有的信息系l也必须随之调整。这h能在不同的层ơ支持业务过E的重组Q之真正能起到应有的作用。然而,现有?ERP 软g(?SAP/R3 ?Oracle {?的柔性较差,q不能很好满一要求。僵的信息pȝ与动态多变的市场、频J的 BPR 成Z后的一寚w要矛盾。ؓ(f)了解册个矛盾,荷兰 BaaN 公司提出了下一?ERP Q即动态企业徏? Dynamic Enterpreise Modelling,DEM )的思想Qƈ已将其付诸实现?
4.DEM 在如下几个关键方面区别于通常?ERP Q?
DEM 的目的和特点
1. DEM 的目的是让用L(fng)自己熟?zhn)的方式,?gu)其公司内部和外界环境的变化,最快、最好地建立公司的业务控制模型、业务功能模型和业务q程模型Q或对它们进行调 _(d)节约旉、消除浪贏V降低成本和提高效率Q以期在无法预测的持l、快速变化的竞争环境中求得生存和发展?
2. DEM 是一U革命性的软g设计Ҏ(gu)Q其本质特征是通过使用动态的理模型来徏立一个新的信息系l。每个模型都是动态的Q因为它允许而且便于企业规划和记录其发展 和演变历E,因此支持业务q程的连l优化。在 DEM 中,主要体现了两个思想Q一是在生成某公司的特定模型Ӟ充分利用最好的实例知识和实늻验,表现在企业参考模型的使用Q二是在动态公怸Q公司的信息p? l能够适应公司环境{的快速变化,表现?DEM 工具 -- 企业建模工具的用?
3. DEM 的三个主要优Ҏ(gu)Q?
DEM 的内?
介:(x)
SAP公司是ERP思想的倡导者,成立?972q_(d)总部讑֜德国南部的沃?yu)(dng)道夫市。SAP的主打品R/3是用于分?
式客h/服务器环境的标准ERP软gQ主要功能模块包括:(x)销售和分销、物料管理、生产计划、质量管理、工厂维修、h力资源、工业方案、办公室和通信、项
目系l、资产管理、控制、胦务会(x)计。R/3适用的服务器q_是:(x)Novell、Netware、NT Server、OS400、Unix
Q适用的数据库q_是:(x)IBM DB2、Informix、MS SQL Server、Oracle
Q支持的生l营cd是:(x)按定单生产、批量生产、合同生产、离散型、复杂设计生产、按库存生、流E型Q其用户主要分布在航I天、汽车、化工、消费品?
?sh)器讑֤、电(sh)子、食品饮料等行业?br />
点评Q?br />
R/3的功能涵盖了企业理业务的各个方面,q些功能模块服务于各个不同的企业理
领域。在每个理领域QR/3又提供进一步细分的单一功能子模块,例如财务?x)计模块包括总̎、应收̎、应付̎、胦务控制、金融投资、报表合q、基金管理等
子模块。SAP所提供的是一个有效的标准而又全面的ERP软gQ同时Y件模块化l构保证了数据单独处理的Ҏ(gu)Ҏ(gu)需求?br />
目前Q排名世?00
强的企业Q有一半以上用的是SAP
的Y件品。因R/3的功能比较丰富,各模块之的关联性非常强Q所以不仅h(hun)格偏高,而且实施隑ֺ也高于其他同cY件。R/3适用于那些管理基较好l营?
模较大的企业Q普通企业选择R/3Ӟ要充分考虑软g适用性和h因素?br />
高度集成的Oracle
介:(x)
Oracle公司是全球最大的应用软g供应商,成立?977q_(d)总部讑֜国加州。OracleL理软g产品
Oracle Applications
R11i是目前全面集成的?sh)子商务套g之一Q能够企业l营的各个方面全面自动化。Oracle企业理软g的主要功能模块包括:(x)销售定单管理系l、工E?
数据理、物料清单管理、主生计划、物料需求计划、能力需求管理、R间生产管理、库存管理、采购管理、成本管理、胦务管理、h力资源管理、预警系l?
Oracle适用的服务器q_是:(x)DEC Open VMS?NT?Unix?Windows
95/98Q数据库q_是:(x)OracleQ支持的生l营cd是:(x)按定单生产、批量生产、流E式生、合同生产、离散型刉、复杂设计生产、合型生?
按定单设计、按库存生Q其用户主要分布在:(x)航空航天、汽车、化工、消费品、电(sh)器设备、电(sh)子、食品饮料行业?br />
点评Q?br />
Oracle凭?#8220;世界领先的数据库供应?#8221;q一优势CQ徏立v构架在自w数据之上的企业理软gQ其核心优势在于它的集成性和完整性。用户完全可?
从Oracle公司获得M所需要的企业理应用功能Q这些功能集成在一个技术体pMQ而如果用h从其它Y件供应商处获得Oracle所提供的完整功
能,很可能需要从多家供应商分别购C同的产品Q这些系l分属于不同供应商的技术体p,׃同的N予以实施Q媄响了各个pȝ之间的协同性。对于集成性要
求较高的企业QOracle无疑是理想的选择。但企业如果对开放性要求较高,Oracle昄无法胜Q?br />
适宜“大批量生?#8221;的JDE
介:(x)
J.D.Edwards公司?977q在国U罗拉多州丹市创立QJDEpȝ是其提供的一套用于企业商务解x案的软g?
品。JDEpȝ的模块包含制造业、分销业、胦务、h力资源管理,其中刉业部分׃品数据管理、厂房设备维修、R间控制、主生计划、物料需求计划、能?
需求计划等模块所l成Q分销业部分由预测、需求计划、库存管理、销售定单处理、销售分析、采购定单处理、分销资源计划、仓库管理、电(sh)子数据交换(EDIQ?
模块所l成Q胦务部分由dc̎和基财务、胦务模式、预和分配、应收̎、应付̎、现金̎、多国通货账、固定资产等模块l成?br />
JDE适用?
服务器^台有QNT、OS/400、Unix、Digital VMSQ适用的数据库q_是:(x)IBM DB2、MS SQL
Server、OracleQ支持的生l营cd是:(x)按定单装配、批量生产、按定单设计、合同生产、离散型、按定单刉、按库存生、合型生、连l?
型、大扚w生。用户主要分布在汽R、化工、消费品、电(sh)器设备、电(sh)子、食品饮料、工业品、金属加工、制药业{行业?br />
点评Q?br />
JDE最早是适用于制造业的MRPIIpȝQ后来发展成为适用于制造业、金融、分销、徏{、能源、化工、房C?qing)公用事业方面的商务软g。虽然JDE的用
户遍?qing)世?5个国家和地区Q销售额也一直高居世界ERP软g供应商排名前五位Q但JDE曄一度被淡忘Q因为它所采用的技术构架和~程技术没有多层客?
?服务器和面向对象~程那么热烈地被Z谈论?br />
JDE在系l稳定性和q行速度上有优异表现Q特别适用于大量生产型的工业企业,而且实施L本不高。JDE是完全基于IBM ASQ?00型机开发的Q在其他通用pȝ上的q行效果不理惟뀂目前JDE也在向其他^台扩展?br />
实现“动态企业徏?#8221;的Baan
介:(x)
BAAN是一个ؓ(f)目型、流E型以及(qing)L型业供应链提供ERPpȝ和咨询服务的公司。BAAN的Y件家族品支持企业一pd
的业务过E,其中包括Q制造、胦务、分销、服务和l护业务。此外,BAAN公司q提供了Orgware——一套组l工具和软g工具Q它能帮助企业减实?
旉和成本,q能帮助企业实现对系l的不断改进。BAAN ERP 适用的服务器q_是:(x)NT?OS/400?Unix?Windows
95/98?IBM S390Q适用的数据库q_是:(x)IBM DB2、Informix、MS SQL
Server、OracleQ支持的生cd是按定单设计、复杂设计生产,用户主要分布在航I天、汽车、化工、工业制造等行业?br />
点评Q?br />
BAAN通过Orgwarepȝ件作Z业徏模工P以保证企业灵z运用YӞ它强大的功能能满企业现在的实际需求,也能满企业来的需求?
Orgware把公司本w的业务处理程作ؓ(f)输入Q以标准的企业模型ؓ(f)参考,很快地配|系l来满企业的需要和Ҏ(gu)要求。这P企业的BAAN应用pȝ?
模型׃(x)快速地利地被定下来?br />
业务程重组QBPRQ不利往往是媄响ERP实施的重要因素,BAAN的动态徏模思想和技术不仅有利于保障
企业成功实施ERPpȝQ而且便于企业今后依据理需要重新构Z务框架。业务流E重l有困难或者预计将来业务流E会(x)发生改变的企业,选择BANN?x)有?
于成功实施运用ERPpȝ?
为用户量体裁衣的SSA-BPCS
介:(x)
SSA成立?981q_(d)其总部讑֜国芝加哥。SSA主要向用h供的BPCSQBusiness
Planningand ControI
System商业计划与控制系l)套g包括财务、分销、制造三大部分,能满企业在q三个管理领域的大部分需要。BPCS适用的服务器q_是:(x)
OS/400、UnixQ适用的数据库q_是:(x)Informix、OracleQ支持的生cd是:(x)按定单生产、按库存生、批量生产、连l型、合型?
L型,用户主要分布在汽车、化工、消费品、离散型、电(sh)器设备、电(sh)子、食品饮料、机器制造、金属加工、制药等行业?br />
点评Q?br />
SSA的BPCSpȝ的设计具有y妙的功能和极大的使用Ҏ(gu),各模块均包含许多用户自定义参数设计功能,可将pȝ加以裁剪l合Q以W合用户Ҏ(gu)需求?br />
和BAAN一PSSA为用戯计了快速实施系l的Ҏ(gu)Q以减少实施的时间成本和风险成本。由于BPCS强大的自定义功能Q实施BPCS的用h需?
弃原来的工作模版Q而是Ҏ(gu)用户的实际工作情冉|裁剪l合pȝQ以便短旉内上U运用?#8220;我们的Y件是为快速实施所设计”?#8220;我们保持着极短的时?-?
益期”成ؓ(f)SSA打动用户的独特卖炏V?br />
对于客户化设|要求较多,或者对于实施时间要求较高的企业Q采用SSA的BPCS?x)是一个不错的选择?br />
实现客户价值的SYMIX-SyteLine
介:(x)
Symix成立?979q_(d)是在微机服务器上开发MRPII软g的第一家Y件公司。Symix
提供的Y件品SyteLine套g包含的主要功能模块是Q总̎、应收款pȝ、应付款pȝ、订单管理、采购管理、库存管理、资产管理、预管理、成本管
理、生产计划。适用的服务器q_是:(x)NTQUnixQ适用的数据库是:(x)Progress、OracleQ支持的生cdQ按定单生、按库存生、离散型
生的企业。用户主要分布在汽R刉、电(sh)子电(sh)器、机械制造、金属加工等行业?br />
点评Q?br />
以客户ؓ(f)中心的商业模式这几年来受?
重视QCRMQcustomer relationship management
客户关系理QY件因此运应而生Q逐步成ؓ(f)企业信息化徏讄焦点。虽然CRMq一思想qSymix切地提出,但是Symix却将“以客户ؓ(f)中心”的生
产经营理忉|大程度地融合到Y件中?br />
大多数CRM软gx的是以客户ؓ(f)中心的营销服务工作Q而Symix的CSRPQCustomer
Synchronized Resource
Planning客户同步资源计划Q系l更能以客户为导向,pȝ地组合企业各生产经营资源,因此Symix自称CSRP是超ERP的新型管理思想和Y
件系l。对于外部市场环境变化较快,或者完全根据客户需求生产的企业Q选择Symix能较好地实现客户需求拢动式生?br />
构徏虚拟工厂的QADQMFGQPRO
介:(x)
QAD公司?979q在国加州的卡宄瑞创立,其Y件品MFGQPROpȝ包含分销、制造、胦务三大类?6个主要功能模
块。适用的服务器q_是:(x)NT、UnixQ适用的数据库q_是:(x)Progress、OracleQ支持的生cd是:(x)L型、连l型、成批生产、备货生
产、按订单生和重复生产,用户主要分布在电(sh)子工业、汽车制造、医药工业和消费品工业等行业?br />
点评Q?br />
以戴?dng)和阿_达斯Z?
的虚拟工厂经营模式,在以信息技术ؓ(f)ȝ新经时代有着Ҏ(gu)的经营优ѝQAD的供应链理pȝ是用来帮助建立虚拟工厂的,q个“工厂”涉?qing)的不同?
发者、供应者、装配者、包装者和批发者组lv来,使它们与客户要求保持一_(d)然后工厂在品上标以l一商标q获得利润。QAD
集成的分布式MFGQPROpȝ能运行于虚拟工厂的整个经营管理过E,以便?#8220;工厂”其客户与他们自己很好地l合hQ然后再与供应商Q以?qing)供应商的?
应商联系在一赗MFGQPROpȝ可以讄成一台机器多个数据库、多台机器单数据库、一台机器分开的数据库、多台机器分散的数据库,q种灉|的数据库?
|,可以实现L数目的用h同时存取L数目的数据库服务器,以确保虚拟工厂在不同地区不同信息环境下协同运作?br />
便实用的四班—Fourth Shift
介:(x)
FOURTH SHIFTQ四班)公司成立?982q_(d)总部位于国明尼阿L利斯市。Fourth
Shift软g包含40多个理模块Q覆盖生产、采购、销售、客h务等集成子系l。适用的服务器q_是:(x)Novell
Netware、NT、Windows 95/98Q适用的数据库q_是:(x)MS SQL
ServerQ支持的生cd主要是离散型、按单生产,也可用于程式连l生产型企业Q用户主要分布在日用消费品、电(sh)子电(sh)器、计机行业?br />
点评Q?br />
Fourth Shift是一套适于中小刉企业应用的软gpȝQ功能虽然不如SAP的Y件丰富,但基本符合中企业在生理、物管理、胦务管理等斚w的需求,而且h便实用、成本低廉、实施期短(一??个月完成实施Q等特点?br />
虽然Fourth Shift在世界的理软g销售排名不是很靠前Q但在中国及(qing)其它亚太地区的市C俗,q与Fourth ShiftW合q些地区大部分企业的实际需求,以及(qing)Fourth Shift一直以来在产品和服务本地化斚w所做的努力不无关系?br />
目前Fourth Shift的胦务会(x)计系l已l通过中国财政机构W合中国?x)计理制度的评审。中制造企业特别是L型制造业在选择企业理软gӞFourth Shift可以作ؓ(f)首要考虑对象?br />
兼容q蓄的CA—MANMANQX
介:(x)
CAQComputer AssociatesQ公司是以开发大型机软g起家的Y件品公司。由籍华h王嘉廉于1976q创立,总部讑֜国U约长岛?br />
CA的品家族非常庞大,MANMANQX是其提供的一个完整的刉业理pȝ。该pȝ由制造、工E、胦务、销售与售后服务、系l工具五大部分组成,?
中每一部分又由各功能模块构成,例如Q制造部分中包含了基资料、库存管理、计划(MPSQMRPQCRPQ管理、采购管理、R间控制和成本?x)计部分?br />
MANMANQX不受工作q_或操作系l环境的限制Q适用于Oracle、INGRES{各U关pd数据库ƈ附带专有数据库系l?br />
点评Q?br />
CA软g最大的特点在于兼容q蓄的通用性和开放性。由于开放、模块化l构QMANMANQX完全独立于计机软/g环境Q允?dng)R择能最好工作的q_Q?
适用的数据^C非常q泛。同时系l能适应用户各种生l营cd要求Q包含了各种刉方法单独的或Q何组合的应用Q可以满用L(fng)许多特定需求?
MANMANQX提供的修改菜单和屏幕Q以?qing)自动生成应用程序的客户化开发工P使用户具备了对迅速变化的市场和管理需求作相应调整的能力?br />
与Oracle
一PCA提供l企业的是一个全面而完整的理解决Ҏ(gu)Q企业办公及(qing)l营理所涉及(qing)的Y件品,几乎都能从CA的Y件家族中扑ֈ。与Oracle不同?
是,CAh软g产品领域的广泛性和软g本n的开放性。CA兼容q蓄的风g仅体现在软g产品上,而且体现在企业经营上?br />
在中国,CA正在?
本地化的资本和文化融合之路,目前已经和包括联惟뀁安易在内的许多计算Yg厂商合作Q共同开拓本地市场。由于CA兼容q蓄的风|使企业选择CA不仅
选择了一个开攄软gpȝQ而且选择了全方位的系l支持和持箋发展的保障。有资料UCA是世界第二大独立软g供应商,但在企业理软g领域Q目前CA的表
CSAP、Oracle{?#8220;大腕”UY件供应商相比q有差距?
原作?崔启?
外包是发包方和接包方互相信Q、高度协作的共同行ؓ(f)。ؓ(f)了顺利实施外包,对于发包方,要求企业h一定的技术水
q뀁项目管理水q뀁h力资源和沟通控制能力。对于接包方Q要求企业具有一定的成本、质量控制能力,h国际市场开拓能力(包括业务能力、交能力、接包渠
道和商业信誉{)。ؓ(f)了是外包服务形成产业化,q要求Ş成良好的政策环境和市场环境等?
下面以Y仉目外包ؓ(f)例,从发包方和接包方的角度,讨论实施外包的关键因素?
1、项目需?
目需求是目规划和正实施的Ҏ(gu)Q在外包目实施q程中,如果客户l常改变需求或提出新需求,常常佉K目g期或出预算Q对于合作双斚w?x)受到商誉和l济上的损失?
通常发包Ҏ(gu)据外包的目特点Q进行项目外包分析,提出目需求报告。接包方在实施项目之前应该深入了解和挖掘客户需求,Ҏ(gu)些不明确的需求与发包方讨论,对于目实施q程中的需求变_(d)规定处理办法Qƈ达成一_(d)形成目的最l需求?
在需求分析阶D,接包斚w先对发包方的需求认真分析,然后通过业务建模、会(x)谈、问南需求会(x)议等方式攉客户完整需求,形成文档Q然后经q客戯论、客户审查、文档修订等多次反复的过E?
2、项目计?
在项目实施之前,通常发包Ҏ(gu)出项目实施计划的草稿。项目计划的内容应该完整、可行,对于目程、工作量、资源配|和目里程等需要双Ҏ(gu)受达成一致?
接包方要?qing)时全面分析计划的内容,要详l地跟本企业的计划进行比对和审核Q从而了解外包商Ҏ(gu)个项目的程、内宏V估计的工作量和资源的安排是否与目本n的要求吻合。明昄差异都需要及(qing)时澄清ƈ建立p?
发包Ҏ(gu)据接包方寚w目计划草E的认真分析和深入讨论,q行必要的修改和补充QŞ成双斚w接受的最l项目实施计划?
3、质量控?
软g外包的质量指软g产品满用户需求的E度Q包括功能需求、性能需求、稳定性、安全性和技术先q性需求、支持和服务需求等。达到客L(fng)质量要求是外包业务的基本要求?
以Y件开发项目ؓ(f)例,接包方质量控制的常用Ҏ(gu)如下Q?
通过多次反复、多方参与的评审控制需求和设计的质量?
在编码之前,制定代码规范Qƈ强制执行Q以便保证代码的规范性?
通过严格的、完整的试程保证~码质量?
需求分析、方案、系l设计、测试计划、实施计划等必须q行内部评审Q通过内部评审后指定双方h员共同审查?
必须制定全面的测试计划和质量保证实施q程q过审查?
pȝ交付使用前,要经历单元测试、集成测试、系l测试和用户试、验收测试等质量验过E?
制定实施和维护计划以?qing)实施和l护操作规程Q记录操作过E,?qing)时请发包方认?
4、进度控?
q度影响双方的成本,可能影响发包方的业务Q进度还可能影响产品质量?
接包方应该按照项目计划的q度实施目Q及(qing)时定期汇报实际实施的q度。对目实施q程中媄响进度的因素l合分析Q及(qing)时与发包方交,提出解决办法。发包方要对接包方的q度q行监控?/p>
软g外包目实施q度控制的常用方法如下:(x)
通过U学估算Q考虑资源配置情况Q共同制定合理的双方认可的进度计划?
l分dQ制定更加精l的里程,q按里程进行验收和考核?
建立常规的进度报告制度,以便?qing)时掌握目q度?
采用严格的流E来控制需求变更?
q度计划中,一些比较大的工作拆l,以便讄更多的里E碑?
5、风险控?
风险理QRisk ManagementQ是指经单位对可能遇到的风险进行预、识别、评估、分析ƈ在此基础上有效地处置风险Q以最低成本实现最大安全保障的U学理Ҏ(gu)?
发包方要Ҏ(gu)外包目的特点和要求Q制定切实可行的计划Q选择合适的接包方,q且密切监控目的实施过E?
接包方一定要Ҏ(gu)个项目够了解,其中包括目需求、工作范围、实现方法和预期l济利益的来源。对于已l完成的部分Q要有一套合理的评估Ҏ(gu)?
发包方可以通过下列方式来控刉险:(x)
通过考察企业实力、资D证和服务l验严格选择接包斏V?
通过严密的法律条ƾ、严格的合同审核来保障知识权和商业机密?
通过严格的过E的q程控制来控制外包业务的质量和进度?
接包方可以通过下列方式来控刉险:(x)
q行严格的需求管理和控制Q充分挖掘客户需求?
严格规范合同赯、谈判、审查和{vQ在合同条文中明规定外包服务过E的责、权、利、知识权和商业机密保护?
执行规范的项目管理和控制Q严格控制质量和q度?
通过有效的h力资源管理来E_队伍、徏立后备队伍和提升团队的技术能力和l合素质?
建立和保持畅通的沟通渠道?
6、交与沟?
实施外包目是发包方和接包方互相配合、共同合作的q程。要保障外包业务的顺利进行,必须建立有效的沟通渠道?
建立有效的沟通渠道包括以下内容:(x)