Thursday, October 11, 2012

SOA

SOA the Service Oriented Architecture, is all over my mind. To me as a developer cum designer it means a lot. It is changing the paradigm of how we used to program vs how it is empowering us to design applications in a newer way; so there is shift in terms of writing lots of code to writing lesser code and more configuration.

About Service-oriented_architecture

Differences between SOA and ESB

Here is the new Jargon/terminology I am learning them, keeping abreast of the technology:

OSGi: Features is a collection of Bundles (.jar) but allows export and import of packages

OSGi framework implementations: Felix, Equinox, Knopflerfish, Concierge

Maven: Great support to build OSGi based artifacts

Enterprise Integration Patterns (EIP): 65 to date? Popular ones are listed here:? Read popular book by Gregor Hohpe and Bobby Woolf

Enterprise Service Bus (ESB): Supports communication mechanism between various protocols, file formats, languages. ServiceMix, Fuse, Mule.
Fuse ESB kernel is based on Karaf, an OSGi based run-time/container
Apache Felix: OSGi framework

Routing Engine: Apache Camel

Apache CXF: Supports to host webservices both SOAP, RESTful ways in Spring DM file or in the blueprint

End points: They could be any resource such as specific folder, Webservice, JMS Queues/Topics


Components: Components offer the interface to technologies. JMS, JDBC, FTP, HTTP and many more technologies such as from third parties like amazon cloud services. They need to be configured once in the application.

Processors:In this Java class need to implement Processor interface and override process(Exchange exchange) method. In the route, by default process() is called.

Beans: POJOs are referred to as Beans here. In the route you need to specify which method to invoke

JMS implementation: using Apache/Fuse MQ on the fly by declaring in the Spring file

Blueprint: ?

DSL: Domain specific language to wire Endpoints with/without Processors

Fuse IDE:  supporting canvas based drag and drop EIPs, wiring them

Fuse ESB:  kernel provides native OS integration, so the the application life cycle is bound to the OS

Apache Karaf: Powerful, light weight, OSGi based runtime container for deploying and managing bundles

Exchange: within the context of the Route, it is the message that flows in the route which could be processed by the Processor or to move it from one endpoint to other

Camel Architecture: from http://camel.apache.org/architecture.html


Camel's run-time system can be included anywhere in the JVM environment, including web container (e.g. Tomcat), JEE application server (e.g. IBM WebSphere AS), OSGi container, or even in the Cloud.

No comments: