vulcan

低头做事,抬头看路

   :: 首页 :: 联系 :: 聚合  :: 管理
  41 Posts :: 7 Stories :: 28 Comments :: 0 Trackbacks

#

由于项目需要,需要同事的DotNet实现的客户端用我用Java写的API,以前都没有用过webservice,而是用进程控制的方法,先在DotNet开一个cmd.exe,然后向cmd.exe的输入流写如命令,进而启动java程序。方法是很简单,但是这样的集成,却稳定性不高,经常有java进程死的情况,检查了了n编程序,但是却一直没有发现同事的程序有什么问题。一直想用C#重新实现底层的通信API,不过一直没有时间;虽然这样集成有问题,但是也运行了大半年,只是维护工作量增大了,但是不知道最近为什么,数据的下载越来越不稳定,程序一天死几次。决定用webservice重新实现C#和java的互通,而不是格外找时间来用C#重写API。
使用webservice,其实过多的准备工作也不要,推荐两个IDE,集成了WTP的Eclipse和Netbeans6.用这两个工具,我从一个对webservice完全生疏的人,两天之内完成了系统的集成工作。Netbeans是基于JDK6的JWS实现,主要是靠Annotation,这点很类似DotNet中webservice的实现方法,并且根据我的理解在JWS中实际的WSDL可以是不存在的,而是在runtime时生成的,用Netbeans非常方便。不过,我们现在的所有的Java环境全部是JDK5,不想贸贸然引入新的环境,因此JDK6的JWS是不能用了。看看Eclipse。Eclipse在这个方面也不错,下载jee版的Eclipse3.3就内置了WTP,新建一个动态网站,然后就可以由两种方法方便的生成webservice了。第一种,先有类,生成wsdl;第二种,先设计wsdl,类似于java接口的设计,这里eclipse是可以有个图形化界面设计wsdl的,然后由此wsdl生成java类。不过我习惯第一种,先写好java类,测试完毕之后,然后直接发布成web service,axis是非常方便部署web service的,它内置的Servlet就可以把你实现的类当作一个bean来使用。还能根据webservice来生成自动的测试页面,不过不要太相信该测试页面,下面我就会说到原因。

由于系统的需要,我的这个webservice是需要维护状态的,因为它实际上是显示了一个通信API的web service,所以有一个会话的概念。在网上查了很久,但是都没有我的这种例子:Axis的服务端,DotNet的客户端,同时还要使用会话。不过看来一些资料还有Axis的Servlet的源代码之后,慢慢清晰起来,实际上Servlet就是把HttpServletRequest和HttpServletResponse存到了MessageContext中,对于每个客户可以用MessageContext.getCurrentContext()并且从中获取与当前会话相关的request和response,这之后的操作就方便了,这是Servlet API的内容了;而在DotNet客户端,由web引用生成代理类之后,只要给该代理类指定一个CookieContainer就可以维护状态了,记住一定要指定CookieContainer,否则每次连接到web service都会是一个新的sessionId,达不到我们要求维护状态的效果。

为什么我说不要相信Eclipse生成的Axis的测试页面呢?看看它的jsp源码就知道了,它把你的类当作一个bean来用,也就是该类并不是在实际的通过远程的web请求来使用了,也就是说它的MessageContext为null,自然也就无法维护状态了,我就是之前没有专门写客户端来测试,而是用它自动生成的测试页面来测试session吃了亏,大概卡了一个下午的壳吧,怎么弄MessageContext都是null。

顺便说个小tip,使用在我的这个web service接口中,希望也可以对其他人有用:如果要支持一个多用户,那么把每一个客户关联的对象:比如数据库的操作类(需要事务时)或者我这里的终端通信API,它的指令执行是有Context的,所以必然注定了要关联到每个用户。把该对象存入到session是可行的方案,但是如果你需要一个pool自动维护这些对象的life span时,实现一个连接池肯定比session有优势,但是怎么让它关联到每个用户了。看到网上有人在dotnet中实现的方案是生成该对象的GUID,该对象初始化后(比如在连接时)返回该GUID,然后每一个操作(方法)中都带上这个GUID参数,不过稍微想一下就知道,这种方案的弊端,时间上该GUID仅在服务端是用意义的,在服务端客户端之间传来传去,给每个方法都多了一个实际上并没有多大用处的参数。我们可以用sessionId来关联到该这一唯一用户。用Axis的可以在MessageContext中得到Session,这个session即是上是Axis对HttpSession的封装,但是从这个session已经得不到sessionId了。我们需要从MessageContext中的HttpServletRequest下手:
        MessageContext mc = MessageContext.getCurrentContext();
    HttpServleteRequest    req 
