zoukankan      html  css  js  c++  java
  • SOA整理

    论面向服务架构设计及其应用

     

    1705-2 20173523 景宇庭

     

    摘要:面向服务架构(Service-Oriented Architecture, SOA) 是一种应用框架,将日常的业务应用划分为单独的业务功能服务和流程,通过采用良好定义的接口和标准协议将这些服务关联起来。它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的。通过实施甚于SOA的系统架构,用户可以构建、部署和整合服务,无需依赖应用程序及其运行平台,从而提高业务流程的灵活性,帮助企业加快发展速度,降低企业开发成本,改善企业业务流程的组织和资产重用。

    关键词:应用框架,服务,面向对象

    On service oriented architecture design and its application


    https://fanyi.baidu.com/?fr=websearch_submit&pid=sogou-navi-b2204244922dcb0a-2441 - zh/en/javascript:void(0);

    Letter 1705-20173523 JingYuting

     

    Absrtact:Service Oriented Architecture (SOA) is an application framework, which divides daily business applications into separate business function services and processes, and associates these services by adopting well-defined interfaces and standard protocols. It links the different functional units of an application (called services) through well-defined interfaces and contracts between these services. The interface is defined in a neutral way, which should be independent of the hardware platform, operating system and programming language to implement the service. This enables services built into various such systems to interact in a unified and common way. Although the service-oriented architecture is not a new thing, it is a substitute model for the more traditional object-oriented model, which is tightly coupled. By implementing a system architecture more than SOA, users can build, deploy and integrate services without relying on applications and their running platforms, so as to improve the flexibility of business processes, help enterprises speed up development, reduce development costs, and improve the organization and asset reuse of business processes.

    Key words: application framework, service, object-oriented

    1. 我参与开发的软件系统开发项目以及我所担任的主要工作

    我的主要工作是做需求分析,需求分析建模,资料整理以及身份验证模块和前端界面模块的开发。

    2. 说明面向服务架构的主要技术和标准,详细阐述每种技术和标准的具体内容

    2.1:面向服务架构的主要技术:

    这里主要介绍几种比较常见的技术:JMS,EJB,JCA,RMI以及web service

    JMS:JMS即Java消息服务应用程序接口是一个Java平台中关于面向消息中间件MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。 JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,这只是几个例子。

     EJB是一个用来构筑企业级应用的服务器端可被管理组件。EJB规范的目的在于为企业及应用开发人员实现后台业务提供一个标准方式,从而解决一些此前总是在作业过程中总是重复发生的问题。EJB最早于1997年由IBM提出,旋即被太阳微系统采用并形成标准(EJB 1.0 和EJB 1.1)。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。EJB以一个标准方式自动处理了诸如数据持久化,事务集成,安全对策等不同应用的共有问题,使得软件开发人员可以专注于程序的特定需求而不再饱受那些非业务元素的困扰。

    JCA(J2EE Connector Architecture, 也缩写为,J2C, J2CA),是J2EE平台上连接传统系统的一个技术规范。JCA1.0提供了出站操作,1.5提供了消息流入和事务流入,以及生命周期管理和工作管理等系统契约。

    Java RMI(Java Remote Method Invocation)即Java远程方法调用,是Java编程语言里,一种用于实现远程过程调用应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。

    web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。

    Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

     

    2.2面向服务架构的标准:

    SOAP: 简单对象访问协议 ,它是一种标准化的通讯规范,主要用于Web服务(web service)中。

    它基于已经广泛使用的HTTP和XML协议,是第一个没有发明任何新技术的技术。

    主要包含四个部分:封装,编码规则,RPC表示以及绑定。消息格式:目前主要在web服务中运用。

    WSDL: Web服务描述语言 基于 XML 的协定语言,用于描述服务器提供的网络服务。

    UUDI: Universal Description Discovery and Integration,是统一描述、发现和集成协议。UDDI计划是一个广泛的,开放的行业计划,它使得商业实体能够 (1) 彼此发现,(2) 定义他们怎样在internet上互相作用,并在一个全球的注册体系架构中共享信息。UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。

    使用情况往往是WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

    3.详细说明你所参与的软件系统开发项目中,构建SOA架构时遇到了哪些问题,具体实施效果如何。

    1.对soa架构了解不够,导致架构不完善

    2.组件设计大多不合理,有些组件包含的功能太多,反而不容易维护。

    3.组件间的集成交互能力不够强,导致效率不够高

    4.性能问题,组件化后,一个交易往往会在不同组件中反复读取,导致出现大量的赘余。

    4.面向服务架构的优势:

    SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。

    SOA 的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。

    5. 文末总结:

    SOA具有五个特征:1、可重用2、松耦合3、明确定义的接口4、无状态的服务设计5、基于开放标准。这五个显著特征使得SOA的使用变得简单和稳定。SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services DescriptionLanguage)是用于描述服务的标准语言。

    SOA 服务用消息进行通信,该消息通常使用XML Schema来定义。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。SOA的主要技术包括JMS,EJB,JCA,RMI以及web service而它的标准则包括:WSDL,UUDI和SOAP三个。

     

    参考资料:《搜狗百科》

             《百度百科》

              《知乎》

    《简书》

  • 相关阅读:
    函数式编程
    8 Principles of Better Unit Testing
    COM 组件 V.S. .NET
    WebBrowser 禁用脚本错误提示
    Unable to automatically debug "XXXXX“
    简介
    android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习
    我的Android六章:Android中SQLite数据库操作
    Android的生命周期学习
    我的Android第五章:通过Intent实现活动与活动之间的交互
  • 原文地址:https://www.cnblogs.com/jyt123/p/13162429.html
Copyright © 2011-2022 走看看