拍拍AppPlatform中间件解决方案简介大纲系统原理灵活部署快捷开发PaiPai后台服务的整体架构AppServer 内部协议流转四种模式AppServer开发模式映射到AppPlatform中间件架构AppPlatform(App ContainerAutoGen)AutoGen框架代码生成工具(C++h数据源)AutoGen框架代码生成工具 (JavaIDL数据源)AppPlatform中间件部署架构——传统两层架构AppPlatform部署架构——传统三层架构 AppPlatform部署架构——大APP架构传统Statful状态机的实现优化后的Statful状态机的实现谢谢大 家!问题?腾讯大讲堂第五十八期研发管理部大讲堂主页:http://km.oa.com/class与讲师互动: http://km.oa.com/group/class电子商务部鲁锋(henrylu)2009-02-14推荐Int OnExecute(){switch(m_cStat){ caseS_START: OnWebRequest(WebRequest[out]); //DoSomething… DoDB1Request(DB1Request[in]); m_cStat=S_ CHECK_1;return1; caseS_CHECK_1: OnDB1Response(DB1Response[o ut]); //DoSomething… DoDB2Request(DB2Request[in]); m_cSt at=S_CHECK_2;return1; caseS_CHECK_2: OnDB2Response(DB2Res ponse[out]); //Dosomething… DoWebResponse(WebResponse[in]); m_cStat=S_FINISH;return0;}//… return0;}IntOnExecute(){ OnWebRequest(WebRequest[out ]); //DoSomething… CallDB1(DB1Request[in],DB1Response[out ]); //DoSomething…withDB1Response CallDB2(DB2Request[in ],DB2Response[out]); //DoSomething…withDB2Response DoWe bResponse(WebResponse[in]); //… return0;}奥妙就在此:CallDB1(D B1Request[in],DB1Response[out]){ DoDB1Request(DB1Request[in]) ; Schedule();//LinuxSystemCallswapcontext(…) OnDB1Respons e(DB1Response[out]);}将底层重复代码封装成一个容器服务器(Container),并提供统一的接口和日志格式 ,物理上把应用层代码封装成动态链接库,有效地隔离了底层代码改动带来的影响。Netio提供了独立的网络接入方案,部署在AppCon tainer的前端和后端,异步处理TCP或UDP数据,并将其传入AppContainer的前置/后置消息队列中,待AppContainer逐一处理。降低了AppContainer的复杂度和繁忙度。 |
|