What Does the Programmer's Guide Cover?

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.

Section Contents

  • Core API
    • Space ComponentA Space component allows you to create an IJSpace (or JavaSpace) based on a space URL.
    • GigaSpace ComponentThe JavaSpaces API is abstracted in OpenSpaces by a simple wrapper: the GigaSpace interface.
    • Map ComponentA Map component allows you to create an IMap (or JCache Cache) based on a Space component.
    • GigaMap ComponentThe IMap/JCache Cache API is abstracted in OpenSpaces by a simple wrapper: the GigaMap interface.
    • Executors ComponentExecutors allows to easily execute tasks on the space using the GigaSpace API.
    • Space Mode Context LoaderAllows 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 ContextAllows 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 APIAllows applications to start and stop a space; get status, statistics, and cluster mode; and shutdown a container.
  • Data Access
    • POJO SupportGigaSpaces JavaSpaces API Plain Old Java Object support - the POJO.
    • PersistencyGigaSpaces's persistency approach consists of several paradigms for data persistency, according to the application needs. This section gives a basic overview of each paradigm.
    • Transactions Support
    • Local Cache and Local View ComponentsOpenSpaces allows you to easily configure and use the space local view feature using the LocalViewSpaceFactoryBean component and local cache using LocalCacheSpaceFactoryBean.
    • SQLQueryThe SQLQuery class is used to query the space using the SQL like syntax.
    • Space Locking and BlockingUsing optimistic and pessimistic locking to preserve the integrity of changes in multi-user scenarios.
    • IndexingSetting implicit indexing, extended indexing, and related options.
    • Cluster-Aware OperationsSupported and non-supported operations, limitations, and considerations when working with a clustered space.
  • Messaging and Events
    • Notify Container ComponentThe notify event container uses the space inheritance support for notifications, using a GigaSpaces unified event session API.
    • Polling Container ComponentAllows you to perform polling receive operations against the space.
    • Data Event ListenerDescribe the common Space Data Event Listener and its different adapters.
    • JMSGigaSpaces 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.
  • Web Application Support
  • Processing UnitOpenSpaces support for processing unit construction and deployment, in accordance with the SBA pattern.
  • Integrations
    • Maven PluginInstalling the OpenSpaces Maven plugin, creating and running a Processing Unit project.
    • Mule ESBOpenSpaces 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.
  • Interoperability
    • Platform Interoperability in GigaSpacesThe 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.
  • Cloud Computing
  • Advanced Core Concepts
    • Space URLAn address, passed to GigaSpace, used to connect to a space and remotely create new spaces as well as enable various characteristics.
    • Externalizable SupportUsing Externalizable to boost remote space performance operations.
    • Communication ProtocolSetting communication protocol using exporters; GenericExporter configuration - ports, connections, and threads.
    • Memory Management FacilitySetting cache policy, memory usage and rules for exceeding physical memory capacity.
    • FIFO SupportHow to get objects in the same order in which they were written to the space.
    • Service ReloadingService reloading allows you to reload business logic without bringing down the Processing Unit.
    • Controlling SerializationControlling the Space Object non-primitive serialization mode when written/read from the space.
    • Lease ManagerThe space includes a dedicated thread that is responsible for clearing expired objects.
    • Slow ConsumerThe space includes a special mechanism that detects clients that cannot consume the notifications sent fast enough - i.e. slow consumers.
  • Examples
    • Data ExampleThis 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.
  • Appendix
    • XAP OverviewGigaSpaces 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 FAQFrequently asked questions about OpenSpaces.
    • XAP-Community FAQ
    • About JiniJini is an open architecture that allows the implementation of network services - One such service is JavaSpaces.
GigaSpaces.com - Legal Notice - 3rd Party Licenses - Site Map - API Docs - Forum - Downloads - Blog - White Papers - Contact Tech Writing - Gen. by Atlassian Confluence