读书人

理解 ICE和ACE

发布时间: 2012-07-15 20:20:06 作者: rapoo

了解 ICE和ACE

1 ice ? [其实,可以跟thrift比,有木有 ]

?

Internet Communications Engine  

?

http://www.zeroc.com/ 当前ice版本 3.4.2

?

Zeroc推出的一种分布式的面向对象中间件,解决分布式的异构计算。可以用C++, Java, python, php, ruby, c# 等进行分布式的交互计算。

主要设计目标是:   成为适用于异种环境的面向对象中间件平台。   具有一组完整的特性,支持广泛的领域中的实际的分布式应用的开发。   去掉不必要的复杂性,使平台更易于学习和使用。  是一种在网络带宽、内存使用和CPU 开销方面都很高效的实现。  是 一种具有内建安全性的实现,使它适用于不安全的公共网络。

?

?

ice特点

- 面向对象的语义

- 支持同步和异步

- 硬件架构无关,操作系统无关,编程语言无关

- 完全线程化,api线程安全

- 使用tcp,ip,udp

- 安全,ssl支持

- 内建机制支持持久化对象,支持Berkeley DB

?

ice 使用

- slice :接口定义 - 中间数据结构

- leader/follow 线程池

- epoll select 模型

- 内置互斥 与 同步

?

ice基于gpl开源,同时发布付费版本。

?

?

ps:

- 你看,slice那种方式跟thrift几乎一样一样的, slice2py ,thrift2java ,不就一回事儿么 !

- 有很多人在使用ice,就举个很简单的例子,500wan,在线彩票投注平台,就用这个;网上有他们公司的ppt呢还;另外这个团队还使用python,他们的前端以php和python为主。

?

?

2 ace

?

Adaptive Communication Environment

?

Adaptive Communication Environment(自适配通信环境),简称ACE。为一个以C++的Template技术所做成的开放源代码的可跨平台的网络应用程序的程序库套件。它提供了socket/threading/memory management等多种系统调用的面对对象的wrapper,使C++通信软件开发更加简单。

?

?

?

?

附:

1 常见语言无关的跨平台通信中间件/方式:

- ace + tao

- ?coroa

- webservice : soap协议?

?

?

最后,笔者想推荐一下 thrift :?http://thrift.apache.org/

?

Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml.

Originally developed at Facebook, Thrift was open sourced in April 2007 and entered the Apache Incubator in May, 2008.

1 楼 bluky999 2011-08-30 google的 protocol buffers 也是类似产品,不过据tim yang等人的测试,google的速度更快表现更优。 http://timyang.net/programming/thrift-protocol-buffers-java-howto/


protocol buffers目前主要支持java,python, c++ 。 2 楼 bluky999 2011-11-23 服务端开发时经常会用到的其他C++库:
1 BOOST ,准标准库,你懂的
2 mysql++ ,已逐步取代其他CppApi

读书人网 >开源软件

热点推荐