﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Sealyu-随笔分类-系统架构</title><link>http://www.blogjava.net/sealyu/category/35761.html</link><description>--- The devil's in the Details (&lt;a href="http://www.sealyu.com"&gt;http://www.sealyu.com&lt;/a&gt;)</description><language>zh-cn</language><lastBuildDate>Tue, 07 Dec 2010 15:52:13 GMT</lastBuildDate><pubDate>Tue, 07 Dec 2010 15:52:13 GMT</pubDate><ttl>60</ttl><item><title>企业服务总线解决方案剖析，第 1 部分: 企业服务总线的基本概念（转）</title><link>http://www.blogjava.net/sealyu/archive/2010/12/07/340000.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Tue, 07 Dec 2010 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2010/12/07/340000.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/340000.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2010/12/07/340000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/340000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/340000.html</trackback:ping><description><![CDATA[<p><a name="N10046">引言</a></p>
<p>"一切都在流动，没有什么是持久的。一切都在融化，没有什么是固定不变的" - 赫拉克利特(Heracleitus) </p>
<p>大约在2003年中的时候，SOA的概念逐渐进入人们的视野，一时间众人乐此不疲的发表各自对SOA的见解。SOA已经成
为IT业，尤其是软件开发及系统集成领域从业者的热门话题。很多的权威机构也纷纷预测SOA的美妙前景，例如，Gartner 预言，到了 2008
年，至少 60% 的企业将使用 SOA
作为其IT架构。抛开喧嚣躁动以及随声附和，对于软件开发者而言，经过了一年多的概念灌输，伴随着不断增长的困惑，更多的人希望能静下心来看一看：究竟怎
样的系统架构是符合SOA设计的，而又有哪些技术可以用来实现SOA呢？特别是企业服务总线(Enterprise Service Bus,
ESB)， 看起来更是SOA中一个玄虚的概念，本系列文章将通过实际的案例分析来详细讲解在SOA系统中是怎样实施ESB的。</p>
<p>本系列文章将直接面向广大的软件开发人员， 首先以直观的方式介绍什么是ESB，
然后引入一个实际案例，以此为基础，详细介绍怎样一步一步实现ESB。现在我们谈论SOA和ESB的时候都不再是空中楼阁，IBM作为SOA的倡导者，已
经提供了很好的产品来实现我们的设想。我们会在本系列中的第二、第三部分中分别介绍基于WebSphere 6 和IBM EAI产品的两种实现方式，
然后在第四部分中介绍在复杂的企业应用场景中总线(Bus)怎样互联， 怎样扩展。希望通过本系列文章，能让广大读者朋友快速掌握ESB的实际开发技巧。</p>
<div><hr />
</div>
<p ibm-back-to-top=""><a href="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/#ibm-pcon" class="ibm-anchor-up-link">回页首</a></p>
<p><a name="N10055">关于SOA </a></p>
<p>关于SOA的概念，你可以找到很多的文章从不同的角度来描述它，不同的软件提供商也有不同的定义方式。BEA有流体计算，
微软有Indigo 和SOA-building， SAP有ESA。
每个人都可以从不同的视角来理解SOA，从程序员的角度，SOA是一种全新的开发技术，新的组件模型，比如说Web
Service；从架构设计师的角度，SOA就是一种新的设计模式，方法学；从业务分析人员的角度，SOA就是基于标准的业务应用服务。从概念的角
度，IBM对SOA的定义是最为全面的，既SOA是一种构造分布式系统的方法，它将业务应用功能以服务的形式提供给最终用户应用或其他服务。SOA包括如
下要素:</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image001.png" height="177" width="250" border="0" />
<br />
<ul>
    <li>一个体系架构，用开放的标准将软件资产(Asset)化为服务</li>
    <li>提供标准的方法来表示软件资产及其交互</li>
    <li>单独的软件资产作为构造单元，被重复使用来开发其他应用</li>
    <li>将关注点从细节实现转移到应用(application)组装</li>
    <li>整合企业外部的应用（B2B）的方式</li>
    <li>开发（现在）和整合（未来）的统一</li>
</ul>
<p>本文针对的读者是软件开发人员，站在开发人员的角度，往往希望软件开发能够满足对于开发效率、可靠性、易维护性、易管理等多方面的更高要求。让我们通过回顾软件开发的演化过程来看一看SOA出现的必然性：</p>
<ul>
    <li>面向机器语言(Monolithic)的开发模式：需要根据不同平台的机器语言来开发代码。</li>
    <li>面向过程(Procedure)的开发模式：独立于机器的程序语言(C, Pascal等)使开发过程变得简单了，用过程来代表一个抽象的代码集合，包装重用现成的代码。</li>
    <li>面向对象(Object)的开发模式：用更接近现实的对象来表述一个相对完整的事物。面向对象的语言(Smalltalk，Java等)，提供了更抽象的封装和重用模式。面向对象的开发强调从现实世界问题域到软件程序的直接映射，更接近人类的自然思维方式。</li>
    <li>面向组件(Component)的模式：随着软件开发规模的扩大，在涉及分布式、异构等复杂特征的环境中，代码
    级别的重用性差，可维护性差，效率低的弱点是不可逾越的，因此人们以架构运行环境(如.Net，J2ee等)来提供完善的支撑平台，从而把开发者解放出
    来，更专注于业务核心的开发。而这些业务功能(Business Function) 以组件的形式(DCOM，
    EJB等)发布运行在架构运行环境中。软件开发的重用模式也上升到业务组件的级别。</li>
    <li>面向服务(SOA)的模式：当软件的使用范围扩展到更广阔的范围，往往会面对更加复杂的IT环境和更加灵活多变
    的需求。服务(Service)的概念出现了，人们将应用(Application)以业务服务(Business
    Service)的形式公布出来供别人使用，而完全不需要去考虑这些业务服务运行在哪一个架构体系上，因为所有的服务都讲着同样的语言。SOA考虑了业务
    发展的长期性，体现了"变化就是永恒"的思想。SOA的核心体现在企业应用或者业务功能上的"重用"和"互操作"，而不再把IT与业务对立起来，这可以被
    视为在IT驱动业务的方向上迈出的重要一步。</li>
</ul>
<p>我们注意到，SOA同样也强调重用(Reuse)，
但是相对于传统的代码重用，对象重用，和部件重用，SOA的重用粒度更粗。SOA的重用在于业务级的应用，即服务的重用，这与软件的发展规律是相一致的。
在软件发展的过程中，软件重用的对象越来越接近我们的现实生活。通过部件的重用，软件的开发更具效率，并且开始试图用组件表达业务模式。但是，IT人员仍
很难对业务人员解释清楚IT结构怎样映射到业务模型上。然而，IT架构与业务模型的弥合是不可避免的方向。现代企业的业务环境所面临的最大挑战就是变化，
规则在变，需求在变，而对变化做出最快的反应，尽快地适应变化，成为企业占得先机，成功运作的关键。很多企业的业务环境依赖于他们的IT架构，因此，IT
部门往往直接承载了业务变化带来的压力。每一个具体的业务变化，都直接反应到对现有的IT平台的要求：要么企业IT架构本身对变化自适应，要么IT架构能
够在短时间内根据新的业务规则做出调整。这就是SOA架构提出的根本原因，我们需要一种更加贴近业务的IT架构，能够直接描绘业务，对那些不懂IT技术的
业务领域专家来说，业务服务却是他们最熟悉的，也就是说是SOA把软件重用的对象从IT人员上升到了业务人员。因此，我们可以说SOA与其它的模式相比，
最大的进步在于它与业务的关联性，"服务"对应到实际业务。IT通过"服务"与业务发生了密切的关系，业务人员和IT人员都可以专注于业务逻辑的实现，而
共同的语言就是"服务"。</p>
<p>但不是什么场合都适用SOA。通常来讲，SOA适用于较为复杂的IT架构，经常需要与外部复杂的IT环境交互，并且需要快
速地应对频繁发生的业务变化。就像你不可能在控制洗衣机的芯片上使用EJB开发一样，如果你的IT环境规模很小，足以灵活地应对变化，不需要与其他的异构
IT环境频繁交互，那么SOA带来的好处就不足以抵消它给你带来的系统复杂性。但是，即令如此，你也并没有被完全排除在SOA的大趋势之外。SOA是如此
地倍受瞩目，我们可以预见到它的迅猛发展，因此即使你的内部IT架构本身并不是基于SOA的，你也还有机会参与到未来的SOA架构中去。例如，将你的某个
业务以服务的形式发布到某个外部SOA平台上供别人使用，作为第三方SOA平台的一个服务提供者(Service Provider)存在。</p>
<p>在选择SOA的实施方案时，要记住，软件的具体实现技术诸如Web 服务与SOA是两回事，SOA是一个概念，方法学，
或者用一个更时髦的词：一种模型。而Web 服务呢？它是一种具体的实现技术，就像EJB一样。SOA &#8800; Web服务。不过公平地讲，Web
服务倒确实是目前最适合实现SOA的技术之一，用Web
服务来封装业务服务是个不错的选择。因为Web服务是标准的，WS-I协议保证了来自不同厂商的Web服务即使运行在不同的平台上，底层的实现机理不同也
可以顺利交互，这是以前的任何一种技术如CORBA，EJB，或DCOM都不能做到的。而且，Web服务的定义与实现是分开描述的，即松散耦合，因此，可
以很方便地替换服务的内在实现而不会对现有的系统造成任何冲击，这也极大地促进了IT架构的灵活性。</p>
<p>对于SOA更进一步的了解，可以参考IBM developerWorks上其他SOA相关的文章(请参见参考资料)，我们的系列文章将主要讨论ESB，因此不再此过多地论述SOA了。为了使我们下面的论述更顺畅，请先牢记典型的SOA架构有哪些基本的要求：</p>
<ol>
    <li>SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用；</li>
    <li>服务间保持松散耦合，基于开放的标准， 服务的接口描述与具体实现无关；</li>
    <li>灵活的架构 -服务的实现细节，服务的位置乃至服务请求的底层协议都应该透明；</li>
</ol>
<div><hr />
</div>
<p ibm-back-to-top=""><a href="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/#ibm-pcon" class="ibm-anchor-up-link">回页首</a></p>
<p><a name="N100B1">ESB</a></p>
<p>让我们暂时回到网络技术不普及的时代，你怎样在两台机器之间传递文件？我还记得为了给实验室的每台机器安装Borland
C++的环境，猜猜我动用了什么：一根"串口线"。不过，我仍然觉得庆幸，好在每台机器都运行同样的操作系统-
DOS(很少有人还记得DOS中有Interlnk这样一个命令吧)，
用来通过串口线在两台机器间传递流文件。否则我将不得不用软盘来拷贝所有的安装文件。我那个时候的梦想就是，哪一天有这么一个叫做"网络"的东西能够把实
验室里面所有机器都连接起来，而不用我在各机器之间跑来跑去。</p>
<p>让我们回归主题，你现在已经基本明白了什么是SOA。假定你已经按照SOA的思想提炼出了各种业务服务，公布出来，同样，
你发现其他很多人也做了同样的事情。大家都很振奋，开始踊跃的尝试，我调用你的一个服务，你调我的一个服务。啊哈！大家都SOA了。且慢，那么这个SOA
给你们带来了什么好处呢？Ok，现在我可以在J2EE环境里调用.Net的组件了，但是原来没有SOA的时候也可以做到的呀。只要两个节点之间互相认可对
方的方式，即使不存在公开/统一的服务界面也可以实现点到点的互联。因此我们不得不承认，如果我们只有服务，而服务的请求者和服务的提供者之间仍然需要这
种显式的点到点的调用，那么这就不是一个典型的SOA架构。请看图二，服务的参与双方都必须建立1对1
的联系。这样一个结构与我十几年前的那种互联的方式何其相似！但是，还记得我们上面提到的SOA三个基本要素吗？显然第三点没有做到。</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image004.gif" height="189" width="195" border="0" />
<br />
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image005.gif" height="188" width="194" border="0" />
<br />
<p>因此，在SOA中，我们还需要这样一个中间层，能够帮助实现在SOA架构中不同服务之间的智能化管理。最容易想到的是这样
一个HUB-Spoke结构，在SOA架构中的各服务之间设置一个类似于Hub的中间件，由它充当整个SOA架构的中央管理器的作用。请看图三，现在服务
的请求者和提供者之间有了一个智能的中转站，
服务的请求者不再需要了解服务提供者的细节。不错！看上去是一个好的SOA结构。事实上，传统的EAI就是通过这样一种方式来试图解决企业内部的应用整合
问题。</p>
<p>EAI的目标是支持对现有IT系统的重新利用，通过EAI技术能够将不同的软件和系统串联起来，延长这些应用系统的生命周
期。传统的EAI，往往使用如CORBA和COM等的消息中间件进行分布式，跨平台的程序交互，修改企业资源规划以达到新的目标，使用中间件、XML等方
法来进行数据分配。因此，实际上传统的EAI是部件级的重用。很不幸的是，基于部件的架构没有统一的标准，因此，各个厂商都有各自不同的EAI解决方案，
你会看到各种各样的中间件平台。如果EAI碰到了异构的IT环境，就必须分别考虑怎样在各个不同的中间件之间周旋，来实现合理的互联方式，你不得不考虑各
种复杂的可能性。因此，你所见过的大多数传统EAI解决方案都比较笨重。</p>
<p>再回顾一下我们上面介绍过的SOA的应用场景：复杂的企业级架构。如果我们选择Hub的模式来构建SOA基础架构，从纯粹
逻辑的角度，可能会出现哪些问题呢？首先，整个SOA架构的性能，如果每个服务的请求都经过中央Hub的中转，那么Hub的负担会很重，速度会随着参与者
的增多而愈来愈慢；其次，这样的系统会很脆弱，一旦Hub出错，整个SOA架构都会瘫痪；最后，这样的架构会破坏SOA的开放性原则，参与者运行在一个相
对封闭的环境中，扩展起来十分麻烦。因此，这也不是理想的SOA架构。</p>
<p>好了，现在该ESB登场了，请看我们的正解：</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/pic4.gif" height="253" width="560" border="0" />
<br />
<p>它与前面的Hub结构有什么不同呢？首先，它比单一Hub的形式更开放，总线结构有无限扩展的可能；其次，真正体现了
SOA的理念，
一切皆为服务，服务在总线(BUS)中处于平等的地位。即使我们需要一些Hub，那么它们也是以某种服务的形式部署在总线上，相比上面的结构要灵活的多。
这就是ESB，我们需要给它一个明确的定义：ESB是一种在松散耦合的服务和应用之间标准的集成方式。它可以作用于：</p>
<ul>
    <li>面向服务的架构 -分布式的应用由可重用的服务组成</li>
    <li>面向消息的架构 - 应用之间通过ESB发送和接受消息</li>
    <li>事件驱动的架构 - 应用之间异步地产生和接收消息</li>
</ul>
<p>很不幸，上面的定义看上去很拗口，我们暂且用一句较通俗的话来描述它：ESB就是在SOA架构中实现服务间智能化集成与管
理的中介。而它与SOA的关系要相对好理解一些：ESB是逻辑上与SOA
所遵循的基本原则保持一致的服务集成基础架构，它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。可以这样说，ESB是特定环境下(SOA
架构中)实施EAI的方式：
首先，在ESB系统中，被集成的对象被明确定义为服务，而不是传统EAI中各种各样的中间件平台，这样就极大简化了在集成异构性上的考虑，因为不管有怎样
的应用底层实现，只要是SOA架构中的服务，它就一定是基于标准的。</p>
<p>其次，ESB明确强调消息(Message)处理在集成过程中的作用，这里的消息指的是应用环境中被集成对象之间的沟通。
以往传统的EAI实施中碰到的最大的问题就是被集成者都有自己的方言，即各自的消息格式。作为基础架构的EAI系统，必须能够对系统范畴内的任何一种消息
进行解析。传统的EAI系统中的消息处理大多是被动的，消息的处理需要各自中间件的私有方式支持，例如API的方式。因此尽管消息处理本身很重要，但消息
的直接处理不会是传统EAI系统的核心。ESB系统由于集成对象统一到服务，消息在应用服务之间传递时格式是标准的，直接面向消息的处理方式成为可能。如
果ESB能够在底层支持现有的各种通讯协议，那么对消息的处理就完全不考虑底层的传输细节，而直接通过消息的标准格式定义来进行。这样，在ESB中，对消
息的处理就会成为ESB的核心，因为通过消息处理来集成服务是最简单可行的方式。这也是ESB中总线(Bus)功能的体现。其实，总线的概念并不新鲜，传
统的EAI系统中，也曾经提出过信息总线的概念，通过某种中间件平台，如CORBA来连接企业信息孤岛，但是，ESB的概念不仅仅是提供消息交互的通道，
更重要的是提供服务的智能化集成基础架构。</p>
<p>最后，事件驱动成为ESB的重要特征。通常服务之间传递的消息有两种形式，一种是调用(Call)，
即请求/回应方式，这是常见的同步模式。还有一种我们称之为单路消息(One-way)，它的目的往往是触发异步的事件，
发送者不需要马上得到回复。考虑到有些应用服务是长时间运行的，因此，这种异步服务之间的消息交互也是ESB必须支持的。除此之外，ESB的很多功能都可
以利用这种机制来实现，例如，SOA中服务的性能监控等基础架构功能，需要通过ESB来提供数据，当服务的请求通过ESB中转的时候，ESB很容易通过事
件驱动机制向SOA的基础架构服务传递信息。</p>
<div><hr />
</div>
<p ibm-back-to-top=""><a href="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/#ibm-pcon" class="ibm-anchor-up-link">回页首</a></p>
<p><a name="N10116">ESB的适用场景及要素</a></p>
<p>首先，我们来看一看ESB有哪些基本的功能。既然ESB会以中介的身份出现，它就必须有两方面的考虑，首先它必须了解被它
中介的两个端点：1)服务的请求者以及请求者对服务的要求，2)服务的提供者和它所提供服务的描述；其次，它必须具有某种机制能够完成中介的任务。我们把
这两类考虑归纳为ESB的两个基本功能：面向服务的原数据(MetaData)管理功能 和中介(Mediation)功能。
作为SOA的重要构成部分，ESB承担的重任还包括怎样将企业架构中已存在的业务服务连接到总线上来，我们称之为适配器(Adapter)功能。尽管服务
本身已经用公开的接口来描述，但具体的实现还是运行在不同的环境中，因此，ESB还应该提供对服务底层协议的支持，譬如应用协议J2ee，.Net，
通讯协议如Http，JMS等等。除此之外，还需要对具体应用中涉及到的服务加以管理，如性能，可靠性，安全性等等。</p>
<p>ESB 提供了最基本的功能来保障SOA系统的运行，这些功能应该包含下列内容：</p>
<ul>
    <li>在总线范畴内对服务的注册命名及寻址管理功能 - 服务的Meta-data管理</li>
    <li>面向服务的中介功能
    <ul>
        <li>提供位置透明性的服务路由和定位服务</li>
        <li>多种消息传递型式(请求/响应，单路请求，发布/订阅等等)</li>
        <li>支持广泛使用的传输协议(Http，JMS，MQ等等) </li>
    </ul>
    </li>
    <li>支持多种服务集成方式，比如 JCA、Web 服务、Messaging、Adaptor</li>
    <li>对服务管理的支持，如服务调用的记录、测量和监控数据的提供</li>
</ul>
<p>很多时候，很难界定哪些功能是应该由SOA的基础架构(infrastructure)提供的，而哪些应该放在ESB的范
畴内来解决。笔者认为，放大或突出ESB在SOA架构中的地位并不很恰当。比较合理的解释是：ESB应该构筑在完善的SOA架构上，做它应该做的事-服务
集成。至于怎样集成，应该根据你的上下文环境，考虑有哪些SOA的基础设施可供你使用，然后再基于SOA的基础架构来实现你的ESB设计。</p>
<p>在更高的层次，ESB还提供诸如服务代理，协议转换等等功能，我们称之为ESB的应用模式(ESB usage pattern)。作为SOA架构的服务集成功能提供者，我们可以总结出的一些比较常用的应用模式，例如：</p>
<p>1）协议转换模型，用于当服务的请求者与服务提供者基于不同协议时的消息转换情形</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image024.png" height="401" width="575" border="0" />
<br />
<p>2）消息广播模式，用于事件驱动多个动作或者消息广播的情形</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image027.png" height="281" width="398" border="0" />
<br />
<p>3）服务匹配模式，用于需要动态选择服务提供者的情形，例如可以根据消息的内容，或负载情况，或服务级别约定(SLA)，来为服务请求者选择合适的服务。</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image030.png" height="335" width="547" border="0" />
<br />
<p>这里我们只列举了3个典型的模式，而这样的例子实在太多了，发挥你的创造性，你还会想出来更多的，这也是ESB的魅力所
在。但是，在ESB的设计上，注意不能喧宾夺主，ESB的功能在于帮助服务的集成，而不是参与业务逻辑。业务逻辑应该封装在业务服务中，或通过业务编排服
务(Process Service)来组织。</p>
<div><hr />
</div>
<p ibm-back-to-top=""><a href="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/#ibm-pcon" class="ibm-anchor-up-link">回页首</a></p>
<p><a name="N10182">实战</a></p>
<p>关于ESB，目前还没有被一致接受的标准。我们可以通过选择成熟的EAI
中间件来实现服务的集成与互操作性。这样做的好处是你的开发过程会很顺畅，因为它已经足够稳定且有丰富的工具支持。通常这样的EAI产品在目前阶段都还不
是基于开放的标准，例如IBM的WebSphere MQ5.3，作为IBM
EAI实现ESB的消息平台，就不是开放的标准。如果一定要选择开放标准的ESB实现方式，Web 服务加上WS-*
协议几乎是我们唯一的选择，但毕竟SOA、ESB仍处于起步的阶段，一方面我们还没有很成熟的产品支持所有的WS-*协议，另一方面这些WS-*
协议本身还处在频繁变化的阶段。因此当你选择ESB实施方案的时候，最好考虑平衡ESB实施、开发的工作量。</p>
<p>这里你可能会有疑问，既然SOA架构追求开放性，为什么我们要容忍用私有的ESB产品如IBM
WBI/MQ来构建SOA架构的集成环境？这是一个好问题。SOA始终是我们追求的大目标，开放是必然的趋势，这是毋庸置疑的。但是，请注意ESB的定
义，至少到目前为止，还没有明确的要求它的实现一定是开放的，每一个软件供应商对它都可能有不同的理解和实现的策略。我们不用怀疑ESB将来的开放之路，
但至少在目前阶段，我们不能坐下来等待它的到来。
其实，ESB充当的是SOA中的中介角色，因此，即使将来ESB变化了，对服务的请求者和服务的提供者都不会造成很大的冲击，因为它本来就是对用户透明
的。举个例子，J2EE，它的标准一直在变化中，但是大家通常都能接受它的变化，社会总是要进步的，IT也一样。你不可能因为J2EE
两年以后要出1.6就不再使用现在的1.4了。</p>
<p>IBM目前可以用于ESB实施的产品也可以分为两大阵营：</p>
<ol>
    <li>以目前稳定的产品如WS MQ，WBI Message Broker，Tivoli等为代表的EAI解决方案。</li>
    <li>以WAS6 SIBUS为代表的专用ESB平台。</li>
</ol>
<p>现有的EAI解决方案，可能涉及如下的IBM软件产品：</p>
<ul>
    <li>WebSphere BI Message Broker用于提供ESB的message 中介功能(Mediation)</li>
    <li>WebSphere MQ / JMS 用于消息传输服务</li>
    <li>WebSphere Process Choreographer 用于实现服务流程</li>
    <li>WebSphere Adaptor用于连接遗留系统</li>
    <li>Web Service Gateway用于实现Web服务 Proxy，屏蔽企业内部/外部Web服务的实现细节</li>
</ul>
<p>WAS6 中提供了崭新的消息服务平台WPM(WebSphere platform
messaging)，并基于这一平台提供了ESB的一个具体实现- SIBus(Service Integration Bus)
它可以支持同步和异步的消息通信。总线(Bus)通过互联的消息引擎管理消息源。同时支持基于Web服务和JMS，MQ格式的消息交互。你可以从WAS6
身上看到IBM战略的变化，SIBus只是IBM加大对于SOA支持的一步，你还会很快看到更多的变化，例如独立的ESB产品，ESB的开发工具等等。但
是，你完全不必担心，这些变化都会保持兼容性，现在SOA的投入，无论是以哪一种方式，都会在IBM的SOA整体考虑之中。</p>
<p>上述的两种方案并不是对立的，你可以选择基于成熟产品实现ESB，也可以尝试一下IBM的最新技术。这两种方案甚至可以互联，见图八。我们将在系列的第四部分讲解这一较为复杂的场景。</p>
<br />
<img alt="" src="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/images/image033.png" height="293" width="580" border="0" />
<br />
<p>在本系列文章接下来的三部分中，我们将继续详细描述ESB的具体实现步骤。</p>
<div><hr />
</div>
<p ibm-back-to-top=""><a href="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/#ibm-pcon" class="ibm-anchor-up-link">回页首</a></p>
<p><a name="N101CA">结束语</a></p>
<p>本文向您介绍了SOA以及ESB 的基本知识，确定了一些 ESB 实现中最常见的基本功能，论述了ESB产生的必要性，以及ESB在SOA中的地位。</p>
<div><hr />
</div>
<p ibm-back-to-top=""><a href="http://www.ibm.com/developerworks/cn/webservices/ws-esb1/#ibm-pcon" class="ibm-anchor-up-link">回页首</a></p>
<p><a name="N101D3">参考资料</a></p>
<ul>
    <li>
    <a href="http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246303.html?Open">Patterns: Service-oriented Architecture and Web Services红皮书</a>，SG24-6303-00，2004 年 4 月，作者 Endrei M。 等。</li>
    <li>"<a href="http://www.ibm.com/developerworks/cn/webservices/ws-esbscen/">理解面向服务的体系结构中企业服务总线场景和解决方案，第 1 部分</a>"(developerWorks，2003 年 12 月)作者 <a href="http://www.ibm.com/developerworks/cn/webservices/ws-esbscen/index.html#author1#author1">Rick Robinson</a>。</li>
    <li>
    <a href="http://publib-b.boulder.ibm.com/Redbooks.nsf/65f0d9cea6e0ab57852569e0007452bb/2b0de69b65f8a81285256e620078c4c9?OpenDocument">Patterns: Implementing an SOA using an Enterprise Service Bus</a>，SG24-6346-00，作者 Martin Keen 等。</li>
    <li>Enterprise service bus - making SOA real作者 Beth Hutchison， Peter Lambros， Rob Phippen， Marc-Thoms Schimdt</li>
</ul>
<br />
<p><a name="author">关于作者</a></p>
<div ibm-portrait-module="" ibm-alternate-two="">
<div>
<p>李珉，IBM SOA Design Center 高级工程师，技术经理，曾领导WAS6 SIBus的测试工作，对ESB的技术发展一直有所关注。</p>
</div>
</div>
<img src ="http://www.blogjava.net/sealyu/aggbug/340000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2010-12-07 16:47 <a href="http://www.blogjava.net/sealyu/archive/2010/12/07/340000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面向服务架构（SOA）和企业服务总线（ESB）(转)</title><link>http://www.blogjava.net/sealyu/archive/2010/12/07/339998.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Tue, 07 Dec 2010 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2010/12/07/339998.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/339998.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2010/12/07/339998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/339998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/339998.html</trackback:ping><description><![CDATA[<p>学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB，重点关注微软在SOA领域的相关指导和.NET社区的相关开源的解决方案，和大家一起来探讨如何在企业里实现SOA，期望有实施SOA经验的同学发表意见。<br />
一、SOA的历史</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
1996年，Gartner最早提出SOA。2002年12月，Gartner提出SOA是"现代应用开发领域最重要的课题"，SOA并不是一个新事
物，IT组织已经成功建立并实施SOA应用软件很多年了，BEA、IBM、等厂商看到了它的价值，纷纷跟进。SOA的目标在于让IT变得更有弹性，以更快
地响应业务单位的需求，实现实时企业(Real-Time Enterprise，这是Gartner为SOA描述的愿景目标)。而BEA的CIO
Rhonda早在2001年6月就提出要将BEA的IT基础架构转变为SOA，并且从对整个企业架构的控制能力、提升开发效率、加快开发速度、降低在客户
化和人员技能的投入等方面取得了不错的成绩。</p>
<p>　　SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。这个定义决定了SOA的广泛性。SOA要求开发者从服务集成的
角度来设计应用软件，即使这么做的利益不会马上显现。SOA要求开发者超越应用软件来思考，并考虑复用现有的服务，或者检查如何让服务被重复利用。SOA
鼓励使用可替代的技术和方法(例如消息机制)，通过把服务联系在一起而非编写新代码来构架应用。经过适当构架后，这种消息机制的应用允许公司仅通过调整原
有服务模式而非被迫进行大规模新的应用代码的开发，使得在商业环境许可的时间内对变化的市场条件做出快速的响应。
</p>
<p>　　SOA也不仅仅是一种开发的方法论--它还包含管理。例如，应用SOA后，管理者可以方便的管理这些搭建在服务平台上的企业应用，而不
是管理单一的应用模块。其原理是，通过分析服务之间的相互调用，SOA使得公司管理人员方便的拿到什么时候、什么原因、哪些商业逻辑被执行的数据信息，这
样就帮助了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。
</p>
<p>　　SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚，轻松应对企业商业服务变化、发展的需要。企业环境中单个应用程序
是无法包容业务用户的(各种)需求的，即使是一个大型的ERP解决方案，仍然不能满足这个需求在不断膨胀、变化的缺口，对市场快速做出反应，商业用户只能
通过不断开发新应用、扩展现有应用程序来艰难的支撑其现有的业务需求。通过将注意力放在服务上，应用程序能够集中起来提供更加丰富、目的性更强的商业流
程。其结果就是，基于SOA的企业应用系统通常会更加真实地反映出与业务模型的结合。服务是从业务流程的角度来看待技术的--这是从上向下看的。这种角度
同一般的从可用技术所驱动的商业视角是相反的。服务的优势很清楚：它们会同业务流程结合在一起，因此能够更加精确地表示业务模型、更好地支持业务流程。相
反我们可以看到以应用程序为中心的企业应用模型迫使业务用户将其能力局限为应用程序的能力。
</p>
<p>　　企业流程(enterprise
process)是流经企业框架的空气，它赋予业务模型里的组件以生命，并更加清晰地定义了它们之间的关系。流程定义了同业务模型进行交互操作的专门方
法。例如，会计可能是企业服务系统的一个组件--但是将发票寄给客户却是一个业务流程。服务被定义用来支持业务流程，因而贯穿整个流程始终的是：各种服务
组件在流程和逻辑实现过程中的装配操作。理解业务流程是定制服务的关键所在。
</p>
<p>二、SOA 的描述所适用的原则</p>
<ul>
    <li>利用显式的与实现无关的接口来定义服务。
    </li>
    <li>利用强调位置透明性和可互操作性的通信协议。
    </li>
    <li>封装可重用业务功能的服务的定义。 </li>
</ul>
<p>图 1说明了这些原则。注意，虽然 Web 服务技术非常符合这些原则，但它并不是唯一符合这些原则的技术。
</p>
<p><a name="figure1"><strong>图 1: SOA 的原则</strong></a></p>
<p><a href="http://images.cnblogs.com/cnblogs_com/shanyou/WindowsLiveWriter/SOAESB_11B5F/soayz_4.gif"><img style="border: 0px none;" alt="soayz" src="http://images.cnblogs.com/cnblogs_com/shanyou/WindowsLiveWriter/SOAESB_11B5F/soayz_thumb_1.gif" height="244" width="148" border="0" /></a> </p>
<p>为了实现 SOA，应用程序和基础架构都必须支持 SOA 原则。启用 SOA 应用程序涉及到创建服务接口，服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。从最基本的级别来看，启用该基础架构涉及到规划功能来将服务请求<em>路由</em>和传递给正确的服务提供者。然而，基础架构支持在不影响服务的客户端的情况下由另一个服务实现<em>替代</em>原有的服务实现也是至关重要的。这不仅需要根据 SOA 原则指定服务接口，而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调用服务。
</p>
<p>三、ESB是什么？
</p>
<p>根据<a href="http://en.wikipedia.org/wiki/Enterprise_Service_Bus">维基百科的ESB定义</a>，ESB有如下特性：
</p>
<ol>
    <li>它是面向服务架构的实现。
    </li>
    <li>它通常是操作系统和编程语言无关的；它应能在Java和.Net应用程序之间工作。
    </li>
    <li>它使用XML（可扩展标识语言）作为标准通信语言。
    </li>
    <li>它支持Web服务标准。
    </li>
    <li>它支持消息传递（同步、异步、点对点、发布-订阅）。
    </li>
    <li>它包含基于标准的适配器（如J2C/JCA），用于集成传统系统。
    </li>
    <li>它包含对服务编制（orchestration）和编排（choreography）的支持。
    </li>
    <li>它包含智能、基于内容的路由服务（itenerary路由）。
    </li>
    <li>它包含标准安全模型，用于ESB的认证、授权和审计。
    </li>
    <li>它包含转换服务（通常是使用XSLT），在发送应用和接收应用之间转换格式，简化数据格式和值的转换。
    </li>
    <li>它包含基于模式（schema）的验证，用于发送和接收消息。
    </li>
    <li>它可以统一应用业务规则，充实其它来源的消息，分拆和组合多个消息，以及处理异常。
    </li>
    <li>它可以条件路由，或基于非集中策略的消息转换，即不需要集中规则引擎。
    </li>
    <li>它可监视不同SLA（服务级别合约）的消息响应门限，以及在SLA中定义的其它特性。
    </li>
    <li>它（常常）简化&#8220;服务类别&#8221;，向更高或更低优先级用户做出适当的响应。
    </li>
    <li>它支持队列，在应用临时不可用时用来保存消息。
    </li>
    <li>它由（地理）分布式环境中的选择性部署应用适配器组成 </li>
</ol>
<p>对于其中一些厂商（IBM、微软）来说，ESB是将一系列能力联结在一起的一种模式，而其他厂商认为ESB是一种产品。在2005年，微软Identity Platform的产品经理Rich Turner<a href="http://blogs.msdn.com/richardt/archive/2005/03/23/401146.aspx">写道</a>：
</p>
<blockquote>
<p>ESB[产品]是一根聪明的管子，用来连接各个愚笨的节点。[&#8230;&#8230;]Web Service的途径让节点本身也变得聪明，减少了对底下聪明管道的需要，并确保了跨越任何平台与设备的开放的通讯。 </p>
</blockquote><br />
<img src ="http://www.blogjava.net/sealyu/aggbug/339998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2010-12-07 16:45 <a href="http://www.blogjava.net/sealyu/archive/2010/12/07/339998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>threat modeling</title><link>http://www.blogjava.net/sealyu/archive/2010/11/22/338655.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Mon, 22 Nov 2010 00:26:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2010/11/22/338655.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/338655.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2010/11/22/338655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/338655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/338655.html</trackback:ping><description><![CDATA[threat
modeling：威胁模型分析——已经成为微软公司开发人员用于鉴别风险、并依据它作出更加设计、编码和测试决定的顶级安全分析方法学之一。其做法是在
产品设计好之后，利用其所产生的数据流程图[Data Flow
Diagram]观察产品的信息流，同时根据给定的几项原则[Stride]找出可能的潜在威胁，然后再一项项根据重要性进行修正。微软在推动其产品安全
性的举措中，常采用这项原则并依此再开发出一系列其它方法，以增强软件开发时的安全性。大多关于威胁模型分析方法的使用都可以在《Writing
Secure Code, Second Edition》（By Michael Howard and David
LeBlanc）这本书里找到。还有一本关于 threat modeling 的专著是即将出版的《Threat Modeling》（By
Frank Swiderski and Window Snyder）。
<img src ="http://www.blogjava.net/sealyu/aggbug/338655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2010-11-22 08:26 <a href="http://www.blogjava.net/sealyu/archive/2010/11/22/338655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OWASP Top 10 for 2010 </title><link>http://www.blogjava.net/sealyu/archive/2010/11/21/338626.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Sun, 21 Nov 2010 12:06:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2010/11/21/338626.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/338626.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2010/11/21/338626.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/338626.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/338626.html</trackback:ping><description><![CDATA[<p>On April 19, 2010 we released the final version of the OWASP Top 10 for 2010, and here is the associated <a href="http://www.owasp.org/index.php/OWASPTop10-2010-PressRelease" title="OWASPTop10-2010-PressRelease">press release</a>.
This version was updated based on numerous comments received during the
comment period after the release candidate was released in Nov. 2009.
</p>
<ul>
    <li><a href="http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202010.pdf" class="external text" title="http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202010.pdf" rel="nofollow">OWASP Top 10 - 2010 Document</a>
    </li>
    <li><a href="http://www.owasp.org/index.php/Top_10_2010" title="Top 10 2010">OWASP Top 10 - 2010 - wiki</a>
    </li>
    <li><a href="http://owasptop10.googlecode.com/files/OWASP_Top_10_-_2010%20Presentation.pptx" class="external text" title="http://owasptop10.googlecode.com/files/OWASP_Top_10_-_2010%20Presentation.pptx" rel="nofollow">OWASP Top 10 - 2010 Presentation</a>
    </li>
</ul>
<p>The OWASP Top 10 Web Application Security Risks for 2010 are:
</p>
<ul>
    <li>A1: Injection
    </li>
    <li>A2: Cross-Site Scripting (XSS)
    </li>
    <li>A3: Broken Authentication and Session Management
    </li>
    <li>A4: Insecure Direct Object References
    </li>
    <li>A5: Cross-Site Request Forgery (CSRF)
    </li>
    <li>A6: Security Misconfiguration
    </li>
    <li>A7: Insecure Cryptographic Storage
    </li>
    <li>A8: Failure to Restrict URL Access
    </li>
    <li>A9: Insufficient Transport Layer Protection
    </li>
    <li>A10: Unvalidated Redirects and Forwards
    </li>
</ul>
<p>Please help us make sure every developer in the ENTIRE WORLD knows about the OWASP Top 10 by helping to spread the word!!!
</p>
<p>As you help us spread the word, please emphasize:
</p>
<ul>
    <li>OWASP is reaching out to developers, not just the application security community
    </li>
    <li>The Top 10 is about managing risk, not just avoiding vulnerabilities
    </li>
    <li>To manage these risks, organizations need an application risk
    management program, not just awareness training, app testing, and
    remediation
    </li>
</ul>
<p>We need to encourage organizations to get off the penetrate and patch
mentality. As Jeff Williams said in his 2009 OWASP AppSec DC Keynote:
&#8220;we&#8217;ll never hack our way secure &#8211; it&#8217;s going to take a culture change&#8221;
for organizations to properly address application security.
</p>
<p>If you are interested in doing a presentation on the OWASP Top 10, please feel free to use all or parts of this:
</p>
<h2>  Introduction  </h2>
<p>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.
</p>
<p>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.
</p>
<img src ="http://www.blogjava.net/sealyu/aggbug/338626.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2010-11-21 20:06 <a href="http://www.blogjava.net/sealyu/archive/2010/11/21/338626.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>领域驱动设计和开发实战(转)</title><link>http://www.blogjava.net/sealyu/archive/2010/03/29/316783.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Mon, 29 Mar 2010 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2010/03/29/316783.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/316783.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2010/03/29/316783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/316783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/316783.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 背景领域驱动设计（DDD）的中心内容是如何将业务领域概念映射到软件工件中。大部分关于此主题的著作和文章都以Eric Evans的书《领域驱动设计》为基础，主要从概念和设计的角度探讨领域建模和设计情况。这些著作讨论实体、值对象、服务等DDD的主要内容，或者谈论通用语言、界定的上下文（Bounded Context）和防护层（Anti-Corruption Layer）这些的概念。相关厂商...&nbsp;&nbsp;<a href='http://www.blogjava.net/sealyu/archive/2010/03/29/316783.html'>阅读全文</a><img src ="http://www.blogjava.net/sealyu/aggbug/316783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2010-03-29 08:55 <a href="http://www.blogjava.net/sealyu/archive/2010/03/29/316783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何去掉 “您可能是软件盗版的受害者”程序</title><link>http://www.blogjava.net/sealyu/archive/2008/12/03/244089.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Wed, 03 Dec 2008 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2008/12/03/244089.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/244089.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2008/12/03/244089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/244089.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/244089.html</trackback:ping><description><![CDATA[唉，今天拿公司的系统盘装了系统，结果错拿成盗版的了，更新后一直出现&#8220;您可能是软件盗版的受害者&#8221;。<br />
一个简单的解决办法：<br />
打开注册表。在运行输入REGEDIT，就进入注册表 <br />
然后找HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WgaLogon， <br />
删除WgaLogon 重新启动， <br />
wgatray.exe就不会自动启动了， <br />
再找到你装系统的那个盘比如C盘:C\windows\system 32中的wgatray.exe删除，再搜索一下， <br />
在另外的文件夹下还有，统统删除，终于OK了。
<img src ="http://www.blogjava.net/sealyu/aggbug/244089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-12-03 10:44 <a href="http://www.blogjava.net/sealyu/archive/2008/12/03/244089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SecondLife 架构剖析</title><link>http://www.blogjava.net/sealyu/archive/2008/11/03/238371.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Mon, 03 Nov 2008 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2008/11/03/238371.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/238371.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2008/11/03/238371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/238371.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/238371.html</trackback:ping><description><![CDATA[<p>2007年，&#8220;SecondLife&#8221;三维虚拟风暴席卷了现实世界。原本定位为人生模拟类在线游戏的SecondLife，现在已经逐步演变成为一个国际化的在线模拟社区。人们在其中进行虚拟房地产交易，艺术家开办自己的作品展览，作为世界5大会计事务所之一的毕马威展开招聘工作，BBC等老牌传统媒体配备了SecondLife特派专职记者，时尚巨头阿玛尼也开了专卖店。现实世界中的一切，都可以在SecondLife中找到对应之物。不难想象，能够产生如此巨大影响力的SecondLife，其庞大的虚拟世界背后必然有优秀的技术架构作为支持。接下来就让我们一起来看看其中端倪。</p>
<p>SecondLife服务器构成</p>
<p>SecondLife（下简称SL）的服务器端包括这六大类服务器：Login server（登陆服务器）；User server（用户服务器）；Space
server（空间服务器）；Data server（即数据服务器）；Simulator（即模拟器），常被称为SIM；Other
servers（其他服务器），包含若干不同功能服务器，林登公司（Linden）似乎对它们的详情有所保留。</p>
<p>&nbsp;&nbsp; 下面对这六大类服务器进行详细解释。</p>
<p>1、Login
server，登录服务器。是运行在login.agni.lindenlab.com上的CGI脚本。顾名思义，就是用来验证用户名和密码的。验证后还要决定用户登录到什么区域：是用户的家、还是上次离开SL时的区域或者URL指定的某个区域。接下来要找到运行该区域的模拟器，验证用户是否被允许连接到该区域。最后向模拟器发出连接请求，并告知客户端连接到何处。</p>
<p>2、User server，用户服务器。曾被用来处理用户登录，即登录服务器现在的功能。现在负责管理即时通讯（instant
message）会话，尤其是组内即时通讯。</p>
<p>3、Space
server，空间服务器。处理基于不同网格X，Y坐标间消息的路径选择。模拟器与空间服务器会话以便被其登记在案，还可以发现自己的邻居是谁。作用与网络概念中路由器相仿。</p>
<p>4、Data
server，数据服务器。处理与中心数据库、日志服务器、仓库数据库以及搜索数据库的连接（上述4种服务器属于第6类其他服务器），代表模拟器运行查询。（注： SL
服务器网格中只有一个中心服务器，日志服务器，而仓库服务器以及搜索服务器分别有多个，或者在某个范围内，前两者与后两者分别是一对多的关系。）</p>
<p>5、Simulator，模拟器。这是SL最主要的服务器。每个模拟器模拟一个256*256平米的整块区域。当SL客户端浏览器满虚拟世界转悠时，实际上是在不同的模拟器间被倒手。模拟器的任务有：存储物体状态、土地状态、地形海拔图状态。模拟器还负责计算物体和土地的能见度，并把计算数据传送给客户端。模拟器还使用优先级队列传送图像数据。还有一种物理学模拟器专门掌管Hovak物理学例库[1]。公共谈话（Chat）和即时通讯（instant
message）也由模拟器处理。全速运行时，模拟器可达每秒45帧，如果不能保持全速，它将在不减低帧速率的情况下尝试时间膨胀[2]，在Second
Life中如果不能全速，则会以物体显示延迟为代价，而不会影响已显示物品的质量，这种效果也被叫做Lag。</p>
<p>　　模拟器两两之间以UDP网络连接进行通信，并由相邻的模拟器保持通信连接。</p>
<p>&nbsp;&nbsp;&nbsp; 要注意的是：在Second
Life中，模拟器与客户端浏览器（Viewer）之间的区别与其他虚拟环境差异较大。模拟器负责运行物理引擎，碰撞检测，跟踪每一事物和用户化身Avitar的位置，将物品的位置发送给客户端，必要时将更新的数据发送给客户端（只有当发生碰撞或者方向和速度变化等情况下才会有这种更新）。而客户端负责处理本地物品的位置，获取速度等物理学信息，进行简单的物理学运算以跟踪何物向何处移动，不进行碰撞检测。</p>
<p>6、Other servers，其他服务器，其中包含若干规模较小的服务器。下面一一说明：</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中央枢纽：在SL的官方网站上没有给出说明，但根据字面意思推断，应当与全局通讯、调度以及分布式运算有关。</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
代理数据库：掌管元数据与项目id（UUID）之间的映射。代理（Agent）一词在SL中特指与用户化身（Avatar）相对应的后台底层的唯一表示，在SL计算机系统中有唯一识别号，简称UUID，该号码与用户是唯一对应且持久存在的。其他物品也有UUID，但物品的UUID是在物品放置于虚拟世界中时临时生成的，不是持久的UUID。元数据是指在Second
Life中不可分的数据，比如构成物体形状的基本单元（prim），或者一张纹理（texture）。一个物体可能由多个元数据组成，因此需要记录元数据与物体，也即是此处所称的项目之间的关系，而代理数据库就承担此责任。同时，任何物体都有唯一拥有者，记录物体的拥有者，也是代理数据库的任务。</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
中心数据库：官方文档描述该服务器存储谁拥有什么，用于记录账单，而实际上远不止这么简单，但囿于目前所能取得的资料，很少有对其详细的叙述。</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
搜索数据库：中心数据库的副本，用于搜索。可以断定，为了提高搜索效率，此数据库一定保有大量索引。而中心数据库为了保证数据写入和修改的效率，使用的索引肯定是比较少的。</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 地图服务器：使用OpenGL绘制全局地图。Second
Life客户端也是使用OpenGL绘制的，此外普通网页上的SL地图使用的是Google的地图API。</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RPC服务器： XML RPC（远程过程调用）服务器。其作用包含：开发者需要的，不通过客户端浏览器来操作Second
Life的API，可将XMLRPC服务器代码翻译为in-world请求，与空间数据库和中心数据库通讯。</p>
<p>SecondLife用户登录验证步骤解析</p>
<p>我们不妨通过分析登录验证的步骤，来看看这些服务器是如何进行互相通信的。流程可参见文后图示。</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 客户端对用户服务器发出安全信息校验和（Checnsum）请求，端口号：12036。</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 客户端对登录服务器发出登录请求：</p>
<p>a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通过HTTP打包发送XML RPC进行登录；</p>
<p>b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web服务器（多数情况下是Apache）与SQL数据库通话，获得用户信息，连接模拟器所需信息（比如IP地址）并生成连接；</p>
<p>c)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户帐号名称，MD5口令，客户端版本，登录地址请求。</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 登录服务器从数据库获得授权证书。</p>
<p>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 登录服务器与网格中的模拟器对话：</p>
<p>a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 决定哪个模拟器负责该客户端；</p>
<p>b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请求会话开始；</p>
<p>c)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网格返回与客户端通讯的UDP端口号 12035，13000-13050</p>
<p>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIM响应登录服务器，告知用户是否允许登录到模拟器。</p>
<p>6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 登录服务器响应客户端：</p>
<p>a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回的信息有，用户id，会话id，安全会话id，模拟器IP，模拟器端口号，全局坐标，用户仓库信息等；</p>
<p>b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大部分id都是UUID（比如用户id，会话id，安全会话id）；</p>
<p>c)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户id是唯一的，并且是永久的。</p>
<p>7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 客户端与模拟器握手，并发送用户id和会话id。</p>
<p>8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 客户端与用户服务器握手：</p>
<p>a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 发送出席信息，以便收到组及时消息（Group IM）；</p>
<p>b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 给用户授予组权限；</p>
<p>c)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户服务器验证模拟器会话信息（在数据库的Presence-Agent表中）。</p>
<p>结语</p>
<p>　　以上是对SecondLife架构的一个简要介绍，目前国内已经出现了类似SecondLife的在线虚拟游戏／社区，希望本文能够为大家提供一些启示，同时也期待国内的架构师们出来分享自己的经验与心得。</p>
<p>说明：本文部分内容译自SecondLife官方wiki。</p>
<p>--------------------------------------------------------------------------------</p>
<p>[1]简单地说物理学模拟器负责物理学相关的运算，比如重力加速度的效果，不同物体的空间占位关系等。Hovak是服务器端系统（grid）的代号，即将发布的是Hovak4。</p>
<p>[2]物理学名词，来自相对论。时间并不是永远以我们感受到的当前这种速度进行的，它也会发生变化；一般和速度有关。速度越快，越接近于光速，时间就会越慢</p>
<img src ="http://www.blogjava.net/sealyu/aggbug/238371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-11-03 17:00 <a href="http://www.blogjava.net/sealyu/archive/2008/11/03/238371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是ERP（转载）</title><link>http://www.blogjava.net/sealyu/archive/2008/04/10/192020.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Thu, 10 Apr 2008 15:03:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2008/04/10/192020.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/192020.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2008/04/10/192020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/192020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/192020.html</trackback:ping><description><![CDATA[什么是ERP？——贴出来也自己多学习，呵呵，最近太忙了。
<div id="postmessage_15632">Gartner Group 信息技术词汇表中关于 ERP 的定义： <br />
Gartner Group's IT Glossary - Enterprise Resource Planning (ERP) <br />
A
concept developed by Gartner Group describing the next generation of
manufacturing business systems and manufacturing resource planning (MRP
II) software. It will include the client/server architecture, use
graphical user interfaces and be crafted with open systems. Beyond the
standard functionality that is offered, other features are included,
e.g., quality, process operations management, and regulatory reporting.
In addition, the base technology used in ERP will give users both
software and hardware independence as well as an easy upgrade path. Key
to ERP is the way in which users can tailor the application so it is
intrinsically easy to use.<br />
<br />
<br />
&nbsp; &nbsp; 一个由 Gartner Group
开发的概念，描述下一代制造商业系统和制造资源计划（MRP
II）软件。它将包含客户/服务架构，使用图形用户接口，应用开放系统制作。除了已有的标准功能，它还包括其它特性，如品质、过程运作管理、以及调整报告
等。特别是，ERP采用的基础技术将同时给用户软件和硬件两方面的独立性从而更加容易升级。ERP的关键在于所有用户能够裁剪其应用，因而具有天然的易用
性。<br />
<br />
<br />
Gartner Group提出ERP具备的功能标准应包括四个方面:<br />
<br />
<br />
1.超越MRPⅡ范围的集成功能<br />
包括质量管理;试验室管理;流程作业管理;配方管理;产品数据管理;维护管理;管制报告和仓库管理。<br />
2.支持混合方式的制造环境<br />
包括既可支持离散又可支持流程的制造环境;按照面向对象的业务模型组合业务过程的能力和国际范围内的应用。 <br />
3.支持能动的监控能力,提高业务绩效 <br />
包括在整个企业内采用控制和工程方法;模拟功能;决策支持和用于生产及分析的图形能力。<br />
4.支持开放的客户机/服务器计算环境<br />
包括客户机/服务器体系结构;图形用户界面(GUI);计算机辅助设计工程(CASE),面向对象技术;使用SQL对关系数据库查询;内部集成的工程系统、商业系统、数据采集和外部集成 (EDI)。<br />
ERP是对MRPⅡ的超越,从本质上看,ERP仍然是以MRPⅡ为核心,但在功能和技术上却超越了传统的MRPⅡ,它是以顾客驱动的、基于时间的、面向整个供应链管理的企业资源计划。<br />
<br />
<br />
一、ERP系统的管理思想<br />
<br />
<br />
ERP的核心管理思想就是实现对整个供应链的有效管理，主要体现在以下三个方面：<br />
<br />
<br />
1、体现对整个供应链资源进行管理的思想 <br />
在
知识经济时代仅靠自己企业的资源不可能有效地参与市场竞争，还必须把经营过程中的有关各方如供应商、制造工厂、分销网络、客户等纳入一个紧密的供应链中，
才能有效地安排企业的产、供、销活动，满足企业利用全社会一切市场资源快速高效地进行生产经营的需求，以期进一步提高效率和在市场上获得竞争优势。换句话
说，现代企业竞争不是单一企业与单一企业间的竞争，而是一个企业供应链与另一个企业供应链之间的竞争。ERP系统实现了对整个企业供应链的管理，适应了企
业在知识经济时代市场竞争的需要。<br />
2、体现精益生产、同步工程和敏捷制造的思想<br />
ERP系统支持对混合型生产方式的管理，其管理思想表现在
两个方面：其一是&#8220;精益生产LP（Lean
Production）&#8221;的思想，它是由美国麻省理工学院（MIT）提出的一种企业经营战略体系。即企业按大批量生产方式组织生产时，把客户、销售代理
商、供应商、协作单位纳入生产体系，企业同其销售代理、客户和供应商的关系，已不再简单地是业务往来关系，而是利益共享的合作伙伴关系，这种合作伙伴关系
组成了一个企业的供应链，这即是精益生产的核心思想。其二是&#8220;敏捷制造（Agile
Manufacturing）&#8221;的思想。当市场发生变化，企业遇有特定的市场和产品需求时，企业的基本合作伙伴不一定能满足新产品开发生产的要求，这时，
企业会组织一个由特定的供应商和销售渠道组成的短期或一次性供应链，形成&#8220;虚拟工厂&#8221;，把供应和协作单位看成是企业的一个组成部分，运用&#8220;同步工程
（SE）&#8221;，组织生产，用最短的时间将新产品打入市场，时刻保持产品的高质量、多样化和灵活性，这即是&#8220;敏捷制造&#8221;的核心思想。<br />
3、体现事先计划与事中控制的思想<br />
ERP系统中的计划体系主要包括：主生产计划、物料需求计划、能力计划、采购计划、销售执行计划、利润计划、财务预算和人力资源计划等，而且这些计划功能与价值控制功能已完全集成到整个供应链系统中。<br />
另
一方面，ERP系统通过定义事务处理（Transaction）相关的会计核算科目与核算方式，以便在事务处理发生的同时自动生成会计核算分录，保证了资
金流与物流的同步记录和数据的一致性。从而实现了根据财务资金现状，可以追溯资金的来龙去脉，并进一步追溯所发生的相关业务活动，改变了资金信息滞后于物
料信息的状况，便于实现事中控制和实时做出决策。<br />
此外，计划、事务处理、控制与决策功能都在整个供应链的业务处理流程中实现，要求在每个流程业务
处理过程中最大限度地发挥每个人的工作潜能与责任心，流程与流程之间则强调人与人之间的合作精神，以便在有机组织中充分发挥每个的主观能动性与潜能。实现
企业管理从&#8220;高耸式&#8221;组织结构向&#8220;扁平式&#8221;组织机构的转变，提高企业对市场动态变化的响应速度。
总之，借助IT技术的飞速发展与应用，ERP系统得以将很多先进的管理思想变成现实中可实施应用的计算机软件系统。<br />
<br />
<br />
二、应用ERP与企业的关系<br />
<br />
<br />
ERP是借用一种新的管理模式来改造原企业旧的管理模式，是先进的、行之有效的管理思想和方法。ERP软件在实际的推广应用中，其应用深度和广度都不到位，多数企业的效果不显著，没有引起企业决策者的震动和人们的广泛关注。<br />
1．实施ERP是企业管理全方位的变革<br />
企
业领导层应该首先是受教育者，其次才是现代管理理论的贯彻者和实施者，规范企业管理及其有关环节，使之成为领导者、管理层及员工自觉的行动，使现代管理意
识扎根于企业中，成为企业文化的一部分。国外企业实施ERP
似乎没有讨论的余地，全盘接受，自觉性强。其实，办企业这样做是天经地义的，而我们还要等待思想提高，观念更新，有时还要避开锋芒，迁就陈腐，互相推诿。
如果我们不坚决向这些陋习告别，这场全方位的变革就会反复、甚至夭折。<br />
2．企业管理班子要取得共识<br />
要眼睛向内，练好内功，做好管理的基础
工作，这是任何再好的应用软件和软件供应商都无法提供的，只能靠自己勤勤恳恳地耕耘。把ERP的实施称为"第一把手工程"，这说明了企业的决策者在ERP
实施过程中的特殊作用。ERP是一个管理系统，牵动全局，没有第一把手的参与和授权，很难调动全局。<br />
3．ERP的投入是一个系统工程<br />
ERP
的投入和产出与其他固定资产设备的投入和产出比较，并不那么直观、浅显和明了，投入不可能马上得到回报，见到效益。ERP的投入是一个系统工程，并不能立
竿见影，它所贯彻的主要是管理思想，这是企业管理中的一条红线。它长期起作用、创效益，在不断深化中向管理要效益。<br />
此外，实施ERP还要因地制
宜，因企业而别，具体问题具体分析。首先，要根据企业的具体需求上相应的系统，而不是笼统地都上小型机，或者不顾企业的规模上
WindowsNT，这样长期运作，对企业危害性极大。其次，这种投入不是一劳永逸的，由于技术的发展很快，随着工作的深入，企业会越来越感到资源的紧
缺，因此，每年应有相应的投入，才能保证系统健康地运转。<br />
4．ERP的实施需要复合型人才<br />
他们既要懂计算机技术，又要懂管理。当前高校对
复合型人才的培养远远满足不了企业的需求。复合型人才的培养需要有一个过程和一定的时间，但企业领导者常把这样不多的人才当作一般管理者，没有把他们当作
是企业来之不易的财富，是一支重要的队伍。这与长期忽视管理有关，这些复合型人才在企业中的地位远远不及市场开拓人员和产品开发者，而是"辅助"角色，不
是政策倾斜对象，这种因素是造成人才流失的重要原因。另外，当企业上ERP时，这些复合型人才起到了先导作用，而一旦管理进入常规，他们似乎又成为多余的
人，这已成为必然规律。在人才市场上，复合型人才最为活跃，那些有眼力的企业家都会下功夫挖掘人才，而这也不利于实施队伍的稳定。<br />
总之，条件具备的企业要不失时机地上ERP管理系统，不能只搞纯理论研究、再研究，长时间地考察。要首先整理好内部管理基本数据，选定或开发适合自己企业的ERP软件，条件成熟了就上。<br />
<br />
<br />
三、ERP的风险及其预防<br />
<br />
<br />
企业的条件无论多优越，所做的准备无论多充分，实施的风险仍然存在。在ERP系统的实施周期中，各种影响因素随时都可能发生变化。如何有效地管理和控制风险是保证ERP系统实施成功的重要环节之一。<br />
ERP项目的风险 <br />
通常人们在考虑失败的因素时，一般着重于对实施过程中众多因素的分析，而往往忽视项目启动前和实施完成后ERP系统潜在的风险。对于ERP项目而言，风险存在于项目的全过程，包括项目规划、项目预准备、实施过程和系统运行。归纳起来，ERP项目的风险主要有以下几方面：<br />
<br />
<br />
1. 缺乏规划或规划不合理；<br />
2. 项目预准备不充分，表现为硬件选型及ERP软件选择错误；<br />
3. 实施过程控制不严格，阶段成果未达标； <br />
4. 设计流程缺乏有效的控制环节；<br />
5. 实施效果未做评估或评估不合理；<br />
6. 系统安全设计不完善，存在系统被非法入侵的隐患； <br />
7. 灾难防范措施不当或不完整，容易造成系统崩溃。<br />
<br />
<br />
1．战略规划<br />
企
业是否存在一个五年的IT系统规划？随着社会的信息化，IT系统对于企业不仅是工具，更是技术手段。ERP作为IT系统的重要组成部分，服务于企业的长期
规划，是长期规划的手段和保证。ERP的目标源于IT系统规划，是评价ERP系统成败的基本标准，应依据IT系统规划，明确ERP系统的实施范围和实施内
容。<br />
2．项目预准备<br />
确定硬件及网络方案、选择ERP系统和评估咨询合作伙伴是该阶段的三项主要任务，也是ERP系统实施的三大要素。硬件
及网络方案直接影响系统的性能、运行的可靠性和稳定性；ERP系统功能的强弱决定企业需求的满足程度；咨询合作伙伴的工作能力和经验决定实施过程的质量及
实施成效。<br />
3．项目实施控制<br />
在ERP系统实施中，通常采用项目管理技术对实施过程进行控制和管理。有效的实施控制表现在科学的实施计划、
明确的阶段成果和严格的成果审核。不仅如此，有效的控制还表现在积极的协调和通畅的信息传递渠道。实施ERP
的组织机构包括：指导委员会、项目经理、外部咨询顾问、IT部门、职能部门的实施小组和职能部门的最终用户。部门之间协调和交流得好坏决定实施过程的工作
质量和工作效率。目前，在企业缺乏合适的项目经理的条件下，这一风险尤其明显和严重。<br />
4．业务流程控制 <br />
企业业务流程重组是在项目实施的
设计阶段完成的。流程中的控制和监督环节保证ERP在正式运行后，各项业务处于有效的控制之中，避免企业遭受人为损失。设计控制环节时，要兼顾控制和效
率。过多的控制环节和业务流程冗余势必降低工作效率。而控制环节不足又会有业务失控的风险。<br />
5．项目实施效果<br />
虽然项目评估是ERP实施过
程的最后一个环节。但这并不意味着项目评估不重要。相反，项目评估的结果是ERP实施效果的直接反映。正确地评价实施成果，离不开清晰的实施目标、客观的
评价标准和科学的评价方法。目前普遍存在着忽视项目评估的问题。忽视项目评估将带来实施小组不关心实施成果这一隐患。这正是ERP项目的巨大风险所在。<br />
6．系统安全管理 <br />
系
统安全包括：操作系统授权、网络设备权限、应用系统功能权限、数据访问权限、病毒的预防、非法入侵的监督、数据更改的追踪、数据的安全备份与存档、主机房
的安全管理规章、系统管理员的监督，等等。目前，企业中熟练掌握计算机技术的人员较少，计算机接入Internet的也不多。因此，在实施ERP系统时，
普遍存在着不重视系统安全的现象。诸如：用户不注意口令保密、超级用户授权多人等。缺乏安全意识的直接后果是系统在安全设计上存在着漏洞和缺陷。近年来，
不断有报章披露银行或企业计算机系统被非法入侵的消息，这给企业敲响了警钟。<br />
7．意外事故或灾难<br />
水灾、火灾、地震等不可抗拒的自然灾害会
给ERP系统带来毁灭性的打击。企业正式启用ERP系统后，这种破坏将直接造成业务交易的中断，给企业带来不可估量的损失。未雨绸缪的策略和应对措施是降
低这一风险的良方。如建立远程备份和恢复机制；在计算机系统不能正常工作的情况下，恢复手工处理业务的步骤和措施。<br />
<br />
<br />
四、ERP应用成功的标志<br />
<br />
<br />
ERP应用是否成功，原则地说，可以从以下几个方面加以衡量：<br />
1． 系统运行集成化：<br />
这
是ERP应用成功在技术解决方案方面最基本的表现。ERP系统是对企业物流、资金流、信息流进行一体化管理的软件系统，其核心管理思想就是实现对&#8220;供应链
（Supply
Chain）&#8221;的管理。软件的应用将跨越多个部门甚至多个企业。为了达到预期设定的应用目标，最基本的要求是系统能够运行起来，实现集成化应用，建立企业
决策完善的数据体系和信息共享机制。<br />
一般来说，如果ERP系统仅在财务部门应用，只能实现财务管理规范化、改善应收帐款和资金管理；仅在销售部门
应用，只能加强和改善营销管理；仅在库存管理部门应用，只能帮助掌握存货信息；仅在生产部门应用只能辅助制定生产计划和物资需求计划。只有集成一体化运行
起来，才有可能达到：<br />
降低库存，提高资金利用率和控制经营风险；<br />
控制产品生产成本，缩短产品生产周期；<br />
提高产品质量和合格率；<br />
减少财务坏帐、呆帐金额等。<br />
这些目标能否真正达到，还要取决于企业业务流程重组的实施效果。<br />
2． 业务流程合理化：<br />
这是ERP应用成功在改善管理效率方面的体现。ERP应用成功的前提是必须对企业实施业务流程重组，因此，ERP应用成功也即意味着企业业务处理流程趋于合理化，并实现了ERP应用的以下几个最终目标：<br />
企业竞争力得到大幅度提升；<br />
企业面对市场的响应速度大大加快；<br />
客户满意度显著改善。<br />
3． 绩效监控动态化：<br />
ERP
的应用，将为企业提供丰富的管理信息。如何用好这些信息并在企业管理和决策过程中真正起到作用，是衡量ERP应用成功的另一个标志。在ERP系统完全投入
实际运行后，企业应根据管理需要，利用ERP系统提供的信息资源设计出一套动态监控管理绩效变化的报表体系，以期即时反馈和纠正管理中存在的问题。这项工
作，一般是在ERP系统实施完成后由企业设计完成。企业如未能利用ERP系统提供的信息资源建立起自己的绩效监控系统，将意味着ERP系统应用没有完全成
功。<br />
4． 管理改善持续化：<br />
随着ERP系统的应用和企业业务流程的合理化，企业管理水平将会明显提高。为了衡量企业管理水平的改善程度，
可以依据管理咨询公司提供的企业管理评价指标体系对企业管理水平进行综合评价。评价过程本身并不是目的，为企业建立一个可以不断进行自我评价和不断改善管
理的机制，才是真正目的。这也是ERP应用成功的一个经常不被人们重视的标志。</div>
要做, 就一定做最好
<img src ="http://www.blogjava.net/sealyu/aggbug/192020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-04-10 23:03 <a href="http://www.blogjava.net/sealyu/archive/2008/04/10/192020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>下一代的ERP--动态企业建模(DEM）（转载）</title><link>http://www.blogjava.net/sealyu/archive/2008/04/10/192019.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Thu, 10 Apr 2008 15:02:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2008/04/10/192019.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/192019.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2008/04/10/192019.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/192019.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/192019.html</trackback:ping><description><![CDATA[<p align="center"><strong><font size="4">下一代的ERP--动态企业建模(DEM）</font> </strong>
</p>
<p align="left"><strong>&nbsp;&nbsp; DEM </strong><strong>的目的和特点 </strong></p>
1.制造技术的发展带来了管理思想的改变。最早的管理思想可以追溯到 1911 年 F.W.TAYLOR 的著作 " 科学管理原理
(PRINCIPLES OF SCIENTIFIC MANAGEMENT)" 。 1913 年， F.W. HARRIS 提出了 EOQ
公式，目的是为了合理地控制库存。 60 年代～ 70 年代， ORLICKY 提出了 MRP 。随后，又出现了 MRPII
，包括集成的财务管理系统、 MRP 和需求管理等。 90 年代后，提出了 ERP ，其包括了与企业相关的各种系统的集成 ( 如 HR ，
CAD/CAM ， PDM ， FINITE SCHEDULING 和 EDI 等 ) 。
<p>　　2.进入 90 年代以后，世界格局发生了根本的变化。反映在制造业，就是全球化趋势日益明显。 </p>
<p>　　3.动态多变的市场要求企业的业务过程有较好的柔性，能根据环境的变化及时调整其业务过程(业务过程重组， BPR
)。在业务过程重组的同时，现有的信息系统也必须随之调整。这样才能在不同的层次支持业务过程的重组，使之真正能起到应有的作用。然而，现有的 ERP
软件(如 SAP/R3 、 Oracle 等)的柔性较差，还不能很好满足这一要求。僵硬的信息系统与动态多变的市场、频繁的 BPR
将成为今后的一对重要矛盾。为了解决这个矛盾，荷兰 BaaN 公司提出了下一代 ERP ，即动态企业建模( Dynamic
Enterpreise Modelling,DEM )的思想，并已将其付诸实现。 </p>
<p>　　4.DEM 在如下几个关键方面区别于通常的 ERP ：
</p>
<ul type="disc">
    <li>DEM 支持连续的业务过程改进
    </li>
    <li>DEM 支持软件结构的重组
    </li>
    <li>DEM 能进行高质量的运行
    </li>
    <li>DEM 允许客户选择自己的界面和工作平台，并能很方便地与其他工作平台集成。 </li>
