xApps Development – a flight from the abstract to the real
I still remember the excitement when the xApps team was formed and the initial slides of what we shall be doing was presented (i.e. a 30,000 feet above the ground view). Being part of the team since inception has been a technically rewarding experience. I hope to share some of this through the weblog.
Being part of the CAF team in xApps, my focus is on technology. Whenever I tell people that I work for xApps, they get very excited and ask me – so how do you develop xApps my short answer is abstractly. Abstractions are what xApps development is all about. Each layer of the stack i.e. User Interface, Process, Service/Object & Persistence is abstracted. Metadata is at the heart of abstraction with each layer having its own metamodel. In the UI Web Dynpro has its metamodel, in the process layer guided procedures has its metamodel, and the CAF metamodel is used for the rest. Each has its own repository into which the design time metadata is stored. The SAP NetWeaver developer studio plugins for each layer provide the design time environment based on the respective metamodels. It is important to note that each layer is decoupled from the other. Following the model driven architecture (MDA) paradigm, the runtime is generated for each layer based on the modeled design time metadata. This involves the conversion of the abstract models into real Java code on the fly. Without going into the details (it can be a topic for future blogs) it must be said that each layer comes with a lot of functionality built in. Be it Web Dynpro patterns, preconfigured guided procedures, or core services, to name a few.
My message here is that a lot of technology has been built to simplify application development. As the rubber meets the road I must say that the view below is as good if not better than that from 30,000 feet above, and the flight was great. I hope you are all equally excited and ready for takeoff.