SlideShare a Scribd company logo
 
A Java Developer’s Introduction to In-Memory Distributed Computing James Bayer Principal Sales Consultant
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. ©2009 Oracle Corporation
Agenda  Defining a Data Grid Coherence Clustering Data Management Options Data Processing Options The Coherence Incubator <Insert Picture Here>
<Insert Picture Here> Defining a Data Grid
<Insert Picture Here> “ A  Data Grid  is a system composed of  multiple servers that work together to manage information  and related operations - such as computations - in a  distributed environment .”
<Insert Picture Here> Coherence Clustering
Coherence Clustering: Tangosol Clustered Messaging Protocol (TCMP) Completely  asynchronous  yet  ordered  messaging built on UDP multicast/unicast Truly  Peer-to-Peer : equal responsibility for  both producing and consuming  the services of the cluster Self Healing  - Quorum based diagnostics Linearly scalable  mesh architecture . TCP-like features Messaging throughput scales to the network infrastructure.
Coherence Clustering: The Cluster Service Transparent ,  dynamic  and  automatic  cluster membership management Clustered Consensus:   All members  in the cluster understand the topology of the  entire grid  at  all times . Crowdsourced  member  health diagnostics
Coherence Clustering: The Coherence Hierarchy One Cluster  (i.e. “singleton”) Under the cluster there are  any number of uniquely named Services  (e.g. caching service) Underneath each caching service  there are any number of uniquely named Caches
<Insert Picture Here> Data Management Options
Data Management: Partitioned Caching Extreme Scalability:  Automatically, dynamically and transparently partitions the data set across the members of the grid.  Pros: Linear scalability of data capacity  Processing power scales with data capacity. Fixed cost per data access Cons: Cost Per Access:  High percentage chance that each data access will go across the wire. Primary Use: Large in-memory storage environments Parallel processing environments
Data Management: Partitioned Fault Tolerance Automatically, dynamically and transparently  manages the  fault tolerance  of your data. Backups are guaranteed  to be on a separate physical machine as the primary. Backup responsibilities for one node’s data is  shared amongst the other nodes  in the grid.
Data Management: Cache Client/Cache Server Partitioning can be controlled on a  member by member basis . A  member is either responsible for an equal partition of the data or not  (“storage enabled” vs. “storage disabled”) Cache Client  – typically the application instances Cache Servers  – typically stand-alone JVMs responsible for storage and data processing only.
Data Management: Near Caching Extreme Scalability &  Performance  The best of both worlds between the Replicated and Partitioned topologies. Most recently/frequently used data is stored locally. Pros: All of the same Pros as the Partitioned topology plus… High percentage chance data is local to request. Cons: Cost Per Update:  There is a cost associated with each update to a piece of data that is stored locally on other nodes. Primary Use: Large in-memory storage environments with likelihood of repetitive data access.
Data Management: Data Affinity The ability to  associate objects across caches  guaranteeing they are located  on the same member . Typical Use Case:  Parent Child relationships
<Insert Picture Here> Data Processing Options
Data Processing: Events -  JavaBean Event Model Listen to all events for all keys ENTRY_DELETED ENTRY_INSERTED ENTRY_UPDATED NamedCache cache = CacheFactory.getCache(“myCache”); cache.addMapListener( listener );
Data Processing: Events -  Key Based Event Model Listen to changes to a specific key NamedCache cache = CacheFactory.getCache(“myCache”); cache.addMapListener( listener, key );
Data Processing: Events -  Filter Based Event Model Listen to a changes to data that match a specific criteria (i.e. Filter) NamedCache cache = CacheFactory.getCache(“myCache”); cache.addMapListener( listener, filter );
Data Processing: Parallel Query Programmatic query mechanism Queries performed in parallel across the grid Standard indexes provided out-of-the-box and supports implementing your own custom indexes Cost-based analysis of Filter application Standard Filters provided out-of-the-box (e.g. OR, AND, ALL, EQUALS, etc.)
Data Processing: Parallel Query // get the “myTrades” cache NamedCache cacheTrades = CacheFactory.getCache(“myTrades”); // create the “query” Filter filter =  new AndFilter( new EqualsFilter(&quot;getTrader&quot;, traderid), new EqualsFilter(&quot;getStatus&quot;, Status.OPEN)); // perform the parallel query  Set setOpenTrades = cacheTrades.entrySet(filter) ;
Data Processing: Parallel Query
Data Processing: Parallel Query
Data Processing: Parallel Query
Data Processing: Parallel Query
Data Processing: Continuous Query Cache Automatically, transparently and dynamically maintains a view locally based on a specific criteria (i.e. Filter) Same API as all other Coherence caches Support local listeners. Supports layered views
Data Processing: Continuous Query Cache // get the “myTrades” cache NamedCache cacheTrades = CacheFactory.getCache(“myTrades”); // create the “query” Filter filter =  new AndFilter( new EqualsFilter(&quot;getTrader&quot;, traderid), new EqualsFilter(&quot;getStatus&quot;, Status.OPEN)); // create the continuous query cache NamedCache cqcOpenTrades = new ContinuousQueryCache(cacheTrades, filter) ;
Data Processing: Continuous Query Cache
Data Processing: Continuous Query Cache
Data Processing: Continuous Query Cache
Data Processing: Continuous Query Cache
<Insert Picture Here> End Of Part I
<Insert Picture Here> Part II
Data Processing: Invocable Map The  inverse of caching Sends the processing (e.g. EntryProcessors) to where the data is in the grid Standard EntryProcessors provided Out-of-the-box Once and only once guarantees Processing is automatically fault-tolerant Processing can be: Targeted to a specific key Targeted to a collection of keys Targeted to any object that matches a specific criteria (i.e. Filter)
Data Processing: Invocable Map // get the “myTrades” cache NamedCache cacheTrades = CacheFactory.getCache(“myTrades”); // create the “query” Filter filter =  new AndFilter( new EqualsFilter(&quot;getTrader&quot;, traderid), new EqualsFilter(&quot;getStatus&quot;, Status.OPEN)); // perform the parallel processing cacheTrades.invokeAll(filter, new CloseTradeProcessor()) ;
Data Processing: Invocable Map
Data Processing: Invocable Map
Data Processing: Invocable Map
Data Processing: Invocable Map
Data Processing: Triggers Inject pre-processing logic to data being added to a cache. Similar to  EntryProcessors, but fired before a mutation takes place. They allow your “process” method to override, replace, decorate, remove or fail a cache mutation. Adds veto ability to data insertion. Common Uses: Prevent invalid transactions; Enforce complex security authorizations; Enforce complex business rules; Gather statistics on data modifications;
Data Processing: Triggers
Data Processing: Triggers
Data Processing: Triggers
The Coherence Incubator http://coherence.oracle.com/display/INCUBATOR/
The Coherence Incubator The Coherence Incubator  hosts a repository of projects   providing  example implementations  for commonly used design patterns, system integration solutions, distributed computing concepts and other artifacts designed to enable rapid delivery of solutions to potentially complex business challenges  built using or based on Oracle Coherence .
The Coherence Incubator: The Command Pattern Distributed implementation of the classic Command Pattern Useful alternative to EntryProcessors with the advantage that Commands are executed asynchronously. Provides essential infrastructure for several other Incubator projects to permit  guaranteed, in-order, asynchronous processing of Commands .
The Coherence Incubator: The Command Pattern
The Coherence Incubator: The Functor Pattern This is an  example implementation  of  Function Objects (Wikipedia)  or as it is also known, the Functor Pattern, built with Coherence. The Functor Pattern is an extension to the  Command Pattern . In fact the semantics are identical with the exception that the Functor Pattern additionally provides a mechanism to return values (or re-throw exceptions) to the  Submitter  (using Java 5+  Futures ) where as the  Command Pattern  does not provide such capabilities.
Functor Pattern: Quick Overview Of Auction App Goal Demonstrate the Grid Differentation in WLS Suite Show a close to real life application Coherence  Coherence Patterns Grid Messaging Shows WLS JMS and AQ integration Eclipse JPA Best of breed JPA implementation  Integration Check points Coherence Web Administrative WLST and Domain templates
 