</ul>
<p><strong>&nbsp;&nbsp; DEM </strong><strong>的目的和特点 </strong></p>
<p>　　1. DEM
的目的是让用户用自己熟悉的方式，根据其公司内部和外界环境的变化，最快、最好地建立公司的业务控制模型、业务功能模型和业务过程模型，或对它们进行调
整，节约时间、消除浪费、降低成本和提高效率，以期在无法预测的持续、快速变化的竞争环境中求得生存和发展。 </p>
<p>　　2. DEM
是一种革命性的软件设计方法，其本质特征是通过使用动态的管理模型来建立一个新的信息系统。每个模型都是动态的，因为它允许而且便于企业规划和记录其发展
和演变历程，因此支持业务过程的连续优化。在 DEM
中，主要体现了两个思想：一是在生成某公司的特定模型时，充分利用最好的实例知识和实践经验，表现在企业参考模型的使用；二是在动态公司中，公司的信息系
统能够适应公司环境等的快速变化，表现在 DEM 工具 -- 企业建模工具的使用。 </p>
<p>　　3. DEM 的三个主要优点是：
</p>
<ul>
    <li>速度快 <br />
    体现在简短、紧凑的 ORGWARE 软件中企业建模工具的使用，通过使用预定义业务模型来减小该过程的难度。
    </li>
    <li>柔性高 　　　　　　　 　　 　　 DEM 的 软件结构可以不费时不费力地随着企业业务过程的变化而相应改变。上述两方面的优点通过企业建模工具和应用软件的充分集成得以实现，这也使得企业建模过程中许多工作可以自动完成。
    </li>
    <li>质量好 <br />
    DEM 提高了企业建模的质量，因为它使用了一种简单的方式使其中很复杂的功能可视化。 </li>
