I've been working with a number of clients that use outside-in services, or services that are hosted remotely, but leveraged within one or many internal systems. Typically this is around some ad-hoc business driver, such as using a remote services for B2B or access to vertical applications, such as those leveraged by finance, healthcare, and retail. So, I've been thinking a bit about how you become a services pr I’ve been working with a number of clients that use outside-in services, or services that are hosted remotely, but leveraged within one or many internal systems. Typically this is around some ad-hoc business driver, such as using a remote services for B2B or access to vertical applications, such as those leveraged by finance, healthcare, and retail. So, I’ve been thinking a bit about how you become a services provider, or SOA as a SaaS…an organization that stands up Web services for consumption by others. As the trend to share services continues, you’ll find that many of you are put into this position, as SOAs learn to reach across the Internet and touch each other. Those that design and post services will have to understand a few basic principles, they are: 1. Focus on granular services that are part of a holistic solution. 2. Consider many service externalizations scenarios. 3. Track usage. 4. Quality in the design.Focus on granular services that are part of a holistic solution means that you consider the problem you’re solving, versus just the service you’re implementing. Moreover, you’re willing to provide many services that together will solve a business problem, but at their instance solve a tactical problem. Consider many service externalizations scenarios means that you’re building a service that may be externalized to humans or other computer systems through a variety of interfaces. In essence you’re interface agnostic, understanding that the value of the service will need to be realized within a variety of systems, all having different looks and feels. Track usage. Not to be too big brother, but it’s nice to know who’s using the service and where. Quality in the design. If you’re going to provide services for others you need to understand the quality of that service needs to be impeccable. In essence you’re becoming part of an application that’s unknown to you, thus you need to design that into the service as well as test the service, more so than any application. Not doing so means you’ll be disruptive to those using your service, and your service won’t add value, thus won’t be used. Software Development