2013-05-01 86 views
-1

首先,我意识到这个问题有很大的潜力被关闭为“不是真正的问题”或类似的东西,因为它不是直接的“编程问题”但我强烈要求你,在你关闭它之前请先阅读它,如果你觉得有帮助,请贡献一下。设计JAVA客户端 - 服务器应用程序

问题:

我小的Java开发人员,将有开发一个完全成熟的客户端 - 服务器的Java应用程序的任务。如果我进入更多的细节,应用程序将包含一个将连接到数据库的服务器,或者将基本上是一个数据库,许多这些客户端将连接到该数据库。

我的应用程序应该能够:

  1. (客户端)发送每日报告给服务器
  2. (客户端)更新自己当一个新的客户端版本可用

问题/秒:

有些高级JAVA开发人员和有经验的程序员可以给我一些建议,关于哪些书籍或指南可以抓取,尤其是关于优秀软件设计的主题n原则? 我也在上面的第2点上搜索了相当多的东西,但是我的搜索没有产生任何好结果..

谢谢!

+1

与答案无关,但我嫉妒你得到的项目。 – 2013-05-01 16:55:22

回答

1

你的问题很简单,但没有一个单一的资源可以引用,以加快“软件设计”的速度。以下是一些相关领域的推荐读物,绝非全面,但会让您走上正轨,快速。

一旦您掌握了基本知识,您就可以轻松找到更为严肃的文本,特别是关于OOP类设计和体系结构的主题。 (获取基本权利比你想象的更难,这将是一个值得追求的目标恕我直言)

  • 好的代码 - 尝试代码完成。另外谷歌的短语代码闻起来
  • 好类的设计原则 - 阅读并了解SOLID的最基本
  • 良好的代码设计又名模式 - 尝试抬起头设计模式
  • 好的程序设计 - 尝试设计软件的设计架构实践

至于第2点 - 您选择实施此方法,将决定如何以及是否需要自动更新。 Here's an answer to this question

1

选择一个主题,我们可以交谈了很多围绕一个或多个饮料:

  • 套接字:局域网,使用java.nio.channels中和java.nio.ByteBuffer中
  • HTTP:广域网络
  • CORBA:如果你是受虐狂
  • RMI:在局域网
  • 简单...
+0

好极了。那么我应该保持简单。所以我会选择套接字。客户端应该能够访问数据库并写入数据库。为什么套接字?因为交换的数据将只是一些布尔值,整数和文本。没有太复杂的。但首先我想要熟悉良好的设计原则。 – RecursionSnake 2013-05-01 17:04:15

1

你可以用套接字来实现它。如果是这样,您需要在客户端创建两个线程。一个会监听服务器的线程更新,另一个会每天向服务器发送报告。服务器将有2倍的客户线程数。

你可以通过RMI来实现,这需要更多的研究,然后你可以调用其他方法来发送报告或获取更新。

2

你可以想象,这个车轮已经被发明了很多次。

不要使用原始套接字。今天没有理由为商品业务工作做这样的事情。

在它们之上使用一些东西。

随着您提供的10秒摘要,没有理由不能使用Web服务(正式的,基于SOAP的Web服务或基于特定的HTTP)。

这样你就可以使用商品,有据可查,广泛使用的基础设施,并有很多例子。在后端拍摄Tomcat或Glassfish,并让它处理数据库杂事。

RMI很烦琐。现在除了传统系统外,CORBA已经被弃用了,如果你打算去CORBA,那么你可以去远程EJB。

现代SOAP Web服务(大部分)是用现代IDE进行拖放。没有理由写套接字,写一个服务器,任何一个。我们有很多Java服务器工具。 Servlet容器无处不在,可靠。

我同意使用Java Web Start作为GUI。它需要一些设置,但使得部署远远更容易。

相关问题