! You are browsing an archive website for Modelio 1.x. Click here to visit the official website for most recent versions of Modelio

Modeling SOA architectures


What are SOA architectures?

Service Oriented Architecture (SOA) is a way of describing and understanding organizations, communities and systems in order to maximize agility, scale and interoperability. The SOA approach is simple – people, organizations and systems provide services to each other. These services allow us to get something done without doing it ourselves or even without knowing how to do it, helping us be more efficient and agile. Services also enable us to offer our capabilities to others in exchange for some value, thus establishing a community, process or marketplace. The SOA paradigm works equally well for integrating existing capabilities as for creating and integrating new capabilities.

A service is a value delivered to another through a well-defined interface and available to a community (which may be the general public). A service results in work provided to one by another.

SOA is an architectural paradigm for defining how people, organizations and systems provide and use services to achieve results.

 

SOA has been associated with a variety of approaches and technologies. SOA is first and foremost an approach to systems architecture, where architecture is a way to understand and specify how things can best work together to meet a set of goals and objectives. In this context, systems include organizations, communities and processes as well as information technology systems. The architectures described with SOA may be business architectures, mission architectures, community architectures or information technology systems architectures – all can be equally service oriented. The SOA approach to architecture helps with separating the concerns of what needs to get done from how it gets done, where it gets done or who or what does it. Some other views of SOA and “Web Services” are very technology focused and deal with the “bits and bytes” of distributed computing.

 


The SoaML standard

SOFTEAM is one of the many contributors to the OMG's SoaML standard.

SoaML is a standard modeling language dedicated to designing and modeling SOA solutions using the Unified Modeling Language® (UML®). SoaML is mainly defined as a UML profile that uses the built-in extension mechanisms of UML to define SOA concepts in terms of existing UML concepts. SoaML can be used with current “off the shelf” UML tools although some tools may offer enhanced modeling capabilities.

SoaML integrates modeling capabilities to support the use of SOA at different levels and with different methodologies, in particular support for the “contract-based” and “interface-based” approaches which, in general, follow the “ServiceContract” and “ServiceInterface” elements of the SoaML profile respectively.

 

 

 

SOA technology

The Modelio approach to SOA modeling

Modelio provides a module dedicated to SOA modeling named Modelio SOA Architect. This module is based on the usual notions and approaches to model SOA architectures. It is purposely simple, in order to be easily usable by users who are not necessarily well-versed in the arcanes of UML. Its main concepts are:

  • Service components: These represent the components of a system that are inter-connectable through services. Service components are usually very large (applications or entire systems that can be implemented by hundreds of classes). The usual practice is to layer the component-based architecture into different kinds of service components. Entity components are components dedicated to handling system data, process components are responsible for the implementation of a business process, and presentation components are in charge of managing GUI access. This classification also introduces function components (half way between between process and entity components) and utility components. Several methodologies explain how to identify these components, and provide layering rules between these kinds of components.
  • Services: These are broken down into provided and required services. They are represented in a simplified way by ports on components typed by an interface (the definition of the service).
  • Component connectors: These connectors wire components together, by assembling required and provided services in order to form a complete and consistent system.
  • Messages: These represent the information exchanged between service components through services. They are typically implemented as XML documents.
Different approaches to SOA technology

 

Modelio provides model transformations and generators to easily and quickly transform an SOA architecture model into a software model and then into an implementation, for example by generating XML schemas, WSDL web services, BPEL orchestrationSQL database schemas, BPMN mapping or using Java code generator.

The SoaML profile is a much more complex model that supports a wide variety of methodologies and requires a thorough understanding of UML. Modeliosoft already has an implementation of a SoaML profile which will soon be published as a free module for use with Modelio. The use of this SoaML Module and of the SOA Architecture modeling module will be mutually exclusive, since each implements a different approach to SOA modeling.