Design Considerations for S+S and Cloud Computing

Fred Chong
Microsoft Corp.

Alejandro Miguel
Microsoft Corp.

Jason Hogg
Microsoft Corp.

Ulrich Homann
Microsoft Corp.

Brant Zwiefel
Microsoft Corp.

Danny Garber
Microsoft Corp.

Joshy Joseph
Microsoft Corp.

Scott Zimmerman
Microsoft Corp.

Stephen Kaufman
Microsoft Corp.

 

September 2009

 

Summary: The purpose of this article is to share our thoughts about the design patterns for a new generation of applications that are referred to as Software plus Services, cloud computing, or hybrid computing. The article provides a view into S+S architectural considerations and patterns as they affect common architectural domains such as enterprise, software, and infrastructure architecture.

 

Introduction

Many enterprises have IT infrastructures that grew organically to meet immediate requirements, instead of following a systematic master plan. Organically grown enterprise systems have a tendency to develop into large, monolithic structures that consist of many subsystems that are either tightly coupled or completely segregated (sometimes referred to as a “siloed” system). Typically, these systems have arcane and inconsistent interfaces. Their complexity and inefficiency slows down business innovation and can force IT managers to focus on operational and firefighting processes instead of on how information technology can support the core business. Furthermore, some enterprise IT systems have partially duplicated functions that lead to fragmented and inconsistent views of business information, which affects the ability of an enterprise to make sound financial decisions.

Software plus Services (S+S) is an extension of Software as a Service (SaaS) that offers organizations more options for outsourcing development, management, deployment, and operational aspects of the technologies that run their businesses. S+S works in conjunction with principles of service-oriented architecture (SOA). S+S helps an SOA-enabled enterprise increase its technology choices by providing multiple modes of sourcing, financing, and deploying application software and services. To make informed decisions and take full advantage of the potential benefits of adopting an S+S model, IT architects and decision makers should weigh the business drivers and technical requirements against the economic, regulatory, political, and financial forces that are at work from both inside and outside the company.

This article is based on practical experience that was gained by the Microsoft Worldwide Services consulting organization during the design and delivery of S+S and Cloud-based applications. It provides a view into S+S architectural considerations and patterns as they affect common architectural domains, such as enterprise, software, and infrastructure architecture.

 

SOA, S+S, and Cloud Computing

During the mid-2000s, SOA practices were introduced to help bring sanity to enterprises that were imbued with complex IT infrastructures. Since then, SOA has gone from being a hot industry buzzword to recent pronouncements that SOA is dead. Regardless, SOA instigated key paradigm shifts that remain relevant today.

At its technical core, the key impact of SOA is the set of SOA principles, patterns, and analysis processes that enable an enterprise to inventory and refactor its IT portfolio into modular and essential service capabilities for supporting day-to-day business operations. The key objectives of SOA are to align enterprise IT capabilities with business goals, and to enable enterprise IT to react with greater agility as business needs demand. Some key SOA principles that promote agile IT solutions include loose coupling, separation of concerns, standards-based technologies, and coarse-grain service design.

While SOA helps the enterprise identify key service capabilities and architect its business and IT alignment for agility, S+S provides the computing model for organizations to optimize their IT investments through cloud computing and solutions that are deployed in-house. S+S does not invalidate the need for SOA; instead, it empowers an SOA-enabled enterprise to optimize its technology choices by making available multiple modes of sourcing, financing, and deploying application software and services.

The SOA, S+S, and cloud-computing stack relationship is shown in Figure 1.

Figure 1. Optimizing IT with SOA, S+S, and cloud-computing stack

 

Because there is not one universally correct IT portfolio for every organization, what is best for an organization depends on its current set of business objectives and requirements. For this reason, the S+S computing model helps an enterprise optimize its IT portfolio by making specific technology choices that are based on decision filters such as cost, relevancy to the core mission, user experience and value for innovation, and business differentiation. S+S offers greater choices for the design of effective hybrid distributed architectures that combine the best features of on-premises software (for example, low latency and rich functionality) with the best features of cloud computing (for example, elastic scalability and outsourcing).

