Showing posts with label SOA. Show all posts
Showing posts with label SOA. Show all posts

SOA RoundUp: User-Developed Apps; SOA Leaders

I've been meaning to round up what was another spectacular run of bursts of brilliance here at the ebizQ site around SOA and things closely associated with SOA.
##CONTINUE##
ebizQ contibutor James Taylor, for one, blogged on the trend toward user-developed applications -- a subject close to the the hearts of progressive SOA thinkers everywhere. We thoroughly believe that users should be provided the tools to build applications that meet pre-established governance guidelines.

James sees plenty of opportunities here on the horizon, noting that "the ranks of businesspeople who are capable of developing applications are swelling, due to a combination of the technology-savvy Millennial generation entering the workforce, the proliferation of easy-to-use development tools, and burgeoning demand for applications. These businesspeople don't want developers' jobs; they just want to get things done. Their enthusiasm, however, may lead to poorly designed, insecure, and unscalable applications that application development professionals inherit."

Business people should be able to build their own apps, but should they also lead SOA? ebizQ Michael Poulan reports on a discussion with analyst Anne Thomas Manes, who feels SOA is an architectural style that falls into IT's lap -- not the business. However, Michael feels that "for SOA to succeed in mass, Business has to be deeply involved in SOS and, correspondingly, has to influence system architecture design.... SOA must be driven by business..."

And how should the design of SOA-capable services be guided? ebizQ contributor Brenda Michelson reports on a talk by Cory Casanave, CEO, Model Driven Solutions & ModelDriven.org, who discussed Enterprise SOA Modeling with the new OMG SoaML UML profile. SoaML is a UML profile and metamodel for the design of services within a service-oriented architecture.

We also had a enlightening exchange on the ebizQ Forum page, debating the question of whether SOA-related projects will increase or decrease in the future. Miko Matsumura said that "the pattern of coarsely grained reusable networked components (business services) for the Enterprise will definitely rise. Recent Gartner and Forrester research corroborate this, and in fact reassert that the name for those projects will be 'SOA.' SOA has undergone a lot of shifts in its storied history, but ultimately, the metapattern of aligning business and IT is pretty ubiquitous and organizations that don't shift to it will struggle."

There was general agreement that SOA will continue to increase as a force reshaping IT and the business. As Beth Gold-Bernstein put it:
"The real problem with SOA is the hype and the misunderstanding of what it is, what it can do, and how to design, manage, and reuse loosely coupled system components. We may be nearing the end of the hype cycle, and everyone who bought the hype but didn't to do work to figure out how to actually design SOA solutions have jumped into the trough of disillusionment and declared SOA dead. Now SOA can finally rise from the ashes in it's true form and potential, providing practical, adaptable, distributed and federated solutions."
-----------------------------
BY Joe McKendrick
Source:ebizQ

Copyright © ebizQ. All rights reserved.

Getting the Links Straight Between Cloud Computing & SOA

Want to know what gets my blood pressure up? It's when there's both a huge shift in thinking around how we should do computing, namely cloud computing, and at the same time, there's a bunch of information out there that causes confusion. As cloud computing hype spikes to a frenzy, so does the number of less-than-intelligent things that I hear about it and its relationship to SOA.
##CONTINUE##
We've got a herd mentality in IT. We're always chasing the next paradigm shift, which seems to come along every five years, claiming that whatever the last paradigm shift was had "failed" and that's why we're looking at something new. However, these hype-driven trends are often complementary, and so the real power is in figuring out how known approaches fit with what's new, and not look to replace, but how to build on the foundation. The best case for that scenario has been how SOA benefits cloud computing, but few understand how and why.

The confusion continues. Stacey Higginbotham, a commentator for GigaOm, remarked that an HP presentation on cloud computing was "depressingly similar to the idea of service-oriented architecture." She noted that "HP offered clouds as merely a means to deliver IT as a service inside the enterprise." However, she was disappointed because "...most of HP's detailed talk of clouds in the first webinar was depressingly similar to the idea of service-oriented architecture."

I'm not trying to pick on Stacey. I see and hear a lot of this kind of stuff out there, and confused people make for more confused people. I suspect that many of the people who sell cloud computing are selling its replacement aspect and not focusing on how to leverage cloud computing into an architectural context. This is dangerous thinking that will quickly get many a naive enterprise into trouble.

The trouble here is that those in IT have a tendency not to understand new concepts in the context of the old, such as how cloud computing is leveraging most of the concepts and patterns around SOA. That's not "depressingly similar."

Let's get this straight: SOA is an architectural pattern, simply put the ability to create an architecture around the notion of many services that are bound together to create and re-create business solutions. Cloud computing is a set of enabling technologies as a potential target platform or technological approach for that architecture.

Thus, to say they're similar is the functional equivalent of saying that an approach to creating automobiles is "depressingly similar" to electric cars. It doesn't make sense. One is the way of doing something, while the other is a potential outcome. SOA doesn't go away. It's not replaced. It's architecture. Cloud computing is a potential outcome of that architecture, thus cloud computing needs architecture, and vice versa.

The core issue, I think, is that we like to oversimplify things when things aren't simple. While we attempted to solve SOA by tossing technology at the problem, we quickly found that SOA was something you do, not something you buy. The same risks are here with cloud computing. Those who toss things outside of the firewall onto the platforms of the clouds without architectural context, such as leveraging SOA, will find themselves in trouble.

We have too many people attempting to lead thought or provide commentary in the cloud space who have no context, and so have a tendency to oversimplify how this technology is leveraged or how it works in enterprise architecture and SOA. And I'm going to call them out when I see it happen.

-----------------------------
BY David Linthicum
Source:SYS-CON

Copyright © 2009 SYS-CON Media, Inc. - All Rights Reserved.

Gartner: Nine ways to measure SOA success

Why do we do SOA?
##CONTINUE##
My pal Steve Swoyer just published a piece over at Visual Studio surfacing a Gartner observation that many companies may have fallen into a “herd mentality” when it comes to SOA. That is, they do SOA because everyone else seems to be doing it.

As explored here on this blogsite a couple of weeks back, Gartner found that 40% of companies with SOA projects don’t bother to measure the results or ROI. (Is that good or bad compared with other initiatives? They didn’t say.) But the takeaway is that there are a lot of SOA efforts going on out there, but with no sense if they’re delivering or not.

Gartner’s advice: start small, identify specific business benefits, and focus on achieving them.

Here are some points that can be measured to determine if service orientation is delivering, courtesy of Gartner:

  1. Improved efficiency, particularly with respect to business processes execution
  2. Lower process administrative costs
  3. Higher visibility on existing/running business processes
  4. Reduced number of manual, paper-based steps
  5. Better service-level effectiveness
  6. Quicker implementation of processes
  7. Quicker time to market
  8. Shorter (overall) project cycles
  9. Overall reduction in the total cost of application development and maintenance

Steve also relays this bit of advice: avoid reflexive thinking — either pro or con. “If implementing SOA for the sake of implementing SOA isn’t a viable strategy, neither for that matter is a knee-jerk dismissal of the benefits of SOA as ambiguous or unattainable.” Get the numbers to back up the argument either way.

-----------------------------
BY Joe McKendrick
Source:ZDNet

Joe McKendrick is an author and consultant with deep knowledge and insights regarding trends and developments in the technology industry. See his full profile and disclosure of his industry affiliations.

© 2009 CBS Interactive Inc. All rights reserved.

SOA is not dead: 5 key lessons from early adopters

The services-oriented architecture moniker might be "sullied" by industry hype, high-profile failures and misdirection, but SOA is certainly not dead, said one analyst.
##CONTINUE##
There continues to be strong industry, vendor and enterprise support for SOA "whether it's branded as SOA or otherwise," said Jayanth Angl, senior research analyst with London, Ont.-based Info-Tech Research Group Ltd. "

The industry, he said, has been consistent in moving towards a view of interoperable services, and "that's really what it's all about, is services and I don't think that's changed." Other approaches have emerged like software-as-a-service, cloud computing and mashups that all align with this services-based mindset that is replacing the traditional application delivery approach, said Angl. "But, it remains to be seen what the next buzzword is."

The fact that SOA is dead was proclaimed earlier this year by Midvale, Utah-based Burton Group analyst Anne Thomas Manes who wrote on her blog that SOA, thought to save IT, actually turned into a great failed experiment. "It's time to accept reality. SOA fatigue has turned into SOA disillusionment," she wrote. "Business people no longer believe that SOA will deliver spectacular benefits."

According to Info-Tech Research, while mature SOA implementations today are not numerous, there are a growing number of enterprises making progress and reaping benefits. The research firm recently released a report entitled Five Key SOA Themes from the Field based on ongoing conversations with enterprise early adopters of SOA. Among the findings -- besides the fact that SOA implementations are alive and well -- were five key SOA themes amassed from interviews with IT leaders directly involved in their company's SOA initiatives.

