基于程序元模型的程序池在组件化开发中的应用
来源:互联网 发布:英语口语书籍 知乎 编辑:程序博客网 时间:2024/05/17 07:01
1.背景介绍
随着组件化开发越来越流行,随之而产生程序流程的概念也变得越来越普遍,以及程序流程间的相互调用及关系也变的越来越复杂。而程序流程的增长速度,也加大了对程序执行效率的要求。传统的以单个流程为执行最小单位已慢慢满足不了,日益增长的需求。流程执行模式的变革已迫不及待。
2.什么是程序元模型
程序元模型是指包含了程序的逻辑,执行的上下文信息以及程序执行中的变量区域的一个模型。
从一个程序模型中,我们应该可以知道,这个程序模型所代表的程序,它的每一步的执行逻辑,步骤间的执行顺序,一个功能块与另一功能块之间是的关系。包涵了哪些域等等关于程序的信息。
3.什么是程序池
就像线程池的出现是为了减少频繁的创建及销毁线程所需要的开销,程序池的提出,是因为随着大数据时代的来临,企业级的数据中心中所需要调度的任务也正在以数量级的速度增长。而传统的把每个程序看成单个的任务去创建与销毁已渐渐跟不上数据中心的任务的及时性要求。
比如:一个日常任务为十万级的任务的数据中心,单个任务所需要的起停与销毁的时间消耗为1秒,则每天数据中心需要花几个小时的时间片花费在任务的创建与销毁。然而,在这十万的任务中,有部分的模版任务是在重复的创建与销毁。
所以一种更高效的任务创建及销毁模式的出现已成为一种急迫的需求。
而程序池的出现,则刚好弥补了这一个空白。
4.为什么要基于程序模型
为了实现程序的快速的创建和提高程序的复用率,我们需要尽量减少解析程序的流程及上下文信息的次数,这时,复用已经解析完成的程序流程及上下文信息,成为了解决这个问题的最优方案。而程序模型的出现就可以用于存储我们所需要的程序流程及上下文信息。
需要实例化的原因是,尽管程序的流程信息相同,上下文信息相同,但是,程序具体执行时的环境,变量等还是有差异,所以每一个实例需要有自己的存储空间,来存放自己的执行环境以及变量信息。
所以程序的模型是代表了程序的一个流程信息,以及相应的上下文信息,而程序的实例,则包括了程序在具体执行时的一些参数以及变量信息。。
5.应用范围
1.需要频繁的调用另一个流程信息来实现一个总体的功能。例如:基于模版流程开发的具体业务处理流程。在数据中心级的任务中,存在大量的类似的业务处理流程,此时,可以将业务处理流程中相同的逻辑模版,独立成一个模版,在业务流程中直接调用模版,这样就可以减少业务的开发量。
2.对性能要求苛刻的应用,比如实时数据的处理应用。
- 基于程序元模型的程序池在组件化开发中的应用
- HDFS 在Web程序的相册功能开发中的应用
- gdb在程序开发中的应用
- 基于qvfb的应用小程序开发
- 基于qvfb的应用小程序开发
- 基于topic的发布/订阅模式在UI程序中的应用
- 这篇文章给大家介绍Android开发四大组件之实现电话拦截和电话录音,涉及到android四大基本组件在程序中的应用,对android四大基本组件感兴趣的朋友可以参考下本篇文章
- 3D模型在界面程序的应用前景
- Transaction Object在并发程序开发中的应用
- 关于面向对象思想在程序开发中的应用
- Vs2013在Linux开发中的应用(30):程序中断
- 数理逻辑在程序中的应用
- 已过时的Java Applet程序在网页开发中的应用
- 基于组件的业务模型——在保险业的应用
- 基于Visual C++2010与office2010开发办公自动应用(1)在自己的程序里面打开office文档
- 关于NOR_FLASH的大小在单片机程序中的应用
- apache在程序开发阶段的一些应用小知识
- 结构化程序方法在汇编语言中的应用
- New Concepts (Mathmatic one)
- 《微时间管理术》心得分享
- uboot与Linux内核机器码
- sys.argv[]用法
- 如何使用List.toArray()转换为数组对象
- 基于程序元模型的程序池在组件化开发中的应用
- 为什么招一个满意的行政助理都这么难?
- JSTL EL 详解
- CODE[VS] 1098 均分纸牌
- MongoDB:Too many open files
- 快速掌握Lua 5.3 —— 扩展你的程序 (1)
- Java高级开发之反射(一)
- 【C++】编程小结① -- new和delete
- LVS:三种负载均衡方式比较