读书人

两个系统之间的通讯有关问题

发布时间: 2012-10-24 14:15:58 作者: rapoo

两个系统之间的通讯问题
业务: 服务器端需要收集每个客户端的月报信息
数据库表: 每个客户端都有t_report月报表,服务器端有一个t_server_report表和一个收集任务表t_server_task
实现:
1 在服务器端人为生成收集任务(t_server_task表中加一条记录)
2 服务器端有个定时(每隔几分钟)运行的程序(在servlet 里执行)扫描收集任务表(t_server_task)查看是否有新的任务.


3 如果有新任务就通知指定的客户端收集月报表信息
4 客户端程序开始运行收集月报信息,然后发送给服务器端(每个客户端的数据量在8000条左右,10个列都是很简单的数据类型)
5 服务器端接收客户端的返回月报信息后插入到服务器端的t_server_report表中,然后进行分析.

注意:服务器端程序不能访问客户端的数据库,客户端的程序也不能访问服务器端的数据库

目前 3 4 5 步不知道怎么实现比较好
希望听听大家的意见public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { //封装用于返回的对象输出流 ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream()); //封装用于接收的对象输入流 ObjectInputStream in = new ObjectInputStream(request.getInputStream()); IDCInfoBean idcBean=new IDCInfoBean(); //按指定类的格式读取对象输入流中的内容 try { idcBean=(IDCInfoBean)in.readObject(); }catch (Exception e ){System.out.println(e.toString());//}String idc = idcBean.getIdc();//得到客户端所有节目信息List programList =CollectService.collectProgram(idc) ;List multiList =CollectService.collectMultiProgram(idc) ;//把结果封装到序列化对象里TransProgramList tpl = new TransProgramList();tpl.setProgramList(programList);tpl.setMultiList(multiList);//发送对象out.writeObject(tpl); }
16 楼 yuanfu 2006-10-29 1、对于问题3,比较简单,URL就可以搞定;
2、传递大数据量,用http传递序列化java对象,没有问题;当然你的客户端和服务器端都要是java实现;
3、计划任务可以使用Quartz来完成。 17 楼 myaniu 2006-10-30 可以看看ICE
www.zeroc.com
不过,他使用的是双协议,这个可能得考虑。 18 楼 hasi 2006-11-01 通过http传送的类(序列化的类),除了属性和get,set方法,不能包含别的方法,
包含别的方法就出错,这个问题怎么解释? 19 楼 pdw2009 2006-11-06 用一个中间数据表吧,最简单!!!!!不需要做啥修改 20 楼 jianfeng008cn 2006-11-07 pdw2009 写道用一个中间数据表吧,最简单!!!!!不需要做啥修改
得有地方建啊 不是说了 不能互相访问数据库的吗

读书人网 >软件架构设计

热点推荐