Skip to content

Latest commit

 

History

History
103 lines (84 loc) · 10.5 KB

index.markdown

File metadata and controls

103 lines (84 loc) · 10.5 KB
layout title categories
post
Solutions, Patterns & Best Practices
SBP

This section contains GigaSpaces XAP known patterns, solutions and best practicees that we've accumulated over time based on numerous real life use cases. Each pattern is listed with its author/origin, and the XAP product version that it was tested with.

{% note title=Important Note%}The patterns below are presented as is. While most of them are used in real life use cases and productions environments, and GigaSpaces is making its best effort to keep them up to date, they should not be considered as fully productized artifacts, and you should test them in your own environment before using them.{% endnote %}

Data Access Patterns

{: .table .table-bordered}

Pattern Level Description
Kafka Integration Advanced This pattern explains how to integrate XAP with Kafka.
Cache Interface Beginner This pattern explains how to implement a cache interface using the Map API.
Moving from Hibernate to Space Beginner Moving from Database Centric into In-Memory Model. Can be used when moving from J2EE Session Bean into XAP.
Finding Partition Load Beginner Monitoring Data Grid partitions in real time.
Even Data Distribution Beginner Technique to ensure even data load-balancing with partitioned IMDG.
Space Object Modeling Beginner Migrating Relational Model into Object model.
Oracle Delta Server Beginner This pattern presents the Oracle Delta Server allowing the data grid to receive updates from the database conducted by applications that are not using the data grid as their system of record (Non-Aware Data-Grid Clients)
Excel that Scales Solution Beginner Leveraging GigaSpaces .Net API to scale Excel applications.
Global ID Generator Beginner Replacing Database sequencing with lightweight In-Memory ID Generator.
Web Service PU Beginner Web Service Processing Unit. Using the CXF Framework.
ODBC Driver Beginner Accessing GigaSpaces Data Grid via 3rd party ODBC Driver.
IMDG with Large Backend Database Support Advanced Leveraging IMDG running in LRU mode with large backend Database.
DB2 Delta Server Advanced This pattern presents the DB2 Delta Server allowing the data grid to receive updates from the database conducted by applications that are not using the data grid as their system of record (Non-Aware Data-Grid Clients)
Dynamic Polling Container Templates using TriggerOperationHandler Advanced Polling Containers using TriggerOperationHandler
Custom Matching Advanced Implementing complex customized queries for pattern matching.
Custom Eviction Advanced Implementing used defined data eviction when using large backend Database.
Lowering the Space Object Footprint Advanced Implementing compaction API to reduce the object footprint when storing objects with large numeric values.
Rapid Data Load Advanced Loading large amount of data into each partition using Map-Reduce technique.
Schema Evolution Advanced Leveraging different techniques to enhance the application data model without IMDG downtime.
Distributed Bitmap Advanced Use XAP to distribute a bitmap across a partitioned cluster.
Modeling your data Beginner Moving from a centralized to a distributed data store.

Parallel Processing & Messaging Patterns

{: .table .table-bordered}

Pattern Level Description
Map-Reduce Pattern - Executors Example Beginner Implementing Task Executors and Service Executors to perform parallel queries or parallel processing across multiple IMDG partitions. Can be used when moving from J2EE EJB/RMI/IIOP into XAP.
Master-Worker Pattern Beginner Grid computing pattern. Implementing distributed processing across multiple workers deployed into the Grid.
Event Driven Remoting Example Beginner Request-Response pattern. Implementing asynchronous remove service invocation. Can be used when moving from J2EE MDB into XAP.
Mule ESB Example Advanced Scaling ESB based application. Using the IMDG as the ESB state repository. Deploying the ESB into the GigaSpaces grid allowing it to scale in an elastic manner.
Priority Based Queue Advanced Messaging based pattern. Can be used when moving from J2EE JMS Quality of Service into XAP.
Parallel Queue Pattern Advanced Messaging based pattern. Can be used when moving from J2EE JMS Service Activator Aggregator Strategy/MDB into XAP.
Unit Of Work Advanced Messaging based pattern. Can be used when moving from J2EE JMS Unit of Order into XAP.
Drools Rule Engine Integration Advanced Scaling business rule management system based application.
Spring Batch PU Advanced Complex Batch Processing using Spring Batch.
JTA-XA Example Advanced Integrating GigaSpaces with an external JMS Server using XA. Atomikos is used as the JTA Transaction provider. Apache ActiveMQ is used as a the JMS provider.

Setup Production Environment

{: .table .table-bordered}

Pattern Level Description
Embedding Tomcat as a Web Container Beginner This article presents embedding Tomcat 7 within the XAP data grid
Embedding XAP for OEMs Beginner A quick and simple example of how an OEM might embed GigaSpaces XAP for customer use.
Universal Deployer Beginner Allows deploying composite applications. Support multiple processing unit dependency based deployment.
Data-Collocation Deployment Topology Beginner Considerations which topology to choose when deploying both business logic and data into the Grid.
Mirror Monitor Beginner Monitoring asynchronous persistency behavior in real time using JMX.
Safe Grid Shutdown Beginner Cleanly shutting down the grid after all async replication operations are committed.
Hyperic integration Beginner Hyperic monitoring integration example.
Primary-Backup Zone Controller Beginner Using Zones to control Data-Grid primary/backup instances location.
RESTful Admin API Beginner Using web services to monitor and administrate GigaSpaces.
JMX Space Statistics Beginner Using JMX to expose space statistics.
Space Dump and Reload Beginner Using the administration API to dump the space data into a file and reload it back.
Scaling Agent Beginner Using the administration API to scale web applications. Can be used when moving J2EE Web applications into XAP elastic Web Container.
Web Load Balancer Agent PU Advanced Using the administration API to build customized HTTP load-balancer agent. Can be used when moving J2EE Web applications into XAP elastic Web Container.
Moving into Production Checklist Advanced All what you need to review before moving your system into production.
Capacity Planning Advanced Considerations for sizing your system before moving into production.
Refreshable Business Logic Example Advanced Using the administration API to reload new application code (hot deploy) while the application is running.
Recipes For XAP Cloud Deployment Advanced Recipes For XAP Cloud Deployment.
Puppet to install and configure XAP Advanced This pattern explains how to use Puppet to install and configure XAP.

WAN Based Deployment

{: .table .table-bordered}

Pattern Level Description
Clusters Over WAN Beginner Example for WAN replication implementation.
WAN Gateway Pass Through Replication Beginner Example for implementing a pass through WAN replication topology.
WAN Gateway Master Slave Replication Beginner Example for implementing a single-master/multi-slave replication topology.
Observable WAN Advanced Monitor and measure the replication performance of a multi-site deployment.

Solutions

{: .table .table-bordered}

Pattern Level Description
Elastic Distributed Calculation Engine Advanced Elastic Distributed Calculation Engine implementation using Map-Reduce approach.
Trading Settlement Advanced A trading settlement system where the entire tier-based architecture is built on GigaSpaces.
Mainframe Integration Advanced GigaSpaces XAP can simplify the migration effort from mainframe based systems and reduce the cost of the legacy applications. GigaSpaces XAP act as a front-end layer for mainframe based systems may boost the system performance and improve the overall system response time on peak load.
Global Http Session Sharing Advanced Global HTTP Session Sharing allows transparent session replication between remote sites and sharing between different application servers in real-time.