</ul>
<p align="left">&nbsp;&nbsp; <strong>DEM </strong><strong>的内容 </strong></p>
<ol>
    <li>BAAN IV ORGWARE<br />
    DEM是一个概念、一种方法，而BAAN IV ORGWARE则是实现DEM的工具，是陈述DEM的关键。BAAN IV ORGWARE由四个部分组成，即：
    <ul>
        <li type="disc">企业建模工具 它使公司可以用图形描述业务模型的组织结构、功能特点以及业务过程的先后顺序。
        </li>
        <li type="disc">企业参考模型 这些模型为自动化、电子、项目工程等领域内的企业，提供了建立本企业模型的参考。
        </li>
        <li type="disc">企业模型性能管理工具 这是ORGWARE 性能管理工具，包括一套应用 BAAN IV ORGWARE 所有模块的预定义性能指标。简单地说，这就是评价模块。
        </li>
        <li type="disc">实施模块<br />
        在DEM概念框架内，BAAN 通过三个预定义模型的连续赋值来实现，每个模型表示结构的不同方面，而它们组合起来就表示了整个企业。这三个模型是:
        <ol>
            <li>业务功能模型 应用DEM的第一步是给业务功能模型赋值，在一个分级的功能树中，业务过程被描述为"黑箱"，这里，黑箱定义了在不考虑具体怎样做的情况下，在这个阶段应当做些什么，功能模型的主要目的有：
            <ul>
                <li>建立知识库(专家系统)，即为了管理咨询而记录"最好实例"业务知识(企业参考模型)。
                </li>
                <li>指导管理人员和咨询人员之间的对话(信息交流)。
                </li>
                <li>在相关业务分析基础上，开始业务过程的选择和建模。 </li>
            </ul>
            </li>
            <li>业务过程模型<br />
            业务过程模型规定在BAAN功能基础上怎样实现业务功能的目标，这是在过程的最低层次上建模，实际上是一个范例变换过程。于是在与主要的用户讨论具体过程时，就可以在适当的时间和地方显示适当的相应功能模块。业务过程模型的主要目的有：
            <ul>
                <li>通过过程的划分来描述业务功能是怎样实现的。
                </li>
                <li>用过程来作为解释BAAN功能的理想工具，但其中最重要的是BAAN能为用户做些什么。
                </li>
                <li>过程是生成目标用户环境(END-USER ENVIRONMENT)的一个起点。 </li>
            </ul>
            </li>
            <li>业务组织模型<br />
            业务组织模型根据分工、业务单元和部门来描述组织结构，关键问题之一是组织中作用的 识别。这里，作用指在过程执行中按惯例分配给某一个特定的人或工作组 的行为或任务。模型的另一个特点是可以规定模型中不同组成部分之间的级别和功能关系。 </li>
        </ol>
        </li>
    </ul>
    </li>
    <li>DEM结构及其三个模型之间的关系
    <ul>
        <li type="disc">DEM结构示意图<br />
        DEM的结构大致分为三个层次，即：核心功能层Ⅰ、过程管理层Ⅱ和组织管理层Ⅲ。对不同的企业而言，虽然其中Ⅱ、Ⅲ是一样的，但是Ⅰ并不一样。
        </li>
        <li type="disc">DEM三个模型之间的关系<br />
        DEM
        中的三个模型是业务控制模型、业务功能模型和业务过程模型。当把某个参考模型作为一个PROJECT模型的基础时，必须使用自顶向下的方法来研究和重新评
        价参考模型，并且从业务控制模型开始，因为业务控制模型对理解模型的整个结构是非常重要的。业务控制模型由多层框图构成，表示了功能和这些功能间的流向。
        当业务控制模型的结构清楚后，就应当从头来分析业务功能模型，以确定应当使用哪些功能和业务功能选择和变化形式。业务控制模型和业务功能模型之间的关系是
        一对一关系。对业务控制模型中每个主要功能和其中的重要功能，在企业建模的业务功能模型中，都有一个完全相同的业务主要功能和重要业务功能。在业务控制模
        型和业务过程模型之间也存在一个类似上面一对一的参照。 </li>
        <li type="disc">企业模型的建立 <br />
        在BAAN IV ORGWARE 的企业建模中有一个目录目标企业模块，它是专门为初次应用该套软件建模的企业而开发的，它是一种面向里程碑的方法，它指导用户完成BAAN方案的选择、实施和优化。<br />
        目标企业把企业的建模过程大致分为3 个大阶段，以及8个小阶段（对应8个里程碑）。 </li>
    </ul>
    </li>
