鉴于面向服务比较抽象,本文的目的主要是以便于理解的方式从一个角度去剖SOA。
首先讲一下个人对Java语言的一些理解。
Java不单单是面向对象程序设计语言、运用虚拟机技术、使用指针原理但隐藏指针、是用单一继承、自动垃圾回收机制(但是像IO流,相当于放出去,不方便回收)等等,最为核心重要的一点就是Java的可移植性,比如:它使得我们在window环境下的程序,在Linux下也能运行稳定,并且正是由于这一特性,使得Java能够在各种网络协议中游刃有余地进行穿梭。这就使得Java在消息和网络应用的领域有了不可比拟的优势,使得Java更像是一种面向消息和网络的编程语言。
作为后起之秀,Java以另外一些高级编程语言(C++,C#)不可比拟的优势,开创了网络应用编程的辉煌。虽然,C++等一些语言做出的网络应用框架可能一定程度上比Java还要好,但是这毕竟是属于企业级的集成,并不能很好的对外开放。所以基于Java的很多开源社区,秉承Java的优点,分别开发出了Struts,Hibernate,spring等等一系列优秀的应用框架,并且用户可以方便的根据自己的需求改动框架,使得Java比C++在网络应用方便范围更广。
其实,面向服务与你是用什么编程语言没有必然的联系。面向服务是一个企业级的框架和解决方案。我看了几本关于SOA的书,感觉介绍的都很抽象,如何来理解呢?
举个例子来说-----工厂销售管理。有库存管理,供应商管理,生产流水线管理,销售管理,人事管理,配料管理等等。这些子系统的编程语言可谓是五花八门:Java,C,C++,C#,操作系统有Linux,Windows,uC/OS等等。比如,当库存预警时,需要寻找相应的供应商,而这个供应商又由于各种原因不能给我们按时供货。此时,就需要一个能够协调各部门之间协同工作的媒介,于是SOA便有了发挥的空间。各个子系统将数据传输给服务总线,通过SOA框架的运用得到完美的解决方案,再反馈给客户端。例如:用户手机中有一张大概为2兆的相片,现在用户希望将图片渲染,而这一个计算工作量对于手机来说不仅内存开销巨大,而且要浪费掉大量的时间,这显然不能被客户接受。有了SOA的解决方案后,用户就可以把相片上传到相应服务器,此时,如果服务器不能有效解决问题的话,便将相片发送到云计算中心,通过C++程序与硬件的高速交互最终将相片完美渲染,最后用户通过服务网络得到在手机上得到处理好的相片。而这一个框架必将包含各种复杂的信息处理模型以及和服务总线进行复杂的数据交互,这也将作为我今后的研究对象。
分享到:
相关推荐
他个人对SOA和EJB感兴趣,认为EJB在大型企业面试中更受重视。同时,他强烈推荐程序员提升外语能力,以便参与更多的国际项目。 总结来说,对于Java程序员,应注重基础知识的积累,特别是Java基础、Servlets和JDBC;...
### Java基础知识面试题知识点梳理 #### 一、Java概述及编程定义 - **何为编程:** - 编程是让计算机按照指定步骤解决问题的过程。通过使用特定的编程语言来编写程序代码,最终实现计算任务。 - 编程过程中,...
### Java开发人员面试试题知识点详解 #### 一、前言 在Java开发领域,无论是对于刚入门的新手还是有一定经验的开发者来说,掌握面试中常见的技术知识点是非常重要的。本篇文章将围绕“Java开发人员面试试题”这一...
本文档总结了Java程序员架构面试中常见的微服务面试题,涵盖了SOA和微服务的区别、微服务架构的特点、RESTful架构的理解等重要知识点。 SOA与微服务的区别 SOA(Service-Oriented Architecture)是在企业计算领域...
总结来说,对于Java软件工程师来说,理解和熟练运用MVC设计模式、WebService以及中间件是至关重要的,这些技术是构建现代、可扩展和高可用Web应用的基础。在面试和笔试中,深入掌握这些概念并能够实际应用将极大地...
以下是对标题和描述中所述知识点的详细说明,以及与Java面试相关的丰富内容。 一、Java基础 1. Java语言特性:包括封装、继承、多态等面向对象的基本概念,以及异常处理、垃圾回收机制。 2. 数据类型:深入理解基本...
总结,Java软件工程师面试中可能涉及的题目涵盖了MVC设计模式、WebService和中间件等核心概念,这些知识点对于理解和构建复杂的Web应用程序至关重要。了解和掌握这些知识,有助于提升软件开发的效率和质量。
9. **软件架构**:面试者需要理解不同类型的软件架构(如单体、SOA、微服务),以及如何根据业务需求选择合适的架构。 10. **项目管理和沟通技巧**:除了技术知识,面试也可能评估候选人的团队协作、问题解决和沟通...
本文总结了Java系统架构师面试题,涵盖了OOP、IOC、AOP、J2EE框架、SOA、ROA、JVM、Java通讯、软件架构、服务器、中间件、WEB服务器、权限分派、负载平衡、数据库设计、项目管理、团队建设等领域,旨在为Java系统...
### 南航移动面试题总结 #### Dubbo的优缺点及其功能 **优点:** - **高性能通信:** 使用NIO非阻塞IO技术,支持多种传输协议(如TCP、HTTP等),确保了高吞吐量和低延迟的通信能力。 - **服务自动注册与发现:** ...
180多页面试题,前前后后不间断的更新了两年,准备换工作时,总是拿来看看,有比较好的面试题,也不间断的更新,面试题目录如下: 【基础】面向对象的特征有哪些方面 13 抽象 13 继承 13 封装 13 多态性 13 【基础】...
- **主要内容**:通过小白板等形式,向面试官展示项目的关键步骤和技术亮点。 - **考察点**:项目管理能力、技术讲解能力。 #### 多线程场景实现 - **主要内容**:利用多线程处理并发任务,保证任务的正确执行和...
本文档是对C#高级程序员面试题的总结,涵盖了.NET Framework、ASP.NET、AJAX、WebService、SOA、SaaS、WCF、WF、WPF等多个方面的技术知识点。 .NET Framework 1. .NET 编译过程:在.NET Framework中,编译过程主要...
总结,软件工程师面试中,对MVC的理解、WebService的掌握以及中间件的熟悉程度,是评估候选人技术功底和实际应用能力的关键点。理解和运用这些技术,对于构建可扩展、可维护的分布式系统至关重要。
【知识点详解】 1. MVC设计模式: MVC(Model-View-Controller)是软件开发中的一个设计模式,常用于构建...这三者在现代IT行业中扮演着至关重要的角色,对于软件工程师来说,理解和掌握这些概念和技术是必备的技能。
这篇面试宝典涵盖了基础篇、核心篇、框架篇、微服务篇、安全&性能、工程篇等多个方面的知识点,总结了大多数互联网公司的面试题目,涉及到Java基础知识、数据存储、缓存、消息队列、框架、微服务、安全、性能优化、...