- 程序有所改变。发帖如还有问题请报告
- 【征集】西西河的经济学,及清流措施,需要主动参与者,『稷下学宫』新认证方式,24年网站打算和努力目标
主题:【交流】有趣有益,案例分析 -- 懒厨
转眼西西河就四周年了,铁手的宗旨是有趣有益,正琢磨着搞些什么活动能配得上这四个字的,看到河友橡树村的问题,灵光一闪,不如就做个案例分析吧,估计河里有不少人是做应用软件开发的,分析一下,同行交流,总是有益的。
河友橡树村要求的软件,分两步,
初期的要求是这样子的
我现在实验室的项目比较多,人也比较多,想把所有的数据都放到局域网服务器上,然后根据不同权限可以访问不同的数据,同时进行数据的计算,比较,整理。
现在有什么比较方便的平台实现这个东西?
数据库格式简单,基本就是数字和文本,日期,结果也不复杂,数据量也不大,每天生成几十K就不错了。
未来的要求是这样子的
不过需要考虑到明年开始运行的一个工业试验厂的情况。但是数据量也不是很大。其实工业数据分析的时候取样频率还比不上实验室的取样频率。工厂本身的运行参数是另外一个程序的事情了。工厂数据的麻烦就是这个必须是远程传输,我的厂子在陕西呢,我的实验室在南非。
另外还要考虑以后容纳国内另外一个实验室的数据。
已知情况:
1)橡树村有一些VB基础
2)橡树村能对SQL SERVER进行基本操作。
小弟我就不客气,把砖抛出来,大伙不妨写写你们的方案,你们的方案,不必限定技术要求的,各位擅长什么,就写什么,大家交流一下。另外也不妨批评一下小弟的方案,指出不到之处。
橡树村兄也不必客气,如果有需求变化,直接提出来就是,需求变化是正常软件开发的一部分,这样会给这个案例带来更多的乐趣。
对前期的要求,客户端用ACCESS,数据库用SQL SERVER.做开发的时候,可以在开发的机器上,用SQL SERVER的免费版。开发完毕之后,把数据库移植到正式的服务器上。
对于权限的要求,可以设置不同的SQL SERVER Role,让不同的人看不同的Table/View。
对于每天新增加的数据,不知数据格式,假设是简单的固定文本格式,可以用Bulk Copy,在服务器上设置一个任务(Control Panel -> Scheduled Tasks),在固定的时间把数据输入数据库。
假如数据格式复杂,可以用SQL SERVER 的 Data Transformation Services (DTS)处理后再输入。 (SQL SERVER 2005 有同样的工具,但不叫 DTS, 忘了叫啥了)
这个方案是基于用户不多,要求不高的假设,版本控制,就忽略了。
对于第二期的要求,有两个假设。
其一是假设客户端没有变化,仅仅是有新的数据要输入,解决方案就很简单了,让网络管理员设置一个FTP Server,让远处的数据提供者把数据上传过来,定时或者手动把数据抄入数据库即可。
第二个假设,是客户端有较大的改动,数据的分析及处理很复杂,而且需要远处的即时数据(Realtime Data)。这种开发就比较有趣了。我会把Access移植到VB.Net (或者 ASP.Net,假如想做Web Based的应用程序,好处是远处的用户也很容易使用)。另外,远处还应该设置服务器,来提供这边所需的Web Service。
假如是只需要两三个程序员的功夫,用Visual Source Safe来做源码的版本控制就足够了。如果是二三十个程序员的开发,我会推荐Rational ClearCase.
最后提一下,至于项目管理,测试什么的,我就偷一下懒,暂时不提了。
直接导入SQL Server/Access即可,非常简单,符合橡树的“学生计算机水平较差”的需求。
数据的备份也比较简单,设成每天的自动任务即可。
这其实是用数据库的数据转换、传输等辅助功能完成一些非数据结构的数据控制,有意思。
不过,里面有个很重要的需求必须搞清楚:
如何计算、怎么比较、整理又是什么意思?这些功能应该是这个软件系统的核心吧?
Visual Source Safe就足够胜任了。
完全不需要有任何的程序代码啊
而且适合未来需求扩展,Visual Source Safe本身就允许外源访问的
如果需要处理远程的实时数据还是用web service最好。当年没有这东西就麻烦了,我们原来做的一个系统客户是个大酒厂,在全国各地有许多分公司,系统每天定时拨号连接总公司服务器上传销售数据,服务器端程序汇总输入数据库,前端程序出报表。
so I recommend the dataview. He doesn't need to write any code for data download and process, just focus on the data analysis.
能给个链接么?就是好奇。
http://www.sas.com/success/ibm_dataview.html
Dataview是IBM开发的,基于SAS和IBM DB2的SAS 应用。看过IBM的工程师用过,觉得不错。类似做data mining的软件还有corner stone, JMP等等。
要用这个东西,数据自动采集应该是必需的吧?否则,数据量不够,分析的结果也不具有代表性啊?更别说要做实时分析了。
如果没有理解错的话,DataView是建在OLAP上的吧?分析能力更强?
也就是inline-test。offline-test or bench test是另外的东西了。
数据是在生产线上到达某个步骤后批量采集的。采集完后,有权限的工程师就可以分析数据了。我不知道OLAP, dataview整个就是个sas,每一个步骤都有sas script对应。
前面的帖子不少人都提到一个版本控制软件的应用,但我不觉得好用啊。还是举例说明吧。
假设橡树村每天收到3个文本文件,这些文件纪录了3个炉的24小时温度变化。橡树村需要对比一下不同炉之间的温度差别,其中,一号跟二号炉的数据是公开的,每个用户都可以读的,但三号炉是新工艺,需要保密,只有指定用户才可以看。
在这种情况下,我的做法是把三个炉的数据都先输入SQL SERVER,创建不同的View,然后让不同的Role读取各自的View就是。
请教一下,在这种情况下,如何应用版本控制呢?
假设橡树村每天收到3个文本文件,这些文件纪录了3个炉的24小时温度变化。橡树村需要对比一下不同炉之间的温度差别,其中,一号跟二号炉的数据是公开的,每个用户都可以读的,但三号炉是新工艺,需要保密,只有指定用户才可以看。
建立两个文件夹,其中一个存放一号和二号数据,所有用户都可以对一号和二号数据进行读取,另外一个设定权限就可以了,文件流的所有操作可以在WINDOWS下完成,再“拖”到版本管理软件中
另外文件对比功能也可以由版本控制软件的“修改对比”功能来实现。
用数据库来实现这样的功能的确可以,但是有点杀鸡用牛刀了。个人认为,在开发资源比较少的情况下---如果是学校的研究室那就另当别论了,学生实践嘛---发掘现有软件的实用化功能才是王道啊
社会河蟹
原来是这个意思。
我想象的情形比这个复杂,例如这些文件是每分钟的纪录,而且橡树村需要知道的是具体温差,然后再根据温差来画曲线。。。。。。。