Aspect in Middleware--1
来源:互联网 发布:足球鞋钉分类知乎 编辑:程序博客网 时间:2024/06/05 00:14
Aspect in Middleware
1: Adrian Coyler, Andrew Clement 2: Charles Zhang, Hans-Arno Jacobsen
中间件的特性为面向方面提供了许多应用机会:
1 许多的策略
2 来自许多供应商的应用软件
3 要求高度可定制化,客户化
另一方面,也有很多障碍
1 用户不情愿迁移到新的平台
2 系统或编码的复杂性
---〉由于方面化导致的新bug
焦点在于,从存在的中间件产品的重构中汲取经验教训
1 源语言:Java
2 Aspect技术:AspectJ
3 是什么造就中间件成为aop的应用典范呢
4 重构过程
5 讨论收获
这篇没有讨论基于aop的全新中间件
复杂术语
中间件,3层应用, 组件
3层应用:
三个组件: 用户界面(客户端,browser), 功能处理(商业规则,应用服务器)和数据存储(后台数据库
)
3层应用对企业应用是个很常用的公共体系架构。
可能变得更复杂
1 多于一个数据库
2 数据存储自身可能是独立的3层应用
3 许多客户类型
4 冗余
中间层
1 中间层是整个系统的核心
其他层的设计虽然也复杂,但相对机械。
2 包括大多数的域相关编程
算法&计算
决策
行为
3 通常:用组件封装
可重用的构建块,能够融合到其他的组件,或其他的电脑以构成应用程序。
例子:EJB,DCOM,CORBA
两种分类:会话Bean和实体Bean
无状态和有状态
中间件
协调相互分离,已经存在的两层软件。
中间件的分类
基础中间件
分布式中间件
公共中间件服务
AKA: Application Server
域相关中间件
服务器
特定机器上运行的服务端,运行一些指定的应用程序。
中间件和应用服务器,这两个术语描述了同一概念的不同层次
应用服务器是一种成熟的中间件类型。
我们会交互地使用这两个术语
两种途径
1 分析性:中间件平台什么是唯一的
2 编程性的:在典型的组件代码中什么是必须的
分析途径
1 比较应用服务器和操作系统
结果发现:
相同点:
a) 启动应用程序
b) 为这些应用程序提供核心服务
c) 程序员可以集中关注域相关任务
区别
应用服务器 vs 操作系统
应用程序的可变性
单独的应用服务器调用特定的应用程序集
桌面系统启动各种程序。
交互连接
通常,应用服务器的组件之间交互通信
在操作系统中,大多数的应用程序是孤立的
资金投资
客户愿为服务器的定制付款
总结区别
应用服务器相关性更强
应用服务器一定是高度客户化的
"停止-安装-重启"通常也是必须的
解决方法:面向方面
企业应用的强制性因素
1 服务可达性,失败安全,可恢复性
2
3 交易管理
4 可扩展性
5 并发性
6 安全性
7 算法的简单性
8 向后兼容性
9 异构性
平台的,语言的,工具的等等非功能需求
标准的J2EE服务
1 动态网页:jsp,servlet
2 组件:EJB
3 命名:JNDI
4 消息:JMS
5 e-mailing
6 交易:JTA
7 认证
8 从J2SE导入
远程:RMI
数据库连接:JDBC
XML
9 其他的服务可能有指定的实现提供
这不属于J2EE
10 功能需求
- Aspect in Middleware--1
- Aspect Oriented Programming in Android
- downloader middleware 研读(1)
- Aspect
- @Aspect
- Aspect
- Aspect
- @Aspect
- AspectJ in Action: Practical Aspect-Oriented Programming
- Mastering AspectJ: Aspect-Oriented Programming in Java
- setting-up-webpack-dev-middleware-in-your-express-application
- 面向Aspect的编程(系列1)
- Second-generation aspect-oriented programming (1)
- aspect学习(1)before&after&around
- aspect学习(1)before&after&around
- 《ActiveMQ In Action》Chapter 2 Understanding message-oriented middleware and JMS
- The CORBA Component Model: Part 1, Evolving Towards Component Middleware
- 中间件 Middleware
- (转)如何将HBITMAP类型转化为CMemFile对象?
- SUSE Linux 修改了websphere 的编码格式为gbk后 对中文的支持也是有问题的解决办法
- 第一次
- 这个replace命令有意思!
- Where storage lives
- Aspect in Middleware--1
- 怎样为你的WEB2.0创业进行营销
- Linux编程之路(初学者)(ZT)
- 菜根谭应酬篇评1 -- by zero
- 是否进入软件行业,如何选择?
- 交换两个变量值(swap()函数)的几种方法
- 关于netstat
- 3D 游戏的开发流程
- JavaScript 函数