What Happens when you create an Auction Uses EclipseLink JPA to store in Oracle RDBMS Registers the Auction in Coherence Enqueues a message to be Delivered in the FUTURE
What happens during bidding? A submit bid goes to coherence context registered Request gets co-located and queued WLS Returns On Coherence Each bid is processed in order Rules are checked  Price is updated Stored in Oracle in RDBMS
How do Auctions Close? MDB listens for a dequeue…. If reserve has been meet move to settlement If not mark as closed Auction is removed from the bidding engine
The Coherence Incubator http://coherence.oracle.com/display/INCUBATOR/
For More Information ©2009 Oracle Corporation  search.oracle.com Oracle coherence or oracle.com
For More Information Visit the Oracle Fusion Middleware 11g web site at  http://www.oracle.com/fusionmiddleware11g   Oracle  WebLogic Server on oracle.com  http://www.oracle.com/appserver   Oracle  Application Grid on oracle.com  http://ww.oracle.com/goto/applicationgrid   Oracle  Fusion Middleware on OTN  http://otn.oracle.com/middleware    Get Started App Grid Blog   http://blogs.oracle.com/applicationgrid   For WebLogic Server technical information:   http://www.oracle.com/technology/products/weblogic/   For Application Grid technical information   http://www.oracle.com/technology/tech/grid/   Resources
 
