Обновления и динамическое обновление программного обеспечения для JVM / Scala - PullRequest
1 голос
/ 13 января 2012

Я нашел несколько старых статей о динамическом обновлении программного обеспечения для Java:

Динамические обновления программного обеспечения для Java: подход, ориентированный на VM (2008) (см. Citeseerx)

как украсть горячее обновление кода Эрланга для Scala / Java ?: http://scala -programming-language.1934581.n4.nabble.com / как к красть-Erlang-s-горячий код обновления-для-Scala-Java-td1989938.html

На странице Akka есть заявление о том, что стек Typesafe поддерживает непрерывные обновления: http://akka.io/docs/akka/1.2/intro/why-akka.html Но я не нахожу никакой информации в сети Typesafe.

K-Splice для Linux Ядро, кажется, широко используется для Linux.

Я также нашел кое-что о том, что Tomcat поддерживает замену кода, но, насколько я понимаю, это, по-видимому, для кода без сохранения состояния и на самом деле неприменимо для систем другого типа.

Я предполагаю, что пакеты OSGi и аналогичные системы могут использоваться для замены кода на модульном уровне. Но на самом деле я не тот, кто мне нужен.

Какие есть варианты для Scala и других языков JVM? Как в отношении DSU - динамического обновления программного обеспечения для систем с одним компьютером, так и для более крупных систем с кластером / облаком.

Я нахожу относительно плохую информацию об этом для JVM по сравнению с тем, что существует для других языков, таких как C / C ++, но я бы предположил, что это должно быть проще для языков JVM.

Что-то вроде системы обновлений Erlangs - это то, что, по-моему, было бы полезно для Scala, но пока не нашло такого.

-Daniel

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Похоже, вы захотите исследовать OSGi , который является стандартом для обновляемых модулей в работающей JVM.

1 голос
/ 14 января 2012

JRebel широко используется - они предоставляют бесплатную лицензию, если вы работаете с Scala: http://zeroturnaround.com/jrebel/

...