dynamic languages powered by glassfish™ v3 application … · dtrace or jmx or your custom script...
TRANSCRIPT
![Page 1: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/1.jpg)
Dynamic Languages Powered by GlassFish™v3 Application Server
Vivek PandeyJacob KesslerSun Microsystems, Inc.
![Page 2: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/2.jpg)
2TS-4921: Dynamic Languages Powered By GlassFish
Who We Are> Vivek Pandey
● GlassFish Tech lead for scripting languages support
● http://weblogs.java.net/blog/vivekp/> Jacob Kessler
● GlassFish Scripting Engineer / Code Monkey● http://blogs.sun.com/Jacobkessler/
![Page 3: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/3.jpg)
3TS-4921: Dynamic Languages Powered By GlassFish
![Page 4: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/4.jpg)
4TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language Application Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 5: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/5.jpg)
5TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language Application Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 6: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/6.jpg)
6TS-4921: Dynamic Languages Powered By GlassFish
What is a Dynamic Language?> Broadly, a language that allows a program to
change its own code at runtime● Evaluate data as code● Manipulate code as data● Higher-order functions● Dynamic typing
> Often have an emphasis on readable syntax> Lisp, Ruby, Python, Groovy, ...
![Page 7: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/7.jpg)
7TS-4921: Dynamic Languages Powered By GlassFish
What is GlassFish?> Open Source Application Server
● Platform for serving web applications● Java Enterprise Edition 5 reference
implementation● Support for EE 6 in v3 full release
● Modular + Extensible● Scalable● Management tools
> Traditionally for deploying Java EE applications
![Page 8: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/8.jpg)
8TS-4921: Dynamic Languages Powered By GlassFish
Why Use an Application Server?> Serving web content well is difficult
● Web server protocols● Multiple hosted sites● Scalability● Clustering/failover
> Much easier to build on an existing platform● Java Enterprise Edition standard
![Page 9: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/9.jpg)
9TS-4921: Dynamic Languages Powered By GlassFish
Why Use Dynamic Languages in GlassFish?> Dynamic Languages provide advantages over
Java● Bits By Friday ● Faster development time – less overhead● Shorter code iterations
● But sometimes more of them● Cleaner Syntax
● Braces, Blocks, Semicolons, “fluff”> GlassFish allows you to use those advantages
while preserving Java EE features>
![Page 10: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/10.jpg)
10TS-4921: Dynamic Languages Powered By GlassFish
Java vs. Ruby Codepublic class Fib { public static void main () { System.out.println(fib(10)); } private static int fib(int n) { if (n == 0) { return 0; } else if (n == 1) { return 1; } else { return fib(n-1)+fib(n-2); } }}
def fib ( number ) if number == 0 0 elseif number == 1 1 else fib(number - 1) + fib(number - 2) endendputs(fib 10)
![Page 11: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/11.jpg)
11TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language Application Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 12: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/12.jpg)
12TS-4921: Dynamic Languages Powered By GlassFish
Dynamic Languages and the Java Virtual Machine> Python
● Jython interpreter provides interoperability through Java interfaces
> Ruby● Jruby interpreter provides automatic translation
and Just-In-Time compilation> Groovy
● Dynamic language fully compiled to Java bytecode
> Glassfish handles all of this transparently
![Page 13: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/13.jpg)
13TS-4921: Dynamic Languages Powered By GlassFish
Advantages of Dynamic Languages> Agile development> More flexibility> Metaprogramming and run-time code generation> Domain-specific languages
![Page 14: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/14.jpg)
14TS-4921: Dynamic Languages Powered By GlassFish
Disadvantages of Dynamic Languages> Slower execution
● Not always an issue● Developer time vs. processor time
> Scalability● Global locks
> Maturity
![Page 15: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/15.jpg)
15TS-4921: Dynamic Languages Powered By GlassFish
Advantages of Java> Speed> Scalability> Available libraries and frameworks
● More time● More contributors● More testing
![Page 16: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/16.jpg)
16TS-4921: Dynamic Languages Powered By GlassFish
Disadvantages of Java> Verbose syntax
● System.out.println(“Hello world”)● Casting and subclasses
> Some unavailable features● Metaprogramming
![Page 17: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/17.jpg)
17TS-4921: Dynamic Languages Powered By GlassFish
The Right Tools for the Job> Integration allows each language to be used for
the parts of the overall project for which it is best suited
> Example: Access JMS queue from Rails> Example: Accessing Java-based cryptography
libraries from a Groovy Web application
![Page 18: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/18.jpg)
18TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language App Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 19: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/19.jpg)
19TS-4921: Dynamic Languages Powered By GlassFish
GlassFish v3A multi-language application server> Support for many web-frameworks
● Grails, Rails, Merb, Sinatra, Django> No prior JavaEE experience required
● Same deploy command for all frameworks● No packaging (no WAR) required● No change in programming model
> Best of both worlds● Run dynamic language applications along side
JavaEE apps
![Page 20: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/20.jpg)
20TS-4921: Dynamic Languages Powered By GlassFish
JVM
Pluggable Web Frameworks
V3 Kernel
Django ...
Jython Container
Grizzly
WSGI
JSF
Web Container
Servlet Spec
Grails ...
GlassFish v3 Modules Web Framework Interface
GlassFish v3 Modules Java Framework
Ruby Framework
Python Framework
JRuby Container
Rack
Rails Merb ...
Key
![Page 21: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/21.jpg)
21TS-4921: Dynamic Languages Powered By GlassFish
Embedded Interpreters> Configured interpreter for optimized usage> Dynamic runtime pools
● Single threaded languages/frameworks● Better scaling● JRuby runtime pool, Jython runtime pool
![Page 22: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/22.jpg)
22TS-4921: Dynamic Languages Powered By GlassFish
Ruby scaling on native servers
Webserver/Load Balancer
Rails
Mongrel
Rails
Mongrel
Rails
Mongrel
OSProc Rails Ruby
ServerKey
![Page 23: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/23.jpg)
23TS-4921: Dynamic Languages Powered By GlassFish
JVM
GrizzlyHTTP Listener
JRuby Container
GrizzlyHTTP Listener
GrizzlyHTTP Listener
JRuby
Rails
JRuby
Rails
JRuby
Rails
Java RubyKey
Ruby scaling on GlassFish v3
![Page 24: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/24.jpg)
24TS-4921: Dynamic Languages Powered By GlassFish
Monitoring and Administration> GlassFish Admin console
● Manage JavaEE as well as Ruby, Python or Groovy applications
> Or use RESTFul admin services> Transport agnostic monitoring
● dTrace● JMX● RESTful service
> Customized monitoring● Write monitoring client in JavaScript and deploy
as a service on GlassFish
![Page 25: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/25.jpg)
25TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language App Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 26: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/26.jpg)
26TS-4921: Dynamic Languages Powered By GlassFish
Ruby
![Page 27: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/27.jpg)
27TS-4921: Dynamic Languages Powered By GlassFish
Ruby support on GlassFish> Rack compliant
● Wires a web server to a Ruby application● Based on WSGI from Python
> Run any Ruby application that supports Rack
![Page 28: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/28.jpg)
28TS-4921: Dynamic Languages Powered By GlassFish
Ruby support on GlassFish> All major Ruby frameworks support Rack
● Rails (Starting 2.3.2), Merb, Sinatra, Campsite...> GlassFish has in built support for Rails, Merb and
Sinatra> Or you can run your own Ruby framework...
![Page 29: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/29.jpg)
29TS-4921: Dynamic Languages Powered By GlassFish
Pluggable Framework support> Rack-up script> jruby.applicationType deployment property> GlassFish auto-detects your application
Ruby AppDeployment
RackAuto-detector
Rails YourFrameworkMerb Sinatra
Rack-upScript
![Page 30: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/30.jpg)
30TS-4921: Dynamic Languages Powered By GlassFish
Ruby Monitoring> What can be monitored in Ruby/Rack
applications?● HTTP stats● JRuby interpreter stats● JRuby runtime pool stats
> Monitor using ● dTrace or JMX or your custom script or REST
![Page 31: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/31.jpg)
31TS-4921: Dynamic Languages Powered By GlassFish
NetBeans supportDevelop, deploy and debug
![Page 32: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/32.jpg)
32TS-4921: Dynamic Languages Powered By GlassFish
GlassFish gem> Based on GlassFish v3 Kernel> Just about 2.5 MB in size> Ruby friendly> More info
● http://glassfishgem.rubyforge.org/
![Page 33: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/33.jpg)
33TS-4921: Dynamic Languages Powered By GlassFish
Using GlassFish gem> How simple can it get?
![Page 34: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/34.jpg)
34TS-4921: Dynamic Languages Powered By GlassFish
Using GlassFish gem> How simple can it get?
$ gem install glassfish
![Page 35: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/35.jpg)
35TS-4921: Dynamic Languages Powered By GlassFish
Using GlassFish gem> How simple can it get?
$ gem install glassfish
$ glassfish -e production
![Page 36: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/36.jpg)
36TS-4921: Dynamic Languages Powered By GlassFish
Demo Ruby RESTful service on GlassFish
![Page 37: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/37.jpg)
37TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language App Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 38: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/38.jpg)
38TS-4921: Dynamic Languages Powered By GlassFish
Python
![Page 39: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/39.jpg)
39TS-4921: Dynamic Languages Powered By GlassFish
(J)Python and Django on GlassFish> Jython as Python interpreter> Jython container
● Like JRuby, extends GlassFish● Jython Grizzly Adapter for HTTP processing● WSGI support makes other Python frameworks
simple to plugin> Simple deployment
$ asadmin deploy myDjangoApp/
![Page 40: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/40.jpg)
40TS-4921: Dynamic Languages Powered By GlassFish
DemoDjango application deployment on GlassFish v3
![Page 41: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/41.jpg)
41TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language App Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 42: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/42.jpg)
42TS-4921: Dynamic Languages Powered By GlassFish
Groovy and Grails
![Page 43: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/43.jpg)
43TS-4921: Dynamic Languages Powered By GlassFish
Grails Application Deployment> WAR deployment
● grails war ● Creates grailsApp.war (with ~48 jars and ~18MB in
size)> Efficient deployment
● grails shared-war● Creates grailsApp.war but only ~200KB
● Available through Grails package on GlassFish v3 update center
![Page 44: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/44.jpg)
44TS-4921: Dynamic Languages Powered By GlassFish
GlassFish Grails Plugin
> Install GlassFish as Grails plugin$ grails install-plugin glassfish --global
> Now run your application on GlassFish> $ grails run-app
> Embedded GlassFish for Grails> Same server for development and production> Supports Grails run-app and run-war command
![Page 45: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/45.jpg)
45TS-4921: Dynamic Languages Powered By GlassFish
Agenda> Introduction> Dynamic Languages and the Java Virtual
Machine™> GlassFish: A Multi-Language App Server
● Ruby● Python● Groovy
> JavaEE™ and Dynamic Languages> Q&A
![Page 46: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/46.jpg)
46TS-4921: Dynamic Languages Powered By GlassFish
JavaEE and Dynamic Languages> JavaEE is a mature and robust enterprise
platform● Servlet, EJB, JMS, JAX-RS, JAX-WS...
> Hybrid Rails and Servlet/JSP application● Forward to and from Rails to Servlet/JSP● HTTPSession as Rails session● ServletRequest/Response API available to Rails
> JDBC connection pool● Efficient Database access
> JMS● Async messaging in Rails
![Page 47: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/47.jpg)
47TS-4921: Dynamic Languages Powered By GlassFish
Servlet 3.0 pluggability> JavaEE 6 and Dynamic Languages
● No boilerplate web.xml● Dynamically add ServletFilter and
ServletContextListner> Simple packaging
● No need to package as WAR● Hence no Warbler needed● Place Rails application inside WEB-INF directory
![Page 48: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/48.jpg)
48TS-4921: Dynamic Languages Powered By GlassFish
Demo: Rails and JavaEE
![Page 49: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/49.jpg)
49TS-4921: Dynamic Languages Powered By GlassFish
Scripting Sessions and BOF> PAN-5348:Script Bowl 2009: A Scripting Languages
Shootout> TS-5413:JRuby on Rails in Production: Lessons Learned
from Operating a Live, Real-World Site> TS-5033:Scripting Java™ Technology with JRuby> BOF-4434:Hacking JRuby> TS-5216:Toward a Renaissance VM> TS-4955:Comparing Groovy and JRuby> TS-5015:Welcome to Ruby> BOF-5058:JRuby Experiences in the Real World> Scripting POD#566
![Page 50: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/50.jpg)
50TS-4921: Dynamic Languages Powered By GlassFish
Q&A
![Page 51: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/51.jpg)
51TS-4921: Dynamic Languages Powered By GlassFish
Resources> http://glassfish-scripting.dev.java.net/> http://glassfishgem.rubyforge.org/> http://glassfish.dev.java.net/> http://jruby.org> http://jython.org> http://grails.org> Mailing List
● [email protected]> Issue Tracker
● https://glassfish.dev.java.net/servlets/ProjectIssues
![Page 53: Dynamic Languages Powered by GlassFish™ v3 Application … · dTrace or JMX or your custom script or REST. TS-4921: Dynamic Languages Powered By GlassFish 31 NetBeans support Develop,](https://reader034.vdocuments.us/reader034/viewer/2022042307/5ed3d3dfe581cf2aa161c673/html5/thumbnails/53.jpg)
TS-4921: Dynamic Languages Powered By GlassFish
GlassFish CommunityOpen Source and Enterprise Ready
● GlassFish V3 Preview Available now!● Java EE 6 reference implementation● Modular OSGi architecture – easy to develop & deploy● Runs in-process and easy to extend● Support for Ruby-on-Rails, Groovy and Grails,
Python and Django● GlassFish V2 – Production Ready● Best price/performance open source App server with
Clustering, High Availability, Load Balancing ● Secure, Reliable, Transactional, .NET-interop Web svcs● Support for Ajax and Comet
● GlassFish ESB● SOA and Business Integration platform
● GlassFish Communications App Server● SIP servlet technology for converged services
glassfish.org
• 24x7 Enterprise and Mission Critical Support
•sun.com/appserver
• Tools Integration•NetBeans and Eclipse
● Pavilion booth numbers: 550, 566, 567
● Meet Java EE spec leads and experts at Ancillary Event & Booth