Bill Digman

Greenhorn
+ Follow
since Jan 24, 2012
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Bill Digman

Run faster, develop faster, and spend less on hardware.


Of all of the possible things to write about, I find this to be the hardest. The industry is changing at a rapid clip. There is a lot of convergence and a new dawn to software development. The number of devices that developers have to support is tripling, from smart phones, to glasses, to virtual servers. What I want to describe is a way to drastically speed up development time, reduce complexity, and reduce hardware costs. But let's talk a little bit about the trends in the industry.


The idea of an application server is becoming a thing of the past. Today most server-side developers develop services not applications. This is the trend. The new web is no longer just a servlet engine, a database and some JSP/HTML/CSS. Today applications can range from mobile applications to rich HTML 5 and the presentation logic is expected to be in the client. The users expect and perhaps demand a rich user experience. HTML 5 promises and delivers a very rich environment for writing applications. Companies that embrace this will deliver user centric GUIs and be more successful than companies that do not. 


THE RISE OF NoSQL


The rise of NoSQL is really the rise of data safety versus a relational database. The emphasis is on horizontal scaling potentially millions of client's data and not forcing application data into a relational model.  NoSQL, although originally built to support vertical scaling, has found homes in the hearts of developers who just want to rapidly develop their applications and rapidly iterate and not deal with the hassle of constant schema migration. Schema migration is a difficult process to manage and has historically slowed development down to a crawl. While NoSQL's claim to fame might be vertical scaling, a larger selling point has been more dynamic schema. This has driven NoSQL from the massively scalable to also being used for department level applications that will never use the vertical scaling features. It just works. It is easier then dragging a schema along and it means fewer DBAs, Ops, and trouble. 


THE RISE OF REST SERVICES


In days gone by, SOA was a way to break up an application into reusable services. In this back drop of activity, we see the rise of REST development with Java. More people are writing services and using services oriented development, and fewer people are talking about it. SOAP and XML are used less while REST and JSON are used more. The days of SOA and belly button lint inspection are gone. The days of writing services has just begun. Service oriented development is a forgone conclusion. It has become synonymous with the software development.


In the era of HTML 5 and mobile applications, the weight of the presentation logic has shifted back to the client, the service oriented approach has been reborn and repurposed. HTML 5 apps and mobile apps are calling REST services. REST, along with JSON has become the conduit of communication for mobile applications. REST with JSON is the lingua franca of the web. If you are doing REST, you are five times more likely to write that REST service in Java than any other language.


WEBSOCKETS, THE NEW COMMUNICATION BACKBONE


WebSockets are showing up in more places as well. WebSocket is the next generation way to develop services for mobile and HTML 5 applications. WebSocket is part of HTML 5 and provides faster bi-directional communication without the latency of HTTP for request response of REST. HTML5 is synonymous with WebSocket and IndexDB. WebSocket is just baked in. Like REST, Java will dominate this space as well.


IN-MEMORY DATA, THE GOLDEN GOOSE


To handle load and develop more interactive applications, there has been a trend towards non-blocking systems that use principles of mechanical sympathy to optimize applications by writing code that takes advantage of the hardware's multi-core machine effectively.  Now instead of spending millions on hardware and software that scales to tens of thousands of transactions per second. Teams have developed software that scales to millions on commodity hardware that cost thousands.


From LMAX Disruptor to Workaday, companies are finding that in-memory data is the fastest way to develop and deliver and scale modern applications. The basic idea is that service requests go through a journal and are replicated before the service is called. The data that is in-memory is the actual operational data. Storage and replication are now background tasks that occur in parallel with the service as much as possible. Storage is simply crash recovery. In-memory data is the actual data. Unlike the NoSQL model, your objects are your data and there is no database per se. Combining logic and data has another name: Object-oriented development.


In this model, disk is like tape backup, it is just a million times faster than tape backup, and memory replaces disk I/O and network I/O to the database, just a million times faster. As you might imagine, systems built this way are very fast. 


