Resin Server
|
Screenshot
|
|
| Developer(s) | Caucho Technology |
|---|---|
| Stable release | 4.0.19 / June 14, 2011 |
| Development status | Active |
| Written in | Java and C |
| Operating system | Cross-platform |
| Type | Web server |
| License | GNU General Public License |
| Website | http://www.caucho.com/ |
Resin is a software product, a web server and Java application server from Caucho Technology. Resin is provided in two versions, Resin Professional and Resin Open Source (GPL). Resin supports the Java EE standard[1] as well as mod_php/PHP like engine called Quercus[2].
Resin Open Source is a feature limited open source version of the open core Resin Professional version that is designed for hobbyists, developers, and low traffic web sites.[3] Open core means an open source version of the proprietary version has been made available, and licensed in a manner that donates it to the software community at large for partial or complete re-use.
Resin Open Source is lacking optimizations such as built-in caching and features such as clustering support, advanced administration, and the health system that includes HTTP session replication, Java Monitoring, distributed cache replication, and JMS queue replication.[4] Caucho describes these as "features and enhancements commonly needed in a production environment."[3]
Resin market share is typically viewed as small in the grand scheme of Java Application Servers, but many high traffic sites use Resin including Toronto Stock Exchange, SalesForce.com, Condé Nast (parent company of Vogue, GQ), CNET[5]. NetCraft's February 2012 Survey states Resin grew to 4,700,000 sites and Resin is used on a number of the Million Busiest Sites [6]. Resin was the only Java-based web server mentioned in NetCraft's survey.
Caucho claims that Resin (presumably Resin Professional) is faster than Apache httpd (v 2.2), and therefore focuses on competing with nginx web server. Caucho claims Resin to have comparable speeds to nginx, and that this is one of the reasons for Resin's strong growth[7].
Although a Java based server, key pieces of Resin's core networking is written in highly optimized C. Caucho claims Java is the layer that allows Resin to be "full featured" while C provides the speed[8].
Resin predates Tomcat, and is one of the oldest application servers, and web servers.
Contents |
[edit] Product features
Scalability
- Elastic Clustering / Cloud support [9]
- 3rd generation clustering optimized for Virtualization 2.0, EC2 and OpenStack deployments [10]
- Session Replication
- Load balancing
- Distributed Cache
Development
- Class compilation
- JIT Profiling and heap analysis
- No GUI required
- JUnit support
- Web Admin
- DevOps support via CLI and REST control of Resin
- Apache Ant/Maven/Ivy integration
- IDE integration
- Flexible project management
- Logging
Production Ready
- Reliability
- Server Monitoring
- Deployment / Cloud deployment
- Versioned deployment
- Merge paths
- Troubleshooting aids
- Server health reports, baselining and post mortem reporting [12]
- Throttling
App Server'
- Java EE Web Profile certified[13], [14]
- Java CDI [15]
- standard Java dependency injection similar to Guice and Spring, part of Java EE
- Transaction support
Web Server [16]
- Static files/JSP/Servlet/JSF
- Extensible access logging
- URL rewriting
- Proxy caching (similar to Squid)
- Gzip compression
- SSL
- Virtual hosts
- Comet/Server push
- WebSocket
- mod-php like support via Quercus
- FastCGI
- Virtual Hosts
[edit] Quercus
Quercus is a Java-based implementation of the PHP language that is included with Resin. According to a slideshow presented by Emil Ong (from Caucho), to a San Francisco Java Meetup Group in April 2008 pertaining to Resin 3.1, an essential difference in the operation of Quercus between the Resin Open Source and the Resin Professional editions is that in Resin Professional the PHP is compiled to Java bytecode whereas in the open source version PHP is executed by an interpreter.[17]
Caucho claims Quercus (presumably the JIT-compiled version in Resin Professional) is faster than standard PHP[18] [19]. Quercus ships with Resin.
[edit] Licensing
Early versions of the Resin Open Source product were released with problematic licensing but more recent versions are available under a conventional open source license.
[edit] Early licensing
The software license under which Resin was initially released deviated significantly from the conventional definition of open source software. Initially Resin was non-redistributable, and the copyright of any improvements made to the code of the application, if communicated to others, became the property of Caucho Technology. Furthermore, the license stipulated that if any legal action arose out of breach of the licensing terms and a court decision was granted in favor of Caucho Technology all of Caucho's legal expenses must be paid by the licensee.[20] Hence even firms and individuals simply using the software may have been exposed to substantial risk had Caucho found them in breach of any term of the license.
Previous licensing terms for the product included the following, which may have introduced something like a copyleft legal status into the products and services offered by earlier users of Resin:
| “ | See the license has the full details. If you distribute a product based on or linked to any Resin code, you must either contact us for a distribution license or satisfy the following:
|
” |
|
—Support FAQ, section "Who must purchase a license", circa 2000[21] |
||
As long as you used standard JSP or Java Servlet APIs you did not have any issues.
[edit] Current licensing
Since version 3.0.9, Resin Open Source has been licensed under the GPL License (version 2 or later),[22] a license which has passed through the Open Source Initiative's License Review Process.[23] Consequently current versions of Resin are significantly less hazardous to use or incorporate into software systems than were previous versions.
[edit] See also
[edit] References
- ^ http://www.infoq.com/news/2011/06/resin-web-profile
- ^ http://www.infoq.com/news/2007/10/php-java-stack
- ^ a b "Features - Resin and Resin Professional". Archived from the original on 2012-02-27. http://www.webcitation.org/65m3AgX4w. Retrieved 2012-02-27.
- ^ http://www.caucho.com/resin-application-server/resin-professional-application-server/
- ^ http://news.yahoo.com/cauchos-resin-server-powers-over-4-7-million-080801974.html
- ^ http://news.netcraft.com/archives/2012/02/07/february-2012-web-server-survey.html
- ^ http://www.infoq.com/news/2012/02/resin-growth
- ^ http://www.infoq.com/news/2012/02/resin-growth
- ^ http://www.infoq.com/interviews/paul-cowan-resin-cloud
- ^ http://s3.amazonaws.com/caucho-downloads/cloud/resin-cloud.pdf
- ^ http://www.infoq.com/news/2011/12/resin-memcached
- ^ http://blog.caucho.com/2011/08/26/resin-pro-health-system-now-and-in-the-future/
- ^ http://www.caucho.com/resin-application-server/java-ee-web-profile/
- ^ http://www.infoq.com/news/2011/06/resin-web-profile
- ^ http://www.caucho.com/resin-application-server/candi-java-dependency-injection/
- ^ http://www.caucho.com/resin-web-server/
- ^ Emil Ong (2008-04-09), Getting Started With Quercus, Caucho Technology, http://blog.caucho.com/wp-content/uploads/2008/04/quercus.pdf, retrieved 2009-08-19 (accompanying Caucho blog entry,additional copy of PDF)
- ^ http://www.infoq.com/news/2007/10/php-java-stack
- ^ https://docs.google.com/viewer?url=http://www.caucho.com/articles/quercus.pdf
- ^ Caucho Developer Source License, Version 1.2, Caucho Technology, http://www.webcitation.org/5eDKTNOvm, retrieved 2009-01-30
- ^ Template:Citationgroup, archived by WebCite here
- ^ Resin GPL'ed, http://www.caucho.com/resin-3.0/features/resin-3.0.9.xtp#Distribution/licensing-changes, retrieved 2009-06-29
- ^ Licenses approved through the OSI License Review Process by name, Open Source Initiative, http://opensource.org/licenses/alphabetical, retrieved 2009-07-28