Mobile computing devices such as PDAs, laptops, cameras and mobile phones impose new requirements for middleware platforms. These
devices face temporary loss of network connectivity when they roam; they need to discover other mobile devices in an ad-hoc manner; they
are likely to have scarce resources, such as battery lifetime, processing power and memory; they are required to react to frequent
and unannounced changes in the environment, such as high variability of network bandwidth, new physical locations, and so on.
The recent popularity of these devices, however, opens the door for new distributed applications and service provision: in particular,
ad-hoc groups and intermitted connectivity become more and more used. For building these novel applications, engineers should be able
to rely on a suitable middleware.
This tutorial will discuss the requirement of mobile computing, and the emerging call for context and environment awareness for
applications. The tutorial will briefly discuss standard middleware principles to then provide a conceptual framework for the art mobile
computing middleware. The tutorial will use this framework to describe some earlier examples of middleware for mobile computing, which targeted
a specific domain, introduce tuple-based systems, and context-aware middleware.
The tutorial will also provide common characteristics of mobile computing middleware and outline the open issues and the future directions of the
research in this field.
Wolfgang Emmerich is a Senior Lecturer in the Dept. of Computer Science at University College London. Wolfgang is a member of the ACM and a Member of
the IEEE Computer Society. Wolfgang is a Chartered Engineer and a Member of the
IEE, where he serves as an executive member of the e-infrastructure professional network.
Wolfgang has authored several relevant publications on use of middleware, software engineering, and recently in mobile computing
middleware and active networking. Wolfgang is also an author of a Wiley text on ``Engineering Distributed Objects''. Wolfgang started
the Workshop series on Software Engineering and Middleware, whose third iteration will be held at ICSE 2002. Wolfgang manages TCS 2645
with Unipower Ltd on the use of middleware for e-commerce on mobile phones, which develops the platform for the next-generation of
Unipower's Shopping Magic that is used by Tesco-direct for e-shopping. Wolfgang delivered a number of tutorials on middleware technologies,
both in academic and industrial settings. Wolfgang has worked for the Central-European OMG Office as a trainer and consultant. He is also a
co-founder and Partner of the Zuhlke Technology Group (www.zuhlke.com) for whom he continues to work as a senior consultant on software
engineering, middleware and enterprise application integration.
Cecilia Mascolo is a Lecturer in the Department of Computer Science, University College London. She has published extensively in the areas
of code mobility, software engineering, and recently mobile computing, ad-hoc and active networks. Cecilia is also interested in the use of
mark-up languages for mobile computing applications. Her PhD thesis focussed on formalization, analysis and prototyping of mobile code
systems. During her PhD she spent one year as a visiting academic at Washington University in St. Louis (MO, USA) working on fine-grained
mobile code systems research. Cecilia is a member of the ACM and of the IEEE Computer Society.
Licia Capra is a PhD student in the Department of Computer Science at University College London. Her research focuses on
the design and prototyping of reflective middleware for mobile computing. Licia is also working as a part-time software engineer for the
Zuhlke Technology Group (www.zuhlke.com).
Component technologies for the middle-tier such as Microsoft .NET, COM+, CORBA Components or Enterprise JavaBeans have become common place. They offer almost full transparency to shield the developer from the complexities of the underlying platform. In practice, however, this kind of transparency soon turns into a liability when developers try to build distributed and component-based applications with specific quality of service. To efficiently leverage middleware platforms, it is not sufficient the understand the programming interfaces and tools provided. Instead, it is essential to know the architectural concepts used within these platforms. Here patterns come to our help. With patterns, we can nn one hand build sophisticated component-based software. On the other hand, patterns also help to understand and explain the internal design of middleware architectures. Only with this knowledge developers can seamlessly integrate their applications with the underlying middleware platform. It is the goal of the tutorial to present patterns describing component-based middleware platforms. Additional patterns will be introduced to help developers build efficient applications on top of these middleware infrastructures. Thus, attendees will not only learn the fundamental design principles of component middleware, but also sophisticated and proven design patterns for developing networked and concurrent objects.
Michael Stal is Senior Principal engineer at the Corporate Technology of Siemens AG in Munich, Germany. In his previous work he gained extensive
experience developing software for compilers and computer graphics. He worked on runtime type information for C++ and served on the C++
standardization group X3J16. Since 1992 Michael's work has focused on the development of concurrent and distributed object-oriented systems
using Sockets, CORBA, COM, and Java. Michael is Siemens' primary contact on CORBA at the OMG and is head of the Distributed Object Computing Group
at Siemens's Corporate Technology department. He co-authored the two POSA volumes A System of Patterns and Patterns for Concurrent and
Networked Objects.
Michael's main research interests focus on methods for developing distributed systems efficiently and on patterns for describing the
architecture of middleware platforms. In this context he has published articles in many magazines and given talks at many conferences.
In addition, he is Editor-in-Chief of Java Spektrum, the major German magazine on the Java platform, as well as a columnist and member of
the advisory board for Objektspektrum, the major German magazine on object technology.
In his spare time Michael attends soccer matches, supports his favorite team Bayern
München, visits Munich beer gardens, tries
to prevent his cats from destroying his apartment, watches movies, and reads books on physics, philosophy and humor. He is fan of
Douglas Adams, Scott Adams, and Terry Pratchett.
This tutorial on CORBA security gives an introduction to the current state of CORBA security. It starts with an short introduction to
distributed computing and middleware. We will put particular focus on its key features, architectural design goals, and the resulting
layers of abstraction. We then illustrate the usage of middleware, using the Common Object Request Broker Architecture
(CORBA) as an example.
The next part of this tutorial illustrates the main problems that surface when security features are added to middleware systems.
We will show why distributed systems are more vulnerable to security threats than host-centric systems, and which threats commonly occur
in such systems. We will discuss the main design objectives of a middleware security system, and show how these fit into the abstractions
described above.
In the main part of the tutorial we will discuss the CORBA Security Services (CORBASec) specification and architecture,
as well as its history and the different levels of commercial conformance. We will explain the main functional components of
CORBASec, as well as the related and upcoming specifications, e.g. on firewall traversal and public key infrastructures.
We also introduce our OpenSource CORBA Security implementation MICOSec (www.micosec.org), which is the basis of a
reality check that tries to answer the question whether CORBA Security works in practice, and how well it can integrate into the middleware
architecture.
In addition, we will discuss the implications on middleware security if devices are mobile. We will give an overview of
the main issues related to security, and how they can be solved. As part of this analysis, we try to separate problems related to
current weaknesses in the device technology from any generic conceptual problems. We will illustrate how the problems can be
solved, using our OpenSource MICOSec CORBA Security Services implementation on the Compaq iPAQ
PocketPC.
In the final part of the tutorial, we will discuss the implications of the future CORBA developments for the security services, e.g. the
CORBA Component Model. In addition, we will look at how CORBASec can be integrated with other security infrastructure to allow enterprise-wide
security policy management.
Rudolf Schreiner received his Dipl.-Phys. (physics and astronomy) from Ludwig-Maximilians-Universität in Munich (Germany) in 1993.
After graduation he worked as a freelance programmer and consultant on various computer security projects.
In 2000 he became one of the founders and Chief Technology Officer of ObjectSecurity Ltd., high-tech consultancy specialised in
distributed systems security and enterprise-wide security policy. Together with Ulrich Lang, he has just finished a book titled
Developing Secure Applications With CORBA, which will be available from early 2002. He is currently working on an OpenSource implementation
of the CORBA Security Services specification for a large telecommunications carrier.
In addition, he provides middleware security related consulting services for a number of companies, both for end-users of middleware
and for vendors of middleware products. He has given a number of lectures and seminars on middleware security, both for middleware
security specialists and for a more general audience of IT professionals.
After studying computer science with management at the Ludwig-Maximilians-Universität in Munich (Germany) and
at Royal Holloway College (University of London), Ulrich Lang received his Master's Degree
(M.Sc.) in
Information Security from the University of London in 1997. After finishing his
M.Sc., he worked as an independent
security consultant on various middleware based banking projects in London's financial district. In April 1998,
he joined the Security Group at the Computer Laboratory of the University of Cambridge, where he now is an active
researcher in middleware security architecture and design. In addition to his academic career, he is the research
director of ObjectSecurity Ltd. a high-tech consultancy specialised in distributed systems security and
enterprise-wide security policy. He is currently working on an OpenSource implementation of the CORBA Security
Services specification for a large telecommunications carrier. Together with Rudolf Schreiner, he has just finished a book titled
Developing Secure Applications With CORBA, which will be available from early 2002.
Developing software for distributed systems that effectively utilizes concurrency over high-speed, low-speed, and mobile networks is a
complex task. This tutorial describes how to apply object-oriented (OO) patterns and frameworks to alleviate the complexity of developing
concurrrent and distributed communication software. These patterns and framework components have been used successfully by the speaker on
production communication software projects at hundreds of commercial companies for telecommunication systems, network management for
personal communication systems, electronic medical imaging systems, real-time avionics, distributed interactive simulations, and automated
stock trading.
The tutorial illustrates by example how to significantly simplify and enhance the development of communication software that effectively
utilizes concurrency and distribution via the use of:
Object-oriented design techniques -- such as patterns, layered modularity, and data/control abstraction
Object-oriented language features -- such as abstract classes, inheritance, dynamic binding, and parameterized types
Middleware -- such as object-oriented frameworks for infrastructure middleware (such as ACE) and distribution middleware (such as CORBA ORBs)
Advanced operating system mechanisms -- such as event demultiplexing, multi-threading, multi-processing, and explicit dynamic linking
The tutorial examines patterns and framework solutions abstracted from production systems in domains ranging from telecommunications, avionics, medical systems, Web servers, and real-time ORBs to illustrate the key technical design and implementation issues. Moreover, the material presented in this tutorial appears in the book "Pattern-Oriented Software Architecture: Patterns for Concurrent and Distributed Objects", Wiley & Sons, 2000. This book is the second volume in the highly acclaimed Pattern-Oriented Software Architecture (POSA) series and is co-authored by Frank Buschmann, Hans Rohnert, and Michael Stal.
Dr. Schmidt is an Associate Professor in the Electrical and Computer Engineering department at the University of California, Irvine. He is
currently also serving as a program manager the DARPA Information Technology Office (ITO), where he is leading the national research
effort on distributed object computing middleware. His research focuses on design patterns, implementation, and experimental analysis
of object-oriented techniques that facilitate the development of high-performance, real-time distributed object computing middleware on
parallel processing platforms running over high-speed networks and embedded system interconnects. Dr. Schmidt is an internationally
recognized and widely cited expert on distributed object computing patterns, middleware frameworks, and Real-time CORBA and has published
widely in top IEEE, ACM, IFIP, and USENIX technical journals, conferences, and books. His publications cover a range of
experimental systems topics including high-performance communication software systems, parallel processing for high-speed networking
protocols, real-time distributed object computing with CORBA, and object-oriented design patterns for concurrent and distributed
systems.
Dr. Schmidt has served as guest editor for feature topic issues on Distributed Object Computing for the IEEE Communications Magazine and
the USENIX Computing Systems Journal, and served as co-guest editor for the Communications of the ACM special issue on Design Patterns and
the special issue on Object-Oriented Frameworks. In addition, he has co-editored the first volume of the Pattern Languages of Program
Design series by Addison-Wesley and the Object-Oriented Application Frameworks: Applications & Experiences series for Wiley. Dr. Schmidt
has also served as the editor of the C++ Report magazine and the Patterns++ section of C++ Report, where he also co-authors a column on
distributed object computing with Steve Vinoski, Chief Architect of IONA Technologies' Orbix Object Request Broker. Dr. Schmidt is
currently writing a book for Addison-Wesley on the topic of object-oriented network programming for a series edited by Bjarne
Stroustrup of Bell Labs and John Wiley and Sons on the topic of design patterns for communication software for a series edited by Frank
Buschmann of Siemens CT.
Dr. Schmidt served as the general chair of the IFIP/ACM International Conference Middleware 2000, as well as the program chair for the 1996
USENIX Conference on Object-Oriented Technologies and Systems (COOTS) and the 1996 Pattern Languages of Programming conference. He has
presented over 150 keynote addresses, invited talks, and tutorials on reusable design patterns, concurrent object-oriented network
programming, and distributed object systems at many conferences including OOPSLA, the USENIX general technical conference, USENIX
COOTS, ECOOP, IEEE Local Computer Networks, ACM PODC, IEEE ICNP, IEEE GLOBECOM, Object Expo, Component Users Conference, and C++ World.
In addition to his academic research, Dr. Schmidt has over a decade of experience building object-oriented communication systems. He is the
chief architect and developer of the ADAPTIVE Communication Environment (ACE), which is a widely used, freely-available
object-oriented framework that contains a rich set of components that implement design patterns for high-performance and real-time
communication systems. Dr. Schmidt has successfully used ACE on large-scale projects at Ericsson,
Siemens, Motorola, Kodak, Lucent,
Lockheed Martin, Boeing, and SAIC. These projects involve telecommunications systems, medical imaging systems, real-time avionic
systems, and distributed interactive simulation systems. Dr. Schmidt and the members of his research group in the Center for Distributed
Object Computing are currently using ACE to develop a high performance, real-time CORBA ORB endsystem called TAO (The ACE ORB).
TAO is the first real-time ORB endsystem to support end-to-end Quality of Service guarantees over ATM networks.
Dr. Schmidt received B.S. and M.A. degrees in Sociology from the College of William and Mary in Williamsburg, Virginia, and an M.S. and
a Ph.D. in Computer Science from the University of California, Irvine (UCI) in 1984, 1986, 1990, and 1994, respectively. His Ph.D. advisor
was Tatsuya Suda. Dr. Schmidt is a member of the IEEE, ACM, and USENIX.