Database Reference
In-Depth Information
EDN in the SOA stack - a practitioner's approach
We have to admit that for SOA Suite developers and architects (especially from the old
BPEL school), the Oracle Event Processing platform could be a bit outlandish. This could
be the reason why some people oppose service-oriented and event-driven architecture, or
see them as different architectural approaches. The situation is aggravated by the abund-
ance of the acronyms flying around such as EDA EPN, EDN, CEP, and so on. Even here,
we use EPN and EDN interchangeably, as Oracle calls it event processing, and generically,
it is used in an event delivery network.
The main argument used for distinguishing SOA and EDN is that SOA relies on the applic-
ation of a standardized contract principle, whereas EDN has to deal with all types of
events. This is true, and we have mentioned this fact before. We also mentioned that we
have to declare all the event parameters in the form of key-value pairs with their types in
<event-type-repository> ; this is perfectly aligned with what we presented in
Chapter 5 , Maintaining the Core - the Service Repository , as a lightweight SOA taxonomy
and visualized as possible implementation of the Message Header's Object Context. We
also mentioned that the reference to the event type from the event type repository is not
mandatory for a standard EPN adapter, but it's essential when you are implementing a cus-
tom inbound adapter in the EPN framework, which is an extremely powerful Java-based
feature. As long as it's Java, you can do practically everything! Just follow the program-
ming flow explained in the Oracle documentation; see the EP Input Adapter Implementa-
tion section:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.bea.wlevs.ede.api.EventProperty;
import com.bea.wlevs.ede.api.EventRejectedException;
import com.bea.wlevs.ede.api.EventType;
import com.bea.wlevs.ede.api.EventTypeRepository;
import com.bea.wlevs.ede.api.RunnableBean;
import com.bea.wlevs.ede.api.StreamSender;
import com.bea.wlevs.ede.api.StreamSink;
import com.bea.wlevs.ede.api.StreamSource;
import com.bea.wlevs.util.Service;
import java.lang.RuntimeException;
public class cargoBookingAdapter implements RunnableBean,
StreamSource, StreamSink
Search WWH ::




Custom Search