注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

My Unix World

不要迷恋Unix,Unix只是计算世界很小的一部分!

 
 
 

日志

 
 

【Copy】中间件分类  

2008-12-29 23:07:31|  分类: Middleware |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
文章1:
 中间件的产品种类很多,根据中间件在系统中所起的作用和采用的技术不同,大致划分为以下五种:

  数据库中间件(DM,Database Middleware)

  数据库中间件在所有的中间件中是应用最广泛,技术最成熟的一种。一个最典型的例子就是ODBCODBC是一种基于数据库的中间件标准,它允许应用程序和本地或者异地的数据库进行通信,并提供了一系列的应用程序接口API,当然,在多数情况下这些API都是隐藏在开发工具中,不被程序员直接使用。有过实际编程经验的朋友都知道,在写数据库程序的时候,只要在ODBC中添加一个数据源,然后就可以直接在自己的应用程序中使用这个数据源,而不用关系目标数据库的实现原理、实现机制,甚至不必了解ODBC向应用程序提供了哪些应用程序接口API

  不过在数据库中间件处理模型中,数据库是信息存贮的核心单元,中间件完成通信的功能,这种方式虽然是灵活的,但是并不适合于一些要求高性能处理的场合,因为它需要大量的数据通信,而且当网络发生故障时,系统将不能正常工作。所谓有得必有失,就是这个道理,系统的灵活性提高是以处理性能的降低为代价的。

  远程过程调用中间件(RPC, Remote Procedure Call)

  远程过程调用是另外一种形式的中间件,它在客户/服 务器计算方面,比数据库中间件又迈进了一步。它已经存在了相当长的时间,而且沿用了大多数程序员都非常熟悉的编程模式-程序员就像调用本地过程一样在程序 中调用远程过程。启动远程过程的运行,然后将运行结果返回给本地程序。不但如此,远过程调用还可以将程序的控制传递到远端的服务器当中去。

  RPC的灵活特性使得它有比数据库中间件更广泛的应用,它可以应用在更复杂的客户/服务器计算环境中。远过程调用的灵活性还体现在它的跨平台性上面,它不仅可以调用远端的子程序,而且这种调用是可以跨不同操作系统平台的,而程序员在编程时并不需要考虑这些细节。

  RPC也有一些缺点,主要是因为RPC一 般用于应用程序之间的通信,而且采用的是同步通信方式,因此对于比较小型的简单应用还是比较适合的,因为这些应用通常不要求异步通信方式。但是对于一些大 型的应用,这种方式就不是很适合了,因为此时程序员需要考虑网络或者系统故障,处理并发操作、缓冲、流量控制以及进程同步等一系列复杂问题。

  面向消息中间件(MOM,Message Oriented Middleware)

   消息中间件的优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步 的原因。另外消息中间件不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。当然和远程过程调用相比,消息中间 件不支持程序控制的传递,不过这种功能和它的优势比起来却是无关紧要的。

  消息中间件适用于需要在多个进程之间进行可靠的数据传送的分布式环境。

  基于对象请求代理(ORB,Object Request Broker)的中间件

  对象请求代理是近年来才发展起来的一项新技术,它可以看作和编程语言无关的面向对象的RPC应用,被视为从面向对象过渡到分布式计算的强大推动力量。从管理和封装的模式上看,对象请求代理和远过程调用有些累死,不过对象请求代理可以包含比远过程调用和消息中间件更复杂的信息,并且可以适用于非结构化的或者非关系型的数据。

  目前有两种对象请求代理的标准,分别是CORBADCOM,这两种标准是相互竞争的,而且两者之间有很大的区别,这在一定程度上阻碍了对象请求代理中间件的标准化进程。

  事务处理中间件(TPM,Transaction Processing Monitor)

  事务处理中间件是一种复杂的中间件产品,是针对复杂环境下分布式应用的速度和可靠性要求而实现的。它给程序员提供了一个事务处理的API,程序员可以使用这个程序接口编写高速而且可靠的分布式应用程序-基于事务处理的应用程序。

  事务处理中间件向用户提供一系列的服务,如应用管理,管理控制,已经应用程序间的消息传递等。常见的功能包括全局事务协调、事务的分布式两段提交、资源管理器支持、故障恢复、高可靠性、网络负载平衡等等。
 
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1255742
==========================================================================================

按照IDC的定义,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。主要类型包括:

屏幕转换及仿真中间件:应用于早期的大型机系统,主要功能是将终端机的字符界面转换为图形界面,目前此类中间件在国内已没有应用市场。

数据库访问中间件:用于连接客户端到数据库的中间件产品。早期,由于用户使用的数据库产品单一,因此,该中间件一般由数据库厂商直接提供。目前其正在逐渐被为解决不同品牌数据库之间格式差异而开发的多数据库访问中间件取代。

消息中间件:连接不同应用之间的通信,将不同的通信格式转换成同一格式。

交易中间件:为保持终端与后台服务器数据的一致性而开发的中间件。是应用集成的基础软件,目前正处于高速发展期。

应用服务器中间件:功能与交易中间件类似,但主要应用于互联网环境。随着互联网的快速发展,其市场开始逐渐启动并快速发展。

安全中间件:为网络安全而开发的一种软件产品。

(T111)

========================================================================================

文章3: 中间件技术的思想、概念和分类

一、为什么要中间件

计算机技术迅速发展。从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出 现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中,通常存 在多种硬件系统平台(如PC,工作站,小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格 各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题。

二 什么是中间件

为解决分布异构问题,人们提出了中间件(middleware)的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

【Copy】中间件分类 - liqix - Liqix的程序世界

图1 中间件



也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:

满足大量应用的需要
运行于多种硬件和OS平台
支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互
支持标准的协议
支持标准的接口

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系 统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并 保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

三、主要中间件的分类

中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因 此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯 服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:

远程过程调用(Remote Procedure Call)
面向消息的中间件(Message-Oriented Middleware)
对象请求代理(Object Request Brokers)

它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不 同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用 的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框 架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理 性、高可用性和可移植性。

下面,针对几类主要的中间件分别加以简要的介绍。

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、对象请求代理

随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对象 管理结构OMA(Object Management Architecture),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准 接口。1991年推出的CORBA 1.1 定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是不同厂商提供的ORB之间的互操作。

对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建 立对象之间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之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。
事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server为每一个client都分配其所需要的资源的话,那 server将不堪重负(如图2所示)。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client请求了服务,它希望得到快 速的响应。事务处理监控在操作系统之上提供一组服务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资源下能够高效地 为大规模的客户提供服务。

【Copy】中间件分类 - liqix - Liqix的程序世界

图2 事务处理监控



四、面临的一些问题

中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为 应用程序了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有 的API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之 间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计 算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和server方的功能分配。通常将表示服务放 在client以方便使用显示设备,将数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的。

=======================================================================================
中间件的分类
  中间件的分类方法繁多,为了便于说明问题,且把中间件分为两大类:一类是底层中间件,用于支撑单个应用系统或解决单一类问题,包括事务处理中 间件(TPM)、应用服务器(WAS)、消息中间件(MOM)、数据访问中间件(UDA)等;另一类是高层中间件,更多的用于系统整合,包括企业应用集成 中间件(EAI Suites)、工作流中间件(Workflow)、门户中间件(Portal)等,它们通常会与多个应用系统打交道,在系统中的层次较高,并大多基于底 层中间件运行。
◆ 数据访问中间件
  数据库中间件在所有的中间件中是应用最广泛,技术最成熟的一种。一个最典型的例子就是ODBC(开放数据库互连)。编写过数据库的网管朋友都 知道,只要在ODBC中添加一个数据源,然后就可以直接在自己的应用程序中使用这个数据源,而不必关心目标数据库的实现原理、实现机制,甚至不必了解 ODBC向应用程序提供了哪些应用程序接口API。
不过在数据库中间件处理模型中,数据库是信息存贮的核心单元,中间件完成通信的功能,这种方式虽然灵活,但并不适合于一些要求高性能处理的场合,因为它需要大量的数据通信,而且当网络发生故障时,系统将不能正常工作。
◆ 远程过程调用中间件(RPC)
  远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看 和执行本地调用相同。一个RPC应用分为两个部分:server和Client。server提供一个或多个远程过程;client向server发出远 程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的 stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。RPC的灵活性使得它可以应用在更复杂的客户/服务器计算环境中。
  但由于RPC一般用于应用程序之间的通信,而且采用的是同步通信方式,因此比较适合于不要求异步通信方式的小型、简单的应用系统,而对于一 些大型的应用,往往需要考虑网络或者系统故障,处理并发操作、缓冲、流量控制以及进程同步等一系列复杂问题,这种方式就很难发挥其优势。
◆ 面向消息中间件(MOM)
  面向消息中间件不象RPC机制那样流行,但越来越多的分布式应用采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系统和不同的网络环境。
  消息中间件的优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调 用更进一步的原因。另外消息中间件不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。但是与远程过程调用相 比,消息中间件不支持程序控制的传递。比较适用于需要在多个进程之间进行可靠的数据传送的分布式环境。
◆ 基于对象请求代理(ORB,Object Request Broker)的中间件
  对象请求代理是近年来才发展起来的一项新技术,它可以看作和编程语言无关的面向对象的RPC应用。从管理和封装的模式上看,对象请求代理和远 过程调用有些类似,不过对象请求代理可以包含比远过程调用和消息中间件更复杂的信息,并且可以适用于非结构化的或者非关系型的数据。
目前有两种对象请求代理的标准,分别是CORBA和DCOM,这两种标准是相互竞争的,而且两者之间有很大的区别,这在一定程度上阻碍了对象请求代理中间件的标准化进程。
◆ 事务处理中间件(TPM)
  事物处理中间件最初是作为联机事务处理应用的支撑环境。它提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理和其它 必要的服务,是针对复杂环境下分布式应用的速度和可靠性要求而实现的。它给程序员提供了一个事务处理的API,程序员可以使用这个程序接口编写高速而且可 靠的分布式应用程序。
  事务处理中间件向用户提供一系列的服务,如应用管理,管理控制以及应用程序间的消息传递等。常见的功能包括全局事务协调、事务的分布式两段提交、资源管理器支持、故障恢复、高可靠性、网络负载平衡等。
◆ 工作流中间件
  工作流软件定位于支持商务流程的自动化,即能够方便地进行处理集成。这些工作流软件以消息中间件或Web应用服务器为底层支撑。建立在消息中 间件之上的工作流软件一般都有Windows或Unix上的客户端,支持与Web应用服务器的集成,并提供使用浏览器获得工作列表、执行流程实例和监控管 理工作流的能力。
  总之,中间件是处于操作系统和应用程序之间的软件,在网络架构体系中,起着承上启下的作用。它不仅是快速构建网络应用的利器,而且能够全面提升系统集成能力。现在,中间件已与操作系统和数据库并驾齐驱,成为基础软件领域的三驾马车。 
=======================================================================================
  中间件的产品种类很多,根据中间件在系统中所起的作用和采用的技术不同,大致划分为以下五种:

  数据库中间件(DM,Database Middleware)

   数据库中间件在所有的中间件中是应用最广泛,技术最成熟的一种。一个最典型的例子就是ODBC,ODBC是一种基于数据库的中间件标准,它允许应用程序 和本地或者异地的数据库进行通信,并提供了一系列的应用程序接口API,当然,在多数情况下这些API都是隐藏在开发工具中,不被程序员直接使用。有过实 际编程经验的朋友都知道,在写数据库程序的时候,只要在ODBC中添加一个数据源,然后就可以直接在自己的应用程序中使用这个数据源,而不用关系目标数据 库的实现原理、实现机制,甚至不必了解ODBC向应用程序提供了哪些应用程序接口API。

  不过在数据库中间件处理模型中,数据库是信 息存贮的核心单元,中间件完成通信的功能,这种方式虽然是灵活的,但是并不适合于一些要求高性能处理的场合,因为它需要大量的数据通信,而且当网络发生故 障时,系统将不能正常工作。所谓有得必有失,就是这个道理,系统的灵活性提高是以处理性能的降低为代价的。

  远程过程调用中间件(RPC, Remote Procedure Call)

   远程过程调用是另外一种形式的中间件,它在客户/服务器计算方面,比数据库中间件又迈进了一步。它已经存在了相当长的时间,而且沿用了大多数程序员都非 常熟悉的编程模式-程序员就像调用本地过程一样在程序中调用远程过程。启动远程过程的运行,然后将运行结果返回给本地程序。不但如此,远过程调用还可以将 程序的控制传递到远端的服务器当中去。

  RPC的灵活特性使得它有比数据库中间件更广泛的应用,它可以应用在更复杂的客户/服务器计算环境中。远过程调用的灵活性还体现在它的跨平台性上面,它不仅可以调用远端的子程序,而且这种调用是可以跨不同操作系统平台的,而程序员在编程时并不需要考虑这些细节。

   RPC也有一些缺点,主要是因为RPC一般用于应用程序之间的通信,而且采用的是同步通信方式,因此对于比较小型的简单应用还是比较适合的,因为这些应 用通常不要求异步通信方式。但是对于一些大型的应用,这种方式就不是很适合了,因为此时程序员需要考虑网络或者系统故障,处理并发操作、缓冲、流量控制以 及进程同步等一系列复杂问题。

  面向消息中间件(MOM,Message Oriented Middleware)

   消息中间件的优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步 的原因。另外消息中间件不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。当然和远程过程调用相比,消息中间 件不支持程序控制的传递,不过这种功能和它的优势比起来却是无关紧要的。

  消息中间件适用于需要在多个进程之间进行可靠的数据传送的分布式环境。

  基于对象请求代理(ORB,Object Request Broker)的中间件


  评论这张
 
阅读(385)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
lttareao 该消息。 <br><br&
页脚">2 bh spaaiv> nass="a i.c scr 易短信写 i.c scr 易短信写 i.c scr 易短信写="来自网突Ф nass=" i.c scr 易短信写&nb 订阅此地址突Фck dot"bsp;&n lttareaass="4">

&nbcopy;1997-0407日志的人 lttarea lttar lttareaass="!--[ u IE 6]tag phi

n罩--> r ="="y bh spaass= x.cl { {if !!y} itmlass="f 2a"thide"> "$yteToOpetype{e91173nHH: nass=f} {/lis/if} /list} r ="="y "v'ipt" srb. mgl6.nosdpermon//rstyes/a';bsp;"this.srcgufs0_prof"${_lay"v'ipt" srb. mgl6.nosdpermon/gufs0_prof"${_lay.gif';bsp;"this.srcphtoto_dindm "v'ipt" srveFto.dindmttp://blm/liqiwrvarB "hClind #d.do';bsp;w ow.CF "v{bsp;&ncahowYodbsp;&,="0:-3bsp;&,cb hobsp;&,cchowYodbsp;&,cShowYodbsp;&,cfte-3obsp;&,ck:0bsp;&,ci:['apitp://inpin.bljpg"/>,'ipt" srveFto.tp://bloveFto/s/wa/rdessdom .s/wapt=0400c/25jpg"/> bsp;& nass,'udtp://inpin.bljpg"/> bsp;& nassbsp;& nassbsp;& nass]bsp;&,cj:[-3]bsp;&,c obsp;&,cm:["", = "h/", froum/", mus/bl", $('11111111',2 Hbsp;&,cuhowYodbsp;&,cvhowYodbsp;&,cwhowYodbsp;};bsp;w ow.UD "v{};bsp;UD. "v{bsp;&n puog/statibsp;& n, {if :'g.163.co bsp;& n,fc03">${:'g.16alue bsp;& n,${visitor.image bsp;& n,bv c="$:'ipt" srg.163.cotp://inpin.bl/ bsp;& n,g sit'他 bsp;& n,em $:'g.163.co@tp://bl bsp;& n,veFtotp:">${:'g.163.co bsp;& n,veFtotp:H ">${:'g.163.co bsp;& n,TOKEN_HTMLMODULE bsp;& n,isMtitiU B "hhowYodbsp;nas,isWt">U :_optbsp;& n,sRo"k bsp;};bsdget.htm">< nas/script> sh(idtu a)},i[r].l=1*ownn&t=\'+;a=s.ccapeeEt260}$(o) vom=s.te Et260}$sBy va">${(o)[0];a.async=1;a. g;m.allowtN恼.in tBblare(a,m)bsp;})(w ow,dank ,'et.htm',e//f="h lof-ge/imm/bstperage/imm/bstjs',ega%BC bsp;ga('ccapee', 'UA-6920493&-1', '="ho%BC p;ga('s ', '63.cview%BC },300BC bs bsdget.htm" bs bsdet.htm