• ICE入门学习和实践


    ICE源码安装

    (一)Ice依赖软件包

    (1)gcc 3.3以上。

    (2)Berkeley DB 4.8以上

    (3)expat 2.0.1

    (4)bzip2 1.0.x

    (5)mcpp 2.7.2

    (二)安装依赖包

    (1)安装编译所需软件包 用 apt-get install bulid-essential

    (2)安装ice所需依赖包 apt-get install libdb4.6++-dev libbz2-dev bzip2 libssl-dev libreadline5-dev libexpat1-dev mcppI

    (3)添加链接 ln -s /usr/lib/libmcpp.so.0.2.0 /usr/lib/libmcpp.so 如果不这样处理,会出现如下错误 cannot find -lmcpp

    (三)进去Ice 下面的cpp目录,运行 make  然后 make install ,编译完成。

    (四)添加环境变量

      Ice默认安装在/opt/下面,如/opt/Ice3.4.1/

      在 ~/.bashrc里面添加环境变量和类库为题

      export ICE_HOME=/opt/Ice-3.4.1

      export PATH=$ICE_HOME/bin:$PATH

      export LD_LIBRARY_PATH=$ICE_HOME/lib:$LD_LIBRARY_PATH

     就会新添如下命令

     slice2cpp      slice2freeze   slice2html     slice2php      slice2rb

     slice2cs       slice2freezej  slice2java     slice2py

    =以上摘自网络,基本是这个步骤,实际安装因为环境不同可能会遇到一些问题,具体问题具体解决=

     

    实践

    基本实践步骤

    1.编写ice文件,在其中命名相关接口
    2.slice2java编译ice文件,自动生成ice相关的java源码
    3.开发业务类,继承_XXXDisp类,实现服务端业务代码
    4.开发服务端通讯代码,服务端通讯代码没有业务逻辑,但是可以实例化服务端业务类放到对象适配器(ObjectAdapter)中进而提供业务服务。
    5.编写服务端配置文件,配置适配器对应的网络端口等等其他信息
    6.编写客户端配置文件,主要是配置一个代理参数,指向服务端提供的网络服务,包括网络协议、地址、端口等
    5.开发客户端代码,读取代理参数从而能和服务端进行通讯

    Icegrid部署

    1.准备两台机器,A和B,分别安装ice3.4.1

    2.在A中
       a.执行Ice-3.4.1/java/demo/IceGrid/simple的例子,配置config.register文件,使Ice.Default.Locator指向本地端口
       b.执行icegridregistry --Ice.Config=config.register,节点要运行,该服务必须启动
       c.执行icegridadmin --Ice.Config=config.grid -e "application add application_with_replication.xml",将application_with_replication.xml生成为应用
       d.生成config.node1文件,执行icegridnode --Ice.Config=config.node1 启动服务


    3.在B中
       a.生成config.node2文件,Ice.Default.Locator需要连到A(否则无法启动服务)
       b.执行icegridnode --Ice.Config=config.node2 启动服务
       c.node2需要调用的class已经在application_with_replication.xml中定义


    4.在A上启动客户端,Ice.Default.Locator指向A即可

    简单的客户端服务器程序涉及的文件

    1.xx.ice文件,定义接口,并执行slice2java xx.ice自动生成相应的java文件,编译这些java文件
    2.开发java程序,继承_XXDisp,该程序是具体执行业务的
    3.开发java的服务端程序,继承Ice.Application,该程序不涉及具体业务
    4.开发java的客户端程序,继承Ice.Application,该程序通过服务调用_XXDisp中的方法
    5.需要调整application_with_replication.xml,将其应用注册到icegrid中

  • 相关阅读:
    python中将集合进行切割的方法
    Tomcat单库多实例部署
    (二) storm的基本使用
    工作流表结构解析
    [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)
    [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)
    [HEOI 2013 day2] SAO (树形动态规划)
    关于react和Angular的思考
    angular 中的modal
    从易到难,写一个JavaScript加载器之一
  • 原文地址:https://www.cnblogs.com/blogszixin/p/3852893.html
Copyright © 2020-2023  润新知