"I think there's a gap between how people architect applications and current trends in modern IT environments," said Cohen. "On one hand, we have ever growing processing capacity, which is no longer the classic interpretation of Moore's Law, it's about more and more cores. We have 8-core boxes now and we're going to have 12-core boxes really soon. Another thing is RAM, which traditionally has been very scarce, but nowadays we are seeing boxes and servers that have hundreds of gigabytes of memory. There's also networking, which was once considered a constrained resource - bandwidth was limited and latency was very high. Now we're seeing very fast networks. Lastly we have the trend around virtualization and the cloud."
On the other side of the gap are the application platforms, Cohen said. Most people have been architecting applications in the same way for the past 10-20 years. There have been improvements with Java EE, JPA, .NET, and Spring on the API-side, but Cohen says the architecture hasn't changed much (still involves a database, message queue, an app server, and a web server). IT organizations are facing new challenges that require throughput improvement and websites that can scale applications and large amounts of data up and down quickly to deal with sudden traffic changes. "In terms of how we build applications, we're not quite to that level yet," said Cohen "because people are still using the tiered approach to application architecture instead of building for scalability from the beginning." The vision of GigaSpaces, and the goal of their XAP is to bridge that gap. Version 7.1 takes a few steps toward that goal.
XAP 7.1 includes several major improvements in data handling. First, the SQL query feature has been given the ability to query and order data from nested objects. Indexes can now be on nested objects and index performance has significantly improved in this release. XAP 7.1 also allows architects to drill down into the JVM state and any data for deeper examination.
Through a UI or programmatic API, users may generate JVM thread and heap dumps, network utilization, logs, processing unit reports, space status reports, and more. Sys-admins can also create programs that watch logs for certain conditions. The new features in the administration API mean that the cluster can be treated like a single machine in terms of visibility.
To use the admin UI for a cluster in GigaSpaces, you previously had to direct desktop access to it. The technology preview of the Web Management module facilitates the administration of clusters from any location via the web, negating the need for a local GigaSpaces installation on each machine you'd like to use for administration.
Elastic Middleware Model GigaSpaces Platform Model
The most interesting new facets of this release are the technology previews around Elastic Middleware and the Web Administration model. The Elastic Middleware API (or just Elastic API) is a standard API that is being developed for deploying applications into GigaSpaces architecture. The Elastic API takes custom service levels for an application and ensures that the service levels are met. XAP 7.1 users can deploy to data grids with this API, but in future versions Cohen says they'll be able to deploy any type of application (e.g. Spring apps) using this API. The GigaSpaces data grid includes a lot of great features such as data access and querying, messaging, and MapReduce distributed code execution.
Joe Ottinger explains a potential use case for the Elastic API:
"Examples for the Elastic API might include something like this: you want at least twelve gigabytes of available storage, with no node being more than 80% full. You want to specify the G1 garbage collector, and each JVM should have a four gigabyte heap.
When you run this, the cluster will look for available machines, and start up cluster nodes automatically on them, with the parameters you want, until you have four primary JVMs (4G each, which at 80% load is the minimum to fulfill the available storage) and four backup JVMs (mirroring the primaries), all running the G1 garbage collector. If the system “fills up,” then it will expand the node by another set of JVMs (primary and backup) until it has the capacity to handle what you need. If your system “empties out,” it will shut down JVMs, saving you money and resources."
Cohen says that the next release of XAP will provide a powerful implementation of the JPA on top of the GigaSpaces data grid, which will significantly simplify the way users interact with the data grid and bring the power of JPA to distributed data stores (NOSQL).