1.IT leaders must see SOA as a business opportunity: Other IT projects might be about providing efficiency in IT but "this essentially is changing how a business operates," said Angl. The perception of leadership will determine whether an SOA implementation will reap substantial progress and find success, he said.

2.External guidance is invaluable: Management isn't the only group that could benefit from a shift in mindset, said Angl. Internal developers, too, have been used to being insulated from the business and its immediate and future needs, but a better understanding of key business processes is vital if services are to be defined, he said. While many of the enterprises studied have internal development teams that understand the concept of re-using services, Angl said it is a good idea that they brought in external expertise in SOA to render "better visibility in to some of the pitfalls."

3.Don't make buying software the focus of an SOA initiative: There are countless SOA vendors pitching their software platforms, but it can be difficult to justify a purchase if the requirements are not first defined, said Angl. The last thing a company wants is to have bought a tool that doesn't align with the needs of the initiative. The initial modeling process can be helped along by creating a service catalog in the form of a basic spreadsheet or wiki, said Angl. "A lot of ground work that has to be laid here."

4.Avoid the big bang approach to SOA: It's not realistic to think that the benefits of an SOA implementation will be reaped immediately, said Angl, because communicating and effecting change can take time. He suggests starting with a project where sharing a service, for instance, will reduce duplication of data entry into two different applications. "Some of the baby steps will certainly lead to the bigger changes required later on," he said.

5.Prioritize service quality over quantity: Creating and managing new services is no trivial task, said Angl, and requires the support of an appropriate process. It's best to focus on "truly re-usable services that can be leveraged in a straightforward fashion," he said, while ensuring that design principles are followed, business rules are consistently applied, and regulatory requirements are met.

Angl said it can take anywhere from three to five years to see an SOA implementation reach maturity, but even then, the initiative will be an ongoing one. For that reason, it can't be termed a project, he said, rather it's a service orientation designed to change how a business approaches new initiatives.

-----------------------------
BY Kathleen Lau
Source:Computerworld Canada

Copyright © 1994 - 2009 Network World, Inc. All rights reserved.

What's the Best Definition of SOA?

So, I ask you, do you still think that a common definition of SOA is not needed in the industry?
##CONTINUE##
It seems that I am not as flexible as I believed I could be on my thinking regarding SOA. I attempted to categorize various SOA engagements in my SOA World Magazine article entitled A Classification Scheme for Defining SOA. I believed that I could hide my dissatisfaction with the lack of clarity surrounding SOA by lumping SODA/application development into its own subcategory. I was wrong! When it comes down to it, there's still just too much ambiguity surrounding the term service.

So, you might ask, What is the big deal if we call everything running on a computer a service? The answer is that not all services are created equally and there's no way to determine the type or extent of services when a single term is used as a catch-all.

For me, SOA is defined precisely as follows:

Service-Oriented Architecture (SOA) is an archetype - an architectural pattern that focuses on design of systems from the perspective of providers and consumers as defined by a contract. SOA-based designs introduce agility by enabling interchangeability of service providers without requiring process changes in the consumers. Hence, the SOA is applied at the system level, not just at a single component within a system.

Because I define SOA as an archetype, you can not have a direct instance of SOA, you can use SOA to define a new architecture, which can then be used to create instances of systems. For example, Service-Oriented Integration (SOI), Web 2.0 and Cloud Computing are all architectural types based on the SOA archetype. However, to put things in context, FedEx and UPS, as businesses, are also SOA architectures. Needless to say, if you follow the laws of object-orientation, it's not invalid to identify an object by it's topmost ancestor, but in doing so you lose the object's essence. This is a great technique for lumping things together in a collection, but horrible if you want the richness and value of the object to come through.

Of the three technology-related architectures based on SOA listed above, SOI and Web 2.0 clearly have a strong software connection. Some identify the the software component that has a SOAP or HTTP interface as a service. Well, just as SOA is an archetype, service is an archetype as well, and, indirectly, these software components are services given that they derive from the service archetype.

To better understand my point we need to explore the technical ramifications of this for a moment. With the growth of TCP/IP as a ubiquitous networking protocol, so grew the concept of client/server computing. In client/server computing, a user interface application consumes networked software services to provide data on demand versus having the application exist as a monolithic entity on a single computer. Client/Server computing enabled networked shareable resources.

If I didn't use the term Client/Server in the above paragraph, 9 out of 10 technical people today would say I was talking about SOA. So, is everyone who is developing systems using Web services today really just doing Client/Server? I believe so, but that wouldn't be popular, after all, there aren't hundreds of job openings for client/server architects right now.

[Sidebar Note: What are these people asking for SOA architects really looking for if it's not client/server experience? From what I've seen, it's typically experience with a particular vendor's software for building distributed applications. But, to those people I warn you big mistake. The underlying standards will not make it significantly less expensive to switch from that tool to another one.]

To summarize, no one who claims to be doing SOA would openly admit they're just really doing client/server. There is a subset of people doing SOA that are actually focusing on modeling the business as a set of functional service areas (these people are really doing SOA). Then, there's a bunch of people developing software components using a client/server design pattern claiming they're doing SOA.

So, I ask you, do you still think that a common definition of SOA is not needed in the industry?

-----------------------------
BY JP Morgenthal
Source:SYS-CON

Copyright © 2009 SYS-CON Media, Inc. - All Rights Reserved.

The Future of SOA

As consumers we are accustomed to the end-user experience of the Internet. With HTTP and XML, you don't need to have a specific application on your computer to make use of external data - you can just open a browser window and do a search or visit a particular Web site to find the information you need.
##CONTINUE##
But inside an enterprise, sharing data and applications is far more complex. Enterprise SOA vendors have added advanced tools and enabled capabilities that leverage complex specs, making it more difficult for smaller projects to use these features. Although the software may be based on open standards, it often requires a thorough understanding of a range of standards to integrate the data. For example, a department manager who wants access to customer information from another business unit may find that the data is housed in a proprietary middleware bus. In this case, the only way she can access it is by installing the same middleware on her servers, training staff to manage the software, and paying the vendor fees to maintain it.

These kinds of obstacles don't exist on the Internet, where you can go to sites like Google Maps, create a mashup, and send it to your contacts through Facebook. If you want data, you can go directly to the source via open APIs and use it as you see fit. That same capability is needed in the enterprise. For example, Web Services developers must choose between using a RESTful architecture, which has some limitations regarding security, or traditional Web Services (WS) standards, which provide heavy security but are more complex to deploy. And if a developer adds single sign-on functionality to a RESTful interface, the complexity grows.

What we need for the enterprise - and where we believe SOA is heading - is an interface that allows someone to interact directly with data through standard protocols and simple access management instead of through a heavyweight platform, as well as the ability to select the right tool for the job - Web Services where appropriate and a RESTful approach when required.

Advantages in Going Lighter
By not requiring departments to use a specific enterprise stack for everything they do, productivity can improve considerably. For example, if an employee in another division located in another country needs access to data on another department's system, he should be able to do an HTTP GET (as long as he has the right access control) to retrieve the data he needs in an XML document.

On the developer side, the requirement to federate more and more applications and data across traditional corporate boundaries - and at the same time deliver those new services quickly - already has enterprise IT departments looking for new options. For instance, a project team that is tasked with developing five new services that are to be tested and deployed in two months may find that the complexities of the organization's enterprise platform make it impossible to meet their deadline. If they had a framework that includes data services and identity management, they would be able to cut time to market substantially and make that deadline.

Because faster time-to-market is becoming the overriding criteria for successful application infrastructure projects, SOA frameworks of the future will need to deliver more application infrastructure capabilities in less time - and without unnecessary complexity.

Looking to the Internet
Metadata discovery would also need to be a key part of such a lightweight framework. Many SOA platforms have evolved to include heavyweight repositories for service definitions, which require the service definitions to be separated from the implementations and placed in large registries. One lesson we can learn from the Internet is the benefit of lightweight indices; for example, Google and Yahoo! allow for searching across all of the sources of information without consolidating that information into a single location. We search for information and we are then directed to the source of that information for the latest version. This same structure can be applied to service registries; we can employ a lightweight index of service locations that points us to the actual implementations of those services.

Metadata is still important; we just need to handle it in a more lightweight manner. The metadata about what a service offers (what data it presents and what data it expects) will have to be located with the implementation of the service so the data doesn't get out of sync. Lightweight conventions like WSDL or WADL could be employed to package the metadata along with the resource implementation. And putting all of these locations into a single searchable lightweight index would provide just the right level of centralization without slowing down the innovation. However, there is still some work that needs to be done in this area to promote lightweight standards to address metadata packaging in REST resources.

Leveraging Clouds
Looking ahead, more and more Web Services will be built for and leveraged from a cloud. Enterprise developers will need a framework that enables them to create secure Web Services that can be accessed via the Internet or the cloud. A lightweight service that is deployed in a way that external parties can access it has to provide access control that depends on external identity. This is where identity architectures need to scale out to a global perspective. Some WS-* protocols are targeted at providing a solution for this. However, there's additional work that needs to be done to allow a simplified external identity model to be applied to the REST-style programming model. New identity architectures will need to be defined to secure REST resources for programmatic consumption, just as initiatives like OpenID have done to simplify human-based externalized identity.

