+ Exchanging messages, arranging the flow of activities, and invoking operations on a remote computer might be done in any PL(s) without putting a tremendous amount of effort. However, this is only true for very simple processes. As a company is expanding, its processes also become more complicated. Therefore, using any PL(s) such as Java, .Net can still be a barrier to such expansions because adding more code and changing the existing code to modify the flow of services can require specialised knowledge and result in a great effort in testing.
+ Since BPEL is a standardised language for orchestrating services, this job can become much easier due to the global recognition of the BPEL syntax. It does not require any knowledge in a particular PL. The BPEL designer can visually model the process and generate the corresponding document which is an XML-based document using the BPEL syntax.
+ Next, BPEL is portable across platforms. It works with services implemented on different PL(s) as long as they follow the structure of Web Service model. This is one of the biggest advantages when using BPEL since business-to-business interactions are normally between partners using different platforms.
+ Besides that, invoking services on a remote computer which is more specialised, thereby enhancing the performance and usability of the whole business process, is a great innovation. However, with the rapid growth in the number of services, we can end up wiring them with proprietary solutions provided by IBM or Microsoft if BPEL doesn’t exist. Then the merits of Web Services in portability and open standard would be jeopardised.+ Moreover, BPEL can be extended. For example, BPELJ is an extension of BPEL that can enable the mixing of BPEL and Java code. This can be very handy because using Java code; we can perform tasks such as calculating value, executing other Java code without creating another service.