Jump to content

Projektantrag: maestrte_process

Empfohlene Beiträge

Zurzeit überprüf ich halt ob die Werte die extahiert wurden korrekt sind. Sprich richtiges Format oda allgemein ob die zu verwendenden Variablen leer sind. Nur wenn alle Daten vorhanden sind werden die Dateien erstellt. Dadurch gewährleiste ich das keine "kaputten" XML-Files erstellt werden.

Nein das stimmt so nicht. Z.B.:


< xml >

  < tag1 >

       < subtag1 atribut1="xxx" >

           data

       < / subtag1 >

< /xml >

Ist definitiv kein valides XML File, aber mit Hilfe einer RegExpr der Form "<subtag1 (.*)>" kann man das Attribut und mit "<subtag1 (.*)>(.*)</subtag1>" die Daten des Tags extrahieren. Im ersten Fall stellst Du nur sicher, dass der öffnende Tag existiert und beim zweiten, dass der Tag subtag1 einmal geöffnet und geschlossen wird. Theoretisch würde aber ein:

< xml >

  < tag1 >

       < subtag1 atribut1="xxx" >

           data

           < subtag3 >

       < /subtag1 >

< /xml >

auch als gültig in dem Ausdruck erkannt werden. Du kannst natürlich mit "not" usw so etwas ausschließen bzw. nachträglich den Inhalt prüfen, was aber letztendlich nicht dazu führt, dass Du fest stellen kannst, ob das XML valide ist. Ich verweise einmal auf Entscheidbar D.h. in Deinem Fall kann ich nicht entscheiden, dass Du ein valides XML Dokument hast. Durch Fehler bei der Erzeugung des XML können solche Probleme entstehen, z.b. weil ein Knoten innerhalb des Baums nicht erzeugt wurde und somit der Unterbaum sich verschiebt. Für Dich ist es dann nicht möglich passend auf diesen Fehler zu reagieren (bzw. nur durch extrem umständliche inhaltliche Prüfungen).

Es gibt eben für XML mehrere Strukturen, die man verwenden sollte, um eben genau solche Probleme auszuschließen (DOM, XSLT, XSD, DTD). Ich würde hier sagen, dass Du das Problem nicht erkannt bzw. dann nicht passend gelöst hast.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Mhh. Aber ich bau das XML ja händisch zusammen.

$XML_Text = "[SettlementAdvicement]\n[SettlementDate]".$XML_settlement_date."[/SettlementDate]\n[MemberID]".$maestrte_Values[6]."[/MemberID]\n[References]\n";

				foreach(@FileID){

				$XML_Text = $XML_Text."[FileID]".$_."[/FileID]\n";

				}

$XML_Text = $XML_Text."[/References]\n[TotalAmount]".$XML_leadingSign.$XML_money_value."[/TotalAmount]\n[/SettlementAdvicement]";

[ ] = < > , irgendwie wollte er die spitzen Klammern nit nehmen.

Vielleicht bin ich grade etwas verpeilt. Nur wie genau soll da jetzt was falsch laufen, ausser wenn die Werte nicht stimmen?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Mhh. Aber ich bau das XML ja händisch zusammen.

mit [] ist das keine XML. Außerdem fehlt auch das Rootelement < xml > mit passendem Encoding Parameter und auch, wieso baut man XML händisch zusammen !? Fachlich habe ich da wirklich sehr große Bedenken. Fehler können z.B. passieren, wenn Du einen Tippfehler in Deinen Tagbezeichern hast: [/TotalAmuont]. Ein XML Parser der sorgt erst einmal dafür, dass das XML valide ist und kann mit Hilfe einer DTD oder XSD solche Fehler finden und melden.

Sorry, aber wenn ich das so sehe, dass hier XML händisch per Stringverkettung baust, dann sind da fachlich für mich riesige Lücken. Vor allem fehlen da massive Grundlagen über XML Extensible Markup Language

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Du hast Recht. Ich kenn mich mit XML leider echt wenig aus.

Ich hab quasi ne Spezifikation bekommen und eine Beispiel XML Datei. Die Beispiel XML Datei enthällt keinen Anfangs XML tag.

[settlementAdvicement]

[settlementDate]30.01.2011[/settlementDate]

[MemberID]83147[/MemberID]

[References]

[FileID]0011105180000000035308888[/FileID]

[FileID]0011105180000000035307777[/FileID]

[FileID]0011105190000000035306666[/FileID]

[FileID]0011105190000000035305555[/FileID]

