Service-oriented modeling

Last updated

Service-oriented modeling is the discipline of modeling business and software systems, for the purpose of designing and specifying service-oriented business systems within a variety of architectural styles and paradigms, such as application architecture, service-oriented architecture, microservices, and cloud computing.

Contents

Any service-oriented modeling method typically includes a modeling language that can be employed by both the "problem domain organization" (the business), and "solution domain organization" (the information technology department), whose unique perspectives typically influence the service development life-cycle strategy and the projects implemented using that strategy.

Service-oriented modeling typically strives to create models that provide a comprehensive view of the analysis, design, and architecture of all software entities in an organization, which can be understood by individuals with diverse levels of business and technical understanding. Service-oriented modeling typically encourages viewing software entities as "assets" (service-oriented assets), and refers to these assets collectively as "services." A key service design concern is to find the right service granularity both on the business (domain) level and on a technical (interface contract) level.

Several approaches have been proposed specifically for designing and modeling services, including SDDM, SOMA and SOMF.

Service-oriented design and development methodology

Service-oriented design and development methodology (SDDM) is a fusion method created and compiled by M. Papazoglou and W.J. van den Heuvel. [1] The paper argues that SOA designers and service developers cannot be expected to oversee a complex service-oriented development project without relying on a sound design and development methodology. It provides an overview of the methods and techniques used in service-oriented design, approaches the service development methodology from the point of view of both service producers and requesters, and reviews the range of SDDM elements that are available to these roles.

An update to SDDM was later published in Web Services and SOA: Principles and Technology by M. Papazoglou. [2]

Service-oriented modeling and architecture

IBM announced service-oriented modeling and architecture (SOMA) as its SOA-related methodology in 2004 and published parts of it subsequently. [3] SOMA refers to the more general domain of service modeling necessary to design and create SOA. SOMA covers a broader scope and implements service-oriented analysis and design (SOAD) through the identification, specification and realization of services, components that realize those services (a.k.a. "service components"), and flows that can be used to compose services.

SOMA includes an analysis and design method that extends traditional object-oriented and component-based analysis and design methods to include concerns relevant to and supporting SOA. It consists of three major phases of identification, specification and realization of the three main elements of SOA, namely, services, components that realize those services (aka service components) and flows that can be used to compose services.

SOMA is an end-to-end SOA method for the identification, specification, realization and implementation of services (including information services), components, flows (processes/composition). SOMA builds on current techniques in areas such as domain analysis, functional areas grouping, variability-oriented analysis (VOA) process modeling, component-based development, object-oriented analysis and design and use case modeling. SOMA introduces new techniques such as goal-service modeling, service model creation and a service litmus test to help determine the granularity of a service.

SOMA identifies services, component boundaries, flows, compositions, and information through complementary techniques which include domain decomposition, goal-service modeling and existing asset analysis. The service lifecycle in SOMA consists of the phases of identification, specification, realization, implementation, deployment and management in which the fundamental building blocks of SOA are identified then refined and implemented in each phase. The fundamental building blocks of SOA consist of services, components, flows and related to them, information, policy and contracts. [4]

Service-oriented modeling framework (SOMF)

SOMF has been devised by author Michael Bell as a holistic and anthropomorphic modeling language for software development that employs disciplines and a universal language to provide tactical and strategic solutions to enterprise problems. [5] The term "holistic language" pertains to a modeling language that can be employed to design any application, business and technological environment, either local distributed, or federated. This universality may include design of application-level and enterprise-level solutions, including SOA landscapes, cloud computing, or big data environments. The term "anthropomorphic", on the other hand, affiliates the SOMF language with intuitiveness of implementation and simplicity of usage.

Discipline-Specific Modeling Process

SOMF is a service-oriented development life cycle methodology, a discipline-specific modeling process. It offers a number of modeling practices and related disciplines that contribute to a successful service-oriented life cycle development and modeling during a project. The image below illustrates the major elements that identify the “what to do” aspects of a service development scheme. These are the modeling pillars that will enable practitioners to craft an effective project plan and to identify the milestones of a service-oriented initiative—either a small or large-scale business or a technological venture.

