理论上都是可以的,只是在开发时间、代码维护、成本等各个方面的平衡下,不是一个好的方案delphi可通过 socket、webservice、http都能交互

解决方案 »

  1.   

    嗯,我们以前做过系统,就是使用的这样一个方案。中间层是J2EE的,表现层有基于浏览器和Delphi客户端的两种。J2EE中间层与Delphi客户端之间是使用的webservice技术交互,只有极少数功能点设计大批量数据的直接使用http传递数据(由于webservice效率较低)。这么做的原因是这些数据必须通过互联网,而不是局域网,所以只能使用http协议。要注意的是数据的加密,也就是数据在互联网上传递的安全问题,如果不考虑这些的话会更简单。再就是Delphi客户端要注意,有可能客户端是通过http代理的,所以客户端还要考虑http代理的设置。
      

  2.   

    我们公司的产品现在都是用delphi开发的基于c/s架构,现在新的产品要做c/s和b/s的,我们对怎么做成b/s的也不熟悉,就知道有个J2ee,倒是想能不能做成这样的:中间层为j2ee,客户端可以有用ie浏览,也可以用delphi做成客户端的exe文件,不知道能不能实现这样的架构,公司等于是要一个报告,能不能做成这样,以及这样做的风险有怎样,由于自己也不懂,所以来请教高手了
    ---------------------------------------------
    不是高手,先忽悠几句:
    前段时间,公司的还程序需要将原有的b/s的gui,改为web的gui,且要求应用所有平台.
    现方式是applet界面(前台比较麻烦),web容器tomcat,调用web service,service方法由c/c++代码实现也是就是jni. 但原来的c/c++方法需要按jni规范格式修改.改动道也不算大. 但不可能完全使用原代码. 
      

  3.   

    谢谢各位 
    我在想 是不是c/s和b/s分开来就更好了 
    像那种大数据量查询并且要在客户端有强大的展现方式就用delphi 开发成c/s
    简单一点的,但用户比较多的就用b/s架构?
    如果要能用ie浏览,又能用delphi客户端操作 J2EE这个中间层是不是很难封装?
      

  4.   

    个人认为,用浏览器还是用客户端主要取决于客户的使用方式。一般而言,使用者是受理、前台、工作台等这样的频繁操作者,而且操作比较烦杂,那么建议使用客户端应用程序;如果是外部查阅、简单统计查询、上级查看等非平时工作者使用,那么建议使用浏览器模式。这二者是互为补充的,各自优点不同,可适合于不同场合,它们的功能可以重复或者不重复。至于J2EE的中间层是否难封装,这个要看具体的应用,但一般而言都不太难的,即使有难点,也只是一两个功能点,而且应该是可以得到较好解决的。浏览器端就不需要说了,如果使用客户端的话,主要要解决的问题就是通信问题,因为不是普通局域网的C/S两层问题,那么与J2EE服务器的通信就要利用某种网络协议通信,当然,这些无论Java或者Delphi都有了现成的组件,使用就可以了。注意,要是使用HTTP协议的话,除了上面谈到的注意点外,还有就是Http本身是短连接的,如果一些需要长连接的地方则要变化一些方式,比如:原本是服务器有消息时直接通知客户端的,要变为客户端每隔一定时间主动轮询服务器等等。另外,AFer198215(甜咖啡) 说得对,有些地方可以使用JNI技术,Delphi也有专门的做法可以使用JNI与Java交互,并非只有C/C++能够做,我们原来确实使用过的,这个没有问题。但是,JNI的做法是本地(同一台机器上)Java和Delphi的交互,但是这个情况对于一般的分布式三层结构来说可能性不是太大,^_^。
      

  5.   

    我以前做过,用socket,太麻烦了!
      

  6.   

    嗯,我们以前做过系统,就是使用的这样一个方案。中间层是J2EE的,表现层有基于浏览器和Delphi客户端的两种。J2EE中间层与Delphi客户端之间是使用的webservice技术交互,只有极少数功能点设计大批量数据的直接使用http传递数据(由于webservice效率较低)。这么做的原因是这些数据必须通过互联网,而不是局域网,所以只能使用http协议。要注意的是数据的加密,也就是数据在互联网上传递的安全问题,如果不考虑这些的话会更简单。---------------------------
    大数据量是多大 ? 大概有多少兆啊?
      

  7.   

    其实比较常用的就是webservice,不管用谁先作个webservice,然后另一个通过wsdl访问.