„Document Message“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
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
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
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
Weblinks
- Gregor Hohpe, Bobby Woolf: Document Message. Messaging Patterns » Message Construction. In: Enterprise Integration Patterns. Gregor Hohpe, Bobby Woolf, abgerufen am 6. Dezember 2020 (englisch).
Einzelnachweise
- ↑ 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.).
- ↑ N.N.: Java DSL. In: Apache Camel User Manual. Apache Software Foundation, abgerufen am 6. Dezember 2020 (englisch).