Final Projects Proposed by TAs

Text Transformation Web Service

Motivation: 多语言服务平台与管理器 跨越语言边界 把诸如markup语法处理这种工作直接用原本的标准实现解决 而不是寻求某一语言下的统一

RESTful风格,其实接口很简单,只需要传 (api_key, text, transformer_id) 即可 一个transformer可以和多个filter组合,filter按顺序排列,可以拦截both request and response,也可以拦截either request or response transformer是一个需要运行的程序,指定运行参数和环境等等 (比如cpplint.py,markdown.pl) filter既可以是本地程序,也可以是另一个web service,甚至就是text transformation web service本身,反正都是通过Web调用 其实transformer和filter也一样,也可以是另一个web service,比如MediaWiki API

图示是一个transformation process,其实transformer和filter本质上是一样的,process把他们有机组合起来

                             (filters)
+--------+                  +--+    +--+            +---+
|        | => (request) ==> |>>| => |>>| =========> |-\ |
|        |                  +--+    |  |            | $ |
| client |                          |  |            | $ | (transformer)
|        |                          |  |    +--+    | $ |
|        | <= (response) <========= |<<| <= |<<| <= |-/ |
+--------+                          +--+    +--+    +---|
                                      (filters)
除了这个接口,还要写transformer、filter、api_key等的管理界面。这个管理界面要和CAS整合起来。另外还要写定期检测这些服务是否可用的系统。 由于有api_key,还要对每个app的quota进行统计、分析、限制等等,比如流量、次数、密度、请求大小、响应时间等等;quota也要能够控制、管理

语言既可以用Java也可以用PHP,数据库用SQLite即可

另:CAS数据库的管理也需要一个系统,比如批量添加删除用户,以及指定权限(use_git等),同时还要能够alter table structure,以适应新的应用并添加对应的权限field

个人工具