通过网络解耦UI和计算的简单示例

时间:2014-06-03 07:27:14

标签: java web-services java-ee servlets soa

我正在寻找一个简单的例子,

  1. 用户界面是基于网络的(通过网络浏览器访问)
  2. 业务逻辑(API)部署在服务器上。它是一个打印机管理应用程序。
  3. 商业逻辑将访问外部电子打印机&可以访问其状态。多台打印机可以连接到同一台服务器。
  4. 需要在用户界面上显示排队,打印等文件(或计数)的实时图表。
  5. 用户应该能够继续特定于打印机的会话。一次只有一个用户可以访问打印机(为用户阻止)。
  6. 用户可以通过网络向打印机发出命令(任务可能需要10-15分钟才能完成。同时,用户将监控进度)。
  7. 我已经编写了使用COM端口处理计算机 - 打印机交互的程序。本地UI工作正常。现在我想在网上有UI。

    请指导我应该使用哪种方法来创建此类应用程序。虽然我有一些Java经验,但我是Java EE或任何网络协议的新手。

2 个答案:

答案 0 :(得分:2)

  • 您希望将信息(关于连接的打印机,剩余的纸张等)从一个系统传输到另一个系统。
  • 您还希望每个用户每台打印机具有一次独占锁定。

要排成一条短线   - 您希望打印机服务器为Web应用程序提供打印服务。

你听说过webservices ??

答案 1 :(得分:1)

嗯,java EE 6或7是你最好的选择,因为你已经有了一些Java背景知识。对于第一个问题(基于UI网络),我建议使用Javaserver Faces技术,因为它与Java EE完美集成。第二部分,关于业务逻辑(问题#2)。我建议使用上下文和依赖注入(CDI),因为它们定义了一组由Java EE容器(服务器)提供的上下文服务,并允许很多灵活性来集成不同的组件(而不仅仅是EJB)。您将需要使用Java EE提供的有状态对象来管理打印机的用户特定会话。  管理访问权限电子打印机的状态,JPA是您的最佳选择,因为它将为您提供容器管理的安全和交易服务,以保持和访问电子打印机状态。具有Interceptor业务方法的Singleton会话bean可用于每个应用程序的统计目的,以解决第4期问题。  Java EE提供了一种Annotation类型的并发管理,它非常易于使用。您需要做的就是使用@Lock(LockType.WRITE)或@Lock(LockType.READ)注释来注释业务方法(在这种情况下,在打印机上执行某些操作)以锁定对打印机的访问权限。打电话给这样的方法。 为了澄清上述技术,我建议您在开始项目之前阅读Java EE 7食谱。祝你好运!