- establish a connection to the space
- create an instance that Entry with some data
- put the Entry into the space
- create another instance, with null serving as a wildcard and non-null properties as specific matches
- take an entry from the space using the second instance as a "template"
- disconnect
-
Software: Blitz JavaSpaces 1.26 (22 messages)
- Posted by: Joseph Ottinger
- Posted on: September 29 2006 09:16 EDT
Blitz is an open-source toolkit that sits on Sun's JINI installation, providing services. It's a very workable default installation for use and experimentation with JINI and JavaSpaces, a grid-oriented distribution platform. JavaSpaces are built around the concept of a map, with four basic operations: write, read, take, and notify. Elements in the space extend a marker interface, the Entry. A simple example of interaction with a space follows this pseudocode:Threaded Messages (22)
- how is this compared to GigaSpace?!!! by Joe Fouad on September 29 2006 12:11 EDT
- Re: how is this compared to GigaSpace?!!! by Dan Creswell on September 29 2006 12:31 EDT
-
Tangosol Coherence by Cameron Purdy on September 29 2006 09:48 EDT
-
Re: Tangosol Coherence by John Davies on September 30 2006 05:49 EDT
- Re: Tangosol Coherence by Ghanshyam Patel on October 03 2006 12:17 EDT
-
Re: Tangosol Coherence by John Davies on September 30 2006 05:49 EDT
-
Tangosol Coherence by Cameron Purdy on September 29 2006 09:48 EDT
- Re: how is this compared to GigaSpace?!!! by Nati Shalom on October 08 2006 20:48 EDT
- Re: how is this compared to GigaSpace?!!! by Dan Creswell on September 29 2006 12:31 EDT
- Re: Software: Blitz JavaSpaces 1.26 by Dan Creswell on September 29 2006 12:23 EDT
- Good Job Dan by Frank Bolander on September 29 2006 17:07 EDT
- Re: Good Job Dan by Konstantin Ignatyev on September 29 2006 18:04 EDT
- Re: Good Job Dan by Tom Eugelink on October 03 2006 06:38 EDT
-
Re: Good Job Dan by Joseph Ottinger on October 03 2006 08:37 EDT
-
Re: Good Job Dan by Cameron Purdy on October 03 2006 09:42 EDT
- Re: Good Job Dan by Dan Creswell on October 03 2006 12:10 EDT
- Re: Good Job Dan by Dan Creswell on October 03 2006 12:29 EDT
-
Re: Good Job Dan by Cameron Purdy on October 03 2006 09:42 EDT
-
Re: Good Job Dan by Joseph Ottinger on October 03 2006 08:37 EDT
- Maturity? by Ernst de Haan on October 02 2006 03:12 EDT
- Re: Maturity? by Dan Creswell on October 02 2006 04:03 EDT
-
Re: Maturity? by Ernst de Haan on October 02 2006 08:20 EDT
- Re: Maturity? by Dan Creswell on October 02 2006 09:30 EDT
-
Re: Maturity? by Ernst de Haan on October 02 2006 08:20 EDT
- Re: Maturity? by Dan Creswell on October 02 2006 04:03 EDT
- Bringing new life to JavaSpaces by Nati Shalom on October 06 2006 04:30 EDT
- Is there a way to configure the persistence layer for Blitz? by James Vu on December 15 2006 07:53 EST
- Re: Is there a way to configure the persistence layer for Blitz? by Konstantin Ignatyev on January 02 2007 16:36 EST
- Re: Is there a way to configure the persistence layer for Blitz? by Dan Creswell on January 03 2007 03:42 EST
- Re: Is there a way to configure the persistence layer for Blitz? by Konstantin Ignatyev on January 02 2007 16:36 EST
-
how is this compared to GigaSpace?!!![ Go to top ]
- Posted by: Joe Fouad
- Posted on: September 29 2006 12:11 EDT
- in response to Joseph Ottinger
can anyone compare this to any commercial javaSpace inplementation , and tell us the common points. can blitz used to cluster my application? what about failover and sync. isuues,how it compares to multicasting techniques?... thanks for any comment.. joe -
Re: how is this compared to GigaSpace?!!![ Go to top ]
- Posted by: Dan Creswell
- Posted on: September 29 2006 12:31 EDT
- in response to Joe Fouad
can anyone compare this to any commercial javaSpace inplementation , and tell us the common points.
Comparison wise, both Blitz and GigaSpaces list their respective features fairly clearly so you should be able to compare and contrast yourself. In respect of using Blitz or JavaSpaces in general to create some kind of clustering back-bone it's going to depend on exactly what your requirements are sometimes it's appropriate, sometimes you want to use JGroups and some times something else entirely (where's Cameron ;).
can blitz used to cluster my application?
what about failover and sync. isuues,how it compares to multicasting techniques?...
thanks for any comment..
joe -
Tangosol Coherence[ Go to top ]
- Posted by: Cameron Purdy
- Posted on: September 29 2006 21:48 EDT
- in response to Dan Creswell
In respect of using Blitz or JavaSpaces in general to create some kind of clustering back-bone it's going to depend on exactly what your requirements are sometimes it's appropriate, sometimes you want to use JGroups and some times something else entirely (where's Cameron ;).
I am definitely not the Tangosol expert on Javaspaces, but it never struck me as a clustering API. The Javaspaces API seems like a good client/server API for pulling work for staged processing (i.e. the master/worker pattern), and you can easily do that with a farm of machines acting as clients. Our Coherence software is really much different in its approach, where every machine is part of a giant organic "server" (i.e. the cluster is one big server, made up of many individual machines). However, our approach could theoretically work well with the Javaspaces approach. Dan has been working to show us how, and I'm interested in what the result would look like. Peace, Cameron Purdy Tangosol Coherence: The Java Data Grid -
Re: Tangosol Coherence[ Go to top ]
- Posted by: John Davies
- Posted on: September 30 2006 17:49 EDT
- in response to Cameron Purdy
Cameron, I can't see that it would be difficult for Tangosol to implement the JavaSpaces and Jini patterns and APIs on top of Coherence. I'm not quite sure if it's a good idea but I'll leave you guys to decide that one. -John- -
Re: Tangosol Coherence[ Go to top ]
- Posted by: Ghanshyam Patel
- Posted on: October 03 2006 12:17 EDT
- in response to John Davies
The idea of the product being an implementation of a specification (JavaSpaces in this instance) is a powerful one, since it makes it that much easier to sell it to the architects. I think it's easier for people to identify quickly with a "known" API (even though you will eventually need to use the extensions to get any meaninful work done). Additionally, I think this would give it more legitimacy in the "space based architecture" arena. -
Re: how is this compared to GigaSpace?!!![ Go to top ]
- Posted by: Nati Shalom
- Posted on: October 08 2006 20:48 EDT
- in response to Joe Fouad
I would categorize Blitz as a high-quality opensource project and extremely capable JavaSpaces implementation. I believe that the Blitz project is critical for the adoption of JavaSpaces by a wider community and I wouldn't rule out the option that we (GigaSpaces) may contribute to that project ourselves in the near future. GigaSpaces Enterprise Edition today provides much more than a JavaSpaces implementation and therefore I'm not sure that feature list comparison makes real sense. From a position stand point a strong distinction between GigaSpaces and Blitz is that we (GigaSpaces) have extended our product in many ways beyond the JavaSpaces core API to address a much wider spectrum of the distributed applications problem domain. Our goal is to enable the scaling-out (Scaling between machines) of distributed statefull applications. Another goal is to accomplish all that, in a simple manner.Comparison wise, both Blitz and GigaSpaces list their respective features fairly clearly so you should be able to compare and contrast yourself.
As Dan mentioned above you can find detailed information on GigaSpaces specific enhacments and features on our web site. HTH Nati S. -
Re: Software: Blitz JavaSpaces 1.26[ Go to top ]
- Posted by: Dan Creswell
- Posted on: September 29 2006 12:23 EDT
- in response to Joseph Ottinger
Hi Joseph, Firstly, thank you for writing up a review and secondly I wanted to add some details here:JavaSpaces programming requires some different approaches compared to what most enterprise programmers are used to. For example, in the above case, it's trivial to get the first article that matches the criteria - to wit, the first article of a given status - but getting a list of all articles is a little more problematic, involving one of a few patterns. One possibility, for example, is storage of a list containing all of the titles of articles, and then a programmer could use those to look for articles with matching titles and statuses (i.e., by refining the search).
With the standard JavaSpaces interface, these sorts of approaches were necessary however, there is an additional interface available now called JavaSpace05. The JavaDoc is here: http://www.dancres.org/cottage/doc/api/net/jini/space/JavaSpace05.html Both Outrigger and Blitz implement this interface (which extends JavaSpace) and provides a standard method which would help greatly in the cases you've described above called contents() which essentially allows you to do a bulk read via an iterator style interface for a collection of matches. JavaSpace05 is relatively new but is a standard Jini interface and part of the Jini 2.1 release. -
Good Job Dan[ Go to top ]
- Posted by: Frank Bolander
- Posted on: September 29 2006 17:07 EDT
- in response to Joseph Ottinger
Dan Creswell has done a great job with Blitz. For those who might want to play with it under Eclipse, Incax has a community plugin with Blitz support: www.incax.com I like Javaspaces for the most part, but it does take a different mindset to problem solving. -
Re: Good Job Dan[ Go to top ]
- Posted by: Konstantin Ignatyev
- Posted on: September 29 2006 18:04 EDT
- in response to Frank Bolander
+1 It is great to see that JavaSpaces gaining more traction. BTW:http://www.incax.com/ is not exclusively Eclipse, it provides plugins for all major java IDEs -
Re: Good Job Dan[ Go to top ]
- Posted by: Tom Eugelink
- Posted on: October 03 2006 06:38 EDT
- in response to Frank Bolander
I like Javaspaces for the most part, but it does take a different mindset to problem solving.
I was quite amazed to see "I created a Person class..." and the discussion about object retrieval in the article: is this JS about persistency? I thought it was about networked computing. (The clustering of Tangosol fits that picture.) It probably is just me, but maybe someone is willing to write a "when to use JINI / Javaspaces / BLITZ" article, maybe comparing a "normal" implementation and the JS version. -
Re: Good Job Dan[ Go to top ]
- Posted by: Joseph Ottinger
- Posted on: October 03 2006 08:37 EDT
- in response to Tom Eugelink
Well, it's all about where things go and what they do. JavaSpaces implements a model where an anemic domain model is, erm, not wise, which I'll be happy to admit my poor example used. The idea is that what gets transferred to clients who take an object is not DATA, but an actual object, with behaviour, that they can modify at will and store back into the space.I like Javaspaces for the most part, but it does take a different mindset to problem solving.
I was quite amazed to see "I created a Person class..." and the discussion about object retrieval in the article: is this JS about persistency? I thought it was about networked computing. (The clustering of Tangosol fits that picture.)
It probably is just me, but maybe someone is willing to write a "when to use JINI / Javaspaces / BLITZ" article, maybe comparing a "normal" implementation and the JS version. -
Re: Good Job Dan[ Go to top ]
- Posted by: Cameron Purdy
- Posted on: October 03 2006 09:42 EDT
- in response to Joseph Ottinger
JavaSpaces implements a model where an anemic domain model is, erm, not wise, which I'll be happy to admit my poor example used. The idea is that what gets transferred to clients who take an object is not DATA, but an actual object, with behaviour, that they can modify at will and store back into the space.
Unfortunately, I believe that the exact opposite is true. JavaSpaces contain "entries" (structs of public fields), not objects. The fields must also all be of reference types (no int, long, boolean, float, etc.) I have discussed this with Sun, Dan and others, and I believe that this has been one of the biggest road-blocks to the use of Javaspaces, and it encourages (enforces!) the most anaemic of models, such as an extra class to act as an entry to contain the real application objects. As I wrote to Sun:The Entry in its use as an object is an anti-pattern. It is neither an application object (e.g. since it is forced to declare the entire world its C++ friend), nor is it an object that is standard part of the space API (i.e. an implementation). It should either be standardized as part of the API (and as such, it should have an API), or it should be definable by the application (e.g. the interface should be dictated by the space API but the application could implement it). By requiring public fields, you cripple both the space implementer's and the application developer's ability to do simple things such as data hiding, deferred operations, etc. As I see it, the current "API" for Entry is simply the exposure of a desired implementation detail, but one that has been imposed on all implementers and consumers alike.
For an explanation of the design decisions behind the Entry, see Ken Arnold's interview on Artima: http://www.artima.com/intv/swayP.html Honestly, I do not understand the suggested rationale at all. For example, I have looked at Hibernate and KODO and other ORMs, and none of them forced me to build all my application classes with public fields, yet the application objects were still completely persistable and manageable by those frameworks. No other framework or API made me use Integer instead of int and Boolean instead of boolean. There's nothing wrong with the Javaspaces API at a high level: The Tuple Spaces concepts of being able to read, write and take. James Strachan used the same concepts as the basis for his own simple ActiveSpace API: http://activespace.codehaus.org/maven/apidocs/ (Unfortunately, it misses the query ability, which means that spaces must be completely uniform.) Before that, IBM created TSpaces on the same Tuple Spaces concepts: http://www.almaden.ibm.com/cs/TSpaces/Version3/ClientProgrGuide.html At any rate, a few minor changes to the APIs (e.g. getting rid of Entry and using Java objects instead, and integrating with the existing transaction infrastructure in Java EE) and I could see the space approach being useful and easy to adopt. For example: interface Space { int count(Filter query); Iterator iterate(Filter query); Object read(Filter query); Collection readAll(Filter query); Object waitRead(Filter query, long timeout); void write(Object o) void writeAll(Collection o) Object take(Filter query); Collection takeAll(Filter query); Object waitTake(Filter query, long timeout); } What do you think, Dan? Peace, Cameron Purdy Tangosol Coherence: The Java Data Grid -
Re: Good Job Dan[ Go to top ]
- Posted by: Dan Creswell
- Posted on: October 03 2006 12:10 EDT
- in response to Cameron Purdy
Unfortunately, I believe that the exact opposite is true. JavaSpaces contain "entries" (structs of public fields), not objects. The fields must also all be of reference types (no int, long, boolean, float, etc.) I have discussed this with Sun, Dan and others, and I believe that this has been one of the biggest road-blocks to the use of Javaspaces, and it encourages (enforces!) the most anaemic of models, such as an extra class to act as an entry to contain the real application objects.
I can't be sure but I think that Joseph was referring to the in-built ability to have that entry not just be a payload of fields but also methods containing relatively arbitrary code by virtue of the code-downloading ablitity that's built in to the JavaSpaces model. Object probably wasn't the best term to use but well, in at least one sense, one instantiates an Entry implementation (Entry being an interface) and you end up with a Java object so it doesn't seem entirely invalid a word. I'd have to disagree with it being a major roadblock - there are lots of others that get mentioned much more loudly and often :) I'm also not sure what you're thinking when you say "application objects". I have a suspicion I probably don't use spaces in the style you perhaps have in your mind.As I wrote to Sun:
Well there's some stuff we ought to talk about in there face to face but in general, it turns out not to be much of a burden in practice because the Entry implementation can also implement interfaces and have getter setter methods etc. Thus it's possible to build factories and stuff to hide this way from your app in many cases. To perhaps make it clearer - one often sees the compute server example where one extends from a Task Entry and that has a generic method run(). There's nothing to prevent the Task Entry from implementing a separate interface which defines the run() method so the low level code deals in Tasks and the higher level code only sees this other interface and uses the methods on that interface to achieve it's needs.The Entry in its use as an object is an anti-pattern. It is neither an application object (e.g. since it is forced to declare the entire world its C++ friend), nor is it an object that is standard part of the space API (i.e. an implementation). It should either be standardized as part of the API (and as such, it should have an API), or it should be definable by the application (e.g. the interface should be dictated by the space API but the application could implement it). By requiring public fields, you cripple both the space implementer's and the application developer's ability to do simple things such as data hiding, deferred operations, etc. As I see it, the current "API" for Entry is simply the exposure of a desired implementation detail, but one that has been imposed on all implementers and consumers alike.
.........a few minor changes to the APIs (e.g. getting rid of Entry and using Java objects instead, and integrating with the existing transaction infrastructure in Java EE) and I could see the space approach being useful and easy to adopt. For example:
I think I could actually build most of that abstraction over the top of JavaSpace and JavaSpace05 without too much trouble if people were interested. It's not that far away from what's available now. I'm less keen on the Iterator thing though because of course in Jini-land we like to make remoteness visible but that's a long subject for beer time I think. There's some subtleties as well like the fact that Filter implementations would potentially need to be downloadable etc which might mean Filter needs to extend Serializable.
interface Space {
int count(Filter query);
Iterator iterate(Filter query);
Object read(Filter query);
Collection readAll(Filter query);
Object waitRead(Filter query, long timeout);
void write(Object o)
void writeAll(Collection o)
Object take(Filter query);
Collection takeAll(Filter query);
Object waitTake(Filter query, long timeout);
}
What do you think, Dan? -
Re: Good Job Dan[ Go to top ]
- Posted by: Dan Creswell
- Posted on: October 03 2006 12:29 EDT
- in response to Cameron Purdy
At any rate, a few minor changes to the APIs (e.g. getting rid of Entry and using Java objects instead, and integrating with the existing transaction infrastructure in Java EE)
Sorry, forgot to say, I'm not sure but I think the transaction integration thing may have partially been tackled by some stuff in Spring Modules - not sure how generic or complete it is. There's some other stuff also been going on in a separate project from that. There's also a product called Cohesions which provides transaction integration as well. Got it here on my desk for evaluation at this moment and there's at least one significant Jini user out there I'm aware of who's messing with this product too. -
Maturity?[ Go to top ]
- Posted by: Ernst de Haan
- Posted on: October 02 2006 03:12 EDT
- in response to Joseph Ottinger
I've been following Blitz JavaSpaces (Pure Java Edition) for a while now, I find that although the project is very attractive, the release schedule seems somewhat uncontrolled: http://freshmeat.net/project-stats/view/43777/ Note that there was one release on September 26, one of the 27th and one on the 29th. This raises questions on the maturity of the product. My suggestion to the Blitz JavaSpaces team is to plan releases more carefully, do more testing per release and use a slightly different version numbering scheme, differentiating between major (feature?) releases and minor (bug fix?) releases. At the least this will improve the impression the product gives and -more importantly- is likely to improve the quality of the product. -
Re: Maturity?[ Go to top ]
- Posted by: Dan Creswell
- Posted on: October 02 2006 04:03 EDT
- in response to Ernst de Haan
I've been following Blitz JavaSpaces (Pure Java Edition) for a while now, I find that although the project is very attractive, the release schedule seems somewhat uncontrolled:
The schedule is uncontrolled because it's my spare time open source project. It's no different to many other opensource projects and I do it for free - and because of all those things there's not likely to ever be a "controlled" schedule. As to the maturity of the product as it happens, if you look back at earlier history you'll see rapid releasing as the product grew. Now that it's (from my perspective) basically feature complete, most releases are triggered in response to user issues. Thus I'm saying it is mature and that's why releases are now less regular. Looks can be deceiving can't they? On testing - you obviously cannot know what testing I do nor can you know how long I test or how many users I do pre-releases to. How can you therefore tell me I need to do more testing? And if I am to do more testing (for free of course), what would you suggest I test? As to version numbering - tell me what you think I should do instead. And note that no-one else has complained about version numbering and that freshmeat allows me to define in the release announcement what the core focus of the release is. Finally, on quality, you should talk to my users about what they think rather than make isolated judgements. You're not a committer on my project, you don't appear to be subscribed to any of the mailing lists nor do you appear to have had any direct mail interaction with myself. I'm not sure then, how closely you could have been following the project.
http://freshmeat.net/project-stats/view/43777/
Note that there was one release on September 26, one of the 27th and one on the 29th. This raises questions on the maturity of the product.
My suggestion to the Blitz JavaSpaces team is to plan releases more carefully, do more testing per release and use a slightly different version numbering scheme, differentiating between major (feature?) releases and minor (bug fix?) releases. At the least this will improve the impression the product gives and -more importantly- is likely to improve the quality of the product. -
Re: Maturity?[ Go to top ]
- Posted by: Ernst de Haan
- Posted on: October 02 2006 08:20 EDT
- in response to Dan Creswell
As to the maturity of the product as it happens, if you look back at earlier history you'll see rapid releasing as the product grew. Now that it's (from my perspective) basically feature complete, most releases are triggered in response to user issues. Thus I'm saying it is mature and that's why releases are now less regular.
I upset you, which was not my intention. I shared with you which impression the release schedule gives to some people, or at least to me. Just as feedback, with a positive suggestion on what I would consider an improvement. I give this feedback because I appreciate your effort and find the project very interesting.On testing - you obviously cannot know what testing I do nor can you know how long I test or how many users I do pre-releases to. How can you therefore tell me I need to do more testing? And if I am to do more testing (for free of course), what would you suggest I test?
What is visible is that you do multiple releases within a week with no difference in the release version level. You could chose to use a numbering scheme to indicate the kind of release. For example: 1.3.0 -- Major feature release 1.3.1 -- Security or bug fix release 1.3.2 -- Security or bug fix release 1.4.0-alpha1 -- Alpha-quality release, interface may change. 1.4.0-beta1 -- Beta-quality release, interface should not change, no new features should be added, memory and performance are profiled. 1.4.0-rc1 -- Release candidate, nothing should change, unless real issues are detected. 1.4.0 -- Major features release, 'guaranteed' to be stable, no memory leaks, good performance and backwards compatible with previous releases except where explicitly documented otherwise. Again, this is just a suggestion. Do with it whatever you want. I appreciate your work on the project and keep it in mind in case I find a project I can use JINI for. -
Re: Maturity?[ Go to top ]
- Posted by: Dan Creswell
- Posted on: October 02 2006 09:30 EDT
- in response to Ernst de Haan
I upset you, which was not my intention. I shared with you which impression the release schedule gives to some people, or at least to me. Just as feedback, with a positive suggestion on what I would consider an improvement. I give this feedback because I appreciate your effort and find the project very interesting.
Ah, I didn't take it that way - I was attempting to ensure we were having a "real" conversation. I've encountered some unethical elements along the way hence the style of my response. Sometimes you can't tell friend from foe without doing a little "calling out" - real friends clarify themselves and provide constructive response as you have below.What is visible is that you do multiple releases within a week with no difference in the release version level. You could chose to use a numbering scheme to indicate the kind of release. For example:
Cool, thank you. That's obviously a lot more sophisticated than what I'm using :) I'll certainly give it some thought, and thank you for a considered, helpful response.
1.3.0 -- Major feature release
1.3.1 -- Security or bug fix release
1.3.2 -- Security or bug fix release
1.4.0-alpha1 -- Alpha-quality release, interface may change.
1.4.0-beta1 -- Beta-quality release, interface should not change, no new features should be added, memory and performance are profiled.
1.4.0-rc1 -- Release candidate, nothing should change, unless real issues are detected.
1.4.0 -- Major features release, 'guaranteed' to be stable, no memory leaks, good performance and backwards compatible with previous releases except where explicitly documented otherwise.
Again, this is just a suggestion. Do with it whatever you want. I appreciate your work on the project and keep it in mind in case I find a project I can use JINI for. -
Bringing new life to JavaSpaces[ Go to top ]
- Posted by: Nati Shalom
- Posted on: October 06 2006 04:30 EDT
- in response to Joseph Ottinger
JavaSpaces is relatively generic model for sharing objects and coordinating distributed processes. Not surprisingly different people has different take on what the space model means and often tend to mix between the conceptual model and specific implementation of that model. Were (GigaSpaces) are obviously strong believer in the space model and like many of you came across those different requirements while working with customers enabling them to build large scale mission critical applications on top of what we refer to as a Space Based Architecture (SBA). In order to bridge the gaps between the current JavaSpaces specification and the different industry needs we started an initiative together with Interface21 and some of large financial organizations that uses space as the technology for driving their mission critical business through the spring modules project. Part of the rational behind that initiative was to open the discussion to a potentially wider specectrum of community member (not limited to the Jini community). You could find Blitz as part of that project as well. A reference to that project can found under the following location: https://springmodules.dev.java.net/docs/reference/0.6/html_single/#javaspaces Some of the first issue that we wanted to address is the use of Entries vs POJO – for that we came with a solution which basically maps between POJOS and Entries through annotation or mapping file in similar fashion to Hibernate. For example you could very easily map the following POJO into an entry using annotation in the following manner.@SpaceClass (replicate=true,persist=false,fifo=true,converterType="space", indexing-mode="instance") public class Person { @SpaceField(index=true) private String getFirstName() { ... } @Nullable(value="-1") public int getCount () { ... } @Key(autoGenerate=true} private String getLastName() { return lastName; } } See detailed documentation below http://www.gigaspaces.com/wiki/pages/viewpage.action?pageId=9432
Transaction can also be supported in a declarative manner in the following way:@Transactional(propagation = Propagation.MANDATORY) public void writeMandatory(Person bean, boolean fail) throws Exception { getSpaceTemplate().write(bean, 10000); if (fail) { throw new RuntimeException("operation failed intentionally"); } }
I believe that with this initiative we could get faster to a point in which we could define what's the "right" way to address the POJO, transaction semantics and some of the other requirements mentioned here. Having a wider community including real customer is a key for success IMO. Dan, John, Cameron I believe that the timing is right to open that discussion and turn those different ideas into something concrete. Learning from past experience the challenge is to come to this sort of discussions with open mind. Dan? Nati S GigaSpaces. -
Is there a way to configure the persistence layer for Blitz?[ Go to top ]
- Posted by: James Vu
- Posted on: December 15 2006 07:53 EST
- in response to Joseph Ottinger
Is there a way to configure the persitance of Blitz using ORM such as Hibernate? Great article. -
Re: Is there a way to configure the persistence layer for Blitz?[ Go to top ]
- Posted by: Konstantin Ignatyev
- Posted on: January 02 2007 16:36 EST
- in response to James Vu
Is there a way to configure the persitance of Blitz using ORM such as Hibernate?
I am not sure we should even try to do it. If I understand SBA correctly then we need to create a service that will listen to space events for objects of certain types and then persist them in RDBMS with using Hibernate, iBatis or anything we like. -
Re: Is there a way to configure the persistence layer for Blitz?[ Go to top ]
- Posted by: Dan Creswell
- Posted on: January 03 2007 15:42 EST
- in response to Konstantin Ignatyev
Yep - if the reason you want to do this is for additional processing of entry's or archiving them or whatever. The format of the Entry once it's within the space is not useful for applications anymore - it's chunks of binary and search structures. I've not come across any other good reasons for doing this sort of thing as most database type constructs don't cope well with blitz's use of binary arrays etc - it's not very SQL friendly! And in Blitz's case, where it works out of the box, adding reliance on some external database which must be explicitly managed, configured etc by the user would be a backward step in ease of use.Is there a way to configure the persitance of Blitz using ORM such as Hibernate?
I am not sure we should even try to do it.
If I understand SBA correctly then we need to create a service that will listen to space events for objects of certain types and then persist them in RDBMS with using Hibernate, iBatis or anything we like.