[FileID]0011105190000000035304444[/FileID]

[FileID]0011105190000000035303333[/FileID]

[FileID]0011105190000000035302222[/FileID]

[FileID]0011105190000000035301111[/FileID]

[/References]

[TotalAmount]-1180448,22[/TotalAmount]

[/settlementAdvicement]

So sah sie aus.

Bitte bedenke genauso wie bei meinem vorherigen post das [] = < > sind. Weil das Forum <> direkt als Tags erkennt und filtert.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Du hast Recht. Ich kenn mich mit XML leider echt wenig aus.

Das wäre aber die Voraussetzung für das Projekt, dass Du Dich damit auskennst. Im Moment würde ich wirklich ganz große Bauchschmerzen haben, wenn Du im Fachgespräch genau über diese Punkte gefragt wirst und Du erklären musst, warum Du eben das ganze mit regulären Ausdrücken gemacht hast. Selbst unter Perl gibt es entsprechende APIs für die Verarbeitung XML::DOM - A perl module for building DOM Level 1 compliant document structures

Ich würde Dir dazu raten Dir ein neues Projekt zu suchen und dieses wirklich formal und inhaltlich richtig aufzubereiten.

Bitte bedenke genauso wie bei meinem vorherigen post das [] = < > sind. Weil das Forum <> direkt als Tags erkennt und filtert.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Dann ma ne kleine Gegenfrage:

Du hast eine Datei der Form:

REPORT: XXXXXXX-XXX DATE: 08 SEP 2009

PAGE: 1 TIME: 08:34

DELIVERY MEDIA: AT&T E-MAIL

DESTINATION: XXXXXXX@XXXXXXX.DE

TO TRANSFER AGENT: DZ BANK AG

TRANSFER AGENT ID: XXXXXX

TRANSFER AGENT BANK: DZ BANK AG

CONTACT NAME: XXXXXX XXXXXXXX

SETTLEMENT SERVICE NAME: XXX XXXXXX - XXXXX

SETTLEMENT SERVICE ID: XXXXXXXX

SETTLEMENT SERVICE TYPE: Regional

SCHEDULED CUTOFF TIME: 09:00

SCHEDULED SETTLEMENT CYCLE: 1

SETTLEMENT BANK NAME: DEUTSCHE BANK AG

SETTLEMENT DATE: 08 SEP 2009

SETTLEMENT ACCOUNT NBR: XXXXXXXXX

SETTLEMENT ROUTING NBR: DEUTDEFF

AGENT ACCOUNT NUMBER: XXXXXXXXX

BANK ROUTING NUMBER: GENODEFF1

CURRENCY NAME: EURO

CURRENCY CODE: EUR/978

COUNTRY CODE: DEU

VALUE DATE: 08 SEP 2009

MEMBER NAME: EURO KARTENSYSTEME GMBH

MEMBER ID: XXXXXX

INTERNAL ID: XXXXXX

Wie würdest du jetzt ohne reguläre Ausdrücke dir die Inhalte der zeilen member id , date , agent account number und sagen wir settlement service name herrausziehen?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
wenn Du im Fachgespräch genau über diese Punkte gefragt wirst und Du erklären musst, warum Du eben das ganze mit regulären Ausdrücken gemacht hast.

Darum gings. Und das habe ich auf das extrahieren der Daten bezogen, weil mit regex baue ich die xml gar nicht zusammen, Oo

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Also. Ich hab mich mal was mit XML beschäftigt und bitte erklärt mir warum soetwas für mein Projekt bei der Größe sinnvoll ist:

 public DomXmlExample() {

        try {

            /////////////////////////////

            //Creating an empty XML Document


            //We need a Document

            DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();

            DocumentBuilder docBuilder = dbfac.newDocumentBuilder();

            Document doc = docBuilder.newDocument();


            ////////////////////////

            //Creating the XML tree


            //create the root element and add it to the document

            Element schema = doc.createElement("xs:schema");

            schema.setAttribute("xmlns:xs", "http://www.w3.org/2001/XMLSchema");


            Element sa = doc.createElement("xs:element");


            sa.setAttribute("name", "SettlementAdvicement");


            Element cT = doc.createElement("xs:complexType");


            Element sequence = doc.createElement("xs:sequence");


            Element SD = doc.createElement("xs:element");

            SD.setAttribute("name", "SettlementDate");

            SD.setAttribute("type", "xs:string");

            Element MID = doc.createElement("xs:element");

            MID.setAttribute("name", "MemberID");

            MID.setAttribute("type", "xs:string");

            Element REF = doc.createElement("xs:element");

            REF.setAttribute("name", "References");

            Element TA = doc.createElement("xs:element");

            TA.setAttribute("name", "TotalAmount");


            Element refCT = doc.createElement("xs:complexType");

            Element refSEQ = doc.createElement("xs:sequence");

            refSEQ.setAttribute("maxOccurs", "unbounded");

            Element FileID = doc.createElement("xs:element");

            FileID.setAttribute("name", "FileID");

            FileID.setAttribute("type", "xs:string");

            refSEQ.appendChild(FileID);

            REF.appendChild(refCT);

            refCT.appendChild(refSEQ);

            refSEQ.appendChild(FileID);


            sequence.appendChild(SD);

            sequence.appendChild(MID);

            sequence.appendChild(REF);

            sequence.appendChild(TA);

            cT.appendChild(sequence);


            sa.appendChild(cT);

            schema.appendChild(sa);


            doc.appendChild(schema);

            /////////////////

            //Output the XML


            //set up a transformer

            TransformerFactory transfac = TransformerFactory.newInstance();

            Transformer trans = transfac.newTransformer();

            trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

            trans.setOutputProperty(OutputKeys.INDENT, "yes");


            //create string from xml tree

            StringWriter sw = new StringWriter();

            StreamResult result = new StreamResult(sw);

            DOMSource source = new DOMSource(doc);

            trans.transform(source, result);

            String xmlString = sw.toString();




            //print xml

            System.out.println("Here's the xml:\n\n" + xmlString);

}

}

und die Ausgabe ist:

< xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >

< xs:element name="SettlementAdvicement" >

< xs:complexType >

< xs:sequence >

< xs:element name="SettlementDate" type="xs:string"/ >

< xs:element name="MemberID" type="xs:string"/ >

< xs:element name="References" >

< xs:complexType >

< xs:sequence maxOccurs="unbounded" >

< xs:element name="FileID" type="xs:string"/ >

< /xs:sequence >

< /xs:complexType >

< /xs:element >

< xs:element name="TotalAmount"/ >

< /xs:sequence >

< /xs:complexType >

< /xs:element >

< /xs:schema >

was kann ich damit jetzt machen? und vorallem wie krieg ich die daten darein? Brauch ich dazu ein passendes SettlementAdvicement Objekt? Mit dazu passenden Variable Namen?

ich weis das das nit zum thema gehört nur ihr kennt euch damit ja scheinbar richtig gut aus ^^

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Das ist keine XML sondern ein XML Schema Ein Schema beschreibt, wie Deine XML Datei logisch aufgebaut sein muss, also z.B. welche Datentypen die einzelnen Tags enthalten usw.

Eine komplette Einführung in das Thema XML sprengt hier jeden Rahmen, wir befassen uns hier in dem Unterofrum mit Projektanträgen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ja man kann mit Hilfe eines Schemas validieren bzw. ein Schema lässt sich dann verwenden um daraus direkt Klassen erzeugen zu können, d.h. man kann damit die XML Datei direkt als Objekt behandeln um die Daten zu lesen / zu ändern und zu schreiben. Somit muss man gar nicht mehr innerhalb des XML Baumes arbeiten sondern arbeitet mit Objekten, die dann direkt als XML (de-) serialisiert werden

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Jo. Das hat mir heute aufm nach Hause weg auch einer erklärt. Recht interessant. Nur was ich irgendwie kritisch sehe ist das durch solche Frameworks die mir 99% der Arbeit abnehmen das Projekt zu sehr schrumpft. 10Std für das parsen von einer Datei und das filtern der Daten. Naja ich weis nicht. Das korrekte formatieren und speichern der Daten war was, also zeitlich bedingt.

Ich werd wohl die Woche nochmal mit meinem Ausbilder reden und das Thema ansprechen bzw versuchen zu klären.

Um ehrlich zu sein möchte ich ja auch nen eigenes neues Projekt haben, nur wie Anfangs erwähnt ist halt nix da was sich für nen AP eignet. Ma schauen...

bearbeitet von hbspike

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Nur was ich irgendwie kritisch sehe ist das durch solche Frameworks die mir 99% der Arbeit abnehmen das Projekt zu sehr schrumpft.

