Author Archive
Web Client/Server
February 12th, 2010I’ve been working on a new project using GWT. Being the only developer of my team, I’ve started with prototyping the user interface interaction model and was looking for a framework that will help me go fast, without a need too change to many paradigms. As I’m building a SaaS product, it has to be web, so I was browsing for various alternatives for web development.
Basically, I had two options:
- Content Driven – create bunch of HTML documents for basic interaction and later enhance these with JavaScript (AJAX) for more dynamic feel
- Application Driven – build rich client application using modern development tools such as GWT or Flex and add server-side integration later.
I have taken the second approach and used GWT as I’m familiar with Java and Eclipse so the ramp up was fast enough.
I came about using principles from Test Driven Development (TDD). I used a TODO list to make sure I’m focused on a single specific task without thinking about infrastructure layers at all. I had to make sure I’m not looking at the big picture while doing the little things, as I wasn’t interested at all in optimization and long-term thinking. Coming from an architecture mind-set, I had to control my tendency to think about the system while doing UI coding.
My working methodology was something like:
Step 1: Create a screen using GWT and make sure it looks right
Step 2: Add client-side, mock data to fill the tables and grids I’m using just to make sure the interaction model is what I’m looking for
Step 3: Data is encapsulated into some kind of Data Provider abstraction that is still static and within the client, however it is not part of the view anymore
Step 4: Data is moved to the server and as the Data Provider is enhanced with data loading capabilities
Step 5: Server starts to create dynamic data based on real data sources and instead of dummy data sets
Through this exercise I learned something which wasn’t clear to me prior
- As client side development is much simpler than server side interaction between the various tier, I was able to move extremely fast in building the right interaction model for the client application
- The architecture that has evolved from this approach is of modern two-tiers approach, similar the the old client/server model but in internet age. Most of the functionality is being done within the client where as the serer serves as a data provider. Coming to think of it, this is a huge opportunity for web driven database which support web protocols – HTTP, REST and query capabilities.
It simply struck me. I don’t consider myself the fastest developer, I’ve been privileged to manage some of the top talent out there, so I know where I stand. Still, the opportunity RIA, web enabled middleware services and the cloud presents something unseen before, as we are finally getting to the right level of abstraction in building internet applications.
From my perspective, the days of page-driven web development for applications, and super-complex packages such as JEE with tiered MVC are long gone. Although I’m telling a known secret here, those who are going to leverage fast cloud enablement technologies will gain tremendous advantage of those who don’t.
Why GigaSpaces XAP 7.0.1 is cloud-aware?
September 18th, 2009One of the lessons we’ve learned over the last year of integrating with large set of cloud solutions is that the classic IT roles and responsibilities do not apply anymore. For example, setting up a new production machine which is usually the responsibility of IT operations is blended with the responsibilities of the application development team. The fact that the development team can spark up machines by API does not provide enough time for the IT ops to certify the platform. In addition, the dynamic nature introduced by cloud solutions makes it almost impossible to follow existing monitoring, compliance and other IT procedures.
The main point of realization is that the software delivery life-cycle got shorten and is becoming faster. This is the same realization agile teams reached while back and started to structure themselves differently by constructing cross-functional teams. Now that application delivery is becoming part of the software development team as well. This realization must impact the software infrastructure products, this means changes in the features and functions of middleware as well.
From GigaSpaces XAP perspective, we have realized this in R7.0 by introducing new Deployment and Runtime Domain model which is accessible through what we call Admin API. Deployment and Runtime components are modeled in a way that enables programmatically to understand what is happening within the runtime environment and take actions automatically based on those events. In this model, we have the notions of physical machines, virtual machines, operating systems, java virtual machine and various application level components such as web applications, including deeper knowledge such as web response times and other application aware knowledge. One can not over exaggerate with the enthusiasm this capability was accepted by the market.
In R7.0.1 which was released yesterday, we’ve complemented the deployment model by introducing a unified security model on top. In this security model all life-cycle activities can be protected by permissions. Example for such activities can be: start/stop server components, application provisioning (deployment in GigaSpaces jargon), data access, remote operations and so forth. As you can see from these example, some of these permissions are pure infrastructure while others are more related to data and to application levels. This wasn’t done by mistake; as stated above, in a fully automatic deployment styles, introduced and adopted by cloud-style deployments, it is difficult to distinguish between the various permissions and provide a different security system for each. To read more about those new security capabilities please see here.
Any of you who has hands-on experience with migrating already written application, deployed in old-data center style to cloud environments will probably share the same experience as we. We embed all this knowledge into GigaSpaces XAP to enable cloud adoption faster, as it is clear that cloud data-centers, either powered by VMWare like technologies, or home-grown implementation such as Amazon EC2, is where enterprise IT is going.
You can expect more capabilities and integrations like these soon to be announced.
I don’t want to neglect other great advancements in the product, so please refer to Uri’s blog for a broader view and to Eitan’s blog about .NET specifics.
Shana Tova from GigaSpaces RND team.
GigaSpaces XAP R7.0 - Released Today
July 14th, 2009The GigaSpaces team is happy to announce the availability of GigaSpaces XAP R7.0. I am proud an excited to share with you few details about the release. As always you can download the product and give it a try from here.
GigaSpaces XAP R7.0 is the only platform available which was designed from the ground [...]
R7.0 M8 - Feature Complete
May 9th, 2009As we are reaching the last mile of GigaSpaces XAP R7.0 release schedule, I’d like to share with you our short term plans for the release. Last Monday, we released R7.0 M8. This is the last milestone before a first release candidate coming in two weeks. M8 contains all the features that are going to be included in R7.0 (if we’re lucky, we may be able to squeeze in few more), but in general you can consider M8 as the ‘Feature Complete’ release.
The plan is to release by the end of June. We are planning to get R7.0-rc1 in two weeks, couple of weeks later R7.0-rc2, and R7.0 GA will come out by the end of June.
As always, quality is our number one priority. When it comes to the holy triangle of content, quality and schedule - I’ll always favor quality. This is in fact one of the reasons we develop using scrum and for the early access program our product is being released by. As noted before, this methodology enables us to get feedback very early in the release cycle, and enables us to get this feedback into the product while it’s in the making.
I’d like to encourage all of GigaSpaces developers to take advantage of early access program, and check out M8. There are some very cool features, that I’m sure you’ll like. We’re interested in anything that you have to say about the release:
- Bugs which may slipped through the cracks
- Improvements to new feature you’d like us to consider
- And basically just about anything you’d like us to know about your experience with the product
Yes, I know, the marketing team told me already, that I have to sell you the release in exchange for the feedback. There is a lot to say about R7.0 in a nutshell R7.0 M8 contains:
- Whole new improved management user interface (gs-ui)
- Performance, scalability and memory footprint improvements in just about anywhere you go in the product
- Super fast local cache - about 40 times faster than in previous release. Check out the readById API you’ll see.
- GigaSpaces XAP complete domain model with Admin API for automation, monitoring and control
- Concurrent EDS - less load on the database, fast DB access and load
- Less jars to link to - new lib directory with simpler structure
Comments are welcome at GigaSpaces XAP forum, or you can send it directly to feedback7.0 AT gigaspaces DOT com
Thanks for the cooperation
Guy
Scrum is Infectious
March 26th, 2009Today, on my way back from Sweden, I stopped in the
Netherlands to visit Tricode, our strategic partner. On the way from the airport
we’ve chatted as always, and I realized that they started to implement scrum as
well in their projects. This is not the first (not the second and even not the
10th) GigaSpaces’ partner who’s adopting scrum, directly influenced by
GigaSapces. As our product development is being done with Scrum.
I wonder why is that, what makes them adopt scrum?
Well, it is optional that it has nothing to do with GigaSpaces.
Scrum is a popular agile methodology and coincidently we use scrum as other
organizations. This may very well be the case, but I doubt that.
When asking some deeper questions, it appears that the level
of service GigaSpaces’ partners and customers are getting because we are able
to respond quickly to on-going requirements and the fact that our early access
program allows our partners to influence a product release while it’s in the
making is perceived as a great advantage. This opens a whole new game of
collaboration between the software vendor (GigaSpaces in this case) and our partners
and customers. They are now part of the team. I believe this is the level of
cooperation and participation any product team would like to be able to provide
to its end users, and so do they. I think (humbly) that this is the main reason
for the aforementioned question.
Furthermore, it opens a whole new discussion channel between
us. We not only speak about the functionality provided by our product, we also
share experiences and advices on scrum implementation. This is the great part
of being a development team which creates a product that other development
teams use.
It is truly a great feeling. We’re adding value not just by
delivering our product per se. We also create a lot of value by incorporating
our customers and partners into our development process, and by sharing
experiences and helping each other out.
I may very well be wrong with my conclusion, but it does
feel good!