Ad

More Related Content

What's hot (17)

Weblogic performance tuning1
Weblogic performance tuning1Weblogic performance tuning1
Weblogic performance tuning1
Aditya Bhuyan
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
prathap kumar
 
WLST
WLSTWLST
WLST
Bhavya Siddappa
 
WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...
WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...
WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...
Jeffrey West
 
Database Connection Pooling With c3p0
Database Connection Pooling With c3p0Database Connection Pooling With c3p0
Database Connection Pooling With c3p0
Kasun Madusanke
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Climbing the beanstalk
Climbing the beanstalkClimbing the beanstalk
Climbing the beanstalk
gordonyorke
 
Weblogic configuration
Weblogic configurationWeblogic configuration
Weblogic configuration
Aditya Bhuyan
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
James Bayer
 
Reactive Relational Database Connectivity
Reactive Relational Database ConnectivityReactive Relational Database Connectivity
Reactive Relational Database Connectivity
VMware Tanzu
 
Noha mega store
Noha mega storeNoha mega store
Noha mega store
Noha Elprince
 
Oracle Web Logic server
Oracle Web Logic serverOracle Web Logic server
Oracle Web Logic server
Rakesh Gujjarlapudi
 
Weblogic server administration
Weblogic server administrationWeblogic server administration
Weblogic server administration
bispsolutions
 
Weblogic plug in
Weblogic plug inWeblogic plug in
Weblogic plug in
Aditya Bhuyan
 
Weblogic performance tuning2
Weblogic performance tuning2Weblogic performance tuning2
Weblogic performance tuning2
Aditya Bhuyan
 
Introduction to weblogic
Introduction to weblogicIntroduction to weblogic
Introduction to weblogic
Vishal Srivastava
 
Java script framework
Java script frameworkJava script framework
Java script framework
Debajani Mohanty
 
Weblogic performance tuning1
Weblogic performance tuning1Weblogic performance tuning1
Weblogic performance tuning1
Aditya Bhuyan
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
prathap kumar
 
WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...
WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...
WebLogic Developer Webcast 5: Troubleshooting and Testing with WebLogic, Soap...
Jeffrey West
 
Database Connection Pooling With c3p0
Database Connection Pooling With c3p0Database Connection Pooling With c3p0
Database Connection Pooling With c3p0
Kasun Madusanke
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Climbing the beanstalk
Climbing the beanstalkClimbing the beanstalk
Climbing the beanstalk
gordonyorke
 
Weblogic configuration
Weblogic configurationWeblogic configuration
Weblogic configuration
Aditya Bhuyan
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
James Bayer
 
Reactive Relational Database Connectivity
Reactive Relational Database ConnectivityReactive Relational Database Connectivity
Reactive Relational Database Connectivity
VMware Tanzu
 
Weblogic server administration
Weblogic server administrationWeblogic server administration
Weblogic server administration
bispsolutions
 