Im Grunde wäre dies aber eben nicht passiert, wenn Du eben das Projekt richtig geplant hättest; Du verkaufst ja schon etwas fertiges als Projekt. Die genannte Technologie wäre ja eben erst in der Planungsphase zur Sprache gekommen, d.h. wäre eine von mehreren Umsetzungsalternativen gewesen. Die bisherige Umsetzung ist ja eher "drauf los" gewesen (mal davon abgesehen, dass es sicherlich nicht schlecht ist, wenn wir das im Moment finden, denn schlimmer wäre so etwas später beim Fachgespräch).

Ich würde jetzt nicht sagen, dass es hoffnungslos ist, sondern schau Dir doch mal den kompletten Prozess bei der Verarbeitung an. So wie Dich ja verstanden habe, kommen die Daten per Mail rein und sollen auch per Mail wieder raus. Evtl wäre es sinnvoll mal den ganzen Prozess zu analysieren und dann ggf dann zu optimieren. Ich meine in diesem Fall kannst Du ja auch die aktuelle Lösung mit den regulären Ausdrücken einfließen lassen und eben auch darlegen, warum eine andere Lösung besser ist. Ich meine wenn man z.B. sagt, dass die Mail reinkommt, direkt vom Server verarbeitet werden soll und dann z.B. in eine Datenbank fürs Log muss und eine Antwort Mail mit XML und ggf XML Signatur erzeugt wird, dann hätte man da schon etwas zusammen. Evtl eben mal nach rechts und links schauen und die einzelnen Abläufe im System hinterfragen

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
So wie Dich ja verstanden habe, kommen die Daten per Mail rein und sollen auch per Mail wieder raus.

Nein.

Die Mail kommt morgens an. Wird vom System auf den "Verarbeitungsserver" geschoben, da rödelt dann das Programm rüber und wenns fertig ist, schreibt es die DTE und XML Datei an einen bestimmten Ort auf dem Server, wo dann andere Programme drauf zugreifen.

Ich hab quasi mit der Korrektheit der Email (sprich korrekte Daten)nichts zu tun. Dafür ist quasi die sendende Stelle zuständig.

Mal eine kurze Frage zum Thema Realisierung.

Die 10Std würden doch quasi aussagen, das ich solange brauche bis das Programm aus meiner Sicht korrekt funktioniert. Dazu zählen dann doch auch Funktionstest um die korrekte Verarbeitung zu überprüfen und die QA-Tests beziehen sich eher auf den produktiven Einsatz? Oder?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Die Mail kommt morgens an. Wird vom System auf den "Verarbeitungsserver" geschoben, da rödelt dann das Programm rüber und wenns fertig ist, schreibt es die DTE und XML Datei an einen bestimmten Ort auf dem Server, wo dann andere Programme drauf zugreifen.

Das sind doch schon 2 schöne Angriffspunkte: Da ja ein Programm die Mail zerlegt und dann speichert und Dein Programm ja über einen Cronjob laufen sollte, wie ist klar, ob das überhaupt richtig funktioniert. Ich meine wenn das Mailprogramm eben die Datei noch nicht komplett verarbeitet hat, dann würde ja Dein Programm keine Datei oder eine halbgeschriebene Datei finden. So etwas muss man synchronisiert machen, d.h. Dein Programm darf erst mit der Verarbeitung beginnen, wenn das andere fertig ist. Dieses Datei hin und herschieben macht man eigentlich nicht mehr, denn es ist eben auch wie die regulären Ausdrücke fehleranfällig.

Der zweite Punkt ist, wie sieht die Verarbeitung von der XML und DTE aus. Ich meine Du erzeugst hier auch Dateien. Was passiert dann mit diesen Dateien und warum müssen es Dateien sein? Was passiert, wenn z.B. die Dateien vom Vortrag dort noch liegen, überschreibst Du dann einfach? Wäre hier evtl der Ansatzpunkt das ganze anstatt in Dateiform in eine Datenbank zu schreiben, somit hat man ein Log und kann für jeden Tag die Daten wieder holen. Mit einem passenden Client kann man dann aus der Datenbank sich über die selektierten Daten die DTE und XML erzeugen.

Ich hab quasi mit der Korrektheit der Email (sprich korrekte Daten)nichts zu tun. Dafür ist quasi die sendende Stelle zuständig.

Nein, Du sollst nicht einfach stumpf irgendwas, das Dir aufgetragen wird, runter codieren, sondern Du sollst Dir eigenständig Gedanken dazu machen. D.h. Du kannst / darfst nicht voraussetzen, dass die EMail korrekt ist, du musst es es prüfen. Außerdem sollten niemals in ein System ungeprüft irgendwelche Daten hineinkommen können. Das kann zu Sicherheitslücken führen.

