Thinking aloud: Object Services & Object Oriented Database Model…
While I was going through the blog written by Horst Keller about Did ABAP Objects Fail as a Whole?, suddenly I thought about one more great add-on we ABAP Developers are provided with while developing applications in ABAP Objects.
I am referring to new ‘Object Services’, with which we can aptly manage the persistance state of objects without really thinking about the corresponding database tables that the objects are related to. Initially I was more intrigued by the exact purpose of this ‘Persisent layer’ when we already have direct access to a relational database by traditional SQL queries.
Thankfully that led me to explore more about the usefulness of Object services and thereby also correlate with Object-Oriented Database modelling. Here I am not directly comparing both because object services itself is not a database but a layer above the relational database.
Very clear documentation is available at http://help.sap.com –> Object Services. Don’t miss a very interesting article on Object Services written by Christian Stork in SAP Professional Journal Edition Jan/Feb 2002.
In our ABAP environment, complete leverage of pure object-oriented application programming can be achieved if we can prudently utilize this Object services layer as a gateway between the ABAP program and the relational database.
It’s now a universal fact that most of the popular applications that are developed are mostly modelled as object-oriented applications due to the obvious advantages it has over classical procedural programming (things like inheritance, encapsulation, polymorphism …). But despite deftly designing the OO Models and representing even the most complex real world entities, we still have to concentrate on loading these objects by writing SQL queries on traditional two-dimensional database tables and spend more time on persistence framework… Also there is no scope for associating behavior with the saved data.
So just think of how advantageous it could be in extending the powerful obect-oriented features to the database and making an object instance persistant that would enable us to think in terms of references of objects rather than two-dimensional tables that are related to the classes which we designed in our application program. Are you too dreaming of avoiding SQL code to load objects from the database and making them persistent… and someone else taking care of tansparent loading of these objects from the database while we can concentrate more of our precious time on writing business logic?
The answer can be the Persistence Service of Object Services layer which is a part of SAP BASIS 6.10 and above. Object services act as a layer between the applicaton program and the database where we can freely (read transparently) load the objects into this persistence layer and thereby refer these objects for further manipulation. The objects can be loaded either by the unique identifiers or by business keys. So… Even any complaint we would have had regarding the difficulty in the management of persistent objects in ABAP runtime environment can be clearly overcome by using Object Services.
Well, me being no expert at this point of time, I don’t want to speculate much before trying out a couple of applications thereby doing an in depth analysis on efficient use of Object Services. Till then… au revoir .