Enterprises may also choose to develop and house some applications that provide a competitive advantage internally and house other less mission-critical applications on an external cloud. And, both categories will need to interoperate. For example, a company may use Salesforce.com but need it to interact with customer information located in an internal Oracle or SAP application. A unified security programming model for RESTful resource exposure can provide the developer a consistent way to access resources - regardless of where the resource comes from (inside the corporation or outside). A lightweight security model that can be used both inside and outside the corporation would help in this process.

Currently every SaaS interface has a different non-standard way of controlling access to resources; this makes what could be a simple mashup problem difficult. Combining the data together from multiple sources is the easy part, but getting all of the right credentials together for accessing all of the disparate resources is tricky.

Identity Management Critical
As developers create Web Services that provide access to data to an ever-expanding federated audience, identity management is critical. When users present credentials to access a Web Service, there must be validation that they're part of a larger system that allows them to access what they're requesting - just like when you present a debit card to make a purchase or get a cash advance at the grocery store. If you could only use that card at ATM machines run by the credit card issuer, that would be a heavyweight model; a non-distributed security model. Instead, the card issuer enables you to use the card virtually anywhere, assuring the store of your security credentials to do the transaction.

Similarly, such a distributed model for Web Services enables developers to create greater value by emphasizing the service and not verification of security credentials. While an identity management function doesn't have to be embedded in the offering, the Web Service needs to be able to connect with identity management software through lightweight standards; this enables developers to focus on the service offering.

Greater Mobility
Finally, with the increasing need for Web Services to run on a variety of screens - desktop, laptop, mobile devices, and set-top boxes - Web Services developers need an application infrastructure that is simple enough to accommodate all of those possibilities. The emphasis is on quick access to data and multiple fast reads from a database table with greater intelligence on the edge. Where enterprise-class applications that offer all the "-ilities" were the focus in the past, lightweight, Web-scale applications that can be used on a range of screens - particularly on mobile devices - will continue to grown in dominance.

For example, the iPhone or Blackberry could become a next-generation publishing platform, or perhaps provide contextual intelligence that offers highly targeted location-based advertising or other information relevant to appropriate potential customers. But to create such services, developers must be able to easily leverage data services and identity management capabilities; a lightweight framework that provides both would be ideal.

Demand for Simpler Framework Will Be Addressed
To enable enterprises to meet the ever-growing demand to deliver new secure Web Services and quickly and easily leverage data across the business, a simpler SOA framework specifically designed for smaller projects is needed.

Web scale is the new enterprise class that organizations will all aspire to. As work continues in developing and promoting lightweight standards, we believe that enterprise developers will soon have a simpler platform that helps them significantly speed and simplify Web Service design and deployment.

-----------------------------
BY Ashesh Badani and Jerry Waldorf
Source:SYS-CON

Copyright © 2009 SYS-CON Media, Inc. - All Rights Reserved.

Bringing Cloud Computing to SOA

There’s no shortage of opinions on how cloud computing and SOA are related. Just plug the phrase into your favorite search engine and you’ll have a day’s worth of reading. What you are likely to find are articles discussing how SOA led to cloud computing, how a good SOA is a prerequisite to leverage cloud computing, or how to leverage cloud computing in your SOA. I’ve spent quite a bit of time reading these types of articles and listening to experts talk about SOA and cloud computing, and that got me to thinking. How can companies bring the cloud experience to their SOA?
##CONTINUE##
In order to do this, a company may set out by creating clouds of their physical infrastructure, storage, or networking capabilities, which are all worthy pursuits. However, I believe the best way to cloud-enable a SOA is to deal with the heart of the SOA, the services. In short, to bring the cloud to SOA the goal should be to create a cloud of services. This is of course easier said than done, but as a general outline it would be a two step process:

  1. Virtualize the services
  2. Manage the virtualization

When we look at cloud computing in very plain terms, solutions usually constitute a set of virtualized resources and capabilities that allow those resources to be managed. Virtualizing the services in a SOA is a logical first step then toward moving to a cloud-enabled SOA. There are solutions in the marketplace today, the WebSphere CloudBurst Appliance being one, which provide users a virtual packaging that includes an operating system, service infrastructure, and service. In effect, the service becomes a virtualized resource, thus enabling the next very important step in bringing the cloud to a SOA.

Virtualization alone does not a cloud make, so after users successfully virtualize the services in their SOA, capabilities to manage such virtualization need to be put in place. The capabilities I’m speaking of here bring cloud-like characteristics to the service virtualization. These include the ability to create, deploy, dynamically allocate, and track usage of these virtualized services. This results in an elastic cloud and one in which usage across the cloud can be tracked to facilitate the utility pricing model so often associated with clouds.

Once both service virtualization and management of that virtualization are in place, the result is a cloud of services. In my opinion, clouds of services are more valuable than clouds of things like hardware, storage, and databases because the cloud is brought to the resources that are much closer to the end-user. Further, once a cloud of services has been established, it’s not much of a stretch to use the same techniques to bring the cloud all the way to the applications comprised of such services. This may be the most valuable cloud of all since it is the asset that a company’s end-users come in direct contact with.

-----------------------------
BY Dustin Amrhein
Source:SYS-CON

Copyright © 2009 SYS-CON Media, Inc. - All Rights Reserved.

Should you get your SOA knowledge from SOA vendors?

JP Morgenthal made a great point in this recent article, highlighting the fact that in many instances SOA vendor training may be inherently flawed.
##CONTINUE##
I saw an announcement this morning by WSO2 that they are offering free SOA Training this summer; this triggered my uh-oh senses. I'm sure that WSO2 means well, but I've noticed a trend in my conversations with individuals who have a predominantly been trained by SOA Vendors to focus too heavily on the implementation design factors and focus too little, or not at all, on a top-down approach. To me, this makes perfect sense, because, and I know this is a contentious statement, architecture cannot be taught to the masses.

The core issue is that when vendors teach SOA, they typically focus on the implementation and the technology, and not the architecture. Why? They don’t make money while you’re thinking about SOA, only when you’re implementing SOA. Thus, the SOA training provided by SOA vendors is going to be implementation-focused.

Not to pick on WS02, but IBM, Software AG, HP, and other SOA technology vendors play that game as well. In short, providing deep seminars disguised as training, talking more about ESBs and SOA governance technology than how to approach and solve the architectural issues at hand. The technology is part of it, but a small part.

As a result, we now have thousands of “SOA architects” who are really technologists. There is a huge difference. For instance, I consistently encounter those that talk about ESBs as if it’s the architecture, and push particular SOA vendors before any issues are understood about the architecture or problem domain. That’s obviously problematic.

The moral of this story is that if something is free, there is typically a catch. Architecture is something you do, not something you buy. Learn from those that are SOA vendor neutral.

-----------------------------
BY David Linthicum
Source:InfoWorld

©1994-2009 Infoworld, Inc.

Bringing the Cloud to SOA

There’s no shortage of opinions on how cloud computing and SOA are related. Just plug the phrase into your favorite search engine and you’ll have a day’s worth of reading. What you are likely to find are articles discussing how SOA led to cloud computing, how a good SOA is a prerequisite to leverage cloud computing, or how to leverage cloud computing in your SOA. I’ve spent quite a bit of time reading these types of articles and listening to experts talk about SOA and cloud computing, and that got me to thinking. How can companies bring the cloud experience to their SOA?
##CONTINUE##
In order to do this, a company may set out by creating clouds of their physical infrastructure, storage, or networking capabilities, which are all worthy pursuits. However, I believe the best way to cloud-enable a SOA is to deal with the heart of the SOA, the services. In short, to bring the cloud to SOA the goal should be to create a cloud of services. This is of course easier said than done, but as a general outline it would be a two step process:

  1. Virtualize the services
  2. Manage the virtualization

When we look at cloud computing in very plain terms, solutions usually constitute a set of virtualized resources and capabilities that allow those resources to be managed. Virtualizing the services in a SOA is a logical first step then toward moving to a cloud-enabled SOA. There are solutions in the marketplace today, the WebSphere CloudBurst Appliance being one, which provide users a virtual packaging that includes an operating system, service infrastructure, and service. In effect, the service becomes a virtualized resource, thus enabling the next very important step in bringing the cloud to a SOA.

Virtualization alone does not a cloud make, so after users successfully virtualize the services in their SOA, capabilities to manage such virtualization need to be put in place. The capabilities I’m speaking of here bring cloud-like characteristics to the service virtualization. These include the ability to create, deploy, dynamically allocate, and track usage of these virtualized services. This results in an elastic cloud and one in which usage across the cloud can be tracked to facilitate the utility pricing model so often associated with clouds.