= (HttpServletRequest) 
                    mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
通过这个req可以有两种方法得到sessionId,一种是request.getSession().getId();一种是request.getRequestedSessionId(),分别得到了本次的sessionId还有上一次连接的的sessionId,第二个方法非常有用,如果是新连接,那么getRequestedSessionId()得到的是null值,而request.getSession().getId()每次都会返回本次连接的sessionid。所以我们的思路就明晰起来:通过判断request.getRequestedSessionId()是否为null决定是否初始化一个对象,并且把该对象用request.getSession().getId()获取的sessionId作为key存入到pool中。以后每次来了连接都取request.getRequestedSessionId(),并且从pool中取出该sessionId对应的对象,执行该对象相应的方法。这样就达到了web service的状态维护了。其实很简单,只要在DotNet客户端制定CookiesContainer就可以了。如:
System.Net.CookiesContainer cc = new System.Net.CookiesContainer();
MyService service 
= new MyService();
service.CookiesContainer 
= cc;


posted @ 2007-12-26 19:11 vulcan 阅读(1235) | 评论 (0)编辑 收藏

用aptitude装上Tomcat5之后是不能用的。因为默认的JDK没有包含sun的jdk1.5,tomcat可能都无法启动起来。需要在/etc/init.d/tomcat5中的jdk路径中加上新装的JDK1.5的路径。并且如果应用程序中有基于XML DOM的程序,那么还有可能出错。在/usr/share/tomcat5/common/endosed下面两个Jar包和Sun JDK1.5中的类冲突,把这两个Jar移出该文件夹就好了。另外,貌似现在Apache和tomcat的整合方便了许多,用JkMount,比几年前方便了很多。
下面是最简单的一种配置方法,不要自己去处理什么work.properties等等,也不用额外去处理安全设置。注意不要把Apache和Tomcat之间Alias到同一个目录。否则可能引发安全性问题,比如别人用*.jsP等非法文件名可以得到jsp源文件的。并且,如果你是一个混合了php等的多语言应用程序集成环境,从tomcat的8080端口也是可以下载php的源代码的。不过网上的这种漏洞百出的集成jsp和php的apache和tomcat整合方法,比比皆是。
#加入到httpd.conf的Virtual Host节或者全局设置
JkAutoAlias 
/var/lib/tomcat5/webapps/ROOT
JkMount 
*.jsp ajp13
JkMount 
*.action ajp13
JkMount 
/webwork/* ajp13
JkMount /
*/servlet/ ajp13


posted @ 2007-12-21 14:46 vulcan 阅读(173) | 评论 (0)编辑 收藏

我基本上没有用过KDE~我从5年前最开始用的RedHat开始,一种都是用Gnome,而用Gentoo的时候,由于机器配置不行用的FVWM+rox。偶然在网上一个人的Blog里面看到KDE4还有20天发布的消息,并且说是KDE4的很多新特性,稳定性和性能都会有很大的提高,所以在现在的Ubuntu上面装了一个KDE base,试用了一下。
总的评价来说,KDE很好了,不是传说中的KDE很容易Crash,也不是传说中KDE因为过于华丽而速度慢的问题,反而我的体验是两者没有明显的差别,并且KDE要显得稍微快一点,不过是不是新鲜感造成的偏爱我就不知道了:)。
通过进一步的Google,我了解到了现在并行KDE和Gnome程序,似乎都可以运用对方的风格,所以在KDE中运行Gnome的程序,其风格也是一致的。我记得以前用fvwm时,如果要使用GTK的程序,配置一个gtkrc,指定字体,图标,风格等,不过这些工作是不是Ubuntu发行版帮忙做好的,我就不想再去考证了,不过确实舒服。
对于其版权,我们作为使用者其实没有必要去追究,Linux下的QT也是GPL的。虽然开源需要一种精神,但是灵活处理也是一种很好的方法,比如我是个开源的爱好者,我作的开发工作很多都是与开源软件有关,并且不遗余力的在公司推广开源软件(不光是Linux),但是我在笔记本上就用Windows,本本自带的正版XP操作系统,装了一个Cygwin,足够应付我的学习工作还有娱乐了,其实XP也挺好的,至少,我现在还是觉得XP的图形界面整体性能还是比Linux下用Xwindows+Gnome(KDE)要略微好一些。并且可以免去一些配置问题,还有与其他的Windows兼容性问题解决,这样挺好的。所以我对于KDE的态度也是这样,QT是一个卓越的图形库解决方案,我们没有必要去苛责它是否完全自由。不过不得不提一下,由于版权问题,如果做闭源的行业专用软件,如果要在QT和GTK+库中间选,还是选择GTK+比较好。

posted @ 2007-12-20 14:38 vulcan 阅读(109) | 评论 (0)编辑 收藏

Eclipse Europa 3.3超级不稳定,经常会莫名奇妙的加载不了插件,以前用基于Eclipse 3.2的JbossIDE2.0Beta时有时有死的情况,但是没有现在的这么频繁,真不知道是新版本Eclipse还是我的新机器或者是JDK的问题。但是反倒NetBeans进入到6.0版本之后,已经比较对我的胃口了。6.0之前编辑和Eclipse没得比,连自动纠错都不行,自动Import都不行。也没有那么容易Crash。另外默认基于Ant构建,这样即使不开IDE也可以编译。虽然用Eclipse也可以建立基于Ant的构建,但是一直懒,不愿意写Build.xml,用Eclipse的工程就好了。但是构建起来,NetBeans有点嫌慢,Eclipse的增量编译体验还是不错的。不过说实话,Netbeans用得少,不知道是否真正用得多了也有其他的问题。但是这个Eclipse,总是要重新启动机器,甚至多启动几次才好,着实烦躁。
posted @ 2007-12-19 15:04 vulcan 阅读(116) | 评论 (0)编辑 收藏

昨天一个下午的时间,包括晚上加班,都没有把OpenVPN的问题搞定,从网上查的资料也都讲得不太明确,openVPN的HowTo读了N遍,也没有达到我的目的。昨晚躺在床上,突然想起,是不是防火墙的问题呢?早上来了,把Forward默认策略改为ACCEPT,搞定了,迅速调整了防火墙策略,搞定。
我要实现的目标很简单:在外网,可以用Openvpn登陆进来,并且可以访问内网内的所有服务器,并且VPN Server不是网关,而VPN Server有两块网卡,一块连接公网,一块连接公司内网。
各方资料显示只要做一个SNAT就可以了,不过怎么搞都是只能联通OpenVPN Server而不能联通VPN Server所在内网网段的其他服务器!
我设置的VPN的网络段是172.31.0.0/24,服务起来之后,在服务端路由表里面显示服务器tun的IP为172.31.0.1,网关为172.31.0.2;而在
客户端获得了一个172.31.0.6的地址,路由表里面显示网关为172.31.0.5.但是却无法ping通172.31.0.2还有172.31.0.5,之前从来没有用过OpenVPN,但是根据以前对路由表的理解,觉得这个网关怪怪的,所以晚上找资料就是找网关的问题。
晚上把思路理了一下,觉得是不是这两个是个openVPN的虚拟的网关?这么一想,那么就把注意力放到了防火墙的设置上。下面把防火墙关于VPN的设置总结一下:

#eth0 -- internet connection
#
eth1 -- intranet connection
#
turnoff all the connection first
iptables -P INPUT DROP
iptables 
-P OUTPUT DROP
iptables 
-P FORWARD DROP
#open udp port for the openvpn
#
allow client connect to the openvpn server
iptables -A INPUT -i eth0 -p udp --dport openvpn -j ACCEPT
iptables 
-A OUTPUT -o eth0 -p udp --sport openvpn -j ACCEPT
#allow tun in and out
iptables -A INPUT -i tun+ -j ACCEPT
iptables 
-A OUTPUT -o tun+ -j ACCEPT
#allow vpn to the intranet
iptables -A FORWARD -i tun+ -o eth1 -j ACCEPT
#the following one is very important
#
if you miss this one, you will not connection
#
to the servers in you intranet
iptables -A FORWARD -i eth1 -o tun+ -j ACCEPT
#DO NAT
iptables -t nat -A POSTROUTING -172.31.0.0/24 -o eth1 -j MASQUERADE
posted @ 2007-12-19 11:30 vulcan 阅读(5393) | 评论 (6)编辑 收藏

不是内核bug也不是iptables的原因,问题出在了新内核的配置上。在2.6.20之后的内核,在netfilter的配置以前在ipv4 netfilter configuration中的相当一部分移到了core netfilter configuration中,在core netfilter configuration中配置了state的match之后,另外必须在ip: netfilter configuration中的conntract也选上,否则就会出现本文标题中的invalid argument错误。这个问题,困扰了我很久,最终在国外的一个maillist上找到了原因。这个问题多出现在内核升级之后,对于很多发行版本,由于把所有的feature都编译成了模块,所以不会出现此问题。希望可以帮到大家。
posted @ 2007-12-16 19:28 vulcan 阅读(2311) | 评论 (1)编辑 收藏