Die 10Std würden doch quasi aussagen, das ich solange brauche bis das Programm aus meiner Sicht korrekt funktioniert. Dazu zählen dann doch auch Funktionstest um die korrekte Verarbeitung zu überprüfen und die QA-Tests beziehen sich eher auf den produktiven Einsatz? Oder?

Das ist Sache Deiner Zeitplanung. Du sollst in dem Projekt beweisen, dass Du in der Lage bist in 75h ein Problem zu erkennen, einen Plan zur Lösung zu entwerfen und diese Lösung auch umsetzen kannst.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
wie ist klar, ob das überhaupt richtig funktioniert

Naja wir hatten das so definiert, das das Prog halt 2x am Tag läuft. Einmal vor und einmal nach dem Eingang der email um 11 Uhr.

Der gesamte Inhalt der Email incl Header wird einfach eins zu eins in ne Datei geschoben.

Soweit ich weis wird die DTE Datei direkt ins System eingebunden, nach einer Prüfung durch ein weiteres Programm.

Die XML Datei wird in das Mastercard Clearing System über eine Import Schnittstelle eingelesen. Höchstwahrscheinlich mit der XML-Spec die ich erhalten habe. D.h. da wird dann schon bei beiden Dateien überprüft ob diese gültige Formate haben.

Dieses Systeme darf ich auch nicht anfassen, da sie zum produktiv System gehören.

Und eine Sache am Rande. Der Aufbau der Email ist immer gleich. Nur die Werte die extrahiert werden können sich ändern.

Darüber hinaus werden die erzeugten Dateien mit einem Datumstag versehen. Da immer nur eine Email pro Tag kommt, wird keine überschrieben.

bearbeitet von hbspike

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Naja wir hatten das so definiert, das das Prog halt 2x am Tag läuft. Einmal vor und einmal nach dem Eingang der email um 11 Uhr.

Und wie kannst Du sicherstellen, dass es korrekt arbeitet? Email kommt rein, irgendwann wird Programm 1 gestartet, dass die EMail in eine Datei schreibt, irgendwann später wird Programm 2 gestartet um die Ausgabe von Programm 1 zu verarbeiten. Das Programm 2 darf erst gestartet werden, wenn Programm 1 fertig ist. Warum wurden hier überhaupt 2 Programme konzipiert und warum hat man das nicht direkt in ein System umgesetzt. Im Moment ist ein mit den Cronjobs, die ja abhängig sind voneinander, Glaskugel lesen, wann man sie startet. Wenn z.B. die Festplatte von dem System voll läuft, dann kann es sein, dass das erste Programm länger braucht und das zweite dann schon startet, obwohl die Verarbeitung von 1 nicht abgeschlossen ist

Der gesamte Inhalt der Email incl Header wird einfach eins zu eins in ne Datei geschoben.

Warum hier wieder dateibasiert !? Entweder kann ich mich in die Filterkette von Procmail oder auch z.B. Postfix mit einem eigenen System einhängen und kann dort direkt die Email in Header und Inhalt zerlegen ohne dass ich wieder mit Dateien hantieren muss. Man kann auch die Mails via IMAP vom Server ordentlich lesen und verarbeiten.

Und eine Sache am Rande. Der Aufbau der Email ist immer gleich. Nur die Werte die extrahiert werden können sich ändern.

Ich verweise mal auf Cross-Site Scripting weil das in ähnlicher Weise funktioniert. Du kannst doch nicht aller ernstes Daten aus einer EMail lesen und vorher nicht prüfen, ob die EMail korrekt formatiert ist !? Eingaben egal welcher Art dürfen niemals ungeprüft in das System gelangen, d.h. in Deinem Fall musst Du den extrahierten EMail Body prüfen, ob er auch korrekt formatiert ist.

Sorry, aber die Punkte, die ich hier anführe, erwarte ich, dass man sie zum Ende der Ausbildung beherrscht. Alleine das hier Datenstrukturen richtig synchronisiert werden, Ein- & Ausgaben validiert werden und dass man auf entsprechende Frameworks aufbaut um Daten zu verarbeiten. Diese Fummelei mit Dateien ist wirklich überholt und extrem fehleranfällig bzw. wie kann man Fehler im System finden, wenn es aus einzelnen nicht synchronisierten Komponenten besteht. Wenn z.B. der Import der Daten fehl schlägt, weil die Datei fehlerhaft ist, kann ich nicht nachvollziehen, wo der Fehler liegt; hier kann z.B. das Problem entstehen, dass Fehler scheinbar zufällig auftreten (fehlerhafte Synchronisation der Komponenten) und ich diesen Fehler nicht reproduzieren kann. Fachlich sehe ich extrem viele Punkte, bei denen ich nur den Kopf schütteln kann.

