Archive for August, 2007
ProjectCreator now supports IntelliJ & Eclipse !
August 29th, 2007Well, it is time to announce another update to the project creator utility.
This latest project-creator jar can be found HERE.
It now supports the creation of projects for intellij as well as eclipse… Hooray!

..
Please note that with this change, the scripts I published have one change that is necessary for both eclipse and intellij and one option that enables the intellij project creation.
The change for all scripts is the use of -gigaHome in place of -gigaHomeVar
The option for intellij is -intellij (in place of the still available -eclipse)
Here follows some example scripts for the creation of OpenSpaces projects :
rem ……
……
……
___________________________________________
NOTIFYCONTAINER_INTELLIJ (listener)
___________________________________________
rem Intellij Version
rem This script starts the projectCreator so as to create a PU containing a NotifyContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a listener (a take is not performed as part of the NotifyContainer operation) and could be implemented with either a remote or embedded space.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -intellij -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc_notifyContainer -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
NOTIFYCONTAINER_ECLIPSE (listener)
___________________________________________
rem Eclipse Version
rem This script starts the projectCreator so as to create a PU containing a NotifyContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a listener (a take is not performed as part of the NotifyContainer operation) and could be implemented with either a remote or embedded space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc_notifyContainer -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
POLLINGCONTAINER_INTELLIJ (worker)
___________________________________________
rem Intellij Version
rem This script starts the projectCreator so as to create a PU containing a PollingContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a worker and usually means you will elect to have an embedded space.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -intellij -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
POLLINGCONTAINER_ECLIPSE (worker)
___________________________________________
rem Eclipse Version
rem This script starts the projectCreator so as to create a PU containing a PollingContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a worker and usually means you will elect to have an embedded space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
TIMERTASK_INTELLIJ (publisher)
___________________________________________
rem Intellij Version
rem This script starts the projectCreator so as to create a PU containing a TimerTask – a SpringBean that gets invoked over and over again by a Timer. Configure how often to do this in the PU.xml Note this is good for a feed or driver and usually means you will elect to have a remote space.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -intellij -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc_timerTask -setPUTemplateName pu.xmlsrc_timerTask -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
TIMERTASK_ECLIPSE (publisher)
___________________________________________
rem Eclipse Version
rem This script starts the projectCreator so as to create a PU containing a TimerTask – a SpringBean that gets invoked over and over again by a Timer. Configure how often to do this in the PU.xml Note this is good for a feed or driver and usually means you will elect to have a remote space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc_timerTask -setPUTemplateName pu.xmlsrc_timerTask -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
rem ……
……
……
___________________________________________
NOTIFYCONTAINER_INTELLIJ (listener)
___________________________________________
rem Intellij Version
rem This script starts the projectCreator so as to create a PU containing a NotifyContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a listener (a take is not performed as part of the NotifyContainer operation) and could be implemented with either a remote or embedded space.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -intellij -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc_notifyContainer -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
NOTIFYCONTAINER_ECLIPSE (listener)
___________________________________________
rem Eclipse Version
rem This script starts the projectCreator so as to create a PU containing a NotifyContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a listener (a take is not performed as part of the NotifyContainer operation) and could be implemented with either a remote or embedded space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc_notifyContainer -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
POLLINGCONTAINER_INTELLIJ (worker)
___________________________________________
rem Intellij Version
rem This script starts the projectCreator so as to create a PU containing a PollingContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a worker and usually means you will elect to have an embedded space.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -intellij -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
POLLINGCONTAINER_ECLIPSE (worker)
___________________________________________
rem Eclipse Version
rem This script starts the projectCreator so as to create a PU containing a PollingContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a worker and usually means you will elect to have an embedded space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
TIMERTASK_INTELLIJ (publisher)
___________________________________________
rem Intellij Version
rem This script starts the projectCreator so as to create a PU containing a TimerTask – a SpringBean that gets invoked over and over again by a Timer. Configure how often to do this in the PU.xml Note this is good for a feed or driver and usually means you will elect to have a remote space.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -intellij -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc_timerTask -setPUTemplateName pu.xmlsrc_timerTask -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
TIMERTASK_ECLIPSE (publisher)
___________________________________________
rem Eclipse Version
rem This script starts the projectCreator so as to create a PU containing a TimerTask – a SpringBean that gets invoked over and over again by a Timer. Configure how often to do this in the PU.xml Note this is good for a feed or driver and usually means you will elect to have a remote space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc_timerTask -setPUTemplateName pu.xmlsrc_timerTask -gigaHome c:\GigaSpacesXAP6.0
rem ##end of script##
___________________________________________
It is my hope that those of you who held off trying out OpenSpaces to this point will download the XAP 6.0 version of GigaSpaces and the project-creator jar found
HERE and get to work building the next greatest software solution!
Cheers,
Owen.
Update to project-creator.jar
August 21st, 2007Hi Again,
I have updated the jar file found Here.
The changes are:
1) Added a NotifyContainer template — to use this execute the following script:
rem This script starts the projectCreator so as to create a PU containing a NotifyContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a listener (a take is not performed as part of the NotifyContainer operation) and could be implemented with either a remote or embedded space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out C:\tmp\projectcreator -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc_notifyContainer -gigaHomeVar c:\GigaSpacesXAP6.0
Notice that other than the change to the -setPUTemplateName, this script is identical to the one used for the pollingcontainer.
2) Fixed two bugs:
a) Extra HelloWorld directory is no longer created inside the processing unit directory
b) The FIXME properties offered in the templates for the pollingcontainer and notifycontainer are now inside comments in the XML so they will not break your build if you simply ignore them.
Added these simple print statements to the java templates so you can see activity as soon as you build and deploy it:
TimerTask:
System.out.println(this.getClass().getName()+” Wrote @dataObjectName “+obj);
(note: you need to uncomment the sample code block in the execute method to enable this behavior)
PollingService:
System.out.println(this.getClass().getName()+” Received @dataObjectName: “+data);
Practical Instructions for use:
- Run the command(s) to generate a publisher, poller, or listener processing unit project supplying args as you see fit. (see example commands in this and earlier posts)
- Import the project(s) into eclipse
- Uncomment the code in your publisher execute method to see the default behavior
- Run the project that declares an embedded space by right-clicking it in eclipse and selecting ‘Run As’ | ‘Open Run Dialog…’ Then select the configuration with the same name as the project you right-clicked and click ‘Run’
- Run any other projects that share that space - you may want to wait to start the publisher until after all listeners and pollers are started.
- Watch as the default print Statements prove the various pieces are communicating.
- Edit the java files so they perform some real logic and process real information. be sure to keep your common libraries in sync — I will provide a simpler way to manage as part of this utility in the future.
Cheers,
Owen.
ProjectCreator version .0000001 :0) [A hackers utility that creates openspaces projects in eclipse]
August 18th, 2007Early release of java command-line wizard generates OpenSpaces projects in seconds for rapid development of highly scalable Spring Applications using the GigaSpaces SBA platform. –It works for me
OK. Be gentle.
I am biting the bullet and publishing my current release of the wizard I have been working on that generates eclipse projects for OpenSpaces developers. Those who have seen me at various shows and JUGS will know what it does. It certainly saves me time as I get started on new projects, but then I know the code..
In an attempt to broaden the use of it, I have begun to document my work on it and some of the feedback and future plans I have for it.
Note: this utility will change and hopefully improve in the coming days/weeks etc. There are areas I already plan to improve -not least of all the code implementing it-.
Your feedback is welcome.
It is my sincere wish that somebody will benefit as they begin to explore the OpenSpaces concepts through rapidly generating their first few projects using this tool. Perhaps, more add-ons will be created by those interested in OpenSpaces — I particularly would love someone to create a front-end wizard for quick web pages backed by the Spring-based OpenSpaces. I think if we put our heads together we can give folks over at ruby on rails a run for their money.
(how’s that for inflammatory!)
Here is the first binary release of it - let me know if you want/need the code.
The current state of this unofficial utility is somewhat summed up below:
projectcreator_thoughts
NameOfPersonWantingFeature: Feature description
As of 2007-08-17
Completed Features
OwenT: Polling(take)
OwenT: Polling(complex query)
OwenT: Publishing(TimerTask)
PatrickM: clean ant script better
OwenT: Supply a @projectName.launch file in the .eclipse folder in the project directory (this will save a configuration step)
TODO
PatrickM: NotifyContainer
OwenT: Remoting
OwenT: Domain model shared
PatrickM: Randy’s thing
PeterC: readme: how to import, run, deploy Why does this help?
PeterC: whyme?
KevinH: include change to pu.xml templates to point XSD’s to local path
OwenT: Unix scripts to do what the windows scripts do
DennisR: Implement configurable resource bundles to contain templates and corresponding map of
variable names. This will allow much more flexibility for future extensions.
DennisR: Create Unit Tests to ensure nothing gets broken as new features are added
Explanation of basic concepts behind the projectcreator:
Project Creator creates the directory structure, build files, java source files and configuration files necessary to build and deploy an OpenSpaces ProcessingUnit herein thought of as a ‘project’.
To create the proper java, xml, eclipse files and the directory structures necessary, Project Creator uses various templates (stored initially within the projectcreator.jar file) and some variables that are replaced with user-provided values as the project is created.
Within the templates, variables are specified as @variableName
These variables are currently:
@projectName (Name of the project you want to build)
@spaceName (Name of the space you want to connect to ex: MySpace)
@propertySpaceName (Name of the space with a lowercased first letter – derived from @spaceName ex: mySpace)
@varGSHome (Path to [and including] Root Directory of your XAP installation)
@spaceUrl (This is derived from the @spaceName and your choice of remote or embedded)
@packageName (You specify this as the package for your first service in this Project)
@packageDir (This is derived from the @packageName)
@serviceName (You specify this as the name of your service class)
@dataObjectName (You specify this as the name of your data class (note the package name will set to @packageName.common to ensure this class is packaged in a separate jar file for classloading purposes)
@spaceMutator (currently not used, but uses the upperCased first letter version of
@propertySpaceName to derive the setter method Ex: setMySpace)
First Cut: Instructions
The scripts pass args to the projectcreator that are then used to define some of the variables I wrote about as well as discern whether or not to build particularly eclipse-specific files into the project and other similar things.
The args used are:
-eclipse (specifies you want all the eclipse-specific artifacts)
-overwrite (specifies you wish to overwrite any project files in the same directory you are about to specify)
-project test (specifies the project directory name - you are later prompted to change this)
-out c:\wrk\openspaces (specifies the directory into which the -project will go)
-setServiceTemplateName service.javasrc (specifies the java service template file to use - found in the jar file unless otherwise specified)
-setPUTemplateName pu.xmlsrc (specifies the OpenSpaces PU.xml template file to use - found in the jar file unless otherwise specified)
-gigaHomeVar c:\GigaSpacesXAP6.0 (specifies the root directory of your GigaSpaces installation)
Running the java -jar project-creator.jar command with the various args starts an interactive shell wherein you provide the rest of the salient properties pertaining to project creation:
An example: (user feedback is in bold)
***
Welcome to the GigaSpaces Project Creator
To create a new project, please answer the following questions:
What would you like to name your project [test]?
Root directory for project creation [c:\wrk\openspaces]?
Is Space embedded in this PU? [yes]
Name of space [gigaspace]
Package name for ProcessingUnit [com.test]?
ClassName of Service [MyService]?
Name of Data Object [
***
Completing this set of questions causes the project creator to create the files and directories that make it easy to develop and deploy a simple OpenSpaces ProcessingUnit.
For more info on Processing Units and OpenSpaces please look at hello world.
Getting Started: Using the scripts mentioned at the bottom of this post as a guide:
1. Create a polling container to create an embedded (colocated) worker service.
Take note of the Data type you create – this file will need to be copied into any other projects that also use it – note it will use a sub-package called ‘common’ to ensure it can be shared accross processing units (workaround to a well known classloading issue)
Also take note of the spacename you chose – other projects that want to communicate with this one will need to specify the same spacename
2. Create a TaskTimer to create a remote driver or publisher of information.
see the notes above regarding the shared data and spacename
Take note that you specify a remote space with the same name as the other projects with which you want to share info
Once a project is built:
1) import it into Eclipse Europa with the Spring plugin.
2) Configure the build Path so the GS_HOME variable is accurate for your system
3) Edit the generated build.xml file for the project so the gshome.dir property is accurate for your system
4) Add in some simple code to the Service you created System.out.println(“Hi Mom”);—or uncomment the code snippets I provided
5) Right-click on the project, select ‘Run As’ then ‘Open Run Dialog’ if it already has a @projectName.launch file simply select the @projectName under ‘Java Aplication’ and execute ‘Run’ (bottom right-hand of the ‘Run’ window.
Otherwise you need to configure the following:
A) Right-click the ‘Java Application’ branch of the tree in the left-hand pane of the ‘Run’ window.
B) Select ‘New’
C) change the name of the ‘Name’ from ‘New_configuration’ to something project-specific
D) Select the ‘Main class’ textbox and paste in:
org.openspaces.pu.container.integrated.IntegratedProcessingUnitContainer
E) ‘Browse’ to the project for which you are creating this configuration (middle button)
F) ensure that the correct ‘Project’ has been selected and that the above main class is still visible then click ‘Apply’
G) click ‘Run’ to run your project inside the eclipse IDE
Note: You must run the projects with the embedded spaces first! the remote space projects are injected with the space proxy only at startup time and never again!
…
…
Current windows scripts Owen uses:
1) runprojectcreatorPolling_GSHOME.cmd
rem This script starts the projectCreator so as to create a PU containing a PollingContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a worker and usually means you will elect to have an embedded space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out c:\wrk\openspaces -setServiceTemplateName service.javasrc -setPUTemplateName pu.xmlsrc -gigaHomeVar c:\GigaSpacesXAP6.0
2) runprojectcreatorTaskTimer_GSHOME.cmd
rem This script starts the projectCreator so as to create a PU containing a TimerTask – a SpringBean that gets invoked over and over again by a Timer. Configure how often to do this in the PU.xml Note this is good for a feed or driver and usually means you will elect to have a remote space.
rem In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out c:\wrk\openspaces -setServiceTemplateName service.javasrc_timerTask -setPUTemplateName pu.xmlsrc_timerTask -gigaHomeVar c:\GigaSpacesXAP6.0
3) runprojectcreatorComplexPolling_GSHOME.cmd
rem This script starts the projectCreator so as to create a PU containing a PollingContainer – a SpringBean with a default method that gets invoked when a matching object appears or is modified in the space. Note this is good for a worker and usually means you will elect to have an embedded space.
rem In addition: This script uses the templates that provide the framework for complex queries using SQL and REGEX syntax
rem * In addition: This script specifies that the classpath in the eclipse project uses a GS_HOME variable in the same way the examples that come with the product do – this makes for a more portable project. Note that the build.xml file created as part of the project will still use an explicit path and will need to be edited if the project is used in a new environment and the ant tasks are invoked.
set JAVA_HOME=c:\java\jdk1.5.0_07
call %JAVA_HOME%\bin\java -jar project-creator.jar -eclipse -overwrite -project test -out c:\wrk\openspaces -setServiceTemplateName service.javasrc_pollingComplexQuery -setPUTemplateName pu.xmlsrc_pollingComplexQuery -gigaHomeVar c:\GigaSpacesXAP6.0
Cheers,
Owen.
Everyone ‘gets’ it - My job rocks
August 14th, 2007I spoke at GatorJug last week in Florida and had a great experience. The members mentioned that another Space-based event was about to occur - the space shuttle was about to take off and so we all went down to the parking lot and waited for the launch… Unfortunately, the shuttle took off too far away for us to see and we went back to the presentation room without having seen the event.
I did my best to provide the space-based entertainment and delivered a new version of my talk which focuses on the simplicity and power of the just released GigaSpacesXAP.
Of note was the host of the GatorJug who travels a great deal himself and hosts not only GatorJug and OrlandoJug but also Senejug in Senagal, Africa!
It is my hope that I will be able to join Mike in Africa and Slovenia where he apparently also has some influence.
Mike, thank you for your excellent community work and the invitations you have extended to myself and GigaSpaces to spread the word of our SBA platform.
Sincerely,
Owen.
GigaSpaces XAP 6.0 - General Availability
August 3rd, 2007GigaSpaces eXtreme Application Platform Version 6.0 is now in GA!
Some useful links:
Product Download: Comes in three flavors:
GigaSpaces eXtreme Application Platform 6.0 - the whole enchilada. GigaSpaces XAP is a complete middleware platform that simply and easily transforms new and existing applications into powerhouse services with limitless scalability and low-latency performance. Based on a holistic [...]
GigaSpaces OEM Program
August 3rd, 2007We released a press announcement about our OEM/ISV program (see full text below).
The gist of our value proposition to ISVs is "let us deal with the complex issues of infrastructure software, so that you can focus on your unique business logic and expertise." And we do this without locking you in to our platform. If [...]
Default configuration may not be best for my demo…
August 3rd, 2007Last night I spoke at the Dusseldorf JUG and had a very nice time with one exception: I broke my last demo. YIPE!
I have suffered for hours since then going over my code and trying to see where I dropped the ball and finally, looking elsewhere, have come upon the reason!
The default setting for replication in the cluster configuration that I selected for the demo in GigaSpaces 6.0 XAP is sync-rec-ack. sync-rec-ack defines the replication behavior to be ‘nearly synchronous’ with the client thread blocking only long enough to ensure that the request has been sent - not received - by the backup space.
I changed the setting to fully synchronous - called ’sync’ in our configuration, and things are much much better. Now, I understand how Virgin Mobile succeeded with our technology where I failed. (they use the sync setting).
For those of you who were watching, my apologies for losing that one order when I killed both of the primary spaces as it was running. With this new improvement, I swear it won’t happen again!
Cheers,
Owen.
GigaSpaces XAP 6.0 is GA
August 1st, 2007After a long journey which lasted seven full months, I‘m proud to announce here the public availability of our flagship product, GigaSpaces XAP 6.0. XAP (pronounced zap) is aimed for XTP type of applications. XTP, which stands for, extreme transaction processing, is a class of applications characterized by low-latency, high-throughput and high-volume
requirements.
XAP we addresses the XTP challenge by providing a full platform containing many of the building blocks necessary to build such systems.
The objective we set to ourselves when we first envisioned XAP, was to "streamline SBA". In previous product releases we mainly focused on providing the runtime capabilities to enable infinite scalability by partitioning data across many JVMs spread across many machines. We came to realize that not only a platform should be scalable, it also needs to address fully the requirements of architects, developers, testers, project managers and operation engineers, along the life-cycle of the system. It was also very clear to us that SBA is the architecture which will eventually supersede the Tier Based Architecture.
OpenSpaces is a direct result of this effort. OpenSpaces is our new component model, based on Spring framework, which provides both ready to use SBA components and also provides consistent development, testing and deployment models based on industry standards. With OpenSpaces, developers and architects can simply and easily build XTP applications
which take advantage of the scalability and performance capabilities of XAP platform, by exploiting existing knowledge of Java and Spring.
OpenSpaces was built to encapsulate interaction patterns used by many of our existing customers in production systems. It’s components, such as the event containers, are very useful as building blocks to build pojo based XTP applications.
Another area of the product which was dramatically revamped is .NET. With XAP XTP systems can be created from parts which are .NET and others that are pure java. With the object transformation technology in the product, pono and pojo objects are interchangeable between platforms in very effective manner, as low latency is key criteria in many XTP systems.
Many other areas in the product have changed for the better, including support for larger clusters (thousands of nodes), official support for Java 6 (we support java 1.4 onwards), JMS 1.1, JCA 1.5, latest application server‘s versions integration, and many more. A complete list of changes and
improvments can be found here.
To get started with XAP I recommend following one of the new quick start tutorials which cover usage of XAP in XTP scenario and in in-memory-data-grid scenarios.
I urge you all to download a trial version of the product and give it a spin, there is a lot to see. I will appreciate feedback of any kind,
regards,
Guy







