亚信CRM7.0新框架AppEngine3.0培训摘要
来源:互联网 发布:docker windows程序 编辑:程序博客网 时间:2024/04/29 06:16
南京培训:
FTP下载地址:10.11.20.110
端口号:21
用户名:crmftpdownload
密码:crmftpdownload
jar包路径:/AppEngine-PUB/AppEngine_V3.X/appengine_V3.0_20150210
文档路径:/AppEngine-PUB/AppEngine_doc/AppEngineV3.0/
集成工具:/AppEngine-PUB/InstallTools/AppEngine3.0(已集成AppEngineV3.0版本插件)
视频路径:/AppEngine-PUB/AppEngine_doc/AppEngineV2.2/video(基于AppEngineV2.2版本录制)
3.23.2015(张峰)
上午:
SaaS,A-PaaS,I-Paas,IaaS.
下午(OVERVIEW):
域—实体:该做什么?
模型。
SID整套框架 海外交流共同语言:TMF公共框架(业务语言)。
TMF:业务流程框架(eTom),信息框架(SID),应用框架(模块 系统 划分),集成框架
eTom,SID有大量的实践。
SID 首先划分了很多Domain,CRM的众多域:MarketSalesProduct Customer Service
Recourse Supplier/partnerEnterprise Common-Business.
ABE: Business Entity,Attribute&RelationShip
Specification:对一类产品定好规格,以免每增加一种产品需要增加相应的代码。
AbstractSuperclass,Composite,Role Entity(party参与人),
Temporal StateEntity(PS:状态子表描述实体状态),Self Relationship,
EntitySpecification Characteristic/Entity Characteristic.
现在讲的CRM主要指客户交互。
区分好ABE中:实例和规格。 ProductOffering:套餐 MarketingResourse:营销资源
APaas里头有一堆构件,ABE与业务构件一一对应,如此架构能够避免数据频繁增加
带来的混乱。
在父类里头体现关系;
Identification:识别信息的标识号,成对出现,识别类型与识别号;
PartyRole;
Contacts(联系人)包括联系人,决策人,关键人,担保人等。
产品模型(7.0中最重要最难的)
一些服务依赖主服务;
产品规格,多个服务封装成一个产品规格,
面向资源服务->面向客户服务->产品规格->组合产品规格;
销售品,“资费前移”;
产品->原子消费品->组合销售品。定价计划根据产品特征的取值来决定。
产品线:是技术上具有主从关系的一组产品的集合,有且只有一个主产品。
销售品产品关系。
订单域最关键最核心,是资料的入口。
业务交互:请求,响应,通知,协议。
客户交互项:之间存在依赖,互斥,连带等关系。
业务交互角色:个人或组织参与业务交互过程中,扮演不同的角色。
3.24.2015(英林海)
功能模块;
Page and ServiceSeparation 前后台开发完全分离,通过HUB中间层拼装;
快速开发;职责明确(设计态视图转化为开发代码);
三流合一整合成一个业务流,设计态事件和规则划分。
如何配置APPEngine:
倒架包,删缓存文件,关联主要文件类型打开方式,
HTML,java,javascript编码方式改为UTF-8。
Nginx静态WEB容器只部署HTML纯静态的东西。
Appengine.au 注册服务器信息文件
update.dat从FTP下载升级设计开发工具版本。
Appengine-lib 平台依赖的jar包;
Paas Project:业务能力,applicationProject;
Saas HTML:web Project;
AEDomain.properties 一个域对应一个Paas工程;
AppEnginePreferenses:
Code ReviewSetting;Composite:Abo,UIEntity;Configtools。
Event Server:配置,用于build,startEvent;
Register:把元数据等注册到数据库中ae开头的表中;
AppEngine New:只new workflow;
Attribute:流程节点属性的配置;
New ResourceCategory;
Cache.xml defaults.xml 数据源的配置;
aicache.properties 缓存文件的配置;
AIConfig.xml 数据方言的配置,AilkMutiDialectImpl 复合数据库的配置;
save()保存与更新,只允许逻辑删除;
getBeanId()新建bean,只带新增的Id,getBeanById(longid)获得特定id的已有bean;
.bo文件中General一栏手动去掉Table Name中的“BO”;
3.25.2015(英林海,顾海燕)
上午:
Dao提供封装好的基本的数据操作能力;
值对象与ABO之间的转化;
数据库cfg_db_acct中要配置数据源信息;
练习:Paas项目Customer的增删改查;
HUB第一个功能就是服务的注册;
HUB解析HTTP报文,到对应服务表HUB_serv里查询该服务,
应用服务器要和域匹配;
HUB的第二个功能就是服务的解析和应用服务器路由的分发;
hub_http_mapping;
config.properties;
Hub工程一个Paas工程;
工程启动HUB步骤
第一步:main()传HUB_ccode启动HUB;
第二步:拷贝hub和jetty的架包到appEngine-lib,同时右键把事件相关的LIB勾上;
第三步:i18n和apphub文件夹覆盖到工程中config目录对应的文件夹中;
第四步:defaults.xml中配置hub数据源(cfg_db_acct)服务~DAO 注释掉跨域;
hub_http和hub_http_mapping的hub_code一定要对应上;
第五步:cache.xml最后加入那些缓存的配置.
练习:搭建hub服务器环境,并且本地启动hub;
下午:
静态页面开发:
Nginx;json;
Grid;
Form: dataField;后台交互依然通过JS进行;
Tree;
http://localhost:7777/Saas0104/demo/demo-grid.html
练习:创建静态页面,并在nginx服务器中运行,并尝试
通过hub实现前后台交互;
3.26.2015(英林海)
上午:
hubservice.properties;
当hub_code为0,则有故障;
hub_value里边有对应的异常编码值,这些是从hub_resource中取;
code:业务代码;
每个服务的入参必须是可序列化的(例如ABO或者JAVA基本数据类型);
根据业务的紧密程度来决定ABO之间的关联或者聚合;
主对象聚合wrap指向从对象,从对象记录主对相Id;
ABO可以从数据库或者缓存中取;
isReqPersistence()是否需要持久化;
通用业务对象:ICommonBusiObj;
_$ABO _$ABO_ARRAY;
一对多加一层循环,一对一直接执行;
addCustomerOrder()向客户对象贴加item信息,并在缓存中建立关联关系,
与Set*方法区别在于是否在缓存中建立关联关系,共同点都是在数据库存数据;
懒加载;
貌似一个ABO可以包含多个BO;
不同业务构件下的ABO的配置;
一对一关联(association)只是相互记录对方的id;
自关联;
多对多关系通过中间对象拆成两个一对多关系来实现;
查询ABO;
参数类型的ABO;
下午:
ABO自定义业务方法;
规范:建表语句禁止设置外键,只允许主键;
流程:服务流,工作流,业务流;
服务流(pwf):Combined,以前服务嵌套,耦合性强,
现在松散耦合,提升单个服务的复用性;
设计节点:start,finish有始有终,auto原子节点,原子之间通过线串起来,
第一个服务的返回值赋值给全局变量,下一个服务的入参从全局变量取;
可以多个in,只有一个out;
设计面板空白处点击一下在Attribute中可以看到全局变量;
Shell:一些流程节点处理不可了的JAVA代码(规范:要求写全路径的对象);
Decision;
原子节点的返回值和Decision组成AutoDecision;
Loop:Loop和LoopEnd组成闭环;
Loop节点循环条件的设置(循环变量的值也是从全局变量取);
子流程:Child Workflow,一个流程对应一个事务,父流程和子流程事务相互独立;
服务调用方式:同步调用or 异步调用;
异步调用:log库log_process插入数据,JMX解析报文信息,再异步调用实际的代码;
excute()方法:服务流执行入口;
练习:服务流的设计与代码生成;
工作流(wvm):
Comframe:底层架构;
Function对外提供使用的最小单元;
前置任务,后置任务;
Sign:会签,多个领导签字通过,会签结束,派生多个任务;
AND两道或者多道线全部完成;
FOLK OR只需一个完成;
ROLE在运行态没有用;
isOverTime判断是否超时,类似decision节点;
Comframe:流程的运行首先要创建工作流实例create;
startWorkFlowQueue()启动工作流队列进程;
人工回单;
会签相当于多个人工回单;
vm_wf:工作流进程扫描该表,启动多个子任务;
vm_template;
vm_wf中error_message字段包含处理报错信息;
业务流(bvm):
页面的输入和输出也要和全局变量进行捆绑;
发现user folk 子流程 人工标记w 等节点就开始解析成工作流运行;
如果没有以上情况,页面流后就解析成服务流;
貌似业务流属于前端设计,在SaaS工程中;
页面解析成HTML和json,相当于以前的.pf文件;
3.27.2015(英林海)
事件:服务在运行时业务状态的变更;
connector:连接器,事件拦截器(有event和service两种类型);
rules数据来源:event和context;
事件采集信息;
事件处理完后有相应输出;
mapping映射里头元数据的配置;
Events包中是一些bean文件,通过gettersetter方法值传递;
aebuild.properties eventlibpath rulelibpath ext_java_src;
makejars.xml;
subscriber订阅哪个事件交给哪个服务去处理。- 亚信CRM7.0新框架AppEngine3.0培训摘要
- 《JDK5.0新特性培训》
- 亚信面试笔试~~
- 亚信题目
- 亚信面试回忆
- 亚信面试疑问
- 亚信实习日记
- 亚信实习记录。
- SOA校园培训摘要!
- SOA校园培训摘要
- 亚信广州的笔试
- 亚信2011笔试题目
- 亚信java笔试题
- 在亚信的新生活
- 亚信科技笔试题
- 亚信实习日记1
- 亚信实习日记2
- 亚信实习日记3
- JavaScript操作SVG画图库:基于jquery的插件jquery.svgmagic.js
- URAL - 1009 - K-based Numbers (简单DP)
- RMI(Romte Method Invocation):远程方法调用
- C++中的static关键字
- 哈尔滨理工大学---沼跃鱼(待整理)
- 亚信CRM7.0新框架AppEngine3.0培训摘要
- 高德地图纠正CLLocationManager坐标不准的问题
- 音乐播放器
- log4j详解与实战
- LeetCode 7: Reverse Integer
- 数据库第一次实验创建数据表参考代码
- unity3D ShaderLab <五>漫反射光照改善技巧之使用2D ramp texture来创建一个假的BRDF(双向反射分布函数)
- SGU - 133 - Border (简单统计)
- 倒排索引原理