问题标签 [application-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何拆分数据层和业务对象层,各自的职责是什么?
如果有一个像这样分层的业务应用程序,这是否是适当的分工:
数据访问
仅调用存储过程,将DTO的属性映射到哈希表,用于填充 ADO.NET 命令的参数集合。
仅参考 SqlDataClient 的程序集。
- 处理映射代码中的空白、null 和空的含义的重要逻辑,但其他情况下没有验证或其他特定于域的逻辑。
所谓的业务逻辑
将多个结果集拆分为单独的数据表,例如
公共无效 ReturnNthRecordSetFromStoredProcFoo()
传递到数据集的数据访问,例如
public void ReturnDataSet(string name){ return (new PersonController).GetAnotherDataSet(name);}
将 DataTable的一行映射到一个DTO
- 处理映射代码中空白、空值和空的含义的重要逻辑。
- 保存事务对象,尽管它专门用于包装单个存储过程调用。
- 没有对 SqlDataClient 的引用,所以它不能使用 SqlDataReaders 来填充 DTO
- 没有参考 System.Web.UI
- 授权规则,但除此之外没有特定于域的逻辑。
用户界面
- DTO 到 ASP.NET 表单的 2 路数据绑定。
- 控件属性的验证 - 通常不直接针对 DTO 进行验证
- 通过将 DataSet 绑定到网格来导航“集合”。实际上,尝试对集合进行任何操作都需要 UI 遍历 DataTables 中的 DataRows 并知道适当的列名是什么(通常只是与 DTO 有点相似)
所以最后的问题是——对于这个应用程序,数据访问层是否应该承担所谓的业务层的职责? 除了额外组装带来的不便之外,这不是已经是两层(几乎是一层!)应用程序了吗?
附加信息:好的,我已经知道应用程序服务器将是一台机器,可能永远是一台机器,因为它是一个低用户数的 Intranet 应用程序。所以我知道不要设计物理上独立的应用程序层。此外,它可能只支持一个 UI,如果它需要支持 ASP.NET 以外的其他东西,它可能会被完全废弃——这是层/层的另一个经常引用的原因。
java - Java 应用程序的 Web 用户界面
我正在尝试为 Java 应用程序创建 Web 用户界面。用户界面将非常简单,由一个带有供用户提出查询的表单的页面和一个结果页面组成——有点像谷歌的搜索引擎或 Ask.com。
我对 Java 的基本 API 非常熟悉,但是我没有太多在 Web 环境中使用 Java 的经验(尽管我使用过 ASP.NET),所以我正在寻找一些建议:
我应该使用什么Web 应用程序服务器?请注意,我的界面非常轻巧,我只想要快速、易于启动/重置/停止和(重新)部署我的应用程序的东西。另外,我需要它在多种环境下工作,即 GNU/Linux、Mac OS X 和 Windows XP/Vista。此外,我正在使用
ant
andEclipse
,所以如果我可以轻松地添加一些ant
服务器管理目标和/或使用 IDE 管理服务器,那就太好了。我研究过Tomcat和Jetty,而后者似乎非常轻巧,易于安装和部署。这是理想的,因为 GUI 仅用于演示目的,我可能需要将它部署在不同的计算机上。但是,Tomcat 已经存在了很长时间,而且看起来更加成熟。至于网页,Java Server Pages 看起来很合适,因为它们对于我想要完成的工作(处理表单并输出结果)来说似乎足够简单,但我很乐意听取建议。
- 我还有另一个要求,需要我解释应用程序的“基本”工作流程:基本上,我有一个类
Engine
,它有一个方法run(String)
可以处理用户的输入并返回结果以供显示。这个类是应用程序的核心。现在,我只想实例化这个类一次,因为它需要大量内存,并且需要很长时间才能启动,所以我想在应用程序/服务器启动时创建它,并将该引用存储为应用程序的整个范围(即,直到我停止服务器)。然后,对于每个用户请求,我只需调用实例的run
方法,并显示其结果。Engine
这如何在 Java 中实现?
java - 是否可以在 Weblogic 10.3 中运行 OSGi 组件?
是否可以在 Weblogic 10.3 中运行 OSGi 组件?从我读过的内容来看,这是不可能的,但我只是要求 100% 确定。没有换出 WL 10.3 的选项,因此无需列出任何其他应用程序服务器或 OSGi 容器。
谢谢
java - Spring Batch 有哪些替代方案来处理排队作业?
我一直在寻找 Spring Batch 来解决每个作业涉及大量数据的批处理场景。还有其他解决方案可以与 Spring Batch 竞争吗?在 Java EE 环境中使用。
deployment - 是否有理由将依赖项放在 Web 服务器的 lib 目录中,而不是将其包含在 War 文件中?
如果我的应用程序有一个依赖 Jar,最好将它放在 war 文件 lib 目录中还是将它放在全局应用程序服务器(如 Tomcat)lib 目录中?通过使用一种方法而不是另一种方法,我可以获得什么?
磁盘空间浮现在脑海中,但我们生活在磁盘空间便宜的时代。内存使用有区别吗?比我更有经验的人可以列出这两种选择的优缺点吗?
java - 应用服务器启动时间比较?
几个月前,我阅读了一篇博客文章,其中比较了不同的 (Java) 应用程序服务器,重点关注在部署新/更改的代码后启动/重新启动服务器所花费的时间,以及对丢失的开发人员的讨论所有这些重新启动导致的生产力。
我忘记为博客文章添加书签了;我试过谷歌,但我找不到原始文章。
有没有其他人看过/读过这篇文章,或者有类似文章/统计的链接?
json - JSON 异步应用服务器?
首先解释一下我需要的数据流
现在所有这些都可以轻松直接地手动完成,但我想利用某种服务器来处理所有连接内容,保持活动,死客户端等。
做这种事情有什么先例吗?客户端在哪里从服务器异步连接和接收 JSON 消息?不使用手动套接字编程?
java - 为什么不运行启用夏令时的服务器端应用程序?
我已经实现了一个服务器端应用程序,它在创建和更新记录时记录时间戳。该应用程序假定服务器时钟没有启用夏令时,(a)因为我已经阅读了这是最佳实践,(b)因为我认为处理发生的歧义会很棘手(如果不是不可能的话),例如,10 月时钟倒退一个小时。
为安全起见,如果应用程序在启动时检测到 DST 已启用,则会记录错误并终止应用程序。即使应用服务器时钟启用了 DST,内部利益相关者也请求我使应用程序正常工作。
我觉得这是一件很鲁莽的事情,但我需要说服管理层。仅仅是它使实施变得更加棘手,还是存在根本缺陷,以至于这样的应用程序(记录时间戳)不可能在一年中的任何时候都 100% 正确运行?在启用 DST 的情况下不运行此类应用程序的最佳论据是什么?
我想出的最好的是:
启用夏令时时,每年有两次时间不连续。考虑以下场景,其中服务器在英国运行,时钟设置为本地时间并启用了夏令时:2009 年 10 月 25 日凌晨 2 点,时钟倒退一小时到凌晨 1 点。 1.30am 创建记录 该应用程序(必须以 UTC 存储时间戳)无法判断这是时钟倒退之前还是之后的凌晨 1.30,因此无法确定是否在调整 UTC 时包括额外的一小时。
这是真的?实际上是否可以确定(在 Java 网络应用程序中)在 10 月 25 日凌晨 1.30 发生的事件是在时钟调整之前还是之后?
避免 DST 的更好理由是什么?
更新
需要明确的是,应用程序必须将时间存储为 UTC。问题是为什么在尝试这样做时,在服务器机器上启用 DST 是个坏主意。
asp.net - 负载平衡产生的问题
我有一个在一台服务器上运行良好的 ASP.NET 3.0 应用程序。它使用应用程序变量来检查用户是否已签出文件并为所有其他用户锁定它。当我将应用程序放在负载平衡服务器上时,应用程序没有按预期工作,因为它有多个用户被发送到多个服务器,每个用户都可以签出所需的文件。
要点是有什么方法可以在我的应用程序中共享应用程序变量,即使它分布在多个服务器上。有没有更好的方法来获取全局变量?
webserver - 应用服务器和Web服务器有什么区别?
可能重复:
应用程序服务器和 Web 服务器有什么区别?
应用服务器和Web服务器有什么区别?