Service-Oriented Modeling Framework (SOMF) Processes, Artifacts, and Best Practices SOMF-3.jpg
Service-Oriented Modeling Framework (SOMF) Processes, Artifacts, and Best Practices

SOMF Building Blocks

Furthermore, the video clip below, depicts the three SOMF building blocks, segments that drive the service-oriented modeling process:
1. Practices and Modeling Environments. These are the two overlapping Abstraction and Realization Practices that are implemented in three service-oriented modeling environments: Conceptual Environment, Analysis Environment, and Logical Environment.
2. Modeling Disciplines. Each service-oriented modeling environment is driven by a related discipline: Conceptual Architecture Discipline, Service Discovery & Analysis Discipline, and Logical Architecture Discipline.
3. Artifacts. This SOMF segment identifies the chief artifacts required for each modeling environment.

Service-Oriented Modeling Framework (SOMF) Three Segments (while running stop to review in details)

See also

Related Research Articles

Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. The term is sometimes used broadly to refer to "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying" the software, or more specifically "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

A modeling language is any artificial language that can be used to express data, information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure Programing language.

<span class="mw-page-title-main">IDEF</span> Family of modeling languages

IDEF, initially an abbreviation of ICAM Definition and renamed in 1999 as Integration Definition, is a family of modeling languages in the field of systems and software engineering. They cover a wide range of uses from functional modeling to data, simulation, object-oriented analysis and design, and knowledge acquisition. These definition languages were developed under funding from U.S. Air Force and, although still most commonly used by them and other military and United States Department of Defense (DoD) agencies, are in the public domain.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

<span class="mw-page-title-main">Computer-aided software engineering</span> Software Quality Engineering Practices

Computer-aided software engineering (CASE) was a domain of software tools used to design and implement applications. CASE tools were similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CASE tools were intended to help develop high-quality, defect-free, and maintainable software. CASE software was often associated with methods for the development of information systems together with automated tools that could be used in the software development process.

In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provided to the other components by application components, through a communication protocol over a network. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. SOA is also intended to be independent of vendors, products and technologies.

Domain engineering, is the entire process of reusing domain knowledge in the production of new software systems. It is a key concept in systematic software reuse and product line engineering. A key idea in systematic software reuse is the domain. Most organizations work in only a few domains. They repeatedly build similar systems within a given domain with variations to meet different customer needs. Rather than building each new system variant from scratch, significant savings may be achieved by reusing portions of previous systems in the domain to build new ones.

<span class="mw-page-title-main">Enterprise architecture framework</span> Frame in which the architecture of a company is defined

An enterprise architecture framework defines how to create and use an enterprise architecture. An architecture framework provides principles and practices for creating and using the architecture description of a system. It structures architects' thinking by dividing the architecture description into domains, layers, or views, and offers models - typically matrices and diagrams - for documenting each view. This allows for making systemic design decisions on all the components of the system and making long-term decisions around new design requirements, sustainability, and support.

Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing concepts.

Service-orientation is a design paradigm for computer software in the form of services. The principles of service-oriented design stress the separation of concerns in the software. Applying service-orientation results in units of software partitioned into discrete, autonomous, and network-accessible units, each designed to solve an individual concern. These units qualify as services.

Brian Henderson-Sellers is an English computer scientist residing in Sydney, Australia, and Professor of Information Systems at the University of Technology Sydney. He is also Director of the Centre for Object Technology and Applications at University of Technology Sydney.

Business-driven development is a meta-methodology for developing IT solutions that directly satisfy business requirements. This is achieved by adopting a model-driven approach that starts with the business strategy, requirements and goals, and then refines and transforms them into an IT solution. The transformation is partially achieved by applying model transformations. Due to the alignment of the business layer and the IT layer, it is possible to propagate changes of the business automatically to the IT systems. This leads to increased flexibility and shorter turnaround times when changing the business and adapting the IT systems.

<span class="mw-page-title-main">Enterprise modelling</span>

Enterprise modelling is the abstract representation, description and definition of the structure, processes, information and resources of an identifiable business, government body, or other large organization.

