Showing posts with label Cloud. Show all posts
Showing posts with label Cloud. Show all posts

Tuesday, June 9, 2009

Clouds, SOA and Aging

Well, I haven’t quite reached the stage of yelling at kids to get off my lawn – but I might be getting close.

I attended a session at Impact titled: “Delivering Strong Services: SOA to the Cloud” – delivered by Daryl Plummer from Gartner. Was the first time that I’ve had the chance to see Daryl in person and enjoyed his presenting and the ideas he discussed.

If you attended Impact, you can log in and download the slides – look for session 3097 (or search by the title).

I don’t plan on regurgitating the entire presentation, but did want to discuss a couple of ideas that were a part of the session.

The first is the idea of scalability versus elasticity. I’ve seen this discussed in a number of places and presentations related to Cloud solutions. When I see the reference to elasticity I think in terms of being to scale up or down as needed. I.e. the solution is able to stretch to meet the needs related to the current (and changing)workload. So I find it odd to see discussions of cloud where it is mentioned that cloud provides scalability and elasticity – seems redundant to me. Have I misinterpreted the meaning of elasticity?

More specific to the session at Impact, there was a discussion on the idea of Cloud Service Brokerages that provide service intermediation or service aggregation (for example). As I listened to the presentation my thoughts wandered to the idea of an ESB and viewing these brokerages as essentially providing ESB like services to a number of customers. The would be an EESB – an extra-ESB – and following on that line of thinking starting to see myself thinking in terms of inter, intra and extra cloud based solutions and drawing parallels to how we saw focus on internet use and capabilities evolve over the years.

And hence the aging comment – seems that after you’ve spent enough years in IT you start to relate everything back to what you’ve seen previously. So here I am, in my advanced years thinking – this cloud stuff is just repeating the cycle of thinking that we experienced in inter/intra/extra-net roll-outs. Back in my day…

Lee.

Thursday, February 19, 2009

Web-based IDEs

Came across a Slashdot article about Web-based IDEs. The posting also listed some additional pointers to articles and products (Bespin, Eclipse integration with Bespin and a Ruby on Rails example) related to the topic.

From a technology point of view – this all sounds quite interesting and a testament to the amazing services that can be delivered via the web. However, I wonder how we can leverage this approach to truly benefit those that would use such a Web-based IDE. What’s the value to the user?

Some initial thoughts on the topic – first looking at some of the positive aspects:

  • No monstrous downloads
  • Simplified deployment
  • A workspace that is available from any pc. Whether the user wants to access code from a desktop, their PC or some other computer, they can get to their work and their environment.
  • Low powered machines can be used for development. Could even try to do some work via a netbook (limiting factor here would be the screensize)
  • Easily leverage cloud based infrastructure for deployment environments. Rather than looking to run an IDE and a test App Server, Database or other services locally, can easily integrate with such services via the cloud. Latency between these components and the IDE would be negligible as the heavy communication would be within the cloud.
    • In addition to simplifying the developers workstation, could easily speed up the development/unit test cycle as more powerful processing could easily be thrown at the problem – in such a way that it would be less expensive than providing each developer with the horsepower needed to replicate the experience locally (which would be cost prohibitive) This could benefit both the individual developers as well as the development team.
  • Support for pair/group programming. Why limit the collaboration to just two? Many developers could connect to one session to work together in creating a solution. In addition, the pair/group would not have to be co-located, or even on the same network.

And of course, there are a few negatives as well:

  • No network? no development. There would need to be support for a disconnected usage model.
  • Richness of experience? Could a powerful debugging be provided? What about richness in using abstraction and simplification to increase the productivity of developers? We continue to expand the richness of the experience of what can be done via a browser, however, can we compete with what can be done with a modern IDE? (Perhaps the question is, should we?)

Running a bit with the idea – how would a services based approach then impact the implementation?

  • Would compilers be a service that you can plug in to your development process as needed? A DSL?
  • Could you easily connect in an 3rd party provider for test case generation? Test case execution? Transformation from high level model to executable code?
  • Could a service be used then to transfer and automatically deploy a finished app (service?) to somewhere else in the cloud?
  • Services for configuring/setting up the environment for new projects?

Perhaps some of the limitations of the environment and web hosting will drive us toward more and better use of DSLs to keep the environment simple yet powerful? Also, would patterns and transformations then become additional services that we can more easily integrate and weave into our development efforts?

All in all, sounds like a great idea. Hopefully as we evolve and mature the approach we can do so with a focus on providing value to the users of the tool(s) – rather than just doing something because its fun to write a cool app.

Lee.