当我们准备开发一个项目的时候,总会有一些规划,尤其是开发产品,肯定要有自己对设计产品的概念,那java产品架构原理是什么?下面来我们就来给大家讲解一下java产品架构的相关知识。
1. 不同系统不同语言之间的交互
现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web 服务”,简写为 WS。从字面上理解,它其实就是“基于 Web 的服务”。而服务却是双方的,有服务需求方,就有服务提供方。服务提供方对外发布服务,服务需求方调用服务提供方所发布的服务。如果说得再专业一点,WS 其实就是建立在 HTTP 协议上实现异构系统通讯的工具。没错!WS 说白了还是基于 HTTP 协议的,也就是说,数据是通过 HTTP 进行传输的。最早我们是用CXF开发SOAP服务实现WS,后面我们是用REST服务实现WS(这个目前使用比较多,也最我用得最多的这一种)。基于CXF也可以开发REST服务,不过我们一般直接使用springMVC或者其他MVC框架实现REST服务。
但是在很多人的印象中Web service的话一般指十来年前IBM主导的基于XML的各种交互技术,现在除了一些公司在用之外用得人也很少了。广义的话Webservice就是Web 服务了,一切皆服务。
2. 不同系统相同语言之间的交互
常见的不同系统相同语言之间的交互用RPC(远程过程调用),或者RMI(远程方法调用)实现,不用对外部提供服务,当然上面说的也可以使用在相同语言之间的交互,只是我常用的是RPC。
3.单个产品的架构演进
一般我们只是一个产品的情况下的架构演进历程,如果需要对外提供webService,通常使用REST服务实现。
4. 产品线的架构
还有一种就是业务拆分。现在我们需要做一个产品线,我们只需要一个数据层,一个通用业务逻辑层,前面还有各种应用和界面层,不需要对外部系统(外部公司的系统)提供服务的情况以前我们一般会选择用EJB等来构建分布式应用,但是现在我们可以使用dobbo、thrift、avro、hessian这类RPC框架来构建分布式应用实现不同应用和数据来源的交互。这种结构模式下我们需要对其他公司提供服务,可以专门写一个应用对外部系统提供rest服务。一般大多数互联网服务背后都要访问十几个甚至几百个内部服务,它们之间的通信方式一般都是RPC:就像访问一个远程方法那样,输入参数后等待返回结果。这对于构建复杂系统是最容易理解的方式。
如下图的模型,文件系统,缓存那些没有画出来,大家理解就行。
架构的根本目的就是为了梳理产品思路,从整体上把握产品的发展方向,因此我们需要将架构思路理清,把控产品的功能重点。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: