摘要: json 格式的例子: { "firstName": "John", "lastName": "Smith", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumbers& 阅读全文
posted @ 2011-11-21 17:04 tangr206 阅读(687) 评论(0) 推荐(0) 编辑
摘要: PPT1 运行时环境Ice作为一个中间件产品,其使用过程中,有运行时(也称mn time)环境和开发环境两部分。图 Ice核心功能的模块组成图可见,Ice核心功能实际上由六大子系统模块共同分担,分别是通信模块、对象适配模块、线程模块、调用/分派模块、桩和框架模块和插件模块。PPT2 通信模块Icc的通信子系统主要负责对网络连接的管理,涉及范围包括端点、引用、连接及它们的相互关系。利用端点信息可寻址一台主机,端点信息包括协议类型、寻址信息等。引用包含了servant的标识:Identity+facet。一个引用包含一个Identity,但可包含多个端点,这意味着,可以选择任意一个满足要求的端点定 阅读全文
posted @ 2011-11-21 12:03 tangr206 阅读(1131) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/moxiaomomo/article/details/67641801.Ice Run Time 概述 按照个人暂时的理解,Icerun Time具体是指Ice封装好了大部分的API,通过这些API实现分布式应用程序运行时的各种功能。 首先,其中一个重要的部分是通信器,它是Ice run time的主句柄,也是Ice run time的主进入点。另外Ice一个重要的机制是servant定位器,用于控制性能和内存消耗之间的平衡。其他一些同样不可缺少的组成部分接下来将会进行介绍。2.通信器 Icerun time 的主进入点由本地接口Ice::Commun 阅读全文
posted @ 2011-11-21 11:56 tangr206 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 熟练使用gdb是一个linux下开发人员必备的一项技能,我们由浅入深的学习一下gdb的强大功能。一.gdb简单介绍名称gdb - GNU 调试器提要gdb [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps][-tty=dev] [-s symfile] [-e prog] [-se prog] [-ccore] [-x cmds] [-d dir] [prog[core|procID]]描述 调试器(如GDB)的目的是允许你在程序运行时进入到某个程序内部去看看该程序在做什么,或者在该程序崩溃时它在做什么。GDB主要可以做4大类事(加上一些其他 阅读全文
posted @ 2011-11-21 11:46 tangr206 阅读(489) 评论(0) 推荐(0) 编辑
摘要: http://www.cppprog.com/2009/0612/125.html第17章《异步程序设计》网上摘录比较清晰的解释:“AMI是客户端的功能,I = Invoke,客户端调用完后马上返回,保证客户端不阻塞。 AMD是服务器端功能,D= Dispatch, 服务器端相应客户调用过程中,使用AMD可以在处理还没有完成时就提前返回结果,就像在函数中间加个return语句一样,不同的是这个return下面 的语句会接着执行。 还有一点很有特色的是,AMI和AMD是完全互相独立的,也就是说对于同一个interface,客户端不会知道服务器是否用AMD方式相应请求,服务器 端也不会知道客户端是 阅读全文
posted @ 2011-11-21 11:26 tangr206 阅读(1720) 评论(0) 推荐(0) 编辑
摘要: 服务器端:服务器端通常只有一个通信器(Ice::Communicator),通信器包含了一系列的资源:如线程池、配置属性、对象工厂、日志记录、统计对象、路由器、定位器、插件管理器、对象适配器在通信器内,包含有一个或更多的对象适配器(Ice::ObjectAdapter),对象适配器负责提供一个或多个传输端点,并且把进入的请求分派到对应的servant中去执行。具体实现的部分称为servant,它们为客户端发来的调用提供服务。servant向对象适配器注册以后,由对象适配器依据客户请求调用相应方法。客户端:客户端直接通过代理进行远程调用,就象本地调用一样简单。 通信器Ice::Communica 阅读全文
posted @ 2011-11-21 11:14 tangr206 阅读(900) 评论(0) 推荐(0) 编辑
摘要: 2009-07-12 13:53:30 作者:毛毛 来源:www.cppprog.com =本文介绍了如何通过命令行参数或配置文件设置ICE的行为在前一篇文章中,大家可能都注意到了一个细节,Ice的初始化函数initialize的输入参数正好是主函数的输入参数,也就是命令行参数(注:辅助类Ice::Application也调用了initialize函数)。Ice的初始化函数得到命令行参数后,抽取出Ice专有参数,并把分析后的配置存入到Ice的属性表中。假设命令行为:MyProg.exe --myoption --Ice.Config=config\ -x a --Ice.Trace.N... 阅读全文
posted @ 2011-11-21 10:44 tangr206 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 解释: 注册器是指运行注册器的主机,可以是主/从模式的容灾系统;节点1,节点2是指服务器主机,注册器记录和管理多台节点;每个节点上可以运行多个服务器软件Server<xx>这样构成了整个ICEGrid。1. IceGrid的优势: a. Location Service b. On-demand Server activation 按需启动,对于配置的节点(node)无需启动,在客户端向icegrid请求一个服务代理时,icegrid发现这个服务存在但没有被启动,会激活这个adapter所属的server或者让这个apapter向其注册。 c. Application distri 阅读全文
posted @ 2011-11-21 10:32 tangr206 阅读(2531) 评论(1) 推荐(0) 编辑
摘要: Ice 提供了一个简单的线程抽象层,用以编写可移植的多线程程序。通过同步原语可以实现不同粒度的并发控制。 1、互斥体 IceUtil::Mutex类和IceUtil::StaticMutex提供了简单的非递归互斥机制。两者完全类似,只是StaticMutex可以静态声明,如下所示: static IceUtil::StaticMutex myStaticMutex =ICE_STATIC_MUTEX_INITIALIZER; 成员函数: • lock:尝试锁定互斥体。如果已锁定,就会挂起直到获得互斥体。 • tryLock:尝试锁定互斥体。如果已被当前线程锁定就返回true,否则返回fa... 阅读全文
posted @ 2011-11-21 09:52 tangr206 阅读(745) 评论(0) 推荐(0) 编辑