Saturday Apr 11, 2009

The End of an Architectural Era - It's Time for a Complete Rewrite

For years, it had been drummed into me, to use a relational database system (RDBMS). It was something that was just accepted, there wasn't any point arguing against it, as it appeared to just work. Data, the lifeblood of any system, could even be recovered in the event of some unfortunate hardware failure, if it was installed properly.

I worked on a few projects, at the end of the .com era, where we ran into difficulties with using relational databases. The issues primarily related to the volumes of data and types of transactions(large number of small inserts and updates) being used. On one project, when the vendor was approached with the issue, they acknowledged it, and said that it was an inherent issue with their product and that they had no plans to address it (so much for paid support, huh?).

Yes, my time honoured faith in the RDBMS had been eroded. But what were the alternatives? It was commercial suicide to not put a proposal forward that didn't use a RDBMS as the main data store.

A little while ago, I came across an interesting paper "The End of an Architecural Era (It's Time for a Complete Rewrite)"(PDF here).Now this paper, had the thought processes going. In it, they present reasons and strong evidence that the "one size fits all" commercial RDBMS paradigm is coming to an end. A key point that stood out for me is that they are 25 year old legacy code lines, written originally for 1970s architected hardware. The hardware has been retired, so should that code line in my humble opinion as well. Its well worth the time to read the paper.

"What are the alternatives?", I hear you still asking. Well I came across an excellent blog post by Richard Jones, "Anti-RDBMS: A list of distributed key-value stores".

I've been experimenting on a prototype, very successfully with Project Voldemort instead of a RDBMS. So next time, you are looking for a persistance store, don't assume you are best served with a RDBMS. It may no longer be the case!


Tags   |  Comments 0

Wednesday Oct 22, 2008

On Timeless Software

Sitting in Australia, I often wonder what it would be like to attend some of the key ICT events that occur in Europe or the US. At some point I'm sure that I'll attend some in person. In the meantime, I gain great insight through reading blog entries from leading analysts like James Governor of Redmonk. His recent blog entry - "On Timeless Software: Pace Layering and the SAP Software Architecture" intrigued me on three fronts:

  • Pace Layering - an interesting concept that appears to have been introduced by Stewart Brand (he of Whole Earth Catalog and Long Now fame) in a seminal presentation at IA2003 (this is from James's blog entry) and is now being applied in context of the software world;
  • Timeless Architecture - to me, this is the real area of abstraction that is timeless, not manifested software programs; and
  • Commoditisation - this key point seemed to be missing in James' discussion.

Let me explain each in more detail.

Pace Layering

This is an extremely interesting notion, showing that different areas of abstraction progress with change at different rates. It's the first time I've come across it. In a building scenario, the analogy really is that the foundations are built to last the tyranny of time, but the fixtures may last just for the life of the current tenant.

In a software scenario, different layers of the architecture manifested in a particular programming language evolve at different rates. That is to say the expectations of the presentation tier evolution by end users are more rapid then other tiers such as core transactions related to the production say of Management Accounts reporting.

In particular myself, I've tended to not work on core transactions that have been solid in a business for a number of years. For me if a transaction is supplied by SAP, then all likelihood it is not something that is going to give the organisation that I'm working for any real long term advantage over its competitors. The areas, that I've worked on, and for that matter the majority of where my associates have is in the those areas where custom software development is warranted to give a competitive advantage or to meet other unique organisations requirements or constraints.

Timeless Architecture

People see a good timeless architecture, in software through the experience they have. Its this notion of the Software Architecture that can be manifested over time in many evolutions that meet the intent of the architecture. Over time as the capability of technology matures, the design and implementation decisions that may have constrained that architecture are also altered to allow potential that may now have more Pace.

However, the cost to implement a new manifestation of the said timeless architecture may be prohibitive in comparison to the advantages gained. Its always a trade off decision, and its the internal struggle that a gifted support programmer is fighting - do I alter the existing or re implement. I know in my early years as a programmer, I was constantly told, not to rewrite programs. In the end I realised it was easier to rewrite a fair majority of them, but keep the name the same (my boss at the time was none the wiser).

The pattern I'm seeing now, is the mechanism to ensure this Timeless Architecture, is to have clearly defined interfaces, at the correct level of granularity, that act as contracts for others to engage with. Where ever there are these contracts it defines the point that controls the rate of change or indeed potentially a pace layer if they are logically grouped at the boundary of a tier, with similar granularity.

Commoditisation

Yet, the key point for me, is that the output from a large number of these transactions in a SAP manisfested implementation do not offer a significant advantage for one company over another. That is, they have become a commoditised component, where the defining characteristic is price and how quickly can it be implemented.

A new term I heard regarding SAP the other day, was Suck All Profits. From my perspective, this is going to be the key driver for SAP, how to get the price point down, whilst allowing the other faster moving layers to access the commoditised components in the architecture securely and effectively.

By freeing up budget, it will allow more focus on innovation that differentiates the organisation to allow them to gain a competitive advantage for a period of time over their competitors.


Tags   |  Comments 0

Friday Dec 21, 2007

Predictions for 2008 using my del.icio.us tag cloud

Its that time of year, when writing about your predictions for 2008 is all the rage. I've been tagging some by others on del.icio.us with prediction2008.

I've included my current del.licio.us tags in descending order of importance. It highlights the areas that I have had an active interest in either for current work or for research of future activities. So i've used them as the subjects for my predictions for 2008.

SaaS

Software as a Service will continue to become mainstream , as skilled resources become harder to find, internet connectivity latency decreases with the corresponding increase in bandwidth capacity. Wall Street will be even more attracted to the SaaS recurring pricing models, such that it will provide a higher potential exit price for Venture Capital backed organisations. Thus driving high rates of entrepreneurship and innovation in the SaaS sector then in comparison to traditional on-premise software delivery companies.

Business

Will continue to see their core Information Technology assets as a cost of doing business and will treat it as a commodity component. IT Consultants will find new ways to work with business, that is more closely aligned to business innovation within their specific industry. Nothing that new here, but internal IT skills will become less IT technical and more analytics driven. Marketing departments will take on more responsibility for analytics and data warehousing to improve marketing ROI.

Local markets in the developed world will continue to become a deeper shade of "red", as competition increases, driving exploration of new markets for growth through volume and innovation in delivery and execution. 

Web2.0

Is a technical label, that has been assigned to represent a change of thinking regarding memes around a social and networked world. It has signaled the rise of the long tail, being that of the boutique network connected micro-economy. Organisations in 2008, will reevaluate their methods of engaging with the market, and the micro-economy, as the number of larger and mid tiered firms dissipate through M&As.

IBM

IBM will embrace cloud computing (eg blue cloud) but have difficulties in engaging with customers in this area; whilst it is still perceived internally as a hardware and people services company. Margins for resellers, will continue to dwindle (hardware and software) as IBM software sales, outside of SMB, finally exceed hardware sales and thus moves focus from hardware. IBM will continue to work on, but won't formulate wining strategies in 2008, to take market spend from Microsoft in the SMB software area. IBM's sales force in 2008, focused on on-premise engagement will have difficulties with the off-premise SaaS nature of cloud computing. In 2008, there will be some high profile success stories publicized for Blue Cloud.

SOA

Service Oriented Architecture will continue to drive new systems and rationalisation of existing within the larger enterprises. Adoption of the SOA Architecture Style within enterprises will increase. However, unless machine generated, WS-* style service adoption will decrease. Skilled IT Architects capable of service decomposition  between business services and technical services will be in short supply for 2008.

SOA will continue to drive the demand for new on-premise middleware products. A number of new products will emerge in 2008, possible based on SCA/SDO, that allow utilisation of multiple programming languages and development paradigms.

via:aqualung

Thanks Ric :) lots of great material. Think more will come, including lots of great riffs and conversations. In 2008, I predict Ric will be writing more blog entries. 

