_Toc290986017
银行业CRM软件技术
本章对涉及建设银行CRM系统的核心软件技术进行慨要讲解,并对一些功能进行了比较分析,有助于银行进行软件选型。
_Toc290986018
XML技术
XML技术作为互联网的种子技术是建设CRM的一个重要支撑技术。
_Toc290986019
XML介绍
XML是Extensible Markup Language的简称,即“可扩展标记语言”,是由 W组织于1998年 2月制定的一种通用语言规范,是专为Web应用而设计的 SGML [2 ](Standard Generalized Markup Language)的一个优化子集。
同SGML类似, XML是一种元标记语言,使用者可按需创建新的标记, XML的可扩展性就在于此。这些标记通过 XML DTD(Document Type Defi n ition,文挡类型定义)来加以定义。DTD是一系列关于元素类型(Element Type),属性(Attributes), 实体(Entities)和符号(Notations)的定义。它定义了文档所需的标记,比如可在文档里使用的元素类型,这些元素之间的可能的联系,还可能声明元素的属性,属性是元素的“元数据”,而不是元素包含的内容。另外,一个实体就像是一个缩写,被当做一些文本或一些数据的缩写来使用。而符号描述某一类事物(例如图像)的数据内容,它定义怎样翻译某类对像的比特流。XML文档可以在它的文档类型声明(Document Type Oeclaration)里声明该文档遵循某个XMLDTD。
_Toc290986020
XML语法
XML文档的组成
XML文档包含由XML标记和字符数据组成的文本。它是一个有固定长度的有序字节的集合,并遵守特定的约束。它可能是或者不是一个文件。例如,XML文档可能。
存储在数据库中
由CGI程序在内存中瞬间创建
由几个相互嵌套的不同文件组合而成
不存在于自身的文件中
但是如果把一个XML文档看做一个文件也是可以的,只要记住它可能并不是存在于硬盘上的真实文件。XML由称为“实体”的存储单元组成,每个实体包含文本或者二进制数据,但不能同时存在。文本数据由字符组成,二进制数据用于图片和小程序等类内容。用一个具体的示例说明就是,一个含有<IMG>标记的原始HTML文件是一个实体而不是文挡。一个HTM文件加上所有使用<IMG>标记嵌入的图片就组成一个文档。在本章和后续几章中我们只针对由一个实体构成的简单的XML文档,即文档本身。而且这些文档只包含文本数据,不包含诸如图片小程序一类的二进制数据。这些文档能够完全独立被, 理解而无须读取其他文件。换句话说,它们是独立存在的。这种文档通常在它的XML标头中含有一个值为yes的standalone属性,如下所示。
? xml version =“” standalone=“yes”? >
外部实体和实体引用用于组合多个文件和其他数据源以创建一个独立的XML文挡。这样的文挡如果不引用其他文件就不能进行句法分析。这些文档通常在XML声明中含有一个属性值为no的standalone属性。
? xml version =“” standalone=“no”? >
实体引用
实体引用是指分析文档时会被字符数据取代的置标。XML预先定义了5个实体引用,列在表 6-1中。实体引用用于XML文档中的特殊字符,否则这些字符将被解释为置标的组成部分。例如,实体引用<;代表小于号(<),否则会被解释为一个标记的起始部分。
表 6-1 XML预定义的实体引用
实体引用
所代表字符
&;
&
<;
<
>;
>
";
“
&qpos;
’
XML中的实体引用与 HTML中不同,必须以一个分号结束。因此 >;是正确的实体引用写法, >是不正确的。
未经处理的小予号(<)同表示“和”的符号(&)在一般的 XML文本中往往被分别解释为起始标记和实体引用(特殊文本是指 CDATA段,将在后面讨论)。因此,小于号同“和”号必须分别编码为 <;和 &;。
例如,短语“Ben & ]erry s New York Super Fudge Chunk Ice Cream”应当写成 Ben &;]erry s New York Super Fudge Chunk Ice Cream。大于号、双引号和撇号在它们可能会被解释成为置标的一部分时也必须编码。但是,养成全部编码的习惯要比努力推测一个特定的应用是否会被解释为置标容易得多。
实体引用也能用于属性值中。例如。
<PARAM NAME =“joke” VALUE= “The djner said ,
"e;Waiter , There&apos;s a f1y in my soup! "e;”>
<IPARAM>
CDATA
在大多数情况下,出现在一对尖括号(<>)中的是置标,不在尖括号中的是字符数据。但是有一种情况例外,在 CDATA段中所有文本都是纯字符数据。看起来与标记或者实体相似的仅仅是它们各自相应的文本。XML处理器无论如何是不会解释它们的。
CDATA段用于需要把整个文本解释为纯字符数据而并不是置标的情况。当有一个包含许多<、>、&或”字符而非置标的庞大文本时,这是非常有用的。对于大部分C和Java源代码,正是这种情况。
如果想使用 XML写有关 XML的简介, CDATA段同样非常有效。例如,在一个文本中包含许多小的 XML代码块,而正在使用的字处理器又不能顾及这些情况。但是如果把本书转换为 XML,用户将不得不很辛苦地用 <;代替全部小于号, &;代替所有“和”字符。如下所示。
<;?xml version = “ standalone = “yes”? >;
<;GREETING>;
Hello XML!
<;/ GREETING>;
为了避免这种麻烦,可以使用一个CDATA段表示一个不需要翻译的文本块。CDATA段以<! [CDATA [开始并以]]>结束,例如。
<! [CDATA [ “
<? xml version=“ standalone=“yes”?>
<GREETING>
Hello XML!
< / GREETING>
]] >
惟一不许出现在CDATA段中的文本是CDATA的结束界定符]] >。注释可能会出现在CDATA段中,但不再扮演注释的角色。也就是说两个注释标记和包含在它们之间的全部文本都将显示出来。
因为]]>不能出现在CDATA段中,所以CDATA段不能嵌套。这使得使用XML写有关的CDATA段相对困难些。如果需要的话,必须去掉项目符号,并使用 <;、&;和实体引用。
CDATA段不常需要,一旦需要时,它是非常有用的。
标己
标记能够区分XML文件与无格式文本文件。标记在XML文档中以<开始,以>结束,而且不包含在注释或者CDATA段中。因此, XML标记有与HTML标记相同的形式。开始或打开标记?1t;开始,后面跟有标记名。终止或结束标记以</开始,后面也眼标记名。遇到的第一个>该标记结束。
1.标记名
每个标记都有一个名称。标记名必须以字母或下划线 C)开始,名称中后续字符可以包含字母、数字、下划线、连字符和句号。其中不能含有空格(经常用下划线替代空格)。下面是一些合法的XML标记。
<HELP>
<Book>
< volume>
<heading1>
< >
< Mary_Smith>
<_8ball>
以下是句法不正确的XML标记。
<Book%7>
<volume control>
<1heading >
<Mary Smith>
<.>
结束标记与起始标记同名,只是在起始尖括号后加了一个/。例如,如果起始标记是<FOO>,那么结束标记是</F00>。下面是前面所提到的合法起始标记所对应的结束标记。
<IHELP>
<IBook>
< /volume>
</heading1>
</ >
</Mary_Smith>
</_8ball>
XML名称是大小写敏感的。在HTML中的<P>和<p>是同一个标记,</p>可以结束一个<P>标记,但在XML中却不行。下面所示的并不是我们讨论过的合法起始标记所对应的结束标记。
</help>
</book>
</Volume>
</HEADING1>
</>
</MARY_SMITH>
</_8BALL>
2.空标记
许多不含数据的HTML标记没有结束标记。例如,有</LI>、</IMG>、</ HR>或</BR>标记。一些页面作者在所列的项目后面确实会包含</LI>标记,一些HTML工具也使用</LI>标记。但是标准特别否认了这一点的必要性。同HTML中所有没有被公认的标记一样,一个不必要的</LI>的出现对交付的输出没有任何影响。
这在XML中不是问题。XML的总体观点就是在分析文档时允许发现新的标记。因此没有识别的标记就不会被简单地忽略。而且XML处理器一定能够判明以前从没出现过的一个标记有没有结束标记。
XML区分带有结束标记的标记,而不带结束标记的标记称为空标记。空标记以斜杠和一个结束尖括号(/>)结束。例如,<BR/>或<HR/>。目前的Web浏览器处理这种标记的方法不一致,如果希望保持向后的兼容性,可以用结束标记来代替,只要在两个标记之间不包含任何文本。例如。
<BR></BR>
< HR> </HR>
< IMG> </IMG>
属性
在前面内容中讨论过,起始标记和空标记可以随意地包含属性。属性是用等号(=)分隔开的名称一数值对。例如。
<GREETING LANGUAGE = “English” >
Hello XML!
<MOVIE SRC = “” />
</GREETING>
在此<GREETING>标记有一个LANGUAGE属性,其属性值是English。<MOVIE>标记有一个SRC属性,其属性值为。
1.属性名
属性名是宇符串,遵循与标记名同样的规则。这就是,属性名必须以字母或下划线(_)开始,名称中后续字符可以包含字母、数字、下划线、连字符和句号。其中不能含有空格(经常用下划线替代空格)。
同一个标记不能有两个同名的属性。例如,下面的例子是不合法的。
<RECTANGLE SIDE = “” SIDE= “”/>
属性名是区分大小写的。SIDE属性与side或Side属性不是同一个属性,因此以下例子是合法的。
< BOX SIDE = “” side = “” Side = “” / >
2.属性值
属性值也是字符串。如下面所示的 LENGTH属性,即使字符串表示的是一个数,但还是两个宇符7和2,不是十进制数的72。
< RULE LENGTH =“/>
如果编写处理XML的代码,在对字符串执行算术运算之前必须把它们转换为一个数。
与属性名不同,对属性值包含的内容没有任何限制。属性值可以包含空格,可以以一个数字或任何标点符号(有时单括号和双括号除外)开头。
XML 属性值由引号界定。与HTML 属性不同, XML 属性值必须加引号。大多数情况下使用双引号,但是如果属性值本身含有→个引号,就需要使用单引号。例如:
<RECTANGLE LENGTH =” WIDTH=” / >
如果属性值中含有两种引号,那么其中不用于界定字符串的一个必须用合适的实体引用代替。通常替换两个,这种方法很管用。例如:
<RECTANGLE LENGTH= 8&apos;7";WIDTH =“10&apos;6";“/>
XML 文档规则
尽管可以根据需要编写标记,但XML 文档为了保持结构完整必须遵循→定的规则。如果一个文挡不是结构完整的,大部分读取和显示操作都会失败。
事实上,XML规范严格禁止XML句法分析器分析和解释结构欠妥的文档。正在执行操作的分析器惟→能做的是报告出错。它不会修改错误,不会做最大的努力显示作者想要的东西,也不会忽略不当的结构欠妥的标记。它所能做的是报告错误和退出。
这样做的目的是为了避免对错误的兼容性的竞争。这种竞争已使得编写HTML 语法分析程序和显示程序变得非常困难。因为We浏览器承认畸形的HTML,而Web页面设计者不会特别尽力确保他们的HTML正确无误。事实上,他们甚至利用个别浏览器中的错误达到特殊的效果。为了正确显示被大量安装的HTML页面,每个新的 Web浏览器必须支持已有的 Web浏览器的每一个细微差别和各自的属性。用户将放弃任何一种严格执行 HTML标准的浏览器。正是为了避免这种遗憾,XML处理器才只接受结构完整的XML。
为了使一个文档结构完整,XML文档中的所有置标和字符数据必须遵守前几节中给出的规则。而且有几条关于如何把置标和字符数据相互联系起来的规则。这些规则总结如下:
(1)文挡的开始必须是XML声明。
(2)含有数据的元素必须有起始标记和结束标记。
(3)不含数据并且仅使用一个标记的元素必须以/>结束。
(4)文档只能包含一个能够包含全部其他元素的元素。
(5)元素只能嵌套不能重叠。
(6)属性值必须加引号。
(7)字符<和&只能用于起始标记和实体引用。
(8)出现的实体引用只有&;、<;、>;、&apos;和";。
这 8条规则稍加调整就能适用于含有一个DTD的文档,现在请仔细看这些用于没有 DTD文挡的规则。
1.文档必须以 XML声明开始
下面是 中独立文档的 XML声明。
< ? xml version=“ standa10ne=“yes”?>
如果声明出现,它绝对是该文件最开头部分,因为 XML处理器会读取文件最先的几个字节并将它与字符串<? XML的不同编码做比较来确定正在使用的字符串集( UTF-8、大头(高字节先传格式)或者小头(低字节先传格式 ))。除去看不见的字节顺序记号,在它之前不能有任何东西,包括空格。例如,下面一行用于 XML的开始是不能接受的,因为在该行的前面有多余的空白。
<?xml verslon =“ standalone=“yes”? >
XML确实允许完全省略 XML声明。通常不推荐这样做,但这样做有特殊的用途。例如,省略 XML声明,通过连接其他结构完整的XML文档有助于重新建立一个结构完整的 XML文档。
2.在非空标记中使用起始和结束标记
如果忘了结束 HTML的标记,Web浏览器并不严格追究。例如,如果文档包含一个<B>标记却没有相应的 </B>标记,在<B>标记之后的全部文档将变为粗体。但文档仍然能显示。
XML不会如此宽松,每个起始标记必须以相应的结束标记结束。如果一个文档未能结束一个标记,浏览器或移交器将报告一个错误信息,并且不会以任何形式显示任何文档的内容。
3.用”/>“结束空标记
不包含数据的标记,例如 HTML的<BR>、<HR>和< IMG>,不需要结束标记。但是 XML空标记必须由 />结束,而不是>。例如<BR>、<HR>和<IMG>的XML等价物是<BR/>、<HR/>和<IMG/>。
当前的 Web浏览器处理这种标记的方法不一致。但是如果想保持向后的兼容性,可以使用结束标记来代替,而且不能在其间包含任何文本。例如。
<BR></BR>
<HR></HR>
<IMG> </IMG>
即使这样,Netscape处理 <BR></BR>也有困难(它把这两个标记解释为行间距,而不是前面所讲的)。因此,在HTML中包含结构完整的空标记也并非总是可行的。
4.让一个元素完全包含其他所有元素
一个 XML文档包含一个根元素,它完全包含了文档中其他所有元素。有时候这种元素被称做文档元素。假设根元素是非空的(通常都是如此),它肯定有起始标记和结束标记。这些标记可能使用但不是必须使用root或DOCUMENT命名。例如,在下面的文档中根元素是 GREETING:
<?xml version =“ standalone = “ yes”? >
<GREETING>
Hello XML!
</GREETING>
XML声明不是一个元素,它更像是一个处理指令,因此不必包含在根元素中。类似地,在一个 XML文档中的其他非元素数据,诸如其他处理指令、DTD和注释也不必包含在根元素中。但是所有实际的元素(除根元素本身)必须包含在根元素中。
5.不能重叠元素
元素可以包含别的元素(大多数情况下),但是元素不能重叠。事实上是指,如果一个元素含有一个起始标记,则必须同时含有相应的结束标记。同样,一个元素不能只含有一个结束标记而没有相应的起始标记。例如,下面的 XML是允许的:
<PRE> <CODE>n =n +1;</CODE> </PRE>
下面所示的 XML是非法的,因为结束标记 </PRE>放在了结束标记< /CODE>之前。
<PRE> <CODE> n = n +1;</PRE> </CODE>
大部分HTML浏览器容易处理这种情况,但是XML浏览器会因为这种结构而报告出错。空标记可随处出现。例如。
<PLAYWRIGHTS> Oscar Wilde< HR/ >Joe Orton</PLA YWRIGHTS>
本规则与规则 4联系在一起有如下含义 :对于所有非根元素,只能有一个元素包含某一非根元素,但是元素不能包含其中含有非根元素的元素。这个直接含有者称为非根元素的父元素,非根元素被认为是父元素的子元素。因此,每个非根元素只有一个父元素。但是一个单独的元素可以有任意数目的子元素或不含有子元素。
请分析如下所示的清单。根元素是 DOCUMENT元素,它含有两个元素。第一个 STATE元素含有 4个子元素。NAME、TREE、FLOWER和 CAPITOL。第二个 STATE元素含有 3个子元素。NAME、TREE和 CAPITOL。这些里层的子元素只包含字符数据,没有子元素。
父元素和子元素
<?xml verslon=“ standalone = “yes”?>
<DOCUMENT>
<STATE>
<NAME> </NAME>
<TREE>Bald Cypress</TREE>
<FLOWER > Magnolia </FLOWER >
<CAPITOL> </CAPITOL>
</ STATE>
<STATE>
<NAME> </NAME>
<TREE> Magnolia </TREE>
<CAPITOL> Jackson </CAPITOL>
</STATE>
</DOCUMENT>
6.属性值必须加引号
XML要求所有的属性值必须加引号,不管属性值是否包括空白。例如。
<A HREF =“http:// xml/” >
HTML的要求则不是这样。比如,HTML允许标记含有不带引号的属性。例如,下面是一个合法的HTML<A>标记。
<A HREF=http。// xm/>
惟一的要求是属性值不能嵌有空格。
如果一个属性值本身含有双引号,可以使用属性值加单引号来代替。例如。
<IMG SRC= “”ALT= And God said,“Let there be light ,” and there was light/>
如果一个属性值包含有单引号和双引号,可以使用实体引用 &apos;代替单引号,";代替双引号。例如。
<PARAM name = “joke” value = “The diner said ,
";Waiter , There&apos;s a fly in my soup! ";”>
7.只在开始标记和实体引用中使用<和&
XML假定最先的<是一个标记的开始,&是一个实体引用的开始(HTML也是如此,如果省略它们,大部分浏览器会假定有一个分号)。例如。
<H1> A Homage to Ben &Jerry s
Super Fudge Chunk Ice Cream </H1>
Web浏览器会正确地显示该标记,但是为了最大限度的安全,应当避免使用&,用 &;来代替,像下面这样。
<H1> A Homage to Ben &;Jerry s Super Fudge Chunk
Ice Cream </H1>
开尖括号(<)的情况也类似。请看下面很普通的一行 Java代码。
<CODE> for(int i = 0;i < = ;i + +)1< /CODE >XML与 HTML都会把<=中的小于号当做一个标记的开始。该标记会延续到下一个>。因此该行会表示成。
for(int i = 0;
而不是。
for(int i =0;i < =args.\ength;i+ +){
“= ;i + +)|”被解释成一个不能识别的标记的一部分。
把小于号写成 <;可以出现在 XML和 HTML文本中。例如。
<CODE> for(int i = 0;i <;= ;i + +)|< /CODE>
结构完整的XML要求把&写成&;,把<写成<;,只要不是作为标记或者实体的一部分时都应如此。
8.只能使用现有的5个实体引用
读者可能已经熟悉了几个 HTML中的实体引用,例如©;为插入版权号,®为插入注册商标号。但是除了已经讨论过的5个实体引用, XML只能使用预先在 DTD中定义过的实体引用。
但是现在读者可能还不了解 DTD,如果与字符&出现在文档中的任何地方,其后必须紧跟amp;、lt;、gt;、apos ;或 quot;。所有其他的用法均会破坏结构完整性。
_Toc290986021
XML特点
1.提供了一套跨平台、跨网络、跨程序语言的数据描述方式
各行各业的人都可以针对自己的需求定义所要的文件格式,并且以 XML文件当做数据交换的标准格式。
2.着重于数据结构的描述,使得数据结构化
至于数据的显示可以搭配适当的格式,将数据结构与数据显示分隔开来,可以简化 XML文件的复杂度,也使得 XML的应用更加宽广,如数据显示的多样性和个性化以及应用的灵活性、扩展性。
3.提供精确和更有意义的搜索
在网络庞大的信息中,用户需要的不是搜索出的一堆“垃圾”,而是精确的有意义的信息。在 XML中,数据可被 XML标注惟一的标志。没有 XML,搜索软件必须了解每个数据库是如何构建的。例如,有了 XML,书就可以很容易以标准的方式按照作者、标题、ISBN序号或其他的标准分类,搜索就变得十分方便。
4.开放的标准
XML基于的标准是为 Web进行过优化的。微软和其他一些公司以及 W中的工作组正致力于确保 XML的互用性,以及为开发人员、处理人员和不同系统的浏览器的使用者提供支持,并进一步发展 XML的标准。XML包括一套相关的标准:可扩展标志语言(XML)标准;XML名域标准;文档对像模式(DOM)标准;可扩展类型语言(XSL)标准;可扩展链接语言 (XLL)标准和XML指针语言(XPOINTER)标准等。
5.本地计算和处理
XML格式的数据发送给用户后,用户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对像模式(DOM)允许用脚本或其他编程语言处理数据。数据计算不需要回到服务器就能进行。分离使用者观看数据的界面,使用简单灵活开放的格式,可以给 Web创建功能强大的应用软件,这些软件原来只能建立在高端数据库上。
6.可扩展
XML是设计标记语言的元语言,而不是 HTML这样的只有一个固定标记集的特定的标记语言。正如 Java让使用者声明他们自己的类, XML让使用者创造和使用他们自己的标记而不是 HTML的有限词汇表。可扩展性是至关重要的,企业可以用 XML为电子商务和供应链集成等应用定义自己的标记语言,甚至特定的工业界一起来定义该领域的特殊的标记语言,以创建在该领域内信息共享与交换的基础。
7.灵活
HTML很难发展,因为它是格式、超文本和图形用户界面语义的混合,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。在XML中,可以使用样式表,如XSL [3](Extensible Stylesheet Language,可扩展样式表语言)和 CSS(Cascading Style Sheets,层叠样式表 ),将数据呈现到浏览器中。另外,XML文档之间的超链接功能由独立的 XLL [4](Extensible Linking Language,可扩展链接语言)来支持。所有这些方面都可以互相独立地改进并发展。所以, Web用户所追求的许多先进功能在 XML环境下更容易实现。
8 自描述
XML文档通常包含一个文档类型声明,从而 XML文挡是自描述的,不仅人能读懂 XML文档,而且计算机也能处理。XML文档中的数据可以被任何能够对 XML数据进行解析的应用所提取、分析、处理,并以所需格式显示。XML表示数据的方式真正做到了独立于应用系统,并且这些数据能重用。所以 XML适合开放的信息管理。因为它的自描述性,文档里的数据可以由XML能使的(XML-aware)应用来创建、查询和更新,跟处理传统的关系型数据库、面向对像数据库里的数据类似。XML甚至还能用来表示那些以前不被看做文档但是对传统的数据库来说又过于复杂而难以处理的数据。所以, XML文档被看做是文档的数据库化和数据的文档化[5]。
9.简明
除上述特性以外, XML还具有简明性。它只有SGML约20%的复杂性,但具有 SGML提供的约 80 %的功能,同完整的 SGML相比,XML简单得多,易学、易用并且易实现。另外,XML的诞生也吸收了人们多年来在Web上使用 HTML的经验,正如 HTML开辟了一种计算机用户能浏览 Internet文挡的途径, XML将成为人们读和写的世界语。所有这一切将使 XML成为数据表示的一个开放标准,这种数据表示独立于机器平台、提供商和编程语言。它将为数据交换带来新的机遇。
_Toc290986022
EAI技术
EAI提出的目标是为了系统之间更好地交换数据,这对于和许多既有系统进行衔接的CRM来说非常有意义。
_Toc290986023
EAI介绍
银行在面临信息化需求时,最直接的方式是采购或自行开发系统以适应需求。久而久之在银行内部将会有许多为了不同目的而建置的信息系统,这些系统使用的操作系统平台、程序开发语言及信息传递标准可能不同,更不能相互整合在一起。有鉴于此,一个将大部分银行内部所必需的系统整合解决方案一-EAI应运而生。
EAI(Enterprise Application Integration企业应用集成)是一种全新的战略解决方案。为了要与企业内部甚至于将外部各独立的系统整合起来,其主要的功能在于解读并转换来自异质系统间不同应用程序的数据,它导入统一的工作流程借以整合这些应用程序间的协同运作,提供了数据格式转换,同步或异步的自动流程处理。
除此之外,导人 EAI还有增强传统系统(legacy systern)的效能,除了让封闭的系统能与 Windows平台上的应用程序整合,尤其是互联网上的电子商务,还可增加异质系统上数据的使用率。它利用通用的中间件(middle ware)融合了银行已有应用软件、商业封装式应用软件以及新代码三方面的功能。
目前几乎每个银行中都有一些自己的应用程序和数据库, EAI提供一种方法使现有的应用程序和数据库能够适用于新的环境,发挥新作用,使得新加入的数据和资源能够和原有的资源一起协调工作。
中间件能提供独立于应用程序的服务,用来协同各种应用程序工作,可以把它理解为实现这些服务的软件产品。在EAI中间件出现以前,银行总试图用专门的方法来实现应用程序的集成,但是,由于问题越来越复杂、规模越来越大,这些方法很快就被淘汰。
基于中间件的 EAI从以下几个方面降低了应用软件集成的复杂程度。
(1)封装应用程序功能的机制。因此应用软件的功能可以作为服务提供给其他应用程序。例如,账户应用程序既能进行开户服务,也能提供转账服务。
(2)应用程序共享信息的机制。例如,一个银行里的许多应用程序需要共享客户信息,而独立开发的应用程序很少以相同的方式组织、安排这些共享信息, EAI中间件能够在应用程序交换信息的过程中翻译和转换数据。
(3)应用程序协调银行流程的机制。例如, EAI中间件能够管理预定的工作流,也可以在业务流程环境中通过良好定义的方式由某一应用程序向其他应用声明事件。
由于EAI几乎不需要改变现有的遗留应用程序或封装式应用程序,而且很少需要扩展程序或定制接口,因此在开发新的应用程序时,EAI相当引人注意。EAI使用现有应用程序编程接口(API)和数据库。在没有API的特例中,EAI使用屏幕截取技术,通过应用程序的用户接口模仿普通用户,从而实现对应用程序的访问。屏幕截取是将显示在终端用户机器上、基于字符的屏幕的特定位置上的数据进行复制。
EAI的最终目的是让企业简单、快速地集成不同的应用程序。通过合理应用 EAI,银行能利用现有资源来提供新的产品和服务,增进与客户、服务商和其他相关利益集团的联系,更新操作。另外,由于采用标准集成方式取代种类繁多的专用集成设计, EAI大大简化了银行应用程序间的互连。更重要的是,由于用先进的技术基础结构作开发基础,所以只要 EAI基础结构准备就绪,基于 EAI的新应用程序就能比传统方式开发的应用程序更快地投入使用。正是具备了这些新性能, EAI提高了企业的竞争力。
_Toc290986024
EAI集成方法
实现 EAI有很多种不同的方法,下面介绍最典型的几种集成企业信息系统和企业应用的方法。
两层的客户端一服务器方法
这种方法是基于两层的客户端-服务器模型,是一种典型的不基于 Web的应用。在基于 Web的应用产生之前,这是一种广泛采用的方法,但是现在已经较少采用了。
用这种方法,一个EIS提供一个适配器,这个适配器定义了一个供访问EIS数据和函数的API,一个典型的客户端通过这个API访问通过适配器暴露出的数据和函数。适配器实现对与 EIS的通信支持和提供访问EIS数据和函数的支持。适配器与EIS之间的通信使用 EIS专用的协议,这个协议还提供安全和事务处理功能,如图 4-1所示。
图 4-1两层的客户端服务器方法
一个资源适配器与一个特定的 EIS相连,但是一个 EIS可以提供多个适配器供多种客户端访问 EIS。因为 EIS适配器的关键是它们的可重用性, EISs或独立的软件提供商(ISVs)试图采用广泛使用的编程语言开发适配器,并且暴露-个客户端编程模型以便实现最大限度的重用。
一个EIS可能提供一个适配器的-种简单形式,在此,一个适配器映射一个API,这个API对应特定EIS的一个可重用的标准API。通常这样一个适配器被开发成一个库(Library)。当开发成一个库时,应用开发者能够用同样的编程语言实现访问适配器就像他开发应用程序一样,并且对EIS不用进行修改。例如:一个Java应用开发者能够用-个基于Java的适配器——用Java编程语言写的适配器,实现访问一个基于非Java语言或平台的EIS。
EIS适配器的更复杂形式还能够做跨不同的组件模型、分布式计算平台和架构的自我适应。例如:→个 EIS可以开发一个具有与EIS进行远程通信的分布式适配器,这种类型的适配器暴露一个基于组件模型架构的客户端编程接口。还有一种类型的适配器可能为客户端应用开发者暴露一个基于数据的编程接口等。
使用同步适配器
一个适配器可以暴露客户端应用与EIS 之间的同步或者异步模式的通信,图4-2 表示了使用同步通信模式设计的适配器。为这种方法设计的适配器在客户端应用与EIS之间提供了一个同步的请求-回答通信模式。
图 4-3使用异步适配器
同步造配器是如何工作的呢?来看下面一个例子,一个适配器定义了一个API,它包括一个可以被应用调用的远程函数。这个远程函数创建一个在EIS中可以接收的项目。当一个客户端应用需要与EIS 交互以创建一个可接收的项目时,它在EIS中调用这个远程函数。客户端应用初始化调用后等待回应,直到函数调用完成并且返回它的答复给调用者,答复包含了在EIS 中执行的函数的结果。这种交互被认为是同步的,因为在函数在EIS 中执行时,调用函数的客户端同时在等待其执行结果的返回。有一种形式的同步适配器允许在一个应用和一个EIS之间实现双向的同步通信,这种适配器使EIS同时能够调用应用中的函数。
使用异步适配器
异步适配器为应用集成提供了另一种方法,图4-3 表示了这种集成形式中的通信。让我们还是利用客户端应用调用远程函数以创建可以在EIS中接收的项目作为例子。
在异步适配器的通信中,客户端应用调用远程函数以在EIS 中创建一个可以接收的项目,客户端应用进行远程函数调用,然后立即返回继续自己的过程处理或者其他任务的执行。远程函数被发送到EIS,EIS作为一个分开的异步调用处理函数调用并返回一些结果信息给客户端应用,客户端应用在接到结果返回的通知后再接收和处理结果。源适配器分派从EIS 到客户端应用的异步调用。
在此必须记住的重要一点是,远程函数在EIS中执行时,客户端应用并不挂起自己的过程处理,相反,它继续执行自己的过程处理,在调用后的某个时候再接收EIS的通知。此外,一个EIS 能够异步的激活或调用一个客户端应用。
图4-3 使用异步适配器
基于队列的方法
异步的基于消息的通信也能够用来集成企业应用和 EISs。有两种形式的异步消息:基于队列的消息传递和发布-订阅的消息传递。一个消息代理可能提供以上方式中的一种消息传递。
图 4-4表示了基于消息队列的通信。基于消息队列的通信也叫点到点的消息传递,它包括一个应用发送一个消息到一个消息队列中。在基于队列的通信中,一个队列作为相互通信的应用之间的一个缓冲器,与发送方和接收方相互独立。发送方发送消息到这个队列中,接收方从同一个消息队列中接收消息。
图 4-4使用一个消息队列实现 EIS集成
发布一订阅方法
发布—订阅方法与基于队列方法的工作方式不同。在发布一订阅的消息传递中,有几个消息发布者和多个消息订阅者,发布者发布自己的消息,订阅者订阅它们感兴趣的特定主题的消息,还有一个分离的发布-订阅工具,它作为一个集成点,发布者发布消息到这个集成点,这个集成点将这些消息传递给订阅者。图 4-5表示了发布一订阅的消息传递。
图4-5 使用发布一订阅系统进行EIS 集成
下面是发布-订阅的消息传递方式的工作机理。一个发布消息的应用发布关于特定主题的消息,多个应用可以接收这个主题的消息,发布一订阅工具将特定主题的消息传递给订阅该主题的订阅者。
图4-6 表示了使用消息代理进行EIS 集成的系统。在这个系统中,一个适配器使应用能够访问消息代理。一个适配器映射消息代理的应用级接口到由下面消息代理支持的异步消息传递机制中,有些适配器还在应用和消息代理之间提供额外的功能。例如:他们可能增加一个消息的格式转换——一个适配器将基于特定应用的消息的格式转变成消息代理期望的格式,然后消息代理将消息转变成发布者或订阅者期望的消息格式。
图4-6 使用消息代理实现EIS 集成
当一个应用和一个EIS 使用异步消息传递进行通信时,他们之间的集成被认为是松偶合的。这种方式的优点是,应用能够继续过程处理客户端请求而不用终止EIS 的执行,这提高了可扩展性,其缺点是,应用开发者可能会发现很难用编程来改变一个异步消息传递模式,此外,异步消息传递并不总是支持安全的传播方式。
消息代理还可能为企业应用集成提供额外的服务,这些额外的服务是:消息路由选择、事物管理、可靠的消息分配、消息优先和排顶顺序以及消息格式转换。
.6 基于应用服务器的 EIS集成
图 4-7表示了一个应用服务器如何能够被用来与现有的企业应用和 EISs集成。一个应用服务器是应用集成的一个自然点,因为它提供一个开发、部署和管理基于 Web的企业应用。应用服务器是用多层结构开发的应用的一个集成平台。
图 4-7基于应用服务器的企业应用集成
一个典型的多层应用包括三层:一个客户层、一个中间层和一个 EIS层。中间层主要实现应用的业务逻辑,作为应用业务逻辑功能实施的一部分,中间层可以访问在 EISs层运行的且与应用相联系的数据和方法。中间层还负责实现给客户层提供静态和动态的内容呈现。
EIS层包括那些运行存在的企业应用和数据库的系统,正如前面所描述的,这些 EISs可以是客户化定制的。
客户层包括不同类型的客户端应用,一个客户端可能是一个基于 Web浏览器的HTML客户端或者同类型的应用。
一个典型的应用服务器支持一个基于组件模型的开发应用。用这种模型,一个应用可能包括不同类型的组件,比如。Web组件或业务逻辑组件(如。EJB)。应用服务器为这些组件提供部署和应用支持。实际上,一个应用服务器为基于 Web的开发、事务处理、安全、分布式和可扩展和升级的应用等提供了一个非常有用的平台。这增加了应用服务器环境对企业应用集成的有用性。
一个典型的应用服务器为部署在其上的应用提供一套运行时的服务。这些运行时的
服务通过一个简化的应用编程模型隐藏在服务器中。这些服务包括:
(1)支持事务处理;.
(2)安全;
(3)负载平衡和错误回滚;
(4)数据库访问;
(5)异步消息传递;
(6)分布式通信;
(7)Web协议;
(8)XML支持。
在应用服务器上开发和部署应用,可以使这些应用能够连接和访问多个异构的 EISs和现有的应用系统。部署在应用服务器上的应用组件使用同步的源适配器实现连接和访问 EISs,这种应用与 EISs的集成方式是一种紧偶合的方式。应用组件还可以使用一个消息代理与基于异步的消息传递的 EISs集成。
_Toc290986025
EAI优势
EAI的最终目的就是为银行提供关键的新的解决方案,其优势体现在以下几个方面:
(1)增进与客户的联系。
(2)提供加强型协作链。
(3)优化内部流程。
(4)更快实施新的应用程序。
下面进行具体分析。
增进与客户的联系
EAI帮助银行全方位了解其客户,每一位客户都将银行看成一个整体,而不是多个部门或部分。他们希望与之交易的银行能够识别自己。当与某个部门进行交易时,他们并不希望向其他部门重复那些他们已经提供的信息;如果他们要求服务时被转到另一个部门,却不得不重复对前一个部门说过的内容,他们会很不满;老客户们则希望看到自己的长期支持受到重视。
银行希望能够利用它所掌握的所有客户信息,知道客户以前购买的产品能够促进其他产品的销售或前项交易的附加服务。客户有时会通过网络与银行联系,有时通过电话局,有时亲自访问,无论哪种方式,所有这些信息都应该被整合、归纳。
要增进与客户的联系,需要集成应用。要全方位了解客户关系,则要求集成表单包含每个客户的相关信息,即使信息分散于不同部门的应用中也应如此。
增强协作链间的联系
除了增进与客户的联系,银行还需要加强与协作链上的其他合作伙伴乃至其他外部金融机构的联系。随着电子信息交换的迅速发展,通过目录清单来共享信息,银行能更有效地协调各种活动,合作伙伴也能利用新技术来提供新服务。
提高与客户的联系以及与协作链上的合作伙伴更高程度地集成信息,也就对安全提出了新的要求。如果用因特网作为通信渠道,而不是电话或其他可靠方式,那么银行就必须采取措施来确保信息的可靠性,适当控制权限以保证合作伙伴能且只能获得他们应该获得的信息。控制权限的一个重要功能就是:某个合作伙伴不能得到其他合作伙伴的相关信息。
对合作伙伴交易情况的集成要求与客户的类似,人们总希望新的应用软件能集成好几种现有的分离的应用程序。使用可扩展标记语言(XML)的技术来支持信息交换,这在银行对银行的自动集成方式中相当重要,用各种前端渠道对不同的关系提供不同程度的功能。银行需要融合或适配稍旧些的技术,例如 EDI,从而和新的面向 Web的技术实现自动交换。这些技术包括用于自动交换的XML技术以及用于小型合作伙伴的 Web接口。这些融合和适配都是 IT演进策略的一部分。
改善内部流程
应用程序整合的主要目的,在于将不同系统间的执行过程连起来,让一项工作能在应用系统间有效的执行。原先一份工作可能要经过好几个应用程序的处理才能完成,实施了 EAI之后,各应用程序间流程管理能更合理、科学地运行。改善银行的内部流程,对 EAI发展起着重要的推动作用。EAI技术能简化银行内部各部门之间的信息流动。实施 EAI工程的一个主要动力是它能为决策人提供集成信息。EAI技术能够协助建立数据库,用来分析市场趋势、评价交易效益以及评估企业内部机构的合作。另外,通过协调从分离的业务应用程序到通用数据仓库间的数据流,并通过将不同应用程序格式的数据转换为通用格式, EAI能够推动数据仓库的建立。
EAI能够消除银行流程中的手工操作,防止数据的重复记录,EAI总是使用工作流自动化工具来作为连接所集成的应用程序之间的桥梁。
减少新系统开发周期
EAI技术一个最大的优点就是减少了新的应用程序投产使用的时间。它从几个方面缩短了周期:首先,EAI协调已有应用程序的性能。现有代码能够完成本身功能,而且已经经过调试。所需的是使新的前端通道(例如Web或新的复合应用程序)能访问现有功能。只要EAI结构安装就绪,就能用最直接的方式缩减市场化周期:因为几乎不需要添写代码。尽管最初建立合适的EAI结构需要一定的付出,但这还是值得的。企业一定愿意承担为建立 EAI所需的投入以获得长期收益。
第二个优点是:利用中间件的EAI能让开发人员避开 IT中的许多陷阱从而减少错误。例如,集成不同硬件和操作系统平台上的功能。同样, EAI也减少了应用程序的代码,但更重要的是,它能令开发人员专心于该应用程序的业务部分,而不是整个系统,这也创造价值。在完成关键业务应用程序中,仅有 30%的代码是业务逻辑部分(即真正能实现业务目的代码),剩下的是基础框架——许多商业 EAI软件都包括。最近的一份研究表明,每年维护公司内部开发框架的费用占最初开发费用的15%—25%。因此,考虑到软件销售商的维护费,用EAI中间件取代银行内部框架能节约大笔维护费。
_Toc290986026
门户技术
门户技术的引入是为了统一用户的使用环境。
_Toc290986027
门户介绍
EIP(Enterprise Infonnation Portal,中文全称“企业信息门户”)是一个企业的信息门户,它使企业能够释放存储在企业内部和外部的各种信息,使企业员工、客户和合作伙伴能够从单一的渠道浏览器就访问其所需的个性化信息。这些用户利用从这个渠道获得的信息做出合理的业务决策并加以执行。
EIP提供一个单一的访问人口,反映企业信息管理中的一个根本转变:即从一系列独立的内部和外部作业到对各种信息有条理的集成。
EIP着重于与企业现成的商业系统进行无缝的集成、基于角色的内容组织、实现最终用户的个性化,并且基于预定义模板进行信息传递,是任何能够快速响应并具有竞争性的企业的关键。
EIP 提供了一个对传统个人桌面工作模式的改进方法,可以在通过简便的方法定制出的图形化的用户界面下进行工作,能够实现信息的有效处理和系统的稳定性,就如同在原来的应用和信息系统下独立工作一样。EIP 将成为整个电子商务解决方案的基础框架和蒙古合剂。
随着企业采用各种应用系统,企业的数据开始以几何级数的速度增长。而这些数据通常都被封存在企业的数据库、主机、文件服务器上,只有少数有特许访问权的用户能看到这些数据。互联网的出现使企业要面对海量的信息,并从中获得有价值的部分。所以企业现在需要的是一种为企业提供组织、搜索和获取真正有价值的信息的解决方法。EIP将使以企业现在需要的是一种为企业提供组织、搜索和获取真正有价值的信息的解决方法。EIP将使企业为各种类型的用户包括企业内部雇员、合作伙伴、供应商和顾客提供个性化的信息搜索、访问和分析的功能,帮助他们通过有效利用企业的信息资产做出最佳的业务分析和决策。
今天的电子商务企业正在经历着对内部、外部的人员和处理过程关系的重新定义。EIP的贡献不只是在于帮助一个企业了解手中大量信息的意义,更重要的是要使它们能够应付对分散的信息资源和处理过程维护能力下降而产生的问题。在数据库技术领域,一个关系解决方案的出现要能提供比硬件多层处理器所能实现的更高的灵活性。
_Toc290986028
门户分类
第一类:企业文件管理系统 +Web。这类门户将传统的文件管理系统增加了在 Web上自动生成摘要、审核和发布功能,形成了一个企业知识(Knowledge)门户。这类门户的最大的缺点之一是缺少个性化特性。
第二类:推出独立的门户软件产品。这类门户产品是一种加在现有的 ERP应用和主机系统之上的一层 Web界面。该层次的产品已经属于很正规的企业信息门户范畴了,不但包含了企业的知识信息,也包含了一些非结构性的数据、事务数据。但它们基本上是在企业业务应用系统上增加了一个智能化较高 Web界面。并不强调对企业内应用集成的全面性,服务于特殊的业务平台。
第三类:是一种彻底集成的企业门户应用。这种门户不但集合了来自其他门户的多种信息,更重要的是,集成了整个企业范围内的所有企业应用。其作用就是一个机构或企业中各部门的信息 Hub,将企业中所有的应用和数据库集成在一起,将企业中的事务数据、内容和业务事件等主要数据类型一网打尽。为同企业相关的管理者、雇员、供应商、用户、分销商等提供一个惟一的企业信息接入点。
_Toc290986029
门户发展的动力
快速适应市场竞争
从许多方面来说,企业门户是 Intranet的逻辑发展的必然结果。Intranet是用于组织企业信息和提供用户一种便捷地访问数据的早期 Web时代的结构。但是,它并未能将数据从广泛的数据源中自动地调集出来,许多类型的数据如 ERP和客户管理的数据,没有同 Intranet服务器连在一起。另一方面,当前企业面临的最大挑战是在时间上的竞争,这不仅指自己的生产速度,而主要是指市场中的高收益属于最早进入市场、创立品牌并赢得商业优势的企业。但是,企业内部应用系统之间由于缺少应有的配合,使企业新计划的创新和实施,在时间和质量两个方面,大打折扣。更重要的是,它使传统的企业系统内外部之间有一个明显的界限或分离,市场的需求和客户对企业的反馈信息进入企业的决策支持系统往往需要很长的时间,并且由于要经过多个相互独立的内部环节,使信息的准确性降低。在今天企业的竞争环境日趋激烈,产品的生命周期越来越短的情况下,维持这一传统的企业模式显然是无法生存的。
企业迎接这种挑战的办法就是要把多种软件业务应用、人员和信息资源统一到一起,加速企业的技术和产品的更新以及产品进入市场的进程,充分地利用企业现有的资源,确实建立起完整的价值链。这就是要建立起一个企业门户。
企业门户能够通过超越现有分散的应用环境实现这个目标,把原来不同的内部部门的分割、不同的企业内外的分割,通过系统的集成使其相互关系连接到一起,形成广泛的、相互关联的企业应用环境。形成真正的企业合力。它不但能降低企业的运营成本,通过丰富的企业信息资源吸引新客户,密切老客户的关系,更重要的是缩短企业响应市场时间。使企业在激烈的市场竞争中占据最有利的地位。
集成企业内部信息
EIP门户将存放在企业数据库、数据仓库和文档中的信息转变成可利用的信息,井把这些信息传送到公司员工面前;它们能够跟踪、整理和传送各种庞杂的信息,比如字处理文档和 Lotus Notes文件等;它们也会根据用户的业务需求和职务特点从Internet中导人和过滤内容,而所有这些都是通过工业标准浏览器实现的。
提供全面的开放
Internet是个非常廉价和可靠的信息传递通道,因此企业能够利用 Internet让所有人获得信息带来的好处,不论他们是公司雇员、客户,还是合作伙伴或供应商。
降低业务运作成本,提高效益
一个好的员工门户能够只通过一个地方获得所有企业信息和直接进行自助管理,明显地提高员工的工作效率,降低获得信息的成本。同时员工可以便捷地在一个门户内处理相关的所有事宜,极大地提高了工作效率。员工可以访问业务智能系统便捷地获得各种决策信息。EIP还能利用信息资产吸引新客户,密切与老客户的关系。
更有效的发挥联盟的作用
Internet革命能够满足不断变化的业务需要,快速集中公司合作伙伴的优势力量可以共同抓住市场。有关报告证明在1997年南美1000家最大的企业中有21%的业务收入来源于合作伙伴。一个好的合作伙伴门户使合作伙伴能够顺畅地访问企业内部系统和信息,实现企业的延伸。
_Toc290986030
门户功能
1.统一的信息访问渠道:通过将内部和外部各种相对分散独立的信息组成一个统一的整体,使用户能够通过统一的渠道访问其所需的信息。
2.强大的内容管理能力。EIP支持几乎各种结构化和非结构化的数据,能识别多种关系型和OLAP数据库中的数据,并可以搜索和处理合同、文件、模板等各种格式的文挡。
3.协作及共享:允许使用者存取或提供信息给特定的个人或群组。内部员工可以通过EIP系统分享信息。比如一些简单的EIP产品就可以实时发布公告,员工可以马上得知企业信息,由于具备了个性化的功能,所以可指定阅读公告的对像,并具备权限控管的功能。员工可在虚拟社区中发表事件心得、问题寻答、知识撷取等。员工还可以通过EIP中的个人日历和工作日志的功能,在EIP中安排自己的工作。一些EIP产品还具有人力资源管理的功能,可以实现公司人事基本资料的发布,除了文字介绍,还可以放置照片,让同仁之间彼此有更深一层的了解。有些功能强大的产品,还可以实现劳资管理、绩效管理等。通过门户,还可以进行工作流管理、电子邮件管理等。同时,也可以建立属于企业或个人的搜寻引擎,并可设定或者规定开放使用时段或权限,运用网络资源取得正确、有用的资料,节省时间成本。除了内部员工的信息共享,对于客户、供货商及合作伙伴,也可以通过企业间网络达到信息共享的目的。
4.个性化的应用服务:信息门户的数据和应用可以根据每一个人的要求来设置和提供,定制出个性化的应用门户。每个人根据自身角色不同和安全级别的不同,都可以看到不同的信息,同时增强了对顾客的亲和力和吸引力。
5.与现有系统的集成:可以在一定程度上将EIP与企业现有的数据和应用无缝地集成到一起,如ERP、CRM及SCM等,保护了原有的投资。一方面可以从EIP中获取这些系统中的数据,另一方面也可以从EIP中将数据写入到业务系统中去,比如员工费用的报销、客户数据管理等。
6.不间断的服务:通过网络和安全可靠的机制使用户在任何时间、任何地点都可以访问企业的信息和应用,这就要求EIP必须是基Web的。
7.安全可靠的保障:通过安全机制保证数据的机密性及完整性,保障企业业务的正常运转。EIP可以提供的安全机制包括认证、角色分配、用户和组的特权、用户操作监督,与专门的 B2B安全服务器建立安全通道等。EIP的安全机制可以适用于金融行业、司法系统及企业之间的业务。
_Toc290986031
数据仓库技术
数据仓库技术是银行CRM建设中分析系统的基石。
_Toc290986032
数据仓库介绍
数据仓库概念的创始人在《建立数据仓库》一书中指出:“数据仓库是面向主题的、集成的、稳定的、随时间变化的数据集合,用以支持经营管理中的决策制定过程”。
面向主题
主题是一个抽像的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽像。在逻辑意义上,它对应企业中某一宏观分析领域所涉及的分析对像,是针对某一决策问题而设置的。面向主题的数据组织方式,就是在较高层次上对分析对像的数据的一个完整的、统一的、一致的描述,能完整、统一地刻画各个分析对像所涉及的企业的各项数据,以及数据之间的联系。
目前,数据仓库的实现主要是基于关系数据库,每个主题由一组关系表或逻辑视图实现。这些表和视图的内容与原来各个运行系统数据源的数据本质上是一致的,但为了方便支持分析数据处理,对数据结构进行了重组,其中还可能会增加一些数据冗余。
集成的数据
数据仓库中存储的数据是从原来分散的各个子系统中提取出来的,但并不是原有数据的简单拷贝,而是经过统一、综合。其一,数据仓库的数据不能直接从原有数据库系统中得到。原有数据库系统记录的是每一项业务处理的流水账,这些数据不适合于分析处理,在进入数据仓库之前必须经过综合、计算,抛弃分析处理不需要的数据项,增加一些可能涉及的外部数据。其二,数据仓库每一个主题所对应的源数据在原分散数据库中有许多重复或不一致的地方,必须将这些数据转换成全局统一的定义,消除不一致和错误的地方,以保证数据的质量。否则,对不准确,甚至不正确的数据分析得出的结果将不能用于指导企业做出科学的决策。
对源数据的集成是数据仓库建设中最关键,也是最复杂的一步。
数据不可更新
从数据的使用方式上看,数据仓库的数据不可更新,这是指当数据被存放到数据仓库中以后,最终用户只能通过分析工具进行查询、分析,而不能修改其中存储的数据,也就是说,数据仓库的数据对最终用户而言是只读的。由于数据仓库的查询数据量往往很大,所以对数据查询、查询界面的友好和数据的表示提出了更高的要求,因为对数据仓库进行查询分析的用户多是企业的高层领导,他们是所在领域的专家,但对计算机却不一定熟悉。
从数据的内容上看,数据仓库存储的是企业当前的和历史的数据,在一定的时间间隔以后,当前的数据需要按一定的方法转换成历史数据,年代久远的、查询率低的数据需要从数据仓库脱离到廉价慢速设备(如磁带)上,对分析处理不再有用的数据需要从数据仓库中删除。但这些工作是由系统管理员来做,或由系统自动完成的。因此,也可以说数据仓库在一定时间间隔内是稳定的。
数据随时间不断变化
数据仓库数据的不可更新是针对应用而言的,即用户进行分析处理时不对数据进行更新操作,但并不是说,数据从进入数据仓库以后就永远不变。数据仓库中的数据随时间变化而定期地被更新,每隔一段固定的时间间隔后,运作数据库系统中产生的数据被抽取、转换以后集成到数据仓库中,而数据的过去版本仍被保留在数据仓库中,如同“定期摄影术”,每隔一周、一月或适当的间隔就照一张像;随着时间的变化,数据以更高的综合层次被不断综合,以适应趋势分析的要求;当数据超过数据仓库的存储期限,或对分析不在有用时,这些数据将从数据仓库中删去。
关于数据仓库的结构信息、维护信息被保存在数据仓库的元数据中,数据仓库维护工作由系统根据元数据中的定义自动进行,或由系统管理员定期维护,用户不必关心数据仓库如何被更新的细节。
用于经营决策
建立数据仓库并不是要取代原有的运作数据库系统,建立数据仓库的目的是为了将企业多年来已经搜集到的数据按一个统一的、一致的企业级视图组织、存储,对这些数据进行分析,从中得出有关企业经营好坏、客户需求、对手情况、以后发展趋势等有用信息,帮助企业及时、准确地把握机会,以求在激烈的竞争中获得更大的利益。
数据仓库与传统的数据库系统相比有着本质的区别,数据库是一种通用平台,建立于严格的数学模型之上,用来管理企业数据,进行事务处理,完成相关业务。而数据仓库没有严格的数据理论,更偏向于工程,它不是花钱就可购买到的成品,而是企业一个日积月累的建立过程,它的应用对像是不同层次的管理者,它的数据源是多种数据源,库中数据无须修改删除,主要是大规模查询和分析,因此要求有大量的历史数据和汇总数据。
_Toc290986033
数据仓库体系结构
整个数据仓库系统是一个包含三个层次的体系结构,如图4-8 所示。
图4-8 数据仓库体系结构
数据仓库的关键技术可以根据搜集数据的过程分为:数据的抽取、存储管理、数据
的展现、数据分析四个方面。
数据的抽取
数据的抽取过程是数据进入仓库的人口。为了 OLAP和 OLTP系统各自的执行效率,数据仓库绝大多数都需要一个独立于联机事务处理系统的数据环境。抽取过程所涉及到的数据源一般包括:联机事务处理系统的数据、外部数据源、脱机的数据存储介质等,数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面。数据仓库的数据不需要实时响应,因此数据抽取可以定时进行但多个抽取操作执行的时间、互相的顺序、成败对于数据仓库中信息的有效性则至关重要。数据抽取过程涉及数据格式的转换,理想情况是通过用户选定源数据和目标数据的对应关系、格式及类型,会自动生成数据抽取的代码。但是,目前市场上提供的大多数抽取工具支持的数据类型有限,难以制成动态抽取功能;这种情况使得抽取功能往往不能满足要求。因此,实际数据仓库实施过程中往往不一定使用数据抽取工具,而是面向具体的主题,编制特定的数据抽取算法。算法的正确性和实效性是整个数据仓库管理、调度和维护的关键。经过数据抽取后的数据记录应为格式统一、业务信息完整的数据记录。
存储管理
数据仓库遇到的第一个问题是对海量数据的存储和管理。这里涉及的数据量比传统的事务处理大得多,且随着时间推移而积累。从现有的技术和产品来看,只有关系数据仓库系统可以担当此任。关系数据仓库经过30年的发展,在数据存储和管理方面已经非常成熟,管理大于TB级的数据已经是十分平常的事情。目前,不少关系数据仓库已经支持数据分割技术,能够将一个大的数据仓库分散在多个物理设备中,进一步增强了管理大数据量的扩展能力。
数据仓库解决的第二个问题是并行处理。在传统的联机事务处理应用中,用户访问系统的特点是频繁而短小;而在数据仓库应用中,用户访问系统繁荣特点是稀疏而庞大,每一个查询或统计都非常复杂,但访问频率并不是很高。此时,系统需要有能力将所有的资源调动起来为一个复杂的查询请求服务,将该请求并行处理。因此,并行处理技术在数据仓库中比以往更重要。
数据仓库的第三个问题是查询的优化。在技术上,针对决策支持的优化涉及到数据仓库技术的索引机制、查询优化器、连接策略、数据排序和采样等部分。普通关系数据库采用 B-类树的索引,由于数据仓库中各类数据表的数据量分布很不均匀,普通查询优化器所得出的最佳查询路径可能不是最优的,因此面向决策支持的关系数据仓库都在数据查询优化器上做了改进,根据索引的特性增加了多重索引的能力。扩充的关系数据仓库还引入了位图索引机制,以二进制表示宇段的状态,将查询过程变为筛选过程,单个计算机的基本操作便可以筛选多个记录。另外数据仓库在应用中会遇到大量的表间连接操作,扩充的关系数据仓库对连接操作采用了连接索引技术。数据仓库的查询常常只需要数据仓库中的部分记录,而不必检索整个数据仓库,决策支持的数据仓库还提供了数据采样的功能,以满足大容量数据环境下有足够短的系统响应时间,在精确度允许的范围内,这一技术可大大地提高系统查询效率。
数据的展现
用户在使用数据仓库时的访问方法与传统关系数据库有很大的不同,对数据仓库的访问往往不是简单的表和记录的查询,而是基于用户业务的分析模式,即联机分析。它的特点是将数据想像成多维的立方体,用户的查询相当于在其中的部分维上添加条件,对立方体进行切片、分割,得到的结果则是数值的矩阵或向量,并将其制成图表或输入数理统计的算法。
数据的分析
它们主要表现在多维分析、数理统计和数据挖掘方面。多维分析是数据仓库的主要表现形式,由于多维OLAP(MOLAP)系统是专用的,因此,关于多维分析领域的工具和产品大多是 ROLAP工具。在实际工作中,客户需要通过对数据的统计来验证他们对某些事物的假设,以进行决策,而数据挖掘强调的不仅仅是验证人们对数据特性的假设,而是更主动地寻找并发现蕴藏在数据之中的规律。在决策支持系统中,怎样建立数据模型,怎样才能够充分利用一站服务系统中存储的数据资源挖掘出所需的数据,是该系统成功建设的难点。
_Toc290986034
数据仓库组成
数据仓库数据库
是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
数据抽取工具
把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给默认值;把不同的数据定义方式统一。
元数据
元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。
技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库时用的数据。包括 :数据源信息,数据转换的描述,数据仓库内对像和数据结构的定义,数据清理和数据更新时用的规则,源数据到目的数据的映射,用户访问权限,数据备份历史记录,数据导人历史记录,信息发布历史记录等。
商业元数据从商业业务的角度描述了数据仓库中的数据。包括 :业务主题的描述,包含的数据、查询、报表。
元数据为访问数据仓库提供了一个信息目录(information directory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存储和更新数据,用户通过他来了解和访问数据。
OMG开发的公共仓库元模型(CWM)为顺利解决数据仓库的集成问题提供了便利,从而解决了在组织中和组织之间共享数据的关键问题。
访问工具
访问工具为用户访问数据仓库提供手段。有数据查询和报表工具,应用开发工具,管理信息系统(EIS)工具,在线分析(OLAP)工具,数据挖掘工具。
数据集市(Data Marts)
为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subject area)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样在以后实施数据仓库时才不会造成大麻烦。
数据仓库管理
包括安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。
信息发布系统
把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。
_Toc290986035
实施数据仓库方法
商业方面
实施的步骤:先建数据集市后建数据仓库,还是先建数据仓库后建数据集市。实施中是外包,还是自建。
设计方面
可能要用到很多类型的数据源,历史数据可能很“老”,数据库可能变得非常大。数据仓库相对于 OLTP来说,更加是业务驱动(business-driven)的而不是技术驱动的(IT-driven),需要和最终用户不断地交流,建立的过程可能永远不会结束。
设计要点是:
(1)数据仓库中应该包含细节数据(清理过的)。
(2)用户能看到的任何数据都应该在元数据中有对应的描述。
(3)考虑当数据量迅速增长到一台服务器放不下时,数据仓库中的数据在各个服务器中如何分配,按主题、地理位置、还是时间?这些策略对整个数据仓库的性能影响很大。
(4)当选用数据仓库设计工具时应注意,工具支持的元数据格式是否与数据仓库支持的元数据格式相容?不同工具的元数据格式之间能否自由转换?
(5)最终用户对数据仓库的使用方式对数据仓库的性能影响很大,在设计数据仓库模型时为了提高性能应将用户对数据仓库的使用方式考虑在内。
设计数据仓库的 9个步骤是:
(1)选择合适的主题(所要解决问题的领域);
(2)定义维和维表,以及维表内的层次结构;
(3)定义事实表,以及和维表的关系;
(4)设计算法计算并存储事实表中的衍生指标;
(5)选择数据仓库的存储策略;
(6)设计维表的更新策略;
(7)设计事实表的更新策略;
(8)确定查询优先级和查询模式;
(9)确定分析的计算时间和频度。
技术方面
(1)硬件平台。数据仓库的硬盘容量通常要是操作数据库硬盘容量的2-3倍。通常大型机具有更可靠的性能和稳定性,也容易与历史遗留的系统结合在一起;而PC服务器或UNIX服务器更加灵活,容易操作和提供动态生成查询请求进行查询的能力。选择硬件平台时要考虑的问题是,是否提供并行的I/O吞吐? 对多CPU的支持能力如何?
(2)测试标准:衡量硬件平台的综合测试方法主要是TPC-H测试标准。TPC-H模拟一种拥有大量数据并且需要与在线生产数据库实现同步的决策支持系统。这项测试使用旨在回答真实商务问题(例如价格与促销、供应与需求、利润与收入以及市场份额等)的高度复杂性专用查询语句。标准化报表生成性能应通过另一种不同的基准测试——TPC-R加以测定。TPC-H与 TPC-R均是从目前已经撤销的TPC-D基准测试发展而来的。TPC-H基准测试具有五种类别:它们分别面向于容量为100GB、300GB、1TB、3TB和10TB的数据仓库。
(3)数据仓库:存储大数据量的能力、查询的性能和对并行处理的支持如何。
(4)网络结构:数据仓库的实施在哪部分网络段上会产生大量的数据通信,需不需要对网络结构进行改进。
实现方面
建立数据仓库是由以下步骤组成的:
(1)搜集和分析业务需求;
(2)建立数据模型和数据仓库的物理设计;
(3)定义数据源;
(4)选择数据仓库技术和平台;
(5)从操作型数据库中抽取、净化和转换数据到数据仓库;
(6)选择访问和报表工具;
(7)选择数据库连接软件;
(8)选择数据分析和数据展示软件;
(9)更新数据仓库。
数据抽取、清理、转换和移植方面
(1)数据转换工具要能从各种不同的数据源中读取数据;
(2)支持平面文件、索引文件和 legacy DBMS;
(3)能以不同类型数据源为输入整合数据;
(4)具有规范的数据访问接口;
(5)最好具有从数据字典中读取数据的能力;
(6)工具生成的代码必须是在开发环境中可维护的;
(7)能只抽取满足指定条件的数据和源数据的指定部分;
(8)能在抽取中进行数据类型转换和字符集转换;.
(9)能在抽取的过程中计算生成衍生宇段;
(10)能让数据仓库管理系统自动调用以定期进行数据抽取工作,或能将结果生成平面文件;
(11)必须对软件供应商的生命力和产品支持能力进行仔细评估。
_Toc290986036
数据挖掘技术
数据挖掘技术是目前新兴的更高层次的对数据的抽像,其以知识的简洁方式提供决策支持。
_Toc290986037
数据挖掘介绍
数据挖掘(Data Mining)是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。随着信息技术的高速发展,人们积累的数据量急剧增长,动辄以 TB计,如何从海量的数据中提取有用的知识成为当务之急。数据挖掘就是为顺应这种需要应运而生发展起来的数据处理技术,是知识发现(Knowledge Discovery in Database)的关键步骤。
_Toc290986038
数据挖掘方法
数据挖掘方法包括描述型数据挖掘和预测型数据挖掘。
描述型数据挖掘
1.统计和可视化
要想建立一个好的预言模型,用户必须了解自己的数据。最基本的方法是计算各种统计变量(平均值、方差等)和查看数据的分布情况。用户也可以用数据透视表察看多维数据。
数据的种类可分为连续的,有一个用数字表示的值(比如销售量)或离散的,分成一个个的类别(如红、绿、蓝)。离散数据可以进一步分为可排序的,数据间可以比较大小(如,高、中、低)和不可排序(如邮政编码)。
图形和可视化工具在数据准备阶段尤其重要,它能让用户快速直观地分析数据,而不是给用户枯燥乏味的文本和数字。它不仅让用户看到整个森林,还允许用户拉近每一棵树来查看细节。在图形模式下人们很容易找到数据中可能存在的模式、关系、异常等,直接看数字则很难。
可视化工具的问题是模型可能有很多维或变量,但是用户只能在二维的屏幕或纸上展示它。比如,用户可能要看的是信用风险与年龄、性别、婚姻状况、参加工作时间的关系。因此,可视化工具必须用比较巧妙的方法在二维空间内展示n维空间的数据。
虽然目前有了一些这样的工具,但它们都要用户“训练”过他们的眼睛后才能理解图中画的到底是什么东西。
2.聚类
聚类是把整个数据记录,在记录数据的多维空间内分成不同的群组。它的目的是要群与群之间差别很明显,而同一个群之间的数据尽量相似。与分类不同(见后面的预测型数据挖掘),在开始聚类之前用户不知道要把数据分成几组,也不知道怎么分(依照哪几个变量)。因此在聚类之后要有一个对业务很熟悉的人来解释这样分群的意义。很多情况下一次聚类用户得到的分群对用户的业务来说可能并不好,这时用户需要删除或增加变量以影响分群的方式,经过几次反复之后才能最终得到一个理想的结果。神经元网络和K-means是比较常用的聚集算法。
不要把聚集与分类混淆起来。在分类之前,用户已经知道要把数据分成哪几类,每个类的性质是什么,聚类则恰恰相反。
3.关联分析
关联分析是寻找数据库中值的相关性。两种常用的技术是关联规则和序列模式。关联规则是寻找在同一个事件中出现的不同项的相关性,比如在一次购买活动中所买不同商品的相关性。序列模式与此类似,它寻找的是事件之间时间上的相关性,如对股票涨跌的分析。
关联规则可记为A=>B,A称为前提和左部(LHS),B称为后续或右部(RHS)。如关联规则“买锤子的人也会买钉子”,左部是“买锤子”,右部是“买钉子”。
要计算包含某个特定项或几个项的事务在数据库中出现的概率只要在数据库中直接统计即可。某一特定关联(“锤子和钉子”)在数据库中出现的频率称为支持度。比如在总共1000个事务中有15个事务同时包含了“锤子和钉子”,则此关联的支持度为 %。非常低的支持度(比如1百万个事务中只有一个)可能意味着此关联不是很重要,或出现了错误数据(如,“男性和怀孕”)。
要找到有意义的规则,还要考察规则中项及其组合出现的相对频率。当己有A时, B发生的概率是多少?也即概率论中的条件概率。回到我们的例子,也就是问“当一个人已经买了锤子,那他有多大的可能也会买钉子?”这个条件概率在数据挖掘中也称为可信度,计算方法是求百分比:(A与B同时出现的频率)/(A出现的频率)。
预测型数据挖据
数据挖掘的目的是生成可以据其所示的含义采取行动的知识,也就是建立一个现实世界的模型。建立这个模型可能需要各种各样的源数据,包括交易记录、顾客历史数据、人口统计信息、进程控制数据和市场相关的外部数据等,比如:信用卡公司提供的数据、天气数据等。模型是模式和数据间相关性的形式化描述。
为了防止混淆,把数据挖掘概念划分为几个层次。
(1)商业目标;
(2)预言的种类;
(3)模型的类型;
(4)算法;
(5)产品。
最高层是商业目标:数据挖掘的最终目的是什么 ?比如:希望用数据挖掘技术留住用户的有价值的客户,用户可能先要建立一个模型来预测每个客户所能带来的利润,然后再建立一个模型来确定哪些客户可能会离开。充分了解用户所在企业的需求和目标有助于用户建立这样的目标。
下一步是决定最合适的预言的种类。①分类:预测一个特定的客户或事件属于哪一类;②回归( regression):预测一个变量的值(如果此变量随事件变化,可成为时间序列预测)。在上面的例子中用户可以用回归来预测利润的大小,用分类预测哪些客户会离开。后面我们会详细讨论。
现在用户可以选择模型的类型:用神经网络来做回归,决策树做分类,还是用统计模型,如:逻辑回归,偏差分析,普通线性模型等。每种模型都可以用不同的算法来实现,比如,可以用回馈函数或 radial basis函数来建立神经网络;决策树有巳ART,, QUEST, CHAID等。
在选择数据挖掘软件产品时,要注意这些软件所采用的算法虽然名称可能完全一样,但他们的实现方法通常都是不一样的。这些对算法的不同实现影响了软件对内存、硬盘的需求的不同及性能上的差异。
大部分的商业目标都可以用各种不同的模型及相异的算法来解决。通常在用户还没有试过任何数据挖掘算法之前,很难决定哪种对用户来说是最好的。
1.一些术语
在预测模型中,把我们要预测的值或所属类别称为响应变量、依赖变量或目标变量 ;用于预测的输入变量是预测变量或独立变量。
一些预测模型是通过那些已知目标变量值的历史数据训练出来的。这种训练有时也称为带指导的学习,因为是通过给出一些已知答案的问题(已知结果的数据)来让他“学习”。相对应地,还有不带指导的学习,如上面提到的描述型数据挖掘(在运行之前,算法对数据一无所知)。
2.分类
分类要解决的问题是为一个事件或对像归类。在使用上,既可以用此模型分析己有的数据,也可以用它来预测未来的数据。例如,用分类来预测哪些客户最倾向于对直接邮件推销做出回应,又有哪些客户可能会换他的手机服务提供商,或在医疗领域当遇到一个病例时用分类来判断一下从哪些药品着手比较好。
数据挖掘算法的工作方法是通过分析已知分类信息的历史数据总结出一个预测模型。这里用于建立模型的数据称为训练集,通常是已经掌握的历史数据。如,已经不再接受服务的用户,用户很可能还保存了他们在接受服务时的历史记录。训练集也可以是通过实际的实验得到的数据。比如用户从包含公司所有顾客的数据库中取出一部分数据做实验,向他们发送介绍新产品的推销信,然后搜集对此做出回应的客户名单,然后用户就可以用这些推销回应记录建立一个预测哪些用户会对新产品感兴趣的模型,最后把这个模型应用到公司的所有客户上。
3.回归
回归是通过具有已知值的变量来预测其他变量的值。在最简单的情况下,回归采用的是像线性回归这样的标准统计技术。但在大多数现实世界中的问题是不能用简单的线性回归所能预测的。如商品的销售量、股票价格、产品合格率等,很难找到简单有效的方法来预测,因为要描述这些事件的变化所需的变量以上百计,且这些变量本身往往都是非线性的。为此人们又发明了许多新的手段来试图解决这个问题,如逻辑回归、决策树、神经网络等。
一般同一个模型既可用于回归也可用于分类。如CART决策树算法既可以用于建立分类树,也可建立回归树。神经网络也一样。
4.时间序列
时间序列是用变量过去的值来预测未来的值。与回归一样,它也是用已知的值来预测未来的值,只不过这些值的区别是变量所处时间的不同。时间序列采用的方法一般是在连续的时间流中截取一个时间窗口(一个时间段),窗口内的数据作为一个数据单元,然后让这个时间窗口在时间流上滑动,以获得建立模型所需要的训练集。比如用户可以银行业CRM理论与实务用前6天的数据来预测第7天的值,这样就建立了一个区间大小为7的窗口。
_Toc290986039
数据挖掘算法
下面主要介绍在数据挖掘中最常见的和应用最广泛的算法:神经网络方法和决策树方法。其他的一些算法,例如 Bayesian方法,遗传算法,粗糙集算法等可以参照相应的文献。
应注意的是大部分算法都不是专为解决某个问题而特制的,算法之间也并不互相排斥。不能说一个问题一定要采用某种算法,别的就不行。一般来说并不存在所谓的最好的算法,在最终决定选取哪种模型或算法之前,用户可能各种模型都试一下,然后再选取一个较好的。
神经网络
神经网络近来越来越受到人们的关注,因为它为解决大复杂度问题提供了一种相对来说比较有效的简单方法。神经网络可以很容易地解决具有上百个参数的问题(当然实际生物体中存在的神经网络要比我们这里所说的程序模拟的神经网络要复杂得多)。神经网络常用于两类问题:分类和回归。
图4-9 一个神经元网络
在结构上,可以把一个神经网络划分为输入层、输出隐含层层和隐含层(见图 4-9)。输入层的每个节点对应一个个的图 4-9一个神经元网络预测变量。输出层的节点对应目标变量,可有多个。在输入层和输出层之间是隐含层(对神经网络使用者来说不可见),隐含层的层数和每层节点的个数决定了神经网络的复杂度。
除了输入层的节点,神经网络的每个节点都与很多它前面的节点(称为此节点的输入节点)连接在一起,每个连接对应一个权重Wxy,此节点的值就是通过它所有输入节点的值与对应连接权重乘积的和作为一个函数的输入而得到的,我们把这个函数称为活动函数或挤压函数。如图 4-10中节点 4输出到节点 6的值可通过如下计算得到。
W14 X节 J点1的值+W24 X节点 2的值
图4-10 权重计算
神经网络的每个节点都可表示成预测变量图4-10权重计算(节点1,2)的值或值的组合(节点3-6)。注意节点6的值已经不再是节点1,2的线性组合,因为数据在隐含层中传递时使用了活动函数。实际上如果没有活动函数的话,神经元网络就等价于一个线性回归函数,如果此活动函数是某种特定的非线性函数,那么神经网络又等价于逻辑回归。
调整节点间连接的权重就是在建立(也称训练)神经网络时要做的工作。最早的也是最基本的权重调整方法是错误回馈法,现在较新的有变化坡度法、类牛顿法、Leven-berg-Marquardt法和遗传算法等。无论采用哪种训练方法,都需要有一些参数来控制训练的过程,如防止训练过度和控制训练的速度。
决定神经网络拓扑结构(或体系结构)的是隐含层及其所含节点的个数,以及节点之间的连接方式。要从头开始设计一个神经网络,必须要决定隐含层和节点的数目,活动函数的形式,以及对权重做那些限制等,当然如果采用成熟软件工具的话,它会帮你决定这些事情。
在诸多类型的神经网络中,最常用的是前向传播式神经网络,也就是如图 4-10中所描绘的那种。为讨论方便假定只含有一层隐含节点。
可以认为错误回馈式训练法是变化坡度法的简化,其过程如下。
前向传播:数据从输入到输出的过程是一个从前向后的传播过程,后一节点的值通过它前面相连的节点传过来,然后把值按照各个连接权重的大小加权输入活动函数再得到新的值,进一步传播到下一个节点。
回馈:当节点的输出值与预期的值不同时,也就是发生错误时,神经网络就要“学习”(从错误中学习)。可以把节点间连接的权重看成后一节点对前一节点的“信任”程度(它自己向下一节点的输出更容易它前面哪个节点输入的影响)。学习的方法是采用惩罚的方法,过程如下:如果一节点输出发生错误,那么它看它的错误是受哪个(些)输入节点的影响而造成的,是不是它最信任的节点(权重最高的节点)陆害了它(使它出错),如果是则要降低它的信任值(降低权重),惩罚它们,同时升高那些做出正确建议节点的信任值。对那些收到惩罚的节点来说,它也需要用同样的方法来进一步惩罚它前面的节点。就这样把惩罚一步步向前传播直到输入节点为止。
对训练集中的每一条记录都要重复这个步骤,用前向传播得到输出值,如果发生错误,则用回馈法进行学习。当把训练集中的每一条记录都运行过一遍之后,称完成一个训练周期。要完成神经网络的训练可能需要很多个训练周期,经常是几百个。训练完成之后得到的神经网络就是在通过训练集发现的模型,描述了训练集中响应变量受预测变量影响的变化规律。
决策树
决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。比如,在贷款申请中,要对申请的风险大小做出判断,图 4-11是为了解决这个问题而建立的一棵决策树,从中我们可以看到决策树的基本组成部分:决策节点、分支和叶子。
图 4-11一棵简单的决策树
决策树中最上面的节点称为根节点,是整个决策树的开始。本例中根节点是“收入>¥,对此问题的不同回答产生了“是”和“否”两个分支。
决策树的每个节点子节点的个数与决策树所用的算法有关。如 CART算法得到的决策树每个节点有两个分支,这种树称为二叉树。允许节点含有多于两个子节点的树称为多叉树。
每个分支要么是一个新的决策节点,要么是树的结尾,称为叶子。在沿着决策树从上到下遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不同回答导致不同的分支,最后会到达一个叶子节点。这个过程就是利用决策树进行分类的过程,利用几个变量(每个变量对应一个问题)来判断所属的类别(最后每个叶子会对应一个类别)。
假如负责借贷的银行官员利用上面这棵决策树来决定支持哪些贷款和拒绝哪些贷款,那么他就可以用贷款申请表来运行这棵决策树,用决策树来判断风险的大小。“年收入>¥和“高负债”的用户被认为是“高风险”,同时“收入<¥但“工作时间 >5年”的申请,则被认为“低风险”而建议贷款给他/她。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来做预测(就像上面的银行官员用它来预测贷款风险)。常用的算法有 CHAID、CART、Quest和 。
_Toc290986040
数据挖掘过程
在实施数据挖掘之前,先制定采取什么样的步骤,每一步都做什么,达到什么样的目标是必要的,有了好的计划才能保证数据挖掘有条不紊地实施并取得成功。很多软件供应商和数据挖掘顾问公司提供了一些数据挖掘过程模型,来指导他们的用户一步步地进行数据挖掘工作。
CRISP-DM(Cross Industry Standard Process for Data Mining)是数据挖掘界公认的规范标准,是由SPSS、NCR、DaimlerChrysler等世界知名公司根据其实际经验与理论基础共同设计的数据挖掘流程。它以企业(组织)所面临的问题为出发点,以能实际解决企业(组织)的问题并找出新的商机为终极目标,所以CRISP-DM就是以数据为主轴,不断地寻找并有效地发掘出隐藏模式(Hidden Pattern)以及其内涵的整体流程。换言之,如何能在大量数据中不断地寻找出其宝藏即是CRISP-DM的精髓所在,如图 4-12所示。
图 4-12 CRISP-DM方法
一个数据挖掘项目的生命周期包括6个阶段,上图显示了该流程的各个阶段,包括商业理解、数据理解、数据准备、建立模型、模型评估、模型发布,各个阶段的顺序不是僵硬不变的,通常需要在不同阶段之间向前和向后移动,这取决于每个阶段的结果和接下来将要实施的阶段或者一个阶段的具体任务。箭头指出了各个阶段间最为重要和频繁的关联。CRISP-DM通过这6个阶段来保证完成一个成功的数据挖掘流程。
上图最外面的循环表示数据挖掘本身的循环特征。数据挖掘并非是一旦得到一个解决方案就结束了。在流程及解决方案中得到的教训可能引发新的、常常是更为集中的商业问题。后面的数据挖掘过程将从前几次的经验中获益。
每个阶段的要点如下。
1.商业理解(Business understanding)
这一初始阶段集中在从商业角度理解项目的目标和要求,然后把理解转化为数据挖掘问题,并制定出一个旨在实现目标的初步计划。
2.数据理解(Data understanding)
数据理解阶段开始于原始数据的搜集,接下来进行的活动是熟悉数据、识别数据质量问题、探索对数据的第一认识,或挖掘有深层含义的数据子集来形成对隐藏信息的假设。
3.数据准备(Data preparation)
数据准备阶段包括所有从原始未加工的数据构造最终数据集的活动(这些数据集是指将要嵌入建模工具中的数据)。数据准备任务可能实施多次,而且不按任何规定的顺.序。这些任务包括表格、记录和属性选择以及对建模工具中数据的转换和清理。
4.建立模型( Modeling)
在此阶段,主要是选择各种建模技术,同时对它们的参数进行校准以达到最优值。通常对于同一个数据挖掘问题类型,会有多种方法。一些方法在数据形式上会有具体的要求。因此,常常必须返回到数据准备阶段。
5模型评估( Evaluation)
进入项目中的这个阶段,你已经建立了一个模型(或者多个),从数据分析的角度来看,该模型似乎有很高的质量。在进行到模型的最后发布前,有一点是很重要的——更为彻底地评估模型和检查建立模型的各个步骤,从而确定它完全地达到了商业目标。一个关键目标为决定是否存在一些重要的商业问题仍未得到充分地考虑。关于数据挖掘结果的使用决定应该在此阶段结束时确定下来。
6.模型发布( Deployment)
模型的创建通常并不是项目的结尾。即使模型的目的是增加对数据的了解,所获得的了解也需要进行组织并以一种客户能够使用的方式呈现。这常常包括在一个组织的决策过程中应用“现场”模型,如在网页的实时个人化中或营销数据的重复得分中。不过,根据需要,发布过程可以简单到产生一个报告,也可以复杂到在整个企业中执行一个可重复的数据挖掘过程。在大部分情况下,是由客户来实施发布的,而非数据分析师本身。尽管如此,即使分析师并不执行发布,这对客户也是十分重要的——提前理解需要采取什么行动来实际利用产生的模型。
CRISP-DM有效管理商业问题处理的生命周期。如上图所示,生命周期的6个状态存在很强的相互依赖的关系,其中任何一个环节的质量关系着所有环节的成败。6个环节之间并无严格的顺序关系,可以根据需要从任何环节开始数据挖掘过程。
深刻理解 CRISP-DM方法可以有助于用户更好地解决商业问题。从提出一个粗糙的商业问题,历经若干个生命周期不断地完善它,并提供最佳的解决方案。
_Toc290986041
数字证书技术
数字证书技术提供了互联网通信的一种安全技术。
_Toc290986042
数字证书介绍
数字证书就是互联网通信中标志通信各方身份信息的一系列数据,提供了一种在Internet上验证用户身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT 国际标准。
一个标准的数字证书包含以下一些内容:
(1)证书的序列号,每个证书都有一个惟一的证书序列号;
(2)证书所使用的签名算法;
(3)证书的发行机构名称,命名规则一般采用格式;
(4)证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
(5)证书所有人的名称,命名规则一般采用格式;
(6)证书所有人的公开密钥;
(7)证书发行者对证书的签名。
_Toc290986043
为什么要用数字证书
基于因特网的电子商务系统技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。买方和卖方对于在因特网上进行的一切金融交易运作必须是真实可靠的,并且要使顾客、商家和企业等交易各方都具有绝对的信心,因而因特网(因特网)电子商务系统必须保证具有十分可靠的安全保密技术,也就是说,必须保证网络安全的四大要素,即信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性。
信息的保密性
交易中的商务信息均有保密的要求。如信用卡的账号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信息传播中一般均有加密的要求。
交易者身份的确定性
网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的身份,对商家要考虑客户端不能是骗子,而客户也会担心网上的商店是不是一个玩弄欺诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款问题以及确认订货和订货收据信息等。
不可否认性
. 由于商情的千变万化,交易一旦达成是不能被否认的,否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。
不可修改性
交易的文件是不可被修改的,如上例所举的订购黄金。供货单位在收到订单后,发现金价大幅上涨了,如其能改动文件内容,将订购数1吨改为,则可大幅受益,那么订货单位可能就会因此而蒙受损失。因此电子交易文件也要能做到不可修改,以保障交易的严肃和公正。
人们在感叹电子商务的巨大潜力的同时,不得不冷静地思考,在人与人互不见面的因特网上进行交易和作业时,怎么才能保证交易的公正性和安全性,保证交易双方身份的真实性。国际上已经有比较成熟的安全解决方案,那就是建立安全证书体系结构。数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采用了公开密钥体制,其他还包括对称密钥加密、数字签名、数字信封等技术。
可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其他人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。
_Toc290986044
数字证书原理
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商户,然后由商户用自己的私有密钥进行解密。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾做过任何修改,签发的文件是真实文件。
数字签名的具体做法是:
(1)将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。
(2)将该报交摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名。
(3)接收方收到数字签名后,用同样的HASH算法对报文计算摘要值,然后与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自所称的发送者。
_Toc290986045
证书与证书授权中心
CA 机构,又称为证书授证(Certificate Authority)中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。
由此可见,建设证书授权(CA)中心,是开拓和规范电子商务市场必不可少的一步。为保证用户之间在网上传递信息的安全性、真实性、可靠性、完整性和不可抵赖性,不仅需要对用户的身份真实性进行验证,也需要有一个具有权威性、公正性、惟一性的机构,负责向电子商务的各个主体颁发并管理符合国内、国际安全电子交易协议标准的电子商务安全证书。
_GoBack