2012-06-04 29 views
1

我正在创建一个整体网站,将我组合成一堆小型网站。当然,它们都是相互关联的,但不同的人会因不同的原因登录到不同的部分。体系结构设计:分离应用程序并通过API进行交互

有一件事我试图摆脱从AA级单芯片架构,我喜欢打破一切成子项目这样一个团队可以在一个项目上工作的想法,一个团队可以在另一个项目上工作,等

我的问题:我听到越来越多的人通过宁静的API来进行项目间通信,而不是直接访问数据库。

例如:

   app 4 
        | 
app1 -----> central core <------app2 
        | 
       app 3 

所以应用程式1-4将与中央核心通过API的方式沟通。他们将针对自己的具体应用拥有自己的个人模型,但核心核心将包含大部分应用程序。

我的问题:关于这个设计的正确实施,还是应该坚持包含一个模型实现的传统整体项目?

我在哪里可以找到良好的系统架构示例?

感谢

+1

一个选项是阅读DDD(域驱动设计)和特定的有界上下文和上下文映射。 – alexn

回答

1

毫无疑问的是抽象的功能集成到API是去降低维护开销的正确途径。你应该看到像llvm这样的项目。

将应用程序分解为“核心”和“驱动程序”会带来的问题是,软件升级会变得有点棘手。因为现在你必须一起升级核心和驱动程序。这是将软件作为图书馆运送的最大问题。如果核心是旧的,驱动程序是新的,那么它将不起作用。

但我不认为这是你的问题。

这是关于软件设计的很多好书。