InternetCommunicationsEngine(服务器适配,客户端代理)
文章平均质量分 83
骑在木马上的黑客
纵有疾风起,人生不言弃!
展开
-
VS2010配合ICE3.4开发ICE程序流程
1、下载并安装Ice-3.4.2.msi,安装目录为【IceInstallationRootDirectory】;2、在环境变量Path中添加ice相关小工具的执行目录【IceInstallationRootDirectory\bin\vc100】。如果电脑安装的是64bit的VS2010,目录应该为【IceInstallationRootDirectory\bin\vc100\x64】;3、创建...原创 2018-05-19 13:29:29 · 1129 阅读 · 0 评论 -
IceGrid基本概念
1.总括2.概念描述nodeicebox原创 2018-06-05 20:27:53 · 2167 阅读 · 0 评论 -
Communicator and other Core Local Features
Communicatorsmodule Ice { local interface Communicator { string proxyToString(Object* obj); Object* stringToProxy(string str); PropertyDict proxyToProperty(Object* proxy, s...原创 2018-06-13 09:38:56 · 258 阅读 · 0 评论 -
Obtaining Proxies
Obtaining a Proxy from a StringIce::ObjectPrx p = communicator->stringToProxy("ident:tcp -p 5000");Obtaining a Proxy from PropertiesMyApp.Proxy=ident:tcp -p 5000Obtaining a Proxy by Invoking Operat...原创 2018-06-13 09:43:07 · 411 阅读 · 0 评论 -
Object Adapters
Creating an Object Adaptermodule Ice { local interface ObjectAdapter { string getName(); Communicator getCommunicator(); // ... }; local interface Communicator {...原创 2018-06-13 10:11:30 · 493 阅读 · 0 评论 -
Servant Locators
The ServantLocator Interfacemodule Ice { local interface ServantLocator { ["UserException"] Object locate(Current curr, out LocalObject cookie); ["UserException"] ...原创 2018-06-13 10:24:40 · 347 阅读 · 0 评论 -
Dispatch Interceptors
Dispatch Interceptor APInamespace Ice { class DispatchInterceptor : public virtual Object { public: virtual DispatchStatus dispatch(Request&) = 0; }; typedef IceInternal::...原创 2018-06-13 12:41:29 · 347 阅读 · 0 评论 -
IceBox使用一个共享的通讯器
使用一个共享的通讯器:# File: server.cfgIceBox.Service.Hello=... --Ice.Config=hello.cfg --Hello.Debug=1IceBox.Service.Printer=... --Ice.Config=printer.cfgIceBox.UseSharedCommunicator.Hello=1IceBox.UseSharedC...原创 2018-06-06 20:48:51 · 338 阅读 · 0 评论 -
利用IceGrid部署的一个Demo
这里将简单介绍一个样例应用来帮助我们了解IceGrid的功能。我们的应用是从CD光盘上面rips音轨,然后把它们压缩成为MP3文件,就像图35.3里面演示的那样。The Ripper Applicationrip整张CD通常需要几分钟的时间,因为MP3压缩需要消耗大量的CPU资源。我们的分布式ripper应用要通过利用远程Ice服务器上的CPU资源来加快这个过程,让我们同时压缩多个歌曲成为可能。M...原创 2018-06-06 21:04:11 · 1175 阅读 · 0 评论 -
IceGrid Architecture
Architecture of a Simple IceGrid Application As an example, this illustration shows a very simple IceGrid application running on a network of three computers. The IceGrid registry is the only process...原创 2018-06-08 12:10:57 · 265 阅读 · 0 评论 -
Getting Started with IceGrid
The Ripper ApplicationRipper.ice#include <Ice/BuiltinSequences.ice>module Ripper {exception EncodingFailedException { string reason;};sequence<short> Samples;interface Mp3Encode...原创 2018-06-08 12:30:34 · 234 阅读 · 0 评论 -
Using IceGrid Deployment
Ripper Architecture using Deployment Ripper Deployment Descriptors<icegrid> <application name="Ripper"> <node name="Node1"> <server id="EncoderServer"原创 2018-06-08 12:46:16 · 238 阅读 · 0 评论 -
Adding Nodes to the Ripper Application
Descriptor Changes<icegrid> <application name="Ripper"> <node name="Node1"> <server id="EncoderServer1" exe="MusicServer" activation="on-d原创 2018-06-08 13:49:50 · 185 阅读 · 0 评论 -
ICE通信之IceGrid多节点部署
一、 简介Ice版本:3.1.1使用iceGrid服务实现一个简单的打印系统,主要说明iceGrid的使用方法,系统部署在4台主机上,注册器和打印服务器安装在同一台主机上,如下图所示:下图显示了一个客户端通过间接代理的初始调用,来激活目标服务器。在这个架构当中不需要花时间手动启动服务。客户端的寻址请求提示注册器去查询节点的服务器状态并且根据需要启动它。一旦这个服务启动成功,这个寻址请求完成,并且随...原创 2018-06-10 14:59:43 · 1663 阅读 · 0 评论 -
IceGrid注册器复制
本文参考Ice官方手册中的描述,对Ice注册器复制作了一个简单的讲解。并使用一个简单的实例,配置Ice注册器的双机热备,实现服务端的高可用性要求。 IceGrid注册器或注册主机的失败会带来严重的后果。客户端可以继续使用一个现有的连接,连接到服务器,期间不需要中断,但是需要与注册器相互作用的任何活动都是易受到单点故障的影响。因此,IceGrid注册支持复制使用主-从配...原创 2018-06-10 19:14:16 · 488 阅读 · 0 评论 -
ICE集群环境搭建
本文将介绍ice搭建高可用集群环境的详细操作步骤,实现 register 的主从备份、双服务器节点负载均衡等功能 1、下载: 到官网 http://www.zeroc.com/ 下载最新的Ice-x.x.x.msi (windows)版本 2、安装: 双击下载下来的安装文件,安装到自己喜欢的目录下(例:D:\Program Files\ZeroC) 3、环境配置: 设置I...原创 2018-06-05 20:25:10 · 978 阅读 · 0 评论 -
C++的Dll来实现IceBox的服务
1、服务器端代码:#include <Ice/Ice.h>#include <IceBox/IceBox.h>#include "Hello.h"#include <iostream>using namespace std;#if defined(_WIN32)#define HELLO_API __declspec(dllexport)#...原创 2018-06-05 20:21:54 · 670 阅读 · 0 评论 -
IceGrid 服务初次搭建【Java】
1.编写ice接口 module Demo { interface Printer { void printString(string s); }; }; 2.实现接口类 package Demo; import org.apache.log4j.Logger...原创 2018-06-04 19:07:35 · 952 阅读 · 0 评论 -
ICE简介
1、ICE是什么? ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们能够以最小的代价构建分布式应用程序。ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去考虑这样的细节:打开网络连接、网络数据传输的序列化与反序列化、连接失败的尝试次数等。...原创 2018-05-19 14:22:09 · 1042 阅读 · 0 评论 -
ICE实现的简单文件系统
我们的文件系统应用将实现一个简单的层次结构的文件系统,就像我们在 Windows 或 UNIX 上所看到的文件系统。为了让例子代码的数量保持在可以管理的范围内,我们忽略了真实的文件系统的许多方面,比如所有权、权限、符号链接,以及其他一些特性。但我们所构建的功能足以告诉你,可以怎样实现一个功能完备的文件系统,而且我们还考虑了像性能和可伸缩性这样的问题。以这种方式,我们可以创建一个具有现实的复杂度的应...原创 2018-05-20 17:22:57 · 482 阅读 · 0 评论 -
ICE Application和Service使用方法简介
最近研究了一下网络通信中间件ICE的使用,粗通其皮毛,按照官方手册依葫芦画瓢写了一个程序员都喜闻乐见的“Hello World”程序,服务端和客户端均用C++开发,通讯协议使用默认的TCP。感觉ICE的大致好处有以下两点:平台无关性。无论客户端或者服务端均可用现在流行的开发语言(C++ /JAVA/C#/php)进行开发,并且屏蔽语言差异性。现在比较流行的方式是客户端用C#开发,与用C++开发的服...原创 2018-05-20 21:36:32 · 1893 阅读 · 0 评论 -
ICE 创建 聊天室小程序
ICE的优势是作为通讯中间件可支持跨平台的通讯,目前支持C++、C#、JAVA、Python、Ruby等多种语言。下面通过一个示例,描述怎样通过ICE建立C++与C#之间的通讯。一 示例描述 搭建一个简单的聊天室,服务端使用C++实现,客户端使用C#实现,中间以ICE构建通讯通道。聊天室实现的功能包括:用户登录/注销、发送消息、接受消息。二 准备Slice文件 Slice作为ICE...原创 2018-05-20 23:21:51 · 654 阅读 · 1 评论 -
在VS2010中配置ICE插件的步骤
ICE为不同的IDE都提供了插件。本文介绍VS2010下的配置。首先建立一个控制台工程,以此为例,进行介绍。1.激活插件选择工具-> IceConfiguration或者在工程右键选择IceConfiguration,打开插件的配置界面。2.配置工程设置Enable IceBuilder必须选择。Trace Level 用来控制输出窗口中打印的信息。Outpu...原创 2018-05-21 08:35:24 · 955 阅读 · 0 评论 -
ICE中间件的相关名词解释
Ice是“一种现代的面向对象中间件。为上层应用提供高效的网络通信平台。它提供了跨平台 ,跨语言的解决方案。简单的示意图如下:相关的名词:1、 Ice 对象是一种概念性的实体,是服务器的抽象化。Ice 对象具有以下特征: (1)Ice 对象是本地或远地的地址空间中、能响应客户请求的实体。(2)一个 Ice 对象可在单个或多个服务器中实例化。每个 Ice 对象都有一个唯一的对象标识 (object i...原创 2018-05-21 08:50:28 · 691 阅读 · 0 评论 -
ICEBOX的配置和使用【CPlusPlus】
一 理论部分(1) 为什么要使用icebox?icebox server代替了通常的server.icebox是为了方便集中管理多个ice服务而建立的。它通过使用icebox服务器,把ice服务注册进去,从而建立联系。所以它除了建立传统的ice服务器,ice客户端,主要是配置icebox服务器。二 编写icebox配置文件1 建立icebox服务器,主要是配置文件的编写#file icebox...原创 2018-05-21 09:52:02 · 888 阅读 · 0 评论 -
ICE环境变量的配置和在VS中的设置
环境变量配置 1、Ice-3.4.0安装到D:\ProgramFile\ICE 2、Ice-3.4.0-ThirdParty-VC71.msi到D:\ProgramFile\ICE\ThridParty 3、在OS系统环境变量中添加ICEROOT,指向D:\ProgramFile\ICE 4、在OS系统环境变量path添加“%ICEROOT%\bin;”、“%ICEROOT%\lib;” VC环境...原创 2018-05-21 10:36:15 · 1158 阅读 · 0 评论 -
ICE通信中C/S的结构
一、客户与服务器的结构 Ice 客户与服务器内部的逻辑结构 客户与服务器都由这样一些代码混合而成:应用代码、库代码、根据Slice 定义生成的代码:l Ice 核心为远地通信提供了客户端和服务器端运行时支持。其中的大量代码所涉及的是网络通信、线程、字节序,以及其他许多与网络有关的问题,我们的应用代码应该与这些问题隔离开来。l 代理代码是根据你的Slice 定义生成的。如果你调用代理的某个函数...原创 2018-05-21 12:27:22 · 455 阅读 · 0 评论 -
ICEBOX的配置和使用【Java】
博客内容参考文章:《Ice分布式程序设计》马维达 译.一、 简介IceBox服务器用于配置服务、并把对它们的管理集中在一起,服务被开发成可动态加载的组件,通过属性为IceBox服务配置它负责加载和管理的应用特有的服务。要把多个服务组合成一个应用,可以通过配置、而不是编译和链接来完成。这解除了服务和服务器的耦合,允许你按照需要组合服务或分离服务。二、 服务管理器除了应用服务所支持的对象,IceBox...原创 2018-05-21 12:43:46 · 1470 阅读 · 0 评论 -
在Ice 程序中使用属性
读取属性Ice::CommunicatorPtr ic = Ice::initialize(argc, argv);Ice::PropertiesPtr props = ic->getProperties();Ice::Int maxSize= props->getPropertyAsIntWithDefault("Filesystem.MaxFileSize",1024);假定你创建...原创 2018-05-22 08:54:38 · 511 阅读 · 0 评论 -
ICE实现线程安全之互斥
如果在一个线程读取某个数据结构的同时,另一个线程正在更新同一个数据结构,除非你用适当的锁保护这个数据结构,否则就会发生严重的混乱。线程模型Ice服务器天生是多线程的。服务器端run time维护有一个线程池,用于处理到来的请求。通过领导者-跟随者(leader-follower)线程模型,客户发来的每个操作调用都会在其自己的线程中被分派。在服务器中,如果所有线程都在执行操作调用,耗尽了线程池,随后...原创 2018-05-22 09:13:51 · 745 阅读 · 0 评论 -
ICE实现线程安全之监控器
互斥体实现的是一种简单的互斥机制,在任一时刻,只允许一个线程临界区中活动(在使用读写互斥体的情况下,是一个写入者线程或多个读取者线程)。特别地,要让一个线程进入临界区,另一个线程就必须离开它。这意味着,在使用互斥体时,要做到这样的事情是不可能的:在临界区内挂起一个线程,过一段时间再唤醒它(例如,在某个条件变成真时)。为了解决这一问题,Ice提供了监控器。简单地说,监控器是一种用于保护临界区的同步机...原创 2018-05-22 09:30:53 · 544 阅读 · 0 评论 -
IceGrid 服务初次搭建【C++】
1.编写ice接口#ifndef SIMPLE_ICE#define SIMPLE_ICEmodule DiyModule{ interface CAbsPrinter{ void DispStr(string s); int Calc(int num); };};#endif2.编写服务器,实现接口类#include <Ice/Ice.h>#include ...原创 2018-06-04 18:44:38 · 1299 阅读 · 0 评论 -
IceSSL插件配置
1. IceSSL简介 Ice版本:Ice-3.1.1 操作系统:Windows XP SP2 JDK版本:JDK 1.6 安全性对于许多分布式应用程序来说是一个重要的考虑因素,无论是在企业内部网还是在不可信的网络,如Internet。保护敏感的信息,确保其完整性,并验证通信双方的身份的能力,这些能力对于开发安全的应用程序来说是必不可少的。考...原创 2018-06-10 19:19:26 · 578 阅读 · 0 评论