CAF II – Which Tools Does SAP Provide?
Working within a framework without proper tools is like taking a hot pot from the stove without mitts: you burn yourself, you’ll feel the pain for a long time, you lose time and it’s no fun. That’s why we have some tools for you to work with in SAP’s Composite Application Framework…
Anatomy of a Business Application
Simply speaking, a business application contains four main layers:
- a layer where the data is stored (persistency layer)
- a layer where the business logic is stored (business logic layer)
- a layer where the business process is stored (business process layer)
- a layer, which presents the data to the user (user interface layer).
All 4 layers interact with each other: the persistency layer stores data in and retrieves data from a database or storage that is received or requested from the business logic layer. The business logic layer receives data from the business process layer and the user interface layer shows the data that it retrieved from the underlying layer (the business process layer).
Confused? How was that again? OK, we can give you an example. We were able to record a conversation between those layers some days ago, here is a short extract of the transcript:
Business Logic Layer: “Hey database, could you give me the items for Ms. Carter’s order from yesterday?”
Persistency Layer: “For you its always a pleasure! Let me see … voilà! Here are five items for Ms. Carter, sorted in alphabetical order, as you like it best.”
Business Logic Layer: “Thanks, that was quick. Now let me calculate the total price and convert it to $US. Business Process Layer, can you tell me if the items are available and hand the order over to shipping?”
Business Process Layer: “You should know in the meantime that with my good relations to all my business processes I can do that in no time. All 5 items are in stock (thanks Stocky!) and here goes the shipping!”
Business Logic Layer: “Don’t forget to inform the hydrogen-carbon-based life-form in front of the screen!”
Business Process Layer: “Yep, nearly forgot. Here is the information, UI.”
User Interface Layer: “What UI shall I dress the data in today ? I have nothing to wear.”
Business Process Layer: “Come on, your wardrobe is full of bar-charts, tables, lists,… and you still have nothing to wear?”
User Interface Layer: “It’s OK, I found something, I think I will dress in a light-blue list, with some nice dark blue buttons on the bottom.”
The Composite Application Framework basically deals with those 4 layers and provides a toolset for each of them, either for design-time only or also in run-time. Of course there are other parts involved in the framework, but let’s focus on those four for now.
The toolsets are called:
- Business Object Modeler (for the persistency layer)
- Service Modeler (for the business logic layer)
- Guided Procedures (for the business process layer)
- WebDynpro & Webdynpro Patterns (for the user interface layer)
Business Object Modeler
Focus: talk business object, but don’t hassle with table-diagrams, SQL, authorization-mess etc.
With the Business Object Modeler, Business Objects, ValueSets and methods can be created. A Business Object consists of a couple of tables and methods and an EJB. The task of a Business Object is mainly to store and access data. Business Objects only contain life-cycle methods. Methods which have the characteristic of business logic or which are accessing data from other Business Objects will be created with the Service Modeler. The CAF object layer offers an object modeler to model the structure of the object, the relations, the mapping to XI proxies if needed and other technical and semantic properties of a business object. It provides an object metamodel (as part of the service metamodel), a generation framework to generate runtime implementations of business objects and runtime extensions for these objects like a data access framework.
Focus: talk business logic, and cure the pain of finding the right APIs, selecting the programming language and deciding to Web-service, or not to Web-service?.
The CAF service layer supports creating all kinds of services through modeling, coding or a mixture of both. A service modeler, a service metamodel and a generation framework to create implementation of services out of the metadata will be offered.
Focus: talk business process.
Guided Procedures is a framework (design-time and run-time) which supports the highly interactive and dynamic scenarios in composite applications. It makes use of the underlying Java adhoc workflow engine but restricts the usage to a few simple patterns which can easily be understood and adopted by end users.
Focus: talk reusable GUIs and forget costly user training for each new business application.
CAF leverages Java WebDynpro as the UI layer for composite applications. For achieving a homogeneous user experience UI patterns like the dashboard pattern, search pattern are developed and configuration screens are provided.
How Does the CAF Use and Leverage SAP NetWeaver?
The Composite Application Framework uses SAP NetWeaver as the underlying platform with all its services and tools like persistency, database- and OS-independence, transport logistics (DTR = Design Time Repository), collaborative development,… Furthermore, integration and leverage of functionality from KM, Collaboration, BI, EP and XI is also provided by the Composite Application Framework. The mapping of Business Objects and their methods to R/3-backends, 3rd-party and legacy systems is stored in XI; the Business Objects Document, Task and Discussion use functionality from and are stored in the KM; collaboration services are used from the integration platform; data-structures for BI are generated; and services from the EP (like user management, single-sign-on, etc.) are used.
Now that I told you about all involved pieces, start getting familiar with the technologies involved. This will help you to understand the framework and where it really enables you and simplifies your life and your user’s tasks.
Coming to This Theater:
Next week we will have as our guest stars the object layer and the Business Object Modeler on this stage.