<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30092069</id><updated>2011-08-18T04:48:50.639-07:00</updated><title type='text'>servicemix</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://servicemix.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://servicemix.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>vamsi</name><uri>http://www.blogger.com/profile/16483449708020395347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/6580/2940/1600/133464.0.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30092069.post-115277461289106977</id><published>2006-07-12T23:55:00.000-07:00</published><updated>2006-07-13T00:10:12.900-07:00</updated><title type='text'>Hub and spoke vs ESB</title><content type='html'>Hub and spoke and ESB are two architectural styles used in the message based applications space.&lt;br /&gt;Here are some distinct differences that distinguish a Hub and Spoke from an ESB based architecture&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HUB and Spoke&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Central point for availing services like trasformation, routing and transaction management.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HUB (usually a message broker) is a monolithic piece of software.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Capabilities of the HUB cannot be used as pluggable components in another HUB.&lt;/li&gt;&lt;li&gt;Services provided by the HUB and the interfacing between these services is not standart based and is usually proprierty standards driven, leading to a risk of vendor locking.&lt;/li&gt;&lt;li&gt;The hub, being a monolithic piece of software can be used only in a 'all or nothing' mode.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;ESB&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Central point for availing services like trasformation, routing and transaction management.&lt;/li&gt;&lt;li&gt;ESB provided services are themselves distributed in the sence that different components come and play their role in providing the infrastructure services promised by the ESB.&lt;/li&gt;&lt;li&gt;Specific capabilities of an ESB can be plugged into other ESBs to allow the user to get the benifit of mix and match of services.&lt;/li&gt;&lt;li&gt;Services provided by ESB, deployement and installation of these services and interfacing b/n these services is standard based(JBI).&lt;/li&gt;&lt;li&gt;ESB user can choose which services need to installed and used and which services they want to leave per instance of the ESB.&lt;/li&gt;&lt;/ol&gt;References&lt;br /&gt;1.&lt;a href="http://dotnet.sys-con.com/read/121831_3.htm"&gt;http://dotnet.sys-con.com/read/121831_3.htm &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30092069-115277461289106977?l=servicemix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://servicemix.blogspot.com/feeds/115277461289106977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30092069&amp;postID=115277461289106977' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default/115277461289106977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default/115277461289106977'/><link rel='alternate' type='text/html' href='http://servicemix.blogspot.com/2006/07/hub-and-spoke-vs-esb.html' title='Hub and spoke vs ESB'/><author><name>vamsi</name><uri>http://www.blogger.com/profile/16483449708020395347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/6580/2940/1600/133464.0.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30092069.post-115226651110826377</id><published>2006-07-07T02:22:00.000-07:00</published><updated>2006-07-12T03:42:22.713-07:00</updated><title type='text'></title><content type='html'>Understanding the 'soap-binding' (&lt;a href="http://www.servicemix.org/site/soap-binding-example.html"&gt;http://www.servicemix.org/site/soap-binding-example.html&lt;/a&gt;) example&lt;br /&gt;&lt;br /&gt;The soap-binding example aims to demonstrate how one can use the &lt;a href="http://www.servicemix.org/site/servicemix-http.html"&gt;Servicemix-http&lt;/a&gt; and &lt;a in="" above="" excerpt="" the="" href="http://www.servicemix.org/site/servicemix-jsr181.html"&gt;servicemix-jsr181&lt;/a&gt; components  to invoke a pojo object as a web service over HTTP.&lt;br /&gt;&lt;br /&gt;Here is a breakdown of what happens when you hit the 'send' button on the client.html page.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6580/2940/1600/Soap-client-request.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6580/2940/320/Soap-client-request.jpg" alt="SOAP REQEST" border="0" /&gt;&lt;/a&gt;&lt;ol&gt;&lt;li&gt; When send button is clicked, a javascript function(send()) is invoked.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The javascript function submits an Ajax request to the http endpoint deployed using the serviceunit(binding-su.zip) on the Servicemix-http component.The soap request present in the textfield on the left hand side is sent a parameter to Ajax request.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The Httpendpoint  receives the http+soap request and sends the request to the 'proxied' pojo endpoint(&lt;span style="font-size:85%;"&gt;proxied endpoint references are shown in bold in the excerpt below&lt;/span&gt;) deployed using engine-su.zip over the NMR.&lt;/li&gt; &lt;br /&gt;&lt;span style="font-size:78%;"&gt;Here is the excerpt from the xbean.xml file under&lt;br /&gt;{Serivemix installation directory}\servicemix-3.0-M1\examples\soap-binding\src\components\soap&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;http:endpoint service="&lt;span style="font-weight: bold;"&gt;demo:simple-service&lt;/span&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;             endpoint="&lt;span style="font-weight: bold;"&gt;simple-service&lt;/span&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                role="consumer"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                locationURI="http://localhost:8192/Service/"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                defaultMep="http://www.w3.org/2004/08/wsdl/in-out"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                soap="true" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;li&gt;The servicemix-jsr181 receives the request from the NMR and invokes the 'SimpleService' pojo' 'ping' method.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The 'SimpleService' returns the response to the 'ping' method and servicemix-jsr181 sends to response back the Httpendpoint over the NMR.&lt;/li&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Here is the excerpt of the implemenation for the ping method&lt;br /&gt;public PingResponse ping(PingRequest request) {&lt;br /&gt;     PingResponse response = new PingResponse();&lt;br /&gt;     response.setMessage("&lt;span style="color: rgb(255, 0, 0);"&gt;Ping&lt;/span&gt;: " + request.getMessage());&lt;br /&gt;     return response;&lt;br /&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;This method prefixes a "Ping:" to request recieved and sends it back as the response&lt;/span&gt;&lt;br /&gt;&lt;li&gt;The Servicemix-http sends the response back the browser instance from which the ajax request was sent.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The browser invokes java script function that sets the response field value to the response received.&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6580/2940/1600/Soap-client-response.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6580/2940/400/Soap-client-response.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are some subtle points to note here&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;The proxied endpoint is configured using the service="demo:simple-service" and       endpoint="simple-service" attributes in the http:endpoint configuration in the binding-su's xbeans.xml file. The values demo:simple-service and simple-service point to service name and endpoint name of the pojo endpoint configuration( service="demo:simple-service"  endpoint="simple-service" attributes of   jsr181:endpoint  configuration) in engine-su's xbean.xml file.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The Servicemix-http and servicemix-jsr181 components are installed at runtime and not using the servicemix.xml file under [servicemix-home]\examples\soap-binding folder.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30092069-115226651110826377?l=servicemix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://servicemix.blogspot.com/feeds/115226651110826377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30092069&amp;postID=115226651110826377' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default/115226651110826377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default/115226651110826377'/><link rel='alternate' type='text/html' href='http://servicemix.blogspot.com/2006/07/understanding-soap-binding-httpwww.html' title=''/><author><name>vamsi</name><uri>http://www.blogger.com/profile/16483449708020395347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/6580/2940/1600/133464.0.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30092069.post-115097777505492113</id><published>2006-06-22T03:16:00.000-07:00</published><updated>2006-07-02T20:52:15.856-07:00</updated><title type='text'>Endpoints,Service Units and Components</title><content type='html'>Servicemix allows deployments in the one of the two following modes&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Standard JBI mode&lt;/li&gt;&lt;li&gt;Lightweightmode&lt;/li&gt;&lt;/ul&gt;Refer &lt;a href="http://docs.codehaus.org/display/SM/What+is+a+lightweight+component"&gt;this link&lt;/a&gt; to get to know what these modes mean.&lt;br /&gt;We will look at the Standard JBI way of installing components in this post.&lt;br /&gt;The &lt;a href="http://www.jcp.org/en/jsr/detail?id=208"&gt;JBI specification&lt;/a&gt; uses the following terminology Service Unit, Service Assembly, Component,Endpoint and Service.One needs to understand  clearly what  each of them mean, so here is some help&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Component:-- The primary purpose of the components in an ESB is to let the services interact with the NMR and vice versa.The closest analogy that I can draw on the interaction between the component and heart of the ESB, the NMR is that of the device driver and the CPU in a computer. Just as the Device driver is responsible for understanding what action what performed on and what data is provided by the connected device(say a floppy disk), the component is responsible for allowing the NMR to interface with the external of internal service. &lt;ol&gt; &lt;span style="font-size:85%;"&gt;(For example the &lt;a href="http://servicemix.org/site/servicemix-jms.html"&gt;Servicemix-jms&lt;/a&gt; component is responsible for reading messages from /adding messages to a JMS queue to which is configured.)&lt;/span&gt;&lt;/ol&gt;&lt;/li&gt;Components can be of one of the two types following types &lt;ol&gt;&lt;li&gt; Service Engines&lt;/li&gt; &lt;li&gt;Binding Components( All the references to 'Components' going forward in this post are references to Binding Components)&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;li&gt;Endpoints:-- Components, as explained earlier, donot provide services or data by themselves.They allow the NMR to interface with the services.&lt;br /&gt;Services that need to be accessed by the ESB are accessed as endpoints.Endpoint is how a service is addressed by the ESB.&lt;/li&gt;Using the same analogy that we have used earlier, the endpoint is the location of the device(printer or floppy drive) that is to be accessed by the CPU using the device driver&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Service:- Service is the actual business entity the performs the desired function. In our analogy, the service is the printer or the floppy drive that actually does the work or printing or providing data. Example for a service can be a web service or a EJB component that needs to be accessed by ESB. A service is accessed by the ESB using the address specified in the endpoint. In service mix endpoint information can be expressed in a xbean.xml file. (Refer &lt;a href="http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-jms/src/test/resources/xbean/xbean.xml"&gt;this &lt;/a&gt;link for a sample xbeans.xml file)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Service Unit: Service units provide information about the services and their endpoints to the component.In our analogy, service units deploying a service unit is  similar configuring the device type,make and location information for the driver. In the context of components and service units,note the following&lt;br /&gt;&lt;ol style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-size:130%;"&gt;Components are &lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-style: italic;"&gt;installed&lt;/span&gt;&lt;/span&gt;&lt;/ol&gt;&lt;ol&gt;&lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt; Service units are &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;span style="font-size:130%;"&gt;deployed&lt;/span&gt; &lt;/span&gt;on to installed components .&lt;/ol&gt; The components on which service units are deployed are the called target components for the respective service units.   &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Service Assembly: Service assembly is how several service units are packaged and deployed on to target components.The service assembly is a archive file that contains  a JBI.xml file that provides information about the service units and their respective target components.Here is an excerpt of the JBI.xml file that is used in the service assembly. [&lt;span style="color: rgb(255, 0, 0);"&gt;target&lt;/span&gt;]&lt;br /&gt;[artifacts-zip]sample-su.zip[/artifacts-zip]&lt;br /&gt;[&lt;span style="color: rgb(255, 0, 0);"&gt;component-name&lt;/span&gt;]servicemix-http[/component-name][/&lt;span style="color: rgb(255, 0, 0);"&gt;target&lt;/span&gt;] (* &lt;span style="font-size:78%;"&gt;I have used [] instead of &lt;&gt; to have text ignored by blogger&lt;/span&gt;)&lt;br /&gt;&lt;/li&gt; in this excerpt you can see that service unit sample-su.zip is being deployed on servicemix-http component( the target).&lt;br /&gt;&lt;/ol&gt;&lt;font&gt;&lt;br /&gt;Now that we have the jargon clarified, lets look at what one actually will have to do to make a service accessible using servicemix?&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;Define your service as an endpoint in an xbeans.xml file(Refer the XBean deployment section of  &lt;a href="http://servicemix.org/site/servicemix-jms.html"&gt;http://servicemix.org/site/servicemix-jms.html&lt;/a&gt;  for a sample of endpoint configuration for JMS)&lt;/li&gt;&lt;li&gt;Create a service unit by adding the xbeans.xml file to a zip file(say serviceunit.zip).&lt;/li&gt;&lt;li&gt;Create a  jbi.xml as specified in step 2 under Manually Creating a Service Unit and Service Assembly section &lt;a href="http://docs.codehaus.org/display/SM/Deploying+Lightweight+Components+Tutorial"&gt;in this article&lt;/a&gt;.Create a service assembly by adding the jbi.xml created,serviceunit.zip created in step 2 (above) to a zip file(say serviceassembly.zip)&lt;/li&gt;&lt;li&gt; Place the serviceassembly.zip in the deploy directory under {&lt;span style="font-style: italic;"&gt;servicemix home&lt;/span&gt;}/bin directory (Note that servicemix-jms component will have to installed before you deploy the service assembly)&lt;/li&gt;&lt;li&gt;Check for the endpoint deployment using the JMX console.A node  is displayed as added under the endpoint node.&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ol&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt; Your service is now accessible to other services and components that are interfacing with service mix.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30092069-115097777505492113?l=servicemix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://servicemix.blogspot.com/feeds/115097777505492113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30092069&amp;postID=115097777505492113' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default/115097777505492113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30092069/posts/default/115097777505492113'/><link rel='alternate' type='text/html' href='http://servicemix.blogspot.com/2006/06/endpointsservice-units-and-components.html' title='Endpoints,Service Units and Components'/><author><name>vamsi</name><uri>http://www.blogger.com/profile/16483449708020395347</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/6580/2940/1600/133464.0.jpg'/></author><thr:total>10</thr:total></entry></feed>
