„Document Message“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Seiten korrigiert, Ref rauf
Zeile 1: Zeile 1:
[[Datei:Enterprise Integration Patterns - Document Message icon.gif|x98px|rechts|gerahmt|Symbol für Entwurfsmuster ''Document Message'' (Dokumentnachricht)]]
[[Datei:Enterprise Integration Patterns - Document Message icon.gif|x98px|rechts|gerahmt|Symbol für Entwurfsmuster ''Document Message'' (Dokumentnachricht)]]


'''Document Message''' (von [[Englische Sprache|englisch]] {{lang|en|''document''|de=Dokument}} und {{lang|en|''message''|de=Nachricht}}) ist ein [[Entwurfsmuster]] in der [[Softwarearchitektur]] und [[Softwaretechnik|-entwicklung]] aus der Kategorie ''Nachrichtenerzeugung'' im Werk ''Enterprise Integration Patterns'' von [[Gregor Hohpe]] und [[Bobby Woolf]].<ref name="EIP-Book" />
'''Document Message''' (von [[Englische Sprache|englisch]] {{lang|en|''document''|de=Dokument}} und {{lang|en|''message''|de=Nachricht}}) ist ein [[Entwurfsmuster]] in der [[Softwarearchitektur]] und [[Softwaretechnik|-entwicklung]] aus der Kategorie ''Nachrichtenerzeugung'' im Werk ''Enterprise Integration Patterns'' von [[Gregor Hohpe]] und [[Bobby Woolf]].<ref name="EIP-Book" />


== Ziel ==
== Ziel ==
Zeile 107: Zeile 107:
== Einzelnachweise ==
== Einzelnachweise ==
<references>
<references>

<ref name="EIP-Book">{{Literatur |Autor=[[Gregor Hohpe]], [[Bobby Woolf]] |Titel=Enterprise Integration Patterns |TitelErg=Designing, Building and Deploying Messaging Solutions |Hrsg=[[Addison-Wesley]] |Auflage=1 |Verlag=Addison-Wesley |Datum=2003-10-10|Sprache=en |Seiten=82-84 |Umfang=480 |ISBN=978-0321200686}}</ref>


<ref name="Camel-Java-DSL">{{Internetquelle |autor=N.N. |url=https://camel.apache.org/manual/latest/java-dsl.html |titel=Java DSL |werk=Apache Camel User Manual |hrsg=[[Apache Software Foundation]] |abruf=2020-12-06 |sprache=en }}</ref>
<ref name="Camel-Java-DSL">{{Internetquelle |autor=N.N. |url=https://camel.apache.org/manual/latest/java-dsl.html |titel=Java DSL |werk=Apache Camel User Manual |hrsg=[[Apache Software Foundation]] |abruf=2020-12-06 |sprache=en }}</ref>

Version vom 6. Dezember 2020, 22:22 Uhr

Symbol für Entwurfsmuster Document Message (Dokumentnachricht)

Document Message (von englisch document ‚Dokument‘ und message ‚Nachricht‘) ist ein Entwurfsmuster in der Softwarearchitektur und -entwicklung aus der Kategorie Nachrichtenerzeugung im Werk Enterprise Integration Patterns von Gregor Hohpe und Bobby Woolf.[1]

Ziel

Übermitteln von Daten mit Hilfe einer Document Message (Dokumentnachricht)

Eine Anwendung möchte Daten an eine andere übermitteln. Sie könnte das mit einem Dateitransfer oder einer gemeinsamen Datenbank bewerkstelligen, aber diese Ansätze haben ihre Defizite. Die Übertragung könnte besser mit Nachrichtenübermittlung funktionieren.

Frage

Wie kann Nachrichtenübermittlung genutzt werden, um Informationen und Daten zwischen zwei Anwendungen zu übertragen?

Antwort

Verwende eine Dokumentnachricht (Document Message), um eine Datenstruktur zuverlässig zwischen Anwendungen zu übertragen.

Beispiel

Im folgenden Beispielcode in Java wird die DSL von Apache Camel[2] verwendet, das auf Enterprise Integration Patterns basiert.

package name.broser.gerold.eip.message.construction;

import static java.lang.System.out;

import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
import javax.swing.text.StringContent;

import org.apache.camel.Message;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

class DocumentMessage {

    private static DefaultCamelContext cc = new DefaultCamelContext();

    public static void main( final String... args ) throws Exception {

        final StringContent text = new StringContent();
        text.insertString( 0, "**** containing document content ****" );
        final PlainDocument doc = new PlainDocument( text ); // EIP Document

        transmit( doc );

        cc.setName( "DocumentMessage" );
        cc.start();
        Thread.sleep( 5000 );
        cc.stop();
        cc.close();
    } // main()

    private static void transmit( final PlainDocument doc ) throws Exception {

        cc.addRoutes( new RouteBuilder() {

            @Override
            public void configure() {

                from( "timer:start?repeatCount=1" )
                        .process().message( m -> m.setBody( doc ) )
                        .process().message( m -> print( "Sending Document", m ) )
                        .log( "Sending..." )
                        .to( "direct:receive" ) // EIP Sender (Camel Producer)
                        .setId( "send" );

                from( "direct:receive" ) // EIP Receiver (Camel Consumer)
                        .log( "Receiving..." )
                        .process().message( m -> print( "Receiving Document", m ) )
                        .setId( "receive" );
            }
        } );
    } // transmit()

    private static void print( final String process, final Message m ) {

        try {
            out.printf( "%s %s: %s%n", process, m, ((PlainDocument) m.getBody()).getText( 0, 37 ) ); // EIP Document packed in Mezzage
        }
        catch ( final BadLocationException e ) {
            e.printStackTrace();
        }
    } // print()

} // DocumentMessage

Ausgabe

  ...
  Sending Document-Message: **** containing document content ****
  [age) thread #1 - timer://start] send          INFO  Sending...
  [age) thread #1 - timer://start] receive       INFO  Receiving...
  Receiving Document-Message: **** containing document content ****
  ...

Literatur

Einzelnachweise

  1. Gregor Hohpe, Bobby Woolf: Enterprise Integration Patterns. Designing, Building and Deploying Messaging Solutions. Hrsg.: Addison-Wesley. 1. Auflage. Addison-Wesley, 2003, ISBN 978-0-321-20068-6, S. 143–145 (englisch, 480 S.).
  2. N.N.: Java DSL. In: Apache Camel User Manual. Apache Software Foundation, abgerufen am 6. Dezember 2020 (englisch).