<span class="mw-page-title-main">Structured analysis</span>

In software engineering, structured analysis (SA) and structured design (SD) are methods for analyzing business requirements and developing specifications for converting practices into computer programs, hardware configurations, and related manual procedures.

<span class="mw-page-title-main">Kerrie Holley</span> American research computer scientist

Kerrie Lamont Holley is an American software architect, author, researcher, consultant, and inventor. He recently joined Industry Solutions, Google Cloud. Previously he was with UnitedHealth Group / Optum, their first Technical Fellow, where he focused on ideating healthcare assets and solutions using IoT, AI, graph database and more. His main focus centered on advancing AI in healthcare with an emphasis on deep learning and natural language processing. Holley is a retired IBM Fellow. Holley served as vice president and CTO at Cisco responsible for their analytics and automation platform. Holley is known internationally for his innovative work in architecture and software engineering centered on the adoption of scalable services, next era computing, service-oriented architecture and APIs.

Service Component Architecture (SCA) is a software technology designed to provide a model for applications that follow service-oriented architecture principles. The technology, created by major software vendors, including IBM, Oracle Corporation and TIBCO Software, encompasses a wide range of technologies and as such is specified in independent specifications to maintain programming language and application environment neutrality. Many times it uses an enterprise service bus (ESB).

Enterprise engineering is the body of knowledge, principles, and practices used to design all or part of an enterprise. An enterprise is a complex socio-technical system that comprises people, information, and technology that interact with each other and their environment in support of a common mission. One definition is: "an enterprise life-cycle oriented discipline for the identification, design, and implementation of enterprises and their continuous evolution", supported by enterprise modelling. The discipline examines each aspect of the enterprise, including business processes, information flows, material flows, and organizational structure. Enterprise engineering may focus on the design of the enterprise as a whole, or on the design and integration of certain business components.

<span class="mw-page-title-main">Michael B. T. Bell</span>

Michael B.T. Bell is an American novelist, artist, producer, and enterprise software architect, chiefly recognized for developing the Incremental Software Architecture methodology, service-oriented modeling framework (SOMF), multidimensional software architecture construction (MSAC), and the cloud computing modeling notation (CCMN). His innovative research and publications in the fields of software architecture, artificial intelligence, service-oriented architecture, Microservices, model-driven engineering, cloud computing, and big data are recognized internationally for their contribution to the software design and development communities.

In software engineering, a microservice architecture is a variant of the service-oriented architecture structural style. It is an architectural pattern that arranges an application as a collection of loosely coupled, fine-grained services, communicating through lightweight protocols. One of its goals is that teams can develop and deploy their services independently of others. This is achieved by the reduction of several dependencies in the code base, allowing developers to evolve their services with limited restrictions from users, and for additional complexity to be hidden from users. As a consequence, organizations are able to develop software with fast growth and size, as well as use off-the-shelf services more easily. Communication requirements are reduced. These benefits come at a cost to maintaining the decoupling. Interfaces need to be designed carefully and treated as a public API. One technique that is used is having multiple interfaces on the same service, or multiple versions of the same service, so as to not disrupt existing users of the code.

References

  1. Mike P. Papazoglou, Willem-Jan van den Heuvel: Service-oriented design and development methodology. Int. J. Web Eng. Technol. 2(4): 412-442 (2006)
  2. M. Papazoglou, INFOLAB, Tilburg University, The Netherlands (2013) Web Services and SOA: Principles and Technology (2nd Edition), Pearson Education Canada, Paper, 856 pp, published 01/13/2012, ISBN   9780273732167
  3. Ali Arsanjani, Abdul Allam: Service-Oriented Modeling and Architecture for Realization of an SOA. IEEE SCC 2006: 521
  4. Bieberstein et al., Executing SOA: A Practical Guide for the Service-Oriented Architect (Paperback), IBM Press books, 978-0132353748
  5. Bell, Michael (2008). "Introduction to Service-Oriented Modeling". Service-Oriented Modeling: Service Analysis, Design, and Architecture . Wiley & Sons. ISBN   978-0-470-14111-3.

Further reading