Dashboard > GridGain User Guide > Table Of Contents > Developers Guide > Grid Interface > Information > Page Comparison
Grid Interface
Version 13 by morpheus
on Feb 18, 2008 00:55.


compared with
Current by morpheus
on Feb 18, 2008 00:59.

(show comment)
 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 1 changes. View first change.

 * [#Grid Task Management]
 * [#Topology Management]
 * [#Message Exchange]
 * [#System Events Management]
  
 Most of the functionality provided by GridGain is accessible through {{Grid}} {javadoc:Grid.html} interface. Most of the time when using GridGain you will be interacting with Grid interface and various other helper interfaces and classes such as listeners and adapters.
  
 Grid interface defines a grid instance. In GridGain, a notion of grid instance is synonymous to grid node as node and grid instance have one-to-one relationship. Grid node defines a logical location of the grid instance, and grid instance defines Java runtime operating on that logical node. GridGain support multiple grid instances (and thus nodes) on the same VM, on the same computer or on different computers over various types of networks.
  
 Grid instance can be obtains from {{GridFactory}} {javadoc:GridFactory.html}. {{GridFactory}} can provide default (unnamed) grid instance or named. Most of the time you will use default unnamed grid instance:
 {code}
 GridFactory.start();
  
 try {
  Grid grid = GridFactory.getGrid();
  
  // Using grid instance.
 }
 finally {
  GridFactory.stop(true);
 }
 {code}
  
 Grid interface provides several areas of functionality:
 * Grid task Management
 * Topology Management
 * Message Exchange
 * System Events Management
  
 h2. Grid Task Management
 {{Grid}} interface main functional goal is to execute grid tasks. In GridGain you can execute grid task asynchronously and synchronously.
 * {{execute(String, Object)}} {javadoc:Grid.html#execute(java.lang.String, T)}
 * {{execute(String, Object, long)}} {javadoc:Grid.html#execute(java.lang.String, T, long)}
 * {{execute(String, Object, GridTaskListener)}} {javadoc:Grid.html#execute(java.lang.String, T, org.gridgain.grid.GridTaskListener)}
 * {{execute(String, Object, long, GridTaskListener)}} {javadoc:Grid.html#execute(java.lang.String, T, long, org.gridgain.grid.GridTaskListener)}
 * {{execute(Class<? extends GridTask<T,R>>, T)}} {javadoc:Grid.html#execute(java.lang.Class, T)}
 * {{execute(Class<? extends GridTask<T,R>>, T, long)}} {javadoc:Grid.html#execute(java.lang.Class, T, long)}
 * {{execute(Class<? extends GridTask<T,R>>, T, GridTaskListener)}} {javadoc:Grid.html#execute(java.lang.Class, T, org.gridgain.grid.GridTaskListener)}
 * {{execute(Class<? extends GridTask<T,R>>, T, long, GridTaskListener)}} {javadoc:Grid.html#execute(java.lang.Class, T, long, org.gridgain.grid.GridTaskListener)}
 * {{execute(GridTask<T,R>, T)}} {javadoc:Grid.html#execute(org.gridgain.grid.GridTask, T)}
 * {{execute(GridTask<T,R>, T, long)}} {javadoc:Grid.html#execute(org.gridgain.grid.GridTask, T, long)}
 * {{execute(GridTask<T,R>, T, GridTaskListener)}} {javadoc:Grid.html#execute(org.gridgain.grid.GridTask, T, org.gridgain.grid.GridTaskListener)}
 * {{execute(GridTask<T,R>, T, long, GridTaskListener)}} {javadoc:Grid.html#execute(org.gridgain.grid.GridTask, T, long, org.gridgain.grid.GridTaskListener)}
  
  {{Grid}} interface also allows manual deployment and undeployment of grid tasks (apart from deployment managed by deployment SPI):
  {{Grid}} interface also allows manual deployment and undeployment of grid tasks (apart from deployment managed by deployment SPI). Note that if Peer Class Loading is enabled (default behavior), then tasks will be deployed automatically. Also note that tasks are auto-deployed first time they get executed via any of the {{execute(..)}} methods listed above.
 * {{deployTask(Class<? extends GridTask<?>>)}} {javadoc:Grid.html#deployTask(java.lang.Class)}
 * {{getLocalTasks()}} {javadoc:Grid.html#getLocalTasks()}
 * {{undeployTask(String)}} {javadoc:Grid.html#undeployTask(java.lang.String)}
  
 h2. Topology Management
 Topology management is one of the key functional areas provided by {{Grid}} interface. GridGain provides basic set of operations such as topology listeners and access to all grid nodes:
 * {{getLocalNode()}} {javadoc:Grid.html#getLocalNode()}
 * {{getAllNodes()}} {javadoc:Grid.html#getAllNodes()}
 * {{getRemoteNodes()}} {javadoc:Grid.html#getRemoteNodes()}
 * {{getNode(UUID)}} {javadoc:Grid.html#getNode(java.util.UUID)}
 * {{pingNode(UUID)}} {javadoc:Grid.html#pingNode(java.util.UUID)}
 * {{addDiscoveryListener(GridDiscoveryListener)}} {javadoc:Grid.html#addDiscoveryListener(org.gridgain.grid.GridDiscoveryListener)}
 * {{removeDiscoveryListener(GridDiscoveryListener)}} {javadoc:Grid.html#removeDiscoveryListener(org.gridgain.grid.GridDiscoveryListener)}
  
 h2. Message Exchange
 Message exchange is not direct grid functionality but often required in real-life systems. Along with topology management, message exchange (implemented via communication SPI) provides developer with basic cluster operations. Using the following methods user can send message to one or multiple nodes and subscribe the listener for receiving messages:
 * {{sendMessage(GridNode, Serializable)}} {javadoc:Grid.html#sendMessage(org.gridgain.grid.GridNode, java.io.Serializable)}
 * {{sendMessage(Collection<GridNode>, Serializable)}} {javadoc:Grid.html#sendMessage(java.util.Collection, java.io.Serializable)}
 * {{addMessageListener(GridMessageListener)}} {javadoc:Grid.html#addMessageListener(org.gridgain.grid.GridMessageListener)}
 * {{removeMessageListener(GridMessageListener)}} {javadoc:Grid.html#removeMessageListener(org.gridgain.grid.GridMessageListener)}
  
 h2. System Events Management
 Every significant action in GridGain generates event. All events are stored locally on the node where they were generated. User can use distributed query facility in GridGain to query events on the grid:
 * {{queryEvents(GridEventFilter, Collection<GridNode>, long)}} {javadoc:Grid.html#queryEvents(org.gridgain.grid.GridEventFilter, java.util.Collection, long)}
 * {{queryLocalEvents(GridEventFilter)}} {javadoc:Grid.html#queryLocalEvents(org.gridgain.grid.GridEventFilter)}
 * {{addLocalEventListener(GridLocalEventListener)}} {javadoc:Grid.html#addLocalEventListener(org.gridgain.grid.GridLocalEventListener)}
 * {{removeLocalEventListener(GridLocalEventListener)}} {javadoc:Grid.html#removeLocalEventListener(org.gridgain.grid.GridLocalEventListener)}
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.2.10 Build:#528 Nov 29, 2006) - Bug/feature request - Contact Administrators