自以为是个Gentoo老手,可惜用了几年的Gentoo都是在我从学生时代带来的老机器,毒龙1.2,256Ram,IDE硬盘上面,昨天在一台Sata硬盘的电脑上装Gentoo遇到了不少问题,现在写下来,给其他同学做下参考;
(1) LiveCD支持是没有问题的,安装都顺利
(2) 内核编译支持Sata。在这个问题上,我被困扰了很久,通过lspci我知道sata芯片类型,编译了,在grub中配置root=/dev/sda3,启动不了,后来尝试性的改为hda才引导了,但是取到了最后检查磁盘的时候不成功了,提示Unable to open file or directory /dev/sda3。提示输入root密码进行维护,输入进去,才发现udev没有生成/dev/sda*!但是却有hda*存在,于是改fstab中所有的sda到hda,于是系统启动成功。我以为可以了,于是回去了。今天来上班,总觉得心里不爽,并且也发现了,磁盘的DMA打不开。所以继续google,发现有人和我问题一样,不过都没有解决方法,搜了好久,有个人写了一个关于gentoo在一个dell机器上安装的心得,说是要禁用内核中的generic/default IDE support,否则sata硬盘会被认成hda.于是重新编译了内核 ,改了fstab和grub配置,系统启动成功,这个时候/dev/sda*生成了。测试了一下,磁盘IO增加了10倍!
(3) hdparm对sata设备的支持有限,可以查看信息,测试,但是却不能设置DMA等参数,所以在gentoo的/etc/conf.d/hdparm中sata_all_args=""


posted @ 2007-12-13 14:33 vulcan 阅读(330) | 评论 (1)编辑 收藏

造成人与人之间命运悬殊的,往往不只是因为谁比谁更卖命或谁比谁聪明,重要的是因为谁有目标及谁的目标更清晰。

  既然如此,现在不妨让我们先花上几分钟思考一下:

  我有没有目标?

  我忙吗?

  我在忙些什么?

  我是在为了自己的目标而忙吗?

  我忙得来不及思考自己的目标吗?

-----

将工作分类。

将相似的零散事务集中处理。

创造和利用“整块”时间。

尽量不要将时间浪费在等待中。

充分利用等待的时间,安排好随时可进行的备用任务。

一次专心做一件事,并且用最快的速度完成。完成一项工作后,立刻进入下一项工作。

养成第一次就把事情做对并做到位的工作习惯。

每个人的时间都是有限的,但是每个人的工作效率却是不同的,关键就在于我们是否能对时间进行合理安排和运用。合理运用以上方法,我们就能成为时间的主人。

posted @ 2007-12-12 09:13 vulcan 阅读(119) | 评论 (0)编辑 收藏

