Author Archive

« Previous PageNext Page »

Why not use maven?

January 16th, 2008

I received an (anonymous) comment regarding the command-line project creator.

(anonymous)asks:



why dont you use Maven archetypes for this ? See http://maven.apache.org/guides/introduction/introduction-to-archetypes.html

I answer:

First of all, if you like Maven I have good news!

The official GigaSpacesXAP product will support Maven and supply some archetypes very soon. (I believe the next early-access build will contain some support for this)

Now, you may, like Charles Miller , not like Maven.

The command-line project-creator is designed to be extremely light-weight and simple for anyone to use.

To use it, you need the jar file ~80kb and a probably two or three batch or shell scripts.

[Once I write some decent documentation, it will be more obvious what is required to execute the functionality.]

While it does create eclipse files, it also creates a build.xml suitable for execution from any ide or even emacs.

That said, once the maven stuff is supported and available, I plan to contribute my service templates to the available archetypes where they can add value.

I do not really see these as competing, but rather co-existing, like items on a menu: some people prefer fish, some meat, both have to eat.

I hope this helps to explain the existence of CPC

BTW: from now on, I will try to have news regarding CPC posted at openspaces and hope further comments can also live there, just for ease of information access and organization.

Cheers,

Owen.

Command-line Project creator (CPC) now on openspaces.org

January 15th, 2008

I have done it. I committed the project creator - now with support for pre-existing and shared domains - to openspaces.org.

I created a new tutorial video which currently acts as the documentation.

That can be seen here

I will be updating docs and such over the next few days.

The user interface now looks like this:



Welcome to the GigaSpaces Project Creator

To create a new project, please answer the following questions:

What would you like to name your project [Worker]? myProcessor

Root directory for project creation [C:\_D\_wrk\projectcreator\out]?

GigaSpaces root directory [c:\GigaSpacesXAP6.0]?

Is Space embedded in this PU? [yes]

Name of space [gigaspace]

Do you wish to create the common domain [yes]?

*

What is the package name for the common domain [com.test.common] or ‘no’? org.test

*

Name of Common Object []? Message

*

Package name for generated service [com.test]?

*

ClassName of Service [MyService]? Processor

Created directory C:\_D\_wrk\projectcreator\out\myProcessor

commonDomainFilePath= commonDomain1177f763b16\common\domain

projDir = C:\_D\_wrk\projectcreator\out\myProcessor

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\..\commonDomain1177f763b16\common\domain

commonDir = C:\_D\_wrk\projectcreator\out\myProcessor\..\commonDomain1177f763b16\common\domain

domainPackageDir = org\test

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\..\commonDomain1177f763b16\common\domain\org\test

DomainCreationHandler: Debug C:\_D\_wrk\projectcreator\out\commonDomain1177f763b16\common\domain

Created file C:\_D\_wrk\projectcreator\out\myProcessor\..\commonDomain1177f763b16\common\domain\org\test\Message.ja

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\src

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\src\test

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\src\java

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\src\java\com\test

Created file C:\_D\_wrk\projectcreator\out\myProcessor\src\java\com\test\Processor.java

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\pu\myProcessor\META-INF\spring

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\pu\myProcessor\META-INF\spring\mode

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\src\java\META-INF\spring

Created file C:\_D\_wrk\projectcreator\out\myProcessor\pu\myProcessor\META-INF\spring\pu.xml

Created file C:\_D\_wrk\projectcreator\out\myProcessor\src\java\META-INF\spring\pu.xml

Created file C:\_D\_wrk\projectcreator\out\myProcessor\build.xml

Created directory C:\_D\_wrk\projectcreator\out\myProcessor\.eclipse

Created file C:\_D\_wrk\projectcreator\out\myProcessor\.eclipse\myProcessor.launch

EclipseTemplatePath= templates/eclipse/

Created file C:\_D\_wrk\projectcreator\out\myProcessor\.project

Created file C:\_D\_wrk\projectcreator\out\myProcessor\.classpath

THE END.

(We have completed all processing possible…)

Hit Enter to continue…

So head over to

openspaces.org

-and check out the new version! (There is a zip file in the downloads section.)

Cheers,

Owen.

Opinionated architecture - blue prints without the middleman

December 16th, 2007

While at the Spring Experience this past week, I was delighted to learn a few things.

I got a good look at an OSGI environment, discovered what it felt like to turn rapidly in a circle on a cigarette boat doing well over 40 knots, and was introduced to the term “Opinionated Architecture”.

To my new understanding, an opinionated architecture, or framework, or solution, is one that proclaims a mandatory set of conventions in various things such as directory structure, configuration and code artifacts, naming conventions, and patterns of use. Due to the specification of these and possibly other things, the adopter of the solution will benefit from the use of the naturally occurring wizards and reusable templates that exemplify the mandatory bits and pieces. More than the traditional “blue-prints” offered by some, the essence of the available and proper use of the

opinionated solution depends on the erasure of alternative paths lest disaster strike.

This is not a trivial course to take. The author of the solution must have effective and real knowledge of the problem domain addressed by the solution - hopefully informed by enough failures that the successful path as declared is completely valid to the limits of the conceit of the solution.

