The Wayback Machine - https://web.archive.org/web/20221025091106/https://baike.sogou.com/kexue/d11055.htm

中间件

编辑
位于内核和用户应用程序之间的软件都被认为是中间件。

中间件,又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的计算机软件,它为软件应用程序提供操作系统以外的服务,被形象的描述为“软件胶水”。[1]

中间件使软件开发人员更容易实现通信和输入/输出,因此他们可以专注于应用程序的具体目的。虽然这个术语从1968年就开始使用[2] ,但是作为将新应用程序与较老系统联系起来的一种方案,它在20世纪80年代才被广泛应用。[2]

1 分布式应用程序编辑

软件架构:中间件

中间件是最常用于支持分布式应用程序中数据通信和管理的软件。在2000年的一个IETF研讨会中,中间件被定义为“在传输层之上(即,在TCP/IP层之上)但在应用程序环境之下的一套服务”(即,在应用程序APIs之下)。[3]在这个更具体的意义上,中间件可以被描述为客户端与服务器之间的连接,或者点对点之间的连接。中间件包括网络服务器、应用服务器、内容管理系统和支持应用开发和交付的工具。[4]

对象网络将中间件定义为:“一种软件层,并且它位于网络中分布式计算系统每一侧的操作系统和应用程序之间。”[5] 中间件的服务包括企业应用集成、数据集成、面向消息的中间件(MOM)、对象请求代理(ORBs)和企业服务总线(ESB)。[6]

数据库访问服务通常被描述为中间件。其中一些是特定于语言的实现,支持异构特性和其他相关的通信特性。[7]面向数据库中间件的例子包括ODBC、JDBC和事务处理监视器。[8]

分布式计算系统中间件可以大致分为两类——提供人工服务(如web请求服务)的中间件和在机器时间执行的中间件。后一种中间件通过实现了某种程度的标准化[9],通常用于电信、国防和航空航天行业的复杂嵌入式系统中。[10]

2 其他例子编辑

中间件也用于其他场景。中间件有时以类似于软件驱动程序的方式使用,软件驱动程序是一个抽象层,它向应用程序隐藏硬件设备或其他软件的细节。

  • 安卓操作系统以Linux内核为核心,同时也提供了一个应用程序框架,开发者可以将该框架整合到他们的应用程序中。此外,安卓还提供了一个中间件层,包括提供数据存储、屏幕显示、多媒体和网络浏览等服务的库。因为中间件库被编译成机器语言,所以服务执行得很快。中间件库也实现了特定于设备的功能,因此应用程序和应用程序框架不需要关注不同安卓设备之间的差异。安卓的中间件层还包含ART虚拟机及其核心的Java应用程序库。[11]
  • 游戏引擎软件,如Gamebryo和RenderWare,因提供许多服务来简化游戏开发,有时被描述为中间件。[12]
  • 在仿真技术中,中间件通常被用在适用于许多分布式仿真的高级体系结构(HLA)的环境中。它是位于应用程序代码和运行时基础设施之间的软件层。中间件通常由一个函数库组成,并且允许许多应用程序——在HLA术语中的模拟器——从公共库中调用这些函数,而不是为每个应用程序重新创建它们。[13]
  • 无线网络开发人员可以使用中间件来应对与无线传感器网络相关的挑战(WSN)。执行中间件应用程序允许WSN开发人员将操作系统和硬件与当前可用的各种各样的应用程序集成在一起。[14]
  • QNX操作系统提供中间件,用于为汽车、飞机和其他环境提供多媒体服务。[15]
  • 射频识别(RFID)软件工具包提供中间件来过滤噪声和冗余原始数据。[16]

参考文献

  • [1]

    ^"What is Middleware?". Middleware.org. Defining Technology. 2008. Archived from the original on June 29, 2012. Retrieved 2013-08-11.CS1 maint: Unfit url (link).

  • [2]

    ^Gall, Nick (July 30, 2005). "Origin of the term middleware"..

  • [3]

    ^"Home". IETF..

  • [4]

    ^Etzkorn, L. H. (2017). Introduction to Middleware: Web Services, Object Components, and Cloud Computing. CRC Press. pp. 4–5. ISBN 9781498754101..

  • [5]

    ^Krakowiak, Sacha. "What's middleware?". ObjectWeb.org. Archived from the original on 2005-05-07. Retrieved 2005-05-06..

  • [6]

    ^Luckham, D. C. (2011). Event Processing for Business: Organizing the Real-Time Enterprise. John Wiley & Sons. pp. 27–28. ISBN 9781118171851..

  • [7]

    ^Simon, A. R.; Wheeler, T. (2014). Open Client/Server Computing and Middleware. Academic Press. pp. 43–49. ISBN 9781483214276..

  • [8]

    ^Arregoces, M.; Portolani, M. (2003). Data Center Fundamentals. Cisco Press. pp. 92–93. ISBN 9781587140747..

  • [9]

    ^"Service Availability Interface Specification" (PDF). Service Availability Forum. 30 September 2011. Retrieved 26 July 2018..

  • [10]

    ^Jokiaho, T.; Fryer, J. (2012). "Foreword". Service Availability: Principles and Practice. John Wiley & Sons. p. xv. ISBN 9781119941675..

  • [11]

    ^Charlie Collins, Michael Galpin and Matthias Kaeppler, Android in Practice, Manning Publications, 2011.

  • [12]

    ^Moore, M. E. (2006). Introduction to the Game Industry. Pearson Prentice Hall. p. 169. ISBN 9780131687431..

  • [13]

    ^Becchini, R.; Chilaev, P.; Krivtsov, V.; et al. (2003). "Chapter 4: Middleware". In Drira, K.; Martelli, A.; Villemur, T. Cooperative Environments for Distributed Systems Engineering: The Distributed Systems Environment Report. Springer. pp. 41–4. ISBN 9783540455820..

  • [14]

    ^Hadim, S. and Mohamed, N. (2006). Middleware challenges and approaches for wireless sensor networks. IEEE Distributed Systems Online vol 7. Issue 3. Retrieved March 4, 2009 from iEEE Distributed Systems Online.

  • [15]

    ^"QNX Software Joins Internet ITS Consortium of Japan". QNX News Releases. QNX. 6 May 2008. Retrieved 26 July 2018..

  • [16]

    ^Glover, B.; Bhatt, H. (2006). RFID Essentials. O'Reilly Media. pp. 38–44. ISBN 9780596009441..

阅读 8439
版本记录
  • 暂无