python调度web_python做web调用ICE服务

(以前写的一篇文章)

最近一直在关注ICE(http://www.zeroc.com/),不得不说其功能的强大,我主要看重几个点:

1.多语言支持,C++,Java,C#,Objective-C,Python,Ruby,PHP。

2.高级RPC,同时支持同步调用和异步调用,由于RPC是在ICE框架环境下运行的,所以稳定性和可靠性可以保证。在服务端内部使用会非常方便,比如将ICE前置在数据库之上,所有对数据库的访问方式就成了RPC

3.对分布式系统的支持-ICEGrid,涵盖了负载均衡,位置服务,计算节点“需要时启动”等众多特性,更多内容可以参考帮助文档(http://www.zeroc.com/doc/index.html)。简单提一下“需要时启动”,就是说某个client调用了节点Node1,如果Node1此时没有启动,则ICE负责将他启动,这个过程对client来说是透明的。 假如计算节点的逻辑上存在bug,触发bug会引起节点退出。通常的做法是自己写一些监控程序,如果发现节点不在了重启动,利用ICEGrid后,就避免了这个问题

4.提供了基于发布-订阅机制的消息组建ICEStorm

上面只是我关注的几点,更多的功能特性,请参考帮助文档!      下面以python作为web的开发后端,来调用python写的ICE服务,注意ICE服务可以是其他语言编写的,这个例子是修改的ICE提供的demo(D:\libs\Ice-3.3.1\demopy\book\printer),主要的功能是

(1)client通过浏览器打开某个python页面

(2) python页面调用ICE基础服务

(3)python页面将结果通过浏览器返回给client

一。接口文件Printer.ice内容如下:

#ifndef SIMPLE_ICE

#define SIMPLE_ICE

module Demo

{

interface Printer

{

string echo(string s);

};

};

#endif

二。Server.py内容如下:

import sys,traceback,Ice

Ice.loadSlice(’Printer.ice’)

import Demo

class PrinterI(Demo.Printer):

def echo(self, s, current=None):

print s

return s

status = 0

ice = None

try:

ic = Ice.initialize(sys.argv)

adapter = ic.createObjectAdapterWithEndpoints(”SimplePrinterAdapter”, “default -p 10000″)

object = PrinterI()

adapter.add(object, ic.stringToIdentity(”SimplePrinter”))

adapter.activate()

ic.waitForShutdown()

except:

traceback.print_exc()

status = 1

if ic:

# Clean up

try:

ic.destroy()

except:

traceback.print_exec()

status = 1

sys.exit(status)

三。echo.psp内容如下:

import sys, traceback, Ice

import Demo

status = 0

ice = None

try:

ic = Ice.initialize(sys.argv)

base = ic.stringToProxy(”SimplePrinter:default -p 10000″)

printer = Demo.PrinterPrx.checkedCast(base)

if not printer:

raise RuntimeError(”Invalid proxy”)

sEcho = printer.echo(”Hello ICE!”)

print sEcho

except:

traceback.print_exc()

status = 1

if ic:

# Clean up

try:

ic.destroy()

except:

traceback.print_exc()

status = 1

%>

四。运行过程:

1.启动ICE服务:python Server.py

2.启动Apache

4.此时浏览器中显示:Hello ICE!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值