ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/idl/iscream.idl
Revision: 1.23
Committed: Mon Feb 24 20:18:46 2003 UTC (21 years, 10 months ago) by tdb
Branch: MAIN
Changes since 1.22: +1 -2 lines
Log Message:
Fairly major commit. This will break the current version of ihost, but this
had to be done really to give Pete something to test the new ihost against.

The main change here is removal of the TCP Heartbeat functionality from the
filter. This meant the following features stopped working :-
  - Heartbeat testing
  - Configuration checking
  - Service checks

The heartbeat testing, specifically the monitor, now looks at the presence
of UDP packets instead. Before it just looked for the presence of a TCP
heartbeat packet, so the change their is fairly negligible. Of course this
means heartbeat testing now relies on the UDP working... but I don't see
this as a problem.

Configuration checking has been repositioned in to the filtermanager. This
is a backwards compatible change - the filtermanager should still perform
as it should for older hosts. But now there's an extra command to check the
configuration is up-to-date, with a similar format to the old TCP protocol
in the filter. (although we may optimise this soon)

The service checks are broken. This isn't a major issue for us as they were
pretty useless in the first place. The concept is good, but the checks are
just far too primitive. I expect at some point I'll work on a seperate
component that just monitors services, which will replace this function.

Further changes in the server include removal of the key checking code,
as this relied on a bolt on to the TCP heartbeat protocol to ship the
key. This got more akward than originally planned, so I'm happy to drop the
idea. In the long term we hope to replace this with a public key systems
for signing and even encryption.

Finally, general tidy up to remove other bits of code that check for
TCP heartbeat packets when they don't need to any more.

File Contents

# User Rev Content
1 tdb 1.1 //
2 tdb 1.21 // i-scream central monitoring system
3 tdb 1.22 // http://www.i-scream.org.uk
4 tdb 1.21 // Copyright (C) 2000-2002 i-scream
5     //
6     // This program is free software; you can redistribute it and/or
7     // modify it under the terms of the GNU General Public License
8     // as published by the Free Software Foundation; either version 2
9     // of the License, or (at your option) any later version.
10     //
11     // This program is distributed in the hope that it will be useful,
12     // but WITHOUT ANY WARRANTY; without even the implied warranty of
13     // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     // GNU General Public License for more details.
15     //
16     // You should have received a copy of the GNU General Public License
17     // along with this program; if not, write to the Free Software
18     // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19     //
20    
21     //
22 tdb 1.1 // This class provides infomation about the CORBA
23 tdb 1.19 // interface for the server side of the i-scream system.
24 tdb 1.1 //
25 tdb 1.23 // $Id: iscream.idl,v 1.22 2002/05/21 16:47:16 tdb Exp $
26 tdb 1.1 //
27 tdb 1.19 module uk { module org { module iscream { module cms { module server {
28 tdb 1.1 module core {
29    
30     // The Logger interface, provides a corba object that
31     // all classes can use to log system and error information.
32     interface Logger {
33 tdb 1.2 void write(in string source, in long verbosity, in string message);
34 tdb 1.3 // Verbosity levels
35     const long FATAL=0;
36     const long ERROR=1;
37     const long WARNING=2;
38     const long SYSMSG=3;
39     const long SYSINIT=4;
40     const long DEBUG=5;
41 tdb 1.1 };
42    
43     // The Configuration interface, provides a CORBA object that
44     // all classes can use to get their configuration.
45     interface Configuration {
46     string getProperty(in string key);
47     long long getLastModified();
48 tdb 1.7 string getFileList();
49 tdb 1.16 void disconnect();
50 tdb 1.1 };
51    
52 tdb 1.5 // The ConfigurationManager interface, provides a CORBA object that
53 tdb 1.1 // all classes can use to obtain their individual configuration.
54 ajm 1.4 interface ConfigurationManager {
55 tdb 1.1 Configuration getConfiguration(in string source);
56     boolean isModified(in string source, in long long currentModified);
57     };
58    
59     // end core
60     };
61    
62     module filter {
63 tdb 1.8 interface Filter {
64     void receiveXML(in string xml);
65 tdb 1.20 };
66     interface FilterInfo {
67 tdb 1.9 string getHostName();
68     string getUDPPort();
69 tdb 1.8 };
70 tdb 1.9
71 tdb 1.1 // end filter
72 tdb 1.11 };
73    
74 tdb 1.13 module client {
75     interface Client {
76     void receiveXML(in string xml);
77     };
78     // end client
79     };
80    
81 tdb 1.11 module clientinterface {
82     interface ClientInterface {
83     void receiveXML(in string xml);
84     };
85 tdb 1.14 interface CorbaControlHandler {
86 tdb 1.13 boolean startData();
87     boolean stopData();
88 tdb 1.12 boolean setHostList(in string hostList);
89 tdb 1.17 void disconnect();
90 tdb 1.12 };
91     interface CorbaClientListener {
92 tdb 1.15 CorbaControlHandler connect(in client::Client client, in string name);
93 tdb 1.12 };
94     // end clientinterface
95 tdb 1.1 };
96    
97 tdb 1.20 // end uk.org.iscream.cms.server
98 tdb 1.19 };};};};};