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.
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:
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 orchestration, SQL 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.