GigaSpaces for ISVs and Solution Providers
Posted 2 July 2009 @ 7:09 am by Amnon RavivWhether you are a Fortune 1000 enterprise software vendor, a mid-size appliance vendor, or an up and coming Web 2.0 company, our OEM program can fit your bill. Want to talk to us and learn about our OEM engagement models? click here
So Who’s Embedding GigaSpaces?
GigaSpaces is relied on by partners from virtually every major software sector:
- Application Vendors such as Portal Applications, eCommerce, Order Management Systems, Billing, CRM, Search Engines, and more
- Infrastructure Vendors building Security Applications, Messaging Appliances, High Performance SOA platforms, IT Governance Applications, and more
- Solution Providers building vertical solutions combining platforms and expert services
- Web 2.0 Developers delivering their applications on the Cloud
GigaSpaces technology is currently embedded in hundreds of applications spanning various verticals, including financial services, on-line retail, telecommunications, media, social networking, manufacturing and logistics, on-line gaming, and more.
A partial list of vendors who chose to be “Powered by GigaSpaces" include such companies as Nortel, Microsoft/FAST, IBM, Google/DoubleClick, JDSU, Amdocs, Sun Microsystems, MuleSource, SmartStream, and many more.
What Are They Using GigaSpaces For?
See the 5 most common reasons these vendors embed GigaSpaces, plus relevant success stories:
- SaaS/Cloud- enable their solutions
- 02 & Razorfish – iPhone Account Activation Platform
- ORByte’s FX Trading Application-as-a-Service
- Large Telco – Overcoming Security Concerns on Private and Public Cloud
- Leverage the most sophisticated Distributed Caching platform in the market
- Gain High Availability & Fail-over at in-memory speeds
- Parallelize/Map-Reduce their analytics engine
- Dynamically Scale Up & Down their transactional applications
Interoperability, Frameworks and Standards Support
With GigaSpaces you can leverage your existing skill-sets to build scalable applications.
GigaSpaces XAP allows you to leverage the standard frameworks and support applications you use today, such as Spring, Hibernate, Mule, and others.
Integration with other frameworks, such as JPA, SimpleDB, Memcached, as well as caching support for Jetty, Tomcat and iBatis, is available through OpenSpaces.org
Rich and well documented APIs for Java, .NET, C++, as well as scripting languages make it easy to embedded/integrated with your existing applications.
Want more technical information?
Technical Documentation & Code Examples:
- In-memory Data Grid/Distributed Caching
- SaaS/Cloud Enablement
- High Availability & Fail-Over
- Parallelize/Map-reduce Calculations & Analytics Engines
- Dynamically Scale Up & Down Transactional Applications
Look for these White Papers Covering the GigaSpaces API:
- Migrating from JEE to GigaSpaces
- The Service Virtualization Framework
- Scaling Spring Applications in 4 Steps
Want to learn more about our OEM Program?
If you are interested in embedding GigaSpaces into your application/system please contact partners@gigaspaces.com
Read more...
Google App Engine plus Amazon AWS: Best of both worlds
Posted 25 June 2009 @ 8:14 am by Nati ShalomGeorge Lawton wrote a a good summary of my JavaOne talk in his article titled
Google App Engine plus Amazon AWS: Best of both worlds
Google App Engine (GAE) is focused on making development easy, but limits your options. Amazon Web Services is focused on making development flexible, but complicates the development process. Real enterprise applications require both of these paradigms to achieve success… What we really want is the flexibility and performance of AWS and the simplicity and ease of use of GAE.
This is exactly what we had been working on for the past year, leading us to the launch of our new cloud platform. With this platform we leverage GigaSpaces XAP as the high performance scale-out application server and Amazon as the robust and flexible IaaS. Together they form an alternative Platform as a Service geared for enterprise grade applications. This allows the cloud environment to inherit the extreme performance, latency and scalability of the XAP platform, which in turn enables achieving your performance and scaling target with less machines, implying a lower cost.
Real-life case study: Primatics financial – Risk analysis as a service
Francis de la Cruz and Argyn Kuketayev from Primatics Financial joined me through the presentation. In their part of the session they described their experience in developing a SaaS application for Real Time analytics.
Kuketayev described how Primatics used this approach to create a new automatically scaling cloud version of an existing banking application. Primatics initially developed a mortgage securities application that allows banks to estimate the value of a basket of hundreds of thousands of loans. The value of these loans fluctuates as economic conditions change and some portion of home owners cannot afford to make payments on their loans. Banks normally only need to assess the value of these loans at the end of each month, making them an ideal candidate for cloud services like AWS.
From a scalability perspective the challenge is to be able to provide a highly multi-tenant application that need to serve many firms, many users in that same firm each running many jobs at the same time. Implementing such a model can be fairly complex as you will need to be able to manage the life cycle of each job and each user independently and in isolation from one another.
Trying to build such a service directly on Amazon is going to be fairly complex, as you can learn from George’s summary below:
Primatics wrote the first version of EVOLV:Risk as a hosted web application for a regional bank.. The application needed to be fault tolerant so that if one node crashed, they did not have to restart the application over again from the beginning. Kuketayev said that it is not just about the loss of four hours, but the office is trying to close out the month and needs to access data to end the monthly cycle so they can go home.
Using GigaSpaces' toolset they rewrote the entire application infrastructure in about four-months to run on top of AWS. Now they can kick off as many instances as required for different banking customers, and each instance runs significantly faster than before. Kuketayev said that it is important for banks that none of their applications run on the same infrastructure as another bank.
The diagram below shows the specific architecture that Primatics ended up using. Those that are familiar with Space Based Architecture would find it fairly straight forward:
The application is built out of a set of processing units. Each processing unit contains the compute agents in the form of a polling-container. The compute agents gets a a reference to a remote Data Grid that is shared by all processing units. Each agent gets the job injected to it by the polling container and gets a reference to the data it required to process the job. Once the job is completed, the result is stored back in the space. The results are flashed out back to a database through a mirror service.
In a case of a failure, other compute agents are able to continue from the exact point of failure and continue the job processing as if nothing happened. This is because the state of the job is kept safe in the data-grid and not in the agent’s memory.
Kuketayev from Primatics nicely summarized thye lesson he learned after going through the experience of trying to build it on his own vs. trying to use GigaSpaces:
Kuketayev said that one of the biggest lessons is that you need to have your infrastructure do the provisioning for you automatically, or otherwise you end up spending a lot of time just turning things on and off. He said they are now using configuration APIs to automate this process, whereas before they were using scripts. This allow for automatically throttling and failover recovery without human intervention.
Kuketayev advised "You need to make sure you use the right tools … You don't want to have to worry about provisioning and reliability. Make sure you have provisioning, failover, monitoring and SLA out of the box."
The full JavaOne presentation is available here:
Final words
Fr solution providers the size of Primatics, building a risk analysis application as a service couldn’t be possible without cloud computing. Cloud enabled them to offer their solution as a service without the need to go through major investment of building a data center to support it.
Primatics’ experience is not special. One of the benefits of building Software as a Service is that you have one shared environment for all your customers. At the same time, one of the challenges is that in a shared environment, failure becomes more public and will impact ALL your clients. If the system doesn’t scale well, you’re going to be hit twice as hard as in a standalone application.
Building a robust and scalable SaaS application can be fairly complex. A good cloud infrastructure will get you a first class data center, but it won’t solve your application requirements.What’s interesting with cloud computing is that it forces you to think about the cost and efficiency of your application more than ever before. In the Primatics example, running a simulation of 100 nodes for 3 hours is very likely to fail at some point. A failure during such a simulation will immediately cost you 300 hours, not to mention the fact that you might lose the simulation window for the day and the reputation challenge you’ll will be facing with your customers. In addition, putting the data in-memory and making the application run 3-5 times faster means that you would need 1/5 of the machine power, which saves 80% of the cost of running the application.
I believe that the challenges imposed by cloud computing force us to focus on what we do best and avoid investing in areas which are not core to our business. Because the pay-per-use model significantly lowers the cost barrier, going down the path of writing your own infrastructure, as many have tried to do before, will be much more expensive and risky then ever before.
References:
Read more...
Busy days…
Posted 20 June 2009 @ 3:55 am by Jeroen RemmerswaalIt's been extremely busy lately, travelling around a lot, here are some highlights of the recent two weeks...
A week ago I spent a full week in New York, giving a 5-day training (Basic and Advanced) at the GigaSpaces offices just opposite Grand Central Station. A great location, and a great team, that travelled down from Connecticut, New York, San Fransisco, even somewhere in Georgia ;). As I've encountered before, this kind of training is very exhausting for the trainer (and students!), but it gives great energy too when the concepts start to 'live'.
Yesterday I gave a one-hour presentation at the Profict Summer Camp to explain the vision of GigaSpaces with respect to Cloud Computing. We finished with good weather and a BBQ. The other speakers were Jerome Barnard, who is working on an open-source project named ElasticGrid, and Benoît Chesnau who is member of the Apache CouchDB project. Both two very interesting guys that work on challenging projects that share the GigaSpaces vision with respect to more dynamic application design that is not influenced by the 'magic' dimensions 'scalability', 'performance' and 'high availability/reliability'. Thanks Profict for inviting me to this well-organized session at your really great offices!
Coming Monday I will host a GigaSpaces-workshop for 18 people of The Future Group, where I will show them the highlights of the GigaSpaces product in-4-hours. Apparently it's a mixture of Java and .NET people, so this is going to be a lot of fun.
Only a few more days to go before GigaSpaces 7.0 is released. We're working hard on our side to complete the first release of the Eclipse Plugin, so it can be announced with the GA of GigaSpaces. We've completed the roadmap of the plugin, and it's going to be nicely stuffed with great features, such as managing (Deploy and Undeploy) Processing Units, managing (starting, stopping) Service Grid Components, etc, etc. All from your Eclipse IDE. We'll make sure we'll host an update-site, and will provide a way to give feedback, to make it even better.
Till next time!
Jeroen
Read more...
Enterprise applications using and integrating with Gigaspaces XAP
Posted 17 June 2009 @ 9:56 am by Jim LiddleWhen I am dealing with customers and Partners it never ceases to amaze me how innovative many of the solutions and products, that have GigaSpaces embedded, are. I thought it would be well worth a quick review of some of these:
ActivePivot: ActivePivot™ by Quartet is a real time object oriented OLAP engine that provides information dashboards from front office to back office including trade blotters, value-at-risk drill down analysis, inventory positions, cash flow and security inventories, credit risk, online risk and hedging analytics in real time. You can view a case study of a combined ActivePivot / GigaSpaces at a major French bank here.
An example of using active Pivot with GigaSpaces could be that market data feeds are written into a space using any of GigaSpaces’ APIs . ActivePivot is able to connect to the core in-memory data and register for events. When a tick is updated in-memory, GigaSpaces sends a notification to ActivePivot which in turn re-aggregates the relevant cube branch. This means that the aggregated cube is always updated and reflects the latest market state. In addition ActivePivot queries GigaSpaces for the raw data when Excel sends a drill-down request, which enables ActivePivot to deliver a very quick response time.
GigaSystemsBuilder: This uses the model driven development (MDD) capabilities of JeeWiz to generate Grid and Cloud-based systems under Gigasystems technologies. Comprehensive PoC’s take less than a week and using JeeWiz to generate 90% plus of the final system is an efficient and low cost to utilise these emerging technologies. You can see a screencast of this in action here.
Excel Federated Grid: This builds on our core Excel integration to enable organisations who use Excel in a trading scenario to scale their use of Excel to prevent bottenecks, to parallelize processing, or to automate algorithmic trading that uses Excel. You can read more about this in a prior blog post. To learn more about the GigSpaces/Microsoft Excel Integration and its applicability to finance have a read of this Microsoft written article.
Contact Centre: Nortel’s Contact Center application portfolio provides a single interface for blending inbound/outbound voice, e-mail, web chat, and IM customer interactions, businesses can collaborate with their customers through the device and method of choice extending a superior customer experience.
Orbyte Solutions: Orbyte Solutions provide a Trading Application portfolio that works in-house or on public clouds such as Amazon EC2 and is powered by GigaSpaces Cloud Tools. The applications include Foreign Exchange Trading, Spread-betting and encompass charting and widget features using their own innovative rich clients. You can see my prior blog posts on this here and here.
Hyper Rig: Hyper Rig is a technical framework for Risk Management that can be added to your existing set up, complement it and enhance it. As such, the architecture has been designed to include features such as orchestration, exceptions management and audit, messaging, integrated security, automatic failover, monitoring, load-balancing, virtual computation-grid and data quality management.
SmartStream: GigaSpaces XAP is embedded within SmartStream’s next generation Transaction Lifecycle Management technology suite. Using GigaSpaces’s proven technology, SmartStream can deliver on demand and predictable scalability to support clients’ high-performance processing requirements. You can read more about the integration from SmartStream’s site.
Online Gaming: I recently blogged about an online gaming application that is available on Facebook but whose engine is a commercial engine. It is the first totally enabled online Cloud gaming network and is powered by GigaSpaces Cloud Tools.
These are just a selection of application that use /embed GigaSpaces that I have touched. There are many thousands more that are used in all different parts of the world, either on premise or on the cloud.
Read more...
Algorithmic Excel Trading with GigaSpaces
Posted 5 June 2009 @ 9:14 am by Jim LiddleOne of the really strong points of the GigaSpaces technology is the strength of the client interoperability. As well as being fully interoperable with .Net and C++ (and if you are interested in these technologies I would suggest you check out the C++ article here and the .Net articles here and here) GigaSpaces has integration with Microsoft Excel.
This enables organisations who use Excel in a trading scenario to scale their use of Excel to prevent bottenecks, to parallelize processing, or to automate algorithmic trading that uses Excel.
When using Excel for Algorithmic trading or for headless calculations a data feed can be input into the in-memory GigaSpaces data space which triggers phases of calculations in distinct unattended Excel spreadsheets. This in turn generates values to a data cache that can be picked up as events and displayed within an attended Excel sheet.
Visually we can view this as below:

The diagram shows:
· An External Data Feed Handler
· A number of Excel Compute Support Processing Units (PUs) which are managed by the GigaSpaces Service Grid. Each PU contains worker components of two types:
1. workers that select and execute Excel compute tasks.
2. workers that select and execute manager tasks.
· An attended Excel sheet that has an add-in that enables it to listen to the GigaSpaces data cache and display value changes are a result of data changes in the cache. Both User-Defined Function (UDF) and Real-Time Data (RTD) add-in approaches can be implemented.
The way this work is as follows:
1. The External Data Feed Handler reads data from a file and uses it to create an initial data value and a task to manage the overall computation stages. The data value is written to the cache and the manager task is injected using a imple task submission API. A Compute Fabric worker executes the injected manager task.
2. Execution of the manager task picks up the initial data value and spawns a set of Excel compute tasks. These compute tasks execute a number of parallel calculations using the first sheet. The manager task waits all spawned tasks to complete.
3. The manager task collates the results from spawned tasks and uses them as input to a calculation on a second sheet. The manager task spawns another Excel compute task to perform this second calculation.
4. The manager task converts the result of the second calculation into a result data value that it writes back to the GigaSpaces data cache.
5. UDF/RTD add-in to the interactive Excel sheet sees the data change event in the GigaSpaces data cache, obtains the data values and updates the sheet.
Key to accomplish this is an Excel Compute Support Processing Unit, which is managed by the GigaSpaces Service Grid. The diagram below illustrates the components of this processing unit.

