1、项目综述 Air Calculator是一款基于云计算思想的科学计算软件(以下简称 AC)。 AC旨在为那些买不起昂贵硬件设备与大型商业计算软件的科研工作者和学生提供跨平台的免费计算服务。 AC采用 BS架构 ,计算内核放在云中,所有的功能都做成 Webservice接口,用户可在任何终端设备上调用该接口。与传统科学计算软件庞大的体积和对硬件的苛刻要求相比, AC不需要下载,更不需要安装,只需打开浏览器,进入 AC平台的页面,你就可以享受包括 符号计算 、 数值计算 、 编程 和 绘图 等常用功能。 AC将科学计算对硬件的要求降到最低,只要你有一台能上网的终端设备,例如手机,数字电视, PC等
2、,你就能随时随地享受我们的服务。你还可以使用自定义函数和绘图功能开发自己的算法并与他人实时分享。项目背景以及项目是如何体现 IC 09的主题的 n AC项目的根本目的在于使低端设备(如 PC,手机)用户能够分享超级计算机或者是分布式计算机族的计算资源。众所周知,随着科学技术和科学研究的发展,科研工作者越来越渴望获得更精确更可靠的试验数据,以及对大规模数据进行精确的数值分析。实验数据的规模往往是天文数字,例如,我们熟知的人类基因组计划或者是研制抵抗艾滋病的药物都需要处理 1020数量级的科研数据,以至于一台计算机根本无法处理这些庞大数据,这时一台超级计算机是科研工作者所渴望的,然而超级计算机价格
3、昂贵、对技术要求高,世界上只有一些发达国家和少数发展中国家拥有。少数国家对计算资源的 “垄断 ”严重限制了世界上绝大多数国家,尤其是那些贫穷国家的科研工作者在艾滋病等人类最棘手问题上的研究能力,况且这些问题在贫穷国家又是比较严重的。 AC平台的意义在于,世界上任何一台计算机只要能上互联网,那么他就可以利用AC平台的计算能力完成自己的计算任务。由于 AC平台的计算过程完全在云中实现(可以是任何高级设备),用户的算法可以完全脱离本地硬件的限制,这就可以在最大程度上降低用户对硬件性能的要求,从而使贫穷国家的科研人员能够享受到超级计算机的计算资源。此外用户利用AC平台提供的 “绘图 ”和 “用户自定义
4、函数 ”功能可以与他人实时分享自己的科研成果,不仅让别人能看到,而且能让别人体验到。这将极大促进世界上的学术交流。功能特色n 免安装,免下载,跨平台,浏览器里直接使用,界面时尚友好。n 符号计算,数值计算,画图,编程,统计。涵盖主流计算软件所有功能。n 命令行式的输入,没有复杂的按钮和表单。n 在浏览器中显示数学符号,使符号计算结果更直观n 用户可定义变量在数值计算中使用,以方便用户导入大规模数据,并可将变量 保存至服务器,以便日后使用。n 系统自动记录用户操作,并保存在服务器,方便用户重复执行以前的操作。n 用户可以直接在浏览器制里作和发布自己的计算服务,即编写自己的计算函数。在线编程,在线
5、编译,在线执行,服务器把用户定义的函数存档以便用户随时调用,一次编程重复利用。此外用户还能下载自己编写的函数模块以便在其他地方使用。n 用户可以设置函数访问权限,共享或私有。私有表示此函数只能被编写者在线调用,共享表示该函数不仅可以被编写者在线调用,还可以被其他用户在线调用。n 用户拥有自己的配置文件,可以存储自己的变量、历史记录、图片信息和用户自定义函数库n 支持手机用户。只要你的手机能上 WAP,那么你就可以使用所用 AC功能。n 适应云计算发展趋势,用户体验与后台实现完全分离,后台可用多种技术实现,如超级计算机,计算机族,再配上分布式操作系统( Windows Azure) AC就可以成
6、为一个典型的云计算应用。技术特色n 基于 Asp.Net Framework 3.0框架n 服务器端采用 WebService技术 ,实现服务器资源的跨平台访问。n 客户端采用 EXTJS AJAX框架,界面美观。n AJAX技术实现网页局部刷新,使浏览器软件界面更贴近本地软件界面。n 采用 MathML标记语言实现浏览器中显示数学符号。同时采用ACSIIMathML.JS脚本解释文本数学表达式语义并动态生成数学公式的MathML标记。显示效果超越 Matlab可与 Maple媲美n 采用 XML文件配置和存储用户信息,改善用户体验,增加系统的灵活性n 自主设计的网页命令行系统,包括命令解释器
7、,命令查询器,命令处理器。n 自主设计的浏览器版 C语言编程环境。n 自主设计的用户函数库管理系统,可实现服务端函数的动态创建,动态加载和动态执行。使用户在浏览器里享受 Visual Studio中编程的愉快感觉n 可以移植到 Windows Azure系统下(可能需要一些特殊权限)。主体框架主体框架HTTPRequest登录框浏览器用户登录 主界面符号计算数值计算函数绘图自定义函数并行计算Ajax各模块接口数据流数据流数据流数据流数据流请求服务器结果返回主界面框架Extjs内核符号显示 ASCIIMathML.js浏览器端 服务器端后台技术架构后台技术架构开发环境:nWindows XP P
8、rofessional SP3nMicrosoft Visual Web Developer 2008 Express EditionnMicrosoft Visual C# 2008 Express EditionnIIS 5.1运行环境 (先安装 IE插件 Mathplayer) :nWindows XP ProfessionalnIIS 5.1nFRAMEWORK 3.5n或 Microsoft Visual Studio 2005以上注意:部分用 VC6.0编译的代码在 IIS7.0下无法正常运行,但可在 VS的调试服务器中运行,详细配置说明参见用户手册符号计算之初等数学符号计算之初等
9、数学以符号形式显示输入命令单击回车,返回结果此处以文本形式记录用户的命令和返回的结果点击清楚记录可删除记录命令输入面板,以按钮形式输入命令继续等待输入察看帮助若有问题请察看帮助符号计算之高等数学以符号形式显示输入命令以符号形式返回结果-2*x/(1+x3)2在此输入参数,此处为被积函数命令参数需符合 ASCIIMath Notation 规范操作面板,提供大多数高等数学中的计算显示效果超越Matlab,可与 Maple媲美察看帮助数值计算以函数名加参数的形式输入命令,此处命令为:实矩阵的 LU分解单击回车,返回结果,第一个 ans是下三角矩阵 L,第二个 ans是上三角矩阵 U等待继续输入记录用户的每次操作,双击某项历史操作,可将该操作自动显示在右边的命令窗口,方便用户调用历史操作单击此处将选中操作上传服务器保存以 Tip形式显示函数信息用户可以使用的函数,双击函数名,命令可以直接显示在命令行窗口输入 :cls,可以清除屏幕上的所有信息察看帮助数值计算之定义变量含有变量的命令在此输入变量值,参数格式参见用户手册方便用户导入大规模数据(暂未实现)此处显示用户定义过的变量这些变量可直接在命令中使用单击,将选中命令保存到服务器点击添加变量察看帮助