http://blog.sina.com.cn/yybb526[订阅][手机订阅]
个人资料
电视机
图片幻灯
公告
阳光操场
爱心接力棒
分类
    内容读取中…
评论
读取中...
友情链接
访客
读取中...
好友
读取中...
博文

交代一下故事背景,国内某保险公司,最近上ILOG规则引擎项目,题外话,

对于保险里面的车险核保,真的是相当合适.据说,目前规则引擎最成功的就是ILOG了,我稍微看了一下他们的规则描述语言,感觉好傻啊,用中文描述,我觉得这东西要是可以用导图的那种方式,很发散的方式去处理一定很完美!

回到正题上,因为公司的核心业务系统是使用pro*c编写的服务运行于IBM AIX上面,并且通过中间件与前端通讯,怎么与java的ILOG规则引擎通讯呢?刚开始想着通过gSoap来实现c对web service的调用,但最后因为安装这个包肯定得通过系统管理员,相当麻烦,而且从来没有用过,不知道是否好用,所以ILOG那边增加一个DTO转换层,即将我们发送过去的xml转换成web services调用,并将返回结果也转换成XML;简单的说就是核心后台通过HTTP POST打包xml发送请求,并且规则引擎那边也返回xml来实现!

晕,走题有点严重!

其实无非要实现有两点,

  • TCP客户端的模型
  • HTTP POST协议

先来看看我的TCP模型的实现


交代一下故事背景,国内某保险公司,最近上ILOG规则引擎项目,题外话,

对于保险里面的车险核保,真的是相当合适.据说,目前规则引擎最成功的就是ILOG了,我稍微看了一下他们的规则描述语言,感觉好傻啊,用中文描述,我觉得这东西要是可以用导图的那种方式,很发散的方式去处理一定很完美!

回到正题上,因为公司的核心业务系统是使用pro*c编写的服务运行于IBM AIX上面,并且通过中间件与前端通讯,怎么与java的ILOG规则引擎通讯呢?刚开始想着通过gSoap来实现c对web service的调用,但最后因为安装这个包肯定得通过系统管理员,相当麻烦,而且从来没有用过,不知道是否好用,所以ILOG那边增加一个DTO转换层,即将我们发送过去的xml转换成web services调用,并将返回结果也转换成XML;简单的说就是核心后台通过HTTP POST打包xml发送请求,并且规则引擎那边也返回xml来实现!

晕,走题有点严重!

其实无非要实现有两点,

  • TCP客户端的模型
  • HTTP POST协议

先来看看我的TCP模型的实现


http://fanqiang.chinaunix.net/a4/b7/20010913/0900001283.html

【 原文由 cpu 所发表 】
 
用过 WinSock API 网友们知道:WinSock 编程中有一很方便的地方便是其
息驱动机制,不管是底层 API 的 WSAAsyncSelect() 还是 MFC 的异步Socket类:
CAsyncSocket,都提供了诸如 FD_ACCEPT、FD_READ、FD_CLOSE 之类的消息
供编程人员捕捉并处理。FD_ACCEPT 通知进程有客户方Socket请求连接,
FD_READ通知进程本地Socket有东东可读,FD_CLOSE通知进程对方Socket已
关闭。那么,BSD Socket 是不是真的相形见拙呢?
 
非也! 'cause cpu love unix so.
 
BSD UNIX中有一系统调用芳名select()完全可以提供类似的消息驱动机制。
cpu郑重宣布:WinSock的WSAAsyncSeclet()不过是此select()的fork版!
 
bill也是fork出来的嘛,xixi.
 
select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组,
每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他
文件或命名管道或设备句柄)建立联系,建立联系的工

非阻塞socket 的连接(2009-03-14 15:10)

方案1:
int connect_socket_timeout(int sockfd,char *dest_host, int port, int timeout)
{
    struct sockaddr_in address;
    struct in_addr inaddr;
    struct hostent *host;
    int  err, noblock=1 , connect_ok=0, begin_time=time(NULL);
    log_debug('connect_socket to %s:%d\n',dest_host,port);                                                           
    if (inet_aton(dest_host, &inaddr))
          
//        log_debug('inet_aton ok now gethostbyaddr %s\n',dest_host);
        memcpy(&address.sin_addr, &inaddr, sizeof(address.sin_addr));
    }
    else
 

[转]Samba学习笔记(2009-03-05 18:14)
 
目录
1.Samba服务器的安装
2.Samba客户端的使用
3.Samba服务器配置
4.Linux中访问网上邻居
5.Smaba用户帐户
6.Smaba配置文件详解
7.访问控制
+++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++++++++++
1.Samba服务器的安装:
samba samba服务器软件包
smba-client samba客户端工具
smba-common 通用工具和库
安装samba依赖软件包
代码:
-->rpm -ivh rpmdb-fedora*.rpm-->
(rpmdb包含了所有软件包的依赖关系)
安装samba软件包
代码:
-->rpm -ivh --aid smba*.rpm-->
--aid参数自动解
samba 应用精华(2009-03-04 15:53)
作者:佚名  来源:不详  发布时间:2007-5-29 8:12:00
前几天为了用SAMBA,仔细地看了官方文档,终于解决以前的所有问题,现就热炒热买一下。

WINDOWS下的网上邻居使用是NetBIOS协议,LINUX下使用功能强大的SAMBA可以实现与WINDOWS机子共享。下面具体就我的理解具体说一下。

首先当然是你必须安装了SAMBA
#apt-get install samba samba-common smbclient smbfs

其实使用SAMBA分成两个方面,一个是linux机子上的资源给WINDOWS机子浏览,再一个是使用LINUX 机子浏览WINDOWS 的网上邻居。现在假设使用WINDOWS的机子的IP是10.0.0.10,共享目录是music,用户名是:share,密码是:yeah; 使用LINUX机子的IP是:10.0.0.20

一 . 从LINUX上获取WINDOWS文件的基本方法(有3种方法)

1. smbmount---普
POST模式下的文件上的文件上传,比如
<form method='POST' enctype='multipar/form-data' action='http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi'>
<input type=file name=upload>
<input type=submit name=nick value='go'>
</form>
这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:
curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi

一、              概念

1.         为什么要使用libcurl

1)        作为http的客户端,可以直接用socket连接服务器,然后对到的数据进行http解析,但要分析协议头,实现代理…这样太麻烦了。

2)        libcurl是一个开源的客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,支持Windows,Unix,Linux等平台,简单易用,且库文件占用空间不到200K

2.         get和post方式

客户端在http连接时向服务提交数据的方式分为get和post两种

1)        Get方式将所要传输的数据附在网址后面,然后一起送达服务器,它的优点是效率比较高;缺点是安全性差、数据不超过1024个字符、必须是7位的ASCII编码;查询时经常用此方法。

2)        Post通过Http post处理发送数据,它的

前言: 
    我们在这一节将要讨论linux下文件操作的各个函数. 
1.文件的创建和读写 
2.文件的各个属性 
3.目录文件的操作 
4.管道文件 

--------------------------------------------------------------------------------
1。文件的创建和读写 
    我假设你已经知道了标准级的文件操作的各个函数(fopen,fread,fwrite等等).当然如果你不清楚的话也不要着急.我们讨论的系统级的文件操作实际上是为标准级文件操作服务的. 
当我们需要打开一个文件进行读写操作的时候,我们可以使用系统调用函数open.使用完成以后我们调用另外一个close函数进行关闭操作. 
#include 
#include 
#include 
#include 

int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);

int close(int fd);

open函数有两