</ol>
<img src ="http://www.blogjava.net/sealyu/aggbug/192019.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-04-10 23:02 <a href="http://www.blogjava.net/sealyu/archive/2008/04/10/192019.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ERP产品点评（转载）</title><link>http://www.blogjava.net/sealyu/archive/2008/04/10/192018.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Thu, 10 Apr 2008 15:02:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2008/04/10/192018.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/192018.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2008/04/10/192018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/192018.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/192018.html</trackback:ping><description><![CDATA[<p><strong>功能强劲的SAP</strong>
</p>
<p>简介：<br />
SAP公司是ERP思想的倡导者，成立于1972年，总部设在德国南部的沃尔道夫市。SAP的主打产品R/3是用于分布
式客户机/服务器环境的标准ERP软件，主要功能模块包括：销售和分销、物料管理、生产计划、质量管理、工厂维修、人力资源、工业方案、办公室和通信、项
目系统、资产管理、控制、财务会计。R/3适用的服务器平台是：Novell、Netware、NT Server、OS400、Unix
，适用的数据库平台是：IBM DB2、Informix、MS SQL Server、Oracle
，支持的生产经营类型是：按定单生产、批量生产、合同生产、离散型、复杂设计生产、按库存生产、流程型，其用户主要分布在航空航天、汽车、化工、消费品、
电器设备、电子、食品饮料等行业。<br />
<br />
点评：<br />
R/3的功能涵盖了企业管理业务的各个方面，这些功能模块服务于各个不同的企业管理
领域。在每个管理领域，R/3又提供进一步细分的单一功能子模块，例如财务会计模块包括总账、应收账、应付账、财务控制、金融投资、报表合并、基金管理等
子模块。SAP所提供的是一个有效的标准而又全面的ERP软件，同时软件模块化结构保证了数据单独处理的特殊方案需求。<br />
目前，排名世界500
强的企业，有一半以上使用的是SAP
的软件产品。因R/3的功能比较丰富，各模块之的关联性非常强，所以不仅价格偏高，而且实施难度也高于其他同类软件。R/3适用于那些管理基础较好经营规
模较大的企业，普通企业选择R/3时，要充分考虑软件适用性和价格因素。<br />
<br />
<strong>高度集成的Oracle</strong> </p>
<p>简介： <br />
Oracle公司是全球最大的应用软件供应商，成立于1977年，总部设在美国加州。Oracle主打管理软件产品
Oracle Applications
R11i是目前全面集成的电子商务套件之一，能够使企业经营的各个方面全面自动化。Oracle企业管理软件的主要功能模块包括：销售定单管理系统、工程
数据管理、物料清单管理、主生产计划、物料需求计划、能力需求管理、车间生产管理、库存管理、采购管理、成本管理、财务管理、人力资源管理、预警系统。
Oracle适用的服务器平台是：DEC Open VMS、 NT、 Unix、 Windows
95/98，数据库平台是：Oracle，支持的生产经营类型是：按定单生产、批量生产、流程式生产、合同生产、离散型制造、复杂设计生产、混合型生产、
按定单设计、按库存生产，其用户主要分布在：航空航天、汽车、化工、消费品、电器设备、电子、食品饮料行业。<br />
<br />
点评：<br />
Oracle凭借&#8220;世界领先的数据库供应商&#8221;这一优势地位，建立起构架在自身数据之上的企业管理软件，其核心优势就在于它的集成性和完整性。用户完全可以
从Oracle公司获得任何所需要的企业管理应用功能，这些功能集成在一个技术体系中，而如果用户想从其它软件供应商处获得Oracle所提供的完整功
能，很可能需要从多家供应商分别购买不同的产品，这些系统分属于不同供应商的技术体系，由不同的顾问予以实施，影响了各个系统之间的协同性。对于集成性要
求较高的企业，Oracle无疑是理想的选择。但企业如果对开放性要求较高，Oracle显然无法胜任。<br />
<br />
<strong>适宜&#8220;大批量生产&#8221;的JDE</strong> </p>
<p>简介： <br />
J.D.Edwards公司于1977年在美国科罗拉多州丹福市创立，JDE系统是其提供的一套用于企业商务解决方案的软件产
品。JDE系统的模块包含制造业、分销业、财务、人力资源管理，其中制造业部分由产品数据管理、厂房设备维修、车间控制、主生产计划、物料需求计划、能力
需求计划等模块所组成；分销业部分由预测、需求计划、库存管理、销售定单处理、销售分析、采购定单处理、分销资源计划、仓库管理、电子数据交换（EDI）
模块所组成；财务部分由总分类账和基础财务、财务模式、预算和分配、应收账、应付账、现金账、多国通货账、固定资产等模块组成。<br />
JDE适用的
服务器平台有：NT、OS/400、Unix、Digital VMS，适用的数据库平台是：IBM DB2、MS SQL
Server、Oracle，支持的生产经营类型是：按定单装配、批量生产、按定单设计、合同生产、离散型、按定单制造、按库存生产、混合型生产、连续
型、大批量生产。用户主要分布在汽车、化工、消费品、电器设备、电子、食品饮料、工业品、金属加工、制药业等行业。<br />
<br />
点评：<br />
JDE最早是适用于制造业的MRPII系统，后来发展成为适用于制造业、金融、分销、建筑、能源、化工、房地产及公用事业方面的商务软件。虽然JDE的用
户遍及世界35个国家和地区，销售额也一直高居世界ERP软件供应商排名前五位，但JDE曾经一度被淡忘，因为它所采用的技术构架和编程技术没有多层客户
机/服务器和面向对象编程那么热烈地被人们谈论。<br />
JDE在系统稳定性和运行速度上有优异表现，特别适用于大量生产型的工业企业，而且实施总成本不高。JDE是完全基于IBM AS／400小型机开发的，在其他通用系统上的运行效果不理想。目前JDE也在向其他平台扩展。<br />
<br />
<strong>实现&#8220;动态企业建模&#8221;的Baan </strong></p>
<p>简介： <br />
BAAN是一个为项目型、流程型以及离散型产业供应链提供ERP系统和咨询服务的公司。BAAN的软件家族产品支持企业一系列
的业务过程，其中包括：制造、财务、分销、服务和维护业务。此外，BAAN公司还提供了Orgware——一套组织工具和软件工具，它能帮助企业减少实施
时间和成本，并能帮助企业实现对系统的不断改进。BAAN ERP 适用的服务器平台是：NT、 OS/400、 Unix、 Windows
95/98、 IBM S390，适用的数据库平台是：IBM DB2、Informix、MS SQL
Server、Oracle，支持的生产类型是按定单设计、复杂设计生产，用户主要分布在航空航天、汽车、化工、工业制造等行业。<br />
<br />
点评：<br />
BAAN通过Orgware系统件作为企业建模工具，以保证企业灵活运用软件，它强大的功能能满足企业现在的实际需求，也能满足企业将来的需求。
Orgware把公司本身的业务处理流程作为输入，以标准的企业模型为参考，很快地配置系统来满足企业的需要和特殊要求。这样，企业的BAAN应用系统的
模型就会快速地顺利地被确定下来。<br />
业务流程重组（BPR）不利往往是影响ERP实施的重要因素，BAAN的动态建模思想和技术不仅有利于保障
企业成功实施ERP系统，而且便于企业今后依据管理需要重新构建业务框架。业务流程重组有困难或者预计将来业务流程会发生改变的企业，选择BANN会有利
于成功实施运用ERP系统。 <br />
<br />
<strong>为用户量体裁衣的SSA-BPCS </strong></p>
<p>简介： <br />
SSA成立于1981年，其总部设在美国芝加哥。SSA主要向用户提供的BPCS（Business
Planningand ControI
System商业计划与控制系统）套件包括财务、分销、制造三大部分，能满足企业在这三个管理领域的大部分需要。BPCS适用的服务器平台是：
OS/400、Unix，适用的数据库平台是：Informix、Oracle，支持的生产类型是：按定单生产、按库存生产、批量生产、连续型、混合型、
离散型，用户主要分布在汽车、化工、消费品、离散型、电器设备、电子、食品饮料、机器制造、金属加工、制药等行业。<br />
<br />
点评：<br />
SSA的BPCS系统的设计具有巧妙的功能和极大的使用弹性，各模块均包含许多用户自定义参数设计功能，可将系统加以裁剪组合，以符合用户特殊需求。<br />
和BAAN一样，SSA为用户设计了快速实施系统的方案，以减少实施的时间成本和风险成本。由于BPCS强大的自定义功能，使实施BPCS的用户无需放
弃原来的工作模版，而是根据用户的实际工作情况来裁剪组合系统，以便短时间内上线运用。&#8220;我们的软件是为快速实施所设计&#8221;、&#8220;我们保持着极短的时间--效
益期&#8221;成为SSA打动用户的独特卖点。<br />
对于客户化设置要求较多，或者对于实施时间要求较高的企业，采用SSA的BPCS会是一个不错的选择。<br />
<br />
<strong>实现客户价值的SYMIX-SyteLine </strong></p>
<p>简介： <br />
Symix成立于1979年，是在微机服务器上开发MRPII软件的第一家软件公司。Symix
提供的软件产品SyteLine套件包含的主要功能模块是：总账、应收款系统、应付款系统、订单管理、采购管理、库存管理、资产管理、预算管理、成本管
理、生产计划。适用的服务器平台是：NT，Unix，适用的数据库是：Progress、Oracle，支持的生产类型：按定单生产、按库存生产、离散型
生产的企业。用户主要分布在汽车制造、电子电器、机械制造、金属加工等行业。<br />
<br />
点评：<br />
以客户为中心的商业模式这几年越来越受到
重视，CRM（customer relationship management
客户关系管理）软件因此运应而生，逐步成为企业信息化建设的焦点。虽然CRM这一思想并非Symix确切地提出，但是Symix却将&#8220;以客户为中心&#8221;的生
产经营理念最大程度地融合到软件中。<br />
大多数CRM软件关注的是以客户为中心的营销服务工作，而Symix的CSRP（Customer
Synchronized Resource
Planning客户同步资源计划）系统更能以客户为导向，系统地组合企业各项生产经营资源，因此Symix自称CSRP是超越ERP的新型管理思想和软
件系统。对于外部市场环境变化较快，或者完全根据客户需求生产的企业，选择Symix能较好地实现客户需求拢动式生产。<br />
<br />
<strong>构建虚拟工厂的QAD－MFG／PRO </strong></p>
<p>简介：<br />
QAD公司于1979年在美国加州的卡宾特瑞创立，其软件产品MFG／PRO系统包含分销、制造、财务三大类别36个主要功能模
块。适用的服务器平台是：NT、Unix，适用的数据库平台是：Progress、Oracle，支持的生产类型是：离散型、连续型、成批生产、备货生
产、按订单生产和重复生产，用户主要分布在电子工业、汽车制造、医药工业和消费品工业等行业。<br />
<br />
点评：<br />
以戴尔和阿迪达斯为代表
的虚拟工厂经营模式，在以信息技术为主的新经济时代有着特殊的经营优势。QAD的供应链管理系统就是用来帮助建立虚拟工厂的，这个&#8220;工厂&#8221;将涉及的不同研
发者、供应者、装配者、包装者和批发者组织起来，使它们与客户要求保持一致，然后工厂在产品上标以统一商标并获得利润。QAD
集成的分布式MFG／PRO系统能运行于虚拟工厂的整个经营管理过程，以便使&#8220;工厂&#8221;将其客户与他们自己很好地结合起来，然后再与供应商，以及供应商的供
应商联系在一起。MFG／PRO系统可以设置成一台机器多个数据库、多台机器单数据库、一台机器分开的数据库、多台机器分散的数据库，这种灵活的数据库配
置，可以实现任意数目的用户机同时存取任意数目的数据库服务器，以确保虚拟工厂在不同地区不同信息环境下协同运作。<br />
<br />
<strong>简便实用的四班—Fourth Shift<br />
</strong><br />
简介： <br />
FOURTH SHIFT（四班）公司成立于1982年，总部位于美国明尼阿波利斯市。Fourth
Shift软件包含40多个管理模块，覆盖生产、采购、销售、客户服务等集成子系统。适用的服务器平台是：Novell
Netware、NT、Windows 95/98，适用的数据库平台是：MS SQL
Server，支持的生产类型主要是离散型、按单生产，也可用于流程式连续生产型企业，用户主要分布在日用消费品、电子电器、计算机行业。<br />
<br />
点评：<br />
Fourth Shift是一套适于中小制造企业应用的软件系统，功能虽然不如SAP的软件丰富，但基本符合中小企业在生产管理、物流管理、财务管理等方面的需求，而且具有简便实用、成本低廉、实施期短（一般3—6个月完成实施）等特点。<br />
虽然Fourth Shift在世界的管理软件销售排名不是很靠前，但在中国及其它亚太地区的市场表现不俗，这与Fourth Shift符合这些地区大部分企业的实际需求，以及Fourth Shift一直以来在产品和服务本地化方面所做的努力不无关系。<br />
目前Fourth Shift的财务会计系统已经通过中国财政机构符合中国会计管理制度的评审。中小制造企业特别是离散型制造业在选择企业管理软件时，Fourth Shift可以作为首要考虑对象。<br />
<br />
<strong>兼容并蓄的CA—MANMAN／X<br />
</strong><br />
简介： <br />
CA（Computer Associates）公司是以开发大型机软件起家的软件产品公司。由美籍华人王嘉廉于1976年创立，总部设在美国纽约长岛。<br />
CA的产品家族非常庞大，MANMAN／X是其提供的一个完整的制造业管理系统。该系统由制造、工程、财务、销售与售后服务、系统工具五大部分组成，其
中每一部分又由各功能模块构成，例如：制造部分中包含了基础资料、库存管理、计划（MPS，MRP，CRP）管理、采购管理、车间控制和成本会计部分。<br />
MANMAN／X不受工作平台或操作系统环境的限制，适用于Oracle、INGRES等各种关系型数据库并附带专有数据库系统。<br />
<br />
点评：<br />
CA软件最大的特点在于兼容并蓄的通用性和开放性。由于开放、模块化结构，MANMAN／X完全独立于计算机软／硬件环境，允许选择能最好工作的平台，
适用的数据平台也非常广泛。同时系统能适应用户各种生产经营类型要求，包含了各种制造方法单独的或任何组合的应用，可以满足用户的许多特定需求。
MANMAN／X提供的修改菜单和屏幕，以及自动生成应用程序的客户化开发工具，使用户具备了对迅速变化的市场和管理需求作相应调整的能力。<br />
与Oracle
一样，CA提供给企业的是一个全面而完整的管理解决方案，企业办公及经营管理所涉及的软件产品，几乎都能从CA的软件家族中找到。与Oracle不同的
是，CA具有软件产品领域的广泛性和软件本身的开放性。CA兼容并蓄的风格不仅体现在软件产品上，而且体现在企业经营上。<br />
在中国，CA正在走
本地化的资本和文化融合之路，目前已经和包括联想、安易在内的许多计算机软硬件厂商合作，共同开拓本地市场。由于CA兼容并蓄的风格，使企业选择CA不仅
选择了一个开放的软件系统，而且选择了全方位的系统支持和持续发展的保障。有资料称CA是世界第二大独立软件供应商，但在企业管理软件领域，目前CA的表
现与SAP、Oracle等&#8220;大腕&#8221;级软件供应商相比还有差距。 </p>
<img src ="http://www.blogjava.net/sealyu/aggbug/192018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-04-10 23:02 <a href="http://www.blogjava.net/sealyu/archive/2008/04/10/192018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件外包项目实施过程中的关键因素（转载）</title><link>http://www.blogjava.net/sealyu/archive/2008/04/10/192005.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Thu, 10 Apr 2008 14:48:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2008/04/10/192005.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/192005.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2008/04/10/192005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/192005.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/192005.html</trackback:ping><description><![CDATA[<p>项目管理者联盟：</p>
<p>原作者:崔启亮 <br />
&nbsp;<br />
外包是发包方和接包方互相信任、高度协作的共同行为。为了顺利实施外包，对于发包方，要求企业具有一定的技术水
平、项目管理水平、人力资源和沟通控制能力。对于接包方，要求企业具有一定的成本、质量控制能力，具有国际市场开拓能力（包括业务能力、交流能力、接包渠
道和商业信誉等）。为了是外包服务形成产业化，还要求形成良好的政策环境和市场环境等。 </p>
<p>下面以软件项目外包为例，从发包方和接包方的角度，讨论实施外包的关键因素。 </p>
<p>1、项目需求 </p>
<p>项目需求是项目规划和正确实施的根本，在外包项目实施过程中，如果客户经常改变需求或提出新需求，常常使项目延期或超出预算，对于合作双方都会受到商誉和经济上的损失。 </p>
<p>通常发包方根据外包的项目特点，进行项目外包分析，提出项目需求报告。接包方在实施项目之前应该深入了解和挖掘客户需求，对某些不明确的需求与发包方讨论，对于项目实施过程中的需求变更，规定处理办法，并达成一致，形成项目的最终需求。 </p>
<p>在需求分析阶段，接包方首先对发包方的需求认真分析，然后通过业务建模、会谈、问卷、需求会议等方式收集客户完整需求，形成文档，然后经过客户讨论、客户审查、文档修订等多次反复的过程。 </p>
<p>2、项目计划 </p>
<p>在项目实施之前，通常发包方提出项目实施计划的草稿。项目计划的内容应该完整、可行，对于项目流程、工作量、资源配置和项目里程碑等需要双方接受达成一致。 </p>
<p>接包方要及时全面分析计划的内容，要详细地跟本企业的计划进行比对和审核，从而了解外包商对整个项目的流程、内容、估计的工作量和资源的安排是否与项目本身的要求吻合。明显的差异都需要及时澄清并建立共识。 </p>
<p>发包方根据接包方对项目计划草稿的建议认真分析和深入讨论，进行必要的修改和补充，形成双方都接受的最终项目实施计划。 </p>
<p>3、质量控制 </p>
<p>软件外包的质量指软件产品满足用户需求的程度，包括功能需求、性能需求、稳定性、安全性和技术先进性需求、支持和服务需求等。达到客户的质量要求是外包业务的基本要求。 </p>
<p>以软件开发项目为例，接包方质量控制的常用方法如下： <br />
通过多次反复、多方参与的评审控制需求和设计的质量。 <br />
在编码之前，制定代码规范，并强制执行，以便保证代码的规范性。 <br />
通过严格的、完整的测试流程保证编码质量。 <br />
需求分析、方案、系统设计、测试计划、实施计划等必须进行内部评审，通过内部评审后指定双方人员共同审查。 <br />
必须制定全面的测试计划和质量保证实施过程并通过审查。 <br />
系统交付使用前，要经历单元测试、集成测试、系统测试和用户测试、验收测试等质量检验过程。 <br />
制定实施和维护计划以及实施和维护操作规程，记录操作过程，及时请发包方确认。 </p>
<p>4、进度控制 </p>
<p>进度影响双方的成本，可能影响发包方的业务，进度还可能影响产品质量。 <br />
接包方应该按照项目计划的进度实施项目，及时定期汇报实际实施的进度。对项目实施过程中影响进度的因素综合分析，及时与发包方交流，提出解决办法。发包方要对接包方的进度进行监控。</p>
<p>软件外包项目实施进度控制的常用方法如下： <br />
通过科学估算，考虑资源配置情况，共同制定合理的双方认可的进度计划。 <br />
细分任务，制定更加精细的里程碑，并按里程碑进行验收和考核。 <br />
建立常规的进度报告制度，以便及时掌握项目进度。 <br />
采用严格的流程来控制需求变更。 <br />
进度计划中，将一些比较大的工作拆细，以便设立更多的里程碑。 </p>
<p>5、风险控制 </p>
<p>风险管理（Risk Management）是指经济单位对可能遇到的风险进行预测、识别、评估、分析并在此基础上有效地处置风险，以最低成本实现最大安全保障的科学管理方法。 <br />
发包方要根据外包项目的特点和要求，制定切实可行的计划，选择合适的接包方，并且密切监控项目的实施过程。 <br />
接包方一定要对整个项目足够了解，其中包括项目需求、工作范围、实现方法和预期经济利益的来源。对于已经完成的部分，要有一套合理的评估方法。 </p>
<p>发包方可以通过下列方式来控制风险： <br />
通过考察企业实力、资格认证和服务经验严格选择接包方。 <br />
通过严密的法律条款、严格的合同审核来保障知识产权和商业机密。 <br />
通过严格的过程的过程控制来控制外包业务的质量和进度。 </p>
<p>接包方可以通过下列方式来控制风险： <br />
进行严格的需求管理和控制，充分挖掘客户需求。 <br />
严格规范合同起草、谈判、审查和签署，在合同条文中明确规定外包服务过程的责、权、利、知识产权和商业机密保护。 </p>
<p>执行规范的项目管理和控制，严格控制质量和进度。 <br />
通过有效的人力资源管理来稳定队伍、建立后备队伍和提升团队的技术能力和综合素质。 <br />
建立和保持畅通的沟通渠道。 </p>
<p>6、交流与沟通 </p>
<p>实施外包项目是发包方和接包方互相配合、共同合作的过程。要保障外包业务的顺利进行，必须建立有效的沟通渠道。 </p>
建立有效的沟通渠道包括以下内容： <br />
确定可以采用哪些交流工具，以及什么情况下应该采用什么沟通工具（现场交流、电话交流、传真、电子邮件、在线交谈等）。 <br />
确定交流的时机和频率，包括接包方提交进度报告和双方召开项目实施交流会。 <br />
确定交流的格式（例如，规定周报的格式）。 <br />
确定交流的形式（现场交流、电话会议，双方项目联系人）
<img src ="http://www.blogjava.net/sealyu/aggbug/192005.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-04-10 22:48 <a href="http://www.blogjava.net/sealyu/archive/2008/04/10/192005.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>