Category → soa
PaaS and open source
Ted Leung has some interesting ideas about Platform As a Service (PaaS) and open source. I agree with Ted that open source software is not becoming any less relevant. Looking at current platform as a service offerings Ted’s view of,
The more interesting question for developers has to do with infrastructure software. In my mind LAMP is really a proxy for “infrastructure software” If you’ve been paying any attention at all to the development of web application software, you know that there is a lot happening with various kinds of infrastructure software.
is understandable. Almost all the current PaaS vendors have developed mechanisms to harvest commons based peer production. Ultimately all of this ends up in some server of a vendor locked away in a data center somewhere. Most of the vendors use open source software heavily for their PaaS offerings and some have open sourced bits and pieces of their platform. While I’m certainly not the overzealous freedom fighter I was, this awfully sounds like writing open source applications for a proprietary platform. Not that it’s necessarily a bad thing. Unlike developing software on a proprietary operating system, developing on a proprietary platform as a service offering is limited in various aspects which are unique to its usecase.
So, IMHO, a more interesting problem to tackle in an environment like this is open source platform as a service. You still have a hosted service where people can just develop applications and forget about underlying technical details of the platform, where your data is residing and so on. At the same time this entire platform is open source! Sounds like a pipe dream but it’s a reality. I hope this will set a trend that other vendors follow, eventually.
The open source platform as a service is Stratos. The hosted platform reside in cloud.wso2.com where anyone can register for free (during the alpha and beta stages) and get an entire middleware platform at your fingertips with a few clicks. Another bold move is that the code base of the downloadable version and the hosted version are exactly the same! So, the platform itself and hosted applications behave in a predictable manner where ever they’re deployed. Also, it should be mentioned here that most of the services provided by Stratos started their life as standalone programs (like Tomcat). This also, provide invaluable repository of information if anyone wants to study how their should architect their applications to make them cloud native. Source code for the entire platform available here.
Patterns
Brad Appleton gives a nice introduction to what and how patterns entered into software development. Most of the sources online and elsewhere point to the 1987 technical report wrote by Kent Beck and Ward Cunningham to be the first published work on application of patterns for software systems. Later in 1997, Norman Kerth and Ward Cunningham wrote how patterns could be used to improve architectural vision of a software system. GoF book contains widely used patterns that occur during designing of software.
SOA patterns is a set of patterns that you’ll likely to encounter when implementing a service oriented architecture in an organization. Sometimes a product that you might be using will not be able to customize according to a well defined pattern. If you have to resort out to non standard communication mechanisms or have to alter your architecture to match what the product can do, then you shouldn’t be using that product to begin with. Cost of making a change later to accommodate a business need might be too high in such a scenario. I’ll be exploring how to configure open source software products to implement some of the well defined SOA patterns in coming posts.
Cloud computing and SOA
If you’ve not already heard the term (gasp!) or don’t have an idea about cloud computing you can look no further than the excellent, short presentation titled “Cloud Computing – Why IT matters” by Simon Wardley. Also, read a great paper about the subject “Above the Clouds: A Berkeley View of Cloud Computing” [PDF].
Usually in technically adept circles you can hear virtualization being used more often than the term cloud computing, the technology that enable computers to evaporate into small H2O particles and form clouds. Virtualization tools have been there for a while. It was, IMHO, got popular after Amazon slapped a Web services interface in front of Xen and said, try using this interface to start/stop and manage virtual machines. Having a separate service for persistent storage, again, is a brilliant marketing move. With big investments (such as Intel investing in Joyent) one can guarantee that the cloud space will get cloudier as time progress. This might make projects such as Simple Cloud more attractive.
Adoption rates for cloud computing is going to increase among the big guys. As a survey done by Forrester tells “one out of four large companies plan to use an external provider soon, or have already employed one”. When people are seriously considering moving to cloud platforms, you have to make sure that all the application programs are ready to be run on a virtualized environment. Specially SOA middleware products that the company is using should be compatible and must be able to take advantage of the services provided.
One advantage of moving to cloud computing is the ability to add/remove resources as and when it’s required. If your applications, or middleware products that you’re using is incapable of getting advantage of this elasticity (autoscaling to the inner techie in you) there’s no point, or no value gained by putting your stuff in the cloud. It’s one reason why WSO2 has “cloud enabled” all of the products line. Not only you can host all your services in the cloud using WSO2 middleware products, you can download pre-built images for VMware and KVM to run inside your private virtualized infrastructure. Give it a whirl and see!