基础服务
UBF底层是一组基础服务支撑UBF运行平台和其上的应用软件的运行。包括上下文管理、配置服务、日志服务、国际化异常框架、悲观锁服务、服务会话管理、资源服务、Cache服务、数据库连接服务、数据库事务管理、OQL引擎、表达式引擎、事件引擎和异步调度引擎。
服务会话管理
服务会话管理工作在Portal或应用服务器的服务线程上,监视服务线程的进入和退出。
- 提供统一的线程静态变量存储管理,在离开线程时负责清理。
- 提供线程级的缓存管理;
- 提供线程上的服务或业务操作调用栈监控,以防止出现无限制的迭代调用。
- 提供服务或业务操作的上下文环境,并在其中提供服务级的缓存管理。
上下文服务
工作在服务会话上,提供应用的上下文环境管理。UBF维护基本且必须的应用上下文,包括企业、组织、登录用户、登录日期、当前语言文化、用户登录的会话标识符。这些上下文信息初始来自用户登录时,UBF将其缓存在Portal的session中,并响应用于的请求时设置到工作线程上。当调用远程服务时,UBF负责将上下文传递到远端的工作线程上。
开发人员可以增加自定义的上下文信息。
悲观锁服务
悲观锁服务提供非等待的并发控制机制——即一旦加锁不成功将立即返回。UBF提供了进程内和分布式两种实现策略,当仅部署一个应用服务器时应当配置使用进程内实现策略,所有的锁都在进程内管理,以提供最佳的运行效率。当部署为多服务器集群时,应当配置使用分布式实现策略,所有的锁信息都在数据库表中管理。
悲观锁支持共享和独占(读/写)两种锁定级别。共享锁允许有多个所有者同时锁定同一个对象,以用于防止读取已经过期的数据。独占锁仅允许一个所有者加锁,以用于变更数据定意图。
悲观锁允许同一所有者对同一对象反复加锁,当然也要进行相应次数的解锁。当所有者已经拥有锁的情况加,可以通过加独占锁进行锁升级,但有可能加锁失败。
事件引擎
事件引擎用于实现事件发布订阅机制,以满足某些业务需求。
- 事件订阅可以是临时或持久的。
- 事件处理器可以指定过滤条件,仅当条件满足时,事件处理器才会被调用。
- 事件处理器可以被同步或异步地调用。
- 事件处理器的错误处理行为可以指定为容错或是立即报告。
- 所有这些事件处理器的行为都可以通过属性(Attribute)或是订阅参数来指明。
- 开放的体系结构,可以很容易扩充基于消息的,分布式的事件系统功能。
异步调度引擎
调度引擎用于满足后台的定时任务需求。
- 标准异步调用,具有可实时查询状态,可靠性等功能增强。
- 任务定时调度,可实时查询请求执行状态,任务定义持久化。
- 灵活的周期性定时策略,可随意组合年,月,周,日,小时,分,秒七级定时单位。
- 支持即时启动策略
- 每个定时单位可以按区间,周期间隔,离散时间点集合,定点时间四种策略指定。
- 支持多种可执行逻辑的表达,包括委托,指定方法名,定制实现接口。
- 开放的体系结构,可扩展定时策略、可执行逻辑接口等等。
国际化异常框架
模型设计阶段设计的业务异常,在生成代码时UBF将其生成为符合国际化异常框架的异常类,同时也支持编程方式实现。
- 任何符合国际化异常框架的异常UBF可以将其透明地传递到远端。
- 依据当前上下文中语言文化的标识或去相应语言的信息
数据库连接服务
UBF运行平台支持多企业、多组织的应用在同一个应用服务器实例上运行。而不同的企业不能对应相同的数据库。因此UBF的数据库连接服务将依据当前上下文中企业的信息获取正确的数据库连接,而不用开发人员关注多企业导致的多数据库问题。
基础服务
本文2024-08-20 16:05:41发表“u9cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/yonyou-u9cloud-1141.html