Once both service virtualization and management of that virtualization are in place, the result is a cloud of services. In my opinion, clouds of services are more valuable than clouds of things like hardware, storage, and databases because the cloud is brought to the resources that are much closer to the end-user. Further, once a cloud of services has been established, it’s not much of a stretch to use the same techniques to bring the cloud all the way to the applications comprised of such services. This may be the most valuable cloud of all since it is the asset that a company’s end-users come in direct contact with.

-----------------------------
BY Dustin Amrhein
Source:SYS-CON

Copyright © 2009 SYS-CON Media, Inc. - All Rights Reserved.

Is Vendor-Based SOA Training A Good Idea?

The results of bottom-up engagements, which are labeled as SOA, are faster delivery, increased reuse and lower development costs
##CONTINUE##
I saw an announcement this morning by WSO2 that they are offering free SOA Training this summer; this triggered my uh-oh senses. I'm sure that WSO2 means well, but I've noticed a trend in my conversations with individuals who have a predominantly been trained by SOA Vendors to focus too heavily on the implementation design factors and focus too little, or not at all, on a top-down approach. To me, this makes perfect sense, because, and I know this is a contentious statement, architecture cannot be taught to the masses.

The results of bottom-up engagements, which are labeled as SOA, are faster delivery, increased reuse and lower development costs all good things. However, these solutions are constrained by their limited aperture, which results in too narrow of a focus and misses capturing the necessary domain knowledge in to the architectural model—the key promise of SOA—that will provide the aforementioned benefits horizontally, not just vertically in a single business domain.

Hence, the business leaders are disillusioned. It's not that they don't see the benefits to software development, but because they still don't have a solution that enables them to execute in business time. Without leading with a top-down design, the necessary subject matter expertise, and subsequent service model, to enable rapid delivery of a large, complex, enterprise-wide business processes is missing. The outcome of this latter point is that as the business tries to reposition with market changes, in the eyes of the business, IT still cannot keep up and all the talk of the benefits of SOA is diminished. Thus, SOA is yet another instance of “all talk, no action.”

But, let's not lay all the blame at the feet of vendors offering training on a skill that is not designed to be learned in a classroom over five days, but is a craft that needs to be honed over years working with talented craftsmen. Part of the blame need to be placed back on the business for believing they can get something for nothing. Much of the business community does not respect the value of architecture, is too focused on tactical wins and allows themselves to believe that they can create an army of low cost programmers, send them to a vendor-led SOA class and have them churn out projects that can meet anything more than a small community of interest's needs.

Of note, I lay a lot of this blame on middle management that has never learned to have critical conversations with their executives. I believe most senior executives are strategic thinkers, which is how they achieved their current position. However, middle managers are not trained to manage the expectations of their executives, and thus, believe if they don't show constant momentum, they will be deemed incapable of delivery and relieved of their duties.

Well, you cannot show current momentum if you've bought into the promise of enterprise and service oriented architectures—you've bought into the promise that strategic modeling of the organization will ensure that the real business needs are met in a way that drives agility and allows the business to keep up with market demands. Middle managers that learn how to manage the expectations of senior management through this process will win in a way that will surely position them for growth.

So, while its been a long and winding path to the answer—subsequently, a path that truly shows how everything is connected to everything—the answer is that vendor-led SOA training is not a good idea. Vendors have a mission, which is to sell software. To them SOA is something you build, not something you design. Hence, the focus from the gitgo is a failure and will lead to continuous disillusionment.

If the goal for the organization is to develop software faster, cheaper and with more quality using CMMI-like processes, then many of these vendors will help you achieve your mission and be successful. However, do not believe for a second that what your programmers and engineers learn in these classes will help at all achieve the mission of service oriented architecture, because, architecture cannot be learned in a classroom in five days; only architectural principles can, which are like sharp knives in the hands of babies if not properly directed.

-----------------------------
BY JP Morgenthal
Source:Ulitzer

Copyright © 2009 Ulitzer, Inc. - All Rights Reserved.

Is SOA Still Dead?

Nearly six month after her initial SOA obituary, a heated InfoQ debate and a lot of blogs and twits, Anne Thomas Manes has confirmed her opinion about SOA.
##CONTINUE##
Anne starts her post by explaining her position on SOA:
"SOA" as a term has lost its luster, but "SOA" as a practice is essential for all organizations going forward. Many organizations have invested millions into SOA, and they have little benefit to show for it. Some organizations are worse off than when they started. Given the tight economy, business people aren't particularly interested in pouring more money into what looks like a sinking ship. If you want to get funding this year for your SOA initiative, you should probably avoid using the word "SOA" and instead focus your efforts on building "services" that deliver measurable value to the business.

Anne proves that SOA is still dead by referencing a recent Gartner survey stating that 40% of users do not measure how long it takes to achieve a return on their SOA investment. The survey also shows that 50% of those companies that have not yet started a SOA initiative did so because they could not articulate and demonstrate its business value. Without a means to measure value, SOA initiatives are doomed. Additionally, SOA was so overhyped by analysts and software vendors, that:

... many companies were approaching SOA projects with excessive expectations and little awareness of the effort, resources and time needed to achieve any benefits.