This allows developers to focus on writing code and not worry about persistence or mapping as much. This is the next logical step in the NoSQL trend. This goes beyond NoSQL to no database, or rather no databases in the operational path. Services own their operational data. Think: "No more mapping, no more cache coherency issues, no more schema migrations, etc.".


This is not to say you don't have databases, you just don't need databases to ensure that your operational data is safe. You can use databases for what they were meant for, reporting and offline analytics. The database no longer needs to be in the operational path. You no longer have to abide by the anti-pattern of using your database for synchronization thus turning your database into a performance choke point.


This approach allows faster development time as no database mapping or schema migration is required. You get the same data safety as you would get from a NoSQL or RDBMS, perhaps even more since the cost of data safety is less.  Also since traditional architecture usually requires a lot of caching, it must deal with cache coherency issues. This new approach avoids that by allowing the services to own the operational data. This allows companies to rapidly iterate and come up with their minimal viable applications and focus on providing an awesome user experience rather than spending millions on infrastructure and slowing the development process to a crawl due to schema migrations, cache coherency issues, etc. This approach allows companies to adopt the lean startup philosophy by allowing simpler more rapid iterations. As far as scalability goes, the same hardware can handle 10x to 100x the number of requests so you have less vertical scaling to manage. Do more with less.


A SERVICE ENGINE READY FOR THE MASSES!


Well what about the programming model. Is this in the reach of the everyday developer? How can I use this approach? 


Enter stage left, Makai (which is our code name). Makai has it's DNA in JAX-RS, EJB, Spring, etc. It is designed around the way that Java developers write services. It provides the benefits of this new model in a programming model that is familiar and friendly to developers. Instead of learning a new programming model or language, you program in Java. 


More to come...


Bill Digman is a Java EE / Servlet enthusiast and Open Source enthusiast who loves working with Caucho's Resin Servlet Container, a Java EE Web Profile Servlet Container.



Run faster, develop faster, and spend less on hardware.

Resin has supported caching, session replication (another form of caching), and http proxy caching in cluster environments for over ten years. When you use Resin caching, you are using the same platform that has the speed and scalability of custom services written in C like NginX with the usability of Java, and the industry platform Java EE. JCache JSR 107 is a distributed cache that has a similar interface to the HashMap that you know and love. To be more specific, the Cache object in JCache looks like a java.util.ConncurrentHashMap. In addition, JCache JSR 107 defines integration with CDI (as well as Spring and Guice). You can decorate services with interceptors that apply caching to the services just by defining annotations.


Resin 4 has support for JCache, and JCache support is required for Java EE 7.


Let's look at a small example to see how easy is to get started with JCache.




The above works out fairly well, but what if we want to periodically change the helloMessage. Let's say we get 2,000 requests a second, but every 10 seconds or so we would like to regenerate the helloMessage.



The message might be:




Later we would want it to change.


If we wanted it to change every 10 seconds after it was last accessed, we would do this:



For this example, we want to change it every 10 seconds after is was last modified. We would set up the timeout on the creation as follows:



This would go right in the cache method we defined earlier.



Resin's JCache implementation is built on top Resin distributed cache architecture. You get replication, and data redundancy built in.


Bill Digman is a Java EE / Servlet enthusiast and Open Source enthusiast who loves working with Caucho's Resin Servlet Container, a Java EE Web Profile Servlet Container.


Caucho's Resin OpenSource Servlet Container


Java EE Web Profile Servlet Container


Caucho's Resin 4.0 JCache blog post

12 years ago
Resin Pro Serves Files Faster than Apache httpd
San Francisco, CA October 01, 2012

Caucho Technology, the leader in high performance application servers, today announced, Resin® Pro (Java EE certified web server and application server) outperforms C-based Apache httpd web server in speed and throughput. Resin has a long time reputation as fast, lightweight and powerful Java application server.