Weblogic performance tuning2
Weblogic performance tuning2Weblogic performance tuning2
Weblogic performance tuning2
Aditya Bhuyan
 

Viewers also liked (14)

Cf application manifest
Cf application manifestCf application manifest
Cf application manifest
James Bayer
 
64 bit arch
64 bit arch64 bit arch
64 bit arch
James Bayer
 
Application Grid Dev with Coherence
Application Grid Dev with CoherenceApplication Grid Dev with Coherence
Application Grid Dev with Coherence
James Bayer
 
Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
James Bayer
 
WebLogic Administration course outline
WebLogic Administration course outlineWebLogic Administration course outline
WebLogic Administration course outline
Vybhava Technologies
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
Frank Munz
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
Frank Munz
 
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowOracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Frank Munz
 
Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial
Frank Munz
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
James Bayer
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
Frank Munz
 
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
Docker in the Oracle Universe / WebLogic 12c / OFM 12cDocker in the Oracle Universe / WebLogic 12c / OFM 12c
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
Frank Munz
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Weblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastWeblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencast
Rajiv Gupta
 
Cf application manifest
Cf application manifestCf application manifest
Cf application manifest
James Bayer
 
Application Grid Dev with Coherence
Application Grid Dev with CoherenceApplication Grid Dev with Coherence
Application Grid Dev with Coherence
James Bayer
 
Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
James Bayer
 
WebLogic Administration course outline
WebLogic Administration course outlineWebLogic Administration course outline
WebLogic Administration course outline
Vybhava Technologies
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
Frank Munz
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
Frank Munz
 
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowOracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Frank Munz
 
Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial
Frank Munz
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
James Bayer
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
Frank Munz
 
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
Docker in the Oracle Universe / WebLogic 12c / OFM 12cDocker in the Oracle Universe / WebLogic 12c / OFM 12c
Docker in the Oracle Universe / WebLogic 12c / OFM 12c
Frank Munz
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Weblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastWeblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencast
Rajiv Gupta
 
Ad

Similar to App Grid Dev With Coherence (20)

An Engineer's Intro to Oracle Coherence
An Engineer's Intro to Oracle CoherenceAn Engineer's Intro to Oracle Coherence
An Engineer's Intro to Oracle Coherence
Oracle
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
Dmitry Buzdin
 
GemFire In-Memory Data Grid
GemFire In-Memory Data GridGemFire In-Memory Data Grid
GemFire In-Memory Data Grid
Kiril Menshikov (Kirils Mensikovs)
 
Oracle Coherence
Oracle CoherenceOracle Coherence
Oracle Coherence
Mustafa Ahmed
 
Web Oriented Architecture at Oracle
Web Oriented Architecture at OracleWeb Oriented Architecture at Oracle
Web Oriented Architecture at Oracle
Emiliano Pecis
 
Data has a better idea the in-memory data grid
Data has a better idea   the in-memory data gridData has a better idea   the in-memory data grid
Data has a better idea the in-memory data grid
Bogdan Dina
 
60141457-Oracle-Golden-Gate-Presentation.ppt
60141457-Oracle-Golden-Gate-Presentation.ppt60141457-Oracle-Golden-Gate-Presentation.ppt
60141457-Oracle-Golden-Gate-Presentation.ppt
padalamail
 
Waters Grid & HPC Course
Waters Grid & HPC CourseWaters Grid & HPC Course
Waters Grid & HPC Course
jimliddle
 
White Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureWhite Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application Architecture
Shahzad
 
Woa. Reloaded
Woa. ReloadedWoa. Reloaded
Woa. Reloaded
Emiliano Pecis
 
11g R2
11g R211g R2
11g R2
afa reg
 
Hazelcast
HazelcastHazelcast
Hazelcast
Jeevesh Pandey
 
cloud computing preservity
cloud computing preservitycloud computing preservity
cloud computing preservity
chennuruvishnu
 
Eagle from eBay at China Hadoop Summit 2015
Eagle from eBay at China Hadoop Summit 2015Eagle from eBay at China Hadoop Summit 2015
Eagle from eBay at China Hadoop Summit 2015
Hao Chen
 
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : DatastoreJava Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : Datastore
IMC Institute
 