More indications that SOA is dead, according to Anne, are based on the amount of enterprise spent on SOA (infrastructure):

  • Gartner just recently published its annual assessment of the application integration and middleware (AIM) market, which experienced single digit growth in 2008. According to a review of the report by Application Development Trends, "Middleware Market Hits the Brakes in 2009", Gartner is projecting a 0.8 percent decline in the AIM market for this year.
  • ... market study by Report Buyer asserts that IBM holds 70% of the SOA infrastructure market. So IBM sales should be a pretty good indicator of the SOA infrastructure market. And according to a tweet from James Governor at IMPACT, "Robert LeBlanc GM, software sales says clients are buying SOA in smaller chunks now." (I interpret "buying SOA" to mean "buying SOA infrastructure software", because we all know that you can't buy SOA.)

This post, similar to the original one, has caused quite a few responses. For example, Pierre Fricke in his comment to Anne’s post writes:

I think we are reading the normal shock of the initial wave of a depression gives to business spending as "SOA is dead"... Spending hits a wall as credit dries up and money velocity slows dramatically... SOA is a significant undertaking that would be impacted by this initial wave. Now as companies dust themselves off after the first round, they find they still need to conduct business and need to become more competitive than ever... It is interesting to see that the financial services industry is loosening up a bit on focused SOA and BPM/BRMS projects... I think we are confusing poorly justified or thought out SOA projects that don't get funded as organizations won't implement SOA or SOA is dead.

Steve Jones has devoted a whole post to reply to Anne. Steve explains, that "SOA isn't a technology thing, it’s a practice thing".

In Steve’s opinion, current SOA failures are mostly due to the fact that both analysts and vendors were (and still are) pushing people down the route of technology first (Anne is assessing SOA health through SOA infrastructure spent):

So having vendors claiming "we are still shifting products" while analysts who told people to go and buy those products are now complaining that they haven't seen the value really is just a farce... SOA hasn't failed, what has failed is the next generation lipstick on the pig, buy my technology it will save your problems, do a big project it will fix everything style of IT that has always failed.

What Steve considers to be dead is not SOA, but rather:

... the zombie child that is vendor driven strategy has failed to deliver IT departments the benefits that it should have. The same is beginning to happen around cloud as the zombie possession organizations that are vendor marketing seek to subvert yet another approach, and one which in the case of SaaS has been massively business driven, into re-selling the same technology which has failed before.

SOA is and always was about architecture, not the way to get financing, or analyst hype, or particular middleware platform. In the last decade, IT industry has made tremendous advances in understanding and improving this architecture style. So Anne has to decide what is really dead. Analyst hype? That was often in the way of architecture development anyway. Blind financing by business executives? The fact that enterprise architects have to explain now what and why they can achieve, instead of getting a blank check, should be considered a positive thing. Cutting into profits of software vendors? Current open source offerings and higher requirements from companies are forcing software vendors to come up with better more innovative products.

Yes, we see a slowdown in SOA software spent, but the same slowdown can be seen in any other software product and/or any other industry. In the words of Pierre Fricke: "Wanna buy a house? A car? Rare art? Oil leases? At 2006-07 prices?".

-----------------------------
BY Boris Lublinsky
Source:InfoQ

Copyright © 2006-2009 C4Media Inc. InfoQ.com.

Do we have an active SOA service?

In one of the Internet discussions about "the Future of SOA" that felled into talking about Web Services and ESB (wanted to do the best but it happened as usual...), one old IBM article was quoted: "Services advertise capabilities, both offered and requested, by declaring interfaces they implement or expect other services to implement". The idea about 'requested capabilities by declaring interfaces' was, probably accidental because even in four years it is not that easy to figure out how to do this. If the authors just meant that a service interface might be requested by others, it is, probably, my fault that I have read what was not in there.
##CONTINUE##
So far, I can mention two approaches that close to the idea of 'requesting capabilities from others': one is implemented by IBM WebSphere Dynamic Process Edition and another one is developed by Ashley McNeile in the form of mathematical model of entity collaboration. IBM has used a registry where services announce requirements for particular business functionality they need a help with; those services that have appropriate capabilities can make contra-offers and be engaged into the interaction. The collaboration mathematical model assumes that collaborating entities announce their readiness to be involved into the particular collaboration; the entities can also announce their disability of unwillingness to be involved into interactions in particular time. All mentioned activities are performed by messages via interfaces, not by interfaces.

In both cases, we see a bit unusual service behavioural pattern - active service. Following the stereotype of Web-based client-server custom, we expect a service to play a passive role waiting when a consumer/requestor invokes it. But, according to Arnon Rotem-Gal-Oz and Udi Dahan, service can pro-actively search for available companion services. It is obvious that service-oriented infrastructure has to be friendly and supportive for active services to make companion finding happen. Some people think that service-oriented infrastructure has to provide a kind of registry/repository, others offer an ESB for this purpose. To me, the major question is not in how to find a companion service (though it is not a trivial task because, at least, semantic barriers may be too 'high' for successful finding) but in how to be sure that the found service is the right one, how to set an appropriate service contract with the service provider (owner/steward). What the portion of the negotiation of the service contract may be performed off-line vs. on-line, manually vs. automatically, and should I, as the active service, do it by myself vs. delegating it to a third party?

Let us assume that the service-oriented infrastructure provides for the companion search support, i.e. there is a place in the infrastructure where a 'searcher' can look up for a companion service. Now, we can look at what kind of service are likely be active and what risks are associated with an up-front service contract negotiation versus service contract negotiation within an invocation request. Before we start, I have to mention for clarity that the reason of an active service to search for companions in my interpretation differs from the reason specified by Arnon and Udi. They stay that the active service pattern responses the question: "How can you increase service autonomy and handle temporal concerns?" I believe that the essence of autonomous service is in the independence from other services, i.e. autonomous service does not need to look up for companion services, it can provide offered business functionality by itself, without external help; this is why it can work autonomously, stand alone, in isolation.

It seems to me that active services are the ones whose business tasks are set around organising different business functionality toward one 'common' goal. Actually, different pieces of business functionality may have no idea that they are used to provide for particular goal, i.e. the 'common' goal is not necessary the internal knowledge of the business functionality. The typical candidates for such organisational role are:

• business service that is implemented via process implementation (hereinafter, service-process),
• business service that is implemented as aggregations of other services,
• business service that manages collaboration (e.g., orchestration) of other services.

When we deal with aggregate or composite services, the participants of the aggregation are usually known. That is, we have an opportunity to perform the service contract negotiation up-front, off line and, thus, mitigate the risks of inability to reach the 'common' business goal. When it is a service collaboration, i.e. predefined procedure with one or several business goals, the knowledge of this goal may be as in each of the collaboration participants (type of choreography) as in the organising entity only (type of orchestration). In both cases the participants are pre-known and the service contracts may be agreed up-front as well, i.e. the risk incompleteness for the overall goal may be mitigated (a discussion about reliability of choreography vs. orchestration from the goal attainability may be found here).

A service-process is more interesting for our case. Such service has a business goal that is the business goal of underlining process at the same time but, as any other processes, the service-process does not care how its process actions are implemented and who does it. From another hand, inappropriate provider of the process action, e.g., unreliable, disrespectful, competitive, incompetent, volatile, associated with undesirable side-effects, etc. companion service can easily screw the entire process. In other words, a risk of involving a companion service to provide process action without preliminary due diligence is very risky. Even in the same organisation, if a potential companion service is under different ownership or administrative authority, the process may not blindly relay on such companion service.

Therefore, a service-process that has announced its functional needs to others has one of the following choices:

a) the service-process has all companion service pre-defined with appropriate service contracts for the cost of loosing flexibility of the solution (the flexibility is in the process ability to take an arbitrary provider as the process action implementation),
b) the service-process has only those potential companion services (gathered in some place(s)) that already have appropriate service contracts, i.e. 'trusted' services,
c) the service-process can negotiate service contracts with potential companion services on-the-fly, during the invocation requests of a companion services.

The option c) leads to the risk of search/negotiation failure. Available at the moment potential companion services may be not suitable in some aspects for the service-process. The option a) is clumsy; a lost of flexibility in service-oriented solutions is unacceptable. We have left ourselves with the option b) only.

For this case, the service-process can submit its functional needs to an intermediary or to a third party (within the service-oriented infrastructure) and delegate it the task of negotiation with potential companion services ahead of the service-process execution (or deployment). The only service contract the service-process must have is the contract with the intermediary. In turn, the intermediary becomes an authorised agent for all companion services it represents. In other words, such intermediary becomes a 'trading' or dispatching aggregate service whose task is to find suitable companion services and agree with them on the business functional needs obtained from the service-process.

Summarising the discussion, I can say that the active service has to have service contracts with either pre-defined collection of companion services or a service contract with an intermediate aggregate service responsible for the companion services. In both cases the activities of the active service get narrowed to traditional up-front service contracts with companion services. So, considering the risks in common goal achievement, do we really have a pattern of 'active service' or it is an unrealistic model? Or it is the intermediate aggregate service becomes an active service now...

-----------------------------
BY Michael Poulin
Source:ebizQ

Michael Poulin is an enterprise-level solution architect working in the financial industry in the UK and USA.

He specializes in bridging between Business needs and Technology capabilities with orientation on business and technical efficiency, scalability, robustness and manageability. He writes about service orientation, application security and use of modern technologies for solving business problems. Michael contributes to OASIS SOA standards as an Independent Member; he is listed in International WHO's WHO of Information Technology (Historical Society) for 2001.

Copyright © ebizQ. All rights reserved.

The Future of SOA

As consumers we are accustomed to the end-user experience of the Internet. With HTTP and XML, you don't need to have a specific application on your computer to make use of external data - you can just open a browser window and do a search or visit a particular Web site to find the information you need.
##CONTINUE##
But inside an enterprise, sharing data and applications is far more complex. Enterprise SOA vendors have added advanced tools and enabled capabilities that leverage complex specs, making it more difficult for smaller projects to use these features. Although the software may be based on open standards, it often requires a thorough understanding of a range of standards to integrate the data. For example, a department manager who wants access to customer information from another business unit may find that the data is housed in a proprietary middleware bus. In this case, the only way she can access it is by installing the same middleware on her servers, training staff to manage the software, and paying the vendor fees to maintain it.

These kinds of obstacles don't exist on the Internet, where you can go to sites like Google Maps, create a mashup, and send it to your contacts through Facebook. If you want data, you can go directly to the source via open APIs and use it as you see fit. That same capability is needed in the enterprise. For example, Web Services developers must choose between using a RESTful architecture, which has some limitations regarding security, or traditional Web Services (WS) standards, which provide heavy security but are more complex to deploy. And if a developer adds single sign-on functionality to a RESTful interface, the complexity grows.

What we need for the enterprise - and where we believe SOA is heading - is an interface that allows someone to interact directly with data through standard protocols and simple access management instead of through a heavyweight platform, as well as the ability to select the right tool for the job - Web Services where appropriate and a RESTful approach when required.

Advantages in Going Lighter
By not requiring departments to use a specific enterprise stack for everything they do, productivity can improve considerably. For example, if an employee in another division located in another country needs access to data on another department's system, he should be able to do an HTTP GET (as long as he has the right access control) to retrieve the data he needs in an XML document.

On the developer side, the requirement to federate more and more applications and data across traditional corporate boundaries - and at the same time deliver those new services quickly - already has enterprise IT departments looking for new options. For instance, a project team that is tasked with developing five new services that are to be tested and deployed in two months may find that the complexities of the organization's enterprise platform make it impossible to meet their deadline. If they had a framework that includes data services and identity management, they would be able to cut time to market substantially and make that deadline.

Because faster time-to-market is becoming the overriding criteria for successful application infrastructure projects, SOA frameworks of the future will need to deliver more application infrastructure capabilities in less time - and without unnecessary complexity.

Looking to the Internet
Metadata discovery would also need to be a key part of such a lightweight framework. Many SOA platforms have evolved to include heavyweight repositories for service definitions, which require the service definitions to be separated from the implementations and placed in large registries. One lesson we can learn from the Internet is the benefit of lightweight indices; for example, Google and Yahoo! allow for searching across all of the sources of information without consolidating that information into a single location. We search for information and we are then directed to the source of that information for the latest version. This same structure can be applied to service registries; we can employ a lightweight index of service locations that points us to the actual implementations of those services.

Metadata is still important; we just need to handle it in a more lightweight manner. The metadata about what a service offers (what data it presents and what data it expects) will have to be located with the implementation of the service so the data doesn't get out of sync. Lightweight conventions like WSDL or WADL could be employed to package the metadata along with the resource implementation. And putting all of these locations into a single searchable lightweight index would provide just the right level of centralization without slowing down the innovation. However, there is still some work that needs to be done in this area to promote lightweight standards to address metadata packaging in REST resources.

