A Layered Architecture Sustaining Model-Driven and Event-Driven Software Development

This paper presents a layered software architecture reconciling model-driven, event-driven, and object-oriented software development. In its simplest form, the architecture consists of two layers: an enterprise layer consisting of a relatively stable business model and an information system layer, containing the more volatile user functionality. The paper explains how the concept of events is used in the enterprise layer as a means to make business objects more independent of each other. This results in an event handling sublayer, allowing to define groups of events and handling consistency and transaction management aspects. This type of architecture results in information systems with a high-level modular structure, where changes are easier to perform as higher layers will not influence the inherently more stable lower layers.