网络服务器软件开发/中间件开发,关注ACE/ICE/boost

C++博客 首页 新随笔 联系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
      IceBox是Ice服务的容器,它的设计来源于Service Configurator模式,该模式采取集中式的策略对服务进行加载,管理,服务被设计为可动态加载的组件,服务主要是动态库的形式,然后按需配置到IceBox,这种方式解耦了服务器和服务,使开发人员更专注于业务逻辑服务的开发。
  IceBox的基本开发步骤:
      1。服务类从IceBox::Service派生
      2。实现服务启动接口:start接口
              3。实现服务关闭接口:stop接口
              4。IceBox加载服务完成时,start接口被调用,start接口一般包含服务初始化的内容,例如申请资源,创建适配器和servantsStop正好和start相反,如果将start理解为服务的构造函数,则stop就是析构函数
   开发实例:已知A点的坐标(x,y),和点集合S,求出S中与A距离最近的点,例子没啥难度,代码就不贴了,附近有详细的代码及必要的注释,想运行实例参考README文件,由于配置文件比较多,做一些说明,配置文件弄明白了,其它的都好理解了。
      1。Config.client,客户端配置文件,主要用来定位服务,主要包含服务的IP,端口,协议,服务的Identity

  2。Config.service,服务的配置文件,主要包含服务的IP(有可能多网卡),端口,协议,和config.client对应
3。Config.Icebox,主要包含需要加载的服务的名字以及服务的创建方式,同时,可以指定服务的配置文件,即config.service;此外还包含,监听iceboxadmin管理工具的连接信息
4。Config.adminiceboxadmin管理工具的配置文件,主要包含连接到icebox的连接信息
5。Config.client和config.service中SSL配置,需要配置有关加密的文件路径,ice的demo中不用配置该路径,是因为已经用相对路径的方式默认提供了
6。这么多的配置文件,不是必须的,只是为了方便组织,文件名是可以变化的,愿意的话,可以都写到一个配置文件

   最后有两点需要特别说明,一是在Ice的安装目录的bin目录下,有两个版本的icebox,release版icebox.exe和debug版iceboxd.exe,开发的服务必须和icebox的版本保持一致,否则icebox无法启动。二是由于IceBox服务是以DLL开发的,如果你用的debug版iceboxd.exe,那么在config.icebox的配置文件中,你传递的DLL的名字,他会自动追加上一个d,比如下面的配置项:IceBox.Service.Location=LocationService:create --Ice.Config=config.service,iceboxd.exe会查找LocationServiced.dll,然后调用该DLL中导出的create函数创建IceBox服务,该服务的配置文件为config.service
 
        www.cppblog.com/Files/true/IceBoxApp.zip
posted on 2010-10-07 06:09 true 阅读(4283) 评论(0)  编辑 收藏 引用 所属分类: ICE

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理