最近恶补了一些东西,里面的东西有的不是说看过就能理解的,也不是说一两句话就可以说清出的,是需要领悟的,所以在这里做个记录,也顺便和人讨论讨论:
比如RPC...,NFS,REST,SOA,IoC,ROA,ESB这些东西总是容易让人感觉很抽象,这里做个简单的介绍:
先看各个到底是什么意思,然后我们来个总结:
引用
进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。这些进程可以运行在同一计算机上或网络连接的不同计算机上。 进程间通信技术包括消息传递、同步、共享内存和远程过程调用。 IPC是一种标准的Unix通信机制;
LPC:本地过程调用,用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。
RPC:Remote Procedure Call远程过程调用;远程调用类似与LRC,只是他是在网络上工作。
而,所谓过程调用,就是将控制从一个过程 A 传递到另一个过程 B, 返回时过程 B 将控制进程交给过程 A。目前大多数系统中, 调用者和被调用者都在给定主机系统中的一个进程中, 它们是在生成可执行文件时由链接器连接起来的, 这类过程调用称为本地过程调用。
NFS,Network File System网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
注:NFS客户端也可以安装在windows的系统上(之前以为只能在都是linux机子的网络下。。。);
REST: 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表形。获得这些表形致使这些应用程序转变了其状态。随着不断获取资源的表形,客户端应用不断地在转变着其状态,所谓表形化的状态转变(Representational State Transfer)。因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。
SOAP 是指简单对象访问协议(simple object access protocal)。
SOAP是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。或者更简单地说:SOAP 是用于访问网络服务的协议。是一种通信协议,是基于应用程序级别的通讯;
对于应用程序开发来说,使程序之间进行因特网通信是很重要的。
目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。
WSDL 网络服务描述语言 (Web Services Description Language)。
WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)(还不是 W3C 标准)。
UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。
UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行集成。
•UDDI 指的是通用描述、发现与集成服务
•UDDI 是一种用于存储有关 web services 的信息的目录。
•UDDI 是一种由 WSDL 描述的 web services 界面的目录。
•UDDI 经由 SOAP 进行通信
•UDDI 被构建入了微软的 .NET 平台
UDDI 使用 W3C 和 IETF* 的因特网标准,比如 XML、HTTP 和 DNS 协议。
UDDI 使用 WSDL 来描述到达 web services 的界面;
在 UDDI 之前,还不存在一种 Internet 标准,可以供企业为它们的企业和伙伴提供有关其产品和服务的信息。也不存在一种方法,来集成到彼此的系统和进程中。
SOA:
SOA面向服务的体系结构(service-oriented architecture,SOA)是一个系统软件组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
ESB 不是万能的,他不是一个应用程序框架,也不是一个企业应用的解决方案.它只是一个基于消息的调用企业服务的通信模块!你可以把它嵌入到你的应用程序框架中,例如嵌入到spring容器里面,或者嵌入到工作流系统中.它的作用是对企业里面的SOA服务的调用提供一个框架和简便的方法.
ROA:Return On Assets,资产收益率.没啥好说的。。。。
AOP:面向切面编程(也叫面向方面):Aspect Oriented Programming
AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
DCOM(分布式组件对象模型)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在Windows95或者其后的版本上)。
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程 序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
IoC Inversion of Control
控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。
不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。其原理是基于OO设计原则的TheHollywoodPrinciple:Don'tcallus,we'llcallyou(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,这就是反转。
GoF"四人组",代表着设计模式。不仅仅Java。
********************************************************************************************************************************************
今天上来,发现这篇文章被踩了好几下。。。。失落感顿生。。。文中所提到的大部分是一些理论原理之类的知识,或许太简单了点,但对于刚接触的我来说,他们是很有吸引了的。。。。。。。********************************************************************************************************************************************
【
参考资料:
1,WebService与使用风格RPC/SOA/REST
http://www.cnblogs.com/itech/archive/2010/06/30/1768327.html
2,大家能谈谈SOAP与CORBA,COM/DCOM的区别?
http://topic.csdn.net/t/20021231/12/1316022.html
3,[SOA介绍]什么是SOA?
http://java.ccidnet.com/art/3559/20041125/478009_1.html
4,什么是SOA?soa是什么意思?
http://www.eqccd.com/academy/ShowPost.asp?ThreadID=96
5,进程间通信IPC、LPC、RPC
http://www.cnblogs.com/gsk99/archive/2010/12/13/1904541.html
6,【C++】【CPR】浅析远程过程调用 RPC
http://blog.csdn.net/sunnykaho/archive/2009/12/03/4935419.aspx
】
分享到:
相关推荐
描述中的“LPC相关函数简介、LPC实现IPC通信文档及代码”揭示了这个压缩包包含了LPC的基本概念、具体函数的介绍,以及如何实际应用LPC来构建IPC通信的文档和源代码示例。这意味着我们可以期待学习到LPC的原理、使用...
LPC1778是一款基于ARM Cortex-M3内核的微控制器,由NXP(原飞利浦半导体)公司设计制造。这款芯片以其高性能、低功耗和丰富的外设接口在嵌入式系统领域广泛应用。LPC1778开发板则是为了方便工程师和开发者学习、测试...
LPC2364、LPC2366、LPC2368和LPC2378是NXP(原飞利浦)公司生产的一系列基于ARM7TDMI内核的微控制器,广泛应用于嵌入式系统设计。这些芯片具有丰富的外设接口和强大的处理能力,适用于各种工业控制、消费电子以及...
标题中的"LPC1766 LPC1768 LPC1700 GPIO程序"涉及到的是基于NXP(现为ON Semiconductor)的Cortex-M3内核微控制器LPC1766、LPC1768和LPC1700系列的GPIO(General Purpose Input/Output)编程。这些芯片在嵌入式系统...
【LPC1768教程】 NXP的LPC1768是一款基于ARM Cortex-M3内核的微控制器,常用于嵌入式系统设计。这个教程将深入讲解LPC1768的硬件特性、编程模型以及实际应用。 1. **Cortex-M3内核**:LPC1768的核心是32位ARM ...
《Keil LPC1100_DFP:微控制器开发与编程的基石》 在嵌入式系统开发领域,Keil工具链是广受欢迎的选择,尤其是对于基于ARM Cortex-M系列微控制器的设计工作。本文将深入探讨Keil LPC1100_DFP.1.4.0的详细知识,这个...
《J-LINK V10更新文件包:连接与调试LPC4357与LPC4300微控制器》 在嵌入式系统开发领域,J-Link是一款广泛使用的调试器和编程器,尤其在 Cortex-M 系列微控制器上,它的功能强大且易于使用。"J-LINK V10_LPC4357_...
《LPC2000 FLASH Utility v2.2.2:高效编程工具详解》 LPC2000系列微控制器是由NXP Semiconductors(原飞利浦半导体)推出的基于ARM7TDMI内核的高性能、低功耗产品线。其中,LPC210x型号是该系列中的代表,广泛应用...
从给定的“LPC2138开发板原理图”的描述、标签及部分内容中,我们可以提炼出关于LPC2138微控制器及其开发板的关键知识点,这将有助于初学者快速理解该微控制器的功能与架构。 ### LPC2138微控制器概述 LPC2138是一...
**LPC1114简介** LPC1114是一款基于ARM Cortex-M0内核的微控制器,由NXP半导体公司生产。该芯片在低功耗应用中表现出色,适用于各种嵌入式系统,包括IoT设备、消费电子、工业控制等。它拥有丰富的外设接口,如GPIO...
在数字语音处理领域,线性预测编码(Linear Predictive Coding, LPC)是一种广泛使用的分析方法,用于模拟人类语音产生的过程。LPC的核心是通过自相关函数来估计语音信号的系数,这些系数可以用来构建一个线性预测...
标题中的“LPC1768-IAP”和“LPC1768IAP升级”涉及的是基于NXP LPC1768微控制器的在系统编程(In-Application Programming, IAP)技术。LPC1768是NXP公司生产的基于ARM Cortex-M3内核的微控制器,广泛应用于各种...
LPC总线介绍 LPC总线是一种基于Intel标准的33MHz 4 bit并行总线协议,用于代替以前的ISA总线协议。LPC总线的出现解决了ISA总线的缺陷,提供了更高的传输速率和更少的信号线数量。 LPC总线的组成部分包括7个必选...
LPC(Low Pin Count)总线是一种广泛应用在嵌入式系统中的接口标准,它由NXP(原飞利浦)公司提出,旨在提供一种简单、低成本的连接微控制器(MCU)和其他外设的方式。LPC总线通常包括数据线、地址线、控制线以及...
《LPC2294开发板资源详解及应用探索》 LPC2294是一款基于ARM7TDMI-S内核的微控制器,由NXP(原飞利浦半导体)公司生产,广泛应用于嵌入式系统设计。这款微控制器以其高性能、低功耗和丰富的外设接口在工业控制、...
与远程过程调用(RPC,Remote Procedure Call)类似,LPC允许一个进程中的代码执行另一个进程中定义的函数,但LPC更专注于在同一台计算机上的进程间的通信,而RPC则可以跨越网络。LPC作为一种高效且低开销的通信机制...
《LPC177x/178x微控制器实战指南——基于CMSIS的驱动库应用》 LPC177x/178x系列是NXP半导体公司推出的一款高性能ARM Cortex-M3内核的微控制器,广泛应用于工业控制、消费电子、汽车电子等领域。这些器件具有丰富的...
LPC1788FBD208、LPC1788FET208、LPC1788FET180、LPC1788FBD144、LPC1787FBD208、LPC1786FBD208、LPC1785FBD208、LPC1778FBD208、LPC1778FET208、LPC1778FET180、LPC1778FBD144、LPC1777FBD208、LPC1776FBD208、LPC...
《LPC1100 LPC1114 全套教程》是一份全面介绍NXP公司的LPC1100和LPC1114系列微控制器的教程资料,涵盖了从基础概念到高级应用的各个层面。这个压缩包包含了一系列PDF文档,详细解读了这些微控制器的寄存器、外设接口...
根据提供的文档内容,我们可以总结出关于LPC2364、LPC2366、LPC2368和LPC2378微控制器的一些关键知识点。 ### LPC23xx系列微控制器概述 #### 1.1 简介 LPC23xx系列是基于ARM7TDMI-S处理器的高性能32位微控制器,该...