Inside each processing unit (PU) instance a FederatedWorkerFactory communicates with other FederatedWorkerFactory instances in the grid to form a federated fabric that hosts a number of open Excel workbook instances., The fabric can be instructed to host a number of instances of the same Excel workbook to provide redundancy and failover. The fabric ensures that the Excel workbook instances are distributed as evenly as possible between the PUs available to host them.
When the FederatedWorkerFactory receives an ownership request for a given workbook it creates a worker to pick up and execute ExcelComputeTasks that are tagged with the name of the workbook., ExcelComputeTasks delegate calculation to a resident Excel Compute Manager, If additional PUs are added or removed from the fabric then the fabric automatically and dynamically rebalances the Excel workbook instances to maintain an optimum balance., Additional workbooks can be added (or removed) from the fabric dynamically whilst the system is running and the number of instances of already hosted workbooks can be raised or lowered.
The Excel Compute Manager within the PU manages a configurable pool of “headless” Excel processes. Each Excel process is lightweight and can manage one or more open workbooks.
The fabric ensures that the optimum number of Excel processes and open workbooks are running on each GigaSpaces Service Grid node. There is a significant relative performance overhead to loading workbooks in Excel. Workbooks are therefore opened lazily on first request, but then remain open, ensuring that repeat calculation requests to the same workbook are optimized for performance.
If a given PU manages more than one open workbook, it will perform calculations for each workbook concurrently, whilst ensuring that each Excel instance in the pool is managed in a thread-safe manager. This enables good scalability of concurrent Excel compute both within a single node, and across the nodes available in the grid. The configurable Excel pool size determines the upper bound of the number of concurrent workbook calculations that can be performed by a single PU.
If an Excel instance is damaged, dies, or is killed, the fabric ensures that it is removed from the pool of available Excel instances and, if necessary a new instance is spawned. Any in-flight calculation request is automatically retried once the workbook has been re-opened with another Excel instance.
The Excel PU, tasks and fabric specific to this solution build upon the GigaSpaces Excel integration and were developed by a partner to give a solution oriented approach to working with Excel in a Grid. If you would like to know more about this then please feel free to contact me.
Read more...







