附录D:架构FAQ

基本的系统架构

DreamFactory是一个开源的REST API提供RESTful服务的后端构建移动网络,物联网的应用程序。在技术术语,DreamFactory是一个运行时应用程序,运行在web服务器类似于一个网站在传统灯服务器上运行。

事实上,作为一个基础,我们需要一个托管web服务器,比如Apache, NGINX,或者IIS。DreamFactory是用PHP编写的,需要获得一个默认SQL数据库来保存配置。根据配置缓存等,它可能会或可能不会需要访问本地存储的文件系统。如果需要提前和/或推迟处理脚本,访问V8Js或节点。Js可能也是必要的。它运行在大多数Linux发行版(Ubuntu, Red Hat, CentOS等等),苹果Mac OS X和Microsoft Windows。

高度灵活的安装选项。你可以安装DreamFactory IaaS云,PaaS提供者,集装箱码头工人,premises server,或者一台笔记本电脑。安装程序包可用,或DreamFactory源代码在GitHub Apache许可下可用。

DreamFactory组件

DreamFactory应用程序逻辑上可以划分为若干个操作组件。虽然这些组件是逻辑,不一定代表代码结构本身,他们是有用的在讨论子系统和应用程序的功能,以及API调用的解剖。

路由

路由设置支持HTTP接口系统。该组件与控制器,控制的流动通过系统调用。控制器基本上是组路线或HTTP调用逻辑处理和分享一些搭配一组访问控制组件。基本上有三种控制器的路由组件可以手动取消。

•飞溅控制器——这个处理初始载荷和设置系统的状态。它还航线网络流量默认的web应用程序(例如发射台),用户可以登录和访问其他应用程序(如管理控制台配置,等等。

•存储控制器——这个处理直接文件访问任何文件服务,通过配置文件夹已被公开。通过服务名称和文件要求完整的文件路径相对于服务。文件内容是直接返回给客户机。这主要是用于运行应用程序的托管在DreamFactory实例。

•其他控制器——这是主控制器的API,它处理API的版本控制和路由的各种安装服务通过服务处理程序。它还处理任何系统异常和响应格式。服务处理程序一般沟通与所有服务通过服务请求和响应对象。

访问控制

访问控制是由中间件,团体的制衡,可以用来控制访问应用程序的各个部分。服务和资源访问控制包括以下几点:万博手机登录平台

••跨源资源共享系统状态检查(歌珥)配置津贴•通过用户登录验证,API密钥和/或会话令牌通过指定的用户和应用程序角色访问••授权和使用限制跟踪和限制

如果这些检查失败,呼叫被拒绝和正确的错误响应发送回客户端;不做进一步处理。如果所有这些检查通过,电话可以继续处理控制器,这路线要求适当的API处理。

API处理

此时的API可以进一步分解成逻辑组件,我们称之为服务。服务可以从系统配置处理程序(即“系统”服务),数据库访问点,或一个远程web服务。服务类型可以动态地添加到系统扩大服务,但许多人包括开箱即用的列表在这里

服务器端脚本

剩下的一部分包括服务器端脚本处理的服务。每个API端点,无论是服务端点、弧或资源端点,触发两个处理事件,一个预处理和后处理。每个事件可以被脚本改变请求(前)或响应(post),执行额外的逻辑包括额外的实例上调用其他服务或外部调用,以及停止执行并抛出异常。脚本可用于公式字段,字段验证工作流触发器、访问控制、定制服务,和使用限制。基于角色的访问控制有单独设置管理数据访问的客户端应用程序和服务器端脚本。这种能力使服务器端脚本能够安全地执行特殊操作不可以从客户端REST API。

事件脚本所有发生在原始API调用的上下文。因此,事件脚本块的进一步执行API调用,直到完成。

DreamFactory使用谷歌开发的V8引擎运行服务器端JavaScript编写的代码。V8引擎是沙箱,所以服务器端脚本不能干扰其他系统操作或资源。万博手机登录平台

在2.0中,DreamFactory还提供了使用节点的访问。js和PHP服务器端脚本环境。然而这些环境不是沙箱和使用时必须小心。

数据库和文件存储的访问

上面提到的许多服务最终需要访问一些数据或文件存储与远程过程或服务器通信。DreamFactory许多可用的开源软件包,利用sdk和其他编译驱动程序来访问这些资源。万博手机登录平台

的数据库访问,DreamFactory使用PDO SQL数据库的驱动程序,以及其他编译驱动程序和扩展,如MongoDB,甚至HTTP包装器类等数据库CouchDB提供HTTP接口。

DreamFactory为常用的数据提供了内部模型和模式访问组件,特别是系统配置组件。最常用也缓存来减少数据库事务。

DreamFactory实例可以使用本地文件存储或其他存储选项,例如基于云的存储。DreamFactory利用通用文件访问工具,支持大多数的存储选项,从而使这个系统,因此API,一个一致的方式访问文件存储。

解剖一个API调用

解剖一个存储的电话

总之

DreamFactory设计是安全的,使用简单,易于定制,动态可扩展的API来满足你的需求。接触DreamFactory工程团队,如果你有其他问题的担忧。

Baidu
map