Ice笔记--Ice的服务器实现技术

本文介绍了服务器实现技术中的关键概念,包括渐进初始化、缺省Servants、混合途径及缓存,以及Servant逐出器的工作原理。这些技术有助于优化服务器性能,减少内存需求,并确保频繁访问对象的高效处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器实现技术

 

1.       渐进的初始化

如果我们使用servant定位器,locate返回的servant只能用于当前请求,也就是说Ice run time不会把这个servant增加到Active Servant Map中。

一种常用的实现技术是,在locate中,把每个servant增加到ASM中。这意味着,只有对Ice对象的初次请求会触发对locate的调用;自此之后,与Ice对象对应的servant就可以在ASM中找到,Ice run time不必再调用servant定位器就可以立即分派针对同一个Ice对象的到来请求。

使用一个把servant增加到ASM中的定位器有一些优点:

1)      Servants是随需实例化的,所以servant的初始化代价分散到了许多次调用中,而不是在服务器启动时同时产生。

2)      服务器的内存需求降低了,因为只有当Ice对象被客户实际访问时,servant才会实例化。

2.       缺省Servants

缺省Servants是—它针对每一个请求,充当不同的Ice对象的角色。换句话说,缺省servant会在处理每个请求时,根据请求所访问的对象标识改变其行为。通过这样的方式,客户可以访问数量不限的Ice对象,但却只有一个servant在内存中。

缺省Servants不仅可以节省内存,实现方式也很简单:在本质上,它们就是数据库中对象的持久状态的façade。

要创建缺省servant实现,我们需要的定位器的数量和系统中的非抽象接口的数量一样多。而对于每一个被调用的操作,缺省servant都要进行一次数据库访问,因此它比在内存中缓存状态要慢。

3.       混合途径及缓存

如果我们的应用有一些经常访问的对象,是性能的关键,那么我们可以把针对这些对象的servant增加到ASM中。其他不常被访问的对象可以通过缺省servant实现。

 

4.       Servant逐出器

逐出器是维护有servants缓存的servant定位器:最近最少用的servant处在队列的尾部,最近使用最多的servant处在队列的头部。(按照LRU顺序维护)。

队列的长度可以配置,并决定会有多少servant存放在缓存中:如果针对某个Ice对象的请求在内存中没有对应的servant,而且缓存满了,逐出器就会在队尾移除最近最少用的servant,给要在对头实例化的servant腾出空间。如:


逐出器在访问了servant3之后的情况:


假定下一个客户请求时针对对象标识6的。逐出器中维护servants的缓存已经满了,那么就会在队尾逐出标志位1的servant,如图:


逐出器集合了ASM与缺省Servants的优点:只要缓存尺寸能在内存中容纳servant工作集,大多数的请求都会由已经实例化的servant提供服务,而不用创建servant,并访问数据库来初始化servant状态。

 

 

1.1 ICE 概述 网络通信引擎(Internet Communications Engine, Ice)是由 ZeroC的分布式系统开发专家实 现的一种高性能、面向对象的中间件平台。它号称标准统一,开源,跨平台,跨语言,分布式, 安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯屏蔽。因此相比 CORBA,DCOM,SOAP,J2EE等的中间件技术,自然是集众多优点于一身,而却没有他们的 缺点。 Ice提供了完善的分布式系统解决方案,适合所有的异构网络环境:客户端和服务器端可以 用不同的程序语言来实现,可以运行在不同的操作系统和不同的体系结构的机器上,使用不同 的网络通信技术(TCP/UDP,SSL或通过插件功能扩展协议)。Ice也提供了客户端和服务器端 的完全分离,客户端不需要知道服务器实现过程和具体位置。Ice采用软总线的机制,使得在 任何情况下、采用任何语言开发的软件只要符合接口规范的定义,均能集成到分布式环境中去。 Ice面向对象,可以将所有应用看作是对象及相关操作的集合,构建在 Ice之上的分布式系统的 对象的获取只取决于网络的通畅性和获取服务对象特征的准确程度,而与对象的位置以及对象 所处的设备环境无关。 Ice提供了简单的对象模型和类型系统,精简而强大的运行时 API,简单的语言映射,紧凑 高效并可扩展的协议,丰富的客户端调用和服务器端分派方式,完善的安全解决方案,大量高 效而实用的服务和工具。基于这些,Ice特别适合对技术和性能要求都很高的分布式系统开发。 由于这些原因,现在 Ice已经被很多大公司采用,作为安全、伸缩性强的底层通信平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值