Adopting, designing, and governing SOA well

SOA Best Practices Digest

Subscribe to SOA Best Practices Digest: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get SOA Best Practices Digest: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

SOA Best Practices Authors: Jason Bloomberg, Andy Thurai, Charles Araujo, Hollis Tibbetts, Pat Romanski

Related Topics: Agile Software Development, CTO Journal, SOA Best Practices Digest, SOA & WOA Magazine, Telecom Innovation

Televation: Article

What Is Service Orientation?

On the importance of achieving true business agility

Divide et impera6

On the assumption that service orientation is chosen as the company’s primary means of aligning technology qualities with business needs, and having obtained a strategic roadmap for the company, the most straight-forward practical approach for migrating legacy applications is the Thin Thread7 model.

The basic idea of the thin thread approach is to start with a very thin slice (or thread), which might, for example, only comprise the functionality of capturing a single string value in the application frontend, processing this information in the middle-tier, and writing it into the database. In the next phase, the thread might be thickened by adding end-to-end functionality for retrieving the string value from the database and displaying it in the application frontend. In a further iteration, a more complex data structure (e.g., a customer record) might be handled in a similar way, and so on. As the project continues, additional threads can be launched (see figure 6). [16]

Figure 6: The thin thread model proposes an iterative development methodology. It is based on a simple process that starts with one piece of simple functionality. This functionality (the thin thread) is iteratively either thickened or complemented by additional thin threads.
Figure 6: The thin thread model proposes an iterative development methodology. It is based on a simple process that starts with one piece of simple functionality. This functionality (the thin thread) is iteratively either thickened or complemented by additional thin threads. [16]

Very often, the initial version of a thread might match an individual operation of a more complex service, and the final iteration of the thread represents the full-blown service. [16]

Much of what is contained in this thin thread approach is obvious and common sense-effectively, it is a combination of widely established iterative application development concepts with a consequent vertical slicing approach on the architecture level. However, many projects struggle because they choose a horizontal instead of vertical decomposition approach. In addition, experience has shown that giving this approach a name (a "thread" denotes the basic work breakdown structure) and making it explicit in the project management plan simplifies planning and prevents miscommunication. [16]

The resulting context

This solution results in the following benefits and liabilities:

Modular architectures create the opportunity for strategic agility. By ensuring the predictability of core processes, they leverage the company’s distinctiveness. By enabling local customisation, they encourage innovation and customer responsiveness, but to benefit from modular architectures, companies need to learn how to quickly identify the strategic opportunities that best leverage their core, and then quickly develop or reuse modules that extend that core. Reusable modules will build a thicker, denser core, providing greater efficiencies while allowing local customisation. Custom modules will allow experiments to respond to changing market conditions. Having a modular architecture, companies will almost certainly reuse their expertise in process, data and technology standardisation. [6]

The greatest risk in building a modular architecture is that companies will rush to introduce modules before they have completely rationalised their core data. Modules can restore the autonomy and innovativeness of the application silo stage. But without a solid process base, modules run the risk of also restoring the anarchy of hundreds of unmanaged applications. [6]

Final remarks

Summing up, I have presented a practical broad-based approach to transforming legacy systems into a true modular architecture that enables both business agility and opportunities for new organisational structures. As is evident from the small representative, but not by any measure exhausted list of references (see next page), this approach is founded on a solid combination of scholarly knowledge, lessons learned, and good practices derived from over a decade of hands-on experience with business agility and service orientation.

To reduce complexity to simplicity, I haven’t mentioned cloud computing or event driven architecture; two architectural paradigms that goes well hand in hand with service orientation and further enables business agility.

In these turbulent and impractical times, I believe that the winning strategy is to forge a new business architecture that focuses on three key issues, namely; improving operational insight, achieving near-term revenue and efficiency gains, and building the strategic agility to heighten business readiness towards changing customer demands and to seize control of the new opportunities that lies ahead.

6 Latin term for an ancient strategy paradigm, meaning to divide and rule by partitioning larger concentrations of power into manageable chunks and thereby rendering each harmless (also known as divide and conquer).
7 The Thin Thread development and project management model is essentially an application of the Iterative Application Development (IAD) approach, as described, for example, in the Rational Unified Process. The Thin Thread approach is specifically suited for IAD in the context of Service-Oriented Architectures. [16, 24]
A thread represents a vertical slice through the system, including an end-to-end implementation of a particular piece of application logic, going from application frontend all the way down to the database. [16]

More Stories By Martin Kaarup

Martin Kaarup began his professional career over a decade ago as a system developer on location-based mobile phone services. During that time he participated as lead developer in pioneering unique state-of-the-art location-based services for the European and Asian markets, such as low-cost fleet-tracking using antenna triangulation and applications for utilizing customer positioning data for demographic use. He also participated in building location based games, such as treasure hunts and country-wide Dungeon & Dragons-based games merging www, wap and sms technologies.

Later, he shifted to the financial sector in Scandinavia where he worked as an enterprise architect building, extending, and delivering advanced fund data solutions and services designed specifically for the pan-European Fund Industry.

Today, Martin is an employee at the Swedish consultants company Avega Group, where he focuses his expertice on consulting companies on strategic and enterprise wide issues.