Graph架构图

 -----------------------------------------------------------
  |                       URL Routing                       |
  -----------------------------------------------------------
  -----------------------------------------------------------
  |                    Controller Routing                   |
  -----------------------------------------------------------  

  -----------------------------------------------------------
  |                       Controller                        |
  -----------------------------------------------------------
 -----------------------------------------------------------
  |                     View Dispatcher                     |
  -----------------------------------------------------------
  ---------  ---------  ----------  ------ -------- ---------
  |View Ad|  |Listing|  |Homepage|  |User| |Search| |Payment|
  |View   |  |View   |  |View    |  |View| |View  | |View   |
  ---------  ---------  ----------  ------ -------- ---------
  -----------------------------------------------------------
  |                    Template Engine                      |
  -----------------------------------------------------------
  -----------------------------------------------------------
  |                   Model (Data Binding)                  |
  -----------------------------------------------------------
  -----------------------------------------------------------
  |                  Model/Graph Integration                |
  -----------------------------------------------------------
 ------------------  -----------------  --------------------
  | HTTP Transport |  | PHP Transport |  | Socket Transport |
  ------------------  -----------------  --------------------
  -----------------------------------------------------------
  |         Security/Prettifier/Limit Control               | 
  -----------------------------------------------------------
 -----------------------------------------------------------
  |                      Graph () API                       |
  -----------------------------------------------------------
  -----------------------------------------------------------
  |                          Node                           |
  -----------------------------------------------------------
 -----------------------------------------------------------
  |                          Edges                          |
  -----------------------------------------------------------
  -----------------------------  ----------------------------
  |            ID             |  |        Connections       |
  -----------------------------  ----------------------------
 -----------------------------  ----------------------------
  |           Data            |  |   Algorithm Dispatcher   |
  -----------------------------  ----------------------------
  -----------------------------  --------- --------- --------
  |   Global/Local Namespace  |  |Listing| | Plain | | User |
  |           Conversion      |  |Logic  | | Logic | | Logic|
  -----------------------------  --------- --------- --------
 -----------------------------  ----------------------------
  |     Storage Dispatcher    |  |    Search Dispatcher     |
  -----------------------------  ----------------------------
  -------- --------  ----------  --------- -------- ---------
  |MySQL | |Mongo |  |External|  |Elastic| |Solr  | |MySQL  |
  |Driver| |Driver|  |Driver  |  |Search | |Search| |Search |
  -------- --------  ----------  --------- -------- ---------

Database Driver 完成所有与具体的数据库服务器之间的接口。 这一层以上不会再出现任何babel_topid,tpc_bak2, attributeData这样的字符串了。

Storage Dispatcher, Search Dispatcher根据对象类型分配driver.
这一层以上不应该有任何地方知道数据存在哪里,如何存储。

Global/Local Namespace Conversion层,保证之上所有的对象都是用GID访问。
这一层以上不应该有任何地方能够看到lid(Local ID),所有ID都是唯一的。
这一层一下不应该知道有global ID的存在

Data层,基础数据类,所有数据从它而来。完成Versioning等

Algorithm Dispatcher层,根据不同上下文选择合适的connection逻辑
这一层之上不应该知道任何业务逻辑(这里使用Strategy设计模式,并不产生混乱)

Listing Logic等层,提供置顶,排序,去除等各种listing业务逻辑

Search Dispatcher层,把Query分配给合适的Search提供者
这一层以上不应该知道搜索由谁提供
这一层以下不应该知道任何逻辑

Edges层,解析id,和id的各种连接。
这一层之上把conn就应该当作数据的一部分,不作区分。

Node层,Graph的基础数据层

Graph层,提供graph()函数调用,以及对于Graph的命令解析,提供斜线分割的语法。

Security层,保证API的调用安全性,访问次数,对象组装等最后包装工作

Transport层,提供各种连入Graph API的方法。

Transport层以上是示意图,并没有仔细推敲,大概描述使用Graph API的场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值