since i am attending a gigaspaces-training the whole week (3 days foundation-training and 2 days more architectural topics (space based architecture) i like to share some thoughts about why to use gigaspaces.
What Problems we do have now?
- where we are:
n-tier architecture, designed to meet the challenges of internet applications through delegation of work between tiers, scalability is achieved mostly through scale-up
- scalibility now:
is achieved mostly through scaling the presentation-tier - the backend is still a bottleneck
- O/R mapper
constantly we need to transform objects from to xml, http-requests, dbs...
- maintain state
still most applications maintain their state in the database
So what about SOA then?
it would be perfect if we had
- unlimited memory, data-caching and parallel processing,
- dynamic SOA and
- scalability for all tiers
What about JavaSpaces then?
- its like a shared memory
- provide simple object persistence
- incorporates messaging patterns
- has a simple API (write, read, take, notify)
- can be clustered (providing: scalability, performance, high availability)
So if we have all this cool tools in place, why GigaSpaces? (aka: what is the difference to JavaSpaces?)
What JavaSpaces doesnt offer is:
- different APIs (JDBC, Messsaging, Map)
- clusterable
- replicable
What is SpaceBased Architecture?
- it offers a shared address space (enabling easy state management)
- a shared code-base (enabling dynamic code loading)
- improved performance (because we are in memory)
- GigaSpaces is a virtualization middleware for Data, Messaging and Business Logic