Most enterprise systems are architecturally very simple yet quite complex in manifestation: simple because most of the relevant architectural patterns have been refined over decades of use in many tens of thousands of systems and then codified in middleware; complex because of the plethora of details regarding vocabulary, rules, and non-functional requirements such a performance and security. Systems of other genres (such as artificial intelligence) are often far more complex architecturally.
Artificial intelligence (AI) systems are those that simulate or augment human cognition, locomotion, or other organic processes. AI encompasses systems that reason about and solve problems in the real world. At the extreme, AI seeks to create systems that are sentient or that mimic human behavior. Pragmatically, AI techniques have been applied to problems of artificial life, common sense reasoning, expert systems, robotics, neural networks, and swarm intelligence. AI has crossed over to mainstream domains as well and so may be found in systems for planning, vision recognition, machine learning, agents, and natural language translation.
Production is the dominant force that shapes systems of this genre: it is not completely clear how to form intelligent systems in software. Classic programming techniques, data structures, and algorithms do not appear to be adequate for building systems that exhibit human cognition. For this reason, the AI community has reached out to alternative languages (such as LISP and Prolog) and techniques (such as knowledge-based systems, Bayesian networks, fuzzy logic, genetic programming, and other generative programming methods).
Experience with AI has led to the development of a number of exotic patterns, such as subsumption and blackboard architectures.
Simple and Complex Architectures
gbooch 120000P81R 385 Visits