Cloud computing refers to a collection of service offerings. Currently, cloud computing includes vendor solutions for:

  • Infrastructure as a Service (IaaS). IaaS usually refers to a computing environment in which dynamically scalable and virtualized computation and storage resources are offered as a service. This service abstracts the number of service consumers from the need to invest in low-level hardware, such as servers and storage devices.
  • Platform as a service (PaaS). PaaS provides operating system and application platform–level abstractions to service consumers. PaaS provides system resource–management functions to schedule processing time, allocate memory space, and ensure system and application integrity within a multitenant environment. PaaS application-development tools enable service consumers to build cloud applications that run on the hosted platform.
  • Software as a service (SaaS). SaaS refers to business and consumer applications that are hosted by third-party service providers. Service consumers might use Web browsers or installed desktop applications to interact with the hosted applications. In some cases, SaaS providers also offer headless (that is, without a UI) Web services so that enterprises can integrate data and business processes with SaaS applications.

Cloud-computing solutions compliment enterprise-managed infrastructures and offer various benefits to businesses, including the following:

  • The ability to allocate resources dynamically, such as additional computing and storage capacity, enables an enterprise to adjust IT expenditures flexibly according to business demands.
  • Transaction and subscription–based cloud platforms allow enterprises to develop innovative application solutions quickly for testing new business and operation models, without huge IT investments.
  • Outsourced solutions reduce ongoing IT costs and the responsibilities of managing and operating nondifferentiating IT assets (which are opportunity costs to the company).

 

Design Considerations

This section provides a summary of the business and technical challenges that a business should consider during the design or adoption of an S+S–based solution. Figure 2 illustrates the frame that is used to organize this document. The frame is organized around specific architectural perspectives and identifies the crosscutting concerns, to provide an end-to-end perspective on the types of scenarios, design considerations, and patterns to consider as part of an S+S strategy.

Figure 2. Architectural-perspectives framework

 

This information provides a basis for evaluating the end-to-end implications of adopting S+S strategies.

Enterprise Architecture

One of the most demanding aspects of the enterprise-architect role is to balance the constantly changing business needs with the ability of the IT organization to meet those needs consistently. S+S introduces new technology-deployment patterns that reduce operational expense by consolidating—and, in some cases outsourcing—IT platforms, applications, or application (business) services. In addition, S+S can enable organizations to integrate systems across the organization with less friction. Organizations can provide information services to existing business relationships, often by combining existing channels.

At the highest level, enterprise architects must establish a means of determining the core competencies of the organization and then establish a process for determining which applications support those core competencies, as well as which should perhaps remain in-house and which should not.

The following is a model that is used by several large organizations:

  • Proprietary and mission-critical systems—Systems that are proprietary or mission-critical in nature or that provide competitive advantages are often considered too important to risk outsourcing to an off-premises service provider. As a result, these systems are usually designed, developed, operated, and managed by the existing IT department of an organization.
  • Nonproprietary and mission-critical systems—Systems that are nonproprietary yet still mission-critical might be developed by another company, but might still be designed, operated, and managed by the existing IT department an organization.
  • Nonproprietary systems—Systems that are nonproprietary and deliver standardized functionality and interfaces are often good candidates for outsourcing to a cloud-service provider if appropriate service-level agreements (SLAs) can be established with the service providers. E-mail, calendaring, and content-management tools are examples of such systems.

This model provides a starting point to evaluate applications and systems, but organizations should take into account their individual organizational differences. For example, if an organization is unable to manage its core systems effectively because of cost or missing expertise, it might consider outsourcing them. Likewise, putting some mission-critical systems in the Cloud might offer additional capabilities at little cost that can offset the drawbacks that are introduced. An example might be allowing access to the system by trusted partners or company branches, without having to build an in-house dedicated infrastructure.

However, simply identifying opportunities for moving applications off-premises is insufficient. To leverage S+S opportunities, decision makers must have a clear understanding of the IT maturity of the organization. This understanding allows them to determine what changes in IT infrastructure and processes should be made to optimize the return on investment (ROI) or cost savings that can be gained through S+S adoption.

Figure 3 illustrates the ease of adoption for S+S at varying levels of IT maturity (maturity model based on “Enterprise Architecture as Strategy”[1]) and demonstrates that without determining the organizational maturity, the envisioned ROI might be incorrect.

Figure 3. S+S impact, depending on IT maturity

 

Software Architecture, Integration Design

Few enterprise applications exist in isolation. Most are connected to other applications and form complex systems that are interconnected through a variety of techniques such as data integration, functional integration, and presentation integration.

In most cases, organizations use a variety of integration techniques, which results in tightly coupled systems that are difficult to separate and replace with off-premises capabilities. Typically, in such cases, the organization either establishes course-grained facades around subsets of functionality within its subsystems or adopts integration technologies that provide a bridge between legacy applications and services that could be hosted locally or off-premises.

