
![]() |
BAM (Business Application Modeling) is a tool for the model-based development of data-centric business applications that are both distributed (across many agents) and dynamic (agents come and go). BAM employs a novel set of formal abstractions to help the software engineer reason about the following issues: (1) Has the system been fully specified? (2) What behaviors will emerge over arbitrary distributions of the system? (3) What happens to the system in a dynamic network where agents enter/exit and communication links fluctuate? |
|---|
![]() |
Research | ![]() |
Projects | ![]() |
Publications | ![]() |
Home |
BAM is my newest project so the exact development strategy is still evolving. Currently, we are envisioning a light-weight web-based specification tool for constructing BAM models. Once a model has been constructed, it will be analyzed off-line on a server and the results will be emailed back to the user. At this point, we are examining the various tool options for implementing this vision. The development status reflects this exploratory phase.
Updated on: 11/07
BAM uses three types of models to specify business applications. The first of these types is the "data model,"
which captures the key data structures of the application and the key invariants that hold across instances of data. Notationally, the data model
is similar to a UML-class diagram or a metamodel. The data structures appear as class-like boxes, and the invariants are written
in a formal logic. Semantically, the diagrams and invariants are converted to tool-independent algebraic representation. The image below
shows a simple data model created with the GME (Generic Model Environment) prototype.
The operation model captures the key operations on data. These operations are specified as extended model transformations. (Model transformations
are already commonly used in model-based design for code synthesis and changing abstraction levels.) Each operation describes a precondition, which is pattern that must
exist in the data in order to apply the operation. If the precondition is satisfied, then the operation creates or deletes
data. These actions are also specified in a pattern-like notation.
BAM encourages the engineer to focus on the data and operations before addressing the distributed scenarios. When it is time
to describe the distributed environment, the engineer constructs the connectivity model. This model enumerates the types of agents
in the system, the information flow between agents, and that data-centric access control policy for agents. The access control policy
specifies the data to which agents have access. Thus, the connectivity model allows the data and operations to be easily carried over to the distributed setting.
Formally, the connectivity model places bounds on the distributed states that will arise during execution of the system. Soon we will post our recent paper
"Compositional Modeling for Data-Centric Business Applications" which describes this formal semantics in detail.