关注于商业智能,报表工具,ETL及相关应用软件和技术的博客
25 Nov
随着计算机技术的迅速发展,广为应用,相应的产生一些新的需求。在硬件技术方面,CPU速度越来越高,处理能力越来越强; 在软件技术方面,应用程序的规模不断扩大,特别是Internet及互联网的出现,使计算机的应用范围更为广阔,而许多应用程序需在不同的网络环境平台上运行。这些都对新的软件开发提出了新的需求。
在这种分布异构环境中, 首先存在多种不同的硬件系统平台(如PC,工作站,小型机等), 而 在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及为了多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题。 这也是中间件出现的必要性。
中间件 (MiddleWare) :是位于平台( 硬件和操作系统)和应用之间的通用服务或软件,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协 议规范的多种实现。提出中间件的概念是为解决分布异构问题。

大概很难给中间件一个精准的定义,但中间件应具有如下的一些特点:
(1) 满足大量应用的需要
(2) 运行于多种硬件和OS平台
(3) 支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互
(4) 支持标准的协议
(5) 支持标准的接口
由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
中间件所涉及的范围十分广泛,针对不同的应用需求,涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:
远程过程调用(Remote Procedure Call)
面向消息的中间件(Message-Oriented Middleware)
对象请求代理(Object Request Brokers)
事务处理监控(Transaction processing monitors )
下面,针对几类主要的中间件分别加以简要的介绍。
1、远程过程调用
远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用。
在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。
2、面向消息的中间件
MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个主要特点:
通讯程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
对应用程序的结构没有约束:在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。
程序与网络复杂性相隔离: 程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。
3、对象请求代理
对象请求代理(ORB)是对象总线,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。
值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。
4、事务处理监控
事务处理监控(Transaction processing monitors)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于client和server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。总体上来说,事务处理监控有以下功能:
进程管理,包括启动server进程、为其分配任务、监控其执行并对负载进行平衡。
事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。
通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。
转自:广元顺天IT服务
23 Nov
现在随着网络应用和电子商务的不断成熟,各个站点的访问量越来越大,如何保证用户的响应速度和服务质量?如何使有限的计算机系统资源为更多的用户服务?作为较成功的数据库厂商,Oracle公司数据库的性能优化是如何进行的?为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑Oracle数据库的优化策略。本文从Oracle优化策略、Oracle性能优化工具、系统性能评估、参数的调整讲解Oracle优化的相关内容。
为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面。 查看全文>>
Oracle数据库常用的Oracle性能优化工具有: Oracle数据库在线数据字典、操作系统工具、SQL语言跟踪工具、OEM等。 查看全文>>
在Oracle系统性能评估过程中,信息系统的类型不同,需要关注的数据库参数也是不同的。 我们来介绍一下在线事务处理信息系统(OLTP)和数据仓库系统(Data Warehousing)的系统性能评估参数。 查看全文>>
针对CPU参数、内存参数讲述相应的Oracle数据库性能的参数调整。 查看全文>>
Oracle性能优化调整是一个系统工程,涉及的方面很多。数据库管理员需要综合运用上面介绍的规律,认真分析Oracle在运行过程当中出现的各种问题,以保证Oracle数据库运行的高效率。还需要指出的是,上面给出的语句只是测得Oracle运行过程的某一个时间点的情况,数据库管理员不能仅仅根据一个点的情况就断定数据库运行性能的好坏,只有多运行一些时间点才能对数据库运行状况做出一个综合评估。
本文摘自:http://www.nonetsky.com/course/oracle-database/oracle-optimize.html
23 Oct
广元顺天提供数据库优化调整培训,可以学习诊断问题的方式和方法,快速识别性能问题,识别和解决 I/O, RAM和数据库配置问题,探测和解决闩和锁的冲突问题,配置存储和磁盘资源来优化排序操作,诊断和解决与其它多线程服务器相关联的执行问题,列出对不同应用环境增强性能的选项。
完成本课程后,您将可以列出描述一个调试方法的重要步骤,使用Oracle工具诊断执行问题,配置存储器资源来优化Cache操作,重配置文件结构来增强性能。
数据库优化调整培训课程的主要内容包括:性能调整概览、Oracle报警和跟踪文件、工具和动态性能视图、调整共享池、调试高速缓冲器、调整redo buffer、调整排序。
23 Oct
J2EE(Java 2 Enterprise Edition)是建立在Java 2平台上的企业级应用的解决方案。J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。
BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。BEA WebLogic Server 的遵从 J2EE 、面向服务的架构,以及丰富的工具集支持,便于实现业务逻辑、数据和表达的分离,提供开发和部署各种业务驱动应用所必需的底层核心功能。
WebLogic 提供所有基本核心应用服务器的功能和服务,例如:
• 负载均衡(Load Balance)
• 故障容错(Fail over)
• Web 服务
• 网络透明
• 事务管理
• 安全性
• 消息
• 多线程
• 持久性
• 数据库连接
• 资源合并
• 开发、测试和封装功能
WebLogic的这些内置功能不但可以加速应用程序的开发,而且还可以减轻开发人员负担,降低他们自主开发关键性服务的费用。最后,由于充分利用 BEA WebLogic Server 提供的应用基础结构,因此应用提供的功能越来越多,开发速度越来越快,维护成本越来越低,投资回报越来越大。正如下图所示,简单的应用可以运行单一的 BEA WebLogic Server 实例,而更复杂的应用可以运行大型的服务集群,它们可以互相协作,以增强伸缩性(Scalability)和可靠性(Reliable)。
23 Oct
一、提供系统高可用性方案
什么是高可用性集群
高可用性集群,英文原文为High Availability Cluster, 简称HA Cluster,是指以减少服务中断(宕机)时间为目的的服务器集群技术。简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在用户看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。 高可用性集群不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。
什么是双机热备
所谓双机热备,其实可以认为是集群的最小组成单位,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为 为数分钟左右),从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力.
为了保障应用系统不间断的提供服务,可以部署应用级别的高可用方案,如WebSphere的集群,Oracle的RAC等架构.WAS集群集群架构如下图所示:
WAS(application server)集群拓扑有两种类型,
垂直集群

水平集群
或者垂直拓扑与水平拓扑混合使用
也可以通过硬件冗余来支持应用系统的高可用性(双机热备,采用这种方式的如AIX的HACMP方式;集群并行服务,LINUX的LVS)
二、中间件实施服务
中间件定义:
中间件是介于应用与操作系统之间的系统软件,是相关应用的基准平台
中间件= 平台+通信
开发和管理应用的平台,异构系统间的通信,不同部件间的通信.
中间件的类型:
1.通信处理(消息)中间件[MQ, MessageQ, TongLINK]
2.事务处理(交易)中间件[TUXEDO, CICS, TongEasy]
3.数据存取管理中间件
4.Web服务器中间件[Weblogic, Websphere, SUN ONE, Oracle AS]
5.跨平台和构架的中间件[CORBA, ]
采用中间件之前的两种业务处理模式
将应用系统逻辑上分成三个部分:
表示层(用户界面) –业务逻辑–数据(Resource Manager)
引入中间件后的三层结构
将业务逻辑在逻辑和物理上独立出来,可以有自己的操作系统和应用平台.
三、系统MA服务
为了使应用系统更稳定,更高效的运行服务,提供系统巡检服务,最大限度的发现系统隐藏问题; 分析现有问题,给您提供系统解决或者优化方案.
详情见:http://www.nonetsky.com/service/it-berater.html