The Portability of Web Services
By Felipe Lodi
Object Oriented Programming (or simply OOP) is an important concept in application development. Usually a well structured application (all type of application) had on its development a great effort during the modeling. Although optional, the developer can basically create classes that have properties and execute tasks. They can interact against each other, they can be extended, inherited and instantiated.
It means that classes, their properties and methods can be used and reused, can be saved in memory, on disk and on the database. The developer usually decides (after planning) which class to use for determined achievement and when he does that, he creates an object. An object is an instance of the class and it is used taking a copy of the class usually without interfering on the original class. “A class is a blueprint for an object” interestingly states Adrian O’Neill (O'Neill, 2011)
OOP creates portability to the application. The business rules are all put on the Object Model as well as the developer has on his side, depending on the language he is developing with, countless classes to be instantiate for a determined purpose. Again depending on the language, these classes can be categorized, grouped and optionally compiled, thus becoming portable.
It becomes portable because it can be moved, shared, used and reused. It becomes portable because of its interoperability, because the possibility to use these classes across different platforms (it is not that simple) such as Java accessing .Net (Luminis, n.d.) The very same compiled class can be shared between a Web Application and a Desktop Application. It can be used for a local application and at the same time exposed to the Web.
This is the concept of Web Service, a class exposed by an URL. The developer still has to instantiate the class in order to borrow a “copy” of the class, but he does that so, making reference to a Web address. “Web Services can convert your application into a Web-application, which can publish its function or message to the rest of the world.” (W3Schools, 2011)
Being exposed through a Web address, the class can technically be accessed from everywhere in the world (most of the Web services exposed on the Web, have authentication though) and therefore the portability of these small components becomes shareable. Meaning by that, Web services can be accessed at the same time, by a Website, by a Desktop Application, by a Mobile, by an automobile and by a kitchen appliance.
The statement that the development on Web will be made with componentization it is indeed true. Small pieces of software are already spread on the Web for either free, paid or restrict usage. Companies can also expose part of their databases on the web using Web services. Services on the Web already expose (and enable) interaction via Web services.
For instance, developers intended to create interactivity with Facebook have at their disposal, Web services to do that. (Facebook, 2011) The Website WebserviceX.NET, expose for free several Web services for developers such as Currency Converter and Global Weather. (WebserviceX.NET, n.d.)
And this is the point: developers that need to convert currency on their projects do not need to develop this functionality, the same happens if they want to show current global climate. They just have to decide how to display and embed this since the data they are already able to gather from the available Web services. It is indeed easy to envisage applications using all this shared information. Web services are also ready to avail data that would be difficult to produce such as the examples above.
In my conclusion, applications will be using even more shared data. By shared I do not say the data will be free or visible to the world. By shared I mean the data is technically possible to be accessed by different devices, different companies and different users. At the same time as it was never possible before.
REFERENCES LIST
Facebook, 2011. Facebook for Websites. [Online] Available at: http://developers.facebook.com/docs/guides/web/ [Accessed 15 April 2011].
Luminis, n.d. Java.Net interoperability. [Online] Available at: http://lsd.luminis.nl/java-net-interoperability/ [Accessed 15 April 2011].
O'Neill, A., 2011. Classes. [Online] Available at: http://www.aonaware.com/OOP4.htm [Accessed 15 April 2011].
W3Schools, 2011. Web Services Tutorial. [Online] Available at: http://www.w3schools.com/webservices/default.asp [Accessed n.d. April 2011].
WebserviceX.NET, n.d. Web Services. [Online] Available at: http://www.webservicex.net/ws/wscatlist.aspx [Accessed 15 April 2011].