When it integrates at the data layer and allows off-premises applications to use the same data as on-premises applications, an organization must consider a variety of factors, such as where the master data should reside. If the data is read-only or reference data, it might be possible to use push-or-pull replication techniques to keep the data synchronized. For business or transactional data, the organization must consider other techniques.

Organizations that use functional SOA-based business services can consider migrating these services to the Cloud, which is discussed in greater detail in the next section. However, in some cases, business applications cannot easily be partitioned into service contract–driven clients and service-provider components. This might be the case when the system involves complex legacy processes and human-driven workflows. In these cases, it might be possible to move the workflow into the Cloud and support a hybrid mode of operation in which the workflow can span both online and offline scenarios.

Traditional atomic approaches to managing transactions might no longer be possible, which would require the organization to examine alternative models that can ensure data consistency. The information-design section of this article describes such processes in greater detail.

Applications that have been developed more recently might use a service-oriented approach to functional integration, which can simplify the adoption of S+S. Applications that use a common service directory might be able to update the location and binding requirements of destination services within the service directory, and the clients might be able to reconfigure themselves dynamically. This can work where a service with the same contract has been relocated off-premises. However, in many cases, the client must interact with a service that has a different contract. In this case, the problem could be mitigated by using service-virtualization techniques[2] by which an intermediary intercepts and transforms requests to meet the needs of the new destination service.

As organizations move applications into the Cloud and become more dependent on services that are provided by multiple service providers, existing centralized message-bus technologies might also be insufficient and, thus, require an organization to consider Internet service bus[3] technologies.

Software Architecture, Application Design

Over the last decade, we have seen many organizations move away from centralized, mainframe-based applications to distributed computing models that are based predominantly on service-oriented and Internet-oriented architectural styles. Applications that are designed according to the principles of service orientation provide a solid foundation for the adoption or integration of S+S applications.

However, we should not assume that this alone is sufficient. Organizations that develop client applications must design these applications to be more resilient when a remote service fails, because remote services are usually outside the control of the consuming organizations. Techniques such as caching of reference data and store-and-forward mechanisms can allow client applications to survive service-provider failures. Additionally, traditional atomic transactions might not be appropriate when interacting with remote services— requiring developers to consider alternative mechanisms, such as compensating transactions.

As a result of services being moved outside of organizational boundaries, the time to access a remote service might also increase. Application developers might need to consider alternative messaging strategies, including asynchronous-messaging techniques. Service providers will almost certainly want to consider using asynchronous-messaging strategies to increase the scalability of their systems.

Alternatively, enabling a client application to interact with alternate service providers depending on their availability and response times might require a client application to resolve the location of such services dynamically and even modify the protocols that are used for interaction. For large organizations that have large numbers of client applications or services that depend on external services, the configuration information must be centralized to ensure consistent management.

Change management requires more attention for S+S applications, because the applications often support multiple tenants. This is further complicated if the application is required to run at or very close to 100 percent availability, which provides little room for upgrades. Rolling updates or application upgrades that use update domains[4] require careful application design, in addition to demanding that the service providers include support for high-availability deployment patterns.

Changes in the design or implementation of a service might inadvertently affect consumers of the services, and client applications might need to be updated to remain functional. Additionally, the client might need to be modified in S+S scenarios in which services are provided by cloud-service providers; therefore, explicit versioning strategies are critical. In some cases, Web-service intermediaries might provide some ability to safeguard against such changes—allowing message transformations to occur seamlessly to clients. Service providers must have a good understanding of client-usage scenarios to ensure that changes in service contracts or behaviors do not result in unexpected changes in client behavior.

Testing of S+S applications also requires careful attention. Client applications must have the ability to simulate different environments—including development, user acceptance, and performance test environments—with the assurance that these environments are configured identically to the production environments.

Established principles, such as separation of concerns, can make it simpler to allow the security model of an application to change— allowing for new authentication and authorization mechanisms with minimal impact on the application.

Architects have traditionally focused on the design of the application and underlying data stores with the assumption that the organization is the only consumer of the application. During the design S+S applications, they can no longer make this assumption, and they must consider multitenancy and different approaches for scaling out database designs.

Software Architecture, Information Design

Information design is associated with the structure, management, storage, and distribution of data that is used by applications and services. Traditionally, enterprise applications have focused on data consistency, transactional reliability, and increased throughput. They have usually relied on relational data models and relational database-management systems that use the atomicity, integrity, consistency, and durability (ACID) principles as the measure of a reliable database design. S+S forces organizations to think about their information-design process very differently.

