We hope everyone is off to a great beginning in 2014! With the start of the New Year we thought it would be beneficial to begin an in-depth review of Resin’s architectural stack. For Part 1, we will dive into the world’s fastest web server that, if you aren’t already, should be taking advantage of! Resin is meant for data-rich and intensive enterprise web applications. As such, the internal components are coded to provide the extra performance and insight needed to give your applications a true edge.
General feature updates and bug fixes in 4.0.38:
- Resin Cluster – Dynamic server improvements to aid in the automatic restart after a triad server has been restarted
- Resin Cache – Configuration added to maintain minimum thresholds in cloud environments
- Resin Health – Thread pool analysis from PDF reports now available in new formatting
Resin Essentials (Part 1) – Resin Web Server
Resin is engineered to work from end to end with specific thread optimizations made at each level of the architecture. Often is the case that applications will include components chosen by familiarity rather than performance. If your application includes an Apache Web Server, your architecture will handle 40-150% more load with fewer errors by utilizing Resin’s Web Server. If your application includes an NginX server, your architecture will handle 20%-25% more load with fewer errors by utilizing Resin’s Web Server. In deployment you not only pay this fine in dollars spent on hardware and resources, but also on time managing multiple configuration files. Resin’s Web Server is yet another finely crafted component in an architecture that simply works.
Resin Web Server functionality:
- Powerful and Easy to configure URL rewrite rules
- Added security and functionality through Virtual Hosting
- FastCGI so you can work with Python (Django), Ruby (RoR), native PHP, and more
- Built-in HTTP Proxy Cache so you can speed dynamic pages to near-static speeds
- Built-in mod_php like support via Quercus
- Cluster aware load balancer that auto shares loads to new application server nodes
- Security: Immune to buffer overflow attacks that plague other Web Severs (mostly Java with small, tight, fast JNI/C)
Resin’s Web Server can make the difference in your application’s ability to seamlessly scale from one to millions of concurrent sessions. As an added benefit, the load balancing and clustering ensure that your application optimizes its resources redundantly across your stack.
Scott Ferguson, Chief Architect of Caucho said the following:
“For years Resin has not needed Apache httpd as a load balancer or to serve static HTML files and images. With Resin you get a complete web solution. Resin pieces are designed to work together, and designed to be fast and scalable. Performance is easy to demonstrate with our web tier, and it is the same type of performance you can expect throughout our product for session replication, proxy cache, object cache, and more. Using Resin means you value craftsmanship, and are a discerning, informed developer.”
San Diego Java User's Group – January 21
This months San Diego Java User’s Group focused on “Simple and Fun Functional Programming in Java” by Allan Schougaard. It was a very interactive JUG, with audience members debating different code segments and best practices (exactly the kind we want!). On the basis of maintainability, readability, and abstraction we’re sure participants left the meeting with some code refactoring of their own to do!
Abstract: Functional programming is all the rage right now, and for good reason. It promises simpler and faster programs. Some of the holdbacks are that many people believe that it requires you to change programming language. Not so! In this talk I will show that you can use functional programming techniques and reap many benefits in the current incarnation of the Java language.
Check out the slide deck on the SDJUG’s site!
Please join us at the next JUG scheduled Feb 18, 2014 for a great night!
Visit the SDJUG website
Moving to the Cloud?
As cloud environments continue to mature, more companies are benefiting from migrating towards newer infrastructure. Flexibility, increased collaboration, and disaster recovery are among the top reasons fueling the movement. However, concerns about sensitive user data and having to rearchitect legacy apps mean in house systems will not be going away anytime soon. Whether a public, private, or hybrid environment is right for you, Resin is architected to work in all environments. For those wanting to port certain applications to the cloud, check out our cookbook on how to deploy Java apps on Amazon EC2:
Tip of the Month
Enabling Resin Web Administration
Since the resin-admin is just a web-app implemented with Quercus/PHP, enabling it is just adding an appropriate <web-app> tag.
To enable the /resin-admin, you'll need to create an admin user and password.
- Create an admin user following the prompt at /resin-admin.
- Copy the conf/admin-users.xml.generated to conf/admin-users.xml.
- Change the resin_admin_external to true if you need access from a non-local IP address.
- Browse /resin-admin with an HTML 5 browser.
The steps are for security reasons. Copying the admin-users.xml verifies that you have access to the server. And the default resin_admin_external=false makes sure you're not exposing the /resin-admin to the internet.
A detailed walkthrough can be found here!
As the PHP adoption rate continues to grow, we continue to make improvements to Quercus. The Agile movement has led to more client-side scripting and Quercus continues to bridge the gap to the server side Java components. Quercus highlights:
- Meets or exceeds the performance of the C PHP implementation with common PHP applications
- Optimized compilation of PHP to Java
- Single process model of Java reduces unnecessary switching overhead
- Shared data allows for caching across multiple requests
- Java implementation eliminates many traditional security problems such as buffer overflows
- Input/output filtering for cross site-scripting and other attacks is simple with Java EE
- Natural, high performance integration of Java libraries in PHP applications
- Allows Java developers to use PHP as a front-end technology
Copyright (c) 1998-2013 Caucho Technology, Inc. All rights reserved.
Caucho®, resin® and quercus® are registered trademarks of Caucho Technology, Inc.