java 生存midi_Java如何帮助OpenWorm生存

java 生存midi

Elliot Bentley在最初发表于《 JAX杂志》一月版的这篇文章中,探讨了使Javasphere兴奋的生物网络突破。

每秒向浏览器流式传输200MB只是模拟生物体时面临的众多工程挑战之一。 蠕虫蠕动的视频 似乎不太可能是新闻报道,但在2013年圣诞节期间,该视频在包括Mail Online,Engadget和BoingBoing在内的数十个网站上得到了报道。

尝试

但是,这不是普通的蠕虫:它是计算机模拟,是国际科学家和工程师团队两年多的研究成果。 他们一起建立了 “世界上第一个计算机虚拟生物” OpenWorm ,并录制了两分钟的录像,以展示其运动中的肌肉系统。

这种蠕虫的表面是一个用OSGi和Spring构建的极其复杂且完全开源的Java应用程序。 OpenWorm的联合创始人Matteo Cantarelli告诉JAXenter,对于这种规模的项目,Java是显而易见的选择。

他在电话采访中说: “ 基本上,我们需要一种企业解决方案,因为我们要构建的规模必须扩大很多。” “当比较内存中的对象有多大时,比较Python和Java的速度时,这些事情–对于健壮和长期的目标,Java最终就是我们要做的。”

Cantarelli最初接受了电气和系统工程方面的培训,然后担任软件工程师大约六年。 但是,在业余时间里,他正在探索软件的另一面:模拟生活本身。

坎塔雷利说: “ 我开始了自我教育的过程,只是阅读了大量的[生物学]书。” 最终,他在互联网上遇到了一群志同道合的人–或坎塔雷利(Cantarelli)所说,“几个有相同梦想的人:模仿 秀丽隐杆线虫 ”。

秀丽隐杆线虫 ( Caenorhabditis elegans) ,或者说是 秀丽隐杆线虫 ( C. elegans) ,是一种细线虫蠕虫,由于其普遍性和简单性,它已成为世界上研究最多的生物之一。 它不仅是第一个对整个基因组进行了测序的多细胞生物,而且还对其1,031个细胞中每个细胞的生命模式进行了深入研究。

尽管如此, 当四位创始人开始在OpenWorm上工作时,在计算机上对 秀丽隐杆线虫 进行 建模 仍然是一项艰巨的任务。 即使是最简单的生物,其复杂性也可以与计算机科学中最棘手的问题相抗衡。 为了使事情变得更加复杂,该小组决定采用需要可扩展的灵活的客户端-服务器架构。

OpenWorm中的所有内容都要编写两次-首先由团​​队的一半科学家基于Python和C ++的真实观察创建模型,然后由工程部门的另一半作为高度模块化的Java应用程序编写。

Cantarelli表示: “ 我们希望使用客户端-服务器架构来构建某些东西,而我们想要一个健壮的东西,而Java在提供基于服务器的应用程序方面拥有良好的业绩。 我们想要的东西,例如,强类型的。”

“ 这不是普通的Java,因为那不会削减它。 在某种意义上说,我们希望整个体系结构是模块化和独立的,因此我们使用了许多OSGi,因此我们希望良好的依赖项解耦。 使用Spring可以带来相同的好处。” 之所以选择Eclipse Virgo,是因为它是“最早在Web服务器容器中允许OSGi的Web服务器之一”。

坎塔雷利强调了这种模块化的重要性。 蠕虫内部的系统不仅保持分离,而且有机体的数据也相互分离,从而为不同生物体的模拟奠定了坚实的基础。

“ 想法是架构和平台将完全可重用,” Cantarelli说。 “蠕虫将仅仅是数据。”

通过互联网浏览OpenWorm

当前的OpenWorm构建在Amazon EC2上运行,但是Cantarelli表示,正在进行“针对网络的不同节点的更多样化组成”的研究。 例如,仿真的某些方面可能需要高性能的计算,而其他方面则可能使用并行化的体系结构。 但是,在此阶段,尚未做出永久性决定。

OpenWorm像MVC应用程序一样被拆分,其中蠕虫模型在服务器上计算,呈现在客户端中,并且用户指令发送回服务器进行处理。 在Web浏览器中,团队正在使用JavaScript和WebGL渲染模型(您可以 自己玩 ,还有 iOS客户端 )。 坎塔雷利说,已经有一个用于处理基于服务器的仿真的API,但还没有与之等效的GUI。

此客户端-服务器模型可能具有前瞻性,但Cantarelli将其描述为“雄心勃勃的选择”。 他说,这样做的目的是使蠕虫仿真易于访问,以使其可以“与Google Docs相同的方式”使用。

但是Google Docs主要处理文本,而一种生物,甚至像线虫一样简单的生物,其复杂性都无限高。 为了实现精确的可视化,需要将大量数据流传输到客户端,这是该项目最大的工程挑战之一。

这些数据由什么组成? “例如,如果您想到粒子模拟,” Cantarelli解释说,“那里的粒子模拟大约有150,000个粒子。 那是当前模型,所以它甚至不是最终模型,它只是[整个模型]的一个方面。

“ 从一方面来说,我的意思是,它仅与蠕虫运动的粒子物理有关,因此,肌肉如何伸展,身体如何伸展,身体如何蠕动,蠕虫正在游泳的液体或凝胶与之摩擦进入。”

与通常通过网络流式传输的数据类型相比,此计算的输出量巨大。 坎塔雷利说:“每个时间步长约为5兆字节。” “现在,想象一下,您想以每秒35帧的速度进行流传输……您正在查看一个巨大的带宽[要求]。”

因此,这种高度详细的模型每秒可输出200MB的惊人数据,大约是4K视频所需带宽的一百倍。 优化此流程的工作尚未开始,但是Cantarelli说,这将需要工程师方面的一些创造性思维。

这是尚待解决的众多技术挑战之一,但Cantarelli及其工程师仍在努力应对这些挑战。 在短短两年内,OpenWorm已经从一个由四个人组成的项目扩展为一个庞大的组织。

坎塔雷利说: “ 我每天醒来,有新的事情发生,有新的人在做事情,有新的人在做贡献,这让我非常高兴。” “项目现在有了自己的生活!”








翻译自: https://jaxenter.com/how-java-helped-openworm-wriggle-to-life-107709.html

java 生存midi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值