统一对象消息编程详解
文章平均质量分 68
天龙117
这个作者很懒,什么都没留下…
展开
-
消息对象web框架性能测试
在自己的工作电脑上测试下框架性能:电脑配置、软件环境:cpu i3-3220 内存:8G ;操作系统:win7 。tomcat9 标准安装 ,jdk8标准安装。tomcat 连接线程配置minSpareThreads="100" maxThreads="1000"测试页面:在前期入门文章介绍的“hello 消息编程“ 。页面流程为模块定义变量,veloci...原创 2019-01-02 19:24:56 · 180 阅读 · 0 评论 -
统一消息对象编程web框架使用简介
(更正说明:由于框架后来改动,主启动模块“appCenter”主要用于框架启动,不在作为用户模块,因此本文章中的“appCenter”名称可改为任意用户模块名称,功能不变。本案例中的urlmap缓存配置可取消<afterMsgTable>项,其他不变。——20190102) 在之前的文章中我大概介绍过我的消息编程web框架,代码与流程比较简单,因此本来没有写这个入门的打算。...原创 2018-12-29 15:24:58 · 280 阅读 · 0 评论 -
统一消息对象的灵活配置
最近在写个app玩,其中有个发帖功能,服务器端模块infomationControl的postInfo方法负责写入用户提交的信息。代码: private void postInfo(Object fromWho, TLMsg msg) { String userid = getUserid(); TLMsg infomsg=createMsg()....原创 2018-12-22 17:43:51 · 353 阅读 · 0 评论 -
还能再简单么?——消息框架的嵌入jettyserver
开发框架最重要的功能是提高开发效率,没有框架,我们当然可以用基本的代码写出各种应用,但是这效率极低。开发效率是检验一个框架最重要的指标。 之前我开发总是启动tomcat,虽然这没有任何问题,但是从程序启动、部署都是比较麻烦的事情。虽然也曾想做个tomcat嵌入,但一直没有耐心去完成,直到遇到jetty。我欣赏jetty一个理念——服务器应该是程序的一部分。是的,这非常正确。服务器承担着网络接口,当然要作为程序的一部分,如果程序要依赖外在的接口,那不是完整的。框架有自己的服务器,那么许多都变...原创 2021-03-21 11:46:50 · 143 阅读 · 0 评论 -
大道至简--消息框架的程序启动
统一消息对象框架的应用启动流程非常简单,首先实例化模块工厂TLObjectFactory,模块工厂根据配置文件加载要启动的模块,模块根据自己的配置文件运行。那么对于一个基于我们消息框架的java应用的启动就很简单了。对于应用启动入口类,代码如下:public static void main(String[] args) { String configdir = "/conf/tlobjdemo/"; String path = pcclient.class.getRes...原创 2021-03-21 10:33:55 · 140 阅读 · 0 评论 -
统一对象消息编程详解——一个基于netty的WebSocket服务器
netty是一个NIO的网络服务器应用框架,现在我们基于这个框架用消息编程的模式开发一款websocket服务器。该服务器有以下特征:1、基于netty框架2、基于tcp层的ssl加密传输3、用户认证,包括名字/密码认证及token认证4、传输数据编码为json。一、代码简介 1、实现的类 cn.tianlong.tlobjcet.network.w...原创 2019-10-12 17:06:32 · 299 阅读 · 0 评论 -
统一对象消息编程详解——线程与异步处理
对于java中的异步处理是用线程方式实现的,所以所谓异步处理或异步调用就是开启新的线程来执行一个过程。对象消息编程将异步(线程)处理变得异常简单。下面看我们是如何进行异步或线程调用。 对于消息编程,我们执行一个消息时,首先创建一个消息 TLMsg msg =New TLMsg() 或TLMsg msg =createMsg()(该方法包含在基本对象类TLBaseModul...原创 2019-10-06 18:07:34 · 214 阅读 · 1 评论 -
统一对象消息编程详解——定时任务模块命令行控制台改进
之前文章介绍过统一对象消息编程详解——定时任务模块的命令行控制台 ,现在进行了改进,更方便的可以查看任务,包括任务状态,状态变化时间、上次执行时间、下次执行时间、执行次数。list/**** task list***/1. taskid: pcboy_play status: stoping(2019-02-02 22:03:13) lastexec:2019-02-0...原创 2019-02-02 22:04:59 · 149 阅读 · 0 评论 -
统一对象消息编程详解——日志模块
一般情况我们无需特意设计日志系统, 有许多成熟的日志工具,例如用日志门面slf4j 、日志log4j等,在代码中直接使用即可。但为了灵活和方便,我们还是设计了日志模块——TLLog,模块是对这些工具的一个封装,主要是封装了slf4j,利用log4j2来记录日志。一般的日志工具只是对日志的级别可控,由TLLog来控制日志的输出更加的灵活,不仅可以控制日志输出的级别,还能对日志输出的类(模块)...原创 2019-01-27 18:51:29 · 187 阅读 · 0 评论 -
统一对象消息编程详解——定时任务模块的命令行控制台
前面文字介绍了定时任务模块,我们可以通过配置文件的动态配置来控制任务的行为。由于配置文件的动态更新是所有配置参数都重新更新,对于多线程的,某些情况下会影响到其他任务。如我们对任务A进行了restart ,下次我们对任务B进行shutdown,如果我们忘记将A的状态改为run,则A再次restart。现在我们利用上篇文章介绍的命令行消息输入模块TLMsgScanner来创建定时任务的命令...原创 2019-01-27 16:41:17 · 273 阅读 · 0 评论 -
统一对象消息编程详解——命令行消息输入模块
在很多情况下,程序需要命令行的输入控制,如更改参数、重启等。TLMsgScanner为命令行消息输入模块,可以通过命令行给任何一个模块发送消息。如启动了TLMsgScanner,则可以以下参数发送消息: m=modulename a=action p1=value1 p2=value2 m:接收消息的模块 a:消息中的指令action p1 、p2 为消息中的...原创 2019-01-27 15:45:17 · 185 阅读 · 0 评论 -
统一对象消息编程详解——定时任务模块
在之前的文章《统一对象消息编程详解——通过分析定时任务模块来理解消息》中介绍了定时任务模块TLMsgTask。当时那个模块功能比较单一,只是简单周期任务的运行 ,现在对模块功能进行了改进,更加了定时任务的开启、停止等各项功能,并加进去了quartz 的cron表达式定时任务,完全实现了quartz的各种复杂定时。 为解析cron表达式,直接使用了quartz的类org.qua...原创 2019-01-16 16:39:05 · 284 阅读 · 0 评论 -
统一对象消息编程详解——访问控制机制
对于一个框架的访问控制机制(或安全机制),我认为要满足以下两项:1、最大的灵活性 业务流程与访问控制应该是平行的两条线,一方面我们可以灵活的在业务线任何点上拆装访问控制,不应该受业务流程的约束,同时,对于业务流程来说,访问机制也是透明的。可比喻为如果业务流程是高速公路上的汽车,访问机制就是无形的栏杆,对于司机正常行驶来说看不到栏杆,但是他一旦超速,那栏杆立刻的显现出来。...原创 2019-01-04 17:16:16 · 265 阅读 · 0 评论 -
统一对象消息编程详解——通过分析定时任务模块来理解消息
定时任务主要有两种定时,一种是指定某个时间点运行,比如某日的下午3点,另一种是固定周期的运行,比如间隔10秒去统计数据或查看订单。我们这里演示第二种周期任务。 有现成的各种工具类,包括java自带或者第三方工具,这些工具有个特点是你必须按它要求的任务模型编写任务或定制任务,不能对任意一个模块执行周期任务,这样就需要定制专门任务。我们看看如何通过消息对象编程而对任意模块、...原创 2019-01-03 20:32:20 · 221 阅读 · 0 评论 -
统一对象消息编程详解-——对象要有名字
万物都有名字,通过名字来标识对方、传达信息。人有名字,物也有名字,“小王的汽车”、“小张的汽车” 就是车的名字,通过名字我们知道它们指向不同的事物,虽然车也许是一模一样的。但对于程序设计里面的数据、对象,我们从来没有想过给名字,这导致我们在对象互动中无比的麻烦。 例如 对象A构建了一个对象B,希望对象C、D、E都使用B,那么A就要把B的指针作为方法参数硬生生的传给C...原创 2019-01-03 16:05:17 · 185 阅读 · 0 评论 -
统一对象消息编程详解——模块工厂的价值
以往我们需要一个对象的时候,通过new而建立一个,而消息框架用模块工厂统一创建对象。为何模块或对象要通过模块工厂创建,是不是多此一举。现在我们看个实例: 有A、B、C 三个对象,现在A、B对象各要调用C的m方法,通常是这样的,在A、B各种调用方法中: C c= new C(); c.m();功能实现了,比较不错。有天发现浪费内存,为何A、B都要自己new一个C呢 ...原创 2019-01-03 15:31:24 · 141 阅读 · 0 评论 -
统一消息对象编程web框架详解——框架单例实现原理
1、实现演变过程 消息对象框架启动顺序是首先启动模块工厂,然后工厂启动模块运行。在最开始用于web框架时,由于缺乏经验,我设计由每个线程单独启动一个工厂,然后工厂启动各个模块,线程结束时,工厂及所有模块销毁。这样实现功能是没有问题的,但是效率很低,因为每次一个客户端的request都要引起一个线程从工厂建立、模块初始化的过程。为了避免每次工厂和模块的初始化,借鉴数据库的连接池,我又...原创 2019-01-03 11:08:44 · 132 阅读 · 0 评论 -
统一对象消息编程详解——包装其他类
消息编程改变了传统编程的规则,以往我们通过对象的实例句柄来操纵对象,现在我们的对象有了名字,我们通过对象的名字去与对象互动,以往我们直接执行对象的方法,现在我们通过给对象传递消息由对象自己执行。 我们已有许多完善、实用、现成的各种工具类,我们不可能用消息编程的理念而重新开发这些工具,因此用消息对象包装现有的各种工具类是非常必要,而且必须的。 将传统的类改造为消息对象非常容易...原创 2018-12-29 21:17:59 · 139 阅读 · 0 评论 -
统一对象消息编程详解——热部署与动态配置
曾经用php编写代码没有动态配置的概念,代码修改完后直接刷新页面就可以看到效果,不用重新启动server程序。在学习java和开发消息框架的过程中,有一件事情让我觉得特别麻烦,每次更改模块配置后就要重新启动tomcat,这时我才有动态配置的概念——不用重新启动程序让模块配置能立即生效。动态配置不仅在开发、调试过程中需要,节省时间精力,而且在程序上线运行中也重要,我们能及时的更改运行配...原创 2018-12-28 22:38:42 · 217 阅读 · 0 评论