This guide is written for application developers who wish to build scaled-out applications with GigaSpaces XAP. The guide provides all the information and tools needed to quickly develop either basic or more complex scaled-out applications. This includes reference documentation, foundations, APIs, configurations and more advanced topics.
Note that this guide is specific to XAP developers. For instructions for XAP.NET developers, please refer to the XAP.NET Programmer's Guide.
Space Component — A Space component allows you to create an IJSpace (or JavaSpace) based on a space URL.
GigaSpace Component — The JavaSpaces API is abstracted in OpenSpaces by a simple wrapper: the GigaSpace interface.
Map Component — A Map component allows you to create an IMap (or JCacheCache) based on a Space component.
GigaMap Component — The IMap/JCacheCache API is abstracted in OpenSpaces by a simple wrapper: the GigaMap interface.
Executors Component — Executors allows to easily execute tasks on the space using the GigaSpace API.
Space Mode Context Loader — Allows you to load a Spring application context only when the Processing Unit or space is in primary mode, and unload it when the Processing Unit or space is in backup mode.
GigaSpace Context — Allows you to inject a predefined GigaSpace instance using annotations.
Programmatic API (Configurers) — This section describes how you can use OpenSpaces components in a non-Spring environment. The constructs which are used to create and configure GigaSpaces components are called Configurers .
Administration API — Allows applications to start and stop a space; get status, statistics, and cluster mode; and shutdown a container.
POJO Support — GigaSpaces JavaSpaces API Plain Old Java Object support - the POJO.
Persistency — GigaSpaces's persistency approach consists of several paradigms for data persistency, according to the application needs. This section gives a basic overview of each paradigm.
Local Cache and Local View Components — OpenSpaces allows you to easily configure and use the space local view feature using the LocalViewSpaceFactoryBean component and local cache using LocalCacheSpaceFactoryBean.
SQLQuery — The SQLQuery class is used to query the space using the SQL like syntax.
Space Locking and Blocking — Using optimistic and pessimistic locking to preserve the integrity of changes in multi-user scenarios.
Indexing — Setting implicit indexing, extended indexing, and related options.
Cluster-Aware Operations — Supported and non-supported operations, limitations, and considerations when working with a clustered space.
Notify Container Component — The notify event container uses the space inheritance support for notifications, using a GigaSpaces unified event session API.
Data Event Listener — Describe the common Space Data Event Listener and its different adapters.
JMS — GigaSpaces allows applications to use the space as a messaging hub. Applications use JMS to create topics and queues as usual; these are transparently translated into space Entries.
Remoting (SVF) — Remoting allows you to use remote invocations of POJO services, with the space as the transport layer.
Executor Remoting Component — Executor Remoting allows you to use remote invocations of POJO services, with the space as the transport layer using OpenSpaces Executors.
Sync Remoting Component — Sync Remoting allows you to use remote invocations of POJO services, with the space as the transport layer.
Async Remoting Component — Async Remoting allows you to use remote invocations of POJO services, with the space as the transport layer.
Maven Plugin — Installing the OpenSpaces Maven plugin, creating and running a Processing Unit project.
Mule ESB — OpenSpaces Mule ESB integration allows you to use the Space as a Mule external transport, replace Mule VM transport with transport over the Space, enhances the Mule SEDA model, and can be packaged and run as a Processing Unit.
Platform Interoperability in GigaSpaces — The possibility for organizations whose projects include a combination of Java, .NET and C++ platforms to communicate and access each other easily and efficiently while also maintaining the benefits of the GigaSpaces scale-out application server.
C++ — The GigaSpaces C++ API has been designed to allow the same level of flexibility, usability and interoperability of the Java POJO and .NET C# PONO counterpart APIs for building scalable, low-latency SBA applications.
Space URL — An address, passed to GigaSpace, used to connect to a space and remotely create new spaces as well as enable various characteristics.
Externalizable Support — Using Externalizable to boost remote space performance operations.
Communication Protocol — Setting communication protocol using exporters; GenericExporter configuration - ports, connections, and threads.
Memory Management Facility — Setting cache policy, memory usage and rules for exceeding physical memory capacity.
FIFO Support — How to get objects in the same order in which they were written to the space.
Service Reloading — Service reloading allows you to reload business logic without bringing down the Processing Unit.
Controlling Serialization — Controlling the Space Object non-primitive serialization mode when written/read from the space.
Lease Manager — The space includes a dedicated thread that is responsible for clearing expired objects.
Slow Consumer — The space includes a special mechanism that detects clients that cannot consume the notifications sent fast enough - i.e. slow consumers.
Data Example — This example gives a more extensive overview of OpenSpaces, the Processing Unit and the enhanced configurations in the pu.xml file. The example contains two Processing Units; one that feeds data objects into the system, and another that reads those objects and processes them.
XAP Overview — GigaSpaces XAP is a platform for scaling out stateful applications. XAP uses the GigaSpaces space as a core middleware, and provides the Spring-based Open Spaces framework as a development environment.
OpenSpaces FAQ — Frequently asked questions about OpenSpaces.