Service Oriented Architecture (SOA) is a form of architecture that is used in designing and developing a software in which services allow for exchange and use of information in a large unrelated network made up of numerous local area networks.
SAO supports both application-based-work-flows and e-business integration workflows. Moreover, it enables an organization to save on time while attempting to integrate desperate systems since it ensures rapid software development and reuse of software component. This enables an organization to adapt to the changing business environment. SOA is prone to security disasters such as configuration problems, coding errors or inappropriate vendor implementation. However, SOA is still considered as an important venture since it ensures interoperability of services, that is, exchange and use of information in a large unrelated network made up of numerous local area networks. For effective management of SOA, an organization should ensure that the IT infrastructure has the capacity to adapt to the changing demands of SOA.
According to Graham (2006), one of the benefits of the Business Process Management (BPM) mashup is the fact that it ensures easy and faster integration while using SOA and sources of data to produce result. IBM mashup also enhance information sharing. It pulls information from different sources such as web services, databases and BPM server. This information is then presented to users for effective decision-making. Mashup applications can be summarized into a composition of services such as product management, customer service, and e-commerce.
Based on factors such as flexibility, a software built internally is preferred compared to the one bought. This is because an organization is able to change the software in order to adapt to the changing needs of its stakeholders. Furthermore, a software built internally is more reliable since it is customized to meet the specific needs of the clients. On the other hand, a software bought does not meet some of the requirements of an organization. Even though a software built internally is costly, the cost benefit analysis indicates that it is a better way of developing a sofware since it comes with more benefits compared to risks.
Software prototyping is the best because its benefits outweigh the benefits of other software development methods such as the Joint Application Development (JAD) and Rapid Application Development (RAD). Prototyping compares alternative design choices, involves the end-users in the development process, gives an indication of how the system will work when finally implemented, and detects errors in the system earlier before they occur. This ensures efficiency in software development process.