Scripting Support in GFv3 Prelude - Full Version
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Scripting Support in GFv3 Prelude - Full Version

on

  • 2,792 views

A 1 hour presentation of how GlassFish v3 Prelude provides support for Scripting / Dynamic Languages. Ruby/JRuby/Rails and Groovy/Grails are specifically described.

A 1 hour presentation of how GlassFish v3 Prelude provides support for Scripting / Dynamic Languages. Ruby/JRuby/Rails and Groovy/Grails are specifically described.

Statistics

Views

Total Views
2,792
Views on SlideShare
2,758
Embed Views
34

Actions

Likes
1
Downloads
35
Comments
0

2 Embeds 34

http://www.ustream.tv 30
http://www.slideshare.net 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Scripting Support in GFv3 Prelude - Full Version Presentation Transcript

  • 1. Dynamic Languages in GlassFish v3 Prelude GlassFish Webinar Vivek Pandey Developer, Glassfish Team Sun Microsysems, Inc. 1
  • 2. 2
  • 3. GlassFish v3 - A Dynamic AppServer Productivity, performance • GlassFish v3 > Lightweight, Modular, Extensible, Embeddable • Reasonable and efficient deployment choice > Native, WAR style, embedded GlassFish • App Server feature for everyone > Database connection pooling > Native threading, non-blocking IO, ARP > Management – Monitor, Deploy, Troubleshooting > Access to enterprise stack – Metro, Jersey, JMS/MQ, Grizzly, JBI etc. 3
  • 4. Overall Architecture 4
  • 5. JRuby on Rails 5
  • 6. Why Ruby on GlassFish? • GlassFish v3 server is tested platform > Co-host Java and Rails > Known Deployment and Management • “Green” alternative – One command, One instance, One process • Multiple Requests by a Single Application • Database Connection Pooling • Not just Rails – Merb, Sinatra... 6
  • 7. More benefits... • No packaging, simple deployment > asadmin deploy depot/ • Deploy as WAR > warble #creates WAR file > asadmin deploy depot.war • Tested JRuby runtime at Updatecenter > bin/updatetool > No more config needed • Commercially supported by Sun • http://wiki.glassfish.java.net/Wiki.jsp?page=GettingStartedGuide 7
  • 8. GlassFish v3 Runtime Grizzly Listener . Rails Web . XXX Adapter Adapter Adapter . Rails Runtime Pool JRuby 8
  • 9. Runtime Pool Management • Automatic JRuby runtime pool management Gem Create JRuby Rails Startup Runtime JRuby Load Rails Environment Add to Rails Runtime Pool JRuby 9
  • 10. Configuring JRuby Runtime Pool • On GlassFish v3 Prelude Server > System properties – -Djruby.runtime.min : Sets the fewest runtimes to have in the pool – -Djruby.runtime : Sets the initial number of runtimes to create – -Djruby.runtime.max : Sets the maximum number of runtimes to have active > Add these system properties as <jvm-options> elements inside domain.xml > Or, if using java CLI simply provide it using -D option – java -Djruby.home=... -Djruby.runtime.max=2 -jar modules/glassfish.jar 10
  • 11. Configuring JRuby Runtime Pool • GlassFish gem > CLI options – -n, --runtimes – Number of JRuby runtimes to crete initially – --runtimes-min – Minimum JRuby runtimes to crete – --runtimes-max – Maximum number of JRuby runtimes to crete > glassfish -n 2 –runtimes-min 1 –runtimes-max 6 – Starts glassfish gem with 2 JRuby runtimes, the minimum pool size is 1 and maximum size it can grow up to is 6 11
  • 12. JRuby Bundle - Updatecenter • glassfish-install/bin/updatetool 12
  • 13. NetBeans Tooling • NetBeans support > Develop, deploy debug > Screencast – http://weblogs.java.net/blog/arungupta/archive/2008/11/screencast_26_d.html 13
  • 14. GlassFish gem • Rails developer friendly • Based on GlassFish v3 nucleus • Distributed as ruby gem • Install > gem install glassfish • Run > cd myAp > glassfish • More info > http://glassfishgem.rubyforge.org/ 14
  • 15. GlassFish Gem • Latest 0.9.0 released • Features > Rack based architecture – Pluggable ruby frameworks > Merb support – JRuby and Merb native extension issue $jruby -S gem install merb-core merb-more $merb-gen core hello $cd hello $glassfish • Framework auto-detection > Need just one command 'glassfish' • Details at: http://glassfishgems.rubyforge.org/ 15
  • 16. Demo – GlassFish Gem • Demo screencast > http://mediacast.sun.com/users/vivek.pandey/media/gemdemo 16
  • 17. Groovy on Grails 17
  • 18. Groovy on Grails • An MVC frameworks • Based on Groovy, Spring, Hibernate, SiteMesh > But hides all the complexity • Adopts Rails paradigms 18
  • 19. Grails – Setup and Installation • Install Grails IPS package using updatetool > Grails package is installed inside 'glassfish' directory • Grails IPS package > Provides the following benefits over Grails distributions found elsewhere – grails shaed-war – Lightweight, efficient application WAR – Less prone to OOM due to lack of PermGen space on hot deployments – grails run-app – Runs GlassFish v3 Prelude in embedded mode – Develop and test your grails app on the same server you would deploy during production • Set GRAILS_HOME environment variable > export GRAILS_HOME=glassfish-install/grails 19
  • 20. Groovy on Grails - Updatecenter • glassfish-install/bin/updatetool 20
  • 21. Groovy on Grails • Development and production on the same server > Develop using GlassFish v3 embedded server – grails run-app 21
  • 22. Groovy on Grails • Development and production on the same server > Develop using GlassFish v3 embedded server – grails run-app > Production deployment – asadmin deploy grailsApp.war 22
  • 23. Groovy on Grails • Development and production on the same server > Develop using GlassFish v3 embedded server – grails run-app > Production deployment – asadmin deploy grailsApp.war • Efficient WAR packaging > grails shared-war – Creates smaller WARs ~200KB vs 18MB – asadmin deploy –-libraries $GRAILS_HOME/lib/glassfish- grails.jar grailsApp.war 23
  • 24. Groovy on Grails • Development and production on the same server > Develop using GlassFish v3 embedded server – grails run-app > Production deployment – asadmin deploy grailsApp.war • Efficient WAR packaging > grails shared-war – Creates smaller WARs ~200KB vs 18MB – asadmin deploy –-libraries $GRAILS_HOME/lib/glassfish- grails grailsApp.war • For details > http://wiki.glassfish.java.net/Wiki.jsp?page=GrailsGettingStarted 24
  • 25. Groovy on Grails – Screencast • From Zero to Grails in 5 minutes with GlassFish v3 Prelude > https://slx.sun.com/1179271912 25
  • 26. Jython on Django • Jython 2.5 nearing release > Jython 2.5 beta out > Being developed at – http://www.jython.org/Project/ • Currently WAR deployment approach > Using Django-Jython project – http://django-jython.googlecode.com/ • Native Django application deployment in works 26
  • 27. PHP 27
  • 28. PHP • Quercus (Caucho) > Open Source (GPL) PHP 5 implementation in Java > WAR packaging > WordPress, MediaWiki, phpBB, Joomla • PHP/Java Bridge > Open Source (LGPL) > XML based network protocol for native PHP > Faster, easier than JNI > Java native threads used for concurrent requests > PHP and JSP session sharing 28
  • 29. Scala on Lift 29
  • 30. Scala on Lift • Lifts apps packaged as WAR > asadmin deploy liftApp.war • For details on developing and deploying Lift applications see > http://wiki.glassfish.java.net/Wiki.jsp?page=GettingStartedWithLiftOnGlassFish 30
  • 31. References • GlassFish > https://glassfish.dev.java.net • GlassFish Scripting Project > https://glassfish-scripting.dev.java.net • Scripting Wiki > http://wiki.glassfish.java.net/Wiki.jsp?page=Scripting • Mailing List > webtier@glassfish.dev.java.net • IssueTracker > https://glassfish.dev.java.net/servlets/ProjectIssues • TheAquarium > http://blogs.sun.com/theaquarium 31
  • 32. Q&A 32