|
||||
ContentsPersonal tools |
Modeling Non-Functional Properties in Service Oriented ArchitectureFrom Distributed Software Systems Group, University of Massachusetts, Boston(Redirected from SOA)
[edit] Executive SummaryThis project investigates and empirically evaluates two modeling techniques: Unified Modeling Language (UML) profile. The proposed UML profile is used to explicitly and graphically model and maintain non-functiona properties (e.g., security and fault tolerance) of applications in Service Oriented Architecture (SOA), and allows developers to define the non-functional properties without depending on any particular implementation technologies. A supporting tool, called Ark, which generates application code (program code and deployment descriptors) according to a configuration (or instance) of the proposed feature model and a UML model defined with the proposed UML profile. [edit] ObjectiveIn Service Oriented Architecture, the non-functional properties of services and their connections, such as security and fault tolerance, should be defined separately from their functional properties (i.e., business logic) because different applications use services and connections in different non-functional contexts. For example, an application may unicast messages to a service, and another may manycast messages to multiple replicas of the service to improve fault tolerance. The separation between functional and non-functional properties improves the reusability of services and connections. It also enables the two different properties to evolve independently, and improves the ease of understanding application architectures. This contributes to higher maintainability of applications. This project proposes a model-driven development (MDD) framework for non-functional properties in SOA, through the notion of UML profile and feature modeling. The framework consists of (1) a Unified Modeling Language (UML) profile to visualize non-functional properties, and (2) an MDD tool, called Ark, which generates application code (program code and deployment descriptors) according to a configuration (or instance) of the proposed feature model and a UML model defined with the proposed UML profile. Using the proposed UML profile, non-functional properties can be modeled without depending on any particular implementation technologies. [edit] Novelty
[edit] Details of the proposed UML ProfileThis project provides a set of modeling elements to describe non-functional properties as a UML profile. The following figure shows the definition of five key elements in the proposed UML profile: Service, Message, MessageExchange, Connector and Filter.
The following figure shows an example model defined with the proposed UML profile. It illustrates an astrophysical virtual observatory system in which telescopes store space images in distributed archives. In this example, two services (Telescope and AstronomyRawDataArchive) exchange messages. Each service is defined as a class decorated with the stereotype <<Service>>. Services exchange a message (RawData), which is stereotyped with <<Message>>. The data field steteotyped with <<EncryptedProperty>> (metaData) is encrypted with the algorithms specified as tagged-values (algorithm = ...). The connector (BatchConn) works as a queue that stores and forwards RawData messages in a batch mode between Telescopes and an AstronomyRawDataArchive. [edit] Code GenerationA supporting tool, called Ark, takes a UML model designed with the proposed UML profile, and generates running code on Mule ESB and Service MIX. [edit] ExtensionsThis project is extended to support early aspects in business processes by leveraging the notion of aspect oriented programming and feature modeling. You can find the details here. [edit] Publications
|
|||