For several college students and graduates, the concept of SOA can be well comprehended with traditionally taught languages in several of the educational institutes - C++ and Java. A C++ function can be created to provide a service, and this function (service) can be used in a C++ program as well as in a Java program.
In terms of SOA, a C++ service is being utilized by a C++ consumer as well as a Java consumer.
The C++ function can be used in a Java function using the Java Native Interface (JNI). The JNI is a programming framework that allows Java code running in the Java virtual machine to call libraries written in other languages, such as C, C++ and Assembly.
JNI allows Java developers to add functionality to their Java applications that the Java API can't provide. It is used in time critical calculations or operations where the native code is faster than the JVM code.
The SOA model using JNI can be represented as follows -