Expert Systems.

The enterprise is typically composed of expert systems that perform core business functions and perform them well.  A retail system consists of points of sale systems, e-commerce websites, inventory management systems, accounting systems, marketing systems, customer service systems, advertising systems and business analytics.  Each supports a core function, and the primary business process ties them all together to execute its main use case.

In addition to these business expert systems, there are a number of process oriented expert systems that take care of security, notifications, logging, search, exception management, monitoring, management etc.

In a distributed environment, the most common way to interact with expert systems is using webservices, file transfers, shared databases, or including references to expert components in an application.  The problem with most of these methods is that they strongly couple the systems to each other.  The webservice has to be available when the application needs it and if it's not there, can cause cascading failures downstream.   These failures can lead to data loss or require the development of expensive, complex, redundant systems that can handle these failures and recover at later times.  Managing changes to expert components that are referenced by other applications is very difficult, often requiring versioning when interfaces change, rebuilding dependent applications to accommodate changes, or having system wide downtimes to upgrade just one expert system.  In an enterprise, this can get out of hand very quickly.

Ideally you want to loosely couple these expert systems.  In addition to using webservices or referencing expert components directly in an application, we can add advanced messaging to our arsenal and add some stability to the system. Messaging has been around for a very long time and has a wide and varied implementation base, but it's features are limited. Advanced messaging adds several important features that change the way we use messaging, it's basically messaging re-engineered from the bottom up.

One important feature of the advanced messaging protocol is that it applies the publisher/subscriber pattern to message queues.  In the typical queue architecture an application puts a message on the queue specifically for another application who picks it up and processes the work, responding perhaps on another queue.  In the exchange model, an application puts a message in an exchange and provides a routing topic (publishing).  An application can listen to an exchange using a specific subscription key  (subscribing).  The exchange acts as a broker and matches routing keys to subscription keys.  When a match is made the message is moved to as many subscribers as match the routing key.  This mechanism does one very important thing.  It completely decouples the publisher from the subscriber.  This has large implications for how the enterprise can be organized into expert systems.  
Distributed Systems
 
 
 The diagram above shows an example ecommerce website taking an order and fulfilling it with integration points between accounting, marketing and inventory management systems.   

When you compare advanced messaging to standard message queues, the main difference is the addition of an exchange.  On the surface this may seem like a small and insignificant change, but that one addition fundamentally changes the way we can architect the enterprise.  Perhaps the most complex of software systems, rich graphic, ui driven applications are all event driven.  The event driven systems allows various components in the UI landscape to change as the user changes the way they use the application, creating a very rich satisfying experience.  By comparison, enterprise systems have typically been standalone applications that communicate with other systems in a very linear, stochastic way where the weakest link truly defines the stability of the entire system.  By adding exchanges to the message bus, we've introduced an event model to the enterprise.  This will allow us to create a simple network of loosely coupled expert systems that is more stable and easier to manage that what we have had to date.  The following entries will explain how to build such a system with advanced messaging at its core.

架构:Introducing Expert Systems and Distributed Architecure的更多相关文章

  1. 分布式系统(Distributed System)资料

    这个资料关于分布式系统资料,作者写的太好了.拿过来以备用 网址:https://github.com/ty4z2008/Qix/blob/master/ds.md 希望转载的朋友,你可以不用联系我.但 ...

  2. 企业架构研究总结(36)——TOGAF企业连续体和工具之企业连续体构成及架构划分

    又回头看了之前文章的评论,本人也同样感慨这些文章的确像政治课本般的虚无缥缈,所以对费力看完却觉得无从下手的看官致以诚挚的歉意和理解,因为这个问题也同样困扰着笔者本人,而我能做的也只能是纸上谈兵.之前也 ...

  3. TOGAF企业连续体和工具之企业连续体构成及架构划分

    TOGAF企业连续体和工具之企业连续体构成及架构划分 又回头看了之前文章的评论,本人也同样感慨这些文章的确像政治课本般的虚无缥缈,所以对费力看完却觉得无从下手的看官致以诚挚的歉意和理解,因为这个问题也 ...

  4. 阿里十年架构经验总结的Java学习体系

    Java学习这一部分其实是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个 ...

  5. Build Telemetry for Distributed Services之Jaeger

    github链接:https://github.com/jaegertracing/jaeger 官网:https://www.jaegertracing.io/ Jaeger: open sourc ...

  6. Github上的1000多本免费电子书重磅来袭!

    Github上的1000多本免费电子书重磅来袭!   以前 StackOverFlow 也给出了一个免费电子书列表,现在在Github上可以看到时刻保持更新的列表了. 瞥一眼下面的书籍分类目录,你就能 ...

  7. Github 的一个免费编程书籍列表

    Index Ada Agda Alef Android APL Arduino ASP.NET MVC Assembly Language Non-X86 AutoHotkey Autotools A ...

  8. [C4] Andrew Ng - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization

    About this Course This course will teach you the "magic" of getting deep learning to work ...

  9. [Z] 计算机类会议期刊根据引用数排名

    一位cornell的教授做的计算机类期刊会议依据Microsoft Research引用数的排名 link:http://www.cs.cornell.edu/andru/csconf.html Th ...

随机推荐

  1. Cover Points

    CF#511 div2 B 现场掉分赛(翻车)...qwq 题目大意: 给定n个点的左边,你需要求出一个腰长最短的等腰直角三角形(顶点为坐标轴原点),是的所有点都在这个等腰直角三角形的内部或者边上. ...

  2. hdu 1213 求连通分量(并查集模板题)

    求连通分量 Sample Input2 //T5 3 //n m1 2// u v2 34 5 5 12 5 Sample Output24 # include <iostream> # ...

  3. zoj 3827(2014牡丹江现场赛 I题 )

    套公式 Sample Input 33 bit25 25 50 //百分数7 nat1 2 4 8 16 32 3710 dit10 10 10 10 10 10 10 10 10 10Sample ...

  4. transition动画

    http://rainleaves.com/demo/transition/transition.html

  5. 记2013年度成都MVP社区巡讲

    上个周六在天府软件园A区的翼起来咖啡举行了MVP社区巡讲成都站的活动,这个巡讲活动去年也搞过一次. MVP社区巡讲是 @微软中国MVP项目组 支持的,由各地的MVP担任讲师,给本地技术社区提供的一种社 ...

  6. ABP单元测试

    一.介绍 在本文中,我将介绍如何为基于ASP.NET Boilerplate的项目创建单元测试. 我将使用本文开发的相同的应用程序(使用AngularJs,ASP.NET MVC,Web API和En ...

  7. hdu 5735 Born Slippy 暴力

    Born Slippy 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5735 Description Professor Zhang has a r ...

  8. 重温JavaScript预编译的四个步骤

    JS是解释型语言,运行过程分三步: 一.语法分析(检查代码是否存在语法错误): 二.预编译(代码执行之前,在内存中开辟空间,存放变量与函数): 三.解释执行(执行JS代码): 理解预编译的过程,对于理 ...

  9. Bugzilla Error message: couldn't create child process: 720003: index.cgi

    two steps is try to fix this issue. 1. Turn off the windowns firewall 2. Register the perl to the sy ...

  10. Dynamic-Link Library Redirection

    Dynamic-Link Library Redirection Applications can depend on a specific version of a shared DLL and s ...