SOA Design Principles
In the former blog, which was titled as SOA with Process Integration (PI) 7.1/7.3 , I described basics of SOA and use of SAP PI 7.3 in it.
Design principles are used to achieve proper service orientation. When you design a service you have to follow proper guidelines and defined principles. In SOA you can come up with your own design principles but, in general, following are the main service design principles. Although there is less technical work on modeling and designing services in SAP PI, right principles assist you to create services at enterprise level.
SOA 1: Service Design Principles
In SAP PI 7.1/7.3, which is SOA middleware, you can model services and integrate them with your legacy systems. SAP PI 7.1/7.3 facilitates you to model your services with less effort. However, proper governance and analysis makes your service reusable and help you to save your project cost.
Using SAP PI you can model you services and publish them in service registry. Later these services can be used in different business process models. So where same business functionalities are require you can use existing exposed services. In below diagram of “Service Registry”, services are published and made available for business use. By proper analyzing your company’s business and IT landscape, you developed a service called ValidateCreditCard for receiving post paid customer bills.
SOA 2: Service Resuability
But after a year your business expanded and offered prepaid mobile services also. In new business process of prepaid mobile top-up, you again want to validate customers’ credit card for transaction. Will you create new service? If you initially applied proper service governance and analyzed service goals, you don’t have to create new service. Instead you can use existing service called ValidateCreditCard.
Each company has its own SOA governance and defined principles. But there are few standard design principles that are applicable for everyone. In this blog I tried to highlight all those principles. So prior to see a list of standard pinciples, you revise the definition of the principles.
Principle are nothing but set of rules and best practices. When comes to service designing, it is recommended to design your services with certain goals and objectives. If you design your services without setting any goal and analyzing enterprise needs, you will develop duplicate services. Result, it increase both service cost and service maintenance.
In theory there can be many different set of principles but in practice there’re below listed design principles are most common. Following principles help you to design your services in a service oriented manner so that you can get proper benefit of enterprise services.
- Service Contract
- Service Reusability
- SOA Design Principles – Service Abstraction
- Service Autonomy
- Service Discoverability
- Service Composability
- Service Statelessness
In coming weeks, I’ll link listed principles with descriptive and independent blog link. They will give you single page access for SOA understanding and its design principles.