https://blogs.oracle.com/java-platform-group/entry/node_js_and_io_js
Nashorn(ドイツ語でRhino) JavaScriptエンジンはJDK 8の数多ある機能改善のうちの一つであり、Rhinoとして知られる以前のJavaScriptエンジンに変わるもので、より高速に動作します。また、別の注目すべき機能があります。それは多くのNode.jsやio.jsアプリケーションをJVM上で実行することができる、というものです。これらのアプリケーションは最適化されたJavaライブラリを呼び出したり、JMXを使って監視能力を自動的に受け取ったりすることができます。
まもなく登場するJDK 8 update 40では、Nashorn/JavaScriptのパフォーマンスがOptimistic Typingにより、より一層向上するはずです。
Nashorn Architecture and Performance Improvements in the Upcoming JDK 8u40 Release
https://blogs.oracle.com/nashorn/entry/nashorn_performance_work_in_the
http://orablogs-jp.blogspot.jp/2014/12/nashorn-architecture-and-performance.html
Java Virtual Machine - More than just Java
Java Platformは、異なるタイプのアプリケーションを実行する方法を提供しています。たとえアプリケーションがJavaプログラミング言語で書かれていないとしてもです。その結果、開発者はJVMの最適化機能や安定性を活用できるとともに、システム管理者はデプロイメントの管理・監視が向上します。JVMで動作する他の言語の例として、JavaScript(Nashorn)、Ruby(JRuby)、Python(Jython)、Scala、Groovyなど、様々なものがあります。
Project Avatar – A JavaScript services layer on the JVM
Avatar.jsはNodeプログラミングモデル、APIやモジュール・エコシステムをJavaプラットフォームにもたらすプロジェクトです。Avatar.jsJavaScriptで記述されていますが、これらのアプリケーションはJavaプラットフォームの拡張性、管理性、ツールや拡張可能なJavaライブラリやミドルウェアのコレクションを活用することができます。Avatar.jsバイナリをダウンロードすると、開発者はアプリケーションを実行できます。例えば、Tim Caswellの記事である "Hello Node!" には、hello-console.js と hello-http.js という基本的なサンプルが含まれており、これを使ってAvatar(訳注:厳密にはAvatar.jsです)のテストのために利用することができます。
https://avatar-js.java.net/
Hello Node!「Nashorn, The Hidden Weapon of JDK 8」というプレゼンテーションが2014年12月のSilicon Valley Java User Groupの会合で発表されました。このスライドではNetflixでのNashornとAvatarの利用に関して説明しています。さらに別のNashornのデモを紹介しています。
http://howtonode.org/hello-node
Nashorn, The Hidden Weapon of JDK8
http://www.meetup.com/sv-jug/events/218752724/
Nashorn @ Netflix
https://docs.google.com/file/d/0B1_6_iTSwCcjVlc0d1JQLTFTUUU/edit
nashorn at netflix (スライドとデモコード)
https://drive.google.com/folderview?id=0B1_6_iTSwCcjcFRUTjRQRWV2bkk&usp=drive_web#
Avoid rewrites and re-use libraries
サーバーサイドJavaScriptアプリケーションをJVMで実行する主要なメリットに、Javaライブラリへアクセスできる、というものがあります。開発者は主要なライブラリ、SQLやNoSQLドライバ、Hadoopクライアント、エンコーディングライブラリなどの機能を書き直す必要はありません。以前の「Nashorn, the rhino in the room」というエントリで別のサンプルがありますが、これはNode.jsに固有のものではありません。Nashorn, the rhino in the roomNiko Köbler(@dasniko)がAvatar 2.0とそのModel Store APIに関する2部構成の記事を出しています。このモデルストアAPIを使用することで、開発者はより簡単に、SQLやNoSQLと対話することができ、そして多くの既存の最適化されたものから便益を享受することができます。
https://blogs.oracle.com/java-platform-group/entry/nashorn_the_rhino_in_the
- Oracle presents: Avatar 2.0 – where to next?
- Part I – Parallel event loops
http://jaxenter.com/avatar-2-0-112856.html
アーキテクチャとスレッディング・モデルについて説明しています。 - Part 2 – Avatar Persistence
http://jaxenter.com/avatar-2-0-part-2-112860.html
Model Store APIの背後にあるテクノロジーを説明しています。
Monitoring Applications on the JVM
すべてのJavaプロセスをJMXと呼ばれるメカニズムで監視することができます。システム管理者はリモートの認証済みJMX接続を有効にして、こうした実行中のアプリケーションを外部から監視するのではなく、内部から監視することができます。JMX監視(ローカル、リモートとも)に関する詳細情報は、以前のエントリからどうぞ。Deep Monitoring with JMX
https://blogs.oracle.com/java-platform-group/entry/deep_monitoring_with_jmx
Monitoring applications with Mission Control / Flight Recorder
Java Flight Recorderを使うとJVMアプリケーションを本番環境で効果的に監視することができます。標準的な(NetBeansプロファイラのような)開発プロファイラとは異なり、Flight Recorderは性能への影響が軽微でほぼ無視できます。Mission Controlのダッシュボード・ビューには、CPUやメモリリソースの基本情報が表示されます。開発者はThreadタブを使ってシステムのスループットや、アプリケーションが特定のリソースでブロックしているかどうかをより詳細に把握できます。
Mission Controlを立ち上げるには、jmcコマンドを実行し、Avatarアプリケーションに接続します。以下のスクリーンショットは、com.oracle.avatar.Serverとして識別されているNode.jsアプリケーションをMission Controlで監視している様子です。
Node.jsアプリケーションをJavaScriptで記述していますが、Flight RecorderはCPUのスパイクのようなイベントに関するトリガーベースの記録も可能です。システム管理者や開発者が記録を見返して、何がそのイベントの原因だったのかを知ることができます。
詳細情報は、Mission Controlの製品情報ページやユーザーガイドからどうぞ。
Java Mission Control
http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html
Java Mission Control (JMC) and Java Flight Recorder (JFR)
http://docs.oracle.com/javacomponents/jmc.htm
Additional ways of running Node.js on the JVM
Avatar.jsはNode.jsアプリケーションをJVMで実行するための方法の一つです。- Red HatのNodyn プロジェクトはNode.jsアプリケーションをJVM上で実行するプロジェクトで、Vert.xフレームワークとの直接統合を提供しています。
Node.js API for the JVM
http://nodyn.io/
Welcome to Nodyn
http://nodyn.io/posts/welcome-to-nodyn.html
Node.js inside Vert.x
http://nodyn.io/posts/nodejs-inside-vertx.html - ApigeeはTriremeを提供しています。これを使うと、開発者はNodeScriptオブジェクトを実行可能なNodeの環境をアプリケーションに埋め込むことができます。
Trireme - Embed Node.js inside a Java Virtual Machine
https://github.com/apigee/trireme
0 件のコメント:
コメントを投稿