NEWS AT SEI
This article was originally published in News at SEI on: April 1, 2007
Government and commercial organizations have initiated large-scale efforts to migrate rapidly toward network-centric operations. This involves moving and sharing information in an agile manner among personnel and systems with the network as a central enabling mechanism. This series of columns identifies challenges of developing network-centric operations related to three specific aspects of the migration: technology challenges, organizational challenges, and programmatic challenges within government organizations. This column focuses on technology challenges—specifically on those related to service-oriented architecture (SOA), a key enabling technology for migration to network-centric operations.
We focus on the SOA paradigm because it is having a substantial impact on the way software systems are developed. Organizations as diverse as the U.S. Department of Defense, federal agencies, banks, and health care providers are focusing on SOAs as a way to achieve interoperability among systems and agility within business practices. Although significant progress has been made, current efforts have been evolving in many directions without a central focus. As a result, there is a danger that important research needs will be overlooked while efforts focus on issues of peripheral long-term interest.
We have been addressing the need for a long-term SOA research agenda through an SEI independent research and development project that leverages the thinking of an international team of academic and corporate researchers. The team has developed a draft research agenda with a set of research challenges related to business, operations, engineering, and cross-cutting concerns. This research agenda helps to sensitize practitioners to critical unsolved problems and to focus researchers on the highest-payoff issues. We hope that the research agenda will lead to the establishment of a longer-term community of interest.
Team members have presented this draft research agenda at workshops at three international conferences—the Conference on Software Maintenance and Reengineering (CSMR 2007), Interoperability for Enterprise Software and Applications (I-ESA 2007), and the International Conference on Software Engineering (ICSE 2007), as well as at Canada’s Consortium for Software Engineering Research (CSER). At each of these conferences, participants discussed the papers presented in terms of how they contribute to the research agenda. The research agenda is currently being refined based on input from these forums.
The rest of this article highlights at a high level a selection of the research challenges of the solution space. A more detailed version of the draft research agenda can be found in the conference proceedings [Kontogiannis 07]. The revised research agenda will be published as an SEI technical note in Fall 2007.
Context for SOA Research Agenda
Service orientation cuts across the enterprise and traditional domains. Because different groups focus on different aspects of SOA, a comprehensive research agenda requires factoring in the perspectives and needs of groups across the enterprise. Software engineers focus on functional requirements, components, integration techniques, messaging, tools, development environments, and middleware. Business people focus on implementing business strategies, enabling leaner IT departments, facilitating agile process models, and driving new products. Operational users are concerned with transparency, flexibility, ubiquitous access to services, and applications that ease their lives (e-government, e-health, entertainment).
Figure 1 illustrates the context for understanding SOA research issues. The top part of the figure illustrates an idealized SOA-adoption setting in which an organization’s business drivers, context, and application domain frame the problem space. The middle part of the figure illustrates the development of a service strategy. A service strategy defines the goals and objectives for adoption of SOA as well as the development of an SOA strategy that takes into account business and engineering drivers. The bottom part of the figure illustrates the solution space that requires decisions in the domains of engineering, business, and operations, as well as cross-cutting issues. The research agenda focuses on challenges in the solution space.
Figure 1: Context of SOA Research Agenda
The business domain deals with the form and the impact that service orientation may take in a given organization, application domain, or context. Drivers for service-oriented systems in this domain include the need to be on demand, customizable, trusted, compliant, agile, and measurable. Figure 2 illustrates the major categories of business issues.
Figure 2: SOA Business Issues
Business-related research issues include
- techniques to establish and document the business case for service orientation
- techniques for strategy selection—evaluation of fit of strategy with current and future enterprise planning; strategic business process reuse, operations support; best match for business drivers; domain and context
- mapping business processes to services
- techniques for service identification—methods and models for the selection of appropriate services for a given domain
- techniques and processes to support the strategic reuse of legacy components and services
- analytic methods for service evaluation—how to evaluate if a service fits certain business needs
- techniques and processes for establishing relations between business models and service models
- investigation of industry and domain-specific standards for business and service modeling
- processes to support the adaptation of services to meet changes in business processes
- models for workforce allocation—alignment of people across organizations to implement agile business processes, collection and analysis of data for workforce management and productivity optimization
- investigation of models for contract pricing and negotiation in an on-demand service setting
- models for organizational structures in SOA environments
- patterns for roles and responsibilities
- methods for assessing the effectiveness of services
The operations domain deals with the operation, evaluation, and optimization of service-oriented systems. Operational drivers include the need for service-oriented systems to be ambient, user friendly, high impact, pervasive, and adoptable. This domain includes issues of monitoring, adoption, and support of deployed service-oriented systems. Figure 3 illustrates operations issues at a high level.
Figure 3: SOA Operations Issues
Research challenges of SOA operations include
- techniques for monitoring of business processes in an SOA environment
- monitoring of SOA operations—self-healing systems, instrumentation, diagnostics, logging, dynamic configurations of large-scale systems
- techniques for resource allocation and configuration management in an SOA environment
- techniques and methods for problem management in an SOA-enabled organization
- techniques and models for the specification and dissemination of service-level agreements
- investigation of requirements for portals and collaboration environments
- analysis and models of customer-adoption processes
- investigation of methods for evaluating and assessing service usability
- issues and models related to the adoption and advertisement of services
The engineering domain deals with the engineering aspects of the service-oriented system life cycle. Some of the driving characteristics for service-oriented systems in this domain are reliability, security, openness, robustness, efficiency, and testability. Issues include process models that can be used to build service-oriented systems, requirement models for denoting functional and non-functional aspects, platform- and computational-independent architectural abstractions, design patterns, logging, model-driven code generation, verification, testing, and maintenance. Figure 4 illustrates the high-level engineering issues.
Figure 4: SOA Engineering Issues
Selected engineering research issues include
- process and life cycle
- development processes and methodologies for service-oriented systems
- service-oriented system lifecycle issues—managing a continuous running system in a distributed setting with distributed and diverse stakeholders
- modeling and management of non-functional, soft, evolvable requirements—conflicting requirements, usability, adoption, adaptability, continuous evolution
- requirements specification, modeling, and management from the unique perspectives of service provider, service consumer, and infrastructure developers
- service selection
- service-selection criteria—reliability, performance, risk
- service-evaluation techniques
- models to support strategic reuse
- service definition and categorization
- taxonomy and repositories of best practices for the definition and classification of services
- guidelines for design decisions—e.g., appropriate granularity of services to be used
- techniques and models for the syntactic and semantic description of services
- architecture and design
- modeling of the dynamic runtime architecture of an SOA system
- features and properties for next-generation frameworks for development of service-oriented systems
- architectural styles for service-oriented systems
- architectures for data integration in service-oriented environments—mediation, consolidation, ownership, semantics, metadata
- communication/connectors—synchronous, asynchronous
- styles and design decisions that favor certain non-functional requirements—design for security, performance
- architectures for service types
- data services (information as a service)
- business services
- infrastructure services
- design patterns for service-oriented systems
- design for personalization, context awareness, and adaptation—time zones, language
- design for runtime semantic-based discovery and composition
- relationship between product lines and service-oriented systems—services as core assets, variability points for service providers
- protocol mediation and wrapping in multi-protocol environments
- model-driven approaches—platform-independent models, platform-specific models, template-based code generation
- language extensions to support service-oriented development
- exception handling
- tools and products
- integrated development environments to support service-oriented development
- tools for logging, monitoring, and diagnostics
- evaluation guidelines for tool and product support
- support for service choreography and orchestration
- collaboration tools in distributed-development environments
- infrastructure testing—messages, specifications, model properties, deployment descriptors
- functional service testing—white-box and black-box testing of services that consider all potential compositions
- integration testing—transaction management, quality of service, load/stress testing, composition, workflow simulators, orchestration, versioning, monitoring, and regression testing
- system testing in dynamic environments
- simulation and what-if analysis testing
- acceptance testing—possibly more diverse that typical acceptance testing
- practices for service providers to support system testing of their consumers—parallel services for testing, test cases, test data
- establishing testbeds and benchmarks
- pre-start checks to ensure that all required components and configurations are properly set
- techniques for multi-platform support configurations
- techniques for context and location-awareness support
- maintenance and reengineering
- evolution patterns
- dependency and impact analysis
- infrastructures for change control and management
- tools, techniques, and environments to support maintenance activities
- multi-language system analysis and maintenance
- reengineering processes
- tools for the verification and validation of compliance with constraints
- round-trip engineering in service-oriented systems
- resource allocation
There are a number of issues that have an effect on all domains. Examples of such issues are governance, training and education, social and legal issues, and people skills. Figure 5 illustrates the high-level cross-cutting issues.
Figure 5: SOA Cross Cutting Concerns
Selected cross-cutting issues include
- techniques and processes to model policy, risk, and trust and to ensure that a service acts on requests that comply with claims required by policies
- investigation and compilation of repositories and guidelines of best practices for compliance monitoring in given domains
- social and legal issues
- social and legal issues related to the deployment and use of services
- legal compliance
- roles of service orientation in social computing
- people skills/capital
- skills required to develop, use, and maintain a service-oriented system
- matching needed services with user skills and abilities
- application domains
- investigation of application domains such as health care, government, finance, banking, electronics, telecommunications, and automotive, and potential impact
- establishing industry- and domain-specific standards for data, services, business processes, best practices, and performance indicators
- enabling factors
- analysis of technology issues as an enabler for service orientation
- stakeholder management
- techniques to mediate different and diverse stakeholders’ needs, requirements, and views
- training and education
- establishing the area of services science
- investigating and developing appropriate university curricula
In this overview, we provide an initial classification of research issues in three domains—business, engineering, and operations, plus a set of cross-cutting concerns. We believe that the SOA approach will have a significant impact on software engineering in the future. However, there must be a clear understanding of what it can and cannot do as well as a roadmap for its future evolution.
The next steps for this work are to obtain additional feedback from research and practitioners on the classification of research issues and their validity. After we process this feedback, we will develop a more detailed research agenda to help guide both practitioners and researchers and to help to lead to the establishment of a longer-term community of interest.
Kontogiannis, K; Lewis, G.A.; Smith, D.B.; Litoiu, M.; Müller, H.; Schuster, S.; & Stroulia, E. “The Landscape of Service-Oriented Systems: A Research Perspective. SDSOA 2007: International Workshop on Systems Development in SOA Environments.” In Proceedings of International Conference on Software Engineering (ICSE 2007), Minneapolis, MN: May 2007.
About the Authors
Dennis Smith is the lead for the SEI Integration of Software Intensive Systems (ISIS) Initiative. This initiative focuses on addressing issues of interoperability and integration in large-scale systems and systems of systems. Earlier, he was the technical lead in the effort for migrating legacy systems to product lines. In this role he developed the method Options Analysis for Reengineering (OARS) to support reuse decision-making. Smith has also been the project leader for the CASE environments project. This project examined the underlying issues of CASE integration, process support for environments and the adoption of technology. Smith has published a wide variety of articles and technical reports, and has given talks and keynotes at a number of conferences and workshops. He has an MA and PhD from Princeton University and a BA from Columbia University.
Grace Lewis is a senior member of technical staff at the Software Engineering Institute (SEI) of Carnegie Mellon University (CMU), where she is currently working in the areas of constructive interoperability, COTS-based systems, modernization of legacy systems, enterprise information systems, and model-driven architecture. Her latest publications include several reports published by Carnegie Mellon on these subjects and a book in the SEI Software Engineering Series. Grace has more than 15 years of experience in software engineering. She is also a member of the technical faculty for the Master's in Software Engineering program at CMU.
The views expressed in this article are the author's only and do not represent directly or imply any official position or view of the Software Engineering Institute or Carnegie Mellon University. This article is intended to stimulate further discussion about this topic.