淘客熙熙

主题:【交流】有趣有益,案例分析 -- 懒厨

共:💬30 🌺47 新:
分页树展主题 · 全看首页 上页
/ 2
下页 末页
  • 家园 【交流】有趣有益,案例分析

    转眼西西河就四周年了,铁手的宗旨是有趣有益,正琢磨着搞些什么活动能配得上这四个字的,看到河友橡树村的问题,灵光一闪,不如就做个案例分析吧,估计河里有不少人是做应用软件开发的,分析一下,同行交流,总是有益的。

    河友橡树村要求的软件,分两步,

    初期的要求是这样子的

    我现在实验室的项目比较多,人也比较多,想把所有的数据都放到局域网服务器上,然后根据不同权限可以访问不同的数据,同时进行数据的计算,比较,整理。

    现在有什么比较方便的平台实现这个东西?

    数据库格式简单,基本就是数字和文本,日期,结果也不复杂,数据量也不大,每天生成几十K就不错了。

    未来的要求是这样子的

    不过需要考虑到明年开始运行的一个工业试验厂的情况。但是数据量也不是很大。其实工业数据分析的时候取样频率还比不上实验室的取样频率。工厂本身的运行参数是另外一个程序的事情了。工厂数据的麻烦就是这个必须是远程传输,我的厂子在陕西呢,我的实验室在南非。

    另外还要考虑以后容纳国内另外一个实验室的数据。

    已知情况:

    1)橡树村有一些VB基础

    2)橡树村能对SQL SERVER进行基本操作。

    小弟我就不客气,把砖抛出来,大伙不妨写写你们的方案,你们的方案,不必限定技术要求的,各位擅长什么,就写什么,大家交流一下。另外也不妨批评一下小弟的方案,指出不到之处。

    橡树村兄也不必客气,如果有需求变化,直接提出来就是,需求变化是正常软件开发的一部分,这样会给这个案例带来更多的乐趣。

    元宝推荐:铁手,
    • 家园 LIMS?

      这个最好要和其他部门有所协同。否则费时费力费钱,到头还要重来过。

    • 家园 太谢谢了

      这么好呀!

      如果能使用web server是最好的了。现在做研究的也需要满世界乱跑,如果可以在远程访问自己的数据,不需要特殊的客户端软件,是最好的。我个人8年前使用过ASP开发过东西,现在变化了多少?

      如果使用Web server,如何解决数据保密问题?公开了就可能受到攻击,特别是有商业价值的东西。是完全依靠服务器的设置,还是需要自己在程序里面进行设置?简单的用户名/密码对于想破解的人来讲没有什么作用。要是依靠物理网址限制的话,有的时候也很不方便,安全性也不好,我这里毕竟是大学,控制不这么容易。

      我能想到的是把终端数据处理和原始数据分开。说实话我的原始数据给人家看别人也看不懂,只要程序能够把我所需要的数据提供出来,最多生成个Excel文件,然后是用自己的客户端处理文件在进行分析就是了。这样是否可行呢?

      数据的格式有很多种,毕竟实验有很多种,除了运行数据,还有辅助数据等等,简单数了一下有十几类文件信息,很多互相还会相互关联,不使用数据库是管理不了的。

      数据量我觉得不大,一天几十K的样子。再大一些,一天应该超不过1M。毕竟全是数字信息,都是仪器分析的结果,要生成这么多的信息量还是不容易的。不过要是能够处理,我也想把仪器分析的原始数据放上来,这个数据量就会大不少,每天弄个几十兆都不难。不过要是明显增加成本,就算了。

      程序开发就俺一个人。好久没写这类东西了,在完全忘记之前,活动活动。所以就没有程序代码控制和项目管理的事情了。实在玩不转了,再去找外包。

      欢迎众多大牛支招呀!

      • 家园 如果要简单一点,一个database也就够了

        1. 数据存储

        安装下列任何一个支持SQL的database:Oracle, DB2, Sybase, MySQL, etc.主要工作在于数据库的设计,如果有可能最好多花点时间把某一类用户权限(user schema)所需要的数据集中在一两个独立的数据表,这样用户只需要一部分数据表的读取权限就可以满足需要,基本解决用户授权问题。

        2. 数据读取

        按我的理解,你的用户需求主要集中在数据读取,而数据处理则由用户自己使用第三方软件解决,这样一来可以使用简单的SQL query工具再加上一些SQL的知识就能解决问题了,以Oracle为例,只需要它自带的SQL*Plus就可以执行SQL,导出原始数据。这种解决方法不用编程,而且大多数数据库客户端软件包都自带SQL query tools,只需要给每个用户挨个安装客户端就完了。另一种方法是定义几个常用的SQL语句,把它们封装在web service或servlet里,只要上网开IE就可以导出数据,不过这就需要安装web server和一些必要的编程工作。

        3. 安全

        安全总的来说是人的问题,技术影响不大,既便是最简单的一个username/password的组合基本上就可以干掉90%的菜鸟黑客了,而真正的老鸟大部分钻的不是你的技术漏洞,而是管理人员的心理漏洞,说到这里就是另一个话题了,不用担心,先做起来,再慢慢一步步完善就好了,一个系统不打安全补丁是不可能的。

        • 家园 谢谢

          现在决定使用ASP.NET加上SQL server处理。功能主要在数据的输入和调用上面。

          安全机制目前先使用用户名密码方式,以后再增加。

          客户端目前完全不需要程序,但是可能以后提供一些数据分析的程序,这个用matlab写。

          • 谢谢
            家园 不客气

            其实我想要强调的是,象这类和数据库相关的程序,数据库的设计非常重要,如果有些问题一开始shortcut过去了,后期会造成非常大的麻烦。

            • 家园 是这样的

              其实程序没多少东西,关键在于数据库的结构,既要考虑到目前的要求,如何方便系统,还有考虑到以后的扩展需要。

              否则一旦有了新东西就要改数据库结构,那还不把人累死?

              再次感谢!

      • 家园 不客气

        您写了这么多好文章,我也很受益,还没多谢您呢!

        回到话题,以前要是用过ASP的话,现在当然就用ASP.Net了,编程的环境比以前好了很多,几乎可以说是近乎傻瓜软件了。两个问题值得注意一下,其一是应该先学一下.Net的原理和编程,其二是安全性的问题,假如对安全性的要求非常高,建议还是不要自己做,应该找专业人士来做。

        除了用Web Server的方式来开发,我还想到几种方法

        第一,是用Web Services的方式,简单的说就是,服务器提供服务,这种服务并不一定要由浏览器来用,也可以通过自己写得程序来用。举例来说,你的程序需要一号炉,在8月1号的所有温度纪录,那么,你可以先在服务器端,定义一个Web Method,有两个参数,一个是炉号,另一个是日期,你在客户端的程序,就只需要调用这个Web Method,就可以得到相应数据。好处是,你的程序,可以在有互联网的任何地方调用。安全性方面,Web Services应该有加密的Protocol的。

        假如您想简单,只用ACCESS开发,又想远程使用,有两种方法

        其一是可以使用Windows Remote Desktop,把软件都放在一台机器上面,通过Remote Desktop来运行

        其二,可以设置SQL Server接受远程访问,你的ACCESS程序,只需要设置好相应的IP Address即可

        这两种做法的问题是速度会较慢,另外还需要一个Static IP Address,可能要学校的网管协助才能提供。

        最后一种方法,你还可以定期把原始数据输出,加密,压缩,放在一个FTP 服务器上,在远处时,可以先下载,在自己的机器上分析。这种方法,较麻烦,但安全性会较好吧。

        这几种方法的安全性问题,小弟不是这方面的专家,还希望各位行家指正。

        • 家园 安全性应该可以在后期找专业人士专门做吧?

          我的印象里面,是可以找某个提供安全服务的公司,在原有程序和结构的基础上添加的。不知道是不是这样子。

          • 家园 对,这样也可以

            主要看对安全性的要求有多高了,假如有可能的话,最好还是先咨询一下,了解一些Best Practice。

            要是有河友提供些建议就好了。

            • 家园 我目前依赖的是学校内的网络服务人员

              不过我总觉得他们不大懂似的,做事情莫名其妙。

              有要求的时候再找外包好了。

    • 家园 如果只是那样的需求的话

      Visual Source Safe就足够胜任了。

      完全不需要有任何的程序代码啊

      而且适合未来需求扩展,Visual Source Safe本身就允许外源访问的

      • 家园 一直很困惑

        前面的帖子不少人都提到一个版本控制软件的应用,但我不觉得好用啊。还是举例说明吧。

        假设橡树村每天收到3个文本文件,这些文件纪录了3个炉的24小时温度变化。橡树村需要对比一下不同炉之间的温度差别,其中,一号跟二号炉的数据是公开的,每个用户都可以读的,但三号炉是新工艺,需要保密,只有指定用户才可以看。

        在这种情况下,我的做法是把三个炉的数据都先输入SQL SERVER,创建不同的View,然后让不同的Role读取各自的View就是。

        请教一下,在这种情况下,如何应用版本控制呢?

        • 家园 例子分析

          假设橡树村每天收到3个文本文件,这些文件纪录了3个炉的24小时温度变化。橡树村需要对比一下不同炉之间的温度差别,其中,一号跟二号炉的数据是公开的,每个用户都可以读的,但三号炉是新工艺,需要保密,只有指定用户才可以看。

          建立两个文件夹,其中一个存放一号和二号数据,所有用户都可以对一号和二号数据进行读取,另外一个设定权限就可以了,文件流的所有操作可以在WINDOWS下完成,再“拖”到版本管理软件中

          另外文件对比功能也可以由版本控制软件的“修改对比”功能来实现。

          用数据库来实现这样的功能的确可以,但是有点杀鸡用牛刀了。个人认为,在开发资源比较少的情况下---如果是学校的研究室那就另当别论了,学生实践嘛---发掘现有软件的实用化功能才是王道啊

          社会河蟹

分页树展主题 · 全看首页 上页
/ 2
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河