IceBox介绍

IceBox就像一个Tomcat,我们只要写N个Ice服务代码,用一个装配文件定义需要加载的服务列表、服务器的启动参数、启动次序等必要信息,然后启动IceBox,我们的应用系统就能够正常运行了。IceBox采用的是UNIX上通用的方式-属性文件的方式,其可能的原因的可以省去复杂的XML解析和相关的lib库,并能快速加载和启动程序。

IceBox使用

要将一个Ice服务纳入到IceBox中,我们需要引入IceBox.jar这个库,另外只需要让这个服务实现类继承IceBox定义的Service接口即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public  class  MyServiceImpl  extends  _MyServiceDisp  implements  Service {
     private  static  final  long  serialVersionUID = 7114601588161119171L;
     private  Ice.ObjectAdapter _adapter;
     @Override
     public  String hello(Current __current) {
         return  "Hello Jerome" ;
     }
     @Override
     public  void  start(String name, Communicator communicator, String[] args) {
         _adapter = communicator.createObjectAdapter(name);
         _adapter.add( this , communicator.stringToIdentity(name));  // 创建servant,
         _adapter.activate();
         System.out.println( "log:"  + name +  "is started!" );
     }
     @Override
     public  void  stop() {
         System.out.println( "log:"  this ._adapter.getName() +  "is stoped!" );
         // 销毁adapter
         _adapter.destroy();
     }
     
}

在src下新建IceBox配置文件 config.properties

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#service properties
IceBox.InstanceName=MyAppIceBox 1
IceBox.InheritProperties=1
#所有服务初始化完成之后打印 xxx ready
IceBox.PrintServicesReady=MyAppIceBox 1
#IceBox.serviceManager.Endpoints=tcp -p 9999 -h localhost
#performance properties
IceBox.ThreadPool.Server.Size=4
IceBox.ThreadPool.Server.SizeMax=100
IceBox.ThreadPool.Server.SizeWarn=40
IceBox.ThreadPool.Client.Size=4
IceBox.ThreadPool.Client.SizeMax=100
IceBox.ThreadPool.Client.SizeWarn=40
#for system stronger
Ice.ACM.Client=300
Ice.ACM.Server=300
#log and trace
#Ice.LogFile=iceserver.log
Ice.PrintStackTraces=1
Ice.Trace.Retry=2
Ice.Trace.Network=2
Ice.Trace.ThreadPool=1
Ice.Warn.Connections=1
Ice.Warn.Dispatch=1
Ice.Warn.Endpoints=1
#service define begin
#IceBox.Service.name=entry_point [--key=value] [args]
#name定义service的名字,作为start方法的name的参数,必须是唯一的
#entry_point是上面MyServie的完整类名
#[--key=value]:被作为property属性,用于构建该服务的communicator,
#用来更加精确的控制每个Ice服务的性能调优,这里也可以使用--Ice.Config=xxx.cfg的方式从具体的配置文件中加载参数。
#另外,也可以用IceBox.InheriProperties=1的属性让所以Ice服务实例都使用IceBox的配置属性
#[args]作为传入start方法的参数,作为服务启动初始化参数
IceBox.Service.MyService=service.MyServiceImpl prop1=1 prop2=2 prop3=3
#IceBox.Service.SMSService=com.SMSServiceI2
MyService.Endpoints=tcp -p 10001 -h localhost
#OnlineBook.Endpoints=tcp -p 10000 -h localhost
#service end
#service load order
#配置多个服务的先后顺序
IceBox.LoadOrder=MyService
IceBox.UseSharedCommunicator.MyService=1
IceBox.UseSharedCommunicator.SMSService=1

启动:在Eclipse右击项目Run As→Run Configuration,选择Project和Main class,和配置Arguments: --Ice.Config=config.properties


参考

《ZeroC Ice 权威指南》 3.2

资料
参考:D:\ZeroC\Ice-3.5.1-demos\demoj\IceBox
源码:链接: http://pan.baidu.com/s/1btCaIi 密码:edv0


参考

《ZeroC Ice 权威指南》 3.2

资料
参考:D:\ZeroC\Ice-3.5.1-demos\demoj\IceBox
源码:链接: http://pan.baidu.com/s/1btCaIi 密码:edv0

ZeroC Ice IceBox使用相关推荐

  1. Zeroc Ice 学习笔记--IceBox

    Zeroc Ice 学习笔记--IceBox 1.介绍 IceBox就好像是一个Tomcat,只需要服务实现Ice.Server接口并能轻松搞定 2.案例(参考Zeroc Ice 权威指南) ice文 ...

  2. Zeroc Ice 发布订阅者之demo Icestorm之clock

    刚刚在服务端(192.168.0.113)和客户端跑通(192.168.0.188),在这里记录,作为备忘. 第一步:读readme,先用vs2010生成subscriber.exe和publishe ...

  3. ZeroC Ice 暂记

    摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治 ...

  4. zeroc ice php,ZeroC ICE+PHP整合

    最近为了作分布式框架的技术选型,特意研究了多个分布式框架,恰好研究了Zeroc Ice 框架,特意记录以便后续查阅php 本文主要介绍win环境下PHP与ICE 环境的整合apache 首先咱们须要确 ...

  5. ZeroC Ice启用SSL通讯的配置

    Zeroc ICE ( Internet Communications Engine )中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯 ...

  6. Java构建工具, ZeroC ICE, word2vec

    https://antkillerfarm.github.io/ Java构建工具 构建工具的意义在于,提供一种独立于IDE的软件构建方式.而且通常来说,构建工具更适合特大项目的构建.比如,即使是以功 ...

  7. 初识RPC中间件zeroC ICE工具之iceca

    zeroc-icecertutils是什么? zeroc-icecertutils全称zeroc Ice Certificate Utilities,其中包括iceca命令行程序和一个小型Python ...

  8. ZeroC ICE 源码编译

    本实验主要介绍如何在Ubuntu 14.04系统上编译安装ZeroC ICE,首先介绍一下ZeroC ICE. ZeroC ICE是ZeroC公司开发的一套RPC中间件平台,号称标准统一,开源,跨平台 ...

  9. ZeroC Ice权威指南-学习笔记1——hello world

    前言 ZeroC Ice是一款很好的RPC框架,性能极好.但是参考文档不足是其一大问题,这也影响了它的传播.<ZeroC Ice权威指南>是唯一的中文教材,但写的不尽如人意,作为入门教材, ...

最新文章

  1. Python 进阶 — 面向对象编程
  2. .NET Core请求控制器Action方法正确匹配,但为何404?
  3. 【渝粤教育】国家开放大学2018年秋季 2238T个案工作 参考试题
  4. Apache实验-目录别名
  5. Activiti工作流框架学习(一)环境的搭建和数据表的了解
  6. storm中的乐器 wolven_Wolven Storm 风雪狼踪
  7. 第1本书:CCIE Practical Studies, Volume I-第13天
  8. iOS 关于使用xib创建cell的两种初始化方式
  9. 访问量100万的网站服务器,100万访问量 服务器配置
  10. php有没有ispostback,php用什么表示IsPostBack?
  11. 海康流媒体服务器客户端网页打不开,海康dvr流媒体服务器+客户端
  12. 爬虫实战——爬取大麦网
  13. i5 1230u怎么样 i51230u相当于什么水平级别
  14. 最热门的国人开发开源软件 TOP 50
  15. 一文带你了解步进电机的相关知识:相、线、极性和步进方式
  16. linux管理web项目目录结构图,WEB项目管理完整.doc
  17. 游戏王血计算机,游戏王消血
  18. 文档文件等网页端预览功能
  19. [Unity-28] 反编译并修改DLL文件
  20. 城市道路监控系统存储方案

热门文章

  1. 简易却不失华丽 [进销存管理](BCB+ACCESS)
  2. PHP做大转盘抽奖的思路,jQuery+PHP实现微信转盘抽奖功能的方法
  3. Linux为何如此有趣
  4. 工作中遇到的问题-关于博世的IP7400协议
  5. css - 收藏集 - 掘金
  6. 小白理财初级训练之经验总结
  7. 【苹果相册】短信iMessage文件的开发测试版需要真正的机器调试
  8. TensorFlow Serving部署文本分类模型(LSTM+CNN)
  9. PowerBuilder 软件加密实验
  10. x64dbg反汇编进阶之路0x1