Skip navigation

Tag Archives: internet

When most people are either confused or like being confused, it helps to put things plain and simple.

Service Oriented Architectures [SOA] play a pivotal role in today’s Enterprise Systems. Service orientation requires loose coupling of services with the underlying technologies. There is a lot Web Oriented Architectures gain by taking the SOA approach, especially with regard to aspects like scaling and being cloud ready.

I dont use SOA here to mean XML web services, but as a pattern for breaking down applications into distributed software components (which we call services). The components being independent units that deliver specific functionality. Data is encapsulated and made accessible only through well defined hardened interfaces. Consumers of the service are provided with a contract for the functionality provided through the interface. Hence, a clear isolation of functionality and data storage is achieved. The services manage all data internally and never provide direct database accesses. Whether access happens as XML/JSON or over REST/XML-RPC/SOAP is irrelevant for SOA. They form the various implementation options.

SOA also provides operational advantages in terms of the break down of the development work. First, small teams are created around problems. Next, the interfaces are decided and agreed upon. The teams then have full freedom in choosing tools, design methodologies, etc., as long as they provide the promised functionality through the interface. Developers in the team own end-to-end responsibilities for the service and are subjected to direct customer feedback. The heightened sense of responsibility also usually translates to better ownership of work. With hardened interfaces, localised issues and reduced integration efforts the net chaos in the system reduces significantly.

The parallel for SOA approach in the programming paradigm would be the Object Oriented Programming approach [OOPS]. Like OOPS, SOA is also vastly misunderstood. Most programmers fail to think Object Oriented-ly (esp the ones coming from the procedural world) and end up building poorly architected systems, while blaming OOPs for its clumsiness. Similar is the case with SOA.

We use SOA extensively in the systems we build at Althea. In my future posts I plan to provide more practical insights into SOA.

cloudsFor a Cloud Infrastructure, the ability to scale dynamically is a double edged sword.

Lets take the example of a more reactive approach to scaling on the cloud. Here, the utilization of all resources(CPU, RAM) in the infrastructure is monitored continuously and when it goes above a pre-defined threshold level, more resources are added. Let’s consider some failure scenarios that can happen with this approach.

* We know that a bot crawling the site will eat up whatever resources are thrown at it. The bot’s activity triggers the addition of more instances hence further empowering it. This leads to a sort avalanche effect and a mightily pissed off CFO.

* Adding application servers to support increasing demand while there are significant bottlenecks in the database infrastructure, further worsens the overall performance of the system.

* Spikes in traffic result in triggering off multiple instances without significantly improving the end user-experience. Hence giving rise to a bloated cloud infrastructure without sufficient business benefits.

There are many approaches you can take to plan your cloud deployment to get around these scenarios. They will be the subject of some future posts.

web 2.0

History has always intrigued and humbled me. And consumer internet has been my main focus of interest in the last couple of years. So this well made video on the history of internet immediately caught my fascination. The video also brought up the role played by European organizations in the evolution of the internet, something I had been ignorant about till now. [Second thoughts: Was it really my ignorance or was it the story the American text books I read during my engineering wanted me to buy into ;-)]

Going forward, I plan to blog more extensively about the changing trends in the use of internet technologies that aim to enhance creativity, communications, secure information sharing, collaboration and functionality of the web.

Checkout the HD version of the video on Vimeo.