For instance, web frameworks such as Grails provide rapid application development to those who agree to adopt the programming paradigm made possible and pushed by the elected framework. The result is a religious fervor adopted as those who share the faith and bend to the will of the higher, more-knowing, technological power are validated by their successes and spurred to greater adoption and recognition of the awesome power of the solutions’ prescription.

Caution: some wordiness follows:

The topic of the effect of poor planning and proceeding with lack of effective guidance down the enterprise architectural path was touched on in a BOF on high-performance Spring apps that took place late Friday night. (After the keynote filled with Monty Python references) During this talk, it was made clear that only experience can fulfill the needs of the architect challenged by a huge problem. What was also revealed is that humans frequently fail to avoid making the same mistakes numerous times even when presented with compelling alternatives. Old habits die hard it seems.

I am (tonight) of the opinion that unless your solution infrastructure mandates a path of best results and guides you to a proven successful state, you are more than likely to wander into the woods of competing best practices overgrown with budget constraints, lack of innovative and experienced resources, and just plain lack of understanding. It is therefore better to adopt a winning solution set whole-heartedly and when all the Kool-Aid is gone, agree to be dictated to by a benevolent dictator who has the right stuff.

The experience of a journeyman or artist is really very similar. In classical Ballet, for instance, the student rarely questions the validity of the techniques demonstrated by the Maestro leading the class/company. There is an element of necessary blind faith in the chosen path and the guides you choose to follow down it. Once one determines that the task at hand is indeed Ballet, one really has no choice but to turn out hips, point feet, and develop habits of posture that will sustain them through the most grueling choreography - for it will surely come and in spades. The student/apprentice is not well served to strike out on their own until a mastery is attained of the subject matter *through experience* that validates new choices and proves that through their adoption, greater success is to be found. The opinion therefore exhibited must be one based on hard-earned experience and still based predominately on a foundation made real and sustainable by the experiences of many others.

As it happens, I have watched the growth of OpenSpaces over the last many months with the skeptical eye of a - er skeptic - not realizing that the purpose of the framework is not only buzzword compliance and the implementation of popular development practices, but in the context of GigaSpaces and what is offered to our prospects and customers, a truly opinionated framework that takes the vastly flexible GigaSpaces infrastructure and service implementations and distills *the* successful use of it all into enforceable use of the Spring programmatic approach and technologies, thus empowering the neophyte and thought-leader alike with the unmistakably opinionated path to success.

The beauty of the switch to the prescriptive and formulaic from the free and often flailing style, is the stunningly rapid improvement in adoption rate, early prototyping successes, and sustained production-systems that continue to reinforce my growing certainty that we got our bit of it right this time.

Yes, OpenSpaces and by our support of it, GigaSpaces, has become an opinionated architecture/solution. As more and more tools and samples become available, and more wizards like my somewhat primitive, yet highly effective Project-creator, are built and offered, that fact will be obvious to all and joyfully so to the initiates and practitioners of the Linearly Scaling Aplication Arts. (The LSAA)

Write Once, [our way]

Scale Anywhere

Cheers,

Owen.

Update on Virgin Mobile post (thanks to Julian Browne)

December 13th, 2007

A while ago I posted a note about the success Virgin mobile experienced from switching to a Space-Based Architecture.

I received a comment from Julian Browne that I think is informative and so I make it public here:

***

Hi Owen - a backend system was unavailable for a few hours (honestly I

can’t remember the exact time). It was towards the end of the day’s

activity and it wasn’t back online until after midnight.

We knew this because one of the business managers thought they spotted

a bug in our reporting software after it informed him that more than

100% of orders had just been fulfilled. Never having seen anything

more than a 100% fulfilment rate, he naturally suspected an error.

On investigation we discovered that some of the previous day’s late

orders had been held in the space until the legacy system came back up

and submitted to the warehouse that morning. The system that was

replaced by the space-based approach didn’t do this and would often

lose orders entirely. What he really loved about this was that

managing orders safely in the event of a backend system not being

ready hadn’t even on his list of requirements.

I think there’s been some confusion created by other posts about the

project around order numbers generally. The number of online orders

increased by around three times almost immediately we went live (IT

wasn’t aware of this for a while, the system just scaled up without

any complaint) and over the Christmas period (a stressful time under

the pre-SBA solution) we handled a massive increase in orders

completed (unfortunately I’m not at liberty to say by how much because

it’s commercially sensitive).

I spoke to the online director only a couple of weeks ago and he still

loves it nearly two years later.

***

Thanks Julian,

It is great to know that what was once only a few lines of test code has survived and blossomed into a reference implementation.

Cheers,

Owen.

OpenSpaces.org is alive — project creator will move there soon

December 11th, 2007

GigaSpaces has started work on OpenSpaces.org and associated with the pending launch of the site is a call to arms for all who hack.

Check out: Open Spaces Developer Challenge I think there is even a sizable prize involved!

As soon as I can, I will make project creator available on OpenSpaces.org so anyone who wants to can improve it -extend it etc…

Cheers,

Owen.

« Previous PageNext Page »