写点什么

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

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

    阅读完需:约 3 分钟

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

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

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

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

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

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

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

2007-04-12 21:531107

评论

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

WWW 是否应该属于 URL?

devpoint

Cookie url SEO www

带你用20张图了解什么是 JVM 运行时数据区

风铃架构日知录

Java 程序员 JVM 码农 内存

表格集算表高性能原理——怎样实现纯前端百万行数据秒级响应

葡萄城技术团队

那些炫酷的CSS文字效果之诗词《兔》

南城FE

CSS css3 前端 动画

Spring项目中用了这种解耦模式,经理对我刮目相看

JAVA旭阳

Java spring

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

简单谈谈Redis中的几种java客户端以及优缺点!

风铃架构日知录

Java redis 程序员 程序人生 客户端

排障定位时间缩短一半, 博睿数据如何赋能青岛住房公积金管理中心

博睿数据

APM AIOPS 智能运维 博睿数据 精选案例

Java高手速成 | Java集合类泛类型

TiAmo

Java 泛型 编程语言、

前端二面经典vue面试题指南

bb_xiaxia1998

Vue

百度前端经典vue面试题整理

bb_xiaxia1998

Vue

醉三皇成为第12届北京国际网络电影展官方指定用酒品牌

联营汇聚

如何实现发送评论时总数自动加一?

Towify

Rewrite sqllogictest framework in rust

Databend

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

安畅携手阿里云共建Landing Zone方案,助力企业上云无忧

云布道师

阿里云

阿里云开源大数据平台EMR全面升级 性能最高可提升6倍

阿里云大数据AI技术

大数据 云原生 大数据 开源

前端必会手写面试题合集

helloworld1024fd

JavaScript

年终盘点丨最受开发者欢迎的文章 TOP20

阿里巴巴云原生

阿里云 云原生

如何使用API Hub 实现一个图片列表

Towify

《隐私计算白皮书(2022年)》概览

京东科技开发者

技术 安全 隐私保护 白皮书 企业号 1 月 PK 榜

Kstry流程编排框架

lykan

软件架构 模块化 流程编排 高并发编程 业务可视化

从零手写react-router

helloworld1024fd

JavaScript

SOA 和微服务有何区别?

江南一点雨

Java 微服务 springboot SOA

Java Netty框架自建DNS代理服务器教程

小小怪下士

Java 程序员 Netty DNS

高级前端常考手写面试题合集

helloworld1024fd

JavaScript

EMQX+阿里云飞天洛神云网络NLB:MQTT消息亿级并发、千万级吞吐性能达成

EMQ映云科技

阿里云 物联网 IoT mqtt 企业号 1 月 PK 榜

一文了解 Go time 包的时间常用操作

陈明勇

Go golang time

京音平台-一起玩转SCRM之电销系统

京东科技开发者

架构设计 系统 scrm 企业号 1 月 PK 榜 电销

从零开始实现一个Promise

helloworld1024fd

JavaScript

程序员该如何用“高科技”智能地教狗狗上厕所

风铃架构日知录

人工智能 深度学习 程序人生 后端 系统架构

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