<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JavaPulse &#187; soa</title>
	<atom:link href="http://javapulse.net/tag/soa/feed/" rel="self" type="application/rss+xml" />
	<link>http://javapulse.net</link>
	<description>a finger on the pulse of the freelance Java&#0153; market in the Netherlands</description>
	<lastBuildDate>Sat, 19 Jun 2010 11:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Spaced-Based Architecture by GigaSpaces</title>
		<link>http://javapulse.net/2008/04/22/spaced-based-architecture-by-gigaspaces/</link>
		<comments>http://javapulse.net/2008/04/22/spaced-based-architecture-by-gigaspaces/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 15:59:05 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[gigaspaces]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://javapulse.net/2008/04/22/spaced-based-architecture-by-gigaspaces/</guid>
		<description><![CDATA[Lately, I&#8217;ve been researching Space-based Architecture as provided by Gigaspaces. I am especially interested in this because I believe that scalability will become a more and more prominent issue as applications deal with an increasing amount of data. 
In a service oriented architecture, the services are loosely coupled to each other with the promise of [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I&#8217;ve been researching Space-based Architecture as provided by Gigaspaces. I am especially interested in this because I believe that scalability will become a more and more prominent issue as applications deal with an increasing amount of data. </p>
<p>In a service oriented architecture, the services are loosely coupled to each other with the promise of reusability and improved performance in a distributed environment. However, while services are usually stateless, a business process (use case) often span more than one service, which communicate via a centralized component: a database or a messaging provider. In a tier-based architecture, problems with scalability may negate any improvements made by the distribution of services. Gigaspaces provides a solution in the form of XAP (eXtreme Application Platform), an application server built to enable linear scalability. Linear scalability means a one-to-one ratio between machines added to the deployment and the performance gained, making scaling predictable in costs and effort.</p>
<p>GigaSpaces argues that tier-based architecture is the nemesis to linear scalability. In fact, the architecture itself is the bottleneck, not unoptimized component. This is because in a tier-based architecture, as scability patches are introduced, the communication between the tiers become more complicated and expensive. The complex interaction between tiers and between physical machines in the deployment cause problems with latency and data consistency. Possible problems with tier-based architecture are bottlenecked access to the database, bottlenecked access to a centralized messaging provider, messaging overhead, network latency, inefficient clustering, and unreliable failover recovery. GigaSpaces addresses each of those problems by providing a platform that enables space-based architecture. </p>
<p>The whitepaper, &#8220;Scaling Spring Applications in 4 Easy Steps&#8221;, introduces a four-step approach to achieve the implementation of a space-based architecture.</p>
<p>1) Virtualizing Data<br />
In the first step, virtualizing the database using the IMDG (In-Memory Data Grid) reduces I/O latency to the database. The IMDG (In-Memory Data Grid) provides consistency, availability, and reliability of application state and can be made as reliable as needed &#8211; from keeping in memory for fast access, to asynchonous batch writing to database, to direct write/read. It is not only more efficient, but more reliable than a database, by providing failover recovery and memory usage monitor to prevent memory crashes, which helps in tracing memory problems. Although virtualizing the database reduces I/O latency, the need for each tier to access a centralized messaging provider and the need for two-phased commit of distributed transactions when using a centralized transaction manager are still bottlenecks in the system.</p>
<p>2) Virtualizing Messaging<br />
In the second step, virtualized messaging is achieved by creating a data bus to consolidate messaging and data in the same place. The data bus is implemented in the IMDG as a JMS façade acting as the messaging provider. This requires minimal changes to applications using the JMS API. Data affinity, or colocating related data, removes the need for a distributed transaction manager.</p>
<p>3) Virtualizing Application<br />
The third step towards a space-based architecture is to create self-sufficient processing units by packaging the business logic together with the data and messaging middleware. In practice, this means putting all the services required for an entire business process in one processing unit. Because each processing unit is self-sufficient, requiring no external component access, packaging business logic, messaging, and data together enables linear scaling and minimal latency. XAP takes care of content-based routing and automatic detection of service availability to enable dynamic scaling. Within a processing unit, the business logic is hooked into the messaging and data middleware with the &#8220;polling container&#8221;, which allows the business logic to be notified of changes with the messaging/data space.</p>
<p>4) Virtualizing Deployment<br />
The fourth and final step is virtualizing deployment using the OpenSpaces Deployment Framework, which provides the administrator an overview of the entire deployment scope. The OpenSpaces Deployment Framework uses a SLA(Service Level Agreement)-driven container to dynamically scale up (or down) application resources bundled in processing units and to adhere to the service-level agreements by automatically detecting and recovering from failures. </p>
<p>The above four steps effectively transitions an existing application to a space-based architecture. The beauty of it is that using GigaSpaces&#8217; XAP is completely transparent to all concerned &#8211; to the designer, developer, administrator, and client. An application deployed in XAP acts as one single server.</p>
<p>References:</p>
<li>GigaSpaces White Paper: <a target="_blank" href="http://gigaspaces.com/files/main/white_papers/FromDeadEndToOpenRoad.pdf">The Scalability Revolution &#8211; From Dead End to Open Road</a></li>
<li>GigaSpaces White Paper: <a target="_blank" href="http://gigaspaces.com/files/main/white_papers/The_End_of_Tier.pdf">Space-Based Architecture and the End of Tier-based Computing</a></li>
<li>GigaSpaces White Paper: <a target="_blank" href="http://gigaspaces.com/files/main/white_papers/ScalingSpringApplications.pdf">Scaling Spring Applications in 4 Steps</a></li>
<li><a target="_blank" href="http://www.theserverside.com/tt/knowledgecenter-gs/knowledgecenter-gs.tss?l=ProcessingUnitsandSpring">Scability with GigaSpaces&#8217; Processing Units and Spring</a></li>
<li><a target="_blank" href="http://en.wikipedia.org/wiki/Space-based_architecture">Spaced-Based Architecture &#8211; Wikipedia</a></li>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2008/04/22/spaced-based-architecture-by-gigaspaces/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Magic Quadrant for SOA Platforms</title>
		<link>http://javapulse.net/2006/11/28/magic-quadrant-for-soa-platforms/</link>
		<comments>http://javapulse.net/2006/11/28/magic-quadrant-for-soa-platforms/#comments</comments>
		<pubDate>Tue, 28 Nov 2006 12:51:14 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[marketing]]></category>
		<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=54</guid>
		<description><![CDATA[Gartner&#8217;s Magic Quadrant for SOA platforms, called Integration Backbone Software in this report. 
]]></description>
			<content:encoded><![CDATA[<p>Gartner&#8217;s Magic Quadrant for SOA platforms, called Integration Backbone Software in this <a href="http://www.iona.com/pressroom/analysts/Gartner_Q205_Integration_Backbone_MQ.pdf">report</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2006/11/28/magic-quadrant-for-soa-platforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOA at First Glance</title>
		<link>http://javapulse.net/2006/11/24/soa-at-first-glance-for-developers/</link>
		<comments>http://javapulse.net/2006/11/24/soa-at-first-glance-for-developers/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 10:40:12 +0000</pubDate>
		<dc:creator>Clara Ko</dc:creator>
				<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://javapulse.net/?p=46</guid>
		<description><![CDATA[Introduction
Lately, I&#8217;ve found myself immersed in the world of integration, or Enterprise Application Integration (EAI). Coming from a programming background, EAI is literally a different world. The difference is whether the focus is on building your own software or integrating other people&#8217;s software. In the programming world, the hot topic of the day is Service [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
Lately, I&#8217;ve found myself immersed in the world of integration, or Enterprise Application Integration (EAI). Coming from a programming background, EAI is literally a different world. The difference is whether the focus is on building your own software or integrating other people&#8217;s software. In the programming world, the hot topic of the day is Service Oriented Architecture (SOA), supposedly the solution to the integration problem. As I investigated the SOA story, I found that it seems to come with an overabundance of terms and acronyms, as if to say, look what a difficult problem this is. I finally got to the point where they don&#8217;t cause my head to spin. In this article, I will try to cut through the fog and introduce these terms that came flying at me during my research. I will try to do so from a programmer&#8217;s perspective, as opposed to an integrator&#8217;s or client&#8217;s perspective.</p>
<p><strong>Motivations for SOA</strong><br />
As applications get bigger and more mature, and as companies have more and more vested investment in various software packages such as CRMs, there is a motivation to not reinvent the wheel and instead, focus on reusing existing software. To the business, reuse equals cutting of costs, which is music to the ears. From a technical point of view, SOA abstracts away the age old question of programming language and platform. The key word is interoperability. Let&#8217;s not fight over Java or .NET or PHP. XML is the language and what&#8217;s more, it&#8217;s (mostly) human readable.</p>
<p><strong>Messaging</strong><br />
Traditionally, integration of software has been implemented using Remote Procedure Call (RPC), passing data in binary form as opposed to XML. Nowadays, the way to connect software is via messenging. In such an architecture, messages are passed around on a Enterprise Service Bus (ESB), which is the messaging framework that abstracts over the transporting medium. At the very least, ESB provides routing, security, transformation, and validation.</p>
<p><strong>Web Service</strong><br />
Not every service is a web service. To me, a service is closely related to an interface, which is an abstraction on the underlying implementation of a functionality. A service&#8217;s interface can be any contract between the software vendors, but in a SOA environment, they are in XML form. And if the interface conforms to a SOAP (Simple Object Access Protocol) or REST (Representational State Transfer) message and comes with a WSDL (Web Services Description Language), then it is considered a web service. There is an open industry initiative to make a registry of available services called UDDI (Universal Description Discovery and Integration). Services can be discovered either at design time or runtime.</p>
<p><strong>Process-Driven Development</strong><br />
Traditional approaches to EAI had been to create an entire application stack that encompassed the various software as underlying components. In contrast, applications within a SOA are designed according to business processes, as opposed to the IT infrastructure. A SOA application enables the workflow of a document instance or task through a business process. To me, a workflow is a state machine of an instance and can be modelled as such in a UML state diagram. The efforts of a company to streamline their business processes is called Business Process Management (BPM). And lately, SOA has become part of the BPM effort. BPEL (Business Process Execution Language) is used to describe the business processes in an abstract (XML) fashion and used to orchestrate the web services that are used.</p>
<p><strong>Vendors</strong><br />
A number of vendors have popped up who claim to provide everything you need to implement a SOA-based application. The front-runners are old-timer Tibco, marketleaders in software like IBM, BEA, and even Oracle, who come from more of an application server background and who have to opportunity to sell their SOA framework to their existing customers and partners, and newcomers like Cordys, who by virtue of having designed from scratch probably has the most well-thought-out technology.</p>
<p><strong>Summary</strong><br />
In this article, I spoke about the motivation for the move to SOA, tied together the terms that are often heard together with SOA. The terms play a part of the technology used within a SOA application and the process by which the applications are developed. Lastly, I named some vendors that provide frameworks to develop SOA applications. The list should be many more and I will add to it as I discover them.</p>
<p><strong>What&#8217;s Next</strong><br />
Just at first glance, I had to use more than 10 acronyms just to tell the story. In the next article, I will share what I discovered about SOA governance, which is a fancy term for organizations to keep track of what is going on in their SOA applications. Governance will easily lend to the subject of testing and monitoring. Furthermore, I will discuss how the right balance needs to be reached all the more in a SOA environment between business and IT concerns.</p>
]]></content:encoded>
			<wfw:commentRss>http://javapulse.net/2006/11/24/soa-at-first-glance-for-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