SOA adoption has lead to the notion of data as a service, where ubiquitous access to data can be offered independently of the platform that hosts the source data. This capability requires operational data stores that can verify and ensure the cleanliness and integrity of the data, while also considering the privacy and security implications for exposing the data.

Designing a service that will run in the Cloud requires a service provider to consider requirements that are related to multitenant applications. Multitenant applications require alternative schema designs that must be flexible, secure, and versioned. In some areas, there has also been a movement toward generalized nonrelational data models that provide greater flexibility to tenant-specific schema changes but leave management of data redundancy and possible inconsistencies to the application. Increasingly, systems are processing semistructured or unstructured data (such as documents and media) that are not well-suited to structured relational data models and, therefore, require generalized data models such as name-value stores and entity stores instead. Helpful are supporting queues, blobs for large amounts of unstructured data, and tables with limited relational semantics.

Services and underlying data structures must be designed to support much greater volumes of transactions and/or they must manage much greater volumes of data than in the past. This makes changes to schema designs and data-partitioning strategies necessary. Partitioning strategies must support scaling out of the underlying databases, usually by functional segmentation or horizontal partitioning. Such strategies, however, might affect the ability to obtain optimal performance. This explains why some high-performance systems are moving away from ACID reliability[5] and toward Basically Available, Soft State, Eventually Consistent (BASE) consistency,[6] as well as toward decoupling logical partitioning from physical partitioning schemes.

Infrastructure Architecture

Typically, computing infrastructure represents a significant proportion of the enterprise IT investment. Before the era of cloud computing, an enterprise did not have many alternatives to spending significant amounts of capital to acquire desktops, server hardware, storage devices, and networking equipment to meet its infrastructure needs. Larger enterprises might have also invested in building and operating private data centers to host their hardware and service personnel.

Now, with IaaS, private cloud services, and various forms of virtualization technology, enterprises have alternatives and are able to reassess their IT-infrastructure investment strategy.

With IaaS, enterprises can choose to pay for computing resources by using transaction or subscription payment schemes. An infrastructure that scales dynamically enables an enterprise to adjust its infrastructure expenditure quickly, according to business needs. When the infrastructure budget evolves into an operating expense that can be increased or decreased as the demand for compute cycles and storage fluctuates, enterprises gain new financial flexibility. Such infrastructure services are useful for e-commerce sites that have spikes in computation needs during peak seasons or time of day, followed by dips in resource usage during other periods. IaaS can simplify the capacity-planning tasks for IT architects, because computing resources can now be added or retired without over- or under-investing in infrastructure hardware.

Additionally, IaaS enables enterprises to be more agile in launching and testing new online-business services. Traditionally, the business would need to weigh the business case of upfront investment in hardware for online-service experiments. Even more challenging were the struggles with internal IT to reconfigure corporate networks and firewalls to deploy the trial services. Internal policy–compliance issues have been a frequent cause of delay for new online-business ventures. Now, IaaS can help expedite the process and reduce infrastructure-related complications.

User desktops can be delivered as a service, and users can access them from any location that has network connectivity to the virtualization service. Server-virtualization technology helps reduce the server-hardware footprint in the enterprise. By using IaaS, an enterprise can derive immediate infrastructure cost savings by replicating virtual server instances to run on the cloud infrastructure as business needs require.

While cloud infrastructure–related services can bring many benefits that were not previously available to enterprises, the advantages do not come for free. IT architects must continue to weigh design considerations that concern availability, scalability, security, reliability, and manageability while they plan and implement a hybrid S+S infrastructure.

Infrastructure service disruptions will ultimately affect the availability of application services. Because a number of higher-level application services might be running on an outsourced cloud infrastructure, an outage at the service-provider infrastructure could affect more than one business function—resulting in the loss of business productivity or revenue in multiple areas. Therefore, enterprises should know whether their infrastructure-service providers can help mitigate such failures. Alternatively, an enterprise might want to use multiple infrastructure-service providers so that it can activate computing resources at the secondary provider in the event of service failure at the primary provider.

When desktop-virtualization technology is delivered through a centralized hosting infrastructure, it is important to consider scalability and performance of the solution. Often, desktop-virtualization services are at peak load during office hours when employees log on and perform office tasks. The load gradually tapers off after-hours. Combining virtualization technology with a dynamically expandable computing infrastructure service can be a good approach when the computational demands of an organization fluctuate.

Infrastructure security has always been part of the defense-in-depth strategy for securing the enterprise. For example, some enterprises rely on IPSec for protecting machine-to-machine communications within the intranet. This mechanism can add another layer of defense to protect against unauthorized information access by non-corporate-owned computing devices. To continue using existing infrastructure-level security mechanisms with cloud-infrastructure services, an enterprise might need to reconfigure its network, public-key, and name-resolution infrastructure.

When the server infrastructure is deployed to run as virtualized instances, IT architects should think about organizing the virtual instances into atomic units, where a service failure is isolated within each unit and does not affect other atomic collections of virtualized services. This infrastructure-design practice enables higher application services to be deployed as atomic units that can be swapped in if the virtualized instances fail to operate in another unit.

When higher-level applications are deployed across a hybrid S+S infrastructure, it can be difficult to debug application failures that occur because of infrastructure malfunction. Traditional network-monitoring and tracing tools that are used within the enterprise might cease to work across the boundaries of corporate and service-provider firewalls. Therefore, an enterprise can request that its cloud-infrastructure providers provide diagnostic tools that can help inspect cloud-infrastructure traffic.

Security

Security has been a key area of enterprise computing focus since the late 1990s, when businesses began using the Internet as a mainstream channel of commerce and customer service. In the current computing era of S+S, the security best practices and the technology developed to serve the business Web not only remain relevant, but are even more important to observe.

S+S security covers a broad spectrum of topics, ranging from the provisioning of identities and their entitlements, to enabling enterprise single sign-on between on-premises systems and cloud services, to protecting data in transit and at rest, to hardening application code deployed on cloud platforms against malware and penetration attacks.

User provisioning is a key task in the life-cycle management of user identities. When an enterprise adopts a cloud service, it must consider how its enterprise users are provisioned with the cloud-service providers. In addition, as a user’s organizational role changes, the identity management processes should ensure that the user’s application permissions are adjusted accordingly at the cloud service. When a user leaves the enterprise, access to the cloud service should also be deactivated. The user provisioning activities for S+S should be automated as much as possible to reduce manual provisioning errors and prevent loss of employee productivity that is due to service-access issues.

Enabling single sign-on (SSO) by using existing corporate identities is a key requirement and priority for many enterprises that adopt cloud services. The reasons are obvious. SSO provides convenience and better application experiences to end users and can reduce security issues that arise from having to manage multiple security credentials. Rationalizing and consolidating multiple identity systems within the enterprise is usually the first step in meeting the SSO challenge. New identity-federation technology can also improve the portability of existing user credentials and permissions and should definitely be a key part of the SSO strategy with cloud-service providers.

Data is critically important in every business. Therefore, an enterprise should set a high bar for ensuring that its business information continues to be secure in the S+S world. The key security issues that concern data are confidentiality and integrity when data is transmitted over the Internet and when information is stored at the cloud-service provider. Security mechanisms such as encryption and signing can help ensure that data is not being viewed or modified by unauthorized personnel.

New security threats, exposures, and mitigation approaches must be factored in to the security strategy for enterprise applications that are developed and hosted on Internet-accessible cloud-computing platforms. The potential security threats range from service disruptions that are Internet hacks to the risk of proprietary business logic in application code and trade-secret content being discovered and stolen. The practice of a secure-by-design security-review process becomes even more crucial during the delivery of applications to run on cloud-computing platforms.

Finally, IT decision makers and implementers should be mindful that any system is only as secure as its weakest link. Therefore, companies should always examine new risk exposures that arise from using cloud providers and take appropriate measures to mitigate those risks. If the weakest link is the outsourced provider, it can invalidate many security measures that the company has put in place.

Management

IT management deals with the end-to-end life-cycle management of software applications and services that are used by the enterprise to accomplish its business objectives. The life-cycle stages include planning, implementing, operating, and supporting an IT portfolio that consists of the hardware, network, infrastructure, software, and services that support day-to-day business operations.

Typically, IT management includes the following activities:

  1. Defining policies to guide project implementation and operation procedures
  2. Putting processes in place to systematize execution
  3. Identifying organizational roles with clearly defined accountabilities
  4. Implementing and maintaining the tools that automate IT-management operations

Best practices for the first three activities can be found in existing industry management frameworks such as the Information Technology Infrastructure Library (ITIL)[7] and the Microsoft Operations Framework (MOF),[8] while architecture principles and IT-management solutions are the key ingredients for automating IT operations.

S+S extends the enterprise IT environment beyond its corporate firewall—not only from a deployed technology perspective, but also from the perspectives of IT roles and accountabilities, operational procedures, and policies that govern the use and operation of deployed software and services.

For example, applications that are outsourced to an SaaS provider are now maintained by administrators and operators who are not employees of the enterprise. In the S+S world, traditional IT roles and accountabilities might need to be collapsed into a single service-provider role that is contractually responsible for the duties that are specified in an SLA. Legally enforceable liability clauses should also be clearly defined to mitigate any negative result that might occur because a service provider cannot perform its responsibilities satisfactorily. Similarly, IT-management processes for resolving user issues and technical problems are now handled by the service provider. Establishing clear escalation procedures and integrating effective communication channels into the end user–support process of the enterprise are vital for the minimization of service disruptions.

Although the enterprise no longer controls the implementation details of the outsourced services, the company should be aware of any of the mechanisms and procedures of the service provider that might affect the accountabilities and liabilities between the enterprise organization and its customers. Some service providers will provide documentation that complies with auditing standards such as SAS 70, which can help the enterprise determine if the IT-management practices at the service provider meet their business and industry requirements.

Enterprise organizations should plan to deploy IT-management solutions for monitoring services that run in the Cloud. The operation strategy should outline the performance indicators and management rules that are required to gain visibility into the performance and availability of the external services. Operational monitoring systems should raise management notifications and alerts, so that any service anomaly can be detected early.

Additionally, both outsourced service providers and enterprises that are developing cloud services should implement operation-related service interfaces to automate management tasks such as provisioning user accounts, setting user permissions, changing service run state, and initiating data backups.

In summary, IT management in the S+S world must continue to embrace the end-to-end strategy of planning, delivering, and operating the IT capabilities that are needed to support business operations. Existing IT-management frameworks are still relevant. Enterprises, however, should consider the impact that arises as they integrate external operation processes, personnel, and tools into the existing IT-management practices.

With external service providers taking responsibility for systems, organizations lose much of the direct control that they used to have over the people, processes, and technology. Instead, the organizations must provide effective management through clearly defined and mutually agreed-upon SLAs, policies and procedures, key performance indicators, management rules, and service-control interfaces. Design for operation is the architecture mantra for delivering manageable software and services. Ultimately, the outsourcing of operational details to cloud-service providers should empower existing IT staff to focus on new, high-priority computing projects that deliver greater business value.

Operations

Operations make up a very specific stage of the IT-management life cycle. It involves the day-to-day activities of monitoring software and services, taking corrective actions when problems arise, managing customer helpdesks to resolve user issues, performing routine tasks such as backing up data, and controlling and maintaining consistent service run states to meet the required quality of service. Operational procedures are governed by IT policies, and the outcome is measured by precise systems and applications health metrics such as availability and response times.

For example, the MOF outlines a best-practices model for these activities. [8]

As enterprises adopt an S+S strategy, they must consider the business impact of outsourcing IT operational roles and responsibilities. Business continuity, liability, and employee and customer satisfaction are all key concerns that must be addressed by establishing clear SLAs with reliable cloud-service providers.

The enterprise should continue to play a proactive role in IT operations for its hybrid software-and-services environment. However, instead of focusing on execution details, enterprises should put monitoring systems in place that enable them to detect technical issues at the outsourced services. Enterprises should also establish operational procedures to ensure that problems are resolved by the service providers as quickly as possible.

Both enterprises and cloud-service providers can increase their S+S operational effectiveness by designing for operational best practices. “Designing for operation” requires architecture and execution discipline over the course of planning, delivering, and operating software and services. Architects should be aware of the transition points in their applications when stability, consistency, reliability, security, and other quality factors are affected, and should include instrumentation features within the applications to notify monitoring tools of impactive events. Architecture concerns and patterns such as application health state, performance counters, management events, logs, and synthetic transactions can help provide operation-ready software and services.

During their evaluation of a cloud service, enterprises should determine if the service providers offer application-performance information and operation service interfaces that can be consumed by standard off-the-shelf IT monitoring solutions. Enterprises should also architect their systems so that the failure of a service is compartmentalized. Only the parts of the solution that are dependent on that service should be affected. This operational strategy helps maximize business continuity.

 

Conclusion

S+S brings new opportunities for everyone. It provides new options for optimizing business and IT assets, and enables organizations to save cost, increase productivity, innovate, and reach new markets.

