X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=doc%2Fintroduction.xml;h=6d4df12e9d1128a81602853c73adcf067f5a5659;hp=aecfe6702708aba32dbf6e19c19112664dfc3a2c;hb=adae7ab7df270a3187630876b8d4668038a42e88;hpb=dd2c5a5e8e1ec1a3214423a6c8dcba065e13ddb0 diff --git a/doc/introduction.xml b/doc/introduction.xml index aecfe67..6d4df12 100644 --- a/doc/introduction.xml +++ b/doc/introduction.xml @@ -1,4 +1,4 @@ - + Introduction @@ -161,12 +161,13 @@ toolkit offers several different levels of access to the ISO23950/Z39.50, ILL and - SRW protocols. + SRW + protocols. The level that you need to use depends on your requirements, and the role (server or client) that you want to implement. If you're developing a client application you should consider the ZOOM API. - It is, by far, the easiest way to develop clients in C. + It is, by far, the easiest way to develop clients in C. Server implementers should consider the generic frontend server. None of those high-level APIs support the whole protocol, but @@ -179,22 +180,54 @@ you're going to develop an ILL application you'll have to learn the lower level APIs of &yaz;. - - The basic low level modules, which are independent of the role - (client or server), consist of three primary interfaces: - + + + + The YAZ toolkit modules is shown in figure . + +
+ YAZ layers + + + + + + + + +
+ + There are four layers. - &asn;, which provides a C representation of the Z39.50 - protocol packages (PDUs). - - &odr;, which encodes and decodes the packages according - to the BER specification. - - &comstack;, which exchanges the encoded packages with - a peer process over a network. - + + A client or server application (or both). + This layer includes ZOOM and the generic frontend server. + + + + + The second layer provides a C represenation of the + protocol units (packages) for Z39.50 ASN.1, ILL ASN.1, + SRW SOAP. + + + + + The third layer encodes and decodes protocol data units to + simple packages (buffer with certain length). The &odr; module + encodes and decodes BER whereas the HTTP modules encodes and + decodes HTTP ruquests/responses. + + + + + The lowest layer is &comstack; which exchanges the encoded packages + with a peer process over a network. + + - + + The &asn; module represents the ASN.1 definition of the Z39.50 protocol. It establishes a set of type and structure definitions, with one structure for each of the top-level @@ -248,7 +281,7 @@ create a connection endpoint, you need to specify what transport to use (TCP/IP, SSL or UNIX sockets). For the remainder of the connection's lifetime, you don't have - to worry about the underlying transport protocol at all - the &comstack; + to worry about the underlying transport protocol at all - the &comstack; will ensure that the correct mechanism is used. @@ -259,7 +292,7 @@ The reason that the &yaz; service-level API is a conglomerate of the - APIs from three different submodules is twofold. First, we wanted to allow + APIs from three different submodules is twofold. First, we wanted to allow the user a choice of different options for each major task. For instance, if you don't like the protocol API provided by &odr;/&asn;, you can use SNACC or BERUtils instead, and still have the benefits of the