Re: Converting 'an' API to run against QUIPU
A.Waugh@mel.dit.csiro.au Mon, 20 January 1992 01:22 UTC
Received: from nri.reston.va.us by NRI.NRI.Reston.VA.US id aa05910;
19 Jan 92 20:22 EST
Received: from bells.cs.ucl.ac.uk by NRI.NRI.Reston.VA.US id aa05906;
19 Jan 92 20:22 EST
Via: bells.cs.ucl.ac.uk; Mon, 20 Jan 1992 00:08:04 +0000
Received: from shark.mel.dit.CSIRO.au by sun2.nsfnet-relay.ac.uk
with SMTP inbound id <19294-0@sun2.nsfnet-relay.ac.uk>;
Sun, 19 Jan 1992 23:56:06 +0000
Received: from squid.mel.dit.CSIRO.AU by shark.mel.dit.csiro.au with SMTP
id AA12136 (5.65c/IDA-1.4.4/DIT-1.3 for osi-ds@cs.ucl.ac.uk);
Mon, 20 Jan 1992 11:00:52 +1100
Message-Id: <199201200000.AA12136@shark.mel.dit.csiro.au>
To: Christian Huitema <Christian.Huitema@sophia.inria.fr>
Cc: osi-ds <osi-ds@cicb.fr>, osi-ds@cs.ucl.ac.uk
Subject: Re: Converting 'an' API to run against QUIPU
In-Reply-To: Your message of "Fri,
17 Jan 92 16:18:14 -0000." <199201171518.AA04208@mitsou.inria.fr>
Date: Mon, 20 Jan 92 04:11:34 +1100
From: A.Waugh@mel.dit.csiro.au
Sender: ajw@mel.dit.csiro.au
Christian, I am afraid that I do not agree with your thoughts about APIs. First, however, I most certainly agree with: > The scheme that you describe is not a response to the "QUIPU DUAs to > talk to QUIPU DSAs", but rather to the "random API conversion" > question. You dont need an API -- and certainly not the lousy X.Opens > %^$#@ stuff -- for DUA to DSA connections. In fact, we do it every > day when connecting a Pizarro DUA to a QUIPU DSA and vice-versa: > > Pizarro Interface, > Pizarro DUA, QUIPU DSA > INRIA Session, Transport ISODE Session, Transport > ---------------- -------------- > ------- Choice of TCP-IP or X.25 ------------ Indeed the ability for products from different vendors, using different implementations, to work together is the point of standards. > The role of "standard API" is to let you develop an application > independantly of the implementation of the local stack. Such a design > is in my opinion very questionable: the interface is in most case > directly generated by your stub compiler, e.g. MAVROS for INRIA, > ROSY+PEPY for ISODE; converting to a "generic" interface like X.OPEN > is generally time consuming, boring, and ineffective. I'd agree with time consuming and boring (to write, anyway). It is, however, absolutely necessary. One of the advantages of standards is the ability to mix and match vendors. There is no necessity to purchase the DUAs and DSAs from the same vendor. Indeed, I'd expect that this will become extremely uncommon. Specialist DUA vendors will spring up marketing DUAs tailored for particular niche markets. Other vendors will provide DUAs as an auxiliary to their main product; one obvious example is an X.400 vendor that builds a DUA into their X.400 user agent. Now, from the point of view of the user of X.500, you don't need a common API to run DUAs from different vendors on one box. Each DUA can come packaged with its own implementation of the transport, session, presentation, and application layers (I'll refer to this software, including ASN.1 compilers etc, as the 'protocol stack'). The cost to the user of this approach, of course, is that of the disk space required to store the various libraries and the size of the running processes. Also, of course, don't forget the cost of installation and the maintenance of the configuration information. Ideally a user wants only one protocol stack on the machine and only one set of configuration information to learn! Of course, as a software developer I don't really care about the poor user (:-), I'm concerned about my own difficulties and costs. Actually, this is not quite true. If a user really needs my DUA then they will put up with supporting a new protocol stack. If, however, they don't really need it then they will look at whether they can justify spending the money on the protocol stack, and the machine and human resourses necessary to run it. In short, the choice of protocol stack on which I develop my DUA may limit my potential sales. The choice of protocol stack will heavily influence the code I write in my DUA. Much of the code I write will be examining or setting the contents of fields in the interface. In addition, the models used by the interface to initialise and control the interface; pass X.500 protocol information across the interface; and manage memory will affect the structure and design of my DUA. The point is that a DUA is written around a particular interface. To subsequently port it to another interface is a non trivial task and may, in fact, be equivalent to completely rewriting the code. This raises subsequent problems (and costs) with future maintenance of my code. I've already mentioned one reason why I might want to port a DUA (potential sales). There is another reason as well. Writing a DUA to a particular protocol stack ties you to that particular stack and that particular vendor. This can be a very bad thing. Simply, as a small software developer you have little (if any) influence on the vendor of the protocol stack. This is particularly true if you are beyond the edge of civilisation (e.g. in Australia :-). The success of your product is tied up with the success of another piece of software over which you have no control. What happens if the protocol stack vendor goes out of business? Or, more likely, simply ceases development work or bug fixing on the stack? How much will it cost when the vendor unilaterally decides to change the interface without warning, requiring extensive rewriting of your DUA? What do you do if, having locked yourself into one protocol stack, the vendor decides to drastically increase the price of their product? The use of a standard API mininises these risks. It also has another benefit. If a different vendor brings out an improved implementation of the API that is faster, smaller or cheaper it is easy to port your code. None of these benefits are technical. These are commercial benefits I gain as a very small software developer with no effective influence over the vendors of protocol stacks. andrew waugh p.s. None of this is a criticism of the Quipu interface which we currently use. I have had no problems with the Quipu developers. My only problem with Quipu is that, as it is not a 'commercial' product many companies are very reluctant to run Quipu. Strange but true. It does, however, limit potential sales!
- Re: Converting 'an' API to run against QUIPU A.Waugh
- Converting 'an' API to run against QUIPU Bobby Martyna