选择显示字体大小

面向对象分布式开发系统理论篇


  摘 要

  在web 应用开发中,之所以能够利用对象的概念,方便地创建灵活,稳定的web 服务,归功于j2ee 的多层体系结构。而在传统软件(非web 应用),如何利用面向对象技术,是本文的主要目的。本文基于一个分布式的开发工具模型 – softengine, 简要阐述了分布式系统的基本技术及特征,包括:任务驱动,分布式对象,流水线式设计模式,以及数据安全等关键技术 。


  1. 前言

  自从有了j2ee 体系结构,基于诸如:bea weblogic, ibm websphere 以及sun one 等多层结构的应用服务器web 开发已变得如此的便捷、高效。web 程序工程师也不在过多的关心如何解决系统稳定性、高负荷等问题,而精力更多地集中在如何实现应用逻辑。比如:现在,很少有人在采用了上述的中间件产品后,还问津系统是否稳定、如何扩容等问题。因为j2ee 体系,已经解决了这些繁琐的技术难点。

  而其他的、非web 方式的传统软件开发工程师就没有如此的幸运了。特别在一些基础分布式系统、实时系统及数据传输系统的开发项目,基于web 方式的应用已无法解决。j2ee 已无法提供更多的帮助。此时,只能依靠程序员从系统最基本的功能开始开发。除功能外,系统性能好坏,完全取决于开发人员的素质及经验。在短时间内构造出如同web 应用一样稳定、高效的系统,简直成为一种梦想。

  为了实现这个梦想,软件的“总线结构”孕育而生。所谓总线结构,就是所有的功能部件以相同的方式连结在一个用来相互通信的结构性部件上。由此带来的好处是,部件的内部设计被独立出来,再也不必考虑部件之间的互连问题,设计人员可以专注于部件的功能设计 。

  2. 分布式系统所应具有的体系结构

  一个分布式计算系统(distributed computing system ),就好比现实生活中的一个公司。其中,某些职员负责日常的内部事务保证公司正常运作;某些职员负责对外联系工作,保持与其他公司的关系;在公司员工之间定义了一定的工作流程,通过固定格式的表单提交任务及交换信息。在公司运作中,只要员工的职责及工作流程保持不变,其他的可变因数,如:工作的物理位置或交换信息的不同,都不会造成本质的变化。

  因此,在分布式系统中,需要定义出不同的职能对象。这些对象是可分布的。对象之间还需定义各种内容的信息/ 消息体。以softengine 为例,定以了三种最基本的元素对象:

  功能对象(function object) ,负责内部功能操作。
  服务对象(serve object) ,具备通讯能力。
  任务对象(task object) ,在功能及服务对象间传递信息。

  对象间的协调、信息传递等复杂的操作,被封装在softengine 的内核。通过简单的接口对象,演变出各种不同的应用系统。如下图,所示的体系结构 :


图表 1 the architecture of softengine

  components area 组件局域 是一个开放式的区域。为应用组件提供了三种主要的接口: 功能接口(function interface)、服务接口(serve interface)、任务接口(task interface) 。继承了面向对象的特点,组件局域具备了许多“软总线”的特性,可以灵活地加载、卸载应用对象 。

  softengine kernel 内核 是softengine 的核心部分,封装了大部份的内部操作,如: 对象间的协作、任务传递和对象的分布管理等。其中最主要有两个部件: 任务通道(task channel)和通讯通道(communication channel) ,用于安全,有效,准确地传输数据 。

  task channel 任务通道 直接连接每个对象,传输任务信息从一个对象到另一个对象 。

  communication channel 通讯通道 连接每个分布的softengine 内核。传输任务信息从一个softengine 到另一个softengine 系统 。

  singleton model 独体运行模式. 如果应用系统不需要分布,也就是说:所有的应用组件发布在同一个softengine 环境中,那么这个单独运行的模式叫独体运行模式

  group model 群体运行模式. 基于独体运行模式,应用组件被分布在不同的softengine 系统。彼此之间通过通讯通道连接在一起,形成一个分布的系统,称之为: 群体运行模式

  softengine 的体系结构,以多态的方 式 ( 独体singleton / 群 体 group ) 存在。独体充分表现了软总线的特性;而多个独体组成的群体表现出分布式的系统特性。

  从独体上看:是软总线结构的应用软件,其中的每个模块(对象object )以插件的方式,通过系统提供得接口及配置文件,发布在系统上。对象彼此之间,通过任务通道(task channel)协调工作在一起,而object 之间的构件操作被封装在softengine kernel 内。

  从群体上看:是一个分布式的结构,每个独立运行的softengine 系统,通过kernel 的通讯通道(communication channel)彼此连接,协调工作,成为一个完整的强大的分布式系统 。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons