Tutorials

Tutorial 1 Abstract

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.

Tutorial 1 Biographies 

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).

Tutorial 2 Abstract

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.

Tutorial 2 Biography

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.

Tutorial 3 Abstract

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.

Tutorial 3 Biographies 

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.

Tutorial 4 Abstract

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:

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.

Tutorial 4 Biography

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.