Archive for the ‘Uncategorized’ Category

Idea share: 基于文件共享方式的网络软件开发

Sunday, May 25th, 2008

一个很老的idea, 一直没引起什么共鸣,但自己一直没忘, 恰好前几天又考虑到了文件相关的一个问题,把这份email翻出来:

Re: 一个网络软件开发的新思路探讨February 09, 2003

寒假里考虑了一种网络软件开发的新思路, 初步考虑下来,感觉是可行的。 而这种方法一旦证实是可行并且效率足够高,将极大程度地降低网络软件开发的难度,而且应用越复杂,其优势越明显,势必对我们今后的发展带来重大的意义。

下面简要说明来供大家探讨,如果必要可以进行一些原型验证。

基本的原理:

=========

    通过网络文件系统(可以用多种现有协议实现NFS, WebFS, SMB, CIFS, 甚至基于http, ftp)和windows的网络支持,来把远程的资源模拟并且映射为本地的一个磁盘。 这样对远程的各种操作,可以全部通过基本的文件操作函数来变成对文件的读写操作。由于远端的模拟文件服务器由我们来实现,所以不但能处理文件,而且可以把内存、外设等全部映射为文件。  这个思路,主要来源于Unix系统的/dev/xxx的设计,以及mem map file等IPC机制的设计。

    这普遍适合于P2P, Client/Server型的应用, 但不适用于IP Phone, Video Conf类型的。

    如果采用这种方法,将对开发网络协作共享型的应用,IM类应用等产生巨大的帮助,因为开发和调试变得非常简单,可以轻松重用现有的其他软件(例如利用word, excel开发一个IM系统,不过发送的IM格式是word格式或execl格式)。 开发调试也很简单,用单机就能模拟网络环境进行调试,大部分应用,可以直接在文件系统上开发,然后加到网络文件系统中测试。

适用条件:

=========

    通过和Presence Service的结合,或者其他P2P方法(入JXTA.ORG的技术)的结合,peer和peer之间首先需要发现对方,才能使用本方法进行协作。

和传统方法比较的优势:

==================

    (传统方法指: 1. 网络协议实现; 2. RPC方法实现;)

    1. 简单:所有操作都变成文件操作, 不需要学习任何网络知识就能开发;

                越复杂的应用,越有价值;试想像一下实现一个支持复杂的文件发送,IM, 日程表管理,数据共享的应用,无论用那种传统实现方法,设计,开发,调试是多么复杂!

    2. 适用性强:一旦底层机制完成,以后所有项目都不需要修改,也不需要扩展;

    3. 可重用现有部件和应用。 利用word可以实现发送word格式的IM, 利用EXECL可以发送excel格式IM, 利用outlook可以发送email格式的IM, 利用IE, 可以轻松发送HTML格式的IM… 如果不采用这种方法,实现起来何其复杂!

    4. 同时适用于P2P和C/S结构

    5. 对于文件共享型,数据同步型的应用非常适合,而如果采用传统方式来实现文件共享和数据同步都要复杂很多,其实现的代码接近于这种新方法的底层代码的工作量。

需要克服的技术点:

==============

   已经证实了这些技术点都是可行的,只存在工作量问题。

    1. 网络文件系统技术的选择:目前看来NFS类型比较合适, SUN在NFS基础上的WebNFS可以参考,不知道是否有价值。 Microsoft最近提出的CIFS (Common Internet File System)是MS非常看重的技术,基本是SMB的改进,但还缺乏足够支持。

        初步考虑认为不能采用http, ftp等传输型协议,因为这些协议在实现seek和write操作方面过弱。

        我曾经独自从底层成功实现过NFS server,认为实现这类服务端的难度不大。

    2. windows virtual drive的技术:有两个选择,一种模拟成SMB协议,采用windows share的方法,把远程的网络文件系统map成为一个网络盘; 另一种采用DDK, 写一个模拟的设备驱动,使系统认为这就是一个存储介质。 两种利弊需要评估。

        不能使用Shell Name Space Extension来实现,因为Namespace extension只能实现expolorer中表现为一个folder, 并不是真正的文件系统,不能执行文件操作。

    3. 防火墙的穿越和安全性问题。必须保证能穿越fw才能提高可用性, 同时要能保证系统安全不被破坏。

评估需要的进行的方面:

==================

1. 是否确实能提高开发效率? 可以采用windows net share的方法来开发测试程序试验评估,多台PC各自按一定规则share出某个目录,其他PC可以访问,开发一个测试的应用,通过读取自己的本地目录来收消息, 通过写对方的目录来发消息,通过多人同时写某个对方的共享文件来测试协作性应用;这个评估只要设计有效,开发工作较少,结果能说明大部分问题;

2. 采用什么技术实现网络文件系统?什么技术实现virtual drive? 如何解决fw穿越?

3. 性能和效率的评估,主要考虑两点: (1)采用文件操作方法后实现协议的 网络传输效率; (2)多机协作时的服务端处理能力,和共享锁机制实现的效率;

——————————

我自认为这可能是一个了不起的创意! 一旦能成功,将改写网络软件的开发办法! 呵呵,请大家开通脑筋,帮我一起考虑考虑。 email虽然只发给了各位,欢迎转发给你认为有价值的公司内部人员来参加讨论。

mao

求助:需要英文版地震募捐海报…We can help to make a different!!

Friday, May 16th, 2008

拟定用于在公司内和公共场所使用,刚刚网络上没有搜索到合适的,哪位有或者能帮忙设计一下。

要求:

1、简洁、有视觉冲击性但不要太残忍 (目前我只能印A3幅面彩色)

2、文字不需要多,可以留空我来添加文字。

 

谢谢! We can help to make a different!

 

Updated(17 May):  感谢各位热心相助,已经做了一个并且付印了。

春节快乐!

Thursday, February 7th, 2008

春节快乐~!for everyone!

test

Monday, September 17th, 2007

test

这些天有些忙…

Friday, August 17th, 2007

这些天有些忙,而网络也有些问题,所以呵呵blog就很久没有更新了。

特此来报个到~~~  :)

Close
E-mail It