【问题标题】:Modular architecture "multiplatform"模块化架构“多平台”
【发布时间】:2016-07-24 16:08:47
【问题描述】:

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

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

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

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

您可能已经理解了,我的想法是创建一个 Web 服务应用程序。 Web 应用程序将通过 Web 服务请求所有内容,它也适用于移动平台。 但是,我从未在某处见过它,我什至不确定这是一个好主意。你能确认一下吗?

如果这真的是个好主意,我该如何处理用户的身份验证和会话?如果我想使用登录名/密码以外的其他东西进行身份验证(Kerberos、CAS、LDAP、X509 ...),我们可以在“webservices”端处理它吗? 一旦用户验证了他的登录名/密码,我该如何处理对受保护网络服务的请求,即更新用户(我应该在每个请求中使用票证吗?)

你知道一些开源应用程序可以按我的意愿工作,以便我了解他们是如何做到的吗?

谢谢。

【问题讨论】:

    标签: web-services architecture software-design


    【解决方案1】:

    我认为最好的方法是使用 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

    【讨论】:

    • 谢谢你的回答,这就是我的想法。我没有考虑在 Web 应用程序上使用 javascript,但更有可能在服务器端使用 curl(我们在工作中使用 cakephp)。主要思想是使用 API 创建一个 Web 应用程序。此 API 将在应用程序本身内部使用(我清楚吗?)。通过应用程序服务器,您的意思是在 API 端或每个平台(Web、移动设备等)处理 SSO 和会话。您是否知道一些类似的应用程序示例,以便我可以更好地理解?谢谢。
    • 嗨 Ryuu 在我的回复中回答
    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 2021-07-03
    • 2016-04-26
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多