Leveraging Clouds
Looking ahead, more and more Web Services will be built for and leveraged from a cloud. Enterprise developers will need a framework that enables them to create secure Web Services that can be accessed via the Internet or the cloud. A lightweight service that is deployed in a way that external parties can access it has to provide access control that depends on external identity. This is where identity architectures need to scale out to a global perspective. Some WS-* protocols are targeted at providing a solution for this. However, there's additional work that needs to be done to allow a simplified external identity model to be applied to the REST-style programming model. New identity architectures will need to be defined to secure REST resources for programmatic consumption, just as initiatives like OpenID have done to simplify human-based externalized identity.

Enterprises may also choose to develop and house some applications that provide a competitive advantage internally and house other less mission-critical applications on an external cloud. And, both categories will need to interoperate. For example, a company may use Salesforce.com but need it to interact with customer information located in an internal Oracle or SAP application. A unified security programming model for RESTful resource exposure can provide the developer a consistent way to access resources - regardless of where the resource comes from (inside the corporation or outside). A lightweight security model that can be used both inside and outside the corporation would help in this process.

Currently every SaaS interface has a different non-standard way of controlling access to resources; this makes what could be a simple mashup problem difficult. Combining the data together from multiple sources is the easy part, but getting all of the right credentials together for accessing all of the disparate resources is tricky.

Identity Management Critical
As developers create Web Services that provide access to data to an ever-expanding federated audience, identity management is critical. When users present credentials to access a Web Service, there must be validation that they're part of a larger system that allows them to access what they're requesting - just like when you present a debit card to make a purchase or get a cash advance at the grocery store. If you could only use that card at ATM machines run by the credit card issuer, that would be a heavyweight model; a non-distributed security model. Instead, the card issuer enables you to use the card virtually anywhere, assuring the store of your security credentials to do the transaction.

Similarly, such a distributed model for Web Services enables developers to create greater value by emphasizing the service and not verification of security credentials. While an identity management function doesn't have to be embedded in the offering, the Web Service needs to be able to connect with identity management software through lightweight standards; this enables developers to focus on the service offering.

Greater Mobility
Finally, with the increasing need for Web Services to run on a variety of screens - desktop, laptop, mobile devices, and set-top boxes - Web Services developers need an application infrastructure that is simple enough to accommodate all of those possibilities. The emphasis is on quick access to data and multiple fast reads from a database table with greater intelligence on the edge. Where enterprise-class applications that offer all the "-ilities" were the focus in the past, lightweight, Web-scale applications that can be used on a range of screens - particularly on mobile devices - will continue to grown in dominance.

For example, the iPhone or Blackberry could become a next-generation publishing platform, or perhaps provide contextual intelligence that offers highly targeted location-based advertising or other information relevant to appropriate potential customers. But to create such services, developers must be able to easily leverage data services and identity management capabilities; a lightweight framework that provides both would be ideal.

Demand for Simpler Framework Will Be Addressed
To enable enterprises to meet the ever-growing demand to deliver new secure Web Services and quickly and easily leverage data across the business, a simpler SOA framework specifically designed for smaller projects is needed.

Web scale is the new enterprise class that organizations will all aspire to. As work continues in developing and promoting lightweight standards, we believe that enterprise developers will soon have a simpler platform that helps them significantly speed and simplify Web Service design and deployment.

-----------------------------
BY Ashesh Badani and Jerry Waldorf
Source:Ulitzer

Copyright © 2009 Ulitzer, Inc. - All Rights Reserved.

SOA Definition and Solutions

SOA (Service-Oriented Architecture) topics covering definition, objectives, systems and solutions.
##CONTINUE##
What is Service-Oriented Architecture (SOA)?
SOA is a confusing term because it describes two very different things. The first two words describe a software development methodology. The third word, architecture, is a picture of all the software assets of a company, much as an architectural drawing is a representation of all the pieces that together form a building. Therefore, service-oriented architecture is a strategy that proclaims the intention to build all the software assets in the company using the service-oriented programming methodology.
What is a service?

Services are software chunks, or components, constructed so that they can be easily linked with other software components. The idea behind these services is simple: Technology should be expressed in chunks that business people can understand rather than as an arcane application such as ERP or CRM.

At the core of the services concept is abstraction, the idea that you can assemble software code into a chunk meaningful enough that it can be shared and reused in many different areas of the company. For example, there is a lot of software code that goes into creating an automated task such as sending a query to a credit reporting website to find out if a customer qualifies for a loan. But if the programmers at a bank can abstract all that code to a higher level—that is, take all the code that was written to perform the credit rating check and package it into a single unit called "get credit rating"—the programmers can reuse that chunk the next time the bank decides to launch a new loan product that requires the same information rather than having to write the code from scratch.

Developers create the abstraction by building a complex wrapper around the bundled code. This wrapper is an interface that describes what the chunk does and how to connect to it. It's an old concept that dates back to the 1980s, when object-oriented programming first appeared; the only difference is that today, the ambition for the size and sophistication of these software objects is far more grand.

For example, at telecom company Verizon, the service called "get CSR" (get customer service record) is a complex jumble of software actions and data extractions that uses Verizon's integration infrastructure to access more than 25 systems in as many as four data centers across the country. Before building the "get CSR" service, Verizon developers who needed that critical lump of data would have to build links to all 25 systems—adding their own links on top of the complex web of links already hanging off the popular systems. But with the "get CSR" service sitting in a central repository on Verizon's intranet, those developers can now use the simple object access protocol (SOAP) to build a single link to the carefully crafted interface that wraps around the service. Those 25 systems immediately line up and march, sending customer information to the new application and saving developers months, even years, of development time each time they use the service.

There are many different ways to connect services, such as custom programming links or integration software from vendors, but since 2001, a set of software communication mechanisms known as web services, which are built upon the ubiquitous World Wide Web, have become an increasingly popular method for linking software components together.

What's the difference between SOA and web services?
SOA is the overarching strategy for building software applications inside a company—think of an architectural blueprint—except that in this case, the architecture calls for all the pieces of software to be built using a particular software development methodology, known as service-oriented programming. Web services, meanwhile, are a set of standard communication mechanisms built upon the World Wide Web. Web services are a linking and communications methodology. SOA is an overall IT strategy.
How do I know whether I should adopt SOA as a strategy?

Because it is an architectural strategy, SOA involves much more than merely building software. Creating an architecture based on a portfolio of services asks that CIOs make a compelling case for enterprise architecture, a centralized development methodology and a centralized staff of project managers, architects and developers. It also requires a willing CEO and executive staff to pave the way for IT to dive in to the core business processes of the company. Understanding those processes and getting buy-in on enterprise sharing are the keystones of SOA-based business transformation.

Governance is critical. For services to be reused across the company, there must be a single, centralized software development methodology so that different areas of the business don't build the same service in different ways or use linkages that are incompatible. There must be a centralized warehouse, or repository, so that developers will know where to look for services—and so IT will know who is using them. The services must be well documented so that developers will know what they are for, how to link to them and the rules for using them. (For example, some companies charge fees to use the services and create performance agreements to make sure the services work well and don't put too much load on the corporate network.)

Most companies that have progressed along the path to SOA have created a centralized architecture group to choose processes that will be service enabled and to consult with different areas of the company to build the specific services. The centralized group also creates a convenient mechanism for governance. If all service requests have to go through the architecture group, the service development methodologies, projects and performance agreements can be more easily managed.

The companies that have had the most success with SOA so far are those that always have success with technology: big companies with big IT budgets whose business is technology-based (think telecom and financial services). They also tend to have supportive, technologically sophisticated business leaders. For companies without these advantages, SOA may not be the panacea it’s being made out to be.

For smaller companies, for companies that have made big bets on integrated application suites and for companies that already have solid application integration strategies in place, SOA isn’t a "when," it’s an "if." CIOs need to pursue an SOA strategy carefully because the service development and architecture planning pieces of SOA are distinct but not independent—they need to be considered and executed in parallel. Services built in isolation, without taking into account the architectural and business goals of the company, may have little potential for reuse (one of SOA’s most important benefits) or may fail outright.

What are the advantages of SOA?
First, put the benefits of SOA in perspective. SOA is a scythe that slices through complexity and redundancy. If your company is not large or complex—i.e., more than two primary systems that require some level of integration—it's not likely that SOA will provide much benefit. Lost in all the hype about SOA today is the fact that the development methodology itself brings no real benefit—it's the effects that it has on a complex, redundant infrastructure that bring the rewards. Architects say there is more work involved in creating a good service-oriented application than there is in doing traditional application integration. (Surveys show consistently that SOA is being used for traditional application integration at most companies.) So there is actually an extra cost being generated by SOA development up front. For there to be a benefit from that work, therefore, it must eliminate work somewhere else, because the methodology in and of itself does not create business benefit. Before considering whether SOA has benefits, you first must determine whether there are redundant, poorly integrated applications that could be consolidated or eliminated as a result of adopting SOA. If that's the case, then there are some potential benefits.

