Abstract
In the context of IT applications and especially in large organizations, integration of existing information systems into new IT environments poses many challenges. One of the biggest issue in this regard is dealing with the systems’ heterogenity in terms of used programming languages, operating systems, or even data formats. In order to ensure communication between different information systems, developers must establish common interfaces. This chapter introduces middleware as a type of software which manages and facilitates interactions between applications across computing platforms. Besides a brief definition and overview of middleware, several of its characteristics are described. Furthermore, the differences between the three middleware categories (message-oriented, transaction-oriented and object-oriented middleware) are defined. In addition to these theoretical foundations, some practical implementations are presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
ACM (2017) ACM software system award. https://awards.acm.org/software-system/award-winners. Accessed 7 Sept 2019
Aiken B, Strassner J, Carpenter BE, Foster I, Lynch C, Mambretti J, Moore R, Teitelbaum B (2000) RFC 2768 – network policy and services: a report of a workshop on middleware. https://tools.ietf.org/html/rfc2768. Accessed 17 Sept 2019
Albano M, Ferreira L, Pinho L, Rahman Alkhawaja A (2014) Message-oriented middleware for smart grids. Comput Stand Interfaces 38(C):133–143
Alonso G (2018) Transactional middleware. In: Liu L, Özsu MT (eds) Encyclopedia of database systems. Springer, New York, NY, pp 4201–4204
Alonso G, Casati F, Kuno H, Machiraju V (2004) Web services. In: Alonso G, Casati F, Kuno H, Machiraju V (eds) Web services: concepts, architectures and applications. Data-centric systems and applications, 1st edn. Springer, Berlin
Amazon Web Services (2019) Amazon simple queue service. https://aws.amazon.com/sqs/?nc1=h_ls. Accessed 1 Apr 2019
Apache Software Foundation (2019) Apache ActiveMQ. http://activemq.apache.org/. Accessed 1 Apr 2019
Baker S (1997) CORBA distributed objects: using Orbix, vol 7. Addison-Wesley, New York, NY
Balasubramanian J, Schmidt DC, Dowdy L, Othman O (2004) Evaluating the performance of middleware load balancing strategies. Paper presented at the 8th IEEE international enterprise distributed object computing conference, Monterey, CA, 24 Sept 2004
Belokosztolszki A, Eyers DM, Pietzuch PR, Bacon J, Moody K (2003) Role-based access control for publish/subscribe middleware architectures. Paper presented at the 2nd international workshop on distributed event-based systems, San Diego, CA, 8 June 2003
Bernstein PA (1996) Middleware: a model for distributed system services. Commun ACM 39(2):86–98
Bernstein PA, Newcomer E (2009) Principles of transaction processing, 2nd edn. Morgan Kaufmann, San Francisco, CA
Bernstein PA, Goodman N, Hadzilacos V (1995) Concurrency control and recovery in database systems. Addison-Wesley, Boston, MA
Birrell AD, Nelson BJ (1984) Implementing remote procedure calls. ACM Trans Comput Syst 2(1):39–59
Bouchenak S, de Palma N (2009) Message queuing systems. In: Liu L, Özsu MT (eds) Encyclopedia of database systems. Springer, Boston, MA, pp 1716–1717
Capra L, Emmerich W, Mascolo C (2001) Middleware for mobile computing: awareness vs. transparency. Paper presented at the 8th workshop on hot topics in operating systems, Elmau, 20–22 May 2001
Cattell R (2011) Scalable SQL and NoSQL data stores. SIGMOD Rec 39(4):12–27
Chorafas DN (1998) Functions of transaction processing monitors. In: Chorafas DN (ed) Transaction management: managing complex transactions and sharing distributed databases. Palgrave Macmillan, London, pp 111–131
Clark M, Fletcher P, Hanson JJ, Irani R, Waterhouse M, Thelin J (2002) Web services business strategies and architectures. Apress, Berkeley, CA
Cugola G, Jacobsen H-A (2002) Using publish/subscribe middleware for mobile systems. SIGMOBILE Mob Comput Commun Rev 6(4):25–33
Curry E (2005) Message-oriented middleware. In: Mahmoud Q (ed) Middleware for communications. Wiley, Chichester, pp 1–29
Czaja L (2018) Remote procedure call. In: Czaja L (ed) Introduction to distributed computer systems: principles and features. Lecture notes in networks and systems. Springer, Cham, pp 141–155
Emerald P, Yennun C, Yajnik S, Liang D, Shih JC, Wang C-Y, Wang Y-M (1998) DCOM and CORBA side by side, step by step, and layer by layer. http://course.ece.cmu.edu/~ece749/docs/DCOMvsCORBA.pdf. Accessed 17 Sept 2019
Eugster PT, Felber PA, Guerraoui R, Kermarrec A-M (2003) The many faces of publish/subscribe. ACM Comput Surv 35(2):114–131
Gokhale A (2009) Request broker. In: Liu L, Özsu MT (eds) Encyclopedia of database systems. Springer, Boston, MA, pp 2415–2418
Gokhale A, Schmidt DC (1996) The performance of the CORBA dynamic invocation interface and dynamic skeleton interface over high-speed ATM networks. Paper presented at the IEEE global telecommunications conference, London, 18–28 Nov 1996
Gokhale A, Schmidt DC (1998) Principles for optimizing CORBA internet inter-ORB protocol performance. Paper presented at the 31st Hawaii international conference on system sciences, Kohala Coast, HI, 9 Jan 1998
Goos G, Hartmanis J, Van Leeuwen J (2001) Cooperative environments for distributed systems engineering: the distributed systems environment report. Lecture notes in computer science. Springer, Berlin
Gray J (1981) The transaction concept: virtues and limitations. In: Gray J (ed) Readings in database systems. Morgan Kaufmann, San Francisco, CA, pp 140–150
Gray J (1993) Why TP-Lite will dominate the TP market. Paper presented at the 5th international workshop on high performance transaction systems, Asilomar, CA, Sept 1993
Gray J, Reuter A (1992) Transaction processing: concepts and techniques. The Morgan Kaufmann series in data management systems, 1st edn. Morgan Kaufmann, San Francisco, CA
Haerder T, Reuter A (1983) Principles of transaction-oriented database recovery. ACM Comput Surv 15(4):287–317
Hapner M (2002) JSR-000914 Java message service API. Oracle corporation. https://jcp.org/aboutJava/communityprocess/final/jsr914/index.html. Accessed 1 Apr 2019
Huang AS, Olson E, Moore DC (2010) LCM: lightweight communications and marshalling. Paper presented at the IEEE/RSJ international conference on intelligent robots and systems, Taipei, 18–22 Oct 2010
IBM (2019) IBM WebSphere MQ version 7.5 documentation. https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.helphome.v75.doc/WelcomePagev7r5.htm. Accessed 1 Apr 2019
Khosrowpour M (2002) Issues and trends of information technology management in contemporary organizations. IGI Publishing, Seattle, WA
Limprecht R (1997) Microsoft transaction server. Paper presented at the IEEE COMPCON, San Jose, CA, 23–26 Feb 1997
Maffeis S, Schmidt DC (1997) Constructing reliable distributed communication systems with CORBA. IEEE Commun Mag 35(2):56–60
Mahmoud Q (2005) Middleware for communications. Wiley, Chichester
Marin J (2003) BEA WebLogic server 7.X unleashed. Sams, Indianapolis, IN
Micro Focus International plc (2019a) Orbacus 4.3.2 documentation. https://www.microfocus.com/de-de/documentation/orbacus/orbacus432/. Accessed 1 Apr 2019
Micro Focus International plc (2019b) VisiBroker. https://www.microfocus.com/de-de/products/corba/visibroker/. Accessed 1 Apr 2019
Microsoft (2016) Message queuing (MSMQ). https://msdn.microsoft.com/en-us/library/ms711472.aspx. Accessed 1 Apr 2019
Microsoft (2017) What is windows communication foundation. https://docs.microsoft.com/de-de/dotnet/framework/wcf/whats-wcf. Accessed 1 Apr 2019
Microsoft (2018) The component object model. https://docs.microsoft.com/en-us/windows/desktop/com/the-component-object-model. Accessed 1 Apr 2019
Muppidi S, Krawetz N, Beedubail G, Marti W, Pooch U (1996) Distributed computing environment (DCE) porting tool. In: Schill A, Mittasch C, Spaniol O, Popien C (eds) Distributed platforms. Springer, Boston, MA, pp 115–129
Naur P, Randell B (1986) Report on NATO software engineering conference. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF. Accessed 17 Sept 2019
Nelson BJ (1981) Remote procedure call. Carnegie-Mellon University, Pittsburgh, PA, May 1981
OASIS (2019) Advanced message queuing protocol. https://www.amqp.org/about/what. Accessed 1 Apr 2019
Object Computing I (2019) The ACE ORB (TAO). https://objectcomputing.com/products/tao. Accessed 17 Sept 2019
Object Management Group Inc. (2012) About the common object request broker architecture specification version 3.3. https://www.omg.org/spec/CORBA/About-CORBA/. Accessed 1 Apr 2019
Object Management Group Inc. (2019) DDS standard for the IoT. https://www.omgwiki.org/dds/. Accessed 1 Apr 2019
Oracle (2019a) Oracle RDBMS. https://www.oracle.com/technetwork/database/windows/index-088762.html. Accessed 1 Apr 2019
Oracle (2019b) Remote method invocation home. https://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html. Accessed 1 Apr 2019
Pivotal Software (2019) RabbitMQ. https://www.rabbitmq.com/. Accessed 1 Apr 2019
Pyarali I, Schmidt DC (1998) An overview of the CORBA portable object adapter. StandardView 6(1):30–43
Ray C (2009) Distributed database systems. Pearson, Dorling Kindersley, Delhi
Ruh WA, Maginnis FX, Brown WJ (2002) Enterprise application integration: a Wiley tech brief. Wiley, New York, NY
Shen H (2010) Content-based publish/subscribe systems. In: Shen X, Yu H, Buford J, Akon M (eds) Handbook of peer-to-peer networking. Springer, Boston, MA, pp 1333–1366
Siegel J (2000) CORBA 3: fundamentals and programming, 2nd edn. Wiley, New York, NY
Umar A (2004) Third generation distributed computing environments. NGE Solutions, Fort Lauderdale, FL
Uramoto N, Maruyama H (1999) InfoBus repeater: a secure and distributed publish/subscribe middleware. Paper presented at the ICPP workshops on collaboration and mobile computing, group communications, internet, industrial applications on network computing, Aizu-Wakamatsu, 24 Sept 1999
Vinoski S (1993) Distributed object computing with CORBA. C++ Rep 5(6):32–38
Vinoski S (1997) CORBA: integrating diverse applications within distributed heterogeneous environments. IEEE Commun Mag 35(2):46–55
Wang J, Bigham J, Wu J (2011) Enhance resilience and QoS awareness in message oriented middleware for mission critical applications. Paper presented at the 8th international conference on information technology, Las Vegas, NV, 11–13 Apr 2011
White JE (1976) RFC 707 – a high-level framework for network-based resource sharing. https://tools.ietf.org/html/rfc707. Accessed 17 Sept 2019
Wirsing M, Nivat M (1996) Algebraic methodology and software technology. In: 5th international conference, AMAST ’96 Munich, 1–5 July, 1996 proceedings. Lecture notes in computer science. Springer, Berlin
Further Reading
Alonso G, Casati F, Kuno H, Machiraju V (2004) Web services. In: Alonso G, Casati F, Kuno H, Machiraju V (eds) Web services: concepts, architectures and applications. Data-centric systems and applications, 1st edn. Springer, Berlin
Bernstein PA (1996) Middleware: a model for distributed system services. Commun ACM 39(2):86–98
Curry E (2005) Message-oriented middleware. In: Mahmoud Q (ed) Middleware for communications. Wiley, Chichester, pp 1–29
Siegel J (2000) CORBA 3: fundamentals and programming, 2nd edn. Wiley, New York, NY
Umar A (2004) Third generation distributed computing environments. NGE Solutions, Fort Lauderdale, FL
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Sunyaev, A. (2020). Middleware. In: Internet Computing. Springer, Cham. https://doi.org/10.1007/978-3-030-34957-8_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-34957-8_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-34956-1
Online ISBN: 978-3-030-34957-8
eBook Packages: Computer ScienceComputer Science (R0)