Caucho, in its pursuit of craftsmanship, wanted a web application server solution that simply works from end to end. As part of this effort, speed and scalability are essential. The true battle was getting to speeds comparable to NginX, which Resin Pro accomplished. Caucho’s engineers optimized Resin’s use of the Linux TCP/IP stack to take advantage of operating system enhancements for sending files and TCP/IP buffer management. In addition, time was spent to make Resin the fastest and most scalable solution with the least amount of errors. Once Resin Pro bested NginX, Apache httpd was really no match.

The benchmark test used industry standard tools and methodology. The results echoed recent results against Nginx. Resin Pro was put to the test versus Apache httpd, the most popular and most used web server. Apache httpd is private labeled and used by many vendors as a load balancer or web server that fronts application servers to server static files. Benchmark tests between Apache httpd and Resin showed Resin leading the way.

In numerous and varying tests, Resin handled 40% to 150% more load than Apache httpd with less errors and faster response times. Resin is the best single solution for both the web and application tiers. With Resin, customers don’t need Apache httpd or other web servers to load balance to Resin Application Servers. You can use Resin to load balance to Resin.

Scott Ferguson, Chief Architect of Caucho Technology 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.”

A full description of the benchmarks methodology is described is available on Caucho’s wiki with the specific results for this test here. Resin Pro was used in the benchmark, but Resin Open Source version, Resin Servlet/JSP Container, also beats Apache httpd (just not as severely). Resin proves that a Java based front-end can support enterprise level requirements for speed and performance just as well if not much better than a C based front end.

Resin runs over 4.7 million global sites and continues its widespread global adoption, and was named a cool vendor and a visionary by a leading industry analyst in 2010, 2011 and 2012.

Resin’s web server, included as part of a Java EE certified package, features: static file handling, reverse proxy, HTTP proxy cache, SSL with OpenSSL, load balancing, URL rewrite, CGI and FastCGI. Resin 4 was the first Java EE Web Profile certified Java application server, and was built from the ground up around Java Dependency Injection (CDI). While over 13 years old, Resin has kept up with the times, and has been optimized to work in cloud computing environments like Amazon EC2.

Caucho Technology

Caucho’s relentless quest for performance and reliability has paved the way for Resin as the leading global Open Source Java application server. Founded in 1998, Caucho is Java EE Web Profile certified by Oracle and recognized as one of the leading Java engineering companies in the world. Our San Francisco based engineers continue to uphold our proven reputation for craftsmanship and innovation. Caucho has helped organizations worldwide including start-ups, governments and Fortune 500 companies to build and grow their business using one of the most flexible, rock-solid and powerful application servers, Resin. Caucho is an Oracle Java EE licensee focusing on Web Profile and cloud solutions with offices in San Francisco and San Diego.

Resin Pro: Resin Java EE Application Server

Resin Pro, Caucho’s Java EE certified application server, features Java EE Web Profile support, Resin cloud support (3rd generation clustering technology), Resin JAMM (Java application monitoring and management), Resin Web Server, Hessian - binary transport protocol, Quercus - PHP on the JVM, Resin Cache - distributed cache server, and Resin Queue - messaging server. Resin has a 14-year reputation for speed and scalability. Leading companies worldwide with demands for reliability and high performance web applications including the Toronto Stock Exchange, Salesforce.com and CNET are powered by Resin.

Resin Open Source: Resin Servlet and JSP Container

Resin Servlet and JSP Container is a GPL Open Source Java EE implementation as well as a full featured web server that is faster than Apache httpd.

Contact Information
Theresa Nguyen
Vice President | Caucho Technology, Inc.
Telephone: (858) 456-0300
Direct: (858) 361-2736
[email protected]
12 years ago
Caucho Technology, the leader in lightweight high performance application servers, today announced that Gartner’s September 2011 Magic Quadrant for Enterprise Application Servers (EAS) report lists Caucho’s Resin as “Visionary”.

