From f0f6880c74c1994f407decc97151dfa0194d9eb7 Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Wed, 26 Jan 2011 17:11:06 +0100 Subject: middleware: add to new buildsys Signed-off-by: Manuel Traut --- frameworks/middleware/handout_middleware.tex | 57 +++++++--------------------- 1 file changed, 14 insertions(+), 43 deletions(-) (limited to 'frameworks/middleware/handout_middleware.tex') diff --git a/frameworks/middleware/handout_middleware.tex b/frameworks/middleware/handout_middleware.tex index c11bc8d..44c75f7 100644 --- a/frameworks/middleware/handout_middleware.tex +++ b/frameworks/middleware/handout_middleware.tex @@ -1,32 +1,6 @@ -\documentclass{lxarticle} -%\usepackage{english} -\usepackage[utf8]{inputenc} -\usepackage{lxheaders} -\usepackage{lxextras} - -\lstset{ - language=C++, - numbers=left, - stepnumber=1, - numbersep=5pt, - numberstyle=\tiny, - breaklines=true, - breakautoindent=true, - postbreak=\space, - tabsize=2, - basicstyle=\ttfamily\footnotesize, - showspaces=false, - showstringspaces=false, - extendedchars=true, - %backgroundcolor=\color{lbcolor}, - keywordstyle=\bf , - commentstyle=\color{green}, - stringstyle=\color{red} -} - -\begin{document} +\input{confighandout} -\section*{Middleware} +\subsection{Middleware} Distributed systems need to communicate with each other. Middleware assists the developer by delivering a communication framework. The developer doesn't need @@ -54,7 +28,7 @@ Also a middleware can provide different degrees of abstraction: \item Localization of Services \end{itemize} -\subsection*{D-Bus / Desktop Bus} +\subsubsection{D-Bus / Desktop Bus} D-Bus is designed for @@ -73,13 +47,11 @@ and used by several Desktop Environments \item \dots \end{itemize} -also \cmd{HAL} host its hardware info at D-Bus. - D-Bus is designed for local IPC only. It is a message based Middleware supporting 1:n publish/subscribe mechanism and 1:1 message passing. D-Bus has integrated datatype marschalling. -\subsubsection*{Architecture} +\paragraph{Architecture} \begin{figure} \centering @@ -116,7 +88,7 @@ possible one of these libraries should be used: \item .NET \end{itemize} -\paragraph{Terminology} +\subparagraph{Terminology} \begin{description} \item[bus address] is the name of ther underlying unix socket, e.g. \cmd{/tmp/dbus\_lx.socket} @@ -160,9 +132,9 @@ NM Applet and sends it to the D-Bus system bus. The NM daemon listens for the messages from the NM user daemon and configures the networking stack via system calls. -\subsubsection*{Tools} +\paragraph{Tools} -\paragraph{qdbusviewer} +\subparagraph{qdbusviewer} is a tool to browse through the hosted objects and call any method. (Figure \ref{img:qdbusviewer}) @@ -173,7 +145,7 @@ is a tool to browse through the hosted objects and call any method. (Figure \label{img:qdbusviewer} \end{figure} -\subsubsection*{Conclusion} +\paragraph{Conclusion} D-Bus is good for accessing System Infos and for IPC of Desktop Applications. Its small API has bindings for all common languages and frameworks and is easy @@ -185,7 +157,7 @@ to guarantee any real-time behaviour. There is even no message ordering. There is no guarantee which method returns first, if two methods are invoked around the same time. -\subsection*{CORBA} +\subsubsection{CORBA} CORBA is a middleware, which allows RPC\footnote{Remote Procedure Call}-based IPC\footnote{Inter Process Communication} between @@ -235,7 +207,7 @@ systems. The framework can be trimmed for embedded systems: Each application described in this paper consumes less than 1 MByte of RAM. Also the consumed CPU time is suprisingly low. -\subsubsection{Conclusion} +\paragraph{Conclusion} CORBA offers a wide variety of middleware communication methods. There is no limitation for a communication between different operating systems, even the @@ -243,7 +215,7 @@ network protocols can be exchanged. CORBA provides a Real-time extension. On the other hand, the framework is complex and difficult to learn. -\subsection*{Exercises} +\subsubsection{Exercises} An application should be created, to send a message to the 'server' with a variable payload, that the time needed for the call / return of the call can be @@ -252,7 +224,7 @@ measured in the client. The above described application will be implemented with ACE/TAO RTCORBA and the D-Bus glib bindings: -\subsubsection*{ACE/TAO RTCORBA} +\paragraph{ACE/TAO RTCORBA} First an IDL for the Ping interface will be created (\cmd{ping.idl}: @@ -683,10 +655,9 @@ To run the applications start them with: The order, which application is started first doesn't matter. Take care that the \cmd{dbus-daemon} is running. -\begin{thebibliography}{9}%use this if you have <=9 bib refs -%\begin{thebibliography}{99}%use this if you have >9 bib refs +\begin{thebibliography}{9} \bibitem{paper1},{\it Real-time CORBA Specification},2005, {\sc OMG} \bibitem{paper2},{\it Overview of ACE},2007\\{\it http://www.cs.wustl.edu/schmidt/ACE-overview.html} \end{thebibliography} -\end{document} +\input{tailhandout} -- cgit v1.2.3