Middleware Buildings Essay

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

phone calls

[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,

2nd edition

[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,

31(3): 300–312.

[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

War: An application or Inability of Diplomacy? Essay