Executive Summary:
|
Project Details: |
One of the current key issues in large-scale distributed systems is to reuse (or repurpose) and integrate existing systems to build new applications in a cost effective manner. Service Oriented Architecture (SOA) addresses this issue by improving the reusability and maintainability of distributed systems. It is an architectural style to design applications in an implementation independent manner using two major abstract concepts: network services and connections between network services. Each service encapsulates the functions of a subsystem in an existing system and hides the subsystem's implementation details (e.g., programming languages and remoting middleware) from developers. Each connection defines how services are connected with each other and how messages are exchanged through the connection, and hides implementation details of the message exchanges (e.g., messaging protocols and message routing) from developers. Developers can reuse and combine services to build their applications without knowing the implementation details of services and connections.
In SOA, the non-functional aspects of services and connections (e.g. security and fault tolerance) should be defined separately from their functional aspects (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. Also, an application may use a service via reliable connection that guarantees message delivery when the service is hosted on an unreliable network (e.g., the Internet), and another application may use the service via connection that does not guarantee message delivery when the service is hosted on a reliable network (e.g., intranet). The separation between functional and non-functional aspects improves the reusability of services and connections. It also enables the two different aspects to evolve independently, and improves the ease of understanding application architectures. This contributes to higher maintainability of applications.
In order to maximize the reusability of services, a set of constraints (e.g., dependency and mutual exclusion constraints) between non-functional aspects tend to be complicated and hard to maintain because their granularity becomes fine and their number grows. Currently, those constraints are informally specified in natural languages, and developers need to ensure that their applications satisfy the constraints in manual and ad-hoc manners. It is not trivial to consistently validate and enforce non-functional constraints in large-scale applications because a large number of non-functional aspects and their combinations exist.
This project proposes a model-driven development (MDD) framework for non-functional aspects in SOA, through the notion of UML profile and feature modeling. The framework consists of (1) a feature model that defines the the non-functional constraints in SOA, (2) a Unified Modeling Language (UML) profile to visualize non-functional aspects, and (3) 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. The proposed UML profile allows application developers to graphically describe and maintain the non-functional aspects in SOA as UML diagrams (composite structure diagrams and class diagrams). Using the proposed UML profile, non-functional aspects can be modeled without depending on any particular implementation technologies. By modeling a non-functional aspect as a feature, the proposed framework allows developers to consistently validate non-functional constraints in service-oriented applications. The proposed MDD tool, called Ark, transforms implementation independent UML models into implementation specific application code using certain implementation technologies such as Enterprise Service Buses (ESBs), secure file transfer protocols and grid computing platforms.
- Modeling Support for Non-functional Aspects in SOA: This project is the first attempt to investigate a UML profile for various non-functional aspects in SOA, although there exists several UML profiles for functional aspects, service discovery, data integration and service orchestration in SOA. The proposed UML profile covers the following four areas of non-functional aspects.
- Service Deployment Semantics: service redundancy.
- Message Transmission Semantics: messaging synchrony, message delivery assurance, message queuing, multicast, manycast (for fault tolerance), anycast (for load balancing), message routing, message prioritization, messaging timeout, message logging, and message retention.
- Message Processing Semantics: message conversion, message split, message aggregation, and message validation.
- Security Semantics: transport-level encryption, message-level encryption (entire/partial message encryption), message signature, message access control, and service access control.
- Modeling Constraints between Non-functional Aspects in SOA: This project is the first attempt to investigate a feature model to explicitly and graphically model the constraints between non-functional aspects in SOA. The proposed mechanism allows developers to enforce the constraints in their applications in an automatic and consistent manner.
- Modeling Support for Regulatory Compliance: As regulatory compliance has been becoming an important factor in software development, regulatory mandates (e.g., the Sarbanes-Oxley Act and HIPPA) dramatically increase the number of non-functional aspects that application developers need to implement. This project is the first attempt to investigate a modeling language to specifically describe the non-functional aspects derived from regulatory mandates. The proposed UML profile allows application developers (or compliance management staffs) to graphically specify and verify how their applications meet regulatory mandates. Currently, the proposed UML profile addresses data retention, data/process validation (e.g., consistency check among an order, a corresponding invoice and a payment) and security (e.g., access control and data integrity).
- MDD Support for Service-Oriented Applications: Non-functional requirements change during application lifecycle more often than functional aspects. When a non-functional requirement (e.g., security policy) changes in an application, application developers make changes in the non-functional part (a UML model) of the application and leave its functional part alone. The proposed MDD tool (Ark) generates non-functional code from the updated UML model and combines the existing functional code. Ark makes the applications's functional aspects more reusable and extend their longevity, thereby improving the productivity of application development and maintenance.
- Hiroshi Wada, Junichi Suzuki and Katsuya Oba, "A Feature Modeling Support for Non-Functional Constraints in Service Oriented Architecture," In Proc. of the 2007 IEEE International Conference on Service Computing, Salt Lake City, UT, July 2007. (20% acceptance rate)
- Hiroshi Wada, Junichi Suzuki and Katsuya Oba, "Modeling Non-Functional Aspects in Service Oriented Architecture," In Proc. of the 2006 IEEE International Conference on Service Computing, Chicago, IL, September 2006. (25% acceptance rate)
- Hiroshi Wada, Junichi Suzuki and Katsuya Oba, "A Service-Oriented Design Framework for Secure Network Applications," In Proc. of the 30th IEEE International Conference on Computer Software and Applications Conference, Chicago, IL, September 2006. (30% acceptance rate)
- Hiroshi Wada, Junichi Suzuki and Katsuya Oba, "Model-Driven Development Framework for Non-Functional Aspects in Service Oriented Grids," In Proc. of the 2nd IEEE International Conference on Autonomic and Autonomous Systems, Santa Clara, CA, July 2006.
- Hiroshi Wada, Junichi Suzuki and Katsuya Oba, "Designing Ecological Observation Systems using Service Oriented Architecture," poster paper, In Proc. of the 5th International Conference on Ecological Informatics, Santa Barbara, CA, December, 2006.