Yes, No, Maybe.
S+S, Software + Services, has many flavors and forms depending on who is asking. Most times it is the ability to use both on-premise software (inside the organization) and out-reach services from the Internet.
One of the scenarios where S+S is also relevant is an organization that uses both internal services and also external services in a single business process.
For example, if we want to discharge a patient from a hospital, we can say that the process uses the following services that the hospital is consuming from the Internet: Issue Discharge Report and Check if patient is detained.
The rest of the services will remain in the organization: Supply Medications and Check for Allergies.
If we would have implemented SOA first, we would have the systems already organized as a set of services and it will be easy to move services to the cloud in stages. This is why SOA makes S+S applicable...
S+S is more like a business model that allows you to choose which services will be maintained be a hosting provider in order to reduce costs.
I know what you are saying. The Middle-Out Approach for SOA has 3 steps in a cycle or at least this was the way it was presented up until now: Expose, Compose and Consume which is applied for every business drive we decide to deal with. However, if we drill down we see that we need 6 steps from which expose is divided into 4 sub-steps of Expose:
- Find the relevant functionalities that are reusable and will participate in the later compose stage for this business drive. This is a place where an architect experience is required and there are not many solutions here. In some projects, this phase is skipped and the result is that no legacy system is exposed as a set of services. This happens because it is easier for developers to write code than read code (At least this is what they say), so reusing old implementations is not that appealing.
- Expose the above functionalities as services: This is the place where the world is divided into two parts: The MS World and the non-MS world. The non-MS functionalities can be developed as web services or exposed using adapters to products like BizTalk 2006 R2. The MS functionalities can be exposed with WSE or even better WCF which support the standards. After talking about WCF, it is pretty easy to see that exposing with WCF is a different experience.
- Build new services that couldn't be exposed from the existing systems. In here products such as the Service Factory can be handy because they make it easier to build new services that comply to standards and design patterns.
- Subscribe to services from the cloud (Internet): Some services that might be part of the business process we'll compose will not be part of our organization because it doesn't make sense to develop them and maintain them.
And in addition to those we have the two next steps of:
- Compose all the services exposed in the previous 4 stages into a business process
- Consume the business process from different new and old clients.
And Voila, we have 6 steps!
Here are the 6 steps in an example of a business drive of treat patient style from the presentation I'm delivering on SOA:






Tens of attendees from Israel are joining me next week to the SOA summit in Redmond. I am really proud that we have so many customers and customers that want to hear what Microsoft has to offer for the short and long term in this important space.

I promise to blog about the new announcements that will take place there.

Wow, it has been quite a while since I last blogged.
I wanted to share some of my experiences in the Architect Summit in Helsinki, Finland where I delivered two sessions on (1) SOA and Software+Services and (2) Modeling, VS Architecture Edition 2008 and DSL Tools.
First Session: A walkthrough with SOA & S+S towards agility! Powered by the Middle-Out Approach. I invite you all to see the recording from here.
It is actually a solo version of a talk I delivered in the past for quite a few times together with Izak Cohen. The talk is about an up-to-date journey towards ESB, SOA and S+S using Microsoft technologies in the SOA space. The journey is told from the eyes of the chief IT architect in an imaginary hospital that goes through the phases of taking its monolithic systems and taking them step by step using SOA towards agility. At the end, after a few iterations using the Middle-Out Approach we see how we start having reusable services and how every change is easily composed in case we exposed the required services earlier.
I will dedicate a post for the Middle-Out Approach which I think is "the most practical way out there today for making SOA happen" as stated in one of the feedbacks I got for the presentation and this is a thing I'm proud that Microsoft is driving.
Second Session: The Matrix, Powered by Microsoft Modeling Framework. The recording for this talk is here.
Pasi Makinen from MS Finland told me that he had heard presentations about Visual Studio Team Architect and the DSL Tools but that this was the funniest talk he had heard about it. I guess this is a compliment :-)
The abstract for the session is: "Models have always been our favorite way to express ourselves on Visio, on white boards or even on a napkin. However, when starting to code, usually the original models become out of date and are never reused. I will introduce the new parts of the Microsoft Modeling Framework and showed how they make models reusable. We will assume the role of the architect of the Matrix (the Movie) and build application, system and deployment diagrams using Visual Studio Architecture Edition 2008. And finally, I will demonstrate how to build Domain Specific Languages (DSL) using the DSL Toolkit."
Here are some screen-shots to let you know what I was talking about:
I will probably deliver this session in the next Developer Academy event in Israel on 27/11/2007, so I invite you all to join.

Before finishing this first post, I owe you some pictures from the site seeing I had the time to do in Helsinki and its surroundings.
Enjoy :-)
