精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-07
最后修改:2011-02-07
好几年前,论坛中有讨论到采用“客户端用delphi写,服务器端用java写”的异构语言方案,关于这个方案我看了很精彩,基本谈清了思路,缺少的是详细的解决方案以及代码实现!公司有个项目,客户端有很复杂的操作,尤其是三维地理信息的运用,完全使用B/S结构到目前为止基本不能实现客户的要求,介此,研究决定采用Delphi作为客户端,服务器端采用J2EE来实现,一来完成客户的需求,二来为下步全部升级为B/S结构做充分的准备工作! 看了JE上对Delphi、Java异构语言做C/S结构的精彩讨论,初步决定Delphi、Java直接采用Json数据来交换数据,采用HTTP协议,可结合安全套接字实现交换数据安全性,服务器端通过json-rpc方式export远程调用接口,结合delphi indy session控件实现cookie机制。Java端采用Spring3+JPA作为基础结构,使用JabSorb作为交互基础框架,客户端采用Delphi Indy组件结合JSON Toolkit框架完成JSON的数据解析。 由于是第一次采用这种开发方式,很多初级问题都需要解决,初步提出以下需要解决的问题: 1、Delphi如何像服务器端发送并读取数据; 2、http协议是否能够满足数据的安全性 3、delphi客户端的图文混编编辑器如何实现? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-02-07
erikchang 写道 好几年前,论坛中有讨论到采用“客户端用delphi写,服务器端用java写”的异构语言方案,关于这个方案我看了很精彩,基本谈清了思路,缺少的是详细的解决方案以及代码实现!公司有个项目,客户端有很复杂的操作,尤其是三维地理信息的运用,完全使用B/S结构到目前为止基本不能实现客户的要求,介此,研究决定采用Delphi作为客户端,服务器端采用J2EE来实现,一来完成客户的需求,二来为下步全部升级为B/S结构做充分的准备工作! 看了JE上对Delphi、Java异构语言做C/S结构的精彩讨论,初步决定Delphi、Java直接采用Json数据来交换数据,采用HTTP协议,可结合安全套接字实现交换数据安全性,服务器端通过json-rpc方式export远程调用接口,结合delphi indy session控件实现cookie机制。Java端采用Spring3+JPA作为基础结构,使用JabSorb作为交互基础框架,客户端采用Delphi Indy组件结合JSON Toolkit框架完成JSON的数据解析。 由于是第一次采用这种开发方式,很多初级问题都需要解决,初步提出以下需要解决的问题: 1、Delphi如何像服务器端发送并读取数据; 2、http协议是否能够满足数据的安全性 3、delphi客户端的图文混编编辑器如何实现? 1、建议直接用ws或rest 2、使用ssl或者 ws-security 两方面的安全性,基于用户权限的访问,传输过程的加密 3、嵌入一个webbrower之类的activex |
|
返回顶楼 | |
发表时间:2011-02-07
kimmking 写道
erikchang 写道
好几年前,论坛中有讨论到采用“客户端用delphi写,服务器端用java写”的异构语言方案,关于这个方案我看了很精彩,基本谈清了思路,缺少的是详细的解决方案以及代码实现!公司有个项目,客户端有很复杂的操作,尤其是三维地理信息的运用,完全使用B/S结构到目前为止基本不能实现客户的要求,介此,研究决定采用Delphi作为客户端,服务器端采用J2EE来实现,一来完成客户的需求,二来为下步全部升级为B/S结构做充分的准备工作! 看了JE上对Delphi、Java异构语言做C/S结构的精彩讨论,初步决定Delphi、Java直接采用Json数据来交换数据,采用HTTP协议,可结合安全套接字实现交换数据安全性,服务器端通过json-rpc方式export远程调用接口,结合delphi indy session控件实现cookie机制。Java端采用Spring3+JPA作为基础结构,使用JabSorb作为交互基础框架,客户端采用Delphi Indy组件结合JSON Toolkit框架完成JSON的数据解析。 由于是第一次采用这种开发方式,很多初级问题都需要解决,初步提出以下需要解决的问题: 1、Delphi如何像服务器端发送并读取数据; 2、http协议是否能够满足数据的安全性 3、delphi客户端的图文混编编辑器如何实现? 1、建议直接用ws或rest 2、使用ssl或者 ws-security 两方面的安全性,基于用户权限的访问,传输过程的加密 3、嵌入一个webbrower之类的activex 1、不看好webservices,太重量级了,很多事情复杂化了,这样不利于软件开发进度控制,rest呢,应该是居于B/S的吧 2、安全方便考虑采取证书,同时在服务器端采用Spring Security控制权限,应该能够满足要求 3、拒绝ActiveX
看了一下Indy组件,同时做了一些小尝试,初步看来,使用IdHttp组件可以完成表单的Post功能,JSON-RPC可以在客户端解析,没有做大量数据的测试,期待有过类似经验者给予指导! |
|
返回顶楼 | |
发表时间:2011-02-07
erikchang 写道 kimmking 写道
erikchang 写道
好几年前,论坛中有讨论到采用“客户端用delphi写,服务器端用java写”的异构语言方案,关于这个方案我看了很精彩,基本谈清了思路,缺少的是详细的解决方案以及代码实现!公司有个项目,客户端有很复杂的操作,尤其是三维地理信息的运用,完全使用B/S结构到目前为止基本不能实现客户的要求,介此,研究决定采用Delphi作为客户端,服务器端采用J2EE来实现,一来完成客户的需求,二来为下步全部升级为B/S结构做充分的准备工作! 看了JE上对Delphi、Java异构语言做C/S结构的精彩讨论,初步决定Delphi、Java直接采用Json数据来交换数据,采用HTTP协议,可结合安全套接字实现交换数据安全性,服务器端通过json-rpc方式export远程调用接口,结合delphi indy session控件实现cookie机制。Java端采用Spring3+JPA作为基础结构,使用JabSorb作为交互基础框架,客户端采用Delphi Indy组件结合JSON Toolkit框架完成JSON的数据解析。 由于是第一次采用这种开发方式,很多初级问题都需要解决,初步提出以下需要解决的问题: 1、Delphi如何像服务器端发送并读取数据; 2、http协议是否能够满足数据的安全性 3、delphi客户端的图文混编编辑器如何实现? 1、建议直接用ws或rest 2、使用ssl或者 ws-security 两方面的安全性,基于用户权限的访问,传输过程的加密 3、嵌入一个webbrower之类的activex 1、不看好webservices,太重量级了,很多事情复杂化了,这样不利于软件开发进度控制,rest呢,应该是居于B/S的吧 2、安全方便考虑采取证书,同时在服务器端采用Spring Security控制权限,应该能够满足要求 3、拒绝ActiveX
看了一下Indy组件,同时做了一些小尝试,初步看来,使用IdHttp组件可以完成表单的Post功能,JSON-RPC可以在客户端解析,没有做大量数据的测试,期待有过类似经验者给予指导! 后台使用ss做权限系统,需要在客户端中保存session,session的保存和传递如何实现最合适又是摆在面前的一个问题! |
|
返回顶楼 | |
发表时间:2011-02-07
delphi里的图文混排编辑器很多的
可以到这边看看 http://www.2ccc.com/downloads.asp?subcatalogid=209&pageid=1 你说的session问题,建议你继承indy http的组件自己自定义一个,然后在自定义组件里处理这些细节问题。 |
|
返回顶楼 | |
发表时间:2011-02-08
最后修改:2011-02-08
前年做过一个delphi +python django的原型,使用的是delphi superobject +ms xmlhttprequest, lz第一个问题应该没什么问题。 这个连接可以参考一下 http://theroadtodelphi.wordpress.com/2010/12/04/using-the-google-translate-api-v2-labs-from-delphi/
第二个问题可以通过自定义协议/https或使用一些第三方的协议,如phprpc之类的.这个安全处理理论上同浏览器中用js调用服务端所需要的安全处理是类似的 第三绝对是delphi的强项,我知道的有richview和wptools,其他的应该还有很多,既然用delphi了,嵌入office都不是问题了 会话就很简单了,自己处理也一样,无非是在服务器端维护一个guid的列表,在所有的方法中传递guid而已(通过类体系简化这个操作) 另外,delphi的数据绑定体系主要是tdataset,所以你要建立个自定义的jsondataset来处理绑定,最好能抽象化并同服务器端数据更新结合起来,这可能需要几天的工作量,不过以后就轻松了 不过我最后还是使用的全delphi方案,用了activeform+桌面和remobjects dataabstract,使用了动态编译程序下载的模式,维护不同语言感觉会很累 |
|
返回顶楼 | |
发表时间:2011-02-08
做过一个项目,是.Net WCF + Delphi COM+, 非常成熟的应用,不过跟楼主的方式相反:.Net做网站的Client端,Delphi做Server端。
不过仍然看好Web Service的应用,毕竟是成熟项目,并没感觉到有多笨重。 |
|
返回顶楼 | |
发表时间:2011-02-08
json是给浏览器用的,这种情况的异构系统交互,并且你打算将来让浏览器也可以交互,ws才是正道。
当然了,如果不打算兼容浏览器了,各种更高效的通信框架一大把呢,ice或者干脆google protobuf |
|
返回顶楼 | |
发表时间:2011-02-08
我觉得如果你做CS的话,没必要用HTTP协议了,可以自己定义一些协议,这样可以做到尽可能的减少协议信息里面的冗余内容,提高效率。
|
|
返回顶楼 | |
发表时间:2011-02-08
最后修改:2011-02-08
引用 看了一下Indy组件,同时做了一些小尝试,初步看来,使用IdHttp组件可以完成表单的Post功能,JSON-RPC可以在客户端解析,没有做大量数据的测试,期待有过类似经验者给予指导!
没啥问题啊。就是多线程不要共用一个组件。或者把IdHttp包装一下,按线程创建。 session你可以自建表。也可以利用http header 的cookie来维持传统的http session |
|
返回顶楼 | |