Development

The Art of Developing computer systems will start to influence education in the area of Computer Science and Software Engineering. Iterative agile development processes will continue to be favored over waterfall methodologies. Some procurement departments will explore contracts that allow iterative development methodologies, but this will still not be the norm in 2008. This disconnect between what developers do and what contracts state will continue.

There will be increased interest in scripting languages such as Python and Ruby and further exploration of languages or changes to existing languages to support parallel computing. Functional languages such as ErLang, Haskell and OCaml will gain more of the spotlight.

Google 

Google will continue to influence developers through its Google Code. Google SaaS based services will influence development approaches and continue to play havoc with administrators who favor closed firewalls and block external high use URLs. Google will utilise more personal profile data to improve search results and at the same time use it to increase Ad revenue from targeted advertising.

Smaller SMBs will gain trust in Google and really start to question the value/cost of maintaining on-premise infrastructure.

Collaboration

Social software will gain some traction in more forward thinking organisations but it will still be an enathma to command and control based management. New products will be developed that utilise analytics in conjunction with project management methodologies to form groups/teams for delivery of specific deliverables based on a continuously moving project plan (isn't this what we do anyway manually?).

Innovation


Business will seek innovation to be internally driven and not from vendors, but will struggle with out outside influence. Australia will invest heavily in building infrastructure to support exporting of innovation overseas.

 

Microsoft

Will recover the market position lost with WindowsVista . SaaS (or as they call it Software plus Services) will continue to attract media spotlight as Microsoft seeks to gain new revenue streams and move focus from on-premise software. Huge internal debates over this will continue with little leakages, every now and then, to the market over the 2008 year. Headlines may move from Google vs Microsoft to IBM vs Microsoft, if Blue Cloud is a success.

Architecture

IT architecture will be important in organisations, as an enabler of structure. Many more titles containing the term Architecture will evolve in the 2008 year. IT Architects (of whatever title) will continue to find new ways of explaining the value of this abstract thinking to business and further consolidation of this knowledge will occur on the internet, such as at IASA.

 

Blog

PR agencies will learn how to influence the blogosphere. The informal citizen journalist will continue to eat into the revenues of traditional print media. Blogging in conjunction with bookmarking will become the preferred means over google to find "trusted" content and advice.

Java 

This is the pinnacle year for Java, the programming language, in the enterprise world. As concurrent computing needs are accelerated through the multi-core focus of CPU vendors, it may be perceived that the effort to modify the Java language specifications is higher then the benefits gained by using other programming languages. SOA standards, such as SCA and SDO, are evolving to be language neutral, this will reduce the reliance on Java in enterprise middleware products.

 

Lotus Connections

This is an interesting product, that shows the possibilities of internet based software behind the firewall. The 2007 year saw, too many new products evolve from IBM in my view, thus there may be in 2008, a consolidation of products to compete against Microsoft Office Sharepoint Services in the SMB space. My blog receives a large number of hits for "sharepoint vs websphere portal" searches on google, so it wouldn't surprise me if Lotus Connections is rolled into WebSphere Portal Express for the SMB market.

Open Source

Will still be here at the end of 2008. Microsoft will continue to push new standards based around its technology stack. The next killer app may emerge if usability and visual issues can be addressed. Has Windows Vista opened the door for the Linux desktops? We'll see this time next year.



Tags   |  Comments 0