Started to write relative desigen document for my NMS system.First of all,
I should make a summary of topological discovery.
Network management has already become the key of network system. The automatic
topological discovery of network is the precondition of network management, analysis of
performance and localization of fault. With the enlargement of the network size, the
topological structure Of the network layer can't reflect the connecting relation between the
network devices accurately. So, according to the protocol SNMP, ICMP and relevant MIB
information, this text proposes a new and effective automatic topology discovery algorithm
for Ethernet. The algorithm is based on theorem for determining the connection between two
Ethernet devices. Compared with other approaches to Ethernet topology discovery, this
algorithm doesn't require all network devices to support SNMP and it is more efficient and
practical. The experimental result demonstrates that the algorithm can construct the
physical topology of IP network fast and exactly.
先把文档的纲要写下来,然后按这个思路写。
没有文档等于没有积累,所以我们必须重视文档。
纲要
一、 引言
1. 目的;
2. 缩略词及术语。
二、 总体设计
1. 思路以及发现方式说明;
2. 算法说明,附流程图和时序图。
三、 设备和链路的发现方法
1. 一个IP的判别流程
2. 基于路由的发现;
3. 基于子网的发现;
4. 基于通用算法的链路发现,即由间接连接推导出直接连接;
5. 基于STP的链路发现;
6. 基于CDP的链路发现。
7. 关于IP定位问题
四、 总结(后续工作)
待深入研究的问题。
通过学习,对什么是BI以及OLAP,在概念上有了明确的认识。
商业智能(BI)是通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智决策的软件解决方案。它包含以下技术:
数据集市(Data Mart)和数据仓库(Data Warehouse, DW);
用户查询和报表(Query & Reports);
联机分析处理(On-Line Analytical Processing, OLAP),也称为多维分析;
数据挖掘(Data Mining);
关键绩效指标(KPI);
分析型应用(Analytic Application)。
前段时间下载了openi,部署安装后跑不起来,今天有空专门下载了
mondrian。
本来想用mysql作为数据源,可FoodMartCreateData.sql导入mysql会出错,不知这个
SQL适合哪种数据库。只好用odbc连接那个access文件,总算安装成功了,呵呵。
不知为何用mondrian这个名字,也许跟tomcat和catalina一样吧。
Mondrian, 蒙得里安·皮特1872-1944荷兰画家,作品以交错的三原色为基色的垂直
线条和平面为特点,他的著作包括 新造型主义(1920年),对抽象艺术的发展曾经产
生很深影响。(金山词霸)
Mondrian是一个用Java写成的OLAP(在线分析性处理)引擎。它用MDX语言实现查询
,从关系数据库(RDBMS)中读取数据。然后经过Java API用多维的方式对结果进行展示。
Mondrian面向ROLAP包含4层:表示层、计算层、聚集层、存储层。
● 表示层:指最终呈现在用户显示器上的以及与用户之间的交互,有许多方法来展现多维数据,
包括数据透视表、饼、柱、线状图。
● 计算层:分析、验证、执行MDX查询。
● 聚集层:一个聚集指内存中一组计算值(cell),这些值通过维列来限制。计算层发送单元请求,
如果请求不在缓存中,或者不能通过旋转聚集导出的话,那么聚集层向存储层发送请求。聚合层
是一个数据缓冲层,从数据库来的单元数据,聚合后提供给计算层。聚合层的主要作用是提高系
统的性能。
● 存储层:提供聚集单元数据和维表的成员。包括三种需要存储的数据,分别是事实数据、聚集和维。
OLAP客户端
JPivot是JSP风格的标签库,用来支持OLAP表,使用户可以执行典型的OLAP操作,如切片、切块、
上钻、下钻等。JPivot使用Mondrian服务器,分析结果可以导出为Excel或PDF文件格式。
完整开源BI解决方案
1.Pentaho
它是一个以流程为中心的、面向解决方案的框架,具有商务智能组件。BI 平台是以流程为中心的,其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在 BI 平台上执行的商务智能流程。流程可以很容易被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。BI 平台是面向解决方案的,平台的操作是定义在流程定义和指定每个活动的 action 文档里。这些流程和操作共同定义了一个商务智能问题的解决方案。这个 BI 解决方案可以很容易地集成到平台外部的商业流程。一个解决方案的定义可以包含任意数量的流程和操作。
BI平台包括一个 BI 框架、BI 组件、一个 BI 工作台和桌面收件箱。BI 工作台是一套设计和管理工具,集成到Eclipse环境。这些工具允许商业分析人员或开发人员创建报表、仪表盘、分析模型、商业规则和 BI 流程。Pentaho BI 平台构建于服务器、引擎和组件的基础之上,包括J2EE 服务器、安全与权限控制、portal、工作流、规则引擎、图表、协作、内容管理、数据集成、多维分析和系统建模等功能。这些组件的大部分是基于标准的,可使用其他产品替换之。
2.ObjectWeb
该项目近日发布了SpagoBi 1.8版本。SpagoBi 是一款基于Mondrain+JProvit的BI方案,能够通过OpenLaszlo产生实时报表,为商务智能项目提供了一个完整开源的解决方案,它涵盖了一个BI系统所有方面的功能,包括:数据挖掘、查询、分析、报告、Dashboard仪表板等等。SpagoBI使用核心系统与功能模块集成的架构,这样在确保平台稳定性与协调性的基础上又保证了系统具有很强的扩展能力。用户无需使用SpagoBI的所有模块,而是可以只利用其中的一些模块。
SpagoBI使用了许多已有的开源软件,如Spago和Spagosi等。因此,SpagoBI集成了 Spago的特征和技术特点,使用它们管理商务智能对象,如报表、OLAP分析、仪表盘、记分卡以及数据挖掘模型等。SpagoBI支持BI系统的监控管理,包括商务智能对象的控制、校验、认证和分配流程。SpagoBI采用Portalet技术将所有的BI对象发布到终端用户,因此BI对象就可以集成到为特定的企业需求而已经选择好的Portal系统中去。
3.Bee
该项目是一套支持商务智能项目实施的工具套件,包括ETL工具和OLAP 服务器。Bee的ETL工具使用基于Perl的BEI,通过界面描述流程,以XML形式进行存储。用户必须对转换过程进行编码。Bee的ROLAP 服务器保证多通SQL 生成和强有力的高速缓存管理(使用MySQL数据库管理系统)。ROLAP服务器通过SOAP应用接口提供丰富的客户应用。Web Portal作为主要的用户接口,通过Web浏览器进行报表设计、展示和管理控制,分析结果可以以Excel、PDF、PNG、PowerPoint、 text和XML等多种形式导出。
Bee项目的特点在于:
● 简单快捷的数据访问;
● 支持预先定义报表和实时查询;
● 通过拖拽方式轻松实现报表定制;
● 完整报表的轻松控制;
● 以表和图进行高质量的数据展示。
开源ETL工具
1.CloverETL是一个Java的ETL框架,用来转换结构化的数据,支持多种字符集之间的转换(如ASCII、UTF-8和ISO-8859-1等);支持JDBC,同时支持dBase和FoxPro数据文件;支持基于XML的转换描述。
2.Octupus是一个基于Java的ETL工具,它也支持JDBC数据源和基于XML的转换定义。Octupus提供通用的方法进行数据转换,用户可以通过实现转换接口或者使用Jscript代码来定义转换流程。
开源OLAP客户端
JPivot是JSP风格的标签库,用来支持OLAP表,使用户可以执行典型的OLAP操作,如切片、切块、上钻、下钻等。JPivot使用Mondrian服务器,分析结果可以导出为Excel或PDF文件格式。
开源OLAP服务器
1.Lemur主要面向HOLAP,虽然采用C++编写,但是可以被其他语言的程序所调用。Lemur支持基本的操作,如切片、切块和旋转等基本操作。
2.Mondrian面向ROLAP包含4层:表示层、计算层、聚集层、存储层。
● 表示层:指最终呈现在用户显示器上的以及与用户之间的交互,有许多方法来展现多维数据,包括数据透视表、饼、柱、线状图。
● 计算层:分析、验证、执行MDX查询。
● 聚集层:一个聚集指内存中一组计算值(cell),这些值通过维列来限制。计算层发送单元请求,如果请求不在缓存中,或者不能通过旋转聚集导出的话,那么聚集层向存储层发送请求。聚合层是一个数据缓冲层,从数据库来的单元数据,聚合后提供给计算层。聚合层的主要作用是提高系统的性能。
● 存储层:提供聚集单元数据和维表的成员。包括三种需要存储的数据,分别是事实数据、聚集和维。
(经网上资料整理后)
OLAP(在线分析处理)这个名词是在1993年由E.F.Codd提出来的。OLAP专门用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以应分析人员要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观易懂的形式将查询结果提供决策人员。
1993年,E.F.Codd 将这类技术定义为OLAP。鉴于Codd 关系数据库之父的影响。OLAP 的提出引起了很大反响,OLAP作为一类产品同OLTP明显区别开来。
Codd提出OLAP的12条准则来描述OLAP系统:
* 准则1 OLAP模型必须提供多维概念视图
* 准则2 透明性准则
* 准则3 存取能力推测
* 准则4 稳定的报表能力
* 准则5 客户/服务器体系结构
* 准则6 维的等同性准则
* 准则7 动态的稀疏矩阵处理准则
* 准则8 多用户支持能力准则
* 准则9 非受限的跨维操作
* 准则10 直观的数据操纵
* 准则11 灵活的报表生成
* 准则12 不受限的维与聚集层次
OLAP产品不少,本文将主要涉及Cognos(Powerplay)、Hyperion (Essbase)、微软(Analysis Service)以及MicroStrategy几大厂商的产品。
单纯从成本角度考虑,微软的产品算是最能节省成本的,Cognos和MicroStrategy则在同一水平线,都比微软贵一些。而Hyperion (Essbase)产品比较独立,也曾占有美国OLAP市场最大的份额,其产品价格又要更高一些。
从市场份额来看,就国外的市场报告分析,微软、Cognos、Hyerion三家占据主流。在国内,目前还没有权威的市场报告,如果仅从所接触到的项目来看的话,用Cognos的很多,买Essbase的也不少。这些年都是一些大企业建设BI项目,有足够的预算,多选用Cognos、Essbase;而Microstrategy,进入中国不算早,这几年在政府、金融行业也颇有建树。
若论开发应用,微软的产品向来以友好的用户界面著称,上手迅速。在OLAP产品上,微软依然发扬了这一优良传统,并有进一步标准化的趋势,开发了OLE DB for OLAP以及MDX(Multi-Dimensional Express多维表达式);参与XMLA(XML for Analysis)规范制定,也是想作为OLAP服务器和前端分析应用的数据传输标准。
而Cognos以桌面OLAP开始,一直以轻便、快捷的操作闻名。所谓桌面OLAP,是可以用客户端将cube下载到本地进行访问。虽然Poweplay早已演变成C/S结构的OLAP服务器,但其轻便的特点还是延续下来,而且提供可以简洁部署且具有交互性的PowerPlay Web Explorer界面。从互联网上,我们可以很快搜索出许多基于PowerPlay Web的分析应用。
Essbase作为老牌的OLAP服务器,是一个比较复杂的产品。所谓复杂,有两层意思,一是提供了丰富的API,让你可以充分定制开发;二是开发的难度较大,部署起来不容易。这也是国内很多用户难以将这个产品用好的一大原因。
比较Essbase和Powerplay,会发现截然相反的两个特点:Essbase的复杂和Powerplay的简洁。对于这两者,单独说哪一种更好都不够客观,因为当你抱怨Essbase繁杂的接口时,也有人在抱怨Powerplay的定制功能怎么如此之少。这种情形其实跟这两种产品的定位有关,Essbase比较专注于高性能的多维存储服务,而Powerplay则更专注于快捷的多维访问。换句话讲,Essbase之于Powerplay正像专业相机之于傻瓜相机,在选哪一个更好的问题上,不同的人肯定有不一样的答案。
当然,如果你想在找复杂和简洁之间找一个中间者,我想微软的 Analysis Service就是这样的产品。不过要注意的是,这个产品和SQL Server绑定得比较紧,这是微软的一贯策略。
根据多维数据存储的位置,OLAP一般分为MOLAP(Multi-Dimensional OLAP)和ROLAP(Relational OLAP)两种,此外,还有混合的HOLAP(Hybrid OLAP)。rolap 中的r是relational的意思,使用关系数据库RDBMS,所以性能的更多是靠RDBMS的性能和技巧,ROLAP支持更多的用户和数据量,ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字(外键);另一类是维表,每个维至少使用一个表来存放维的层次,所谓的'"星型模式"就是指维表和事实表通过主关键字和外关键字联系在一起。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述, 这种星型模式的扩展称为“雪花模式”。
rolap和molap的比较:
rolap使用现有的RDBMS,相对容易建模和控制。相应速度比MOLAP慢,数据装载的速度快,储存空间小,没有文件大小的限制,数据库可以做很多优化.
molap性能好,反映速度快,但是建模的难度很大,而且无法支持维度的动态变化,文件大小有限制,没有象关系型数据库那样有标准的访问接口比如JDBC,ODBC之类的。
HOLAP 是混合OLAP。
DOLAP 是 Desktop的OLAP , 应用不是很广,了解一下就够了。
其中, Cognos的Powerplay、Hyperion 的Essbase和微软的Analysis Service这些产品都是MOLAP产品。这类产品将数据从关系数据库(甚至是文本文件、Excel文件)中抽取出来,存储在自己的数据库中。这种数据库跟平常我们所见的Oracle、DB2这类关系数据库不同之处在于,它是专有格式的,且没有标准的访问接口。因此,这些产品如何实现多维存储也都不尽相同,大致的原理是以编程语言中多维数组的方式存放数据。度量值存放在数组的单元格中,而数组每个维就对应一个维度,其中,维元素就维的坐标。
可以想象,多维数据库的单元格跟维度、维元素的多少有莫大关系,而随着维度增加,数据库也迅速膨胀。因此,对于MLOAP产品,多维存储的存储空间、性能自然是比较关键的。Essbase在这方面提供很多优化工作,但有时候也会显得过于复杂。Powerplay也提供某些选项,诸如cube分区等,这是比较简单的优化方法。
OLAP产品的核心功能是提供多维存储,另外就是能够将OLAP访问操作转换为对数据的请求并返回,这些OLAP访问操作大多是用户通过前端发出的,因此要考虑OLAP产品能够和哪些前端工具对接。
Cognos Powerplay是个相对封闭的产品,它有自己的客户端和Web Explorer,你也甭想着用其他前端来访问它。Hyperion和微软都采用开放式接口,提供丰富的访问API,第三方可以用这些API访问其数据库。上文曾提到微软开发的MDX和参与的XMLA(XML for Analysis)规范,事实上,一些第三方的前端工具正是基于这样的标准和OLAP产品对接,比如可以用BO WebI连接Essbase。更有甚者,微软的服务器还提供用MDX来查询多维数据,就像用SQL来访问关系数据库一样。
诚然,这看起来的确比较酷,但有一点也要明确:目前虽然有XMLA、MDX这样的标准,但还不是非常成熟,且并非唯一标准。所以即使有第三方前端工具访问这些OLAP服务器,但只能说是多了一些选择,真正在前端功能上,并不能保证比封闭结构更丰富。
如果说OLAP产品市场几乎都被MOLAP占领,那么,有一家公司肯定不同意,那就是MicroStrategy,它几乎是目前唯一一家还占据一定市场份额的ROLAP产品。这是一件非常奇怪的事情,从第一个ROLAP产品Metaphor到Metacube、WhiteLight、MicroStrategy,这些独立的ROLAP厂商似乎都是难以生存下去,只有MicroStrategy坚挺到现在。究竟是它的产品厉害,还是市场做得到位?目前还不得而知。
从原理上讲,ROLAP将数据存放在关系数据库中,当然要求关系模型要非常严格,比如要遵循星型模式或雪花模式,才能定义出维度、度量、事实表、聚集表等元数据。但这样就增加了部署的难度,并且如果聚集表构建得不好,最后的访问性能就难以保证。恐怕这也是ROLAP难以生存下去的原因吧。
目前,很多OLAP产品都会混合MOLAP和ROLAP,特别是那些本身就做关系数据库的厂商,在现有数据库上面增加一些ROLAP的特性并不困难。IBM在与Essbase终止OEM合同之后,推出一个名为CubeViews的产品,就可以说是一个ROLAP产品。
虽然国内市场上已经涌现出这么多产品,但实际上,OLAP并没有被广泛接受,即使在已经建设BI系统好几年的电信行业也是如此。
User from GDPLN asked me to add a feature of receiving syslog.SourceView1.0 possesses of that,
but it is just very simple. I improved syslog module those days by imitating EventLogAnalyzer.