我昨天和我的一个朋友一起去了酒吧,我们开始讨论他在他工作的公司使用的架构.这个对话基本上围绕着共享数据库架构与分布式独立应用程序架构的优缺点 - 我们无法达成共识,在这种情况下,我想听听人们对这两种方法的优缺点的看法.
基本上,他所工作的公司拥有一个拥有许多不同应用程序的大型架构.某些应用程序具有单个数据库,它们在它们之间共享.例如,有一个应用程序为用户提供UI以更改参考数据.该参考数据由另一个也访问相同数据的应用程序使用.我相信代码实际上是作为共享库编写的(即两个应用程序都将使用为每个代码集重新部署的公共代码集(一个将其作为依赖项)).
还有其他应用程序与数据库,其他应用程序也使用直接JDBC连接与数据访问代码(两个应用程序之间不常见 - 重复!!呃!).
我的问题是围绕这个架构的优缺点而不是一个架构,其中每个应用程序都包含它在筒仓中的"主"数据.如果应用程序x需要来自应用程序的数据,则他们使用Web服务或某些消息传递技术来接收该数据.
消息传递方法将引入一个问题,即当前现在必须从另一个源获取在其他应用程序的数据库中使用的参考数据"代码"(或外键).在当前的体系结构中,这些体系的"解码"可以随时更改并立即反映在外部应用程序中,而不必具有复制数据的主/从关系 - 或者应用程序x必须查询应用程序的替代方案y只是为了显示解码值.
我曾阅读过企业集成模式,虽然它确实提供了一些消息传递优势的例子 - 但我并不那么信服.
谢谢伊恩
或者创建一个由域模型组成的域层,并与JPA实体交谈以进行数据库访问?两种方法的优缺点是什么?谢谢!
我需要在Java中为我的可自定义搜索界面(我正在编写的webapp)实现一个查询对象模式.
有谁知道我在哪里可以获得查询对象模式(Martin Fowler的QoP)的示例/教程?
提前致谢
加成如何查询模式添加到现有的DAO模式?
我正在尝试为包含SQL查询结果的XML字符串创建解析器框架.目的是继承通用类,这些类使用列数据类型进行实例化.包含的代码适用于单列变体.将有两列的其他类,等等.
我需要能够指定泛型类型必须支持Parse(string)方法.我该怎么做呢?
abstract class OneColumnParser<Col1>
{
abstract string Column1;
List<Col1> ParseQueryResult(string queryResult)
{
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(queryResult);
List<Col1> results = new List<Col1>();
foreach (XmlNode xNode in xDoc.GetElementsByTagName(Column1))
{
results.Add(Col1.Parse(xNode.InnerText));
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译上面的内容时,我得到"'Col1'是'type参数',在results.Add()行的给定上下文中无效",因为我没有指定该类型必须支持该方法.但是怎么样?