软件架构设计之五:基于构件的开发

2024-01-09 18:18

本文主要是介绍软件架构设计之五:基于构件的开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、本章要点

1)信息系统综合知识。包括构件与软件复用;构件的概念与分类;中间件技术;典型应用架构(J2EE、.NET)。

2)系统架构设计案例分析。包括中间件、应用服务器。


二、构件与软件重用

构件(component,组件)是一个功能相对独立的具有可重用价值的软件单元。

1、软件重用

1)可重用性(可复用性)是指系统和(或)其组成部分能在其他系统中重复使用的程度。

2)软件重用(软件复用)是使用已有的软件产品(如设计、代码和文档等)来开发新的软件系统的过程。

3)软件重用的形式大体可分为垂直式重用和水平式重用。

4)水平式重用是重用不同应用领域中的软件元素,如标准函数库。

5)垂直式重用是在一类具有较多公共性的应用领域之间重用软件构件。

6)Caper Jones定义了10种可能重用的软件要素,分别是项目计划、成本估计、架构、需求模型和规格说明、设计、源程序代码、用户文档和技术文档、用户界面、数据结构和测试用例。

7)系统的软件重用包括可重用的资产(构件)的开发、管理、支持和重用4个过程。

2、构件标准

1)构件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能),并提供了一组接口的实现方法。

2)构件应向重用者提供一些公共特性,另一方面还要提供可变的特性。

3)CORBA是由OMG制定的一个工业标准,其主要目标是提供一种机制,使得对象可以透明地发出请求和获得应答,从而建立起一个异质的分布式应用环境。

4)EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构建架构。三种类型的EJB,会话Bean、实体Bean和消息驱动Bean。

5)Microsoft的分布式DCOM扩展了COM,使其能够支持在局域网、广域网甚至Internet上不同计算机对象之间的通信。

3、构件获取

1)可重用信息具有领域特定性,即可重用性不是信息的一种孤立的属性,它依赖于特定的问题和特定的问题解决方法。

2)领域具有内聚性和稳定性,即关于领域的解决方法是充分内聚和充分稳定的。

3)领域是一组具有相似或相近软件需求的应用系统所覆盖的功能区域,领域工程是一组相似或相近系统的应用工程建立基本能力和必备基础的过程。

4)构件获取的不同途径:

  (1)从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件。

  (2)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件。

  (3)从市场上购买现成的商业构件,即COTS(Commercial Off-The-Shell)构件。

  (4)开发新的符合要求的构件。

4、构件管理

1)构件管理的内容包括构件描述、构件分类、构件库组织、人员及权限管理和用户意见反馈等。

2)可重用技术对构件库组织方法要求如下:

  (1)支持构件库的各种维护动作,如增加、删除以及修改构件,尽量不要影响构件库的结构。

  (2)不仅要支持精确匹配,还要支持相似构件的查找。

  (3)不仅能进行简单的语法匹配,而且能够查找在功能或行为方面等价或相似的构件。

  (4)对应用领域具有较强的描述能力和较好的描述精度。

  (5)库管理员和用户容易使用。

3)构件分类方法:

  (1)关键字分类法(2)刻面分类法(3)超文本组织方法

4、构件分类

构成一个软件系统的构件可分为以下5类:

  (1)独立而成熟的构件

  (2)有限制的构件

  (3)适应性的构件

  (4)装配的构件

  (5)可修改的构件

5、人员及权限管理

构件库系统可包括5类用户,即注册用户、公共用户、构件提供者、一般系统管理员和超级系统管理员。

6、构件重用

构件库的使用者必须完成以下工作:检索与提取构件,理解与评价构件、修改构件,最后将构件组装到新的软件产品中。

1)检索与提取构件

  (1)基于关键字的检索(2)刻面检索法(3)超文本检索法(4)上述方法都基于语法匹配,理论的检索方法是语义匹配。

2)理解与评价构件

  (1)在构件库的文档中,全面、准确地说明以下内容:构件的功能与行为;相关的领知域识;可适应性约束条件和例外情形;可以预见的修改部分及修改方法。

  (2)逆向工程是理解构件的另一种重要手段。

  (3)对构件可重用的评价,是通过收集并分析构件的用户在实际重用该构件的历史过程中的各种反馈信息来完成的。包括重用成功的次数,对构件的修改量,构件的健壮性度量和性能度量。

3)修改构件

与构件相关的文档和抽象层次更高的设计信息对于构件的修改至关重要。

4)构件组装

是指将库中的构件经适当修改后互相连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。

构件组装技术大致可分为基于功能的组装技术、基于数据的组装技术和面向对象的组装技术。


三、中间件技术

为解决分布异构问题,人们提出了中间件的概念。

被业界比较认可的两种定义如下:

  (1)在一个分布式系统环境下处于操作系统和应用程序之间的软件。

  (2)中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户端服务器的操作系统之上,管理计算资源和网络通信。

1、中间件的功能

1)基本功能如下:

  (1)负责客户端和服务器间的连接和通信。

  (2)提供客户端与应用层的高效率通信机制。

  (3)提供应用层与数据库之间的互操作机制。

  (4)提供应用层与数据库之间的连接和控制机制。

  (5)提供一个多层结构应用开发和运行的平台。

  (6)提供一个应用开发框架,支持模块化的应用开发。

  (7)屏蔽硬件、操作系统、网络和数据库。

  (8)提供交易管理机制,保证交易的一致性。

  (9)提供应用的安全机制与管理功能。

  (10)提供应用的负载均衡和高可用性。

  (11)提供一组通用的服务去执行不同的功能,为的是避免重复的工作和是应用之间可以协作。