公司的服务器都是用的Ubuntu LTS,原因很简单,在我们这里没有哪个发行版有Ubuntu这么好的源,用cn99的源,速度很快,速度到M级,并且我作为主要的维护人员,我自己桌面操作系统上用的就是Ubuntu,这样维护起来比较方便。之前引入Linux系统时,也选择过,最终结合各种因素选择了Ubuntu。其实Debian也挺不错的,在cn99也有源,但是我之前没有使用过也就算了。对于Redhat系列的东西,最早使用的Linux,但是对RPM没有好感,出了yum之后,在这边也苦于没有合适的源,其实CentOS应该是很不错的,人家RHEL靠Linux实现了盈利了,Redhat在企业服务器这里肯定是有经验。
这次是要做个防火墙兼反向代理服务器,ubuntu说实在的,可定制性太少,即便是装完命令行最小系统之后,还是有好多不需要的东西,所以对于防火墙不想使用ubuntu了,但是如果时间不允许,那么还是会考虑用Ubuntu,毕竟维护也有统一性。于是把目标转向了几个定制性比较高的系统上面。Gentoo,使用时间最长的一个系统,但是在这边同样源不太好,想当初在学校教育网内用tsinghua的源,那叫一个爽字。一般来说用Gentoo做服务器还是有风险的,(1)装系统编译费时间;(2)升级(主要是为了安全性)会经常的有很多包更新,本来可以只是更新安全公告里面出现的软件包,但是以前用Gentoo养成的习惯,看不惯有没有升级的包。不过如果做一个单一行的服务器,上面要装的软件比较少的,所以更新和编译应该不成问题,所以还要努力找找合适的源。ArchLinux,使用过几天,当初在新电脑上死也装不上Ubuntu的时候用过,但是后来发现它也在我的新电脑上不能生存,于是卸掉了。不过看源,似乎国内的源都是个人网友爱好者架设的,不太牢靠。另外据说作为服务器来讲还是不太稳定,这是LinuxSir上一个架ArchLinux源的哥们说的。另外,从网上找ArchLinux的SeLinux资料也没有,只看到了一个抱怨装不上的帖子。再加上我对ArchLinux不熟,所以也就不坚持了。接下来考虑了BSD系统,FreeBSD和OpenBSD,OpenBSD号称世界上最安全的操作系统,但是它的光盘没有,要用网络安装,看来网络依赖太大,所以不考虑了;FreeBSD,从N年起一直对它跃跃欲试,但是却还没有真的往自己系统上装过。不过它是以稳定的网络操作系统为卖点的,并且Gentoo的Portage机制也是师从于它,所以对它真的向往,不过国内的源是否满足要求还是要考察,也许装装试试就知道了。现在把选择范围缩小到Ubuntu,Gentoo和FreeBSD。倾向于gentoo,不过选择依然很难。另外要做为服务器操作系统,系统管理的文档必须要齐全,在这点上Debian,ubuntu,gentoo,freebsd都非常的棒。

原来想,无所谓了,没有谁比谁绝对优秀,并且在防火墙的应用领域都还不错,谁的源快就选择谁吧,不过还是决定多看看资料,不能那么随便。
最终选择Gentoo:
(1). 一个老外关于Mysql在Linux或者FreeBSD运行的总结:If you don't have a preference, use Linux. You'll be happier. Trust me.
(2). 可以使用SeLinux提高系统安全性,它的Hardened kernel是专为服务器优化的,这个方面不吃亏
(3). 我有Gentoo Linux几年的使用经验;虽然使用FreeBSD又是一个学习的机会,但是在生产环境中还是不能太自信
(4). 又突然想起Gentoo以前的领导者是从FreeBSD转过去的,他之前好像也是FreeBSD的活跃开发者,这些在gentoo的历史里面可以看到
另外,FreeBSD要到7.0才会支持Sata硬盘,现在虽然是在一台廉价PC机上实行,但是新进来的高性能PC很可能就是Sata硬盘。不过可以肯定的是FreeBSD在快速演化,还是值得期待的。之前考虑FreeBSD主要是因为网上宣称的在高负载条件下的性能还有TCP/IP协议栈,这对于反向代理服务器和防火墙应用非常重要;但是却好像只是和Linux2.4内核的比较的,但是2.6内核都已经稳定好几年了。不管Linux是否真的现在已经优越了,毕竟我已经有Linux多年的经验了,而我也不是要做防火墙产品,所以也不担心GPL协议的问题。还是对FreeBSD存在着向往,但是时间有限,如果真要用到FreeBSD的时候再学习吧,学了不用也会忘。
------12日更新------
不知道我为什么下意识的把Ubuntu排除在外,因为它是二进制发行包,其实所谓可定制性,我只是希望系统上只有我需要开启的服务,而其他的不该有的东西都不要开,这其实也是可以定制的,把那些服务关掉就可以了,而装上了就装上了,现在的电脑也没有到节省到那些软件也不能多装的地步,做系统管理有洁癖可不行,会给自己太多的麻烦。并且所有的服务器用统一的版本便于维护,服务器多起来了之后,甚至可以维护一个本地源,供这些机器使用。开始准备实施Gentoo时,突然有了上面的想法。一年多来,Gentoo世界已经发生了很多的变化,在stage里面已经正式出现了hardened stage了,于是在网上查了下它的资料,因为如果是服务器,那就一次性的全部配好,为安全打好基础。但是从国内外论坛上得到的消息,似乎hardened stage比较容易出问题,突出体现在glibc的问题上。根据之前用Gentoo的经验,在gentoo的维护中偶尔还是要出点小状况的,而解决这些状况很多时候就需要重新编译,这可能会导致不必要的down机时间。而glsa似乎用起来也不是怎么爽,而在ubuntu中,可以配置自动更新security软件仓库中的软件包,达到自动更新的效果。开始有点畏首畏尾Gentoo的安装和维护了。在一个企业里面引入多个linux发行版不是太明智的行为,不是每个人对系统管理都有着执着的热情,引入复杂度太大的Linux,不便于后续的人员接手和培训。这不是大学里面了,没有那么多时间去研究,这对于我和别人都一样,追求时效性才是准则。之前刚刚用Ubuntu好像是被铁链困住了双脚,没有用Gentoo那么自由,而且出了问题也不知道怎么解决,不向Gentoo用个LiveCD启动机器就什么都解决了。后来用了Ubuntu的rescue盘之后,其实也就大同小异。启动机器,挂载,chroot到根分区就可以了。ubuntu有现成可用的debian的文档资源,这些都是一些增强系统管理自信心的东西。现在是没有太多时间花在操作系统本身的配置上,如果真的有必要了,再换也不迟吗,所以就也先ubuntu吧。
------13日更新----
跑到机房去开始装机器,还是忍不住想装Gentoo,这毕竟是个用于防火墙和VPN服务器的机器,我想用我熟悉的发行版本。从网上找到的mirror.pacific.net.au镜像网站速度还可以,下载平均速度有500k/s,如果再开上parallel-fetch,几乎就没有等待下载的情况了。而从stage3装起,装服务器,其实也没有多少东西需要编译,很快就完成了。用gentoo,久违的感受,colorful的字符界面,配置文件的vim加亮显示,很是舒服。不过我仍然倾向于用gentoo的命令行界面,或者像fvwm,flubox等轻型图形界面环境,如果要编译其他的大型软件,我倒是真的不太愿意。尽管发现了一个比较快的镜像,但是在办公室还是愿意使用Ubuntu,它让我可以花更多的时间专注在软件开发本身而不是开发环境上,并且发行版本之间的差别对于我的影响,现在很小了。不过在笔记本上,还是想装个gentoo,因为不想让ubuntu破坏我的MBR,上面有个正版XP的自动恢复呢,据说破坏了MBR就无法用F11键激活了,我装gentoo可以改用个grubfordos启动起来,这是我要的效果。虽然cygwin基本上可以替代Linux的开发环境,不过它始终是一个port过来的运行在windows内核之上unix环境,涉及到linux内核,防火墙等等东西就没有办法用了,还有就是really miss gentoo了。gentoo这两年的变化真是太大了,今天看到的分布式编译,cccache,并行下载等等特性着实让我感到落伍了。