There are three main ways to think about extending the current portfolios of on-premises technology with cloud computing: consume the Cloud, use the Cloud, and embrace the Cloud:

  • Consume the Cloud is fundamentally about an enterprise outsourcing applications and IT services to third-party cloud providers. The key business drivers that push enterprises to consume online services are reducing IT expenses and refocusing valuable bandwidth on enabling core business capabilities. Cloud providers can usually offer commodity services cheaper and better because of their economy of scale. They can pass-on the cost savings and efficiency to enterprise customers. For Microsoft customers, some good examples are the Microsoft Business Productivity Online Suite (consisting of Exchange Online and Office SharePoint Online), CRM Online, and Live Meeting services.
  • Use the Cloud enables enterprises to tap into cloud platforms and infrastructure services and get an unlimited amount of compute and storage capacity when they need it, without having to make large, upfront capital investments in hardware and infrastructure software. Such a utility computing model gives enterprises more agility in acquiring IT resources to meet dynamic business demands. In addition, by using cloud services, enterprises can avoid affecting the existing corporate infrastructure and speed up the deployment of Web-based applications to support new business initiatives that seek closer communication with customers and partners. For Microsoft customers, some good examples include Windows Azure and SQL Azure.
  • “Embrace the Cloud” occurs when enterprises deploy technology that enables them to offer cloud services to their customers and partners. Service-oriented enterprises are best positioned to take advantage of this model by transforming their core business assets into information cloud services that differentiate them from their competitors. For Microsoft customers, on-premises technologies such as the BizTalk Server Enterprise Service Bus Toolkit can integrate data feeds and orchestrate workflows that process information exchange via cloud services.

 

Acknowledgments

The authors would like to thank the following reviewers: Tim O’Brien, Rob Boucher Jr., and Sharon Smith.

Resources

Meier, J.D., Alex Homer, David Hill, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, and Akshay Bogawat. Microsoft patterns & practices Application Architecture Guide 2.0: Designing Applications on the .NET Platform. January 15, 2008. (See Chapter 13, “Service Layer Guidelines,” and Chapter 18, “Services.”)

References

1 Ross, Jeanne W., Peter Weill, and David Robertson. Enterprise Architecture as Strategy: Creating a Foundation for Business Execution. Boston, MA: Harvard Business School Press, 2006.

2 Skonnard, Aaron. “Service Virtualization with the Managed Services Engine.” MSDN Magazine, May 2009.

3 Ferguson, Donald F., Dennis Pilarinos, and John Shewchuk. “The Internet Service Bus.” The Architecture Journal, MSDN, October 2007.

4 Khalidi, Yousef A. “Architecting Services for Windows Azure.” Professional Developers Conference 2008 (PDC2008), 2008, Slide 15.

5 Bain, Tony. “Is the Relational Database Doomed?” ReadWriteEnterprise, February 12, 2009.

6 Pritchett, Dan. “BASE: An Acid Alternative.” ACM Queue, July 28, 2008.

7 ITIL®. “Information Technology Infrastructure Library.” Official ITIL® Website, 2009.

8 Microsoft Corporation. “Microsoft Operations Framework.” Microsoft TechNet, 2009.

About the Authors

Fred Chong is working on new and emerging market solutions, integrating mobile phones, software, and cloud services to improve the standard of living and productivity of citizens in developing countries.

Alejandro Miguel, Jason Hogg, and Joshy Joseph are architects inside the Solution Engineering team within the Worldwide Services Office of the CTO.

Ulrich Homann is the Chief Architect for WorldWide Enterprise Services.

Brant Zwiefel is a business architect in the Microsoft Services— Service Lines and Marketing team.

Danny Garber is a U.S. Azure Community Lead Architect within the Architecture Team of the CTO.

Scott Zimmerman is an SOA and BizTalk Solutions Architect in the U.S. Mid-Atlantic District who advises customers on S+S.

Stephen Kaufman is a delivery architect who focuses on middle-tier technologies with Microsoft Consulting Services.

 


Follow up on this topic

 

Rate this content 

Design-Time Selection of Web Services

for Composite Applications

Shrikant Mulik and Manish Godse

 

The adoption of service-oriented architecture (SOA) in an organization helps the development of new composite applications by reusing services, instead of having to build the applications from scratch. The services could be available internally in the organization or could be offered by external agencies, such as Software as a Service (SaaS).

We propose a nine-step approach toward design-time selection of Web services:

  1. Identify the candidate Web services.
  2. Establish selection parameters.
  3. Classify the parameters as eliminating parameters and evaluation parameters.
  4. Collect data about all available services on the selected parameters.
  5. Disqualify candidate services against eliminating parameters.
  6. Assign weights to evaluation parameters.
  7. Score each qualified candidate service on a scale of one to five.
  8. Compute the composite score of each service as a weighted average.
  9. Select the Web service that has the highest composite score.