2)中间件作为一大类系统软件,与操作系统、数据库管理系统并称为“三驾马车”。

3)它的优越性体现在:缩短应用的开发周期、节约应用的开发成本、减少系统初期的建设成本、降低应用开发的失败率、保护已有的投资、简化应用集成、减少维护费用、提高应用的开发质量、保证技术进步的连续性、增强应用的生命力。

2、中间件的分类

1)中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。

2)从层次上划分,可分为底层型中间件、通用型中间件和集成型中间件。

3)底层型中间件主流技术:JVM、CLR、ACE、JDBC和ODBC等。

4)通用型中间件主流技术:CORBA、EJB和COM/DCOM等。

5)集成型中间件主流技术:WorkFlow和EAI等。

6)由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通信服务,我们将这种通信服务称之为平台。

7)平台分为远程过程调用(Remote Procedure Call,RPC)、面向消息的中间件(Message-Oriented Middleware,MOM)和对象请求代理(Object Request Brokers,ORB)三类。

8)RPC,一个应用程序使用RPC来远程执行一个位于不同地址空间里的过程。

9)MOM,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。消息传递和排队技术有以下三个主要特点:

  (1)通信程序可在不同的时间运行(2)对应用程序的结构没有约束(3)程序与网络复杂性相隔离

10)ORB是OMG退出的对象管理结构(Object Management Architecture,OMA)模型的核心组件,它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。


四、应用服务器

可以把应用服务器看作是一种构件服务器,它为层架构的中间层提供服务。例如,在应用服务器中运行中间层的商业逻辑组件、开发者使用应用服务器提供的中间件简化开发过程,同时大多数应用服务器还提供了内容管理、负载均衡、容错、连接池和对象持久性等功能。

1、应用服务器的作用

1)应用服务器可以解决传统的两层客户端/服务器计算中的其他不足,并且能够提供许多新的优点:

  (1)可升级性(2)分布式处理(3)可重用的业务对象(4)业务规则(5)跨平台集成

2)在具体应用中,应用服务器能够解决一下问题:

  (1)集成遗留系统和数据库(2)为Web站点提供支持(3)开发Web集成系统(4)个人计算机的部署(5)电子商务(6)性能管理

2、应用服务器的类型

1)根据技术实现的不同分为:

  (1)操作系统型(2)集成型(3)插件型(4)独立型

2)根据具体产品类型分为:

  (1)事务服务器(2)知识服务器(3)带集成开发工具的应用服务器(4)协作服务器(5)瘦服务器(6)主机访问服务器

3、应用服务器产品

1)BEA WebLogic

2)IBM WebSphere Application Server

3)Microsoft Transaction Server

4)Oracle Application Server

5)SilverStream

6)Sybase Enterprise Application Server


五、J2EE与.NET平台

1、J2EE的核心技术

J2EE平台提供了一个多层结构的分布式的应用程序模型,该模型具有重用构件的能力、基于XML的数据交换、统一的安全模式和灵活的事务控制。

1)EJB是Java服务端的构件模型。EJB容器作为EJB构件的执行环境,提供服务器端的系统级功能,包括线程管理、状态管理和安全管理。

2)JDBC是Java语言连接数据库的标准。

3)Java Servlet(Java 服务端小程序)。

4)JSP(Java Server Page,Java服务器页面)。可以认为是一种高层的Servlet,在服务端,JSP总是首先被编译成Servlet运行的。

5)JMS(Java Message Service,Java消息服务)。JMS是一个消息标准。

6)JNDI(Java Naming and Directory Interface, Java命名目录接口)。

7)JTA(Java Transaction APID,Java事务API)。

8)Java Mail API(Java 邮件API)

9)JAXP(Java XML解析API)

10)JCA(J2EE Connector Architecture,J2EE连接架构),三个关键元素:资源适配器、系统界面和通用客户界面。

11)JAAS(Java Authentication Authorization Service,Java认证和授权服务)

2、.NET平台

平台包括5个部分:

1)操作系统是.NET平台的基础。

2).NET Enterprise Servers提供了包括Application Center 2000、BizTalk Server 2000和Commerce Server 2000等一系列服务器产品。

3).NET Building Block Services指的是一些成型的服务。

4).NET Framework位于整个.NET平台的中央,为开发.NET应用提供低层的支持。

5)Visual Studio.NET是.NET应用程序的集成开发环境,它位于.NET平台的顶端。

3、比较分析

它们的目标都是为了解决构建企业计算等大型平台而出现的。

1)在开发语言的选择范围中,.NET的语言选择范围相当大;而构建J2EE应用,在语言选择方面,则只能使用Java语言。

2).NET的标准与J2EE不同,没有完全开放。

3).NET唯一可不选用Microsoft产品的就是数据库,且ADO.NET仅支持MS SQL和Access,其他数据库必须使用OLE DB访问。J2EE的选择余地则很大。

4)虽然.NET中的技术标准可以构造完整的分布式应用,但J2EE的选择范围更多。



这篇关于软件架构设计之五:基于构件的开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588001

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