JBoss Data Integration

Created by kylin.24th, Nov

Agenda

  • JBoss Data Grid
    • jGroups
    • JBossCache
    • Infinispan
  • JBoss Data Virtualization
    • Teiid

JBoss Data Grid / Infinispan

jGroups

  • JGroups is a toolkit for reliable messaging.
  • JGroups is a mature library, 50+ release, the underlying of JBossCache, infinispan, JBossCluster
  • belaban
  • https://github.com/belaban/JGroups
jGroups Architecture

JChannel channel = new JChannel(); 
channel.setName(“node1”);
channel.setReceiver(ReceiverAdapter);
channel.connect(“ChatDemo”);
channel.send(msg);
	

JChannel channel = new JChannel();
channel.setName(“node2”);
channel.setReceiver(ReceiverAdapter);
channel.connect(“ChatDemo”);
channel.send(msg);
        

Examples: https://github.com/kylinsoong/cluster/tree/master/jgroups

  1. Chat
  2. TankWar

JBossCache

  • JBoss Cache is a tree-structured, clustered, transactional cache.
  • Build on top of jGroups
  • Ben Wang
  • Usage
    • JBoss 5 or older version's cluster(Web Session, EJB, JMS, etc)
  • 2 way to run:
    • Standalone
    • Container
jGroups Architecture

Examples: https://github.com/kylinsoong/cluster/tree/master/jbosscache

  1. JBossCache Replication Demo

Infinispan

  • Transactional in-memory key/value NoSQL datastore
  • Distributed data grid platform
  • The 2nd generation JBossCache
  • JSR 107, JSR 347

Infinispan Distribution

  • Capacity = (memory * number) / numOwners
  • Buddy Replication, Large Web Application cluster
Infinispan Distribution

Infinispan Replication

Infinispan Replication

Infinispan Invalidation

Infinispan Invalidation

Key Features

  • Eviction
  • Expiration
  • Cache Loader

Client-Server Interface

  • Asynchronous API
  • REST API
  • Memcached Interface
  • Hot Rod Client(Java, C++, C#)

Infinispan Query

  • Query Values instead of Keys
  • Infinispan Query DSL

Examples: https://github.com/kylinsoong/cluster/tree/master/infinispan

  1. Infinispan Replication Demo
  2. CarMart
  3. Football

JBoss Data Virtualization / Teiid

What's Teiid

  • A Completed DataBase Implementation
  • Using JDBC + SQL access everthing(RDBMS, No-SQL, Saas, File/XML, Cache/Grid)
  • Data Source Adapter
  • Federation Between Data Source

Teiid Architecure - I

Teiid Architecure

Teiid Architecure - II

Teiid Architecure

Key Components

  • Query Engine(netty server, DQP)
  • Embedded(easy-to-use JDBC Driver, embedded the Query Engine)
  • Server(Subsystem on jboss-as-7/wildfly)
  • Connectors(JCA/Resource Adapters)
  • Client(jdbc Driver, REST, OData)
  • Teiid Designer(web-based on processing)
  • Admin Tools(Web Console, RHQ plugin, AdminShell)

Quick Starts

Demo

JBoss Data Virtualization Demo

Hands on

Free Discussion

  • 实践
  • JBoss production(traditional enterprise prods) interact with Internet prods

THE END