Resin (software)
![]() | This articlecontains content that is written likean advertisement.(August 2023) |
Developer(s) | Caucho Technology |
---|---|
Stable release | 4.0.66[1]
/ 8 December 2021 |
Written in | JavaandC |
Operating system | Cross-platform |
Type | Web server |
License | GPLv3orProprietary |
Website | www |
Resinis aweb serverandJavaapplication server developed byCaucho Technology.There are currently only two versions available: Resin (GPL), which is free for production use, and Resin Pro, designed for enterprise and production environments with a licensing fee. Resin supports the Java EE standard and features a mod_php/PHP-like engine known as Quercus.
Resin (GPL) offers essential functionalities for web and application serving, while Resin Pro includes additional optimizations, such as:
- Built-in Caching:Resin Pro incorporates built-in caching mechanisms to improve performance.
- Clustering:Resin Pro supports public, private, or hybrid clustering, enhancing scalability and redundancy.
- Advanced Administration and Health System:It provides an advanced administration system and health monitoring for efficient server management.
- HTTP Session Replication:Ensures high availability by replicatingHTTP sessionsacross multiple server instances.
- Distributed Cache Replication:Enhances application performance by replicating cached data across a distributed environment.
- Auto-Recovery and Diagnostic Reports:Resin Pro offers automatic recovery mechanisms and detailed diagnostic reports to help introubleshooting.
While Resin is primarily Java-based, critical components of itsnetworkinginfrastructure are written in optimized C, providing a balance of features and performance. Resin has a long history, having been released in 1999, making it one of the mature and well-established application servers and web servers.
Product features
[edit]Resin Pro has been engineered to include:
- Dynamic Clustering:Locking was replaced with non-locking atomic operations, cleared contention bottlenecks, improved the async/epoll performance, and reduced thread overhead to handle 100,000 requests per second.
- Cloud Support:Elastic cluster members can be added or removed using a single command. Cluster topology, load balancing, caching, messaging, and management automatically adapt to dynamic servers.
- Compiled PHP on the JVM:Improves performance, scalability and security of PHP applications by allowing PHP code to directly call Java Objects.
- Security through Open SSL integration:A comprehensive security framework for application authentication, authorization and transport level SSL- based security.
- Smart Software Load balancer:Application load is shared among resources automatically to balance them.
- Proxy cache:Faster application performance is possible with Java caching by saving the results of long calculations and reducing database load and application response time.
Scalability
- Elastic Clustering / Cloud support[2]
- 3rd generation clustering optimized for Virtualization 2.0, EC2 and OpenStack deployments[3]
- Session Replication
- Load balancing
- Distributed Cache
- Memcachedwire protocol forCouchbase Serverlike caching[4]
Development
- Class compilation
- JIT Profiling and heap analysis
- NoGUIrequired
- JUnitsupport
- Web Admin
- DevOps support via CLI and REST control of Resin
- ApacheAnt/Maven/Ivyintegration
- 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[5]
- Throttling
App Server
- Java EE Web Profile certified,[6][7]
- Java CDI[8]
- standard Javadependency injectionsimilar to Guice and Spring, part of Java EE
- Transaction support
Web Server[9]
- 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
Usage
[edit]Resin's market share is small in the grand scheme of Java Application Servers, but some high traffic sites use it, such as Toronto Stock Exchange, Salesforce, Condé Nast (parent company of Wired, Vogue, GQ) and CNET.[10]NetCraft's February 2012 Survey stated Resin grew to 4,700,000 sites; Resin was the only Java-based web server mentioned.[11]
A 2012-page on a Caucho wiki site describes a test procedure with results showing that tested 0k (empty HTML page), 1K, 8K and 64K byte files. At every level Resin matched or exceedednginx web serverperformance.[12]
Quercus
[edit]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 iscompiledto Javabytecodewhereas in the open source version PHP is executed by aninterpreter.[13]
Caucho stated in 2007 that Quercus was faster than standard PHP 5 (PHP 8 with JIT is much faster than older PHP versions; PHP 5 is no longer supported)[14][15]although this is only true for the JIT-compiled version in Resin Professional.[16]Quercus ships with Resin.
Licensing
[edit]One license covers all components of the Resin architecture.
Resin is provided in both an open-source GPL license and a Pro version with enhancements for enterprises.
See also
[edit]References
[edit]- ^"Resin Pro Download Archive | Caucho".
- ^"Paul Cowan Discusses the Resin Application Server and Cloud".Infoq.Archivedfrom the original on 2012-10-19.Retrieved2012-10-25.
- ^"Caucho: Resin Cloud Support: 3rd generation Clustering For Elastic Cloud Scaling"(PDF).s3.amazonaws.Archived(PDF)from the original on 2015-04-04.Retrieved2012-10-25.
- ^"Resin Can Now Act As a Drop-in Replacement for Memcached Solution".Infoq.Archivedfrom the original on 2012-11-20.Retrieved2012-10-25.
- ^"Caucho Technology » Blog Archive » Resin Pro Health System now and in the future".Blog.caucho. 2011-08-26.Archivedfrom the original on 2012-10-25.Retrieved2012-10-25.
- ^"Caucho Resin is Officially Certified Against the Java EE 6 Web Profile".Infoq.Archivedfrom the original on 2012-08-22.Retrieved2012-10-25.
- ^"Caucho Resin | Java Application Server | Java EE | PaaS Ready » Java EE Web Profile and beyond".Caucho. Archived fromthe originalon 2012-10-01.Retrieved2012-10-25.
- ^"Caucho Resin | Java Application Server | Java EE | PaaS Ready » Java CDI | Candi".Caucho. Archived fromthe originalon 2012-10-24.Retrieved2012-10-25.
- ^"Caucho Resin | Java Application Server | Web Server | Java EE Certified | PaaS/Cloud Ready » Resin Web Server".Caucho. 2012-02-07. Archived fromthe originalon 2012-10-31.Retrieved2012-10-25.
- ^"Resin Customers | Caucho".Archivedfrom the original on 2014-11-01.Retrieved2014-11-01.
- ^"February 2012 Web Server Survey | Netcraft".News.netcraft. 2012-02-07.Archivedfrom the original on 2012-10-31.Retrieved2012-10-25.
- ^"NginX 1.2.0 versus Resin 4.0.29 performance tests".Caucho.Archivedfrom the original on 2012-08-25.Retrieved2012-04-01.
- ^Emil Ong (2008-04-09),Getting Started With Quercus(PDF),Caucho Technology, archived fromthe original(PDF)on 2011-07-08,retrieved2009-08-19(accompanying Caucho blog entryArchived2012-07-16 atarchive.today,additional copy of PDFArchived2011-07-14 at theWayback Machine)
- ^"PHP on Java: Best of Both Worlds?".Infoq.Archivedfrom the original on 2012-09-29.Retrieved2012-10-25.
- ^"Powered by Google Docs"(PDF).Archived(PDF)from the original on 2013-10-05.Retrieved2012-10-25.
- ^New Monthly Caucho Newsletter,Caucho Technology, 2008-02-26,archivedfrom the original on 2013-05-12,retrieved2013-02-27,
I think we're finally getting to the point where we mimic the other implementation of PHP quite precisely (except we have distributed sessions, are faster in compiled mode, etc.:-)).