Im Normalfall würde man entweder einen Push oder Pull Mechanismus bauen, d.h. wenn die EMail ins System kommt, wird sie verarbeitet und dann der Import in dem anderen System angestoßen oder der Import startet die Verarbeitung. Dies kann man mit Webservices (synchron / asynchron), Remote Procedure Calls lösen, wobei immer definiert werden, was im System passiert. Du hast hier zwei Systeme, die miteinander kommunizieren müssen und es wird wie vor 30 Jahre per Dateiaustausch gemacht.

Man kann das Thema durchaus für ein Projekt verwenden, aber das würde voraussetzen, dass Du Dich von diesen veralteten Strukturen löst und eben mit den passenden Frameworks arbeitest.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Also.

Soweit ich das verstanden habe, wird mailserver technisch sofort nach eingang der email diese auf den server geleitet wird.

Das die ankommenden Daten überprüft werden, sry wie soll ich das machen? Es ist reiner Text, der durch unsere Sicherheitssysteme muss. Ich arbeite in ner Hochsicherheitsfirma und soweit ich das mitbekommen habe kommt nix rein was nit rein darf.

So tief bin ich nicht in der Materie. Aber ich frage morgen mal nach ob schon mal soetwas versucht wurde. Sprich unlautere Überweisungen einzuschleusen. Ich bezweifele aber , das das möglich ist.

Von daher habe ich diesen Sicherheitsaspekt nicht bedacht.

Und ich frage mich wie ich die Korrektheit der eingegangenen Daten prüfen soll. Das einzige was mir einfällt, wäre auf den Aufbau des Strings zu prüfen...

Ich muss kann mir auch irgendwie nicht recht vorstellen wie da was schief laufen sollte. Vielleicht fehlt mir ja Erfahrung in dem Bereich oder ich hab was in der BS verpasst, was ich eigentlich nicht glaube...

Darüber hinaus hab ich heut auch nochmal mit meinem Ausbilder geredet und hab beschlossen das Projekt jetzt doch in Java umzusetzen objektorientiert.

Jetzt muss ich erstma den Antrag umschreiben =)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Ich arbeite in ner Hochsicherheitsfirma und soweit ich das mitbekommen habe kommt nix rein was nit rein darf.

Es geht nicht darum, dass Viren o.ä. ins System kommen, sondern dass Du die Eingaben, die das Programm bekommt prüfen musst und eben entsprechend im Programm reagierst, wenn dort unzulässige Eingaben gemacht wurden.

Ich muss kann mir auch irgendwie nicht recht vorstellen wie da was schief laufen sollte. Vielleicht fehlt mir ja Erfahrung in dem Bereich oder ich hab was in der BS verpasst, was ich eigentlich nicht glaube...

Ein Fehler in Deiner bisherigen Schilderung ist die fehlende Synchronisation zwischen den Systemen, was letztendlich zu undefinierten Zuständen führen kann und damit Fehler produziert.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ich hab gestern mit meinem Ausbilder geredet und beschlossen das Projekt auf Java umzumünzen und es objektorientiert umzusetzen.

Das Problem mit der automatischen Verarbeitung von den Daten ohne Datei ist, das das Verarbeitungsprogramm welches die Verfügungsdatei weiterverarbeitet zwingend eine Datei benötigt. Ausserdem ist die Ablage der Daten auf dem Server Muss-Kriterium der Fachabteilung. Da kann ich also nicht dran rütteln.

Des weiteren wird die Korrektheit der E-Mail von unserem Fraud-System verifiziert. Wie genau, weis ich noch nich. Muss ich mich mit unserem Sicherheitsexperten austauschen. Von daher kann ich die E-Mail ohne zu validieren verarbeiten.

Stellt die Bank fest, dass sie einen Datenträger wegen seiner Beschaffenheit oder der

Beschaffenheit der darauf gespeicherten Daten ganz oder teilweise nicht bearbeiten kann

oder dass Unstimmigkeiten zwischen dem Datenträger und dem Begleitzettel bestehen, so

wird sie den Auftrag nicht ausführen und den Kunden hierüber unverzüglich informieren.

