写点什么

文章:采用模式和泛型技术为应用增加策略控制 (静态部分)

  • 2007-04-12
  • 本文字数:846 字

    阅读完需:约 3 分钟

随着大量分布式计算和 SOA 类型应用的加入,企业内部具体应用的服务功能也趋于多元化,为了快速实现不断变化的业务需求、充分利用团队开发资源,很多架构师在高层技术设计阶段往往会在应用架构中集成一些公共库,完成诸如数据访问、日志记录、异常管理、授权控制等常规技术实现。

但是就一个具有规模化信息系统的企业环境而言,常常需要对应用实施很多全局性的技术处理,范围可能涉及整个应用层面或整个组织层面。例如:每个企业、每个行业内部总会有一些主要业务数据,这些数据又分散在企业不同的业务系统中——生产、财务、风险分析和决策支持等,但是出于安全的考虑可能要对这类数据在不同系统的处理过程进行使用安全审计,这时候处理上就有了两个方式:

  1. 逐个修改现有功能公共库,把审计功能嵌入到每个功能库之中。
  2. 纵向提供一个统一的组织级审计策略控制机制,每个公共库调用之。

采用前者可以在短时间内快速实施改造,但如果这类策略变化相对频繁,而且又增加很多不同数据控制要求(例如:对于高价商品、低诚信度客户进行报警),那么反复改造带来的开发、测试、重新部署成本相对就比较可观,究其原因就是由于每个应用内部的个例处理对象与整体处置要求对象间耦合过于紧密。因此,本文试图通过增加一个策略控制框架来用尽可能小的代价集中解决这类问题,设计目标如下:

  1. 自身结构要灵活,可以动态的适应多种策略要求。
  2. 以配置为中心,便于测试和部署人员根据需要以 Plug & Play 的方式修改和维护策略。
  3. 同时对业务调用的前期和后期提供可以回调的响应机制。
  4. 定义多种策略匹配规则,确保规则可以按需被公共库的不同实现层次组成调用(程序集、类和接口、方法)。
  5. 确保本地调用和跨进程调用的界面一致性。

本文作者王翔为全国海关信息中心高级架构师,从事海关主要广域分布式系统的设计和实施,多次参与各业务系统的优化。此外,作为信息安全工作组副组长,他还一直致力于应用密码技术和公钥基础设施保障海关业务的安全运行。 此外,他还是《程序员》杂志的专栏作者。

阅读全文:采用模式和泛型技术为应用增加策略控制 (静态部分)

2007-04-12 21:53851

评论

发布
暂无评论
发现更多内容

30岁的二三事

大唐小生

总结 个人感悟

来了来了!Docker安装及运行原理

程序员的时光

Java Docker 微服务

别在网上乱找代码了,找了一段代码突然爆了!!!

导导

Java

搭乘政策红利“快车” 欧科云链助力区块链人才培养

CECBC

“PlusToken”跨国网络传销案告破,涉案400亿元!

CECBC

架构师训练营第九周作业

张明森

Scrum Master是否需要懂技术

Bob Jiang

敏捷 敏捷开发 敏捷教练 ScrumMaster

RRedis系列(八):缓存到底该如何做到高可用?

z小赵

redis 分布式系统 高并发系统设计

新生必备清单:不想成为虚度青春的“小透明”,手机应该怎样选?

脑极体

架构师训练营第九周学习总结

张明森

什么是算法的大O表示法

码农神说

算法 时间复杂度 Java算法 大O

今天你内卷了吗?

池建强

个人成长 内卷化

微碳系:我心中的宇宙

Geek_116789

金融行业区块链技术应用有了“安全符”

CECBC

Dockerfile你值得拥有

北漂码农有话说

Docker

JVM参数手册

Rayjun

JVM GC

敏捷教练和Scrum Master - 敏捷转型中的两个重要角色的对比

Bob Jiang

Scrum 敏捷教练 ScrumMaster

F5G+X:给5G一个伙伴,给千行百业一个拥抱

脑极体

谈谈敏捷中的那些模式

Bob Jiang

敏捷 敏捷开发 敏捷教练

刘华:事实证明,假敏捷都比瀑布优秀

刘华Kenneth

DevOps 敏捷 软件开发

无意中参加了infoQ的一期活动,获得了所有奖项,哈哈哈。。。

诸葛小猿

InfoQ 奖品

这16道Redis最常见面试问题,你能回答上来几个?

火羊哥

Java

【面试必问】Spring中的事务管理详解

只喝纯牛奶

JVM详解之:类的加载链接和初始化

程序那些事

Java JVM GC 加载

nginx配置文件

张明森

LeetCode题解:70. 爬楼梯,递归+哈希表,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Docker 网络

北漂码农有话说

Docker

dubbo-go 中使用 sentinel

apache/dubbo-go

dubbo sentinel Go 语言

最牛逼的Java框架,没有之一

我是苞谷

格一格你的情欲念

王进行

小伙伴想写个 IDEA 插件么?这些 API 了解一下!

程序员小航

IDEA idea插件 教程 API IntelliJ IDEA

文章:采用模式和泛型技术为应用增加策略控制(静态部分)_.NET_霍太稳@极客邦科技_InfoQ精选文章