<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4233102570796813262</atom:id><lastBuildDate>Sat, 11 Apr 2026 11:16:00 +0000</lastBuildDate><category>SOA</category><category>architecture</category><category>services</category><category>ESB</category><category>governance</category><category>strategy</category><category>Enterprise Architecture</category><category>design patterns</category><category>facade</category><category>IT strategy</category><category>business architecture</category><category>canonical model</category><category>infrastructure</category><category>service testing</category><category>web services</category><category>ROI</category><category>business agility</category><category>development</category><category>BPEL</category><category>BPM</category><category>Cloud computing</category><category>EDA</category><category>business enablement</category><category>conference</category><category>projects</category><category>service development</category><category>Azure</category><category>CoDA</category><category>Context Delivery Architecture</category><category>EA governance</category><category>IT complexity</category><category>IT simplification</category><category>Microsoft</category><category>REST</category><category>SOAP</category><category>TOGAF</category><category>agile</category><category>architect</category><category>architecture thinking</category><category>events</category><category>funding</category><category>integration</category><category>manifesto</category><category>maturity</category><category>metrics</category><category>middleware</category><category>object-oriented</category><category>orchestration</category><category>partnership</category><category>podcast</category><category>release management</category><category>roadmap</category><category>software development</category><category>thinking</category><title>Advanced Software Architecture Blog</title><description>Discussions and thoughts related to SOA, Enterprise Architecture, design patterns, service/application testing and management, software development methodologies, new trends in architecture, state of IT, and technology in general.</description><link>http://leoshuster.blogspot.com/</link><managingEditor>noreply@blogger.com (Leo Shuster)</managingEditor><generator>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-7735283332169035464</guid><pubDate>Wed, 15 Jan 2014 14:57:00 +0000</pubDate><atom:updated>2014-01-15T06:57:39.906-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">EA governance</category><category domain="http://www.blogger.com/atom/ns#">Enterprise Architecture</category><category domain="http://www.blogger.com/atom/ns#">governance</category><title>Implementing Effective Enterprise Architecture</title><description>I recently shared my experience on building and sustaining an effective Enterprise Architecture program with a group of Enterprise Architects and IT leaders at NOREX Select Enterprise Architecture Workshop.&amp;nbsp; Below is the link to the content I presented.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.slideshare.net/LeoShuster/implementing-effective-enterprise-architecture&quot;&gt;http://www.slideshare.net/LeoShuster/implementing-effective-enterprise-architecture&lt;/a&gt;</description><link>http://leoshuster.blogspot.com/2014/01/implementing-effective-enterprise.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>41</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-5734940790937709932</guid><pubDate>Wed, 18 Sep 2013 20:44:00 +0000</pubDate><atom:updated>2013-09-18T13:44:42.739-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business architecture</category><category domain="http://www.blogger.com/atom/ns#">Enterprise Architecture</category><category domain="http://www.blogger.com/atom/ns#">TOGAF</category><title>Introduction to Enterprise Architecture</title><description>Last week I was privileged to give a lecture at Kent State University on the topic of Enterprise Architecture.&amp;nbsp; Coming into the lecture, I felt that this topic would be too high level for most students.&amp;nbsp; However, I was pleasantly surprised with the level of interaction, understanding, and passion that the students exhibited.&amp;nbsp; I posted the presentation on SlideShare in case anyone wanted to borrow any of the&amp;nbsp;slides or use it as-is.&amp;nbsp; All I ask is for proper attribution...&lt;br /&gt;
&lt;br /&gt;
Here&#39;s the link: &lt;a href=&quot;http://www.slideshare.net/LeoShuster/introduction-to-enterprise-architecture-26319680&quot;&gt;http://www.slideshare.net/LeoShuster/introduction-to-enterprise-architecture-26319680&lt;/a&gt;.&amp;nbsp; Enjoy!</description><link>http://leoshuster.blogspot.com/2013/09/introduction-to-enterprise-architecture.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>87</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-934024598750974038</guid><pubDate>Fri, 23 Aug 2013 04:07:00 +0000</pubDate><atom:updated>2013-08-23T08:55:29.731-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business agility</category><category domain="http://www.blogger.com/atom/ns#">business architecture</category><category domain="http://www.blogger.com/atom/ns#">business enablement</category><category domain="http://www.blogger.com/atom/ns#">IT complexity</category><category domain="http://www.blogger.com/atom/ns#">IT simplification</category><category domain="http://www.blogger.com/atom/ns#">IT strategy</category><category domain="http://www.blogger.com/atom/ns#">roadmap</category><title>A Roadmap to Business Agility</title><description>I hope my avid readers noticed that as I discussed Business Enablement and IT simplification in my last two posts (&lt;a href=&quot;http://leoshuster.blogspot.com/2013/08/business-enablement-through-release.html&quot;&gt;Business Enablement through Release Management&lt;/a&gt; and A&lt;a href=&quot;http://leoshuster.blogspot.com/2013/07/achieving-true-business-and-it.html&quot;&gt;chieving True Business and IT Partnership&lt;/a&gt;), there was a common thread that ran through both of these articles. &amp;nbsp;It was maximization of business agility. &amp;nbsp;But what is business agility and why is it so important? &amp;nbsp;In my simple definition, it is company’s ability to react quickly to changing market conditions. &amp;nbsp;Every organization strives to introduce new products or services before its competitors, change prices at a drop of a hat, offer innovative solutions, be flexible, and so on. &amp;nbsp;Those companies that are more agile become leaders, those that are not become extinct.&lt;br /&gt;
&lt;br /&gt;
I’ve argued that enabling business users to make changes to IT systems themselves and providing a streamlined deployment process goes a long way towards achieving business agility. &amp;nbsp;However, the more astute readers will note that there has to be a more holistic approach to achieving business agility. &amp;nbsp;And they would be right! &amp;nbsp;In fact, there are many approaches and models to maximize an organization’s business agility. &amp;nbsp;Doing a Google search on “business agility” brings up hundreds of relevant articles. &amp;nbsp;All of them approach this topic from different perspectives, and all of them have merit. &amp;nbsp;In this discussion, I will present an alternative to maximizing business agility – simple, yet powerful roadmap to move the organization forward.&lt;br /&gt;
&lt;br /&gt;
My model consists of two variables – Business Enablement and IT Complexity. &amp;nbsp;The hypothesis that is being proposed by it is very simple – by increasing Business Enablement and reducing IT Complexity, you will maximize your organization’s business agility. &amp;nbsp;The visual representation of this model is shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5pNbELCnkvxQbdBag6PivJZIkwaA51cd1sFqqIe7ChTq1yPVbDjqvX6xQpyYYEU7PK_oFRphAiCJ_Dvw_s3m-3oysWAvB_bmL0w3auTafN9sM88KEk1wjyBw8C0EmjTeDnmLwf-bS4g/s1600/BusinessEnablement-ITComplexity.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;281&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5pNbELCnkvxQbdBag6PivJZIkwaA51cd1sFqqIe7ChTq1yPVbDjqvX6xQpyYYEU7PK_oFRphAiCJ_Dvw_s3m-3oysWAvB_bmL0w3auTafN9sM88KEk1wjyBw8C0EmjTeDnmLwf-bS4g/s400/BusinessEnablement-ITComplexity.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As you can see, on the way towards maximum agility, each organization will pass through a variety of states.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Highly IT Dependent&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Business depends on IT to perform even the simplest tasks&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Process Dependent&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;All processes are defined and understood&lt;/li&gt;
&lt;li&gt;Business and IT both follow consistent and repeatable processes&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Enabled &amp;amp; Largely Independent&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Business is self sufficient in most operations&lt;/li&gt;
&lt;li&gt;Needs to rely on IT in some situations&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Self Sufficient &amp;amp; Automated&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Business can perform all the critical functions with little or no IT involvement&lt;/li&gt;
&lt;li&gt;IT plays a supporting role&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
These maturity phases are all very high level, but you can see how and where the progress should be made to achieve the next level of maturity. &amp;nbsp;The maturation process makes business increasingly more and more self sufficient while at the same time mandating simplification of IT. &amp;nbsp;Without Business Enablement and IT Complexity variables moving in the right direction, the subsequent phases on the maturity curve cannot be reached. &amp;nbsp;The proof of this hypothesis is provided below.&lt;br /&gt;
&lt;br /&gt;
The IT Complexity component of the equation has to be explained a bit further, as it carries a very specific meaning in this model. &amp;nbsp;There are many elements contributing to IT Complexity. &amp;nbsp;They may include number of systems, number of interfaces, diversity of platforms, supported technologies, etc. &amp;nbsp;My simple definition of IT Complexity is the amount of effort required to introduce a unit of change to IT systems. &amp;nbsp;A unit of change is a measure of a basic change that can be made to a system’s functionality. &amp;nbsp;Each organization may have a different notion of a unit of change, which is why using this measure helps generalize this approach across a variety of IT organizations. &lt;br /&gt;
&lt;br /&gt;
Some IT environments can be so complex and tightly interconnected that even the simplest change can take a lot of effort. &amp;nbsp;On the other hand, there may be organizations with such well defined systems and clear boundaries around them that changes can be made quickly with little or no impact on the outside world. &amp;nbsp;Most organizations, however, will find themselves somewhere in the middle of the two extremes.&lt;br /&gt;
&lt;br /&gt;
The reason IT Complexity plays a prominent role in the business agility model presented here is simple. &amp;nbsp;The faster and easier that changes can be made to IT systems, the more agile the entire organization can become. &amp;nbsp;In fact, by simplifying the IT environment and introducing next generation technologies such as Business Rules, BPM, Cloud Computing, etc. you will decrease the time required to make changes to IT systems. &amp;nbsp;I’ve argued this exact point in the &lt;a href=&quot;http://leoshuster.blogspot.com/2013/04/death-of-custom-software-development.html&quot;&gt;Death of Custom Software Development&lt;/a&gt; post.&lt;br /&gt;
&lt;br /&gt;
The bottom line is that by striving to increase Business Enablement and reduce IT Complexity you will ultimately maximize your organization’s business agility. &amp;nbsp;Why? &amp;nbsp;Simply because by increasing Business Enablement, you enable business to react faster to any situation, and by decreasing IT Complexity, you make IT more efficient. &amp;nbsp;Putting these two variables together leads to maximum business agility.&lt;br /&gt;
&lt;br /&gt;
The path towards business agility is neither straight nor simple. &amp;nbsp;The distance between each maturity level on the model is measured in years, not months. &amp;nbsp;The journey requires significant investment of time and resources, strong backing of IT and business leaders, deep commitment from everyone involved, and a lot of hard work. &amp;nbsp;But the results are worth the effort. &amp;nbsp;If you had to choose between the market leadership, mere survival, or extinction, where would you want your company to be? &amp;nbsp;My guess is that market leader is where everyone wants to be. &amp;nbsp;To achieve this, you will need to follow the simple roadmap outlined above.</description><link>http://leoshuster.blogspot.com/2013/08/a-roadmap-to-business-agility.html</link><author>noreply@blogger.com (Leo Shuster)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5pNbELCnkvxQbdBag6PivJZIkwaA51cd1sFqqIe7ChTq1yPVbDjqvX6xQpyYYEU7PK_oFRphAiCJ_Dvw_s3m-3oysWAvB_bmL0w3auTafN9sM88KEk1wjyBw8C0EmjTeDnmLwf-bS4g/s72-c/BusinessEnablement-ITComplexity.jpg" height="72" width="72"/><thr:total>23</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-3419985544548732251</guid><pubDate>Fri, 02 Aug 2013 15:54:00 +0000</pubDate><atom:updated>2013-08-02T08:54:09.951-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business agility</category><category domain="http://www.blogger.com/atom/ns#">business architecture</category><category domain="http://www.blogger.com/atom/ns#">business enablement</category><category domain="http://www.blogger.com/atom/ns#">IT strategy</category><category domain="http://www.blogger.com/atom/ns#">release management</category><title>Business Enablement through Release Management</title><description>&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Ever since IT became self-aware (no, not like Skynet in the
Terminator) it has been striving to make itself more and more efficient.&amp;nbsp; The “Aha!” moment for every IT organization
comes when it realizes that business thinks it is too slow and delivers little
value.&amp;nbsp; After much introspection, new
promises are made, commitment to customer service is renewed, processes are
modified and streamlined, resources are trained, and so on…&amp;nbsp; Everything runs great for awhile only to be
repeated a couple of years later.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
In the recent years, when the technology became
more business user friendly, IT organizations realized that the best thing they
could do for the business was to let it have a piece of the action.&amp;nbsp; “Business Enablement” became the thing to do.&amp;nbsp; The idea was to let the business users
actually make changes to some parts of the IT systems.&amp;nbsp; According to James Taylor, a thought leader
in the decision management space, “business enablement means putting the
business users, those who understand the business and how it needs to change,
in a position to make the changes they want and need without IT being a roadblock.&quot;(&lt;a href=&quot;http://www.ebizq.net/blogs/decision_management/2006/08/heres_a_quick_way_to_deliver_b.php&quot;&gt;http://www.ebizq.net/blogs/decision_management/2006/08/heres_a_quick_way_to_deliver_b.php&lt;/a&gt;)
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Many organizations have struggled with enabling its business
users in the way James Taylor describes it.&amp;nbsp;
Many have tried, yet many have failed.&amp;nbsp;
Those that are successful not only introduce the right technology
solutions but also modify many of its processes to ensure that business users
can actually do what they need with little or no IT involvement.&amp;nbsp; Simplification and streamlining of the
processes, automation, and modernization are the keys to a successful business
enablement initiative.&amp;nbsp; Introducing the
right business enablement technology is, of course, beside the point.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Typically, the biggest obstacle to making business
enablement work well is the IT Release Management process.&amp;nbsp; It is often too rigid and cumbersome, requires
a small army to execute, and takes a long time.&amp;nbsp;
Business doesn&#39;t want to wait months for its often simple changes to be
moved to production.&amp;nbsp; This is not what business
enablement is all about.&amp;nbsp; Yet, IT,
rightly so, doesn&#39;t want to let anything get into production without proper
testing and validation.&amp;nbsp; And here, at
these crossroads is where most business enablement initiatives die.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;But there is a way to solve this…&amp;nbsp; The simple solution is to provide a shortcut
to production for most if not all the changes made by the business.&amp;nbsp; The diagram below depicts a high level
process for achieving this.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglbdSaIOHXmENBMGMaYB7yd_ylmy7nuM_A4hQsLyY95fexlJ5t8gj0WChGKzpY-PF4te2GdCqaNuHytNVtFGBOFRr3wlZCla9xT5BEzbBPwCgQ4n-qZSKy4IaH1OWi1C8KgoBEI-M8Aw/s1600/Streamlined+Release+Management.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglbdSaIOHXmENBMGMaYB7yd_ylmy7nuM_A4hQsLyY95fexlJ5t8gj0WChGKzpY-PF4te2GdCqaNuHytNVtFGBOFRr3wlZCla9xT5BEzbBPwCgQ4n-qZSKy4IaH1OWi1C8KgoBEI-M8Aw/s640/Streamlined+Release+Management.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;It really doesn’t matter what tools are employed or what types
of changes are made.&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;This process should
be able to handle most situations.&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The
idea here is simple.&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;To streamline the
movement of business artifacts from development to production, several steps
need to be taken.&lt;/span&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Establish a Business Development Environment, a
location where business users can make changes to elements of IT systems under
their control and test the impacts of these changes&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Once the changes are ready, provide an automated
way to execute as many regression tests as necessary to validate that the
changes do not impact any existing systems&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Enable an automated way to execute performance /
load tests to ensure that changes do not adversely impact established NFRs&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Ensure stakeholders validate that the changes do
not break current systems’ functionality&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Upon successful completion of all the tests,
provide an automated way to deploy changes to production&lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Ideally, this process should take a few hours, a couple
of days at the most.&amp;nbsp; It should shortcut
the existing Release Management process that normally takes weeks to complete.&amp;nbsp; The goal is to introduce changes into
production as quickly as possible.&amp;nbsp; Of
course, not every change is eligible for such first class treatment.&amp;nbsp; The basic guiding principles for a shortened
release management lifecycle should be:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;If a change is confined to business owned
elements only and no changes by IT are needed, the change is eligible for the streamlined
release&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If any IT changes are required, the regular
release management process should be followed&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;While this process is simple from a high level
perspective, there is a lot of hard work that needs to go into it to make it
operational.&amp;nbsp; Automation of testing and
release management functions is never simple, fast, or straightforward.&amp;nbsp; It usually takes months or even years to
reach a point where it will cover 80% of IT systems and business functions.&amp;nbsp; Yet, without automation, the process as
described above cannot work.&amp;nbsp; There is
not going to be anything fast or streamlined about manual testing of business
changes.&amp;nbsp; On the other hand, the culture
change required to make this process work can be daunting.&amp;nbsp; Not many IT organizations will be willing to
make this kind of a leap.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Business enablement can be achieved without a streamlined
release management process.&amp;nbsp; However,
business agility cannot.&amp;nbsp; Businesses
cannot move as quickly as they can and react rapidly to a changing business
climate without a way to introduce changes to IT systems in days rather than
months.&amp;nbsp; Those that can leverage business
enablement and release management processes to their advantage will inevitably come
out ahead.&lt;/span&gt;&lt;/div&gt;
</description><link>http://leoshuster.blogspot.com/2013/08/business-enablement-through-release.html</link><author>noreply@blogger.com (Leo Shuster)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglbdSaIOHXmENBMGMaYB7yd_ylmy7nuM_A4hQsLyY95fexlJ5t8gj0WChGKzpY-PF4te2GdCqaNuHytNVtFGBOFRr3wlZCla9xT5BEzbBPwCgQ4n-qZSKy4IaH1OWi1C8KgoBEI-M8Aw/s72-c/Streamlined+Release+Management.jpg" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-3827095897706218872</guid><pubDate>Fri, 19 Jul 2013 02:50:00 +0000</pubDate><atom:updated>2013-07-18T19:57:35.958-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business agility</category><category domain="http://www.blogger.com/atom/ns#">business architecture</category><category domain="http://www.blogger.com/atom/ns#">IT strategy</category><category domain="http://www.blogger.com/atom/ns#">partnership</category><title>Achieving True Business and IT Partnership</title><description>Business
and IT have a long history of conflict.&amp;nbsp;
Ever since computers became available to solve business problems and
formalized IT organizations were created to support this mission, business and
IT groups found themselves at odds.&amp;nbsp; How
often have we heard these statements?&lt;br /&gt;
&lt;br /&gt;
“Business’
expectations are unrealistic”&lt;br /&gt;
“All
business cares about is dates”&lt;br /&gt;
“Business&amp;nbsp;doesn&#39;t&amp;nbsp;understand how IT operates”&lt;br /&gt;
Or…&lt;br /&gt;
“IT
never delivers anything on time”&lt;br /&gt;
“IT
can’t deliver anything for less than $100K”&lt;br /&gt;
“IT
processes are too complex and get in the way”

&lt;br /&gt;
&lt;br /&gt;
We
know that the best way to deal with this conflict is to establish a true
partnership between business and IT organizations.&amp;nbsp; Yet, few companies are successful in
achieving such symbiotic relationship.&amp;nbsp;
Why?&amp;nbsp; There are many reasons for
this.&amp;nbsp; However, none is more relevant than
&lt;b&gt;&lt;i&gt;IT’s
desire to control the entire software delivery lifecycle&lt;/i&gt;&lt;/b&gt;.&amp;nbsp; No, your eyes do not deceive you.&amp;nbsp; I indeed contend that many problems will be
solved if IT gives up some control over how software is delivered into
production.

&lt;br /&gt;
&lt;br /&gt;
I
can hear the accusations of heresy right now.&amp;nbsp;
I can feel the wrath of IT purists enraged with such preposterous
ideas.&amp;nbsp; I can hear IT managers grinding
their teeth in response to business infringing on their domain.&amp;nbsp; Hold your angry rhetoric for just a bit
longer.&amp;nbsp; I will explain my reasoning
shortly.

&lt;br /&gt;
&lt;br /&gt;
In
this day and age, software packages have become so sophisticated that more and
more features are aimed at non-IT people.&amp;nbsp;
Many systems include rules engines, BPM capabilities, scripting
languages, etc.&amp;nbsp; IT no longer has to
reinvent the wheel to provide business the features it needs.&amp;nbsp; As I argued in my earlier post, &lt;a href=&quot;http://leoshuster.blogspot.com/2013/04/death-of-custom-software-development.html&quot;&gt;Death of Custom Software Development&lt;/a&gt;, IT organizations have to
become more and more integration rather than custom development focused.

&lt;br /&gt;
&lt;br /&gt;
This
argument can be extended further.&amp;nbsp; IT no
longer has to control the entire software delivery lifecycle.&amp;nbsp; Enable the business to make changes to rules,
processes, static values, web pages, printed communications, etc., and you will
enter a brave new world of true partnership.&amp;nbsp;
It’s that easy!&amp;nbsp; Let the business control
its own domain with minimal support from IT and let IT control the technology
and infrastructure.&amp;nbsp; The two will
intersect when they truly need each other.&amp;nbsp;
IT will start playing a true supporting role by enabling the business to
be productive and ensuring that changes business is about to introduce will not
have a negative impact on everything else.&amp;nbsp;
Business will start looking at IT as an enabling partner, not just an
expensive scapegoat.&amp;nbsp; Everyone will hold
hands and sing Kumbaya.

&lt;br /&gt;
&lt;br /&gt;
Of
course, a lot needs to be done to achieve this Utopian society.&amp;nbsp; Roadmaps need to be created, reviewed, and
approved.&amp;nbsp; Next generation packages need
to be procured and implemented.&amp;nbsp; Business
users that will be empowered to make changes will need to be identified and
trained.&amp;nbsp; Significantly simplified and
streamlined release management processes need to be created.&amp;nbsp; Culture needs to change.
&lt;br /&gt;
&lt;br /&gt;
It
is a long and arduous journey, but it is well worth the effort.&amp;nbsp; Think about how much work IT does today that
should really be done by the business.&amp;nbsp;
Let the business finally be the master of its own domain.&amp;nbsp; And for the first time in many years,
business will have no one but itself to blame for defects and missed deadlines!
</description><link>http://leoshuster.blogspot.com/2013/07/achieving-true-business-and-it.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-1163679484826365915</guid><pubDate>Tue, 30 Apr 2013 04:49:00 +0000</pubDate><atom:updated>2013-05-02T06:50:38.715-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Enterprise Architecture</category><category domain="http://www.blogger.com/atom/ns#">integration</category><category domain="http://www.blogger.com/atom/ns#">IT strategy</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">software development</category><title>Death of Custom Software Development</title><description>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(Disclaimer: This post is largely based on an excerpt from my contribution to the upcoming book from Thomas Erl&#39;s&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Service-Oriented Computing series,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; text-align: start;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Next Generation SOA: A Real-World Guide to Modern Service-Oriented Computing&lt;/span&gt;&lt;/i&gt;.)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif; text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Until very recently, the typical approach for many corporate IT departments when dealing with a business problem has been – code first, ask questions later.&amp;nbsp; Many enterprise systems have been custom coded in the past.&amp;nbsp; But this trend is changing.&amp;nbsp; Companies realize that biggest value is gained from leveraging existing vendor or cloud-based solutions and integrating them into useful business solutions.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The transformation from a development to integration mentality moves companies up the maturity curve significantly.&amp;nbsp; Agility is gained by purchasing or leasing the necessary foundational capabilities and customizing them to meet business needs.&amp;nbsp; IT no longer spends majority of its time building solutions, finding bugs, and deciding which SDLC is better.&amp;nbsp; Instead, IT teams can concentrate on delivering business value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Organizations that adopted the integration first mentality are also forced to determine their competitive advantage strategies.&amp;nbsp; Michael Porter identified three types of business capabilities that should be considered in designing a business strategy.&amp;nbsp; They are base, competitive and differentiated capabilities.&amp;nbsp; Base capability is one that is foundational to the business, without which a business cannot operate.&amp;nbsp; This includes accounting, finance, HR, etc. as well as basic customer facing capabilities that are taken for granted.&amp;nbsp; Competitive capabilities are those that allow companies to remain competitive with each other.&amp;nbsp; For example, banks typically match each other’s lending products, interest rates, depository vehicles, etc.&amp;nbsp; Differentiated capabilities allow companies to stand out and separate themselves from each other.&amp;nbsp; In banking, examples of this include bill pay features, innovative product offerings, customer service, etc.&amp;nbsp; Michael Porter argued that companies want to be as good and efficient as its competitors in the base and competitive capabilities, but they want to excel in the differentiated capabilities to win.&amp;nbsp; Investment strategies should also match this philosophy.&amp;nbsp; Minimal necessary investments should be made in base and competitive capabilities that allow businesses to remain on par with others, but maximum possible investment should be made into increasing the degree of differentiation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;IT investment strategies should match those of its business partners.&amp;nbsp; Therefore, IT should consider which capabilities its investments support.&amp;nbsp; Just as with the business side, IT should minimize its spending on base and competitive capabilities and maximize spending to support differentiation.&amp;nbsp; The coding and integration strategies are also impacted by these decisions.&amp;nbsp; While base and competitive capabilities should almost never be custom coded, differentiated capabilities can, and oftentimes, should be.&amp;nbsp; In the modern world, however, custom development most often takes shape of configuration or scripting, as in business process design, business rules development, and vendor package configurations.&amp;nbsp; Little room is left to coding new functionality from scratch.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Service-orientation becomes a significant factor when companies adopt an integration mindset.&amp;nbsp; It becomes the central theme of everything that happens within an enterprise.&amp;nbsp; IT assets become a loosely coupled collection of vendor products, SaaS, services, mashups, and legacy applications.&amp;nbsp; Service-oriented middleware and SOA governance become key players in every project, initiative, and program.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Finally, the company’s entire culture must change. &amp;nbsp;Everyone, from business and IT leadership to sales people and developers, must embrace the integration first mentality. Without it, there will constant infighting between the development and integration clans. &amp;nbsp;Philosophical battles will ensue. &amp;nbsp;But if clear direction is given to the organization and business and IT stand shoulder to shoulder, there will be very little choice but to accept the change.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;One CIO I worked for issued a very clear and concise statement of direction to his IT organization related to software development decision criteria: &quot;Reuse before buy before build.&quot; &amp;nbsp;Everyone understood and embraced it.&amp;nbsp; The IT organization understood what decisions took priority over others.&amp;nbsp;&amp;nbsp;Business stakeholders started asking questions like &quot;Are there software assets we can reuse for this effort?&quot; and &quot;What vendor solutions exist for this problem?&quot; &amp;nbsp;The entire organization adopted the&amp;nbsp;integration first mentality as a result of the CIO&#39;s guidance.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;While software development will never completely disappear, most IT organizations supporting mature businesses need to shift towards the&amp;nbsp;integration first culture. &amp;nbsp;Let&#39;s face it, IT groups are not in the business of software development -- they are in business of supporting their business. &amp;nbsp;IT needs to concentrate on delivering business value, not building custom software!&lt;/span&gt;</description><link>http://leoshuster.blogspot.com/2013/04/death-of-custom-software-development.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>99</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-2223927466639569211</guid><pubDate>Fri, 31 Aug 2012 18:49:00 +0000</pubDate><atom:updated>2012-09-21T07:51:09.119-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">architecture thinking</category><category domain="http://www.blogger.com/atom/ns#">Enterprise Architecture</category><category domain="http://www.blogger.com/atom/ns#">manifesto</category><title>The Architect Manifesto</title><description>IT architecture is a well defined profession. It was in existence ever since computers were first created in the 1940s and software needed to be developed for them. While it became more formalized only in the 1980s, the profession took huge steps forward in the last 30 years. Today, the world of&amp;nbsp;IT architecture includes such disciplines as SOA, integration architecture, system architecture, data architecture, security architecture, etc. Yet, despite all of its different facets,&amp;nbsp;IT architecture core practices, goals, and approaches remain the same across all of its disciplines.&lt;br /&gt;
&lt;br /&gt;
There are several key principles that help us become successful as&amp;nbsp;IT architects. No matter what problems we face, no matter what types of solution we need to apply, no matter what technologies we use, these general guidelines should always be followed. This forms the basis for the Architect Manifesto.&lt;br /&gt;
&lt;br /&gt;
My research indicates that there have been multiple attempts at defining an Architect Manifesto. None of them seem to have succeeded or gained traction. Yet, I am certain that we, as architects, need the guiding light of a set of principles that will guide us in everything we do. We already unconsciously understand and follow them, but a formal definition will strengthen and inspire us. This is my attempt at verbalizing what we already know and apply in everyday work – the Architect Manifesto.&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;We, IT architects, guide the design and evolution of computer systems. We strive to achieve maximum value for our business partners through this work. We constantly discover better ways to architect systems. As a result, we have come to value:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Simplicity &lt;/span&gt;over complexity&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Pragmatism &lt;/span&gt;over perfectionism&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Thinking out of the box&lt;/span&gt; over applying the same approaches to every problem&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Developing technology agnostic solutions&lt;/span&gt; over making technology driven decisions&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Delivering solutions to the business problems&lt;/span&gt; over concentrating purely on technology deliverables&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Looking at the big picture&lt;/span&gt; over getting too deep into details&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Long term, strategic thinking&lt;/span&gt; over short term, tactical thinking&lt;br /&gt;
&lt;br /&gt;
That is, while there is a place for the tactics on the right, we should strive towards approaches on the left.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
I would appreciate feedback from all of the architects out there to make this manifesto more complete and relevant. </description><link>http://leoshuster.blogspot.com/2012/08/the-architect-manifesto.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>13</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-5635475912583791830</guid><pubDate>Thu, 27 Jan 2011 05:23:00 +0000</pubDate><atom:updated>2011-01-26T21:23:47.152-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BPEL</category><category domain="http://www.blogger.com/atom/ns#">BPM</category><category domain="http://www.blogger.com/atom/ns#">conference</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><title>Business Process Excellence for Financial Services 2011 Conference</title><description>I will be presenting two sessions at the &lt;a href=&quot;http://www.bpe-finance.com/Event.aspx?id=429872&quot;&gt;IQPC Business Process Excellence for Financial Services 2011 conference&lt;/a&gt;. The first one is a pre-conference workshop on &lt;a href=&quot;http://www.bpe-finance.com/Event.aspx?id=446222&quot;&gt;Service Oriented Architecture And Business Process Management: A Comprehensive Approach To Business Performance&lt;/a&gt;. The second one is the first session of Day 1, &lt;a href=&quot;http://www.bpe-finance.com/Event.aspx?id=446220&quot;&gt;Embracing Truly Integrated BPM: A Holistic Approach&lt;/a&gt;. This should be very exciting!</description><link>http://leoshuster.blogspot.com/2011/01/business-process-excellence-for.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>9</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-5133306104150385340</guid><pubDate>Wed, 12 Jan 2011 19:08:00 +0000</pubDate><atom:updated>2011-01-26T21:15:17.355-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">conference</category><category domain="http://www.blogger.com/atom/ns#">governance</category><category domain="http://www.blogger.com/atom/ns#">podcast</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>SOA &amp; Cloud Symposium Podcast</title><description>SOA and Cloud Symposium podcast published. Listen to it at &lt;a href=&quot;http://soasymposium.com/podcast2011.php&quot;&gt;http://soasymposium.com/podcast2011.php&lt;/a&gt;. This podcast is part of the International SOA and Cloud Symposium Conference Series and the upcoming &lt;a href=&quot;http://www.amazon.com/gp/product/0138156751?ie=UTF8&amp;amp;tag=advansoftwarc-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0138156751&quot;&gt;SOA Governance (Prentice Hall Service-Oriented Computing Series from Thomas Erl)&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://www.assoc-amazon.com/e/ir?t=advansoftwarc-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0138156751&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px;&quot; width=&quot;1&quot; /&gt; book launch.</description><link>http://leoshuster.blogspot.com/2011/01/soa-cloud-symposium-podcast.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-53118229248657399</guid><pubDate>Tue, 27 Jul 2010 17:30:00 +0000</pubDate><atom:updated>2010-07-27T10:41:12.593-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architect</category><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">thinking</category><title>Architectural Thinking</title><description>I recently had to give an Architectural Thinking course.  As I was putting the materials together, I wondered – what really makes a good architect?  What is the difference?  Is it personality, totality of experiences, different wiring, or natural inclination?&lt;br /&gt;&lt;br /&gt;I always believed that while good architecture skills can be taught, it is the way we think that differentiates us and makes us good architects.  Our natural ability to understand the problem and determine the &lt;strong&gt;right&lt;/strong&gt; solution is the magic formula.  This – and this alone – distinguishes good architects in our midst.  You don&#39;t have to have &quot;architect&quot; in your job title or even be in IT to be a good architect.  You can understand the technology in minute detail, know all the design patterns, possess tremendous depth of experience, have in-depth knowledge of various design techniques, etc.  All this can be taught or acquired.  At the end of the day, however, it is your approach to problem solving and the way you think that will make you stand out among your peer architects.&lt;br /&gt;&lt;br /&gt;Why do I put such a heavy emphasis on the thinking style?  To help you understand, we need to take a step back and define &quot;architecture&quot;.  According to &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_architecture&quot;&gt;Wikipedia&lt;/a&gt;, &quot;the software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.&quot;  Many books, articles, and white papers provide a definition of architecture as well.  However, in my opinion, these definitions are too complex and do not truly reflect the nature of architecture.  My personal definition is very simple: &lt;em&gt;architecture is a high level view of a technical solution to a business problem&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;What does the definition of architecture have to do with our approach and thinking style?  Everything!  Taking all the specifics of how we actually deliver architectural solutions out of conversation, to do our job well we simply need to determine the &lt;strong&gt;right&lt;/strong&gt; technical solution to the &lt;strong&gt;right&lt;/strong&gt; business problem.  We need to consider all the possibilities when addressing a business problem – what is there today, what is missing, what problem are we really trying to solve, is the current process the most efficient, what would deliver the most value, are we solving the right problem?..  We should be able to look at the problem from a very high level, abstract ourselves from the underlying technology or processes, and envision the most effective and efficient solution.  As in the old adage, we should see the forest for the trees.  Once the &quot;ideal&quot; solution is found, we can start concentrating on its details and understanding technology implications.  Many times, we will discover that our vision cannot be readily implemented due to technology limitations, insufficient process maturity, and a host of other factors.  Do not despair, however.  Your vision becomes the solution goal state, and you would need to create a roadmap to get there.&lt;br /&gt;&lt;br /&gt;Undoubtedly, some of you will disagree with the approach presented above.  I can hear the arguments now – &quot;You must consider the current situation to determine the right solution to the problem&quot;, &quot;The project has a limited scope, and thinking broader is impractical&quot;, &quot;The technology landscape should be considered upfront to design the most effective solution&quot;, etc.  However, if we are to find the right technical solution, we must shed the old baggage.  It is very hard to find new and innovative solutions if you cannot think outside the current box.  To a large extent, the architectural thinking principles are grounded in the definition of what makes a good architect.&lt;br /&gt;&lt;br /&gt;Architecture is an art, not a science.  Therefore, a good architect is more of an artist – creative, imaginative, someone who can paint with a big brush.  In my opinion, the characteristics and approaches listed below are the true differentiating factors among architects.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Abstract thinking – this is the #1 quality of a good architect.  You must be able to see the big picture and understand it abstractly, absent of many details that can cloud your judgment.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Out-of-the-box thinking – many situations require us to be creative and innovative in our approaches.  Good architects should be able to adapt to new situations easily and come up with the right solutions regardless of the situation.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Clarity of vision – you, as an architect, should be able to clearly envision the solution and all of its implications including business process, technology, low level design, development, and potential phased delivery.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Strength of convictions – architects should always try to do things right the first time, oppose inappropriate or wrong decisions, and stand up for what they believe are the right architectural solutions.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Critical thinking – architects should always cast a critical eye towards their domain.  You should challenge everything.  Nothing should remain status quo or off limits.  There are always opportunities for improvement.  Don’t miss them because you feel comfortable with the current situation or are used to doing things a certain way.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Problem solving skills – architects are problem solvers.  Good architects strive to solve problems in the minimalist way, i.e. reaching the right solution in the most efficient manner.  Even better architects ensure that they are solving the right business problem.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Soft skills – this one is obvious.  Good architects should have excellent soft skills to work well with the diverse audiences they are exposed to every day.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;As in the everlasting nature vs. nurture debate, I believe good architects cannot be made – a large portion of what makes architects stand out is ingrained in how we think, act, and approach problems.  To be truly effective, we should practice all the elements of architectural thinking and exhibit all the traits of a good architect.</description><link>http://leoshuster.blogspot.com/2010/07/architectural-thinking.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>13</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-4019364275458793288</guid><pubDate>Wed, 30 Dec 2009 18:09:00 +0000</pubDate><atom:updated>2009-12-30T10:15:18.379-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">Cloud computing</category><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">governance</category><category domain="http://www.blogger.com/atom/ns#">infrastructure</category><category domain="http://www.blogger.com/atom/ns#">Microsoft</category><category domain="http://www.blogger.com/atom/ns#">web services</category><title>Microsoft Azure</title><description>When I first heard about &lt;a href=&quot;http://www.microsoft.com/windowsazure/&quot;&gt;Microsoft Azure&lt;/a&gt;, I thought it was yet another feeble attempt by Microsoft to get in on the hype with a subpar product just to get the foot in the door. I have to admit, though, that I was pleasantly surprised. Shockingly, Azure is a robust, well designed cloud platform that may yet prove to be better than some of its competitors.&lt;br /&gt;&lt;br /&gt;In a nutshell, Azure encompasses three products.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Windows Azure&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Compute: Virtualized compute based on Windows Server&lt;/li&gt;&lt;li&gt;Storage: Durable, scalable, &amp;amp; available storage&lt;/li&gt;&lt;li&gt;Management: Automated, management of the service&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;SQL Azure&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Database: Relational processing for structured/unstructured data&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;.Net Services&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Service Bus: General purpose application bus&lt;/li&gt;&lt;li&gt;Access Control: Rules-driven, claims-based access control&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/ul&gt;Essentially, Azure provides the complete cloud computing stack that allows developers to write their own applications on top of it. The self administration interface is simple and intuitive. Depending on the services you are using, it allows you to allocate your server or database capacity, hook in the service bus, and configure your application in minutes.&lt;br /&gt;&lt;br /&gt;The Windows Azure platform introduces the Web and Worker roles. This is the implementation of a similar pattern used in &lt;a href=&quot;http://msdn.microsoft.com/en-us/netframework/aa663324.aspx&quot;&gt;WCF&lt;/a&gt; that decouples the network transport from the component logic. The Web role allows the applications to accept incoming requests via a variety of protocols supported by IIS. The Worker role cannot accept any direct requests from the Internet but instead can receive messages from an internal Azure queue hosted by SQL Azure. Under the covers, Web and Worker roles run in their own instances of Microsoft VM engine. All the queues and communication protocols can be configured via the control panel.&lt;br /&gt;&lt;br /&gt;SQL Azure is no less impressive. It allows you to store data directly in the cloud in three different forms:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Blobs &lt;li&gt;Tables &lt;li&gt;Relational&lt;/li&gt;&lt;/ul&gt;All of these operations are exposed through RESTful services and are really easy to use. For relational data, complete databases can be hosted in the cloud and applications can access them directly whether they themselves are hosted in the cloud or a private datacenter.&lt;br /&gt;&lt;br /&gt;The .Net Services platform provides a couple of services – access control and message routing. Access control serves the identity validation, transformation, and federation purposes. This is all based on the rules defined through the control panel. The service bus part of the platform does what you would expect any ESB to do – service endpoint registration and access, message transformation and routing, and improved security.&lt;br /&gt;&lt;br /&gt;Even though Azure is still a relatively immature platform, it holds a lot of promise. Microsoft has finally hit the mark. Some risks still need to be addressed, however. The typical cloud computing concerns remain – security, privacy, longevity, etc. Additionally, a platform like Azure may cause some issues for IT departments that need to adhere to regulations like Sarbanes Oxley, SAS 70, and others. Division of responsibilities, following IT governance processes, quality control, and other sticky situations may keep CIOs and other IT managers up at night. These things will eventually work themselves out through maturing the Azure platform or enhancing the IT processes. Despite the drawbacks, I believe Azure is a viable and solid platform for “cloudizing” your applications.</description><link>http://leoshuster.blogspot.com/2009/12/microsoft-azure.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-8524768874385679588</guid><pubDate>Fri, 24 Jul 2009 17:55:00 +0000</pubDate><atom:updated>2009-07-24T10:58:20.534-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">Cloud computing</category><category domain="http://www.blogger.com/atom/ns#">infrastructure</category><category domain="http://www.blogger.com/atom/ns#">services</category><title>Cloud Computing and the Reality</title><description>Cloud computing is all the hype nowadays. All you hear from vendors, analysts, and consulting companies is that cloud computing will solve all of your IT problems. Here are just a few promises associated with cloud computing:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Eliminate your data center &lt;li&gt;Solve all of your scalability and on-demand computing challenges &lt;li&gt;Simplify infrastructure &lt;li&gt;Reduce IT spend &lt;li&gt;Make IT operations more efficient &lt;/li&gt;&lt;/ul&gt;Are they all true? It’s a possibility. To determine what cloud computing may mean to you, examine how it fits into your IT strategy and the way you deliver technology services to the business. Here are a few things to consider.&lt;br /&gt;&lt;br /&gt;First of all, everyone needs to understand what cloud computing really is. According to Wikipedia, “Cloud computing is a style of computing in which dynamically &lt;a title=&quot;Scalability&quot; href=&quot;http://en.wikipedia.org/wiki/Scalability&quot;&gt;scalable&lt;/a&gt; and often &lt;a title=&quot;Virtualization&quot; href=&quot;http://en.wikipedia.org/wiki/Virtualization&quot;&gt;virtualized&lt;/a&gt; resources are provided &lt;a title=&quot;Everything as a service&quot; href=&quot;http://en.wikipedia.org/wiki/Everything_as_a_service&quot;&gt;as a service&lt;/a&gt; over the &lt;a title=&quot;Internet&quot; href=&quot;http://en.wikipedia.org/wiki/Internet&quot;&gt;Internet&lt;/a&gt;”. (See &lt;a href=&quot;http://en.wikipedia.org/wiki/Cloud_computing&quot;&gt;http://en.wikipedia.org/wiki/Cloud_computing&lt;/a&gt;.) Too many people, however, forget that it is only a style and begin to associate cloud computing with specific product offerings such as the &lt;a href=&quot;http://aws.amazon.com/ec2/&quot;&gt;Amazon Elastic Compute Cloud (Amazon EC2)&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/apps/intl/en/business/index.html&quot;&gt;Google Apps&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-us/vstudio/cc972640.aspx&quot;&gt;Microsoft Azure&lt;/a&gt;, and others. Companies are not limited to just third party solutions. They can implement their own private clouds if they choose.&lt;br /&gt;&lt;br /&gt;Secondly, you need to understand the vision behind cloud computing. The idea is simple – to seamlessly provide flexible, on-demand computing resources whenever necessary. This is not a revolutionary development. The Application Service Provider (ASP) model has been in existence for years. Infrastructure outsourcing practices have been utilized a long time before cloud computing became a term. So, what is all the hype then, you ask. They keys are the ubiquitous nature of the protocols used, increased reliability of the Internet, and the packaging of the offering as a generic service. Cloud computing, as a general approach, may support outsourcing of specific applications, generic computing resources or platforms, and software services. It may potentially lead to outsourcing of the whole data center.&lt;br /&gt;&lt;br /&gt;Finally, all the pros and cons behind cloud computing need to be considered. Having someone take care of all your computing resources without investing into expensive data centers is an appealing concept but loss of control and unreliable SLAs may be a cause of concern for a number of businesses. Since the Internet is the primary communication mechanism for the public cloud, its reliability and performance need to be questioned whenever considering third party cloud offerings. Private clouds provide better control, reliability, and performance but what is the real difference between those and existing data centers? In my opinion, aside from following a different architectural model of allocating computing resources, nothing. On-demand computing is a great concept but making it work effectively is a tough task. Technologies exist today to dynamically divert unused resources to those applications that need them most. Grid computing, virtualization platforms, and others all provide these capabilities. However, there are limitations. Whenever maximum capacity is reached, hardware needs to be added. No software trick will work to cover this up. Therefore, efficient capacity and pipeline management need to exist to make cloud computing an effective and viable platform.&lt;br /&gt;&lt;br /&gt;While there are some cloud computing zealots (&lt;a href=&quot;http://www.infoworld.com/d/architecture/soa-realized-enterprise-computing-cloud-computing-146&quot;&gt;http://www.infoworld.com/d/architecture/soa-realized-enterprise-computing-cloud-computing-146&lt;/a&gt;) and realists (&lt;a href=&quot;http://www.gcn.com/Articles/2009/03/09/Guest-commentary-SOA-cloud.aspx&quot;&gt;http://www.gcn.com/Articles/2009/03/09/Guest-commentary-SOA-cloud.aspx&lt;/a&gt;), many are still cautious about this technology. And for a good reason. In my opinion, cloud computing has proven its worth in a number of situations but it is still not ready for the enterprise. Public clouds are too fickle for really demanding applications. Private clouds have not yet been effectively built. More importantly, however, lack of cloud computing standards and consensus among the key players will present challenges for anyone trying to enter this arena.</description><link>http://leoshuster.blogspot.com/2009/07/cloud-computing-and-reality.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-3153385817716725721</guid><pubDate>Wed, 20 May 2009 20:31:00 +0000</pubDate><atom:updated>2009-05-20T13:32:52.780-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">maturity</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><category domain="http://www.blogger.com/atom/ns#">web services</category><title>SOA Misconceptions</title><description>I continue to see a number of common misconceptions about SOA.  There have been a number of articles written about this when SOA was first introduced.  They primarily concentrated on dispelling the myths that SOA = Web Services.  Current misconceptions run deeper and a lot more general.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. SOA is Expensive&lt;br /&gt;&lt;/strong&gt;SOA doesn&#39;t have to expensive.  There is an abundance of open source tools and technologies that can be used to build a truly state of the art SOA platform.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. SOA is Inefficient&lt;/strong&gt;&lt;br /&gt;SOA is as inefficient as you make it.  Not all the problems and organizations require a complete SOA stack but, at a certain level, it becomes necessary.  Otherwise, you will have too much complexity and, in fact, breed inefficiency.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. SOA is Non-productive&lt;/strong&gt;&lt;br /&gt;A well established SOA program can run like a well-oiled machine.  I am sure a lot of people can cite numerous examples of lost productivity because of unnecessarily complex SOA environments and processes.  However, in large and complex corporate IT departments well defined organizational structures and processes are a must.  They actually make things more efficient and increase productivity.  Every situation requires a different approach.  However, SOA, as a general pattern for building software, has been shown to dramatically improve productivity.  Think about it -- if several projects can reuse an already existing, well tested service, this results in tremendous productivity improvements and costs savings!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. SOA is Unnecessary&lt;/strong&gt;&lt;br /&gt;This is true, with a caveat.  SOA has been employed as an IT and business strategy to make organizations more efficient, productive, and agile.  If you want your company to achieve these goals, SOA becomes a part of the answer.  Otherwise, you are stuck in the world of point-to-point integrations, Just a Bunch of Services, and an unmitigated integration mess in general.  Obviously, smaller companies can get away without employing SOA for a much longer period of time but larger ones will feel the pain much sooner.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. SOA is Too Complicated&lt;/strong&gt;&lt;br /&gt; Yes, SOA is complicated.  But what major effort isn&#39;t?  Enterprise Architecture is complex, so we shouldn&#39;t do it?!  EAI was complex but companies did it out of necessity.  Master Data Management is complex, so companies should forget about managing their data?!  SOA can be as simple or complex as you need to make it.  Create a roadmap for your SOA program and follow it.  It should guide you in your quest to achieve SOA maturity, however simple or complex you need to make it.&lt;br /&gt;&lt;br /&gt;SOA is a program.  You can make it into whatever you need.  You can use whatever technologies and approaches you like.  As long as you keep the goal of increasing agility and saving money as a result of creating reusable business capabilities in mind, you should be successful.</description><link>http://leoshuster.blogspot.com/2009/05/soa-misconceptions.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-9117887352406187251</guid><pubDate>Wed, 20 May 2009 20:07:00 +0000</pubDate><atom:updated>2009-05-20T13:09:14.534-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><title>SOA and the Trough of Disillusionment</title><description>All the signs point to the fact that SOA has entered the trough of disillusionment. Why? I am seeing a lot of companies de-funding or stopping SOA efforts altogether. Many executives don&#39;t see the hype anymore and thus no longer understand the value of SOA. Many companies have tried SOA and failed, so they don&#39;t want to try it again. Plus, the economy is not helping. Budgets are getting slashed, jobs are lost, people are afraid to innovate. The first type of spending that companies cut is strategic. They want to get through the tough economic times with minimal required spending -- just to keep the lights on. Thus, SOA program funding gets cut and the executive support goes downhill with it.&lt;br /&gt;&lt;br /&gt;What can we do to make sure that SOA moves onto the slope of enlightenment and further to the plateau of productivity?  Continue to educate your organizations and executives about the value of SOA!  Even though SOA is not in vogue anymore, it doesn’t mean that it lost its value.  The benefits are still there.  You just have to work harder to make them visible.  Document your successes and shift into a marketing mode.  Promote the SOA program and the benefits you achieved as much as possible.  Show real value.  This will certainly get executives’ attention and guarantee their support.  Don’t give up.  Continue to fight negative perceptions and concentrate on delivering value.&lt;br /&gt;&lt;br /&gt;SOA, like any other enterprise wide initiative, is a differentiator.  Companies that can successfully implement SOA will become a lot more successful than those that can’t.  When the economic crisis ends, organizations that continued to invest into SOA will come out on top.  Those that didn’t will be left behind and will need to spend a lot more money and efforts to catch up.  SOA can produce tangible business benefits.  Don’t let the disillusioned minority silence its value proposition.</description><link>http://leoshuster.blogspot.com/2009/05/soa-and-trough-of-disillusionment.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-2731821559343762387</guid><pubDate>Mon, 23 Mar 2009 19:37:00 +0000</pubDate><atom:updated>2009-03-23T13:07:07.153-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">funding</category><category domain="http://www.blogger.com/atom/ns#">governance</category><category domain="http://www.blogger.com/atom/ns#">infrastructure</category><category domain="http://www.blogger.com/atom/ns#">projects</category><category domain="http://www.blogger.com/atom/ns#">ROI</category><category domain="http://www.blogger.com/atom/ns#">service development</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><title>SOA Funding Models</title><description>One of the primary reasons SOA efforts fail in many companies is simply due to inadequate or inappropriate funding models.  Costs are typically at the core of every problem and SOA programs are not exempt.  We hear horror stories all the time – the initial investment to establish an SOA environment was too high, so the effort was cancelled; there are many services created in the company but they are hardly reused; etc.  Establishing a funding model that is right for your company is the key to moving the SOA program forward.&lt;br /&gt;&lt;br /&gt;Any SOA initiative is comprised of two parts – infrastructure and services.  Both need to have a separate funding model established in order to successfully support SOA program’s goals.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;strong&gt;SOA Infrastructure Funding&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Infrastructure funding requires a pretty straight forward approach.  When discussing SOA infrastructure, I am referring to shared platforms that are used by a number of services across the organization.  Some companies host services on the same platforms whose functionality is being exposed.  However, even if this is the case, some shared infrastructure components like ESBs, service management technology, Registry/Repository, etc. must exist to support SOA program’s needs.  Thus, it is safe to assume that some form of shared SOA infrastructure exists.  There are two possible ways to provide effective funding to build it out.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Fund all the SOA infrastructure centrally&lt;/li&gt;&lt;li&gt;Identify appropriate projects to acquire / extend new / existing SOA infrastructure&lt;/li&gt;&lt;/ol&gt;Central funding is probably the easiest and most effective approach.  It allows the organizations to establish an independent roadmap for introducing and upgrading SOA infrastructure.  It also makes the SOA program operate more efficiently as the cost, scaling, and availability issues will no longer be relevant to individual projects.  If central funding option is selected, several approaches for recouping the initial and ongoing investment can be utilized.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do not recoup the investment&lt;/li&gt;&lt;li&gt;Place an entry fee to use any SOA infrastructure component&lt;/li&gt;&lt;li&gt;Charge a small fee for each usage instance&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Since all the SOA infrastructure is provided centrally, not recouping the initial investment is a real option.  If the organization’s fiscal model does not call for IT recouping all its costs from the business groups using their products, this option works well.  If this is not the case, however, you have a choice between placing a predefined entry fee that each application / project must pay to use the specific SOA infrastructure platform and charging end users based on the total usage.&lt;br /&gt;&lt;br /&gt;The per-use-fee scenario is a little tricky as each SOA infrastructure component needs to define what a transactional unit is and how much to charge for it.  Transactional units can be different for each SOA platform.  For example, an ESB transactional unit can be a service call, Registry/Repository – an individual user and/or a UDDI request, etc.  In this case, total usage amount based on predefined transactional units would be calculated, multiplied by the unit cost, and charged to the business units.  The most effective way to determine a unit cost is to divide the total investment made in the platform by the total transactional units being consumed.  The obvious effect is that unit costs would decrease with increased usage.  Here are all the formulae discussed above.&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;font-family:lucida grande;&quot;&gt;&lt;strong&gt;Usage charges per platform:&lt;br /&gt;&lt;/strong&gt;Unit = Different per Platform&lt;br /&gt;Unit Cost = Total Platform Investment / Total Amount of Units Consumed&lt;br /&gt;Line of Business Usage = Units Used by Line of Business * Unit Cost&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Some companies have chosen to grow their SOA infrastructure gradually, without a central program or funding.  A typical approach in this scenario has been to attach SOA spending to the most appropriate projects.  Thus, the projects would purchase new SOA infrastructure platforms or upgrade existing ones to suit their needs.  There are several problems with this approach.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Typically, the projects purchasing the infrastructure don’t want to share it with other potential consumers unless there is significant pressure from above.  The platforms don’t end up being reused or, if so, only minimally.  The projects do not have any incentive to sharing their investments with anyone else, especially since they are seen as critical to projects’ success.&lt;/li&gt;&lt;li&gt;Projects often get cancelled due to over-inflated budgets.  SOA infrastructure is expensive and cost conscious enterprises do not want to invest into what looks like excessive infrastructure for project’s needs.&lt;/li&gt;&lt;li&gt;Demand to extend a platform based on project’s needs typically comes without enough lead time to accommodate project’s timelines.  Thus, projects face a tough decision – to extend their delivery date or use alternative infrastructure.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Funding the SOA infrastructure centrally is more effective in delivering service-oriented solutions faster, moving the enterprise more efficiently towards a higher level of SOA maturity, and addressing the project needs.  Project-based funding will most likely spell doom to the SOA program as a whole.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;strong&gt;Service Funding&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;As discussed earlier, funding for the SOA infrastructure should come from a central source.  Where the money comes to build individual services, however, presents a bigger challenge.  Since projects are the primary drivers behind demand for services, special consideration should be given to project needs and budgets.  However, service design and implementation can incorporate additional requirements that fall outside of the project scope.  Another typical project-related problem stems from the shared nature of services.  It is unfair to burden a project with the full cost of a service that will be utilized by a number of other consumers.&lt;br /&gt;&lt;br /&gt;There are three possible ways to address the service funding concerns.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Make the first project to build a service provide the complete funding&lt;/li&gt;&lt;li&gt;Establish a central funding source that will cover all service design and construction expenses&lt;/li&gt;&lt;li&gt;Provide supplementary funding to projects building services&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If option1 is selected, several strategies for recouping the initial investment can be used.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Do not recoup the investment&lt;/li&gt;&lt;li&gt;Place a surcharge on each instance of service leverage&lt;/li&gt;&lt;li&gt;Charge a small fee for each service call&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As mentioned above, it is unfair for the project to carry the complete costs of the service build-out, especially if it includes additional requirements.  Thus, unless the project implements one of the options to recoup its initial investment, funding option #1 is not going to be viable.  Not recovering the funds is not a realistic option either as it does not incent the projects to build truly reusable services.  The other cost recovery strategies may work but require detailed metrics to be captured on the service leverage and/or transactional volume.&lt;br /&gt;&lt;br /&gt;Establishing a central funding source for all projects to use when building reusable services is probably the ideal approach.  Few companies, however, would be willing to write what in essence would be a blank check for the projects to use in their service delivery efforts.  The opportunity for abuse and misappropriations would be too tempting.  Unless strong governance and control mechanisms are in place, this funding method will most likely end up costing the company more money and provide unrealistically small return on investment.&lt;br /&gt;&lt;br /&gt;Providing supplementary funding to projects building services is probably the most realistic approach.  A central fund needs to be established to cover the efforts falling outside of the project scope.  Since shared services would typically incorporate other projects’ and enterprise requirements, the actual cost ends up being higher than what projects budgeted for their needs.  Thus, the easiest way to distribute supplementary funding is to allow the projects to pay for functionality already included in their budgets and cover all the additional costs through the central fund.&lt;/p&gt;&lt;p&gt;Whatever the funding approach is used, it needs to be carefully administered.  A party not involved in day-to-day project work is best suited to play the administrative role.  There could be a couple different groups managing the infrastructure and service funding and chargeback mechanisms.  Overall, however, this should fall under the SOA Governance umbrella and managed centrally as part of the SOA Program.&lt;/p&gt;</description><link>http://leoshuster.blogspot.com/2009/03/soa-funding-models.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-8144139817153588790</guid><pubDate>Fri, 20 Feb 2009 02:31:00 +0000</pubDate><atom:updated>2009-02-19T18:35:50.303-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">governance</category><category domain="http://www.blogger.com/atom/ns#">metrics</category><category domain="http://www.blogger.com/atom/ns#">ROI</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>Making SOA ROI Real</title><description>Read the &quot;&lt;em&gt;Making SOA ROI Real&lt;/em&gt;&quot; article published in the &lt;a href=&quot;http://soa.sys-con.com/&quot;&gt;SOA World Magazine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://xml.sys-con.com/node/847118&quot;&gt;http://xml.sys-con.com/node/847118&lt;/a&gt;</description><link>http://leoshuster.blogspot.com/2009/02/making-soa-roi-real.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-2423063559425665201</guid><pubDate>Thu, 29 Jan 2009 21:03:00 +0000</pubDate><atom:updated>2009-01-30T12:47:53.245-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BPEL</category><category domain="http://www.blogger.com/atom/ns#">BPM</category><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">orchestration</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>Service Orchestration Guidelines</title><description>Many SOA articles, white papers, and vendor documents talk about “service orchestration”. But understanding of the underlying concepts and orchestration best practices remain elusive.&lt;br /&gt;&lt;br /&gt;A quick Google search will produce a number of articles and links that discuss service orchestration and related topics. Most of them will talk about BPM engines, ESBs, and BPEL. This, unfortunately, pollutes the true definition of service orchestration and gives it a much more technology centric view.&lt;br /&gt;&lt;br /&gt;In my opinion, Service Orchestration is an automated way to combine several services together to achieve new functionality. The end result is a new composite service that provides a distinct business capability and can be invoked independently. It must have all the appropriate attributes as discussed in my &lt;a href=&quot;http://leoshuster.blogspot.com/2009/01/services-explained.html&quot;&gt;previous article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Orchestration is a technology independent concept. It can be achieved via a descriptive language such as BPEL, built-in tools within a specific platform (ESBs typically provide their own orchestration mechanisms), or programmatically. Depending on your needs, situation, or technology available, the best way to perform service orchestration may be different. Here are a few guidelines to help you create service orchestrations faster and make them more flexible, maintainable, and scalable.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use the platform with built-in orchestration capabilities as your first choice&lt;/li&gt;&lt;li&gt;Avoid implementing service orchestrations programmatically whenever possible&lt;/li&gt;&lt;li&gt;Choose a platform or mechanism that can easily perform flow logic, result aggregation, message transformation, and business rule application&lt;/li&gt;&lt;li&gt;Ensure the composite service fits the definition of a service, i.e. has all the attributes of a service&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The rationale behind the above guidelines is very simple. You want to choose a platform that already provides most of the capabilities you will need when creating new service orchestrations. You will typically need to call several services, aggregate their results in some way or chain the calls together through some kind of logic, transform the end result to match the exposed contract(s), and return it. The less work you have to do and the more you can rely on the platform’s capabilities, the more efficient your orchestration will be. If you can complete your orchestration work through a visual interface and never see the code, you are on the right path. This way, you will spend less time maintaining the orchestration, it will be easier to make changes, and you don’t have to build all the necessary mechanisms from scratch.&lt;br /&gt;&lt;br /&gt;Many would argue that a programming language will give you the most flexibility when implementing an orchestration. While this is true, the overhead is pretty large and efficiency is low. First of all, no programming language seamlessly integrates all the mechanism you need to create an orchestration, especially in a visual way. Secondly, every time an orchestration needs to change in some way, no matter how small, new code needs to be written, deployed, and tested. While the same steps need to be performed on any orchestration platform, the level of effort will be a lot smaller on full featured orchestration platforms.&lt;br /&gt;&lt;br /&gt;When creating service orchestrations, it is important to maintain proper relationships between composite and atomic services. The diagram below shows which services should be allowed to interact with each other.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5296832425451653442&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 181px; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGvhf5QqmYhNXFEDhQ177K25zgMykbV4um2c7E3fJFqZXWCzuJefnjxlR2YX2UgK1Lcot6U18I2RoiLzJRqAI0tMzmbPpMuI_qVFLqpEBabDYQFPi1mrvmgow7CpqLp0FS6-gG3BMTDg/s400/ServiceOrch.jpg&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The following list details the rules and guidelines for establishing relationships between composite and atomic services.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Atomic business services should not call each other. Use orchestration to combine several business services together.&lt;br /&gt;The goal of service orchestration is to combine several services together through a series of logical steps and expose new capability to the consumers. Orchestration platforms, as discussed above, provide a lot of functionality to make this work easy and efficient. If individual services are allowed to call each other, they would not be taking advantage of the orchestration platform’s capabilities. Furthermore, when business services call each other, it establishes a tight coupling between them, which makes them less reusable and harder to maintain. Atomic business services should provide specific, well defined business capabilities and be reusable in their own right. Reliance on other services to complete work indicates plurality of purpose and lack of specificity.&lt;br /&gt;&lt;li&gt;Business services can call Utility services.&lt;br /&gt;While coupling services together should be avoided as much as possible, sometimes generic, low level functionality that needs to be invoked from a business service is exposed via utility services. It would be an overkill and sometimes even impossible to use an orchestration platform in order to allow business services to take advantage of such functionality as logging, retrieving or storing configuration information, and authorization.&lt;br /&gt;&lt;li&gt;Utility services cannot call Business services.&lt;br /&gt;Utility services should not be tied to any business processes or capabilities. Thus, a utility service calling a business service would violate this rule.&lt;br /&gt;&lt;li&gt;Business services cannot call Composite services.&lt;br /&gt;The logic behind this guideline is the same as in disallowing business services call each other. A composite service is also a business service. Thus, a business service calling a composite service should not be allowed.&lt;br /&gt;&lt;li&gt;Composite services can call other Composite services.&lt;br /&gt;Other composite services are allowed to participate in orchestrations. They should be treated as regular atomic services in this case.&lt;/li&gt;&lt;/ol&gt;Note that, even though atomic business services and composite services are, in essence, business services, they are different and guidelines provided above are not contradictory in their treatment. There are two levels at which they should be compared -- logical and physical. From a logical perspective, atomic business services and composite services are the same. They expose some kind of unique business capability and adhere to the &lt;a href=&quot;http://leoshuster.blogspot.com/2009/01/services-explained.html&quot;&gt;service definition guidelines&lt;/a&gt;. From a physical perspective, however, they are different. Atomic business services, as opposed to composite services, rely solely on internal business logic and direct interaction with backend data sources to perform their work. Thus, by definition, atomic business services should not call other business services as part of their implementation. By the same token, since composite services already rely on other business services to complete their work, they should not differentiate between calling atomic business services or other composite services.&lt;br /&gt;&lt;br /&gt;Service orchestration is a complex topic and might take a series of articles to discuss completely. However, the rules outlined above should establish a good foundation for creating and managing composite services.</description><link>http://leoshuster.blogspot.com/2009/01/service-orchestration-guidelines.html</link><author>noreply@blogger.com (Leo Shuster)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGvhf5QqmYhNXFEDhQ177K25zgMykbV4um2c7E3fJFqZXWCzuJefnjxlR2YX2UgK1Lcot6U18I2RoiLzJRqAI0tMzmbPpMuI_qVFLqpEBabDYQFPi1mrvmgow7CpqLp0FS6-gG3BMTDg/s72-c/ServiceOrch.jpg" height="72" width="72"/><thr:total>7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-3770394688474178863</guid><pubDate>Fri, 23 Jan 2009 21:37:00 +0000</pubDate><atom:updated>2009-01-27T18:26:38.785-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">design patterns</category><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">facade</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">web services</category><title>Services Explained</title><description>Since the SOA term was coined, many discussions raged on what a service was from a business and technical perspectives. In this article, I offer my views on the topic.&lt;br /&gt;&lt;br /&gt;There are several categories of services. Many leading SOA vendors and thinkers typically break them down into Business and Utility types. A Business service represents a business capability that is needed to complete a step within a larger business process. Examples may include retrieving customer information, making payments, or checking order status. Utility services represent a technical capability that is business process agnostic. Examples are e-mail, logging, or authentication services.&lt;br /&gt;&lt;br /&gt;Services can be combined together to create composite services. This is called orchestration. An example of this can be a Money Transfer service that needs to debit one account and deposit money into another one. Composite services can also be categorized as Business and Utility. Best practices and general orchestration guidelines as related to orchestrations, atomic services, and their relationships will be discussed separately.&lt;br /&gt;&lt;br /&gt;Regardless of the type, a service is comprised of three components.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Interface&lt;/li&gt;&lt;ul&gt;&lt;li&gt;This defines how services are exposed and can be accessed by its consumers.&lt;/li&gt;&lt;li&gt;Interfaces are not limited to Web Services and can be represented by any remote messaging protocol.&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Contract&lt;/li&gt;&lt;ul&gt;&lt;li&gt;This defines what services expect during the interaction with the consumer. Message structures, relevant policies, and related security mechanisms are all part of a contract.&lt;/li&gt;&lt;li&gt;Contract defines a “legal” agreement on how the service and its consumers should interact.&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Implementation&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is the actual service code.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;A service may have multiple interfaces. Different consumers may have the need to access the service via different protocols. For example, a Java consumer would like to access a service via a Web Service protocol while a Mainframe application can only use MQ Series. Even though a service may itself expose multiple interfaces, it is more effective to let the ESB platform handle this. For more details about the rationale behind this recommendation, see &lt;a href=&quot;http://leoshuster.blogspot.com/2008/09/to-esb-or-not-to-esb.html&quot;&gt;“To ESB or Not to ESB?&quot;&lt;/a&gt; post.&lt;br /&gt;&lt;br /&gt;A service may also have multiple contracts. I have recommended in the past that for a service to be maximally reusable, it needs to implement the Service Façade pattern (see &lt;a href=&quot;http://leoshuster.blogspot.com/2008/05/soa-faade-pattern.html&quot;&gt;“SOA Façade Pattern”&lt;/a&gt; post and &lt;a href=&quot;http://www.soapatterns.org/service_facade.asp&quot;&gt;“Service Façade”&lt;/a&gt; pattern). This pattern recommends that multiple different interfaces and contracts for the same service be created. The &lt;a href=&quot;http://www.soapatterns.org/concurrent_contracts.asp&quot;&gt;Concurrent Contracts&lt;/a&gt; pattern also addresses this issue.&lt;br /&gt;&lt;br /&gt;It is important to understand that while the interface, contract, and implementation describe a service as a whole, they are not closely tied together. An interface is not dependent on the contract details and should not be tied to the specific messaging structure. The opposite is also true – the contract should not be tied to any specific communication protocols. Additionally, the implementation should be flexible enough to accommodate the potential for multiple interfaces and contracts. Ideally, however, I would recommend that a service expose only a single contract and interface and the ESB would take care of exposing additional endpoints and facades as necessary.</description><link>http://leoshuster.blogspot.com/2009/01/services-explained.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-6165521092200130830</guid><pubDate>Fri, 05 Dec 2008 19:56:00 +0000</pubDate><atom:updated>2008-12-05T12:00:37.812-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Enterprise Architecture</category><category domain="http://www.blogger.com/atom/ns#">governance</category><category domain="http://www.blogger.com/atom/ns#">ROI</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><title>EA &amp; SOA in Down Economy</title><description>Many articles, discussions, and presentations have been made on how the recent economic downturn affects the companies’ EA and SOA efforts.  Some, like &lt;a href=&quot;http://blogs.zdnet.com/bio.php?id=mckendrick&quot;&gt;Joe McKendrick&lt;/a&gt; of ZDNet, believe that slow economy can spell &lt;a href=&quot;http://blogs.zdnet.com/service-oriented/?p=1191&quot;&gt;boon for SOA&lt;/a&gt; but &lt;a href=&quot;http://blogs.zdnet.com/service-oriented/?p=1077&quot;&gt;subprime SOA will suffer&lt;/a&gt;.  &lt;a href=&quot;http://weblog.infoworld.com/realworldsoa/about.html&quot;&gt;Dave Linthicum&lt;/a&gt; published the &lt;a href=&quot;http://weblog.infoworld.com/realworldsoa/archives/2008/10/survey_says_the.html&quot;&gt;results of his survey&lt;/a&gt; indicating the same.  &lt;a href=&quot;http://www.ebizq.net/MT4/mt-cp.cgi?__mode=view&amp;amp;blog_id=29&amp;amp;id=25&quot;&gt;Beth Gold-Bernstein&lt;/a&gt; of ebizQ suggests that we bet the farm on &lt;a href=&quot;http://www.ebizq.net/blogs/bethgb/2008/11/predictive_analytics_-_a_good.php&quot;&gt;Complex Event Processing&lt;/a&gt;.  Ronald Schmelzer of ZapThink advocates that companies should &lt;a href=&quot;http://www.zapthink.com/report.html?id=ZAPFLASH-2008109&quot;&gt;continue to invest in SOA in a down economy&lt;/a&gt;.  I would go a step further.  EA and SOA investment is critical to the companies’ success – it will enable them to stay competitive, achieve significant efficiencies, and potentially even gain market share.&lt;br /&gt;&lt;br /&gt;Pretty bold statement, some would say.  I don’t think so.  Let’s consider the facts.&lt;br /&gt;&lt;br /&gt;When the times are tough, the first thing most companies do is slash budgets.  IT budget gets reduced just like everyone else’s.  The focus shifts from the strategic initiatives to simply keeping the lights on and completing projects as quickly as possible.  Enterprise Architecture efforts are usually the first ones to be eliminated or significantly reduced.  Point solutions become the norm resulting in duplication of software, hardware, and overall efforts.  Smokestack applications rise up from the ashes of the Enterprise Architecture.  Everyone becomes more concerned about keeping their jobs rather than doing the right thing for the company.  IT managers shift to the aggressive empire building mode in order to protect their jobs and eliminate their own risks.  (The old mentality of “I own more than you, therefore I am more important than you” is still alive and well, unfortunately.  IT managers also think that if they can “own” and control every piece of their application, it will reduce their risk and allow them to deliver results faster.)  Governance becomes unenforceable and largely forgotten.&lt;br /&gt;&lt;br /&gt;Through this chaos, interesting trends emerge.  While the initial IT budget is reduced through a series of staff reductions and some technology rationalization efforts, the costs begin to creep back up in subsequent years.  When the economy finally turns around and the pressure to keep the budget low eases, the IT budget suddenly becomes larger than what it was prior to the cuts.  Why?  The explanation is simple.  The empire building and unfettered decision making by IT management finally bears fruit.  There are more software, licenses, hardware, and code in the data center, all of which requires more people to support.  There is very little reuse and sharing because each group has built silo applications residing on their own unique platforms.  Costs increase, efficiencies decrease, and it takes longer to deliver new capabilities especially if they require several applications to integrate with each other.&lt;br /&gt;&lt;br /&gt;Enterprise Architecture and SOA can help reverse these trends and, in fact, keep the IT budgets low.  Most companies have a number of redundant systems, applications, and capabilities that have grown through the type of uncontrolled behavior described above.  EA, through an effective discovery and governance mechanisms, can eliminate these redundancies while maintaining the same capacity and level of operational responsiveness.  Additionally, EA groups can influence or implement new architecture approaches to help consolidate resources and gain efficiencies.  Examples of this could be virtualization, green technologies, cloud computing, etc.  SOA, as a subset of EA, provides much the same benefits.  Encapsulating key business functions as reusable services will help achieve more consistency, save money, and enable faster project delivery.  An effective EA program can protect companies’ IT budgets from ballooning by establishing and enforcing standards, promoting reuse opportunities, and ensuring transparency across all IT systems.&lt;br /&gt;&lt;br /&gt;The bottom line is that companies can not afford &lt;strong&gt;not&lt;/strong&gt; to invest in EA and SOA.  These programs will make organizations more efficient through the economic downturn and help achieve the necessary savings.  On the long run, EA and SOA will keep the costs down while increasing business agility.  Effective EA and SOA programs are a competitive advantage, not an overhead.  They will easily pay for themselves and, what’s more important, enable organizations to avoid uncontrolled spending in the future.  Enterprise Architecture and SOA is a must, not an option!</description><link>http://leoshuster.blogspot.com/2008/12/ea-soa-in-down-economy.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-1612187969729563120</guid><pubDate>Wed, 29 Oct 2008 20:25:00 +0000</pubDate><atom:updated>2008-10-29T13:37:08.495-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">infrastructure</category><category domain="http://www.blogger.com/atom/ns#">service development</category><category domain="http://www.blogger.com/atom/ns#">service testing</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>SOA Ecosystem</title><description>In the &lt;a href=&quot;http://leoshuster.blogspot.com/2008/09/to-esb-or-not-to-esb.html&quot;&gt;previous post&lt;/a&gt;, I’ve discussed the role of the ESB in the SOA ecosystem. However, I failed to adequately describe what an SOA ecosystem was and what were all the inter-relationships that must exist in order to make it truly effective.&lt;br /&gt;&lt;br /&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5262675173697769410&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 302px; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0E8xILM8n-Xu4G3BaeWvMC4nNFhGBty5ADoCDXf-1re3s442VFkKma9x7J3tTg80bBKz6Xy7n_1d6xUCbXTWAvQdaP-C11QWBS4RsPcM_Vfyb72qkmY-scahrlwQ-MOuw4MEhyphenhyphenBb9Ew/s400/SOA+Ecosystem.jpg&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;If you refer to the diagram above, you will notice several major components that make up the SOA Ecosystem.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ESB &lt;li&gt;Registry/Repository (RegRep) &lt;li&gt;Security &lt;li&gt;Service Management &lt;li&gt;Shared Service Environments &lt;li&gt;Service Consumers&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The SOA Ecosystem also encompasses all the related elements such as the application and service developers and testers as well as all the tools being used to accomplish these activities.&lt;br /&gt;&lt;br /&gt;To truly comprehend how the SOA ecosystem operates, a clear understanding must be developed of what each component does and what its role is. Let’s start from the service consumer side.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Service Consumers&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Application Developers&lt;/strong&gt; build applications that consume services. They use IDEs and other development tools to construct service requests and parse responses. Developers interact with the Registry/Repository to find the right services, obtain service metadata, and understand usage patterns. &lt;li&gt;&lt;strong&gt;Application Testers&lt;/strong&gt; perform quality assurance tasks on the final product. &lt;li&gt;&lt;strong&gt;Application Servers&lt;/strong&gt; that execute the application code interact directly with the SOA platform hosting the services. &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;SOA Infrastructure&lt;/strong&gt; &lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Service Management Platform&lt;/strong&gt; acts as an entry point into the SOA infrastructure. It retrieves policy information about the service being executed and applies it appropriately to the request. The policy is used to understand service security and authority, associated SLAs, constraints, contracts, etc. The Service Management Platform is often utilized to keep track of the service consumption and run-time metrics, which are then fed into the Registry/Repository. &lt;li&gt;The role of the &lt;strong&gt;Enterprise Service Bus&lt;/strong&gt; has already been &lt;a href=&quot;http://leoshuster.blogspot.com/2008/09/to-esb-or-not-to-esb.html&quot;&gt;discussed&lt;/a&gt;. &lt;li&gt;&lt;strong&gt;Registry/Repository&lt;/strong&gt; acts as a central repository for services and their metadata. Its uses and integrations are discussed at each related point. &lt;li&gt;&lt;strong&gt;Security / Authentication Platform&lt;/strong&gt; is a part of the larger IT infrastructure and is typically represented by either LDAP or Active Directory technology. &lt;li&gt;&lt;strong&gt;Shared Service Environments&lt;/strong&gt; are used to host reusable services. While different organizations choose to approach service hosting differently, if a common service hosting platform can be established, many issues related to service scalability, performance, reuse, security, implementation, standardization, etc. can be easily resolved. A centrally managed platform can be easily upgraded to accommodate additional – foreseen or unforeseen – volume. Standard capabilities can be provided to perform security, authentication, logging, monitoring, instrumentation, deployment, and many other tasks. &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Service Creation&lt;/strong&gt; &lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Service Architects and Developers&lt;/strong&gt; create reusable services using the appropriate design and development tools. They also interact with the Registry/Repository to discover existing services and register new services and related metadata. The created services should ideally be deployed into a Shared Service Environment. &lt;li&gt;&lt;strong&gt;Service Testers&lt;/strong&gt; perform quality assurance tasks on the new or modified services. They use special SOA testing tools to create test cases and automate their execution. These tools interface with the Registry/Repository to retrieve metadata about the services and update related information once testing is complete.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Many vendors have slightly different view of how their products integrate and interact with the SOA ecosystem, what components exist, and where they are located. One can also include other elements into the SOA ecosystem such as the EA Repository, CMDB, IT Governance Tools, Monitoring Tools, etc. However, the general dynamics remain the same. The key point is that the SOA infrastructure interacts with the rest of the IT platforms and people in a certain way. In order for SOA to be truly successful, these interactions must become natural, automated, and symbiotic.</description><link>http://leoshuster.blogspot.com/2008/10/soa-ecosystem.html</link><author>noreply@blogger.com (Leo Shuster)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0E8xILM8n-Xu4G3BaeWvMC4nNFhGBty5ADoCDXf-1re3s442VFkKma9x7J3tTg80bBKz6Xy7n_1d6xUCbXTWAvQdaP-C11QWBS4RsPcM_Vfyb72qkmY-scahrlwQ-MOuw4MEhyphenhyphenBb9Ew/s72-c/SOA+Ecosystem.jpg" height="72" width="72"/><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-8868119375635771864</guid><pubDate>Fri, 26 Sep 2008 20:35:00 +0000</pubDate><atom:updated>2008-09-26T13:48:25.711-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">ESB</category><category domain="http://www.blogger.com/atom/ns#">governance</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>To ESB or Not to ESB?</title><description>&lt;p&gt;That is the question. Many SOA thought leaders have addressed this topic. Most recently, &lt;a href=&quot;http://weblog.infoworld.com/realworldsoa/about.html&quot;&gt;David Linthicum&lt;/a&gt; wondered if &lt;a href=&quot;http://www.ebizq.net/topics/soa/features/10093.html&quot;&gt;ESBs were evil&lt;/a&gt;. He also talked about ESBs hurting SOA in his &lt;a href=&quot;http://weblog.infoworld.com/realworldsoa/archives/2008/07/are_esbs_hurtin.html&quot;&gt;blog&lt;/a&gt;. &lt;a href=&quot;http://it.toolbox.com/people/eroch/&quot;&gt;Eric Roch&lt;/a&gt; has chimed in on the debate by providing some general &lt;a href=&quot;http://it.toolbox.com/blogs/the-soa-blog/how-to-use-esbs-for-soa-26280&quot;&gt;guidelines for how to use the ESBs&lt;/a&gt;. &lt;a href=&quot;http://blogs.zdnet.com/bio.php?id=mckendrick&quot;&gt;Joe McKendrick&lt;/a&gt; has summarized the recent debate in his &lt;a href=&quot;http://blogs.zdnet.com/service-oriented/?p=1149&quot;&gt;blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There seems to be a lot of pent up emotions in the industry when it comes to the ESBs. A lot of people tend to view ESBs as over-engineered, complicated, and unnecessary. Maybe, it is a backlash from the vendor hype or consistent experiences with a failed ESB implementation. Maybe, it is a reaction to the industry’s push towards choosing the tools first and fitting the solution into them later rather than vice versa. Maybe, it is a response to the architects calling the ESB implementation Enterprise SOA. I don’t know. What I do know is that ESBs have its place and when properly used are very useful.&lt;br /&gt;&lt;br /&gt;SOA in not just about exposing services via a ubiquitous protocol and letting people use them. A successful SOA must have the following elements in place:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Governance and Processes&lt;/li&gt;&lt;ul&gt;&lt;li&gt;SOA Governance &lt;li&gt;SOA Methodology &lt;li&gt;SOA Reference Architecture (and possible Reference Implementations) &lt;li&gt;SOA Maturity Model &lt;li&gt;Service testing and versioning approaches &lt;li&gt;SOA design patterns&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Technology&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ESB &lt;li&gt;Service Management platform &lt;li&gt;SOA Governance platform &lt;li&gt;Registry / Repository (often is part of the SOA Governance platform) &lt;li&gt;SOA testing tools&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;The diagram below depicts the preferred SOA ecosystem and relationships between all of its different components and actors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5250433359285368338&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKBtYml_kv2Y7G0GO6rH7WiZ-1QiGwZySb5v-y6WKvfPcSAjkLsHwz6AgFxT3UDLjxceugYyJ3AkT1ZIPGR1HpDNriWOWgXfZS6oeBPJsdB4HA6a7mWbT1layEVD2cEibIrkb7ygooYQ/s400/SOA+Ecosystem.jpg&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;Note that the ESB plays a central role in the SOA ecosystem. It needs to be tightly integrated with the Registry/Repository tool that will store policy information and service metadata, service management platform that will ensure compliance to the predefined policies, and platforms exposing the physical service endpoints. ESBs are very useful when utilized to perform the following tasks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SLA and policy management &lt;li&gt;Security reconciliation &lt;li&gt;Protocol reconciliation &lt;li&gt;Message transformation &lt;li&gt;Orchestration (possibly, in conjunction with a BPM tool) &lt;li&gt;Integration &lt;li&gt;Logging and instrumentation &lt;li&gt;Metrics collection &lt;/li&gt;&lt;/ul&gt;ESBs can provide all these capabilities in a central location and in a consistent fashion, so that every service does not have to implement them individually. Every service has to perform each of these tasks in some way, shape, or form. Without a central tool, implementations, tools, and approaches will vary. At the end of the day, you will end up with a hodge-podge of different things, which will be hard and costly to maintain.&lt;br /&gt;&lt;br /&gt;When services are created, it is impossible to know who and how will consume them. In fact, it should be irrelevant. Services should not worry about all of the potential consumers, protocols, and contracts. It is the job of the ESB to reconcile all of them. Services should not have to include all of this complexity in their designs and implementations. They should only make sure that the business logic is properly implemented and a standard interface is provided. The ESB will take care of the rest.&lt;br /&gt;&lt;br /&gt;Obviously, without proper planning and architectural oversight, ESBs can fail. Using an ESB to support only a handful of services is an overkill. Blindly choosing a product without performing adequate analysis always leads to problems. However, putting ESBs in the right place in the SOA ecosystem and utilizing them for the right purposes will only simplify the development, increase efficiency, clearly distribute the responsibilities between architectural components, and improve standardization. ESBs are not evil when used correctly.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;</description><link>http://leoshuster.blogspot.com/2008/09/to-esb-or-not-to-esb.html</link><author>noreply@blogger.com (Leo Shuster)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKBtYml_kv2Y7G0GO6rH7WiZ-1QiGwZySb5v-y6WKvfPcSAjkLsHwz6AgFxT3UDLjxceugYyJ3AkT1ZIPGR1HpDNriWOWgXfZS6oeBPJsdB4HA6a7mWbT1layEVD2cEibIrkb7ygooYQ/s72-c/SOA+Ecosystem.jpg" height="72" width="72"/><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-5627554582226615063</guid><pubDate>Fri, 15 Aug 2008 17:31:00 +0000</pubDate><atom:updated>2008-08-15T10:33:56.504-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">projects</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>Project-Oriented SOA</title><description>Read my article on the Project-Oriented SOA in the &lt;a href=&quot;http://www.soamag.com/&quot;&gt;SOA Magazine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.soamag.com/I21/0808-2.asp&quot;&gt;http://www.soamag.com/I21/0808-2.asp&lt;/a&gt;</description><link>http://leoshuster.blogspot.com/2008/08/project-oriented-soa.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-8224529019060667356</guid><pubDate>Fri, 01 Aug 2008 20:34:00 +0000</pubDate><atom:updated>2008-08-01T13:35:19.954-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">service testing</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>SOA Testing</title><description>Many articles, books, and conferences dealing with the SOA tend to ignore one of the most important topics in software development – testing.  Often, testing is just an afterthought in many software development efforts.  A lot has been said and written about this problem.  However, it is important to note that testing in an SOA program plays a much more important and prominent role than in any other software development effort.  Without a proper testing foundation, the whole SOA initiative will either fail or become too unwieldy or expensive to maintain.&lt;br /&gt;&lt;br /&gt;One of the cornerstones of SOA is service reuse.  Success of the SOA program is often measured through the amount of services created and reused.  The biggest problem with testing in an SOA environment manifests itself when a service has several consumers and changes are made to it.  How do you validate that this change does not impact service consumers?  How do you determine the best way to deal with this change?  Do you ask all of the service consumers to perform their own regression testing to make sure internal service changes do not impact them?  Obviously, this is not an effective solution.  With more and more services getting more and more reuse, you need a solution that minimizes the amount of manual testing you need to do but, at the same time, provides a clear understanding of how the service changes impact its consumers.&lt;br /&gt;&lt;br /&gt;The services are composed of three primary elements – interface, contract, and implementation.  Interface represents the protocol and communication mechanism between service and its consumers.  Contract defines all of the interaction details such as message formats, SLAs, policies, etc.  Service implementation is self-explanatory.  A service can expose multiple interfaces and may potentially support multiple contracts.  The key to understanding the impact on service consumers is to verify whether or not changes to any of the service elements invalidate how it behaves today.  Changes that have no impact are called non-breaking; changes that modify the behavior are called breaking.&lt;br /&gt;&lt;br /&gt;Each shared service needs to have an automated test created as part of its normal implementation.  It will address two issues – provide an initial test bed for the service and automate all future testing needs.  The test should inspect what changes are made to each service element.  When service is modified in any way, the automated test suite should be executed to understand the impact of the changes.  If all tests pass, the changes should be considered non-breaking and consumers should be unaffected.  If any of the tests fail, this would indicate a breaking change and a new version of the service would need to be created.  Alternatively, the impacted consumers can change but, ideally, breaking changes should trigger a new service version.&lt;br /&gt;&lt;br /&gt;The biggest problem with SOA many companies face is lack of a consistent, comprehensive testing approach.  Without automated regression testing for shared services, organizations are exposed to risk of high manual testing costs every time a service is changed or new consumer is added.  Additionally, it can drive service versioning and serve as a formal validation mechanism that service consumers can trust.  Automation can save millions of dollars in manual labor and ensure stability of the whole SOA platform.</description><link>http://leoshuster.blogspot.com/2008/08/soa-testing.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-535676151831620577</guid><pubDate>Thu, 26 Jun 2008 02:41:00 +0000</pubDate><atom:updated>2008-06-25T19:42:35.170-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">CoDA</category><category domain="http://www.blogger.com/atom/ns#">Context Delivery Architecture</category><category domain="http://www.blogger.com/atom/ns#">EDA</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><title>Context Delivery Architecture</title><description>At the last Gartner Application Architecture, Development, and Integration (AADI) Summit held in Orlando, FL at the beginning of June, William Clark introduced the concept of Context Delivery Architecture (CoDA).  It is an architecture that is aware on the end user’s context such as location, preferences, identity, etc. and delivers the information that is most suited for it.  Another way to describe it is WYNIWYG (what you need is what you get) services.  The basic idea is that users’ specific context will drive what information they receive, how the applications interact with them, and where the processes take them.&lt;br /&gt;&lt;br /&gt;Despite Gartner labeling CoDA as an emerging trend, I don’t believe it is a new concept.  Context and location aware applications have been in existence for a while.  Think back to the Internet bubble days when all kinds of schemes were designed to deliver coupons, advertisements, and other “useful” information to your mobile devices when you got close to certain location.  RFID and its applications became the staple of context aware applications.  Even Gartner based its research on these trends.  It is true, however, that CoDA has not yet become mainstream and is moving up the Gartner hype cycle curve.&lt;br /&gt;&lt;br /&gt;CoDA is still very immature.  The vision is that CoDA applications will ubiquitously run on a variety of devices, technologies, and platforms.   For this to become a reality, technology needs to be created that would allow the same services to be delivered to a variety of platforms that possess the same context aware capabilities.  Users should benefit from being mobile, not be hampered by it.  For example, salespeople that left the office for the client visit should be able to obtain specific customer information, find out sales status, and view the whole relationship picture immediately on their preferred device.  The same capabilities should exist on all mobile platforms, which will truly make context aware applications possible.  At the same time, mobile devices should evolve to ubiquitously interact with the network.  Whether a WiFi, cellular, or any other kind of network is available should not prevent the application and the device from performing their functions.&lt;br /&gt;&lt;br /&gt;Even though CoDA was billed by Gartner as the next step in the evolution of SOA, I don’t think it fits into the same paradigm.  SOA’s primary goal is to create composite applications through the leverage of existing services.  EDA, or as Gartner likes to call it, Advanced SOA, pursues the same objective, except that instead of services, the same events are sought to be consumed.  By contrast, CoDA aims to enhance user’s experience through the knowledge of his/her context and tailor the application behavior to it.  While it builds on the concept of reusable services that would deliver the right information at the right time, the whole concept has nothing else in common with SOA.  In my opinion, CoDA is a move towards more intelligent applications but it is definitely not the next evolution of SOA.&lt;br /&gt;&lt;br /&gt;CoDA still has a long way to go.  It is an exciting concept that has science fiction written all over it.  However, the technology, devices, networks, and people are nearing the point when context aware applications will become commonplace.  The exciting thing is that I don’t think we have much longer to wait.</description><link>http://leoshuster.blogspot.com/2008/06/context-delivery-architecture.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4233102570796813262.post-3854039466718693777</guid><pubDate>Mon, 09 Jun 2008 03:58:00 +0000</pubDate><atom:updated>2008-06-08T21:01:16.041-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">architecture</category><category domain="http://www.blogger.com/atom/ns#">services</category><category domain="http://www.blogger.com/atom/ns#">SOA</category><category domain="http://www.blogger.com/atom/ns#">strategy</category><title>Starting on Your SOA Journey</title><description>Many industry leaders believe that SOA should be started small and evolve over time.  The argument is that this approach gives companies an opportunity to implement SOA practices on a small scale, test them out in a controlled environment, and understand how everything would work within the organizational boundaries.  This is not a bad idea.  However, I believe that the most effective way to introduce SOA is to build out the whole infrastructure, introduce the necessary technology, and establish all the patterns, best practices, reference architectures, and governance mechanisms before creating a single service.&lt;br /&gt;&lt;br /&gt;The reasoning for this is simple.  SOA on a small scale is not SOA.  It is just a bunch of services.  SOA’s goal is to create and leverage services across the organization.  A single project or a couple of services cannot achieve this.  Furthermore, effective governance, best practices, and lifecycle processes cannot be established on a small scale.  They need to be designed and implemented with the large scale in mind.  Testing them on a single project is not only impractical – it doesn’t provide any knowledge of how SOA will truly work within the organization.&lt;br /&gt;&lt;br /&gt;Any successful SOA implementation will eventually have all of its elements in place – infrastructure, technology, governance, practices, processes, and people.  Consider the impact of growing all this organically.  You will end up with a hodge-podge of services implemented on different platforms using different approaches and design patterns.  The technology set will be inconsistent.  Governance mechanisms that typically tend to be established late in the game will most likely allow inadequately designed and implemented services to go into production.  All this would have to be remediated at some point of time.  Imagine the effort required to clean up years of organic growth!  Most companies simply move on and leave the mess behind.&lt;br /&gt;&lt;br /&gt;Now imagine what will happen if all of the SOA elements are in place from the very beginning.  No rework, re-platforming, or cleanup will be required.  All of the services will reside on the right platform that can be scaled for future demands, all of the best practices will be followed, and the governance mechanisms will be able to catch most, if not all the subpar services.  The company will be able to reap SOA benefits right away without having to do the costly cleanup or conversion.&lt;br /&gt;&lt;br /&gt;Of course, waiting to complete all the preliminary work can take years.  No company, regardless of how strong its commitment to SOA is, can wait that long to start seeing the benefits of something that will require a lot of upfront investment.  Thus, the most pragmatic approach is to introduce as many SOA elements as possible that will provide the most complete and consistent SOA foundation for the future.  This should be achieved within a reasonable timeframe, so that services can start to be built and benefits can be quickly shown.  All the remaining strategic tasks should continue to be addressed in parallel with the ongoing tactical service implementations.&lt;br /&gt;&lt;br /&gt;The prescription above will not cure all of your SOA ills but will introduce a dose of prevention for the future.  Building services following a consistent set of standards, using a consistent set of tools, and deploying on a consistent platform from the very beginning will ensure the success of your whole SOA program, not just a few projects or services.</description><link>http://leoshuster.blogspot.com/2008/06/starting-on-your-soa-journey.html</link><author>noreply@blogger.com (Leo Shuster)</author><thr:total>2</thr:total></item></channel></rss>