Let us consider a case in which an application architect is developing a composite application for the quality-management system in the U.S.-based operations of a global enterprise. The architect has to select one Web service that provides audit-management functionality. As a first step, the architect has identified five candidate Web services. The architect has then established the following 19 parameters, which are grouped into the following five categories:

  1. Functional contract—Names of operations, and details of input and/or output messages for each of the operations
  2. Quality of service—Response time, throughput, reliability, availability, accessibility, and interoperability
  3. Security of service—A security protocol (for example, WS-Security), use of a digital signature (yes/no), use of encryption (yes/no), and the type of security token that is used (for example, X.509 and Kerberos)
  4. Technical details—A network protocol (for example, HTTP and JMS), a messaging style (RPC or document), an encoding style (SOAP-encoded or literal), and the nature of composition (atomic or composed)
  5. Commercials—One-time cost, annual ongoing cost, and service- level-agreement (SLA) commitments

Out of these 19 parameters, the architect classified all parameters from functional contract and security of services categories as eliminating parameters. She noted that for eliminating parameters, the requirements are definitive and rigid and she can simply disqualify those candidate services that don’t fulfill these requirements. She then went ahead and collected data for all the parameters for all candidate services. She needed to disqualify two candidate services, one for not using required WS-Security protocol and other one for not using digital certificate (as required). All other three services survived the qualification test against eliminating parameters.

Next the application architect assigned weights to evaluation parameters. She used Analytic Hierarchy Process (AHP) to prioritize the parameters from the stakeholders’ point of view. Following up the last three steps led to one of the web services receiving the highest composite score. That web service was then selected during the development of Global Quality Management System.


Shrikant Mulik ( Shrikant.Mulik@lntinfotech.com) is Lead Consultant at L&T Infotech, Mumbai.

Manish Godse ( manishgodse@iitb.ac.in) is a Research Scholar at the Indian Institute of Technology (IIT), Bombay.

Speed Up to the Next Level

of Enterprise Architecture

Mario Fraiß and Erwin Zinser

 

In the future, the terms adaptability, flexibility, and agility should form the starting point for all considerations that concern the planning of integrated and automated IT infrastructure environments.

Furthermore, enterprise-architecture (EA) design concepts such as SOA and SOI have to be carefully considered as mandatory requirements for building a so-called Intelligent Enterprise Architecture (IEA). The upcoming target is the creation of a mash-up between fully automated services and specifically placed decision points that are controlled by humans.

As a result of the permanently increasing automation level within automated IT infrastructure environments, it is necessary to discuss and scrutinize the advantages and disadvantages. Otherwise, we might end up in a fictional scenario in which computers could take control.

Primarily, we demand the intelligent use of available business knowledge, so that the intellectual capital that is thus obtained might subsequently be used to provide optimum support for the business and its corresponding business processes. Additionally, we have to cope with permanently changing requirements in the field of organizational and infrastructural management.

This new and changed focus of modern enterprise architectures has to be followed by realigned developmental techniques and methods and applied by future-oriented enterprise architects.

We have to build solutions for complex event processing and the associated event and process monitoring. Moreover, these developments can establish the possibility of realizing independent, dynamic instantiation of problem-solving processes. To reach this fantastic vision, we introduce the approach of the IEA.

This approach was primarily developed on the basis of an analysis of current EA concepts and the consistent application of service orientation at each layer of the respective framework that was under consideration. In fact, various different views from the world of industry and technology were examined.

As shown in Figure 1, the core components of the IEA are communication, information, infrastructure, and processes. These subsystems have to concentrate on the central competencies of the whole enterprise to guarantee a fully functional and business- supporting environment.

In the course of a research project, we set up a virtualized fictitious company that we used as a prototypical scenario to check out the validity of our concepts. In conclusion, we are now able to demonstrate that the approach to induce the IEA design paradigm works perfectly. These consolidated findings might be seen as a successful, pioneering step in the area of cutting-edge EA design principles.


Mario Fraiß ( mario@fraiss.at,http://www.mariofraiss.com) is the founder and CEO of FRAISS – IT Consulting & Media Design, an Austrian technology-consulting company that specializes in developing innovative business solutions that are based on Microsoft technologies.

Erwin Zinser ( erwin.zinser@fh-joanneum.at, http://www.entology.eu) is Professor of Enterprise Architecture Design at the FH JOANNEUM University of Applied Sciences, Department of Information Management, in Graz, Austria.