Introduction to Datastore
Introduction to DatastoreIntroduction to Datastore
Introduction to Datastore
Software Park Thailand
 
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
Niraj Tolia
 
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics
 
http://www.hfadeel.com/Blog/?p=151
http://www.hfadeel.com/Blog/?p=151http://www.hfadeel.com/Blog/?p=151
http://www.hfadeel.com/Blog/?p=151
xlight
 
Clustering van IT-componenten
Clustering van IT-componentenClustering van IT-componenten
Clustering van IT-componenten
Richard Claassens CIPPE
 
An Engineer's Intro to Oracle Coherence
An Engineer's Intro to Oracle CoherenceAn Engineer's Intro to Oracle Coherence
An Engineer's Intro to Oracle Coherence
Oracle
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
Dmitry Buzdin
 
Web Oriented Architecture at Oracle
Web Oriented Architecture at OracleWeb Oriented Architecture at Oracle
Web Oriented Architecture at Oracle
Emiliano Pecis
 
Data has a better idea the in-memory data grid
Data has a better idea   the in-memory data gridData has a better idea   the in-memory data grid
Data has a better idea the in-memory data grid
Bogdan Dina
 
60141457-Oracle-Golden-Gate-Presentation.ppt
60141457-Oracle-Golden-Gate-Presentation.ppt60141457-Oracle-Golden-Gate-Presentation.ppt
60141457-Oracle-Golden-Gate-Presentation.ppt
padalamail
 
Waters Grid & HPC Course
Waters Grid & HPC CourseWaters Grid & HPC Course
Waters Grid & HPC Course
jimliddle
 
White Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureWhite Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application Architecture
Shahzad
 
cloud computing preservity
cloud computing preservitycloud computing preservity
cloud computing preservity
chennuruvishnu
 
Eagle from eBay at China Hadoop Summit 2015
Eagle from eBay at China Hadoop Summit 2015Eagle from eBay at China Hadoop Summit 2015
Eagle from eBay at China Hadoop Summit 2015
Hao Chen
 
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : DatastoreJava Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : Datastore
IMC Institute
 
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
(Speaker Notes Version) Architecting An Enterprise Storage Platform Using Obj...
Niraj Tolia
 
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics
 
http://www.hfadeel.com/Blog/?p=151
http://www.hfadeel.com/Blog/?p=151http://www.hfadeel.com/Blog/?p=151
http://www.hfadeel.com/Blog/?p=151
xlight
 
Ad

Recently uploaded (20)

Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 

App Grid Dev With Coherence

  • 1.  
  • 2. A Java Developer’s Introduction to In-Memory Distributed Computing James Bayer Principal Sales Consultant
  • 3. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. ©2009 Oracle Corporation
  • 4. Agenda Defining a Data Grid Coherence Clustering Data Management Options Data Processing Options The Coherence Incubator <Insert Picture Here>
  • 5. <Insert Picture Here> Defining a Data Grid
  • 6. <Insert Picture Here> “ A Data Grid is a system composed of multiple servers that work together to manage information and related operations - such as computations - in a distributed environment .”
  • 7. <Insert Picture Here> Coherence Clustering
  • 8. Coherence Clustering: Tangosol Clustered Messaging Protocol (TCMP) Completely asynchronous yet ordered messaging built on UDP multicast/unicast Truly Peer-to-Peer : equal responsibility for both producing and consuming the services of the cluster Self Healing - Quorum based diagnostics Linearly scalable mesh architecture . TCP-like features Messaging throughput scales to the network infrastructure.
  • 9. Coherence Clustering: The Cluster Service Transparent , dynamic and automatic cluster membership management Clustered Consensus: All members in the cluster understand the topology of the entire grid at all times . Crowdsourced member health diagnostics
  • 10. Coherence Clustering: The Coherence Hierarchy One Cluster (i.e. “singleton”) Under the cluster there are any number of uniquely named Services (e.g. caching service) Underneath each caching service there are any number of uniquely named Caches
  • 11. <Insert Picture Here> Data Management Options
  • 12. Data Management: Partitioned Caching Extreme Scalability: Automatically, dynamically and transparently partitions the data set across the members of the grid. Pros: Linear scalability of data capacity Processing power scales with data capacity. Fixed cost per data access Cons: Cost Per Access: High percentage chance that each data access will go across the wire. Primary Use: Large in-memory storage environments Parallel processing environments
  • 13. Data Management: Partitioned Fault Tolerance Automatically, dynamically and transparently manages the fault tolerance of your data. Backups are guaranteed to be on a separate physical machine as the primary. Backup responsibilities for one node’s data is shared amongst the other nodes in the grid.
  • 14. Data Management: Cache Client/Cache Server Partitioning can be controlled on a member by member basis . A member is either responsible for an equal partition of the data or not (“storage enabled” vs. “storage disabled”) Cache Client – typically the application instances Cache Servers – typically stand-alone JVMs responsible for storage and data processing only.
  • 15. Data Management: Near Caching Extreme Scalability & Performance The best of both worlds between the Replicated and Partitioned topologies. Most recently/frequently used data is stored locally. Pros: All of the same Pros as the Partitioned topology plus… High percentage chance data is local to request. Cons: Cost Per Update: There is a cost associated with each update to a piece of data that is stored locally on other nodes. Primary Use: Large in-memory storage environments with likelihood of repetitive data access.
  • 16. Data Management: Data Affinity The ability to associate objects across caches guaranteeing they are located on the same member . Typical Use Case: Parent Child relationships
  • 17. <Insert Picture Here> Data Processing Options
  • 18. Data Processing: Events - JavaBean Event Model Listen to all events for all keys ENTRY_DELETED ENTRY_INSERTED ENTRY_UPDATED NamedCache cache = CacheFactory.getCache(“myCache”); cache.addMapListener( listener );
  • 19. Data Processing: Events - Key Based Event Model Listen to changes to a specific key NamedCache cache = CacheFactory.getCache(“myCache”); cache.addMapListener( listener, key );
  • 20. Data Processing: Events - Filter Based Event Model Listen to a changes to data that match a specific criteria (i.e. Filter) NamedCache cache = CacheFactory.getCache(“myCache”); cache.addMapListener( listener, filter );
  • 21. Data Processing: Parallel Query Programmatic query mechanism Queries performed in parallel across the grid Standard indexes provided out-of-the-box and supports implementing your own custom indexes Cost-based analysis of Filter application Standard Filters provided out-of-the-box (e.g. OR, AND, ALL, EQUALS, etc.)
  • 22. Data Processing: Parallel Query // get the “myTrades” cache NamedCache cacheTrades = CacheFactory.getCache(“myTrades”); // create the “query” Filter filter = new AndFilter( new EqualsFilter(&quot;getTrader&quot;, traderid), new EqualsFilter(&quot;getStatus&quot;, Status.OPEN)); // perform the parallel query Set setOpenTrades = cacheTrades.entrySet(filter) ;
  • 27. Data Processing: Continuous Query Cache Automatically, transparently and dynamically maintains a view locally based on a specific criteria (i.e. Filter) Same API as all other Coherence caches Support local listeners. Supports layered views
  • 28. Data Processing: Continuous Query Cache // get the “myTrades” cache NamedCache cacheTrades = CacheFactory.getCache(“myTrades”); // create the “query” Filter filter = new AndFilter( new EqualsFilter(&quot;getTrader&quot;, traderid), new EqualsFilter(&quot;getStatus&quot;, Status.OPEN)); // create the continuous query cache NamedCache cqcOpenTrades = new ContinuousQueryCache(cacheTrades, filter) ;
  • 33. <Insert Picture Here> End Of Part I
  • 35. Data Processing: Invocable Map The inverse of caching Sends the processing (e.g. EntryProcessors) to where the data is in the grid Standard EntryProcessors provided Out-of-the-box Once and only once guarantees Processing is automatically fault-tolerant Processing can be: Targeted to a specific key Targeted to a collection of keys Targeted to any object that matches a specific criteria (i.e. Filter)
  • 36. Data Processing: Invocable Map // get the “myTrades” cache NamedCache cacheTrades = CacheFactory.getCache(“myTrades”); // create the “query” Filter filter = new AndFilter( new EqualsFilter(&quot;getTrader&quot;, traderid), new EqualsFilter(&quot;getStatus&quot;, Status.OPEN)); // perform the parallel processing cacheTrades.invokeAll(filter, new CloseTradeProcessor()) ;
  • 41. Data Processing: Triggers Inject pre-processing logic to data being added to a cache. Similar to EntryProcessors, but fired before a mutation takes place. They allow your “process” method to override, replace, decorate, remove or fail a cache mutation. Adds veto ability to data insertion. Common Uses: Prevent invalid transactions; Enforce complex security authorizations; Enforce complex business rules; Gather statistics on data modifications;
  • 45. The Coherence Incubator http://coherence.oracle.com/display/INCUBATOR/
  • 46. The Coherence Incubator The Coherence Incubator hosts a repository of projects providing example implementations for commonly used design patterns, system integration solutions, distributed computing concepts and other artifacts designed to enable rapid delivery of solutions to potentially complex business challenges built using or based on Oracle Coherence .
  • 47. The Coherence Incubator: The Command Pattern Distributed implementation of the classic Command Pattern Useful alternative to EntryProcessors with the advantage that Commands are executed asynchronously. Provides essential infrastructure for several other Incubator projects to permit guaranteed, in-order, asynchronous processing of Commands .
  • 48. The Coherence Incubator: The Command Pattern
  • 49. The Coherence Incubator: The Functor Pattern This is an example implementation of Function Objects (Wikipedia) or as it is also known, the Functor Pattern, built with Coherence. The Functor Pattern is an extension to the Command Pattern . In fact the semantics are identical with the exception that the Functor Pattern additionally provides a mechanism to return values (or re-throw exceptions) to the Submitter (using Java 5+ Futures ) where as the Command Pattern does not provide such capabilities.
  • 50. Functor Pattern: Quick Overview Of Auction App Goal Demonstrate the Grid Differentation in WLS Suite Show a close to real life application Coherence Coherence Patterns Grid Messaging Shows WLS JMS and AQ integration Eclipse JPA Best of breed JPA implementation Integration Check points Coherence Web Administrative WLST and Domain templates
  • 51.  
  • 52. What Happens when you create an Auction Uses EclipseLink JPA to store in Oracle RDBMS Registers the Auction in Coherence Enqueues a message to be Delivered in the FUTURE
  • 53. What happens during bidding? A submit bid goes to coherence context registered Request gets co-located and queued WLS Returns On Coherence Each bid is processed in order Rules are checked Price is updated Stored in Oracle in RDBMS
  • 54. How do Auctions Close? MDB listens for a dequeue…. If reserve has been meet move to settlement If not mark as closed Auction is removed from the bidding engine
  • 55. The Coherence Incubator http://coherence.oracle.com/display/INCUBATOR/
  • 56. For More Information ©2009 Oracle Corporation search.oracle.com Oracle coherence or oracle.com
  • 57. For More Information Visit the Oracle Fusion Middleware 11g web site at http://www.oracle.com/fusionmiddleware11g Oracle WebLogic Server on oracle.com http://www.oracle.com/appserver Oracle Application Grid on oracle.com http://ww.oracle.com/goto/applicationgrid Oracle Fusion Middleware on OTN http://otn.oracle.com/middleware   Get Started App Grid Blog http://blogs.oracle.com/applicationgrid For WebLogic Server technical information: http://www.oracle.com/technology/products/weblogic/ For Application Grid technical information http://www.oracle.com/technology/tech/grid/ Resources
  • 58.  

Editor's Notes

  • #3: Main point: open on a strong, positive note; make clear what products we’re talking about Hello everyone and welcome to this breakout on application grid. Application grid is a term we use to refer to an architecture and approach to foundation-level middleware, technologies such as application servers and transaction processing platforms. Within Oracle Fusion Middleware, these are probably best known to you with names such as WebLogic, Tuxedo, JRockit, and Coherence. You could think of these products as the “foundation of the foundation”. There are some very exciting innovations in these products for 11g, making the application grid vision more compelling than ever and truly strengthening the foundation as our title asserts.
  • #4: Main point: protect ourselves legally This is our standard disclaimer--we will touch on some visionary things in this talk that should not be used for contractual purposes.