Payload abstraction

Payload abstraction

Payload abstraction is the ability to send a payload (the document or request object sent to a Service) without regard to what protocol might be configured.

This architectural abstraction is made necessary due to Transport/protocol abstraction, which is the capability of switching protocols at runtime through the use of a configuration file. The fact that different protocols allow different data types may lead to problems in payload definition. That is, a system must either determine at design time all possible service protocol implementations that might be used by their service for all time, or a payload must be designed with “least common denominator” data types. For example, a Java based direct call Service Protocol implementation would likely allow any Java type to be sent. A JMS Service Protocol implementation might allow only a subset of these types. An XML-RPC Service Protocol implementation might allow an even more limited subset of types. In order to dynamically switch from one protocol to another, the payload design must implement only the simplest types which all protocols will accept without error, or use Payload Abstraction.

A description of example implementations of Payload Abstraction, from the elemenope User Guide:

Doppelganger extension - Doppelganger is an extension to the elemenope Framework which requires an XML schema definition for the payload. This schema is used to dynamically generate Java classes which may be used to marshall data to XML and back. The payload is the generated XML. In this manner, all protocols (at least all protocols implemented at this time) may pass the marshalled XML without error. The Services and their configured Operation implementations only ever see the objects of the classes generated by Doppelganger. Doppelganger uses the Castor Project Open Source data binding framework.

RosettaType - RosettaType is a project which defines a generic data structure and several protocol and language specific RosettaEngines. These RosettaEngines translate an instantiated object of any given data type to the RosettaType structure and back to the original object, i.e. from POJO2 to RosettaType and back to POJO. RosettaType provides the most efficient mechanism for payload abstraction, as the RosettaEngine implementation in use for a particular protocol will only translate or “roll out” datatypes which are not supported in that protocol. All other datatypes within the generic payload will be left as-is for simple passage. The RosettaType implementation is not complete. Multiple protocols have been implemented, and are currently being reviewed. When integrated into the elemenope Framework, each ser- vice protocol implementation will gain a class extended from the base implementation to handle the RosettaType functionality. This extension of the base implementation class will allow a user to utilize the simpler form of the service protocol implemen- tation, and only utilize the RosettaType form if needed. RosettaType is maintained by createTank. The RosettaType project is Free and Open Source [FOSS] .

When completely implemented, the RosettaType will likely be the preferred method for payload abstraction, as it offers the most natural form, not requiring any design fore-thought.

ource

elemenope User Guide

ee also

elemenope

External links

* [http://elemenope.org/ elemenope home page]
* [http://elemenope.org/doc/userguide/userguide-1.1.pdf elemenope User Guide]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Network Abstraction Layer — The Network Abstraction Layer (NAL) is a part of the H.264/AVC Video Coding Standard. The main goal of the H.264/AVC NAL is the provision of a network friendly video representation addressing conversational (video telephony) and non… …   Wikipedia

  • Elemenope — Infobox Software name = elemenope caption = elemenope developer = createTank latest release version = 5.1 latest release date = August, 2006 operating system = Cross platform genre = SOA Service oriented architecture * Software framework license …   Wikipedia

  • Einstein (programming language) — Introduction Einstein is an open source forth generation programming language (4GL) written on top of the Deesel 3GL programming language. It is a flow based programming language supporting message based constructs such… …   Wikipedia

  • OSI model — 7. Application layer NNTP  · SIP  · SSI  · DNS  · FTP  · Gopher  · …   Wikipedia

  • stage design — Aesthetic composition of a dramatic production as created by lighting, scenery, costumes, and sound. While elements such as painted screens and wheeled platforms were used in the Greek theatre of the 4th century BC, most innovations in stage… …   Universalium

  • Distributed data flow — An illustration of the basic concepts involved in the definition of a distributed data flow. Distributed data flow (also abbreviated as distributed flow) refers to a set of events in a distributed application or protocol that satisfies the… …   Wikipedia

  • Gzip — infobox file format name = gzip extension = .gz mime = application/x gzip owner = Jean Loup Gailly and Mark Adler genre = data compression website = http://www.gzip.org/Infobox Software name = gzip developer = GNU Project latest release version …   Wikipedia

  • Musical Instrument Digital Interface — MIDI (Musical Instrument Digital Interface, IPAEng|ˈmɪdi) is an industry standard protocol that enables electronic musical instruments, computers, and other equipment to communicate, control, and synchronize with each other. MIDI allows computers …   Wikipedia

  • Spatial Reuse Protocol — is a networking protocol developed by Cisco. It is a MAC layer (sublayer of layer 2) protocol for ring based packet internetworking that is commonly used in optical fiber ring networks. Ideas from the protocol are reflected in parts of the IEEE… …   Wikipedia

  • Internet socket — In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter process communication flow across an Internet Protocol based computer network, such as the Internet. The term Internet sockets is also used as a… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”