Demystifying Embedded Systems Middleware
eBook - ePub

Demystifying Embedded Systems Middleware

Understanding File Systems, Databases, Virtual Machines, Networking and More!

  1. 408 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Demystifying Embedded Systems Middleware

Understanding File Systems, Databases, Virtual Machines, Networking and More!

Book details
Book preview
Table of contents
Citations

About This Book

This practical technical guide to embedded middleware implementation offers a coherent framework that guides readers through all the key concepts necessary to gain an understanding of this broad topic. Big picture theoretical discussion is integrated with down-to-earth advice on successful real-world use via step-by-step examples of each type of middleware implementation. Technically detailed case studies bring it all together, by providing insight into typical engineering situations readers are likely to encounter. Expert author Tammy Noergaard keeps explanations as simple and readable as possible, eschewing jargon and carefully defining acronyms.

The start of each chapter includes a "setting the stage" section, so readers can take a step back and understand the context and applications of the information being provided. Core middleware, such as networking protocols, file systems, virtual machines, and databases; more complex middleware that builds upon generic pieces, such as MOM, ORB, and RPC; and integrated middleware software packages, such as embedded JVMs, .NET, and CORBA packages are all demystified.

  • Embedded middleware theory and practice that will get your knowledge and skills up to speed
  • Covers standards, networking, file systems, virtual machines, and more
  • Get hands-on programming experience by starting with the downloadable open source code examples from book website

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Demystifying Embedded Systems Middleware by Tammy Noergaard in PDF and/or ePUB format, as well as other popular books in Tecnología e ingeniería & Ingeniería eléctrica y telecomunicaciones. We have over one million books available in our catalogue for you to explore.

Information

Chapter 1

Demystifying Middleware in Embedded Systems

Publisher Summary

This chapter provides an introduction of middleware in reference to the embedded systems model. It outlines why the understanding middleware is important and identifies the common types of middleware in the embedded space. With the increase in the types and profitability of complex, distributed embedded systems, an approach common in the industry is designing and customizing these types of embedded systems in some manner that is independent of the underlying low-level system software and hardware components. To successfully achieve desired results within cost, schedule, and complexity goals, many engineering teams base their approach on architecting various higher-level middleware software components into their embedded systems designs. Middleware is simply software, like any other, that in combination with the embedded hardware and other types of embedded software is a means to an end to achieving some combination of the desirable goals. Middleware is increasingly becoming a required component in embedded systems designs due to the increase in the types of complex, distributed embedded systems, the number of applications found on embedded systems, and the desire for customizable embedded software applications for embedded devices.

Chapter Points

Middleware is introduced in reference to the Embedded Systems Model
Outline why understanding middleware is important
Identifying common types of middleware in the embedded space

1.1 What is the Middleware of an Embedded System?

With the increase in the types and profitability of complex, distributed embedded systems, an approach common in the industry is designing and customizing these types of embedded systems in some manner that is independent of the underlying low-level system software and hardware components. To successfully achieve desired results within cost, schedule, and complexity goals many engineering teams base their approach on architecting various higher-level middleware software components into their embedded systems designs.
Currently within the embedded systems industry, there is no formal consensus on how embedded systems middleware should be defined. Thus, until such time as there is a consensus, this book takes the pragmatic approach of defining what middleware is and how different types of middleware can be categorized. Simply put, middleware is an abstraction layer that acts as an intermediary. Middleware manages interactions between application software and the underlying system software layers, such as the operating system and device driver layers. Middleware also can manage interactions between multiple applications residing within the embedded device, as well as applications residing across networked devices.
Middleware is simply software, like any other, that in combination with the embedded hardware and other types of embedded software is a means to an end to achieving some combination of the desirable goals shown in Table 1.1.
Table 1.1
Examples of Desirable Requirements for Middleware to Meet
Requirement Description
Adaptive Middleware that enables overlying middleware and/or embedded applications to adapt to changing availability of system resources
Flexibility and Scalability Middleware that allows overlying middleware and/or embedded applications to be configurable and customizable in terms of functionality that can be scaled in or out depending on application requirements, over all device requirements, and underlying system software and hardware limitations
Security Middleware that insures the overlying middleware and/or embedded applications (and the users using them) have authorized access to resources
Portability The ‘write-once’, ‘run-anywhere’ mantra. Middleware that allows overlying middleware and/or embedded applications to run on different types of embedded devices with different underlying system software and hardware layers. To avoid requiring time-consuming and expensive rewrites of the application code, middleware can mask the differences in underlying layers within different types of embedded systems, programming languages, and even implementations of the same standard produced by different design teams
Connectivity and Inter-Communication Middleware that provides overlying middleware and/or embedded applications the ability to transparently communicate with other applications on a remote device through some user-friendly, standardized interface. Essentially, communication interfaces abstracted to level of local procedure call or method invocation
As shown in Figure 1.1a, middleware resides in the system software layer of an embedded system and is any software that is not a device driver, an operating system kernel, or an application. Middleware components can exist within various permutations of a real-world software stack: such as directly over device drivers, residing above an operating system, tightly coupled with an operating system package from an off-the-shelf vendor, residing above other middleware components, or some combination of the above, for example.
image

Figure 1.1a Middleware and the Embedded Systems Model1
Keep in mind that what determines if a piece of software is ‘middleware’ is by where it resides within the embedded system’s architecture, and not only because of its inherent purpose within the system alone. For example, as shown in Figure 1.1b, embedded Java virtual machines (JVMs) are currently implemented in an embedded system in one of three ways: in the hardware, in the system software layer, or in the application layer. When a JVM is implemented within the system software layer and resides on an operating system kernel is an example when a JVM is classified as middleware.
image

Figure 1.1b Embedded JVMs in the Architecture1
Figure 1.1c shows a high-level block diagram of different types of middleware utilized in embedded devices today. Within the scope of this text, at the most general level, middleware is divided into two categories: core middleware and middleware th...

Table of contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. About the Author
  6. Chapter 1. Demystifying Middleware in Embedded Systems
  7. Chapter 2. The Foundation
  8. Chapter 3. Middleware and Standards in Embedded Systems
  9. Chapter 4. The Fundamentals in Understanding Networking Middleware
  10. Chapter 5. File Systems
  11. Chapter 6. Virtual Machines in Middleware
  12. Chapter 7. An Introduction to the Fundamentals of Database Systems
  13. Chapter 8. Putting It All Together: Complex Messaging, Communication, and Security
  14. Chapter 9. The Holistic View to Demystifying Middleware
  15. Appendix A. Abbreviations and Acronyms
  16. Appendix B. Embedded Systems Glossary
  17. Index