2.3 Definition der Schnittstellen


Die Gestaltung der Schnittstelle zu den Signaturfunktionen bzw. zum Netz gestaltet sich recht einfach als Definition bestimmter Methodenaufrufe.

Signaturschnittstelle:

1. Dokument signieren
    Klasse: Signature
    Methode: getSignatureDocument(Document Dokument, String Pseudonym, String Passwort)
    Return: Document

2. Signatur prüfen
    Klasse: Signature
    Methode: validityDocument(Document Dokument, String Prüferpseudonym, String Senderpseudonym)
    Return: boolean

Netzschnittstelle:

1. Verbindung aufbauen
    Klasse: TrusteeToSalesMan
    Methode: sendTo(String Host, String Port, File Request);
    Return: File

2. Verbindungsanfrage bearbeiten
    - Kommunikation initiiert / Serverklasse erzeugt (Treuhänder, Händler) und ruft in dieser folgende Methode auf:
    Klasse: Treuhänder/Händler
    Methode: handleRequest(File Request)
    Return: File
    - Serverklasse gibt File an Kommunikationspartner zurück
 
 
 

Die Definition der Schnittstelle zwischen den logischen Programmteilen Händler, Treuhänder und Kunde gestaltet sich schwieriger, da sie von der Implementation des Protokolls direkt betroffen ist. Es handelt sich um die unten spezifizierten XML-Dokumente.

Schnittstelle Kunde-Treuhänder:

