论面向服务架构及其应用

  论面向服务架构及其应用

摘要:面向服务架构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。本文将从本人所参与分析过的软件项目、面向服务架构的主要技术和标准、构建SOA架构时遇到的问题三个方面来进行阐述。

关键词:面向服务架构、项目、管理

1.项目及职责概述  

  我印象最深的便是在大二下学期参与的两个小项目了,石家庄地铁路线查询系统和团队APP的开发。那时候对于软件架构这一概念是比较陌生的,由于都是团队合作,所以在项目开发前,我们只是简单的做了分工、明确了各自的任务。在两个项目中我主要负责的工作几乎都是代码编写工作,不同的是APP项目后期涉及到了软件的部署,所以较前项目团队间分工更明确一些。

2.面向服务架构的主要技术和标准

2.1、访问服务

  JDBC (Java Data Base Connectivity, java 数据库连接):JDBC 是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC 为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法

专用API (Application Programming Interface):专用API是针对某个具体软件产品提供的编程接口。

2.2、数据服务

  XQuery (XML Query) : XQuery是W3C所制定的一套标准,用来从类XML文档中提取信息,类XHL 文档可以理解成一切符合XML数据模型和接口的实体,他们可能是文件或关系型数据库。

2.3、业务服务

  SCA(Service Component Architecture): SCA即服务组件架构,它提供了一种编程模型,可以支持基于SOA的应用程序实现。SCΛ支持实现服务组件的各种技术及连接服务组件的各种存取方法。

2.4、流程服务

  BPMN (Business Process Modeling Notation) : BPMN 是一个业务流程建模和 Web 服务标准,其 首要目标是提供一个通俗易懂的标注体系,另外一个重要目标是提供内部模型,便于下一代XML语言 对业务流程的执行。

2.5、展现服务

  HTML  : HTML即超文本标记语言或超文木链接标示语言,是网站的描述语言。

  JSP: JSP是一种动态网页技术标准,JSP将网页逻辑与网页设计和显示分离, 由HTML代码和嵌入英中的Java代码所组成,支持可重用的基于组件的设计。JSP页面是跨平台的, 即能在Windows下运行,也能在Linux等其它操作系统上运行。

2.6、消息传输

  HTTP: HTTP超文本传输协议是用于从Web服务器传输超文 本到本地浏览器的传送协议。

  FTP: FTP是文件传输协议的简称,用于Internet上的文件的双向 传输。

2.7、消息交换

  XML (Extensible Markup Language) : XML即扩展标识语言。是通用标识语言标准(SGML)的一个 子集,是描述网络上的数据内容和结构的标准。

  SOAP (Simple Object Access Protocol ) : SOAP即简单对象访问协议,是基于XML的在分布式 的环境中交换信息的简单的协议。

2.8、安全管理

  WS-Trust: WS-Trust使用WS-Security安全的消息传递机制为安全性令牌交换定义额外的原语和 扩展,以便得凭证能够在不同的信任域中签发和传播。

  SSL/TLS: SSL/TLS利用密钥算法在互联网上提供端点身份认证与通讯保密,其基础是公钥基础设施(PKI).

2.9、服务描述、注册与发现

  WSDL: WSDL即Web 服务描述语言,它从句法层面对 Web 服务的功能进行描述,包括4个不同的粒度:数据类型(Data type).消息(Message)。方法(Operation)和访问端口(PortType)。WSDL只提供了 Web服务的接口描述,对服务的行为约束和屈性 描述缺乏进一步的支持。

UDDI (Universal Description Discovery and Integration) : UDDI 注册内容包括Web 服务的 技术模型和业务模型,本身可扩展,目前主要用于Web服务的注册和査找。

3.SOA个人项目管理

  在前面所述的两个项目的开发过程中,对于访问服务、数据服务、业务服务、消息传输等部分SOA架构的主要技术确实都用到了。石家庄地铁线路查询系统项目由于是web端,对于访问服务jdbc等关键技术我们已再熟悉不过了,所以在构建SOA架构时并未遇到大的困难。而在APP项目中,在使用信息传输这一主要技术时遇到了困难,当时需要从AndroidStudio软件向Eclipse软件传输信息,即把数据从客户端传输到服务端,由于没处理过类似的情况,为此困扰了我们团队两天的时间,但经过网上查阅资料将其克服,至于原理其实并不是非常清楚,但应用效果还是不错的。另一个不足之处就是在该项目的安全管理技术上做的不到位,用户注册后需将数据传到数据库,对于加密算法的使用不是很完善。以上便是我在参与软件项目时构建SOA架构时遇到的问题了。

4.总结

  做好SOA项目实施前的规划工作,是SOA项目实施的基础。实施soa架构是一项战略目标,是一个持续改进的过程,必须在充分保护现有应用系统 信息资源的基础上分阶段实施,迭代式推进,最终达到信息技术架构模型的规范与统一, 实现信息资源的共享和重用。

参考资料:

https://max.book118.com/html/2016/0528/44169760.shtm

原文地址:https://www.cnblogs.com/zwang/p/12902355.html