Top-Fragen
Zeitleiste
Chat
Kontext

Document Message

Entwurfsmuster in der Softwarearchitektur und -entwicklung aus der Kategorie Nachrichtenerzeugung im Werk Enterprise Integration Patterns von Gregor Hohpe und Bobby Woolf Aus Wikipedia, der freien Enzyklopädie

Remove ads

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

Erläuterung

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

Wen eine Anwendung Daten an eine andere übermitteln möchte, könnte sie das mit einem Dateitransfer oder einer gemeinsamen Datenbank bewerkstelligen. Diese Ansätze haben allerdings ihre Defizite. Die Übertragung funktionierte mit einer Nachrichtenübermittlung möglicherweise besser. Eine Datenstruktur kann mit einer Dokumentnachricht (Document Message) zuverlässig zwischen Anwendungen übertragen werden.

Remove ads

Verwendungsbeispiel

Zusammenfassung
Kontext

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

package org.wikipedia.de.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 DocumentMessageSample {

	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 ***" );
		final PlainDocument doc = new PlainDocument( text ); // Document

		cc.setName( "Document Message Sample" );
		cc.addRoutes( new RouteBuilder() {

			@Override
			public void configure() {

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

				from( "direct:receiver" ) // EIP Receiver
						.log( "Receiving..." )
						.process().message( m -> print( "Receiving Document", m ) )
						.setId( "Receiver" );
			}
		} );
		cc.start();
		Thread.sleep( 2000 );
		cc.stop();
		cc.close();
	} // main()

	static void print( final String process, final Message m ) {
		try {
			final PlainDocument doc = (PlainDocument) m.getBody(); // Document packed in Message
			out.printf( "%s %s: %s%n", process, m, doc.getText( 0, doc.getLength() ) );
		}
		catch ( final BadLocationException e ) {
			e.printStackTrace();
		}
	} // print()

} // DocumentMessageSample

Ausgabe

...
11:55:00.042 [Camel (Document Message Sample) thread #0 - timer://start] INFO  Sender - Sending...
Sending Document Message: *** containing document content ***
11:55:00.045 [Camel (Document Message Sample) thread #0 - timer://start] INFO  Receiver - Receiving...
Receiving Document Message: *** containing document content ***
...
Remove ads

Verwandte Muster

Andere Muster aus der Kategorie Nachrichtenaufbau (Message Construction) sind Message, Command Message, Event Message, Request-Reply, Return Address, Correlation Identifier, Message Sequence, Message Expiration und Format Indicator.

Weiter verwandte Muster sind Remote Procedure Invocation, File Transfer, Guaranteed Delivery, Point-to-Point Channel, Publish-Subscribe Channel, Request-Reply, Shared Database.

Literatur

  • 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 (englisch, 480 S.).
  • 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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads