Service Oriented Architecture Design And Development Method
Service Oriented Architecture design and development method
Service Oriented Architecture (SOA) is a form of enterprise architecture based on both internal and external services which communicate via interfaces. SOA requires that the services are documented and reused within business units to maximize development efficiency and reduce the complexity of growing application portfolios. For the implementation of SOA the business has to be adapted to follow the new set of principles. Although the business is an important aspect of successful implementation of SOA, the application design and development also needs to be adapted. Using existing applications and adding new interfaces is not enough, it requires a new development method that is integrated through the whole development process. In this paper we will discuss the Service-Oriented Design and Development Method (SODDM) by Papazoglou and Van den Heuvel (2004). This method is based on Rational Unified Process, Component-based Development and Business Process Modeling. It bears resemblance to many other agile development methods by using an iterative process with phases that are familiar to anyone who has used an agile development method. Within the phases we see distinct differences with an agile development method like SCRUM, which is based on products with a product backlog. SODDM starts with a planning phase; Defining the business needs and goals in order to identify services rather than products. This step is crucial for business alignment and managing the application portfolio. The next phase involves analyzing a business case in order to find possible solutions and alternatives, much like in a PRINCE2 project. The difference is that this phase is also involves specific SOA related analyses, like service coupling; Where the goal is to make the business processes as independent as possible. The services in the business process are also analyzed for their cohesion; the services should be highly related to one another. In the same phase the services are identified and the business processes are defined. Other phases are straight forward, with construction and testing, provisioning, deployment and monitoring. SODDM provides an agile based development method that is geared towards managing services and tight business alignment in order to implement a SOA architecture.
For this example we will be using an imaginary airline company referred to as Aircom. We will start with the planning phase. Aircom has a set of business needs that need to be addressed:
• Customers should be able to do their own bookings
• Customers should be able to check for available seats
• Customers should be able to pay for their booking
A business goal is derived from these business needs. Aircom has the goal of servicing their customers with an online booking web application. The next step is to look at the current technological landscape in order to define a solution. In order to come up with the technology that is used, we look at what is currently available and the costs of the development and what is already used within the company.
In order to find which services need to be created and which have already been incorporated, the current portfolio of services is analyzed in the analysis and design phase.
Tabel 1 - portfolio analysis
Service name Is implemented
Booking registration service Yes
Booking cancellation service Yes
Booking availability request service Yes
Customer login service No
Customer registration service No
Customer payment service No
In table 1 we see the portfolio for the bookings business process, which is a combination of the as-is situation with the to-be situation. It shows which services the company had already implemented and those that need to be implemented. Since some services are already available they can be coupled with the new services for web based bookings. This way we address the SOA principle of reusing existing services within a business process.
After this a programming language is chosen based on 4 major categories
• Green field development; which starts with the development of a service and then looks at the possible language for the webinterface.
• Top-down; when using an already existing interface.
• Bottom-up; when a new interface is to be created.
• Meet-in-the-middle; when an already existing interface is being mapped partially onto a new service.
When designing the service it is specified according to three elements. This specification can be done in XML as is shown in the example below. Here we show the existing service of booking registration.
In the specification of services many more attributes are documented, such as the programming style and service policies. The business processes are described and the roles that perform them.
After the design is finished the construction will start in the construction and testing phase. The construction will be based on the previously defined planning, analysis and design. The constructed service is tested on its functionalities according to its specification. Strategies for service metering, rating and billing are defined in the provisioning phase. In our example we could offer the service for free and incorporate the billing in the actual payment for the booking. The service is now ready to be deployed in the deployment phase. How this is done has to do with many different variables, but for our example we will deploy the new service within the existing IT structure of Aircom, as they are already offering similar services. For the web interface an external party is used. Finally we enter the execution and monitoring phase. We will look at who will be responsible for what part of the service. For the existing services we make no changes, while for the new services members of the business process are assigned to each service. The service is monitored by looking at aspects of the SLA that can be measured. In our example the time that it takes to get a response from the booking service is measured to see if it is according to the SLA. The up-time of the service can also be measured which is stated in the SLA.
SODDM was first introduced by Papazoglou and Van den Heuvel (2004) and is based on Rational Unified Process, Component-based Development and Business Process Modeling. Rational Unified Process was introduced by Kruchten (2004) and is based on the best practices in software engineering. SODDM addresses the need for a method to design and develop services within an organization that uses SOA for their enterprise architecture. Brown et al (2002), describes the process of design and development of web applications in a service-oriented environment. This study only shows the design and development aspects and does not deal with the complexities of the business side and how to translate this to services. Zimmerman et al (2005) also provided techniques for this phenomenon based on UML and Rational Unified Process, but this study is more general and does not describe an entire method for dealing with the development. Reijnders et al (2011) has compared many of the service-oriented software development methods. In this study SODDM is also described and compared with other methods like SOMA. SOMA was introduced by Arsanjani (2004) and is an agile method developed and used by IBM for a SOA archirecture development. Another method is the WSIM by Lee et al (2006) which is based on the extending existing development methods for development geared towards SOA. The study also shows that SODDM and SOMA are the most dominant studies on this subject.
Arsanjani, A. (2004). Service-oriented Modeling and Architecture. IBM developerworks.
Brown, A, Johnston, S, Kelly, K. (2002). Using Service-Oriented Architecture and Component-Based Development to Build Web Service Applications. Rational Software Corporation.
Lee, S, Chan, L, Lee, E. (2006). Web Services Implementation Methodology for SOA Application. Singapore Inst. of Manuf. Technol.
Papazoglou, P, Van den Heuvel, W. (2004). Service-Oriented Design and Development Methodology. Int. J. of Web Engineering and Technology (IJWET).
Reijnders, G, Khadka, R, Jansen, S. (2011). Developing a Legacy to SOA Migration
Method. Department of Information and Computing Sciences Utrecht University.
Kruchten, P. (2004). The rational unified process: an introduction. Addison-Wesley.
Zimmerman, O, Schlimm, N, Waller, G, Pestel, M. (2005). Analysis and design techniques for Service-Oriented Development and Integration. IBM Deutschland.
- 17 Feb 2012