The time has come for yet another wishful thinking. With the rise of Service Oriented Architecture (SOA) and Event Driven Architecture (EDA), and Test Driven Development (TDD) extended with Behavior Driven Development (BDD), and a bunch of other buzzwords… let me introduce something else for the enterprise world:
Semantic Interface Driven Architecture (SIDA)
In short, it’s a Model Driven Architecture (MDA), sprinkled with interfaces to reduce coupling of inter-model transformations, and semantic inferences in the spirit of topic maps and RDF+OWL, implemented on top of SOA and EDA.
MDA allows different services to communicate with each other by transforming models. The interfaces provide agreeing on specifications to common semantics. Semantics themselves are inferable, and navigable. Thus, it is possible to interrelate models even though they are entirely in different layers and/or (heterogeneous/external) systems.
Continuous Change Driven Development (CCDD)
In short, it’s a development approach where the requirements are constantly changing. Constantly, that is, as in “real-time”, in order of milliseconds. One millisecond you need to have this table, the next you have to add a column, the next you have to drop a whole table, and in the next you want a whole form, relationships…
Requirements are not specified upfront, but simply as a “starting point”. Much like the way (probably) the universe started during the Big Bang. Everything else is evolutionary, and can be changed in real time by the individual users of the application. It might also be named Real-time Evolution Driven Development (REDD), which is probably more buzzy.
Some of the general traits of this approach are:
- extensive use of ultra meta-programming
- taken-for-granted interoperability with other SIDA systems
- fuzzy specifications/requirements (i.e. “want” instead of “what/how”)
- generatively programmable systems
- decentralized source code management (i.e. version control) is taken for granted
Let me know of your comments. If you are interested in doing research together, by all means please do. I’m serious.
- Event-Driven Architecture vs. Publish-Subscribe Systems
- Event-Driven Architecture Overview
- The Growing Role of Events in Enterprise Applications