GigaSpaces XAP offers a Platform as a Service (PaaS) solution that allows developers and enterprises to deploy and scale existing applications as well as build new enterprise applications in the cloud. The solution supports everything from mission-critical applications demanding extreme performance to large-scale Web applications based on popular frameworks such as Java EE (JEE), .NET, Spring and Jetty.
The main components of the GigaSpaces PaaS are:
- GigaSpaces XAP is an application server that provides a complete environment for deploying and running enterprise applications, including multi-tenancy, enterprise-grade middleware and auto scaling — either in or outside the cloud. XAP’s architecture enables organizations — including companies such as Dow Jones, Virgin Mobile and Sempra Energy — to flexibly move between their data centers and the cloud or to use both simultaneously. This approach offers a clear migration path from a hosted or on-premise environment to the public cloud.
- GoGrid is a cloud hosting service that provides the underlying hardware infrastructure. ServePath, the providers of GoGrid, offer dedicated hosting for the enterprise market with the requisite uptime, security, and service level agreements.
Overcoming Enterprise Java Complexity
JEE has been criticized for its complexity. This complexity mostly relates to complex programming models, complex configurations that rely heavily on XML, and bloated specifications, which result in heavyweight and complex application servers.
Recent versions of JEE (Java EE 5 and Java EE 6, which hasn’t been finalized yet) are taking the first steps to address such complexity through a POJO-based programming model and the use of profiles.
However, the development community has not waited for the Java Community Process (JCP) to keep up with current trends and needs. Alternative programming models and development frameworks have emerged, the most dominant one being the Spring Framework, which promotes dependency injection, a POJO-based programming model, and aspect-oriented programming. GigaSpaces XAP adopts this style of programming as part of its core OpenSpaces APIs.
Another complexity issue is that JEE and other application servers were designed to solve a set of very similar problems around business logic processing. Data storage/management and messaging issues are not integrated with these app servers. Consequently, the burden of integrating apps and systems falls onto development teams.
GigaSpaces XAP takes a different approach. Space-based Architecture (SBA) calls for viewing the problem from end to end and providing a complete solution without the need for complex integration within the boundaries of applications and systems.
Foundations of GigaSpaces XAP
At the core of GigaSpaces XAP is GigaSpaces’ in-memory data grid (IMDG), also known as The Space.
The Space is a data grid implementation whose API is inspired primarily by the JavaSpaces specification and the powerful tuple space model. However, as one would expected from any modern data grid implementation, The Space contains richer functionality, supporting modern paradigms like POJO-based data objects, Java 5 generics, and dependency injection.
The GigaSpaces IMDG supports multiple clustering topologies (partitioned, replicated, master/local, and more) and enables developers to store vast amounts of data in the memory of data grid instances, while maintaining high availability through replication to peer instances in the cluster.
The Space integrates with all major relational databases via the JDBC API and the Hibernate ORM framework.
GigaSpaces Cross-Language Support and Interoperability
Although the core Space runtime is implemented in Java, the IMDG also supports .NET and C++ out- of-the-box. This enables developers to access The Space from multiple environments and from any language with Java, C++, or .NET integrations. Developers can even run .NET and C++ code within the Space, utilizing the data grid’s compute resources and co-location with the data.
Another important aspect of this capability is the interoperability between languages. One client can write an object in C++, another can read it in .NET, and another can update it in Java. The IMDG supports interoperability between all primitive types, primitive wrappers, collections (Lists, Maps) and even custom user-defined classes. This interoperability enables developers to integrate various applications or access the same application from various environments.
The GigaSpaces Enterprise Cloud Feature List
GigaSpaces PaaS provides features for enterprises to deploy their production applications on the cloud. Notable benefits include:
- Multi-tenancy, auto scaling, data grid, messaging and grid processing services with enterprise-grade security
- Technology automatically scales up at peak load times and scales back down when the load decreases
- Automatic failover and self-healing of failed services
- Ability to create, save, and deploy customer server images
- Fully tested and optimized GoGrid images for GigaSpaces XAP
- Reduced ramp-up time for a broad range of applications
The solution reduces the investment required to migrate and set up applications on the cloud, allowing developers to use the cloud for standard Web apps as well as mission-critical enterprise apps.