To get the entire picture of benefits being sold with SOA, you have to look at it on two levels: first, the tactical advantages of service-oriented development and second, the advantages of SOA as an overall architecture strategy.

Advantages of service-oriented development:
1. Software reuse. If the bundle of code that constitutes a service is the right size and scope (a big if, say SOA veterans), then it can be reused the next time a development team needs that particular function for a new application that it wants to build. For example, a telecom company may have four different divisions, each with its own system for processing orders. Those systems all perform certain similar functions, such as credit checks and customer record searches. But because each system is highly integrated, none of these redundant functions can be shared. Service-oriented development gathers the code necessary to create a version of "credit check" that can be shared by all four systems. The service may be a wholly new chunk of software, or it may be a composite application consisting of code from some or all of the systems. Regardless, the composite is wrapped in a complex interface that hides the complexity of the composite. The next time developers want to create an application that requires a credit check, the developers write a simple link to the composite application. They don't have to worry about linking with the individual systems—indeed, they don't need to know anything about how the code has been bundled or where it comes from. All they need to do is build a connection to it.

In a company that constantly builds new systems that rely on similar functionality—an insurance company with many different divisions, each with slightly different products, for example, or a company that is constantly acquiring new companies—the time saved in developing, testing and integrating that same bit of software functionality can add up.

But reuse isn't assured. If developers in other parts of the company don't know that the services exist, or don't trust that they are well built, or development methodologies differ around the company, the service may languish as a one-off. Companies that get reuse have developed governance mechanisms—such as centralized development teams, a single development methodology and service repositories—to increase the chances for reuse.

But sometimes the service just isn't designed properly. Perhaps it doesn't perform enough operations to be widely applicable across the company, or perhaps it tries to do too much. Maybe the developers didn't take into consideration all the different ways that others might want to use the service in applications. SOA veterans say that sizing services properly—also known as granularity—is as much art as science and that poor granularity can dramatically reduce the possibilities for reuse. Research company Gartner estimates that only 10 percent to 40 percent of services are reused.

2. Productivity increases. If developers reuse services, that means software projects can go faster and the same development team can work on more projects. Integration becomes a lot cheaper (at least 30 percent cheaper, according to estimates by Gartner) and faster, too, taking months off development cycles for new projects. Shadman Zafar, Verizon's senior vice president for architecture and e-services, says his catalog of services lets him skip forming a project team for the development of a phone-line ordering process, because the services necessary to compose the process were already in place. "With point-to-point integration, we would have had a central project team to write the overall integration, and local teams for each of the systems we needed to integrate with. With [the phone-line process], we had a single team that was focused almost entirely on end-to-end testing," he says. That saves time and resources and improves the quality of new applications, because testing is no longer the last hurdle of an exhausting application development process; instead, it's the focus.

3. Increased agility. Even if services will not be reused, they can offer value if they make IT systems easier to modify. At ProFlowers.com, for example, there are no redundant applications or multiple business units clamoring for services. But splitting the flower ordering process into discrete services means each component can be isolated and changed as needed to handle the spikes in demand that occur around holidays, according to ProFlowers CIO Kevin Hall. When ProFlowers had a single, monolithic application handling the process, a single change in the process or a growth in transaction volume (on, say, Valentine’s Day) meant tearing apart the entire system and rebuilding it.

In the new system, a server farm responds to spikes in activity during each phase of the ordering process by transferring storage capacity to the specific service that needs it most. The system is much more predictable now, and there have been no outages since the service-enabled process was rolled out beginning in 2002, according to Hall. "Because we can scale horizontally [more servers] and vertically [splitting up services], I don’t have to buy all the hardware to serve every service at its peak load," he says. "You don’t have to be able to eat the elephant in one bite anymore."

Advantages of an SOA strategy:
1. Better alignment with the business. SOA is the big picture of all the business processes and flows of a company. It means business people can visualize, for the first time, how their businesses are constructed in terms of technology. When IT projects are put in terms of business activities and processes rather than complex software applications, business people can better appreciate and support IT projects. "When I said we have 18 slightly different versions of 'credit check' buried inside different applications in different agencies," says Matt Miszewski, CIO for the state of Wisconsin, "the agency heads could understand why having all those different versions was a problem, and they could support creating a single version that everyone could use." The grand vision for SOA is that when IT fully service enables the major processes of a business, business people will someday be able to take control of modifying, mixing and matching the different services together into new process combinations on their own. But that vision is still many years away.

2. A better way to sell architecture to the business (and IT). Enterprise architecture has long been the concept that dared not speak its name. Some CIOs go to great lengths to avoid using the term with their business peers for fear of scaring, alienating or simply boring them to death. Enterprise architecture has always been a big, difficult and expensive undertaking, and its ROI has often been opaque to the business. Standardizing, mapping and controlling IT assets do not make the business obviously more flexible, capable or profitable. As a result, IT architecture efforts often fail or become completely IT-centric. SOA provides the value to the business that in the old enterprise architecture was rarely more than a vague promise. Reuse, improved productivity and agility in IT and a software infrastructure tuned to specific business processes are the lures to sell an enterprise architecture effort to the business. But remember that architecture is not for everyone. Small companies or highly decentralized companies may not be able to justify a centralized staff of project managers, architects and developers.

How do I balance the need for architecture planning in SOA with the need to prove value to the business quickly?
Architectural planning is time-consuming. Service-oriented development, drawing upon well-known programming principles and widely available technology standards (such as SOAP, HTTP and so on), can happen a lot faster. But the two need to happen in parallel, say experts. "We do development projects as needed, and then on the side we have a longer multiyear project of mapping out the processes and building enterprise-level services," says Kurt Wissner, managing director of enterprise architecture and development for American Electric Power (AEP). "People need to see the benefit of SOA pretty quickly. That’s why I like the project route, because otherwise you don’t have anything tangible to sell to anyone about why you’re doing this."

While it would help to have the architectural plan and the process mapping in place before building the services (to improve the chances for reuse), architecture planning has no short-term payback, which can be devastating. "I tried to boil the ocean at another company and I failed," recalls Wissner. "We did a big multimillion-dollar architecture plan that duplicated what we already had. It didn’t provide much value over traditional point-to-point integration, and we had nothing to show for our efforts. If you start with the entire enterprise, there are too many risks you might fail."

By taking the enterprise planning in smaller chunks at AEP, Wissner can more easily recover from setbacks. "We’ve had hiccups but could take corrective action because the issue wasn’t that big," he says. "If you break it into simpler pieces, it’s more easily digestible."
How do I know which services will provide the most value for my investment?

When in doubt, start with processes that involve customers, directly affect revenue and address a specific pain point in the business. A 2006 survey by the Business Performance Management Institute found evolving customer needs and preferences to be the top driver in business process change or the introduction of new applications, followed by competitive threats and new revenue opportunities. (Cost savings was a distant fourth.) "Externally facing applications are the ones that provide the most business value, and they have a good set of change requirements that come up very often," says Daniel Sholler, vice president of research for Gartner. "If you can improve those applications by 10 percent, it’s better than improving lower-level applications by 50 percent." Of course, adds Sholler, SOA may not provide more value than, say, a good packaged application. "But if it’s something you would have to build yourself anyway, you need to do it service-oriented," he says.

How will SOA affect my IT group?
If you have a decentralized company, be prepared for a struggle. SOA drives centralization. Indeed, it demands it. "You have to have someone heading it up, and you have to have one individual or small team manage the architecture," says Mike Falls, senior system engineer for Fastenal, an industrial and construction supply company. "If each team is left to itself, they may each come up with different ways of building services. You need one group, one set of research and someone to make sure the development groups are sticking to the service development methodology."

As the service portfolio grows, the development process may begin to look like an assembly line. "It becomes a factory," says AEP’s Wissner. "You have these different project teams that you funnel work through, and they can grow and shrink as required."

Once the SOA factory gets ramped up, expect to add more project managers, business analysts and architects as the productivity of the developers increases, says ProFlowers’ Hall. "Two developers can now do the work of six," he says. "That means the architects and project managers are running to keep up with the output of the engineers. We are probably doing 50 percent more work than we did three years ago."

Those programmers need to understand object-oriented programming and distributed applications—and that means an investment in training. According to the CIO/Computerworld survey, only 25 percent of respondents have the staffs they need for SOA—49 percent said they are planning or have training programs in place for current staff to bring them up to speed.

-----------------------------
BY CIO Staff
Source:CIO

© 2009 CXO Media Inc.

SOA's new mission: move workloads in and out of the cloud