Auszug aus der DTA Spec. Wir als Dienstleister kümmern uns um die Korrektheit der Daten nicht. Ausserdem ist die sendende Stelle verpflichtet zu gewährleisten das die Daten korrekt eingereicht werden (bei uns). Das passiert aber alles vor der E-Mail.

Ich werd mich aber heute nochmal mit meinem Auftraggeber zusammen setzten und diese Punkte erörtern, ob sie da spezielle Wünsche haben, oder ob das irrelevant für mein Projekt ist.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Soderle. Ich hab meinen Projekantrag überarbeitet und dann doch in die Planung das validieren der Daten einbezogen, jedoch kümmer ich mich dann nicht mehr um die validität der xml da ich dann jaxp benutze was mir das xml-objekt aus der xsd baut, die ja gegeben ist.

Projektantrag

Projektbezeichnung (Auftrag/Teilauftrag)

Entwicklung einer Anwendung zur automatisierten Erstellung von Überweisungs- und Verwaltungs-Dateien auf Basis einer „Settlement Advisement“ E-Mail.

1. Kurze Projektbeschreibung

1.1.1. fachlicher Hintergrund

An jedem Bankarbeitstag erhält die BV Zahlungssysteme GmbH (kurz BVZS) von MasterCard eine sogenanntes „Settlement Advisement“ per E-Mail. In diesen „Advisements“ ist die Summe der In- und Auslandsverfügungen deutscher Karteninhaber an Geldautomaten und Points of Sale (EC-Kartenzahlung) im Zahlungssystem Maestro aufgeführt.

Zurzeit werden diese „Advisements“ von einem Mitarbeiter in die zur Weiterverarbeitung benötigten DTA(Datenträgeraustausch)- und XML(Extensible Markup Language)-Formate umgewandelt und auf einem Server zwischengespeichert.

Die DTA-Datei wird erstellt damit die Verfügungen durch das Buchungssystem verarbeitet werden können.

Die XML-Datei wird erstellt damit die BVZS die Daten in ein eigenes Maestro Clearing System importieren kann. Die Daten werden zur Planung von Zahlungsausgängen verwendet, die nach erfolgter Buchung mit den Kontoauszugsdaten verglichen werden.

Da die BVZS verpflichtet ist auch an Feiertagen Verfügungen weiterzuleiten, muss der zuständige Mitarbeiter an diesen Tagen in den Betrieb kommen und die „Advisements“ verarbeiten. Die Anzahl der Feiertage ist über das TARGET2 (Trans-European Automated Real-time Gross Settlement Express Transfer System) –Clearing System definiert und beläuft sich auf ca 5 Tage im Jahr.

Sollte dies nicht geschehen, ist die BVZS Schadensersatzpflichtig (bis 15.000€ pro Fall).

1.1.2. Ziel des Projektes

Ziel des Projektes ist es eine automatisierte Verarbeitungssoftware zu schreiben, welche die täglich auf dem Server eintreffende E-Mail-Datei einliest, die relevanten Daten extrahiert und in Form einer DTA- und XML-Datei für die weiterverarbeitenden Systeme auf dem Server bereitstellt.

Dafür muss die „Advisement“ Datei nach insgesamt 8 bestimmten Feldern gefiltert, die erhaltenen Daten überprüft und für die zu erstellenden Dateien in bestimmter Art und Weise aufbereitet werden.

Sollte die Verarbeitung einer „Advisement“ Datei abbrechen, muss die Anwendung diese Fehler abfangen und die zuständigen Mitarbeiter per E-Mail informieren.

Darüber hinaus sollen erfolgreiche und fehlerhafte Verarbeitungsdurchläufe in Form eines Logs protokolliert werden.

Das Betriebssystem des Servers, auf dem die Anwendung laufen soll, ist Suse 10.3.

1.1.3. Meine Handlungsschritte

Innerhalb dieses Projektes habe ich folgende Handlungsschritte durchzuführen

• Analyse des Auftrages und Erstellung des Pflichtenheftes

• Planung des Projektes

• Evaluierung der Programmiersprache

• Erstellung des DV-Konzepts

• Entwicklung der Anwendung

• Erstellung und Durchführung eines Testfallkatalogs

• Übergabe des Verarbeitungsanwendung

• Erstellung der Dokumentation

2. Projektumfeld

Ich bin Auszubildender zum Fachinformatiker der Fachrichtung Anwendungs-entwicklung bei der BV Zahlungssysteme GmbH (Kurz BVZS) und werde das Projekt in der Abteilung „Softwareentwicklung“ kurz SWE durchführen.

Projektverantwortlicher ist Herr Knappe, Abteilungsleiter der „SWE“.

Anforderungsstelle ist Herr Baußmann und Herr Mannshausen, beides Mitarbeiter im Team Clearing/Settlement der Abteilung „Cards“.

Die Analyse, Planung, Durchführung des Projektes und das Testen der Anwendung werde ich an meinem Arbeitsplatz in der SWE durchführen. Dadurch ist es mir möglich die Anwendung direkt auf dem dafür vorgesehenem Zielsystem zu testen.

3. Projektplanung einschließlich Zeitplanung

3.1. Arbeitspaketeliste

1. Initialisierungsphase 10 Std.

1.1. Analyse des Projektauftrages 3 Std.

1.2. Ist-Analyse 1 Std.

1.3. Soll-Konzept 2 Std.

1.4. Feinkonzepterstellung (Pflichtenheft) 4 Std.

2. Planungsphase 13 Std.

2.1. Arbeitspaketliste und Projektstrukturplan 3 Std.

2.2. Zeitplanung (Gantt-Diagramm) 2 Std.

2.3. Kosten- und Ressourcenplan 2 Std.

2.4. Wirtschaftlichkeitsanalyse 2 Std.

2.5. Evaluierung der Programmiersprache 4 Std.

2.5.1. Informieren über Programmiersprachen 2 Std.

2.5.2. Vorauswahl anhand der Informationen 1 Std.

2.5.3. Nutzwertanalyse 1 Std.

3. Realisierungsphase 20 Std.

3.1. Erstellung des DV-Konzepts 10 Std.

3.1.1. Use-Case Diagramm 3 Std.

3.1.2. Klassendiagramm 3 Std.

3.1.3. Aktivitätsdiagramm 4 Std.

3.2. Programmieren der Anwendung 10 Std.

4. Qualitätssicherung 3 Std.

4.1. Erstellen eines Testfallkatalogs 1 Std.

4.2. Durchführung der Tests 2 Std.

5. Abschlussphase 19 Std.

5.1. Ist-Soll Vergleich 1 Std.

5.2. Erstellen der Installationsanleitung 1 Std.

5.3. Erstellen der Kurzbeschreibung 1 Std.

5.4. Übergabe 1 Std.

5.5. Prozessorientierter Bericht 15 Std.

Pufferzeit: 5 Std

Summe: 70 Std.

3.2. Netzplan

4. Geplante Dokumente zur Projektarbeit

Prozessorientierter Projektbericht inlc.:

- Initialisierungsphase

- Ist-Analyse

- Soll-Konzept

- Pflichtenheft

- Planung

- Projektstrukturplan

- GANTT-Diagramm

- Zeit-, Kosten- und Ressourcenplan

- Wirtschaftlichkeitsanalyse

- Nutzwertanalyse (Programmiersprache)

- Realisierung

- Use-Case Diagramm

- Klassendiagramm

- Aktivitätsdiagramm

- Dokumentierter Code

- Qualitätssicherung

- Testfallkatalog

- Abschluss

- Ist-Soll Vergleich

- Installationsanleitung

- Kurzbeschreibung

- Übergabe-Protokoll

- Zusätzliche Unterlagen zum Projektbericht:

- Besprechungsprotokolle

- Aufbau und Spezifikation der DTA-Datei

Das bereitstellen von Dateien belasse ich so, da es genau so gewollt ist von der FA.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

hallöchen nochmals.

Ich hab am Wochenende mit meinem Berufsschullehrer geredet und er hat mir ein paar Tipps gegeben:

- Ihr technisches Umfeld /Entwicklungssystem kommt zu kurz

- die Nutzwertanalyse für die Wahl der Programmiersprache scheint mir "mit Kanonen auf Spatzen geschossen" zu sein. Die NWA dient als Ergänzung der (monetären) Wirtschaftlichkeitsplanung/Analyse Ihres Produkts/Projekts.

- Der Testfallkatalog wird wesentlich früher erstellt.

Zu Punkt 1:

Was soll ich da genau beschreiben? Mit was (sprich Laptop Win XP, etc...) ich das Projekt umsetzte?

Zu Punkt 2:

Das ist verständlich, aber den Antrag den er gesehen hat war noch der alte SA-Antrag. Sollte passen in meinem neuen.

zu Punkt 3:

Jetzt echt? Wann wir der Erstellt? In der Planungphase? Bei jedem Antrag den ich bis jetzt gesehen habe is das als vorletzter Punkt aufgeführt.

Wer eine idee?

mfg Chris

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung