模块化架构"多平台"

时间:2016-04-04 22:39:17

标签: web-services architecture software-design

首先,如果标题有点误导,我很抱歉,但我找不到更好的词来形容它。

在不久的将来,我将开发一个全新的Web应用程序。 Web应用程序本身不是问题,但我已经知道客户想要什么。今天他们想要一个满足他们需求的基本网站,但明天他们也会有智能手机和平板电脑,他们会要求移动应用程序。最简单的方法显然是创造一个好的CSS"这将在每个平台上使用(已经计划好)。 但是,我认为能够在移动平台(Android,苹果,Windows)上提供原生体验也是一个不错的选择,而这正是我面对的一些我真正不知道的事情。

我不是真正的移动开发者,但我非常确定我可以将我的应用程序连接到数据库(这是Web应用程序使用的数据库)。通过这种方式,我可以重做我在Web应用程序上完成的所有操作,并且两者都可以一起工作。它很可能工作得很好,但这意味着我必须将我的逻辑代码复制到Web应用程序和移动应用程序(对于每个平台!)。在短期内,这是一个很大的问题:没问题,但很快项目将无法维持。

我们的想法是在一端创建所有内容,并在Web应用程序/移动应用程序上使用此逻辑。主要的好处是无论我使用移动应用程序还是Web应用程序,我都会严格调用相同的程序,每个平台的开发也会更容易,因为我们只需要进行显示和设计。

您可能已经了解的广告,我的想法是创建一个Web服务应用程序。 Web应用程序将通过Web服务请求所有内容,并且也适用于移动平台。 但是,我从来没有在某个地方看到它,我甚至不确定这是一个非常好的主意。你能证实吗?

如果这真的是一个好主意,我该如何处理身份验证&用户的会话?如果我想使用其他东西而不是login / pwd进行身份验证(Kerberos,CAS,LDAP,X509 ......),我们是否可以在" webservices"侧。 一旦用户验证了他的登录/密码,我如何处理对受保护的web服务的请求,即更新用户(我应该在每个请求中使用票证吗?)

您是否知道一些开源应用程序可以按照我的意愿运行,以便了解他们是如何做到的?

谢谢。

1 个答案:

答案 0 :(得分:3)

我认为最好的方法是使用REST API,您需要对业务逻辑进行编码,并在您想要编写可以理解REST API的客户端的任何平台上重用。基本上将服务与视图分离。 考虑在你的web应用程序中使用任何能够做一些HTTP请求的javascript fwk,从android / ios设备中有一些有用的库也可以调用REST端点。

可以使用OAuth,SSO或其他使用不同框架的机制进行身份验证,具体取决于您要开发的语言。 会话将由您部署解决方案的应用程序服务器处理。

回答OP评论。 当我说构建一个REST API基本上它被部署在应用服务器的后端解决方案中(支持http调用的东西),这意味着它与客户端代码隔离,通常部署在另一个服务器中。有一些例子,比如spring-mvc,node.js,.net,基本上这些部署的服务的唯一责任是处理从业务逻辑中获取结果的所有调用。

可以找到企业和付费解决方案的良好示例here。 要了解有关后端概念的更多信息,您可能会发现有用thisthis。关于这些示例,它实际上取决于您使用的技术,但我认为cakephp有一些插件来处理REST API calls