Middleware Architecture with Patterns and Frameworks
c 2003-2009, Sacha Krakowiak (version of Feb . 27, 2009 - 12: 58) Innovative Commons certificate (http://creativecommons. org/licenses/by-nc-nd/3. 0/) Part 1
An Introduction to Middleware
This section is an intro to middleware. It starts with a motivation for middleware and an analysis of its primary functions. That goes on which has a description with the main classes of middleware. Then follows a presentation of a straightforward example, Remote Procedure Call, which introduces the main ideas related to middleware and causes a discussion from the main design and style issues. The chapter proves with a famous note setting out the progression of middleware.
1 . one particular Motivation intended for Middleware
Making software a commodity by developing an industry of recylable components was set as a goal in the early days society engineering. Changing access to details and to processing resources into a utility, just like electric power or perhaps telecommunications, was also an earlier dream of the creators from the Internet. When significant improvement has been produced towards these goals, their particular achievement even now remains a long term challenge. On the way to meeting this kind of challenge, designers and programmers of given away software applications are confronted with even more concrete challenges in their daily practice. In a series of simple case research, we exemplify some normal situations. When this business presentation is oversimplified for brevity's sake, this tries to present the essence of the main problems and solutions.
Example 1: reusing legacy software. Companies and organizations are actually building enterprise-wide information devices by integrating previously independent applications, combined with new innovations. This the use process has to deal with heritage applications, i. e. applications that have been developed before the creation of current available standards, using proprietary tools, and using specific surroundings. A heritage application can only be used through its particular interface, and cannot be revised. In many cases, the price of rewriting a legacy application would be prohibitive, and the software needs to be integrated " as isвЂќ.
The principle with the current solutions is to take up a common, language-independent, standard pertaining to interconnecting different applications. This kind of standard identifies interfaces and 1-2 CHAPTER 1 . AN INTRO TO MIDDLEWARE
exchange protocols for communication between applications. These protocols are integrated by a software program layer that acts as a great exchange shuttle bus, also called a dealer, between the applications. The method intended for integrating a legacy app is to develop a wrapper, i. e. a bit of software that serves as a bridge involving the application's old fashioned interface and a new user interface that contours to the picked standard.
inter-applications " exchange busвЂќ
Figure 1 ) 1 . Integrating legacy applications
A " wrappedвЂќ heritage application may possibly now be integrated with other these kinds of applications and with recently developed components, using the common inter-applications protocols and the inter-applications broker. Examples of such agents are CORBA, message lines, publish-subscribe devices; they are created further in this book. Case in point 2: mediation systems. Increasingly more00 systems consist of a collection of various gadgets interconnected by a network, where each individual device performs an event that involves equally local interaction with the real world and remote interaction to devices from the system. For example computer sites, telecommunication devices, uninterruptible power supply units, decentralized manufacturing models.
Managing these kinds of systems involves a number of tasks such as monitoring performance, capturing usage habits, logging sensors, collecting payment...
References: [Almes ainsi que al. 1985] Almes, G. To., Black, A. P., Lazowska, E. G., and Noe, J. M. (1985). The Eden
system: A technical review
[Balter ain al. 1991] Balter, R., Bernadat, J., Decouchant, D., Indecision, A., Freyssinet, A., Krakowiak,
S., Meysembourg, M., Votre Dot, L., Nguyen Vehicle, H., Paire, E., Riveill, M., Roisin, C., Rousset de
Ananas, X., Scioville, R., and VandЛ†ome, G. (1991). Structure and setup of Guidebook, an
object-oriented distributed program
[BanЛ†atre and BanЛ†atre 1991] BanЛ†atre, T. -P. and BanЛ†atre, Meters., editors (1991). Les syst`emes distribu
Вґes: expВґerience ni projet Gothic
[Birrell and Nelson 1984] Birrell, A. D. and Nelson, B. J. (1984). Implementing distant procedure
[Birrell et al. 1995] Birrell, A. D., Nelson, G., Owicki, S., and Wobber, E. (1995). Network objects.
[Brinch Hansen 1978] Brinch Hansen, P. (1978). Distributed Techniques: a concurrent programming
[Cahill et ing. 1994] Cahill, Sixth is v., Balter, L., Harris, And., and Rousset de Levantarse, X., editors (1994). The
COMANDOS Distributed Application Program
[Dasgupta et ing. 1989] Dasgupta, S., Chen, L. C., Menon, S., Pearson, M. L., Ananthanarayanan,
Ur., Ramachandran, U., Ahamad, Meters., LeBlanc, L
Hutto, G. W., Khalidi, M. Y. A., and Wilkenloh, C. J. (1989). The design and implementation
from the Clouds sent out operating system
[Grimes 1997] Grimes, R. (1997). Professional DCOM Programming. Wrox Press. 592 pp.
[Jul ou al. 1988] Jul, E., Levy, H., Hutchinson, N., and Black, A. (1988). Fine-grained mobility in
the Emerald system
[Lea 1999] Lea, D. (1999). Concurrent Coding in Java. The Java Series. Addison-Wesley,
[Lea et al. 1993] Lea, Ur., Jacquemot, C., and Pillevesse, E. (1993). COOL: System Support intended for
Distributed Object-oriented Programming
[Lendenmann 1996] Lendenmann, R. (1996). Understanding OSF DCE 1 ) 1 for AIX and OS/2.
[Levin ou al. 1975] Levin, R., Cohen, E. T., Corwin, Watts. M., Pollack, F. T., and Wulf, W. A.
(1975). Policy/mechanism separation in hydra. In Proceedings from the Fifth ACM Symposium about
Operating Systems Rules, pages 132вЂ“140.
[Liskov 1988] Liskov, B. (1988). Allocated programming in Argus. Communications of the ACM,
[Maes 1987] Maes, P. (1987). Ideas and Tests in Computational Reflection. In Proceedings
in the Conference about Object-Oriented Coding Systems, Dialects, and Applications
[Middleware 1998] Middleware (1998). IFIP Worldwide Conference about Distributed Devices Platforms
and Open Sent out Processing
[Mitchell ain al. 1994] Mitchell, J. G., Gibbons, L., Hamilton, G., Kessler, L. B., Khalidi, Y. Y. A.,
Kougiouris, P., Madany, P., Nelson, M
[Monson-Haefel 2002] Monson-Haefel, R. (2002). Enterprise JavaBeans. O'Reilly & Associates,
Inc., 3rd release
[Mullender et 's. 1990] Mullender, T. J., vehicle Rossum, G., Tanenbaum, A. S., vehicle Renesse, R.,
and vehicle Staveren, L
[ODP 1995a] ODP (1995a). ITU-T & ISO/IEC, Suggestion X. 902 & Foreign Standard
10746-2: " ODP Reference Style: FoundationsвЂќ.
[ODP 1995b] ODP (1995b). ITU-T & ISO/IEC, Recommendation By. 903 & International Common
10746-3: " ODP Research Model: ArchitectureвЂќ.
[Parrington et approach. 1995] Parrington, G. D., Shrivastava, S. T., Wheater, T. M., and Little, M. C.
(1995). The design and implementation of Arjuna. Processing Systems, 8(2): 255вЂ“308.
[Platt 1999] Erstaunt, D. T. (1999). Understanding COM+. Microsoft Press. 256 pp.
[Schantz ou al. 1986] Schantz, R., Jones, R., and Bono, G. (1986). The architecture in the
Cronus distributed operating system
[Schneider 1993] Schneider, F. W. (1993). What Good are Models and What Versions are Good? In
Mullender, T., editor, Distributed Systems, phase 2, web pages 17вЂ“26
[Shapiro ou al. 1989] Shapiro, M., Gourhant, Y., Habert, S., Mosseri, L., Ruffin, M., and Valot, C.
(1989). HELP: An object-oriented operating system - assessment and perspectives. Calculating
Systems, 2(4): 287вЂ“337.
[Smith 1982] Cruz, B. C. (1982). Expression And Semantics In A Procedural Language. PhD
thesis, Ma Institute of Technology
[Waldo ou al. 1997] Waldo, J., Wyant, G., Wollrath, A., and Kendall, T. (1997). An email on Sent out
[Weihl 1993] Weihl, W. Elizabeth. (1993). Technical specs of Contingency and Given away Systems. In
Mullender, S., editor, Allocated Systems, chapter 3, webpages 27вЂ“53
[Weiser 1993] Weiser, M. (1993). Some laptop science issues in all-pervasive computing. Sales and marketing communications
of the ACM, 36(7): 74вЂ“84.
[White 1976] White, T. E. (1976). A high-level framework for network-based useful resource sharing. In
National Computer Conference, pages 561вЂ“570.
[Wollrath et al. 1996] Wollrath, A., Riggs, R., and Waldo, L. (1996). A Distributed Thing Model
pertaining to the Java System