difodam - Eurocontrol
Transcription
difodam - Eurocontrol
EUROPEAN ORGANISATION FOR THE SAFETY OF AIR NAVIGATION EUROCONTROL EUROCONTROL EXPERIMENTAL CENTRE DIFODAM ( Distributed and Fault Tolerant Flight Data Management ) EEC Report No. 326 EEC Task R16 EATCHIP Task ODP-5-E1 Issued: February 1998 The information contained in this document is the property of the EUROCONTROL Agency and no part should be reproduced in any form without the Agency’s permission. The views expressed herein do not necessarily reflect the official views or policy of the Agency. REPORT DOCUMENTATION PAGE Reference EEC Report No. 326 Originator EEC - F.D.R. (Flight Data Research) Security Classification unclassified Originator (Corporate author) Name/Location : EUROCONTROL Experimental Centre BP 15 91222 Brétigny-sur-Orge CEDEX FRANCE. Telephone: +33 (0) 1 69 88 75 00 Sponsor Sponsor (Contract Authority) Name/Location EUROCONTROL Agency 96, rue de la Fusée B-1130 Brussels BELGIUM Telephone: +32 2 729 90 11 EATCHIP Development Directorate DED.2 Title : DIFODAM (Distributed and Fault Tolerant Flight Data Management) Authors Date Pages Figs Annexes References J.P. Florent F. Barabas A. Poddany 02/98 V + 22 3 - 4 EATCHIP Task specification EEC Task No. Sponsor Task No. Period ODP-5-E1 R16 R16 1996 - 1997 Distribution Statement : (a) Controlled by : Head FDR (b) Special Limitations (if any) : None (c) Copy to NTIS : YES/NO Descriptors (keywords) : Client/Server Architecture, Groupware Communication, Shared Data, Data Distribution, Dynamic Objects, Java Objects, Trajectory, Gate to Gate, Fault Tolerant Abstract : DIFODAM introduces the concept of Shared Flight Plans. Traditional implementations of shared data rely on a central database management system which guarantees data consistency. We propose an alternative solution based on Group Communication which provides a simple, common service for sharing Flight Plan Data in a synchronous multi-server context. We describe the design of the architecture with emphasis on flexibility. This document has been collated by mechanical means. Should there be missing pages, please report to: Publications Office EUROCONTROL EXPERIMENTAL CENTRE B.P. 15 91222 Brétigny-sur-Orge CEDEX France DIFODAM EUROCONTROL EXPERIMENTAL CENTRE DIFODAM SUMMARY DIFODAM introduces the concept of a Shared Flight Plan to support inter-operability and seamless integration 1 . It is based on Group Communication which provides a simple, common service in a multi-users context. A notification server maintains a consistent state for several communication channels, each channel being a Shared Flight Plan (or other shared data). Controllers (and pilots) can tune into and be in conference on flight plans. They will be able cooperate efficiently since they have access to the same set of data. DIFODAM uses dynamic object technology 2 . Each Shared Flight Plan is a dynamic object which can evolve (using inheritance) without disturbing the service. Clients which have not upgraded their system can still use the old services, clients with an upgraded system can use also the new services. Clients which want to upgrade are able to download the new software from the notification server. This will facilitate a progressive introduction of new systems and services across boundaries. This architecture is able to manage different types of data simultaneously. It may be used for applications like CDM (Collaborative Decision Making), ESCAPE (the new real time ATC simulator of the EEC). The architecture is also applicable to ASD (Air Situation Display) and Interoperable FDPS. 1 “New ATM concepts will require greater interoperability between systems of aircraft operators and ATM service providers... The objective is to create system specifications which allow the design and implementation of an ATM system to evolve over a long period of time involving diverse manufactures and without requiring systems to be replaced before the end of their normal economic lifetimes. The specifications must enable inter-operability between ground-ground element and allow seamless integration, development and upgrading with new technology”. (Yellow Book on ATM R&D Strategy, Feb. 1997).. 2 Upgrading existing software systems usually requires switching off the system in order to make the necessary adjustments. But for a growing number of today’s complex, mission-critical systems, ”switching off” is simply not an option. Software updates or changes must occur while the system is fully operational; the software must be flexible enough to accept new alterations without compromising current functions. Enter dynamic object technology .. an enabling technology for user-evolved software. With dynamic object technology, new software functions, new capabilities, and new classes can be added on the fly. Moreover, the work being done is typically invisible to the user. In a world where software creations are changing at such a rapid pace, dynamic objects have surely come of age.” (Diane Crawford, Executive Editor of Communications of the ACM , (Association for Computing Machinery, Inc.) Vol.40, No.5, May,1997.) EEC Task N° R16 - EEC Report N° 326 III DIFODAM EUROCONTROL EXPERIMENTAL CENTRE TABLE OF CONTENTS 1. INTRODUCTION ................................................................................................................... 1 1.1. Presentation ......................................................................................................................................................................1 1.2. Objectives..........................................................................................................................................................................1 1.3. Background : Air Traffic Management Context ..........................................................................................................1 2. DESIGN CONSTRAINTS ...................................................................................................... 2 3. GROUP COMMUNICATION.................................................................................................. 3 3.1. Synchronous group communication...............................................................................................................................3 3.2. Group communication applied to Flight Plan Data .....................................................................................................5 4. SHARED DATA ..................................................................................................................... 5 5. EVENT NOTIFICATION AND FILTERING ............................................................................ 6 5.1. Creation events .................................................................................................................................................................6 5.2. Update events....................................................................................................................................................................6 6. PERSISTENCE ..................................................................................................................... 8 6.1. Persistence on the server .................................................................................................................................................8 6.2. Persistence on the client...................................................................................................................................................8 7. TRANSACTIONS .................................................................................................................. 8 8. VERSIONS AND ACCESS RIGHTS...................................................................................... 9 9. FAULT TOLERANCE ............................................................................................................ 9 9.1. Fault tolerant Server........................................................................................................................................................9 9.2. Client failure detection ....................................................................................................................................................9 10. QUERIES ............................................................................................................................ 9 11. TRAJECTORY PREDICTOR............................................................................................... 9 EEC Task N° R16 - EEC Report N° 326 IV DIFODAM EUROCONTROL EXPERIMENTAL CENTRE 12. CONCLUSIONS .................................................................................................................. 9 13. BENEFITS......................................................................................................................... 10 14. LIST OF REFERENCE DOCUMENTS .............................................................................. 11 VERSION FRANCAISE ....................................................................................................12 EEC Task N° R16 - EEC Report N° 326 V DIFODAM EUROCONTROL EXPERIMENTAL CENTRE 1. INTRODUCTION 1.1. Presentation The project is executed in the frame of the EATCHIP domain “Data Processing Systems” (DPS) to investigate the effect of flight data distribution and fault tolerance on flight data management. The scenario is based on the FDPS Interoperability Study, on System Supported Co-ordination (SYSCO) and the associated standard for On-Line data Interchange (OLDI). DIFODAM is an EEC project designated to meet the requirements of DPS.ET1.ST05.2000. This document details the architecture design of the prototype’s implementation. The purpose is to provide an interactive and collaborative service for the manipulation and distribution of Shared Flight Plans. The architecture relies on Java Shared Data API (JSDA ref. 2), a synchronous group communication API implemented in the Java language. The client applications of DIFODAM are Java Applets (accessible trough an Internet WEB browser, e.g. Netscape) or standalone Java Applications. 1.2. Objectives DIFODAM implements a service of persistent shared data with update notification to clients: • Shared data : Flight plans and related data are shared in a multi-user context. • Persistence and transactions : Flight plans are stored in stable repository and updated within transactions. • Event notification and filtering : clients are able to subscribe to a specific class of events in order to be notified automatically of changes occurred on a flight plan. • Dynamic access rights : the right to modify a flight plan is exclusive and can be passed to another client. The creator is the first owner of a flight plan. • Flight plan versions : a client can create versions of a flight plan and will be the owner of this version. Fault tolerance : DIFODAM uses replicated shared data in order to increase reliability. 1.3. Background : Air Traffic Management Context All over the globe new ATM systems are conceived or implemented. Those in the implementation stage will stay in service at least until 2010, those in the design state even longer. Common to all these systems is that they are designed for one site or ATC centre. This applies also to project AVENUE in the frame of the R&D programme of the European Union. But during their lifetime these systems will become co-operative and information sharing will be normal. They will also collaborate with non ATC systems. This is a necessary result of the collaborative planning and decision making paradigm that is a key element of the future EATMS R&D programme ("Yellow Book"). Collaboration and information sharing raise new questions. In addition to data consistency and persistence and system compatibility new types of problems have to be resolved, e.g. • who is responsible for shared data? EEC Task N° R16 - EEC Report N° 326 1 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE • what are the contingency procedures to follow in case of failure? • how to upgrade systems which share data? • how to assure continuous operation? Current design pattern assume local (or national) responsibilities and it is not conceivable that a neighbouring system in a foreign country will be used as back up. Current ATC systems are based on local data bases which are updated by message exchange ( e.g. SYSCO, OLDI ). For co-ordination amongst ATC centres so called ‘areas of common interest’ are defined where shared data may exist. Simple exercises show that the overlapping of these areas together with the co-ordination and update messages will lead to unmanageable data and messages (amount and responsibilities). If systems collaborate and share data the upgrade of systems and of data structures becomes a critical issue. For example, if an attribute should be added to a shared flight plan, systems of the current design have to be switched off and to be restarted with the new data structure. This is already a delicate procedure for one system with a local data base but it becomes a nightmare if the data shared by two or more systems have to be upgraded. A synchronised shut down and restart is not conceivable. Continuous operation becomes a necessity if information is shared. Systems and data structures of different generations must be able to coexist. There will always be at least one system which has not the latest software or data level, in addition new systems will be added to the information sharing, therefore the whole system will be in an eternal transition phase. It follows that upgrading of systems and data structures must be a normal procedure which does not hamper normal operations.Collaboration and Information Sharing have been recognised as a requirementI but are not yet treated in ATM system architectures. Fortunately data sharing is not limited to the ATM domain. Several commercial systems exist (data bases, groupware) which allow collaboration. Usually these COTS products are not for safety critical systems and also other requirements (response time, amount of data) are not the same. Since the ATM domain does not inspire the software community to propose adequate solutions we have to define ATM architectures which support collaboration and information sharing and to evaluate and test which of the COTS products are suitable for ATM and what additional features are necessary. It follows that further research is necessary. DIFODAM has been launched to explore an architecture which could help to overcome the problems raised by this new challenge. 2. Design Constraints In addition to the above requirements, the following constraints have been considered: • flexibility DIFODAM should be flexible enough to cope with 60 clients in the ECAC area. Previous experience has shown that ATC systems have a long life cycle and need to evolve in a step-wise fashion. DIFODAM should integrate smoothly with the existing FDPS. • I scalability National Airspace System Architecture, chapter 8 NAS Information Services for Collaboration and Information Sharing, FAA ASD-1, December 1997 EEC Task N° R16 - EEC Report N° 326 2 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE The growing of air traffic will increase the amount of data. In a near future, new clients like aircraft operators would be involved in the system. • performance Predictability of response time is a critical constraint if additional flight plan related data ( e.g. co-ordination data ) are requested. • interoperability Future ATC applications might have to communicate with applications on other systems, e.g. AOC systems, airport systems, airborne systems. • cost Maximum use of COTS products in order to reduce implementation cost, if requirements specific to the ATC domain can be separated from general requirements. The choice of a software architecture for DIFODAM is a trade-off between these conflicting goals. After a preliminary design phase we chose a solution based on Group Communication. 3. Group Communication 3.1. Synchronous group communication In synchronous groupware, two or more people collaborate at what they perceive to be “the same time”. Each person’s actions within the collaboration are mediated by some software system. We refer to the parts of the software system “in front of each person” as the clients. (We refer to the persons themselves as users). The clients typically need to co-ordinate some parts of their data with each other. They achieve this co-ordination via a notification service, which is implemented by one or more notification servers. The primary functionality provided is the ability for each client of a group to send data to the others. A client can send a message to a group (also called a communication channel), and be certain that all members of the group receive it (unless they crash or a network partition occurs). The notification server maintains a consistent state for several communication channels. A client can be connected to several notification servers. Every client can join a channel to receive data send to it, and by joining an appropriate combination of channels, and by consuming them, a client can choose to receive messages sent to these channels and ignore messages sent to others channels. Clients subscribe to and leave the desired channels at any time. Channels can be created at run time. Channels are not shared between servers. A communication server can be dedicated to share the state of one object (or an aggregate of related objects). In this case, all messages represent the entire state of the object. EEC Task N° R16 - EEC Report N° 326 3 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE DIFODAM EUROCONTROL Client Client Client FDR:DIFODAM Client // Communication Channel FPL Communication Channel FPL Communication Channel FPL Communication Channel FPL Communication Channel FPL Multi - Notification Servers Client ## The notification server can provide additional services such as authentication, access rights control, notification to a single client or notification to all clients of the server. Due to the simplicity and the power of synchronous groupware concepts, there is a wide range of applications including conferencing, group decision support systems, collaborative editors. EEC Task N° R16 - EEC Report N° 326 4 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE 3.2. Group communication applied to Flight Plan Data There is a natural way to map Group Communication concepts to DIFODAM’s shared flight plan. The clients, concerned by a particular flight plan, shall be connected to the same channel. By analogy, a controller and the pilots in the same sector use the same radio frequency. Thus, there is a one to one mapping between a shared flight plan and a communication channel. Additional related data concerning one flight plan (e.g. SSR code) can be present on the same communication channel if it is needed by all clients. The following table summarises the traceability between DIFODAM’s general requirements and the design choices. requirements implementation shared data communication channel - notification server event notification filtering allocator process - notification server persistence in prototype on the server side - but depending on requirements it may be also on the client side transaction atomicity guaranteed by the notification server versions rights 4. and and access access rights are managed by notification server fault tolerance backup server queries notification server trajectory predictor separate service Shared Data The concept of communication channel offers a good solution to share flight plan in a synchronous way. The type representation of a channel state is a variable length byte array un-interpreted by the server. The semantics and processing (encoding/decoding) of this raw data is left entirely to the clients. Therefore, DIFODAM must provide a harmonised interface on the client side. On the client side, an object oriented framework hides implementation details and facilitates the use of shared objects. The client will deal with Shared Flight Plan objects. All clients have the same object oriented framework with the same flight plan classes. A client application can extend this model with private data that will not be shared. Flight plans are proxy objects synchronised with the corresponding channel state. When the IFPU creates a Flight Plan, an allocator process assigns a server and a communication channel to this Flight Plan. The location of the Flight Plan remains unchanged during all its life cycle. EEC Task N° R16 - EEC Report N° 326 5 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE The IFPU assigns a unique identifier to each Flight Plan (IFPLID field in ADEXP format). From the client perspective, this identifier is sufficient to access the associated server and channel. The association (IFPLID, channel identifier) is maintained by the allocator process. A simple naming rule is used to map flight plans to channels. Each notification server has a unique name ( or network address). Each channel has a unique number relative to its server. A channel is uniquely identified with a pair ( server address, channel number). The allocation table is a one to one mapping between flight plan identifiers and channel identifiers). FPLID <-> ( server address , channel number ) 5. Event notification and filtering 5.1. Creation events Creation events are messages sent by the allocator process located at the IFPU. These messages contain the flight plan identifier. The allocator calls the geographical filter process which computes the list of clients whose Area of Interest intersects the flight plan’s route. After reception of a creation message, a client can choose to join the channel in order to access to the flight plan content and to be notified of update events. 5.2. Update events When a change initiated by a client occurs on the server, all the clients including the initiator are notified and their proxies are updated. The notification acts as a “software interrupt” that is handled using an event handler mechanism. In the framework, the shared object classes enable the client to redefine event handling methods. Events can be filtered on the client side by the event handling methods at notification time. A special case of flight plan update is re-routing: the client must call the geographical filter process in order to re-compute the new list of clients. Therefore, re-routing a flight triggers an update event to the clients already aware of this flight, and triggers a re-routing event to the newly concerned clients. The filter process is called with the flight plan identifier and the re-routed trajectory. The centralised allocation process simplifies the generation of an unique flight plan identifier and an unique address. In addition, it enables to perform load balancing at flight plan creation time between notification servers. The following diagram shows the events and data flows paths between clients, server and the initial flight plan processing unit. EEC Task N° R16 - EEC Report N° 326 6 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE System Overview Allocation Table Allocator IFPU DIFODAM API DIFODAM Servers Channels Client Creation Events Subscription Local client DIFODAM API FPL FPL Applications DIFODAM API Flight Plan Update Events FPL Filters (e.g. Area of interest) The system is divided into three main components: • The Allocator Process is in charge of retrieving the initial Flight Plan and to create it on the different servers. • The DIFODAM servers support the communication mechanism to share consistent Flight Plans in a multi-user context. A shared Flight Plan is mapped on one communication channel. The servers are also in charge of filtering the creation of new Flight Plans in order to notify the interested clients via subscription channels. • The Client Applications rely on the DIFODAM API which provides the connection to the service and an object-oriented model for manipulation of shared Flight Plans. EEC Task N° R16 - EEC Report N° 326 7 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE System Context This figure shows the layers of the two main components of the system. DIFODAM Server Client Applications DIFODAM API JSDA Java Virtual Machine Operating System The JSDA library is hidden from clients’ applications, it has been entirely encapsulated in order to reduce the impact of a change in JSDA on the client code. 6. Persistence Current notification servers do not support any form of persistence of the channel’s state, because many groupware applications don’t need persistence. The notification server does not add overhead to implement persistence. The design principle is that clients and servers should only pay for the facilities that they actually use. 6.1. Persistence on the server The notification server can be customised to store on a reliable repository the state of a channel before notifying the clients. During a server crash, the flight plans are not available but after a restart, they recover the previous consistent state from the persistent storage. The persistent storage is easy to implement because channels are just byte arrays. There is no need for a complex and costly database management system on the server. 6.2. Persistence on the client If the server is not persistent, clients can choose to store objects in a local persistent storage in order to continue processing in case of a temporary network or server failure. 7. Transactions Sometimes, modifications on two or more objects depend on each other. In such cases a transaction manager would be desirable. In our case, most transactions affect one flight plan. In our implementation, the flight plan belongs to one communication channel. Therefore, atomicity is guaranteed by the notification server. EEC Task N° R16 - EEC Report N° 326 8 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE 8. Versions and access rights The required version scheme is implemented by adding a version number attribute to the object. In the same way, dynamic access rights require an attribute referencing the owner of the flight plan. The value of this attribute is checked on the client side before an update attempt. 9. Fault tolerance 9.1. Fault tolerant Server Our proposed solution involves two types of notification servers. The primary server is connected to the clients. A backup server mirrors all the channels of the primary server. The mirroring program acts as a client program for the primary server. Thanks to the synchronous property of communication channels, the backup server will always have the same content as the primary server. The mirroring program is easy to implement because it does not have to interpret the channels content, it just has to replicate it. With respect to the channel naming rule, it is easy to find the flight plan on a backup server: IFPLID <-> ( server address, channel number ) same 9.2. IFPLID <-> ( backup server address, same channel number ) Client failure detection A client connected to a communication channel is notified of other clients entering or leaving the channel. This is a basic requirement of notification server. A client failure is detected by the notification server. 10. Queries Main client applications are FDPS which rarely perform queries on DIFODAM because they are already notified of flight plans crossing their area of interest. Nevertheless, other clients like aircraft operators are not interested in a particular geographical area. They need to query DIFODAM in order to retrieve flight plans matching arbitrary criteria. A query is carried out in two steps. The first step is to retrieve the flight plan identifiers. It implies to query all the persistent repositories of the notification servers. The second step is to join the corresponding channels and check the search criteria. This task is performed on the client side. 11. Trajectory predictor The trajectory predictor is a separate object which calculates a 4D trajectory according to aircraft performance, Meteo, ATC constraints. The resulting trajectory is copied to a shared flight plan by the client application. 12. Conclusions The prototype architecture puts the emphasis on having a synchronous view of flight plans at the expense of having traditional database querying functionality. DIFODAM has a scaleable architecture, it is easy to add notification servers, or to use the communication channel concept for other purposes. New applications can take advantage of the scalability of shared flight plans. EEC Task N° R16 - EEC Report N° 326 9 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE For most of the DIFODAM requirements, the group communication concepts offers many ways to implement them. The above design choices are kept hidden from client application and can be revised for performance, cost or evolutivity reasons. 13. Benefits Benefits can be summarised as follows: • Every client has access to the same data • Simple system architecture which is applicable to a wide range of systems (ATCFDPS, AOC, airport) • No management of complicated data structures, therefore a wide range of data can be covered (FPL, Meteo, CDM) • It is possible to introduce and upgrade systems progressively in the ECAC area, heterogeneous systems and data (based on inheritance) are supported • Continuous operation assured, no switching off for system and data upgrade EEC Task N° R16 - EEC Report N° 326 10 DIFODAM EUROCONTROL EXPERIMENTAL CENTRE 14. List of Reference Documents DIFODAM Software Requirement Document R16.DIF.SRD.01.00 Prototype Specification Document R16.DIF.PROTO.01.0 Prototype Architecture Document R16.DIF.PROTO.ADD.01.00 Prototype User Guide EEC Task N° R16 - EEC Report N° 326 11 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL VERSION FRANÇAISE DIFODAM Résumé DIFODAM introduit le concept d’un Plan de Vol partagé offrant des facilités d’interopérabilité entre différents systèmes et une grande flexibilité de mise à jour, de développement et d’intégration pour de nouveaux utilisateurs 1. Il se base sur une communication de groupe qui fournit un service élémentaire et commun dans un contexte multi-utilisateurs. Le serveur de notification maintient la consistance entre plusieurs canaux de communication, chaque canal étant un objet partagé (dans notre cas: un plan de vol). Les utilisateurs ( contrôleurs, pilotes..) sont en conférence pour finaliser un plan de vol. Ayant accès à un même jeu de données, ils peuvent ainsi coopérer efficacement. DIFODAM utilise la technique des objets dynamiques 2. Chaque plan de vol partagé est un objet dynamique qui peut évoluer sans interrompre le service rendu. Les clients qui ne veulent pas changer l’état de leur système, utilisent l’ancienne version, les autres peuvent utiliser la nouvelle mouture en chargeant les programmes à partir du serveur de notification. Ceci facilite l’ajout de nouveaux systèmes ou de nouveaux services. Cette architecture est capable de gérer différents types de données simultanément et peut être utilisée dans le cadre du CDM (Collaborative Decision Making), d’ESCAPE (le nouveau simulateur ATC du CEE). L’architecture est aussi possible dans des applications telles que l’ASD (Air Situation Display) ou partie prenante dans l’interopérabilité entre les FDPS (Flight Data Processing System). 1 “Les nouveaux concepts ATM exigent plus d’interopérabilité entre les systèmes des compagnies et les services ATM...L’objectif est de trouver des spécifications qui permettent une conception et une implémentation d’un système ATM, évoluant sur une longue période, incluant diverses industrialisations et assurant sa pérennité. Ces spécifications doivent permettre une interopérabilité entre des éléments de communication sol-sol, une intégration facile de nouveaux systèmes, des développements et des évolutions utilisant les nouvelles technologies”. (Yellow Book on ATM R&D Strategy,Fev. 1997). 2 “L’amélioration des systèmes informatiques existants nécessite de stopper le service en vue d’exécuter les modifications nécessaires. Mais aujourd’hui, pour un nombre croissant de systèmes complexes et de missions critiques, ”arrêter” ces systèmes n’est plus une option acceptable. Les ajustements et changements des programmes informatiques doivent s’exécuter avec des systèmes en état opérationnel. Les programmes doivent être assez flexibles pour accepter toute modification sans compromettre le service rendu. L’utilisation de la technique des objets dynamiques est le moyen qui permettra l’évolution des programmes des utilisateurs. Avec les objets dynamiques, de nouvelles fonctions, de nouvelles capacités et de nouvelles classes d’objet peuvent être ajoutées en temps réel. De plus, ces opérations sont transparentes pour les utilisateurs. Au vu des évolutions rapides des techniques informatiques d’aujourd’hui, les objets dynamiques y trouveront naturellement leur place.” (D.Crawford, executive Editor of Communications of the ACM (Association for Computing Machinery,Inc.) Vol.40,No.5,May,1997.) Tâche CEE N° R16 - CEE Rapport N° 326 12 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL 1. Introduction 1.1. Présentation Le projet est développé dans le cadre du programme EATCHIP et plus particulièrement dans le domaine du DPS (Data Processing Systems). Il étudie l’apport d’un système sécurisé de distribution de données de vol. Le scénario est basé sur l’étude d’interopérabilité entre les systèmes de distribution de plans de vol, supportant la coordination (SYSCO) et associés aux lignes d’échange de données (OLDI). DIFODAM est un projet du CEE, répondant aux exigences du DPS.ET1.ST05.2000. Ce rapport détaille la conception d’une architecture et l’implémentation d’un prototype. Le but est de procurer un service interactif et collaboratif qui permet de manipuler et de distribuer un plan de vol partagé. L’architecture se base sur une interface Java : “Java Shared Data API : JSDA ref.2”, une communication de groupe synchrone implémenté en langage JAVA. Les applications clientes de DIFODAM sont des applets java (accessibles par l’Internet WEB browser de Netscape) ou des applications java dédiées. 1.2. Objectifs DIFODAM implémente un service persistant de données partagées avec notification de mise à jour vers les clients. • Données partagées : les plans de vol et les données en liaison sont partagées dans un contexte multi-utilisateurs. • Persistance et transactions : les plans de vol sont mémorisés dans un répertoire stable et sont mis à jour pendant les transactions. • Evénement de notification et de filtrage : les clients souscrivent à une classe spécifique d’événements pour être automatiquement notifiés quand un changement apparaît dans un plan de vol. • Droit d’accès dynamique : le droit de modifier un plan de vol est exclusif et peut être passé à un autre client. Le créateur du plan de vol est le premier propriétaire du droit de modification. • Versions d’un plan de vol : un client peut créer une nouvelle version d’un plan de vol et est le propriétaire de cette version. • Tolérance aux pannes : DIFODAM utilise des données partagées répliquées en vue d’augmenter la fiabilité. Tâche CEE N° R16 - Rapport CEE N° 326 13 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL 1.3. Contexte Gestion du trafic Partout dans le monde, de nouveaux systèmes ATC sont conçus et mis en fonction. Ceux-ci resteront en service, au moins, jusqu’à l’an 2010, les systèmes aujourd’hui en conception, bien plus longtemps. Tous ont la particularité d’être destinés à un site ou un centre ATC. Ceci englobe aussi le projet AVENUE dans le cadre du programme R&D de l’Union Européenne. Mais, durant leur cycle de vie, ces systèmes devront, tout naturellement, coopérer et partager leurs informations. Ils devront aussi collaborer avec des systèmes non-ATC. Ceci est la conséquence nécessaire pour une collaboration dans la gestion et la prise de décision qui est un élément clé du programme R&D du futur EATMS. (“Yellow Book”). Collaboration et informations partagées lancent un nouveau défi. En plus de la consistance et de la persistance des données, de la compatibilité des systèmes, de nouveaux problèmes devront être résolus : • Qui est responsable des données qui sont partagées ? • Quelles sont les procédures à suivre en cas de panne ? • Comment améliorer les systèmes qui se partagent leurs données ? • Comment assurer la continuité du service ? Les conceptions courantes assument une responsabilité locale ( ou nationale ) et n’envisagent aucunement qu’un système avoisinant d’un autre pays puisse servir de back-up. Les systèmes ATC courants se basent sur des banques de données locales qui sont mises à jour par échange de messages ( SYSCO, OLDI ). Pour une coordination entre centres ATC, des zones, aussi appelées “zones d’intérêt commun”, sont définies la où des données à partager existent. La pratique montre que les recouvrements de ces zones laissent des données et des messages ingérables ( en quantité et en responsabilité ) entre la coordination et les messages de mises à jour. Si les systèmes collaborent et partagent leurs données, l’amélioration de ces systèmes et de la structure des données devient un point critique. Par exemple, si un attribut doit être ajouté à un plan de vol partagé, les systèmes de conception courante doivent être coupés et redémarrés avec la nouvelle structure des données. C’est déjà une procédure délicate pour un seul système à base de données locales mais cela deviendrait un cauchemar si les données, partagées entre deux ou plusieurs systèmes, devaient être modifiées. Une coupure et un redémarrage synchronisés sont inconcevables. La continuité du service devient une nécessité dans le contexte d’une information partagée. Systèmes et structures de données de générations différentes doivent coexister. Il y aura toujours au moins un système qui n’utilisera pas la dernière version des programmes ou des données. De plus, de nouveaux systèmes s’ajouteront dans le circuit de l’information partagée.C’est pourquoi le système global sera considéré comme en éternelle phase de transition. En conclusion, l’amélioration des systèmes et des structures de données sera perçue comme une procédure normale qui n’influe pas sur les opérations en cours. La Collaboration et l’Information Partagée sont reconnues comme une exigence1 , mais ne sont pas encore prises en compte dans les architecture des systèmes ATM. Heureusement, les données partagées ne se limitent pas qu’au domaine ATM. 1 National Airspace System Architecture, chapter 8 NAS Information Services for Collaboration and Information Sharing, FAA ASD-1, December 1997 Tâche CEE N° R16 - Rapport CEE N° 326 14 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL Plusieurs systèmes du commerce existent (base de donnée, conférence) qui permettent la collaboration. Normalement ces produits du commerce ne s’adressent pas à des systèmes où la sécurité est critique ou à d’autres exigences comme les temps de réponse ou la quantité des données à traiter. Comme le monde ATM ne pousse pas la communauté informatique à proposer des solutions adéquates, nous avons à définir des architectures ATM qui supportent la collaboration et l’information partagée, les évaluer, les tester avec des produits sur étagère qui correspondent à l’ATM et trouver des fonctionnalités supplémentaires si nécessaire. S’en suit que des recherches complémentaires seront nécessaires. DIFODAM a vu le jour pour trouver une architecture qui réponde aux problèmes posés par ce challenge. 2. Contraintes de Conception En plus des exigences précédentes, d’autres contraintes sont à considérer: • Flexibilité DIFODAM doit être assez flexible pour supporter les 60 clients dans la zone ECAC. Les expériences précédentes ont démontré que les systèmes ATC ont un cycle de vie assez long et qu’ils évoluent régulièrement. DIFODAM devrait s’intégrer harmonieusement avec les systèmes FDPS existants. • Evolutivité L’augmentation du trafic aérien multiplie la quantité de données. Dans un proche future, de nouveaux clients, comme les opérateurs des compagnies, voudront être impliqués dans les systèmes. • Performances La rapidité de réponse des systèmes est une contrainte critique si des données supplémentaires s’ajoutent au plan de vol. • Interopérabilité Les applications ATC à venir devront communiquer avec des applications d’autres systèmes tels que les AOC, le contrôle des aéroports, les avions. • Coûts L’utilisation au maximum de produits du commerce réduiront le coût d’implémentation, si les exigences spécifiques du domaine ATC peuvent être séparées des exigences générales. Le choix de l’architecture de DIFODAM est un trait d’union entre ces objectifs contradictoires. Après une première phase de conception, nous avons opté pour une solution basée sur une communication de groupe. 3. Communication de Groupe 3.1. Communication de groupe synchrone Dans un système de conférence, deux ou plusieurs personnes collaborent simultanément. Les interventions de ces utilisateurs sont gérées par un système informatique. Tâche CEE N° R16 - Rapport CEE N° 326 15 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL Nous ferons référence au “client” comme étant la partie informatique s’interfaçant avec chaque personne (les personnes étant les utilisateurs). Les clients ont besoin de coordonner une partie de leurs données avec les autres. Ils assurent cette coordination via un service de notification, qui est implémenté au moyen d’un ou plusieurs serveurs de notification. La première fonctionnalité fournie est la capacité, pour chaque client du groupe, d’envoyer des données vers les autres. Un client peut envoyer un message au groupe (aussi appelé canal de communication ) et être certain que tous les abonnés du groupe le recevront (sauf une panne ou sur une partition du réseau). Le serveur de notification maintient un état consistant pour les canaux de communication. Un client peut être connecté à plusieurs serveurs de notifications. Chaque client peut joindre un canal pour recevoir ses données. En joignant une combinaison appropriée de canaux, un client peut sélectionner les messages envoyés vers ces canaux et ignorer les autres. DIFODAM EUROCONTROL Client Client Client FDR:DIFODAM Client // FPL : Canal de Communication FPL : Canal de Communication FPL : Canal de Communication FPL : Canal de Communication FPL : Canal de Communication Multi - Serveurs de Notification Client ## Les clients souscrivent et quittent les canaux à tout moment. Les canaux sont créés en temps réel. Un canal n’appartient qu’à un seul serveur. Un canal de communication peut servir à partager l’état d’un seul objet (ou un agrégat d’objets). Dans ce cas, tout message représente l’intégralité de l’état de l’objet. Le serveur de communication peut rendre d’autres services comme l’authentification, le contrôle des droits d’accès, une notification par client ou pour tous les clients abonnés au canal. Au vu de la simplicité et des possibilités des concepts des groupes de communication, il y a une large panoplie d’applications possibles dont le système de conférence, les systèmes d’aide à la décision, les éditions partagées. Tâche CEE N° R16 - Rapport CEE N° 326 16 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL 3.2. Application du groupe de communication aux plans de vol C’est tout naturellement que le concept de groupe s’interfère avec les plans de vol partagés de DIFODAM. Les clients, intéressés par un plan de vol déterminé, se connectent sur le même canal. Par analogie, un contrôleur et les pilotes d’un même secteur utilisent une même fréquence radio. Il y a donc une liaison directe entre le plan de vol partagé et le canal de communication. Des données en relation avec le plan de vol ( SSR code, trajectoire..) peuvent être ajoutées au même canal de communication si elles répondent à un besoin des utilisateurs. La table suivante résume la tracabilité entre les exigences générales de DIFODAM et les choix de conception: Exigences 4. Implémentation Données partagées canal de communication - serveur de notification Evénements de notification et filtrage processus d’allocation Persistance pour le prototype fait du coté serveur - mais dépend des exigences et peut se faire coté client Transaction l’atomicité est notification Versions et droit d’accès droits d’accès gérés par le serveur de notification Tolérance aux pannes serveur dédié Requêtes serveur de notification Calculateur de trajectoire service extérieur - serveur de notification garantie par le serveur de Données partagées Le concept du canal de communication donne une bonne solution pour partager un plan de vol d’une façon synchrone. Le type de donnée représentant l’état d’un canal est un tableau d’octets de longueur variable et non-interprété par le serveur. La sémantique et le processus de codage/ décodage de cette somme de données sont exécutés au niveau client. C’est pourquoi, DIFODAM fournit un interface approprié du coté client. Du coté client, une bibliothèque orientée objet contient les détails d’implémentation et les facilités de manipulation des objets partagés. Le client traitera donc directement avec des objets plan de vol. Tous les clients disposent de la même bibliothèque avec les mêmes classes de plans de vol. Une application client peut étendre son modèle avec des données privées qui ne seront pas partagées. Les plans de vol sont des objets proxy synchronisés avec l’état du canal correspondant. Tâche CEE N° R16 - Rapport CEE N° 326 17 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL Lorsque l’IFPU crée un plan de vol, un processus d’allocation assigne une adresse serveur et une adresse canal de communication au plan de vol. La localisation du plan reste inchangée durant tout son cycle de vie. L’IFPU donne un identificateur unique à chaque plan de vol (champ: IFPLID en format ADEXP). Pour le client, cet identifiant est suffisant pour accéder au serveur et au canal associé. L’association (IFPLID, adresse serveur/canal) est maintenue par le processus d’allocation. La liaison plan de vol / canal est simple. Chaque serveur de notification a un nom unique (ou adresse réseau). Chaque canal a un numéro relatif à son serveur. Un canal est donc identifié avec une paire d’adresses (adresse serveur et numéro de canal). La table d’allocation est la liaison entre l’identifiant du plan de vol et l’identifiant du canal. FPLID <-> ( adresse serveur, numéro de canal ) 5. Evénement de notification et filtrage 5.1. Evénements de création Les événements de création sont des messages envoyés par le processus d’allocation localisé à l’IFPU. Ces messages contiennent l’identifiant des plans de vol. L’allocateur appelle le processus de filtrage (géographique..) qui recherche la liste des clients intéressés ou traversés par la route du plan de vol. Après réception du message de création, un client peut choisir de rejoindre le canal en vue d’accéder au contenu du plan de vol et d’être notifié sur toute modification future. 5.2. Evénement de mise à jour Si un changement, initié par un client, intervient sur le serveur, tous les clients, y compris l’initiateur, sont notifiés et leurs proxies sont mis à jour. La notification agit comme “une interruption logicielle” qui est prise en charge par un gestionnaire d’événements. Dans la bibliothèque, les classes d’objets partagés permettent au client de redéfinir la méthode du gestionnaire d’événements. Les événements peuvent être filtrés du coté client par le gestionnaire d’événements au moment de la notification. Un cas spécial de modification du plan de vol est le déroutement. Le serveur doit appeler le processus de filtrage géographique en vue de rechercher la nouvelle liste des clients intéressés. C’est pourquoi, le déroutement d’un plan de vol déclenche un événement de modification chez les clients actuels du vol et aussi vers les nouveaux clients concernés. Le processus de filtrage nécessite l’identifiant du plan et la trajectoire associée. Le processus d’allocation centralisé simplifie la génération d’un identifiant et d’une adresse unique pour un plan de vol. De plus, à la création d’un plan de vol, il permet de répartir la charge du système entre les serveurs de communication. Le diagramme suivant montre la répartition des événements et du flux des données entre : clients, serveurs, et l’unité de production des plans de vol. Tâche CEE N° R16 - Rapport CEE N° 326 18 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL Architecture Générale du Système Table d’Allocation Allocateur IFPU DIFODAM API Serveurs DIFODAM Evénement de Canaux Applications Création DIFODAM API Client local Client Souscription DIFODAM API FPL FPL FPL DIFODAM API Plan de vol Evénement de modification Filtres zone d’intérêt Le système est divisé en trois composants: • Le processus d’allocation qui prend en charge le plan de vol initial et le crée sur les différents serveurs. • Les serveurs de DIFODAM supportent le mécanisme de communication et assure la consistance des plans de vol partagés dans un contexte multi-utilisateurs. Un plan de vol est lié à un seul canal de communication. Les serveurs ont aussi la charge de filtrer les créations de plans de vol en vue de notifier les clients intéressés via la liste de souscription des canaux. • Les applications client s’appuient sur l’API DIFODAM qui fournit la connexion au service et le modèle orienté objet pour la manipulation des plans de vol partagés. Tâche CEE N° R16 - Rapport CEE N° 326 19 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL Architecture Logicielle Ce diagramme montre les couches des deux principaux composants du système : Serveur DIFODAM Applications Client DIFODAM API JSDA Java Machine virtuelle Système opérationnel La librairie JSDA est transparente de l’application client, elle est entièrement encapsulée pour réduire l’impact d’une modification dans le code java client. 6. Persistance Les serveurs de notification ne supportent pas la persistance de l’état des canaux, car la plupart des applications de groupe ne l’exige pas. Le principe de conception est que les clients et les serveurs ne paient que pour les facilités qu’ils utilisent aujourd’hui. 6.1. Persistance coté serveur Le serveur de notification peut être étendu pour sauvegarder, dans un support fiable, l’état du canal avant la notification aux clients. Sur une panne du serveur, les plans de vols ne sont plus disponibles, mais au redémarrage du système, ils recouvrent leur précédant état, consistant, depuis le répertoire. Le stockage persistant est facile à implémenter puisque le contenu des canaux ne sont que des ensembles d’octets. Il n’y a donc pas besoin d’avoir un système de base de données complexe et coûteux du coté du serveur. 6.2. Persistance coté clients Si le serveur n’est pas persistant, les clients peuvent choisir de stocker leurs objets localement pour continuer de fonctionner en cas de panne temporaire du réseau ou du serveur. Tâche CEE N° R16 - Rapport CEE N° 326 20 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL 7. Transactions Des modifications simultanées de deux ou plus d’objets peuvent s’interférer. Dans un tel cas, un gestionnaire de transactions est recommandé. Dans notre cas, les transactions n’affectent qu’un seul objet : le plan de vol. De plus, dans l’application DIFODAM, le plan de vol appartient à un seul canal de communication. C’est pourquoi, l’atomicité des transactions est assurée par le seul serveur de notification. 8. Versions et droits d’accès Pour répondre à l’exigence de pouvoir versionner un plan de vol, un attribut supplémentaire est ajouté à l’objet: le numéro de la version. De la même façon, des droits d’accès dynamiques nécessitent un attribut référençant le propriétaire du plan de vol. La valeur de cet attribut est contrôlée, du coté client, avant toute modification. 9. Tolérance aux pannes 9.1. Tolérance aux pannes coté serveur La solution proposée implique deux types de serveurs de notification: le serveur primaire auquel les clients sont connectés et un serveur de secours qui est le miroir de tous les canaux du premier serveur. Le serveur miroir agit comme un client du serveur primaire. Grâce aux propriétés synchrones des canaux de communication, le serveur de secours aura toujours le même contenu que le serveur principal. Le programme miroir est facile à implémenter puisqu’il ne doit pas interpréter le contenu des canaux, mais juste les répliquer. En respectant les règles d’identification des canaux, il est aisé de retrouver un plan de vol sur le serveur de secours: IPPLID <-> (adresse serveur, numéro du canal) identique à 9.2. IFPLID <-> (adresse du serveur de secours, même numéro du canal) Détection d’une panne client Un client, connecté à un canal de communication, est notifié si d’autres clients entrent ou quittent le canal. C’est une fonction de base du serveur de notification. Une panne client est détectée par le serveur de notification. 10. Requêtes La plupart des applications client sont des FDPS qui feront rarement des requêtes sur DIFODAM puisqu’ils sont déjà avertis des plans de vol traversant leur zone d’intérêt. Néanmoins, d’autres utilisateurs comme les compagnies ne sont pas forcément centrés que sur une zone géographique particulière. Ils doivent retrouver des plans de vol selon des critères qui leur sont propres. Une requête se passe en deux temps. Le premier pas est de retrouver l’identifiant du plan. Ceci implique une recherche sur tous les répertoires persistants des serveurs de notification. Le second pas est de rejoindre les canaux correspondant et de contrôler les critères de recherche. Cette tâche est exécutée du coté client. Tâche CEE N° R16 - Rapport CEE N° 326 21 DIFODAM CENTRE EXPERIMENTAL EUROCONTROL 11. Calculateur de trajectoire Le calculateur de trajectoire est un objet distinct qui calcule en 4D la trajectoire en tenant compte des performances de l’avion, de la Meteo, des contraintes ATC. La trajectoire résultante est copiée dans le plan de vol partagé de l’application client. 12. Conclusions L’architecture du prototype met en valeur le fait de disposer d’une vue synchrone d’un plan de vol plutôt que de requérir aux fonctionnalités d’une base de donnée traditionnelle. DIFODAM dispose d’une architecture évolutive, en ce sens qu’il est aisé de rajouter des serveurs de notification ou d’utiliser le concept des canaux de communication pour d’autres objets. De nouvelles applications bénéficieront de l’évolutivité du concept des plans de vol partagés. Pour la plupart des exigences de DIFODAM, le concept de communication de groupe offre différentes manières de les implémenter. Les choix de conception, ci dessus, sont transparents pour une application client et peuvent être remodelés en fonction des performances, des coûts ou toute raison d’évolutivité. 13. Bénéfices Les bénéfices peuvent être résumés : • Tous les clients ont accès aux mêmes données. • Système d’architecture simple qui est applicable dans une large panoplie de systèmes (ATC- FDPS, AOC, Airport) • La gestion des données est très simple bien que de larges domaines de types de données peuvent être couverts (FPL, Meteo, CDM). • Il est possible d’introduire ou de modifier, progressivement, les systèmes de la zone ECAC, systèmes hétérogènes et données ( basées sur l’héritage) sont supportés. • La continuité du service est assurée: pas de coupure des systèmes pour leur remise à niveau. Tâche CEE N° R16 - Rapport CEE N° 326 22