模块化架构 "multiplatform"

Modular architecture "multiplatform"

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

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

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

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

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

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

您是否知道一些开源应用程序可以像我想的那样工作,以便我可以理解它们是如何做到的?

谢谢。

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

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

正在回复 OP 评论。 当我说构建 REST API 基本上是将它部署在应用程序服务器(支持 http 调用的东西)的后端解决方案中时,我的意思是将它与通常部署在另一台服务器中的客户端代码隔离开来.有一些示例,例如 spring-mvc、node.js、.net,基本上这些已部署服务的唯一职责是处理所有调用以从您的业务逻辑中获取结果。

可以找到企业和付费解决方案的好例子here。 要获得有关后端概念的更多知识,您可能会发现有用 this and this. About the examples it really depends on the tec hnology that you use, but I think cakephp have some plugins to handle the REST API calls.