Gartner’s magic quadrants are overviews of the market’s competition within a specific market. The four quadrants are: Challengers, Leaders, Niche Players, and Visionaries.

Caucho has been categorized as a “visionary”. In order for Caucho to be included as a visionary in this market analysis, Caucho needed to demonstrate not only an understanding of the enterprise application server (EAS) market, but also where the market is heading. What’s more to compete in a market with leaders such as IBM, Microsoft, and Oracle, Caucho has to have innovative new features, while addressing current limitations from the leaders, and have a unique approach to enriching existing technology.

Caucho’s flagship product, Resin Java Application Server is a great example of how a visionary company can gain market share in the EAS market. Resin has a slew of new innovative features including:

-3rd-generation, cloud-optimized clustering,
-cloud deployment system,
-watchdog monitoring for reliability
-Health system for server monitoring and self-healing recovery.

Although referenced as a enterprise application server, Caucho’s Resin is also a full web server faster than Apache httpd. It has a cloud aware load balancer, SQUID-like HTTP proxy caching, distributed caching, and third generation clustering. Resin also contains action-based server/JVM monitoring and just in time Java profiling with Web Admin, and full DevOp friendly REST and CLI control.
Caucho have been positioned by Gartner year over year as a driving force in the EAS market, not only a “visionary” but a “innovator” and “cool” vendor. Most recently Resin has been showcased in Netcraft’s February 2012 Web Server Survey for rapid growth in the million busiest sites.

Caucho have been positioned by Gartner year over year as a driving force in the EAS market, not only a “visionary” but a “innovator” and “cool” vendor. Most recently Resin has been showcased in Netcraft’s February 2012 Web Server Survey for rapid growth in the million busiest sites.

Caucho Technology
Caucho’s relentless quest for performance and reliability paved the way for Resin® to become one of the leading open source Java application servers since 1998 Our engineer’s dedication to the development, support and evolution of the Resin Java EE 6 Web Profile continues to uphold our reputation for quality, performance and manageability. We’ve helped over 4.7 million organizations worldwide including start-ups, governments and Fortune 500 companies build and grow their business with one of the most flexible, rock-solid and powerful application servers, Resin. Caucho is an Oracle Java EE licensee focusing on Web Profile and Cloud solutions. Our offices are located in San Diego and San Francisco, California.

Resin Application Server
Resin Pro, Caucho’s Java application server, features Resin Cloud Support (built on our 3rd generation clustering), Resin Health System (server JVM monitoring), Resin Cache (GC-less cache/JCache/Memcached) and Resin Web Server (a full featured, faster than Apache HTTPD, Web Server). Resin’s core networking code and durable caching is written in highly optimized C, giving Resin a 14-year earned reputation for speed and reliability. Leading companies worldwide with demand for reliability and high performance web applications including the Toronto Stock Exchange, Salesforce.com and CNET are powered by Resin.

Contact Information
Theresa Nguyen
VP of Sales & Marketing
Caucho Technology, Inc.
Telephone (858) 361-2736
[email protected]
http://www.caucho.com/

Caucho is visionary says Gartner's 9/2011 Magic Quadrant report for Enterprise Application Servers
13 years ago
Caucho Technology, the leader in lightweight high performance application servers, today announced that Gartner’s September 2011 Magic Quadrant for Enterprise Application Servers (EAS) report lists Caucho’s Resin as “Visionary”.

Gartner’s magic quadrants are overviews of the market’s competition within a specific market. The four quadrants are: Challengers, Leaders, Niche Players, and Visionaries.

Caucho has been categorized as a “visionary”. In order for Caucho to be included as a visionary in this market analysis, Caucho needed to demonstrate not only an understanding of the enterprise application server (EAS) market, but also where the market is heading. What’s more to compete in a market with leaders such as IBM, Microsoft, and Oracle, Caucho has to have innovative new features, while addressing current limitations from the leaders, and have a unique approach to enriching existing technology.