1. Bestellung des Kunden
<!ELEMENT Bestellungkt (Kunde,Treuhaender,Haendler,Katalog_Nr,Gesamtbestellung,Ges_Preis,Geld)>
<!ELEMENT Kunde (KName,KIPAdresse,KPort)>
<!ELEMENT KName (#PCDATA)>
<!ELEMENT KIPAdresse (#PCDATA)>
<!ELEMENT KPort (#PCDATA)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Haendler (HName,HIPAdresse,HPort)>
<!ELEMENT HName (#PCDATA)>
<!ELEMENT HIPAdresse (#PCDATA)>
<!ELEMENT HPort (#PCDATA)>
<!ELEMENT Katalog_Nr (#PCDATA)>
<!ELEMENT Gesamtbestellung (Eintrag+)>
<!ELEMENT Eintrag (ID,Preis)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT Preis (#PCDATA)>
<!ELEMENT Ges_Preis (#PCDATA)>
<!ELEMENT Geld (#PCDATA)>

2.Lieferung an Kunden
<!ELEMENT Lieferungtk (Treuhaender,Kunde,Ware+)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Kunde (KName,KIPAdresse,KPort)>
<!ELEMENT KName (#PCDATA)>
<!ELEMENT KIPAdresse (#PCDATA)>
<!ELEMENT KPort (#PCDATA)>
<!ELEMENT Ware (Book,BSignatur_T)>
<!ELEMENT Book (#PCDATA)>
<!ELEMENT BSignatur_T (#PCDATA)>

3. Mangeldokument an Kunden
<!ELEMENT Mangelkunde (Treuhaender,Kunde,Status,Geld)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Kunde (KName,KIPAdresse,KPort)>
<!ELEMENT KName (#PCDATA)>
<!ELEMENT KIPAdresse (#PCDATA)>
<!ELEMENT KPort (#PCDATA)>
<!ELEMENT Status(#PCDATA)>
<!ELEMENT Geld (#PCDATA)>
 

Schnittstelle Treuhänder-Händler:

1. Bestellung an Händler weiterleiten
<!ELEMENT Bestellungth (Treuhaender,Haendler,Katalog_Nr,Bestell_ID,Gesamtbestellung,Ges_Preis)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Haendler (HName,HIPAdresse,HPort)>
<!ELEMENT HName (#PCDATA)
<!ELEMENT HIPAdresse (#PCDATA)>
<!ELEMENT HPort (#PCDATA)>
<!ELEMENT Katalog_Nr (#PCDATA)>
<!ELEMENT Bestell_ID (#PCDATA)>
<!ELEMENT Gesamtbestellung (Eintrag+)>
<!ELEMENT Eintrag (ID,Preis)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT Preis (#PCDATA)>
<!ELEMENT Ges_Preis (#PCDATA)>

2. Lieferung an Treuhänder
<!ELEMENT Lieferunght (Haendler,Treuhaender,Bestell_ID,Ware+)>
<!ELEMENT Haendler (HName,HIPAdresse,HPort)>
<!ELEMENT HName (#PCDATA)>
<!ELEMENT HIPAdresse (#PCDATA)>
<!ELEMENT HPort (#PCDATA)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Bestell_ID (#PCDATA)>
<!ELEMENT Ware (Book,BSignatur_H)>
<!ELEMENT Book (#PCDATA)>
<!ELEMENT BSignatur_H (#PCDATA)>

3. Bezahlung des Händler
<!ELEMENT Bezahlung (Treuhaender,Haendler,Bestell_ID,Ges_Preis,Geld)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Haendler (HName,HIPAdresse,HPort)>
<!ELEMENT HName (#PCDATA)>
<!ELEMENT HIPAdresse (#PCDATA)>
<!ELEMENT HPort (#PCDATA)>
<!ELEMENT Bestell_ID (#PCDATA)>
<!ELEMENT Ges_Preis (#PCDATA)>
<!ELEMENT Geld (#PCDATA)>

4. Mangeldokument an Händler
<!ELEMENT Mangelhaendler (Treuhaender,Haendler,Reklamation,Bestell_ID,Ges_Preis)>
<!ELEMENT Treuhaender (TName,TAdresse,TTelefon,TIPAdresse,TPort)>
<!ELEMENT TName (#PCDATA)>
<!ELEMENT TAdresse (#PCDATA)>
<!ELEMENT TTelefon (#PCDATA)>
<!ELEMENT TIPAdresse (#PCDATA)>
<!ELEMENT TPort (#PCDATA)>
<!ELEMENT Haendler (HName,HIPAdresse,HPort)>
<!ELEMENT HName (#PCDATA)>
<!ELEMENT HIPAdresse (#PCDATA)>
<!ELEMENT HPort (#PCDATA)>
<!ELEMENT Bestell_ID (#PCDATA)>
<!ELEMENT Ges_Preis (#PCDATA)>
<!ELEMENT Reklamation (Begruendung,Ware+)>
<!ELEMENT Begruendung (#PCDATA)>
<!ELEMENT Ware (Book,BSignatur_H)>
<!ELEMENT Book (#PCDATA)>
<!ELEMENT BSignatur_H (#PCDATA)>
 

Schnittstelle Kunde-Händler:

1. Kataloganforderung:
<!ELEMENT Kataloganforderung (Kunde,Haendler)>
<!ELEMENT Kunde (KName,KIPAdresse,KPort)>
<!ELEMENT KName (#PCDATA)>
<!ELEMENT KIPAdresse (#PCDATA)>
<!ELEMENT KPort (#PCDATA)>
<!ELEMENT Haendler (HName,HIPAdresse,HPort)>
<!ELEMENT HName (#PCDATA)>
<!ELEMENT HIPAdresse (#PCDATA)>
<!ELEMENT HPort (#PCDATA)>

2.Katalog:
<!ELEMENT Katalog (Katalognr,Haendler,Book+)>
<!ELEMENT Katalognr (#PCDATA)>
<!ELEMENT Haendler (Name,IPAdresse,Port)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT IPAdresse (#PCDATA)>
<!ELEMENT Port (#PCDATA)>
<!ELEMENT Book (ID,Titel,Autor+,Preis,Kommentar?,ISBN,Verlag,Jahr)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT Titel (#PCDATA)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Preis (#PCDATA)>
<!ELEMENT Kommentar (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ELEMENT Verlag (#PCDATA)>
<!ELEMENT Jahr (#PCDATA)>

weiter