免费智能真题库 > 历年试卷 > 系统架构设计师 > 2017年下半年 系统架构设计师 下午试卷 案例
  第4题      
  知识点:   .NET平台   SQL Server   电子商务   .NET   功能需求   管理需求   设计模式   数据管理   数据库   网上销售   系统架构

 
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于.NET平台SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库;而李工认为本企业内部程序员缺乏数据库开发经验,而且应用筒单,应该采用ORM (对象关系映射)方式。最终经过综合考虑,该软件企业采用了李工的建议。
随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图4-1所示。
 
问题:4.1   (9分)
请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM的原因。
 
问题:4.2   (9分)
请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1) - (3)。
 
问题:4.3   (7分)
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景;请解释说明工厂模式在数据访问层中的应用。
 
 
 

   知识点讲解    
   · .NET平台    · SQL Server    · 电子商务    · .NET    · 功能需求    · 管理需求    · 设计模式    · 数据管理    · 数据库    · 网上销售    · 系统架构
 
       .NET平台
        Microsoft .NET平台包括5个部分:
        (1)操作系统是.NET平台的基础,在操作系统方面,Microsoft有着强大的开发能力,目前的.NET平台可以运行在多个由Microsoft提供的操作系统中。
        (2).NET Enterprise Servers提供了包括Application Center、BizTalk Server、Commerce Server等一系列服务器产品,通过这些产品可以缩短构建大型企业应用系统的周期。
        (3).NET Building Block Services指的是一些成型的服务,例如,由Microsoft提供的NET Passport服务等。.NET的开发者可以以付费方式直接将这些服务集成在自己的应用程序中。
        (4).NET Framework位于整个.NET平台的中央,为开发.NET应用提供低层的支持。.NET Framework的核心部分是CLR。CLR是.NET程序的执行引擎,.NET的众多优点也是由CLR所赋予的。CLR同JVM的功能类似,提供了单一的运行环境。任何.NET应用程序都会被最终编译成为IL(Intermediate Language,中间语言),并在这个统一的环境中运行。也就是说,CLR可以用于任何针对它的编程语言,这也就是.NET的多语言支持功能。CLR还负责.NET应用程序的内存管理、对象生命期的管理、线程管理、安全等一系列服务。
        (5)Visual Studio.NET是.NET应用程序的集成开发环境,它位于.NET平台的顶端。Visual Studio.NET是一个强大的开发工具集合,里面集成了一系列.NET开发工具,如C#.NET、VB.NET、XML Schema Editor等。
 
       SQL Server
        SQL Server是微软公司的数据库产品,SQL Server的分布式架构把应用程序对数据库的访问和数据库引擎分离开来。SQL Server的核心数据库服务器运行在基于Windows的服务器之上。基于Windows的服务器一般通过以太局域网与多个客户机系统连接。这些客户机系统一般是运行SQL Server客户机软件的PC机。这些PC机既可以是单独的桌面系统,又可以是其他网络服务的平台,如IIS Web服务器。
        SQL Server与流行的开发工具和桌面应用程序紧密集成,例如,可以从由Visual Basic、Visual C++、PowerBuilder、Delphi、Visual FoxPro和许多其他PC开发环境下开发的客户应用程序中访问SQL Server数据库。SQL Server与流行开发工具所使用的几种数据访问接口兼容,例如,可以通过Microsoft JET Engine和Data Access Objects(DAO)、Remote Data Objects(RDO)、ActiveX Data Objects(ADO)、OLE DB、ODBC(Open Database Connectivity,开放数据库互连)、SQL Server内置DB-Library以及第三方开发工具来访问SQL Server数据库。对于无缝桌面数据库访问,SQL Server使用OLE DB提供者和ODBC驱动程序,这些驱动程序允许从任何与ODBC或者OLE DB兼容的桌面应用程序中访问SQL Server数据库。OLE DB和ODBC可以从数百个简化设计的桌面应用程序中为特定的查询、数据分析、自定义报表打开SQL Server数据库。桌面集成减少了自定义的编程工作。SQL Serevr对ODBC的支持允许其他平台,如Macintosh或各种UNIX系统访问SQL Server数据库。
        SQL Server的4个基本服务器组件包括Open Data Services、MS SQL Server、SQL Server Agent和MSDTC。
 
       电子商务
        电子商务是指买卖双方利用现代开放的Internet网络,按照一定的标准所进行的各类商业活动,主要包括网上购物、企业之间的网上交易和在线电子支付等新型的商业运营模式。狭义的电子商务是指利用Web提供的通信手段在网上买卖产品或提供服务;广义的电子商务除了以上内容外,还包括企业内部的商务活动,如生产、管理、财务等,以及企业间的商务活动,即把买家、卖家、厂家和合作伙伴通过Internet、Intranet和Extranet连接起来所开展的业务。
        电子商务分3个方面,即电子商情广告、电子选购和交易,电子交易凭证的交换、电子支付与结算,以及网上售后服务等。参与电子商务的实体有4类:顾客(个人消费者或集团购买)、商户(包括销售商、制造商和储运商)、银行(包括发卡行和收单行)及认证中心。电子商务主要有3种模式:
        (1)B2B(Business To Business,企业对企业)是指企业与企业之间通过互联网进行产品、服务及信息的交换。B2B电子商务模式包括两种基本模式,一种是企业之间直接进行的电子商务(如制造商的在线采购和在线供货等),另一种是通过第三方电子商务网站平台进行的商务活动。
        (2)B2C(Business To Customer,企业对个人)是商家对消费者,也就是通常说的商业零售,即直接面向消费者销售产品和服务。最具有代表性的B2C电子商务模式就是网上零售网站。B2C电子商务的模式并不是唯一的,专门依靠网站开展网上零售只是B2C电子商务的一种形式,企业网站也可以开设面向消费者的在线直接销售,这也是B2C电子商务的表现形式。
        (3)C2C(CustomerTo Customer,个人对个人)是消费者对消费者的交易,简单地说就是消费者本身提供服务或产品给消费者,最常见的形态就是个人工作者提供服务给消费者,如保险从业人员、促销人员的在线服务及销售网点或是商品竞标网站。此类网站非企业对消费者,而是由提供服务的消费者与需求服务的消费者私下达成交易的方式。C2C商务平台就是通过为买卖双方提供一个在线交易平台,使卖方可以主动提供商品上网拍卖,而买方可以自行选择商品进行竞价。
 
       .NET
        .NET的前身是微软的DNA(Distributed Network Architecture),在2000年的时候被.NET所取代。
        .NET以WebServices为核心,全面支持SOAP、UDDI和WSDL,并在底层实现了类似Java虚拟机的CLR(Common Language Runtime)和一套具有3500多个类的.NET基础类库,以支持其开发语言Visual Basic、C#和ASP等,并且在后端支持其数据库SQL Server和Passport,.NET Studio组成了完整的解决方案。
 
       功能需求
        功能需求即网络在用户单位业务中应该提供的功能,可以通过了解用户单位所从事的行业、该单位在行业内的地位以及和其他单位的关系等来确定其功能需求。另外,还可以通过了解项目背景来明确用户单位建网的目的,从而有助于描述详细的功能需求。
 
       管理需求
        从用户的角度来讲,一个网络管理系统应该满足以下要求。
        ◆同时支持网络监视和控制两方面的能力。
        ◆能够管理所有的网络协议。
        ◆尽可能大的管理范围。
        ◆尽可能小的系统开销。
        ◆可以管理不同厂家的联网设备。
        ◆容纳不同的网络管理系统。
        ◆网络管理的标准化。
        在OSI网络管理框架模型中,基本的网络管理功能被分为5个功能域:配置管理(Configuration Management)、性能管理(Performance Management)、故障管理(Fault Management)、安全管理(Security Management)和计费管理(Accounting Management)。
        网络管理的标准化产品包括ISO的CMIS/CMIP(Common Management Information Service/Common Management Information Protocol)、Internet体系结构委员会(Internet Architecture Board, IAB)的SNMP和管理信息库(MIB),这些内容将在第5章详细介绍。
 
       设计模式
        “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。设计模式的核心在于提供了相关问题的解决方案。
        设计模式一般有如下4个要素。
        (1)模式名称(pattern name)。模式名称应具有实际的含义,能反映模式的适用性和意图。
        (2)问题(problem)。描述了应该在何时使用模式,解释了设计问题和问题存在的前因后果。可能描述了特定的设计问题,如怎样用对象表示算法等;也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。
        (3)解决方案(solution)。描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。解决方案并不描述一个特定的具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
        (4)效果(consequences)。描述了模式应用的效果及使用模式应权衡的问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。
        设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。按照设计模式的目的可以分为创建型、结构型和行为型三大类,如下表所示。
        
        设计模式分类
               创建型设计模式
               创建型模式与对象的创建有关,抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。
               创建型模式包括面向类和面向对象两种。Factory Method(工厂方法)定义一个用于创建对象的接口,让子类决定实例化哪一个类。Abstract Factory(抽象工厂)提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。Builder(生成器)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Factory Method使一个类的实例化延迟到其子类。Prototype(原型)用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。Singleton(单例)模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。
               下面以抽象工厂模式和单例模式为例进行说明。
                      Abstract Factory(抽象工厂)
                      (1)意图。提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
                      (2)结构。抽象工厂模式的结构如下图所示。
                      
                      抽象工厂模式结构图
                      其中:
                      .AbstractFactory声明一个创建抽象产品对象的操作接口。
                      .ConcreteFactory实现创建具体产品对象的操作。
                      .AbstractProduct为一类产品对象声明一个接口。
                      .ConcreteProduct定义一个将被相应的具体工厂创建的产品对象,实现AbstractProduct接口。
                      .Client仅使用由AbstractFactory和AbstractProduct类声明的接口。
                      (3)适用性。Abstract Factory模式适用于:
                      .一个系统要独立于它的产品的创建、组合和表示时。
                      .一个系统要由多个产品系列中的一个来配置时。
                      .当要强调一系列相关的产品对象的设计以便进行联合使用时。
                      .当提供一个产品类库,只想显示它们的接口而不是实现时。
                      Singleton(单例)
                      (1)意图。保证一个类仅有一个实例,并提供一个访问它的全局访问点。
                      (2)结构。单例模式的结构如下图所示。
                      
                      单例模式结构图
                      其中:Singleton指定一个Instance操作,允许客户访问它的唯一实例,Instance是一个类操作;可能负责创建它自己的唯一实例。
                      (3)适用性。Singleton模式适用于:
                      .当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
                      .当这个唯一实例应该是通过子类化可扩展的,并且客户无须更改代码就能使用一个扩展的实例时。
               结构型设计模式
               结构型模式处理类或对象的组合,涉及如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父类的性质。这一模式尤其有助于多个独立开发的类库协同工作。其中一个例子是类形式的Adapter(适配器)模式。一般来说,适配器使得一个接口与其他接口兼容,从而给出了多个不同接口的统一抽象。为此,类Adapter对一个adaptee类进行私有继承。这样,适配器就可以用adaptee的接口表示它的接口。对象Adapter依赖于对象组合。
               下面以适配器模式和代理模式为例进行说明。
                      Adapter(适配器)模式
                      (1)意图。将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
                      
                      类适配器结构图
                      (2)结构。类适配器使用多重继承对一个接口与另一个接口进行匹配,其结构如上图所示。对象适配器依赖于对象组合,其结构如下图所示。
                      
                      对象适配器结构图
                      其中:
                      .Target定义Client使用的与特定领域相关的接口。
                      .Client与符合Target接口的对象协同。
                      .Adaptee定义一个已经存在的接口,这个接口需要适配。
                      .Adapter对Adaptee的接口与Target接口进行适配。
                      (3)适用性。Adapter模式适用于:
                      .想使用一个已经存在的类,而它的接口不符合要求。
                      .想创建一个可以服用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
                      .(仅适用于对象Adapter)想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
                      Proxy(代理)模式
                      (1)意图。为其他对象提供一种代理以控制对这个对象的访问。
                      (2)结构。代理模式的结构如下图所示。
                      
                      代理模式结构图
                      其中:
                      .Proxy保存一个引用使得代理可以访问实体;提供一个与Subject的接口相同的接口,使代理可以用来代替实体;控制对实体的存取,并可能负责创建和删除它;其他功能依赖于代理的类型:Remote Proxy负责对请求及其参数进行编码,并向不同地址空间中的实体发送已编码的请求;Virtual Proxy可以缓存实体的附加信息,以便延迟对它的访问;Protection Proxy检查调用者是否具有实现一个请求所必需的访问权限。
                      .Subject定义RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。
                      .RealSubject定义Proxy所代表的实体。
                      (3)适用性。Proxy模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:
                      .远程代理(Remote Proxy)为一个对象在不同地址空间提供局部代表。
                      .虚代理(Virtual Proxy)根据需要创建开销很大的对象。
                      .保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权限的时候。
                      .智能引用(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作。典型用途包括:对指向实际对象的引用计数,这样当该对象没有引用时,可以被自动释放;当第一次引用一个持久对象时,将它装入内存;在访问一个实际对象前,检查是否已经锁定了它,以确保其他对象不能改变它。
                      结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。因为可以在运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性,而这种机制用静态类组合是不可能实现的。
                      Composite(组合)模式将对象组合成树型结构以表示“部分—整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。它描述了如何构造一个类层次式结构,这一结构由两种类型的对象所对应的类构成。其中的组合对象使得用户可以组合基元对象以及其他的组合对象,从而形成任意复杂的结构。proxy(代理)模式为其他对象提供一种代理以控制对这个对象的访问,其中,proxy对象作为其他对象的一个方便的替代或占位符。它的使用可以有多种形式,例如可以在局部空间中代表一个远程地址空间中的对象,也可以表示一个要求被加载的较大的对象,还可以用来保护对敏感对象的访问。proxy模式还提供了对对象的一些特有性质的一定程度上的间接访问,从而可以限制、增强或修改这些性质。Flyweight(享元)模式运用共享技术有效地支持大量细粒度的对象,为了共享对象定义了一个结构。至少有两个原因要求对象共享:效率和一致性。Flyweight的对象共享机制主要强调对象的空间效率。使用很多对象的应用必须考虑每一个对象的开销。使用对象共享而不是进行对象复制,可以节省大量的空间资源。但是,仅当这些对象没有定义与上下文相关的状态时,它们才可以被共享。Flyweight的对象没有这样的状态。任何执行任务时需要的其他一些信息仅当需要时才传递过去。由于不存在与上下文相关的状态,因此Flyweight对象可以被自由地共享。
                      Facade(外观)模式为子系统中的一组接口提供一个一致的界面,定义了一个高层接口,这个接口使得这一子系统更加容易使用。该模式描述了如何用单个对象表示整个子系统。模式中的facade用来表示一组对象,facade的职责是将消息转发给它所表示的对象。Bridge(桥接)模式将对象的抽象和其实现分离,从而可以独立地改变它们。
                      Decorator(装饰)模式描述了如何动态地为对象添加一些额外的职责。该模式采用递归方式组合对象,从而允许添加任意多的对象职责。例如,一个包含用户界面组件的Decorator对象可以将边框或阴影这样的装饰添加到该组件中,或者它可以将窗口滚动和缩放这样的功能添加到组件中。可以将一个Decorator对象嵌套在另外一个对象中,就可以很简单地增加两个装饰,添加其他的装饰也是如此。因此,每个Decorator对象必须与其组件的接口兼容并且保证将消息传递给它。Decorator模式在转发一条信息之前或之后都可以完成它的工作(例如绘制组件的边框)。许多结构型模式在某种程度上具有相关性。
               行为型设计模式
               行为模式对类或对象怎样交互和怎样分配职责进行描述,涉及算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻画了在运行时难以跟踪的复杂的控制流。它们将用户的注意力从控制流转移到对象间的联系方式上来。
               行为类模式使用继承机制在类间分派行为。本章包括两个这样的模式,其中Template Method(模板方法)较为简单和常用。Template Method是一个算法的抽象定义,它逐步地定义该算法,每一步调用一个抽象操作或一个原语操作,子类定义抽象操作以具体实现该算法。另一种行为类模式是Interpreter(解释器)模式,它将一个文法表示为一个类层次,并实现一个解释器作为这些类的实例上的一个操作。
               行为对象模式使用对象复合而不是继承。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任一个对象都无法单独完成的任务。这里一个重要的问题是对等的对象。
               如何互相了解对方。对等对象可以保持显式的对对方的引用,但那会增加它们的耦合度。在极端情况下,每一个对象都要了解所有其他的对象。Mediator(中介者)模式用一个中介对象来封装一系列的对象交互,在对等对象间引入一个mediator对象以避免这种情况的出现。mediator提供了松耦合所需的间接性。
               Chain of Responsibility(责任链)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。Chain of Responsibility模式提供更松的耦合,让用户通过一条候选对象链隐式地向一个对象发送请求。根据运行时刻情况任一候选者都可以响应相应的请求。候选者的数目是任意的,可以在运行时刻决定哪些候选者参与到链中。
               Observer(观察者)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。典型的Observer的例子是Smalltalk中的模型/视图/控制器,其中一旦模型的状态发生变化,模型的所有视图都会得到通知。
               其他的行为对象模式常将行为封装在一个对象中并将请求指派给它。Strategy(策略)模式将算法封装在对象中,这样可以方便地指定和改变一个对象所使用的算法。Command(命令)模式将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。Memento(备忘录)模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便在以后可将该对象恢复到原先保存的状态。State(状态)模式封装一个对象的状态,使得对象在其内部状态改变时可改变它的行为,对象看起来似乎修改了它的类。Visitor(访问者)模式表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作。Visitor模式封装分布于多个类之间的行为。Iterator(迭代器)模式提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示。Iterator模式抽象了访问和遍历一个集合中的对象的方式。
               下面以中介者模式和观察者模式为例进行说明。
                      Mediator(中介者)
                      (1)意图。用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
                      (2)结构。中介者模式的结构图如下图所示。
                      
                      中介者模式结构图
                      其中:
                      .Mediator(中介者)定义一个接口用于各同事(Colleague)对象通信。
                      .ConcreteMediator(具体中介者)通过协调各同事对象实现协作行为;了解并维护它的各个同事。
                      .Colleague class(同事类)知道它的中介者对象;每一个同事类对象在需要与其他同事通信的时候与它的中介者通信。
                      (3)适用性。Mediator模式适用于:
                      .一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。
                      .一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。
                      .想定制一个分布在多个类中的行为,而又不想生成太多的子类。
                      Observer(观察者)
                      (1)意图。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
                      (2)结构。观察者模式的结构图如下图所示。
                      
                      观察者模式结构图
                      其中:
                      .Subject(目标)知道它的观察者,可以有任意多个观察者观察同一个目标;提供注册和删除观察者对象的接口。
                      .Observer(观察者)为那些在目标发生改变时需获得通知的对象定义一个更新接口。
                      .ConcreteSubject(具体目标)将有关状态存入各ConcreteObserver对象;当它的状态发生改变时,向它的各个观察者发出通知。
                      .ConcreteObserver(具体观察者)维护一个指向ConcreteSubject对象的引用;存储有关状态,这些状态应与目标的状态保持一致;实现Observer的更新接口,以使自身状态与目标的状态保持一致。
                      (3)适用性。Observer模式适用于:
                      .当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用。
                      .当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时。
                      .当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。
 
       数据管理
               数据生命周期
               在数据的整个生命周期中,不同的数据需要不同水平的性能、可用性、保护、迁移、保留和处理。通常情况下,在其生命周期的初期,数据的生成和使用都需要利用高速存储,并相应地提供高水平的保护措施,以达到高可用性和提供相当等级的服务水准。随着时间的推移,数据的重要性会逐渐降低,使用频率也会随之下降。伴随着这些变化的发生,企业就可以将数据进行不同级别的存储,为其提供适当的可用性、存储空间、成本、性能和保护,并且在整个生命周期的不同阶段都能对数据保留进行管理。
               数据的安全性管理是数据生命周期中的一个比较重要的环节。在进行数据输入和存取控制的时候,企业必须首先保证输入数据的数据合法性。要保证数据的安全性,必须保证数据的保密性和完整性,主要表现在以下5个方面:
               (1)用户登录时的安全性。从用户登录网络开始,对数据的保密性和完整性的保护就应该开始了。
               (2)网络数据的保护。包括在本地网络上的数据或者穿越网络的数据。在本地网络的数据是由验证协议来保证其安全性的。
               (3)存储数据以及介质的保护。可以采用数字签名来签署软件产品(防范运行恶意的软件),或者加密文件系统。
               (4)通信的安全性。提供多种安全协议和用户模式的、内置的集成支持。
               (5)企业和Internet网的单点安全登录。
               随着时间的推移,大部分数据将不再会被用到。一般情况下,一些无用的数据将被删除以节省空间,或者将有用的数据无限期地存储,以避免数据损失。
               信息资源管理
               信息资源管理(Information Resource Management,IRM)是对整个组织信息资源开发利用的全面管理。IRM把经济管理和信息技术结合起来,使信息作为一种资源而得到优化地配置和使用。上次我们在谈企业信息化的任务时,说开发信息资源既是企业信息化的出发点,又是企业信息化的归宿;只有高档次的数据环境才能发挥信息基础设施作用、建立集成化的信息系统、落实信息资源的开发和利用。因此,从IRM的技术侧面看,数据环境建设是信息资源管理的重要工作。
               企业信息资源管理不是把资源整合起来就行了,而是需要一个有效的信息资源管理体系,其中最为关键的是从事信息资源管理的人才队伍建设;其次,是架构问题,在信息资源建设阶段,规划是以建设进程为主线的,在信息资源管理阶段,规划应是以架构为主线,主要涉及的是这个信息化运营体系的架构,这个架构要消除以往分散建设所导致的信息孤岛,实现大范围内的信息共享、交换和使用,提升系统效率,达到信息资源的最大增值;技术也是一个要素,要选择与信息资源整合和管理相适应的软件和平台;另外一个就是环境要素,主要是指标准和规范,信息资源管理最核心的基础问题就是信息资源的标准和规范。
               数据管理
               企业信息资源开发利用做得好坏的关键人物是企业领导和信息系统负责人。IRM工作层上的最重要的角色就是数据管理员(Data Administrator, DA)。数据管理员负责支持整个企业目标的信息资源的规划、控制和管理;协调数据库和其他数据结构的开发,使数据存储的冗余最小而具有最大的相容性;负责建立有效使用数据资源的标准和规程,组织所需要的培训;负责实现和维护支持这些目标的数据字典;审批所有对数据字典做的修改;负责监督数据管理部门中的所有职员的工作。数据管理员应能提出关于有效使用数据资源的整治建议,向主管部门提出不同的数据结构设计的优缺点忠告,监督其他人员进行逻辑数据结构设计和数据管理。
               数据管理员还需要有良好的人际关系:善于同中高层管理人员一起制定信息资源的短期和长期计划。在数据结构的研制、建立文档和维护过程中,能与项目领导、数据处理人员和数据库管理员协同工作。能同最终用户管理部门一起工作,为他们提供有关数据资源的信息。
               一般来说,由数据管理员对日常数据进行更新和维护。数据库为了保证存储在其中的数据的安全和一致,必须有一组软件来完成相应的管理任务,这组软件就是数据库管理系统,简称DBMS, DBMS随系统的不同而不同,但是一般来说,它应该包括数据库描述功能、数据库管理功能、数据库的查询和操纵功能、数据库维护功能等。为了提高数据库系统的开发效率,现代数据库系统除了DBMS之外,还提供了各种支持应用开发的工具。
               目前许多厂商提供了相应的DBMS,便于数据管理员对底层的数据进行维护。例如MySQL、东软的OpenBase、金仓的KingbaseES等。
               公司级的数据管理
               如何进行信息资源规划?信息资源规划主要可以概括为“建立两种模型和一套标准”。“两种模型”是指信息系统的功能模型和数据模型,“一套标准”是指信息资源管理基础标准。信息系统的功能模型和数据模型,实际上是用户需求的综合反映和规范化表达;信息资源管理基础标准是进行信息资源开发利用的最基本的标准,这些标准都要体现在数据模型之中。
               企业信息化的最终目标是实现各种不同业务信息系统间跨地域、跨行业、跨部门的信息共享和业务协同,而信息共享和业务协同则是建立在信息使用者和信息拥有者对共享数据的涵义、表示及标识有着相同的而无歧义的理解基础上。然而,由于各部门、各行业及各应用领域对于相同的数据概念有着不同的功能需求和不同的描述,从而导致了数据的不一致性。数据的不一致性主要表现为:数据名称的不一致性、数据长度的不一致性、数据表示的不一致性以及数据含义的不统一性。
               数据标准化是一种按照预定规程对共享数据实施规范化管理的过程。数据标准化的对象是数据元素和元数据。数据元素是通过定义、标识、表示以及允许值等一系列属性描述的数据单元,是数据库中表达实体及其属性的标识符。在特定的语义环境中,数据元素被认为是不可再分的最小数据单元。元数据是描述数据元素属性(即语义内容)的信息,并被存储在数据元素注册系统(又称数据字典)中。数据元素注册系统通过对规范化的数据元素及其属性(即元数据)的管理,可以有效实现用户跨系统和跨环境的数据共享。数据标准化主要包括业务建模阶段、数据规范化阶段、文档规范化阶段等三个阶段。
               数据标准化是建立在对现实业务过程全面分析和了解的基础上的,并以业务模型为基础的。业务建模阶段是业务领域专家和业务建模专家按照《业务流程设计指南》,利用业务建模技术对现实业务需求、业务流程及业务信息进行抽象分析的过程,从而形成覆盖整个业务过程的业务模型。该阶段着重对现实业务流程的分析和研究,尤其需要业务领域专家的直接参与和指导。业务模型是某个业务过程的图形表示或一个设计图。
               数据规范化阶段是数据标准化的关键和核心,该阶段是针对数据元素进行提取、规范化及管理的过程。数据元素的提取离不开对业务建模阶段成果的分析,通过研究业务模型能够获得业务的各个参与方、确定业务的实施细则、明确数据元素对应的信息实体。该阶段是业务领域专家和数据规范化专家按照《数据元素设计与管理规范》利用数据元素注册系统(或数据字典)对业务模型内的各种业务信息实体进行抽象、规范化和管理的过程,从而形成一套完整的标准数据元素目录。在实现数据元素标准化的同时,还应关注数据元素取值的规范化,以此实现信息表示和信息处理的标准化。
               文档规范化阶段是数据规范化成果的实际应用的关键,是实现离散数据有效合成的重要途径。标准数据元素是构造完整信息的基本单元,各类电子文档则是传递各类业务信息的有效载体,并是将分离的标准数据元素信息进行有效合成的手段。该阶段是业务领域专家和电子文档设计专家按照《电子文档设计指南》对各类电子文档格式进行规范化设计和管理的过程,并形成了一批电子文档格式规范。
               综上所述,数据标准化所涉及的三个主要阶段缺一不可、彼此密不可分。业务建模是数据标准化的基础和前提;数据规范化及其管理是数据标准化的核心和重点;文档规范化是数据标准化成果的有效应用的关键。
               此外,数据标准化也可以采用数据字典、数据指南或信息系统字典等加以统一。数据字典实际上也是以数据表和视图为主要存在形式的,它是关于数据的数据表和视图。管理员可以通过数据字典获得全面的数据库信息。
               数据库审计支持
               数据安全是大型数据库应用系统中必须仔细考虑的一个重要问题,也是数据库管理人员和系统管理人员日常工作中最为重要的一部分。有效的数据库审计是数据库安全的基本要求。企业应针对自己的应用和数据库活动定义审计策略。智能审计的实现对安全管理的意义重大,不仅能节省时间,而且能减少执行所涉及的范围和对象。通过智能限制日志大小,还能突出更加关键的安全事件。
               信息系统审计员可以从数据库系统本身、主体和客体三个方面来进行审计,审计对数据库对象的访问以及与安全相关的事件。数据库审计员可以分析审计信息、跟踪审计事件、追查责任以及使用审计服务器记录审计跟踪,并且可以根据审计信息,对审计结果进行统计、跟踪和分析,进行审计跟踪、入侵检测等。
               目前许多数据库供应商都提供了支持数据库审计的功能,例如东软公司的OpenBASE Secure就提供了十分完善的审计功能。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       网上销售
        网上销售是企业销售渠道在网上的延伸。一个具备网上交易功能的企业网站本身就是一个网上交易场所,网上销售渠道建设并不限于企业网站本身,还包括建立在专业电子商务平台上的网上商店,以及与其他电子商务网站不同形式的合作等。因此网上销售并不仅仅是大型企业才能开展,不同规模的企业都有可能拥有适合自己需要的在线销售渠道。
 
       系统架构
               客户机/服务器系统
               C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到客户机端和服务器端来实现,降低了系统的通信开销。目前大多数应用软件系统都是客户机/服务器形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和客户机/服务器应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
               浏览器/服务器系统
               B/S (Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(浏览器)实现,但是主要事务逻辑在服务器端(服务器)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(如LAN,WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
               多层分布式系统(Multi-tier System)
               (1)概念。
               随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。在多层体系中,各层次按照以下方式进行划分,实现明确分工:
               ①瘦客户:提供简洁的人机交互界面,完成数据的输入/输出。
               ②业务服务:完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层中,还应实现分布式管理、负载均衡、Fail/Recover、安全隔离等。
               ③数据服务:提供数据的存储服务。一般就是数据库系统。
               (2)多层系统主要特点。
               多层系统主要特点是:
               .安全性。中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全。
               .稳定性。对于要求24×7工作的业务系统,多层分布式体系提供了更可靠的稳定性。一是中间层缓冲Client与数据库的实际连接,使数据库的实际连接数量远小于Client应用数量。当然,连接数越少,数据库系统就越稳定。二是Fail/Recover机制能够在一台服务器宕机的情况下,透明地把客户端工作转移到其他具有同样业务功能的服务上。
               .易维护。由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不做改动。
               .快速响应。通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度。
               .系统扩展灵活。基于多层分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端的响应,而所有变化对客户端透明。
               (3)多层系统举例。
               目前最为流行的两类多层应用架构为Sun的J2EE和Microsoft.Net,下面简单介绍J2EE的多层架构。
               
               J2EE多层应用架构
               (4)客户层。
               客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。基于J2EE规范的客户端可以是基于Web的,也可以是不基于Web的独立(Stand Alone)应用程序。
               在基于Web的J2EE客户端应用中,用户在客户端启动浏览器后,从Web服务器中下载Web层中的静态HTML页面或由JSP或Servlets动态生成的HTML页面。
               在不基于Web的J2EE客户端应用中,独立的客户端应用程序可以运行在一些基于网络的系统中,例如手持设备或汽车电话等。同样,这些独立的应用也可以运行在客户端的Java Applet中。这种类型的客户端应用程序可以在不经过Web层的情况下直接访问部署在EJB容器(EJB Container)中的EJB组件。
               (5) Web层。
               J2EE规范定义的Web层由JSP页面、基于Web的Java Applets以及用于动态生成HTML页面的Servlets构成。这些基本元素在组装过程中通过打包来创建Web组件。运行在Web层中的Web组件依赖Web容器来支持诸如响应客户请求以及查询EJB组件等功能。
               (6)业务层。
               在基于J2EE规范构建的企业信息系统中,将解决或满足特定业务领域商务规则的代码构建成为业务层中的Enterprise JavaBean (EJB)组件。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。
               部署和运行在业务层中的EJB组件依赖于EJB容器来管理诸如事务、生命期、状态转换、多线程及资源存储等。这样由业务层和Web层构成了多层分布式应用体系中的中间层。
               (7)企业信息系统层。
               在企业应用系统的逻辑层划分中,企业信息系统层通常包括企业资源规划(ERP)系统、大型机事务处理(Mainframe Transaction Processing)系统、关系数据库系统(RDMS)及其他在构建J2EE分布式应用系统时已有的企业信息管理软件。
   题号导航      2017年下半年 系统架构设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第4题    在手机中做本题