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中

ICE入门学习和实践

时间: 2024-08-28 12:09:56

ICE入门学习和实践的相关文章

【转】机器学习最佳入门学习资料汇总

机器学习最佳入门学习资料汇总 专为机器学习初学者推荐的优质学习资源,帮助初学者快速入门. 这篇文章的确很难写,因为我希望它真正地对初学者有帮助.面前放着一张空白的纸,我坐下来问自己一个难题:面对一个对机器学习领域完全陌生的初学者,我该推荐哪些最适合的库,教程,论文及书籍帮助他们入门? 资源的取舍很让人纠结,我不得不努力从一个机器学习的程序员和初学者的角度去思考哪些资源才是最适合他们的. 我为每种类型的资源选出了其中最佳的学习资料.如果你是一个真正的初学者,并且有兴趣开始机器学习领域的学习,我希望

JavaScript入门学习书籍的阶段选择

对于许多想学习 JavaScript 的朋友来说,无疑如何选择入门的书籍是他们最头疼的问题,或许也是他们一直畏惧,甚至放弃学习 JavaScript 的理由.在 JavaScript 方面,自己不是什么专家,也不是什么高手,但自己一路走来,JavaScript 从迷茫到认识,对于JavaScript 书籍的认识或许还有些借鉴价值.入门推荐首选书籍:<JavaScript DOM 编程艺术>当初读了不下 4 遍,书内容简单,易学,上手快,编程思想严谨.好的入门书,对你未来的编程都会有着深远的影响

学习、实践分析取舍,工作学习总结

列举: 工作快要一年了,最近发现自己想要学习的东西非常多,已经到了完全应付不过来的程度.看来需要列举一下,然后分一下主次关系: 这些就是目前我想要学习的知识点: 1.C++.C语言基础知识 2.cocos2dx游戏引擎 3.android应用基础知识和eclipse.ADT.CDT.ANT.NDK.SDK基本知识点 4.xcode.object-c和mac基础知识点 5.openGL相关知识 6.lua语言基础知识 7.Linux和unix编程基础 8.编译.链接.装载,静态库.动态库 9.计算

PHP 入门学习教程及进阶(源于知乎网友的智慧)

思过崖历程: 自学的动机.自学的技巧.自学的目标三个方面描述学习PHP的经历 一.自学的动机: 一定要有浓厚的兴趣,兴趣是最后的老师,可以在你迷茫的时候不断地支撑着你走下去. 自学不是为了工作,不是为了梦想,仅仅是随便玩玩而已,大可不必各种纠结,互联网很发达,教程随便一搜就一大堆,学个一知半解装装B还是很轻松的,特别是慕课网上的各种眼花缭乱的视频教程,绝B会让你恨时间如流水,何其宝贵--然而这并没有什么卵用,在大部分的情况下,它仅仅适合学习某一门语言的一个专题,并没有针对某一门语言提供由浅入深,

php入门学习

尤其不认可W3school之类的东西,不够深度,理解不深,比起这个更建议看官方文档,中文不清楚,看英文的. 入门视频:入门视频推荐:哈佛大学公开课:构建动态网站Beginner PHP and MySQL Tutorial另,java版的 斯坦福大学公开课:编程方法学推荐看看. 若实在想看国内的,可看下:慕课网-国内最大的IT技能学习平台 关于书籍: 原则:只看国外的,只用Google,只用英文. 一般用图灵的技术书籍. 推荐书籍: 入门篇:<PHP和MySQL Web开发(第四版)> 进阶篇

Python入门学习指南--内附学习框架

Python入门学习指南 最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台: 78486745 ,欢迎大家加入共同交流学习. 对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃.以下是结合Python的学习经验,整理出的一条学习路径,主要有四个阶段 NO.1 新手入门阶段,学习基础知识 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所有教程在基础知识介绍方面都差不多,区别在于讲的是否足够细(例如运

零基础入门学习java,应该如何快速打好Java基础?

零基础入门学习java,应该如何快速打好Java基础?从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做training,所以可以分享下我的经验,希望对你有用. 创一个小群,供大家学习交流聊天如果有对学java方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学java能够持之以恒java爱好群,如果你想要学好java最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习java组织

Python Selenium入门学习材料整理

Python Selenium入门学习材料整理一.简介及环境搭建1.selenium 介绍:selenium 是一个 web 的自动化测试工具,可以自动打开浏览器执行页面打开.页面内容抓取.页面元素搜索,是相对好上手的网页爬取工具.2.安装selenium:pip install selenium3.安装webdriver:selenium打开网页需要有webdriver来调用浏览器.Firefox:https://github.com/mozilla/geckodriver/releases/

算法工程师耗尽心血终成TensorFlow深度学习应用实践,值得一学!

本篇总的指导思想是在掌握深度学习的基本知识和特性的基础上,培养使用TensorFlow进行实际编程以解决图像处理相关问题的能力.全篇力求深入浅出,通过通俗易懂的语言和详细的程序分析,介绍TensorFlow的基本用法.高级模型设计和对应的程序编写. 本篇强调理论联系实际,重点介绍TensorFlow编程解决图像识别的应用,提供了大量数据集,并以代码的形式实现了深度学习模型,以供读者参考. 本篇可作为学习人工神经网络.深度学习TensorFlow 程序设计以及图像处理等相关内容的程序设计人员学习.