Caucho’s flagship product, Resin Java Application Server is a great example of how a visionary company can gain market share in the EAS market. Resin has a slew of new innovative features including:

-3rd-generation, cloud-optimized clustering,
-cloud deployment system,
-watchdog monitoring for reliability
-Health system for server monitoring and self-healing recovery.

Although referenced as a enterprise application server, Caucho’s Resin is also a full web server faster than Apache httpd. It has a cloud aware load balancer, SQUID-like HTTP proxy caching, distributed caching, and third generation clustering. Resin also contains action-based server/JVM monitoring and just in time Java profiling with Web Admin, and full DevOp friendly REST and CLI control.
Caucho have been positioned by Gartner year over year as a driving force in the EAS market, not only a “visionary” but a “innovator” and “cool” vendor. Most recently Resin has been showcased in Netcraft’s February 2012 Web Server Survey for rapid growth in the million busiest sites.

Caucho have been positioned by Gartner year over year as a driving force in the EAS market, not only a “visionary” but a “innovator” and “cool” vendor. Most recently Resin has been showcased in Netcraft’s February 2012 Web Server Survey for rapid growth in the million busiest sites.

Caucho Technology
Caucho’s relentless quest for performance and reliability paved the way for Resin® to become one of the leading open source Java application servers since 1998 Our engineer’s dedication to the development, support and evolution of the Resin Java EE 6 Web Profile continues to uphold our reputation for quality, performance and manageability. We’ve helped over 4.7 million organizations worldwide including start-ups, governments and Fortune 500 companies build and grow their business with one of the most flexible, rock-solid and powerful application servers, Resin. Caucho is an Oracle Java EE licensee focusing on Web Profile and Cloud solutions. Our offices are located in San Diego and San Francisco, California.

Resin Application Server
Resin Pro, Caucho’s Java application server, features Resin Cloud Support (built on our 3rd generation clustering), Resin Health System (server JVM monitoring), Resin Cache (GC-less cache/JCache/Memcached) and Resin Web Server (a full featured, faster than Apache HTTPD, Web Server). Resin’s core networking code and durable caching is written in highly optimized C, giving Resin a 14-year earned reputation for speed and reliability. Leading companies worldwide with demand for reliability and high performance web applications including the Toronto Stock Exchange, Salesforce.com and CNET are powered by Resin.

Contact Information
Theresa Nguyen
VP of Sales & Marketing
Caucho Technology, Inc.
Telephone (858) 361-2736
[email protected]
http://www.caucho.com/

Caucho is visionary says Gartner's 9/2011 Magic Quadrant report for Enterprise Application Servers
13 years ago
San Diego Java User’s Group has a new home

“The San Diego Java User’s Group has a new home for its monthly meetings! Caucho Technology Inc. of San Diego has graciously offered to host the SDJUG at their facility”, said Paul Webber, SDJUG President.

“Caucho is an active contributor to the Java ecosystem. We are excited to be able to help our local Java community by providing a facility that’s well suited for technology group presentations and is also easily accessible and free of time limitations” said Steve Montal, CEO and Co-founder of Caucho Technology. “We welcome the San Diego Java User’s Group and its members to our facility and we look forward to all the monthly meetings,” Montal added.

Caucho Resin Application Server


Caucho Technology to host San Diego Java User’s Group (SDJUG)
13 years ago
Caucho Technology, the leader in lightweight high performance application servers, announced Resin Memcached support is now available in version 4.0.24 and higher.

Resin Cache, Resin's JCache implementations, is an implementation of the Memcached protocol and supports all features of Memcached. Resin adds to Memcached true elasticity and persistence.

Built-in Resin elasticity capability allows for decreased load on the RDBM servers when new Resin Memcached nodes are added as compared to traditional Memcached. Proper RAM cache size can yield comparable or even better performance than Memcached daemon.



Caucho Resin | Application Server


Java Memcached | Resin Can Now Act As a Drop-in Replacement for Memcached Solution

13 years ago