Lori MacVittie recently channeled Gartner’s Daryl “G-Man” Plummer in an analysis of the converging roles of SOA and cloud computing.
##CONTINUE##
Essentially, the challenge with cloud computing comes along when you want to move workloads in and out of the cloud, versus entire applications. And Lori and Daryl are very careful to emphasis that point — that many enterprises may not want entire applications moved into the cloud. Pieces are fine. The preferred approach for many organizations seeking the most robust and cost-effective solutions may be hybrid arrangements of clouds and on-premise data centers.

Lori defines a “workload” as a “discrete block of application logic that is self-contained, and can be executed on its own” — such as a function, method, or Web service. The problem the cloud has it that it was never designed to assist in decomposition of monolithic applications into composite processes — “it was designed, for the most part, to run applications,” she says.

So here’s the challenge and here’s where SOA comes into the picture:

“In order to move a “workload” into the cloud you have to decouple it from the application; you have to use the basic principles associated with SOA and decompose the application into its composite processes such that you can distribute those processes in a way that most effectively utilizes the processing power at hand – whether that’s locally or in the cloud. You can’t simply move a monolithic application into the cloud and expect the cloud provider to be able to dig into it and optimize the execution of specific processes. It just isn’t that smart.”

The whole point of SOA, Lori reminds us, is to decompose applications into discrete services so they can be distributed intelligently. “If one service is reused by multiple business processes it can be replicated or moved into the cloud so that it scales appropriately to meet the demands that are placed upon it by other applications.”

SOA was conceived and designed to enable the deployment and consumption of services anywhere, anytime, inside or outside the firewall. Sounds pretty cloudish to me.

-----------------------------
BY Joe McKendrick
Source:ZDNet

Joe McKendrick is an author and consultant with deep knowledge and insights regarding trends and developments in the technology industry. See his full profile and disclosure of his industry affiliations.

© 2009 CBS Interactive Inc. All rights reserved.

Forrester: Only one percent have negative experience with SOA

A new Forrester Research survey of 2,227 IT executives finds that only one percent of current SOA adopters say they have received little or no benefit from the methodology — that’s right, only one percent. Sixty percent said they have seen some benefits.
##CONTINUE##
The survey, conducted while the global economy was in its recent trough (December 2008-February 2009), found that 75% of IT executives and technology decision-makers at Global 2000 organizations said they will be using SOA by the end of 2009.

In addition, 60% of current SOA users are expanding their use of SOA. There appear to have been very few disappointments with a service-oriented approach. About 24% of current SOA users say that it has “delivered most or all of the benefits they expected,” and 36% say that it has “delivered enough of what they expected to justify expanding their SOA adoption.” Only one percent of current SOA users say they have “seen little or no benefit” and are cutting back on SOA efforts.

These results are very good news indeed for SOA proponents. Of course, there’s still plenty of work that needs to be done. At last week’s SOA Summit, Forrester’s John Rymer also talked about the study, noting that 36% saw benefits, but they were still on the weak side. He said that SOA success requires organizational-level adoption, and the “technical tooling is not at that level…. to get the big benefits, we have to start to invest not only in tooling, but also in the organization.”

SOA adoption and acceptance is also far lower among smaller organizations — the threshold seems to be at 1,000 employees.

Forrester’s Randy Heffner, author of the study, says SOA is making a big difference for organizations, calling the recent ‘SOA is Dead’ discussion “quite misguided.” He adds: “No prior industry initiative for IT architecture has had an impact as positive and broad reaching as service-oriented architecture.” In fact, a sizeable number of respondents, 30%, appear to see SOA for all it can be — a vehicle for strategic business transformation.

-----------------------------
BY Joe McKendrick
Source:ZDNet

Joe McKendrick is an author and consultant with deep knowledge and insights regarding trends and developments in the technology industry. See his full profile and disclosure of his industry affiliations.

© 2009 CBS Interactive Inc. All rights reserved.

If you lost in the translation from SCA into SOA...

... do not worry that much, SCA is not about service orientation. Actually, it is not my conclusion - the SCA Assembly Model Specification, v.1.00, dated back to March 2007, clearly says: "A Service represents an addressable interface of the implementation" as well as "Components provide and consume services " Since 2007, we understood that interface is not a service; interface does not provide any business functionality and Real World Effect (RWE). No interface can change the behaviour orientation of a software entity making it service-oriented.
##CONTINUE##
I am writing this BLOG to worn developers about another huge ambiguity coming this time with SCA. It is not a specification for implementation of service-oriented architecture but rather a good specification of component-oriented architecture with Java or WSDL interfaces, i.e. it is Interface-utilising Component Architecture. SCA is about components, not about services. The magic word 'service' is, probably, borrowed form Web Service, which itself is not necessary about Web and definitely not about service but presents a service interface of special type. As we know, SOA is not equal to Web Service though the latter may be used for SOA implementation (among others like RMI, Jini, CORBA, DCOM, etc.).

So, let us leave SOA and services aside and look at the Assembly Model Specification: Extensions for Event Processing and Pub/Sub specification because it is released recently. First, that I am interested in, is to find out how the specification extends Event Processing in the component-oriented implementation. Believe it or not but the specification defines

"• event - a message sent to zero or more parties that contains information about a situation that has occurred
• producer - entity that creates events
• consumer - entity that receives events
"
That is, according to SCA, we can send events, receive events and even filter events. Is this the Extension? Am I reading a SW specification or extracts from Matrix? The Event Processing is associated with event-driven architecture (EDA), for me, at least. I looked into several basic resources about EDA and the only one that mentioned word 'message' was Wikipedia, which said "The first category of sinks can be based upon traditional components such as message oriented middleware". I think that mixing events with messages is very inaccurate and dangerous terminology: some people can take it literally and start 'sending' events... It is odd that the authors of SCA Specification were able to agree on such complex matter as SCA being working for four different global organisations with unique cultures but were not able to avoid a 'bird' language in the standard.

Unfortunately, event/message mess is not anole. According to the SCA Specification "In SCA event processing, component implementations may have zero or more producers and zero or more consumers". If 'zero' producers and 'zero' consumers happen, what may be the state of such component - coma?

Also, the explanation of 'Promotion' such as
"1059 Composite services involve the promotion of one service of one of the components within the
1060 composite, which means that the composite service is actually provided by one of the
1061 components within the composite. Composite references involve the promotion of one or more
1062 references of one or more components. Multiple component references can be promoted to the
1063 same composite reference, as long as all the component references are compatible with one
1064 another
" is not very comprehensive, at least, to me. One more example: "When CompositeX is used as an implementation by a higher-level component, the consumer and producer elements..." does not define what "a higher-level component" is and what the other levels are.

The more serious concerns relate to the SCA component implementation abilities. In particular, statement "An implementation can provide services and it can make references to services provided elsewhere" looks OK at a glance but where this 'elsewhere' is? Is it in the same implementation or in another one? If it is another implementation, don't we have a risk that the implementation can operate under different authority and a direct reference to it is known as a not really good practice (remember directory services in JEE and CORBA)?

Another implementation ability, which totally deviates SCA from SOA, is an aspect of configuration. The SCA Specification declares that the component defines service (even if it is just a service interface) and reference (to another potential service) via component configuration. In SOA, service is the first class 'citizen', component is not, while in SCA the SCA component is the first class 'citizen'.

Besides, I've found additional argument that separates SCA from SOA; it is the aspect of 'reference' of the SCA component. The 'reference' is a real reference to another component, i.e. to its interface. Since reference '...may define the interface, binding(s), target URI(s), intents, policy sets, including details of the bindings', it is the point of full coupling between components. That is, we can forget the principles of service orientation here. An SOA service differs from a component (SCA component in this case) by that the SOA service operates based on the principles of service orientation while the component does not have such constraints.

Finally SCA presents quite interesting concept of 'intent'. It is defined as 'an abstract assertion about a specific Quality of Service (QoS) characteristic that is expressed independently of any particular implementation technology. An intent is thus used to describe the desired runtime characteristics of an SCA construct.' Intent is very "delicate" and important concept and I am glad that SCA expresses it via policies. However, in many places in the SCA Specification, the intents and policies are listed next to each other giving an impression that they are quite different things. It is confusing, especially when intents are mentioned as service-interface elements and policies are mentioned as reference elements; moreover, the intents may be defined by the policy administrators. What intents an interface may have if they are not a set of policies exposed to the user of this interface? Whose policies a reference can specify, its own ones (what for?) or the ones that belong to another service-interface (why they have to be specified in two places?) ?

Reading the SCA Assembly Model Specification: Extensions for Event Processing and Pub/Sub, I could not rid of a feeling that it was written in a hurry to get to the code part as fast as possible. The code is good but it is a hazardous motion in the standard when the entities that described in code are defined with a negligence; it opens a door to all things that can screw any good intentions of the authors, I am afraid.

-----------------------------
BY Michael Poulin
Source:ebizQ

Copyright © ebizQ. All rights reserved.
 

Copyright 2008-2009 Daily IT News | Contact Us