posted @ 2007-12-11 15:28 vulcan 阅读(333) | 评论 (0)编辑 收藏

这两天参加了Amadeus在我们总部的一个关于新一代旅客服务系统的Presentation,感觉还不错,不过我想国内航空公司要脱离TravelSky而转而用一个国外公司的产品,并且从座控,订座,离港全部切换终究有点冒险。这个系统相对于现在TravelSky的Unisys系统,主要的改进是利用现在的新技术和能力,把系统迁移到了开放系统(Linux, Unix),并且用户界面从老的TPF(命令行)方式编成了图形化的界面。这个系统据说投资了3亿美元进行研发,并且现在有两个大型航空公司已经使用了这个系统,与几大航空联盟的谈判也在进行中。其实我倒是希望航信能做得更好吧,我支持民族企业。不过Amadeus的Altea系统的架构比较有意思:现在仍然是关系数据库和Unisys数据库兼容的模式,但是未来的架构是这样的:底层数据库是用的Unix(Solaris和Hp unix)系统运行着Oracle(那边的专家解释说现在Linux对Oracle的支持还不及Unix),应用层面全部都是Linux,而在用户界面的程序全部基于Windows开发,把现在三大系统全部用上了。所以他们形容自己的系统为Open System,看来,应用Unix和Linux是一个卖点,不过用Linux也是必须的,主机是IBM设计的,有1000个cpu core,2TB 内存。其他的一些系统参数都是惊人。这种机器看来还只有Linux能在上面运行吧。我还具体问了一下接口的问题,说是提供了WebService方式公布API,这一点对于我们开发人员就比较好了,现在航信的数据提供给我们,我们要采取PNR文本分析的形式转存到数据库中,我是做过这个工作,我开发了分析程序,为了尽可能智能化,采用了基于正则表达式的方法,不过有些
PNR的格式还不是特别规整,有点时候就会出错,虽然情况比较少,不过还是一件比较郁闷的事情。
posted @ 2007-11-27 19:13 vulcan 阅读(209) | 评论 (0)编辑 收藏

仅列出标题
共5页: 上一页 1 2 3 4 5 下一页