<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>middleware &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/middleware/</link>
	<description>Feed of posts on WordPress.com tagged "middleware"</description>
	<pubDate>Wed, 10 Feb 2010 14:44:24 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Installing Weblogic 10.3.2 on Fedora 11]]></title>
<link>http://randomlogs.wordpress.com/2010/02/07/installing-weblogic-10-3-2-on-fedora-11/</link>
<pubDate>Sun, 07 Feb 2010 21:53:10 +0000</pubDate>
<dc:creator>iamabogart</dc:creator>
<guid>http://randomlogs.wordpress.com/2010/02/07/installing-weblogic-10-3-2-on-fedora-11/</guid>
<description><![CDATA[Installing Weblogic 10.3.2 on Fedora 11 is painless. All one has to do is the following - Download t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Installing Weblogic 10.3.2 on Fedora 11 is painless. All one has to do is the following -</p>
<ul type="square">
<li>Download the jar (use with 64-bit JVM) or the pre-compiled binary (for 32-bit JVM)</li>
<li>If you downloaded the pre-compiled binary, then install with the command -</li>
</ul>
<p style="padding-left:60px;"><span style="color:#999999;"><em>chmod +x oepe111130_wls1032_linux32.bin &#38;&#38;  ./oepe111130_wls1032_linux32.bin</em></span></p>
<ul type="square">
<li>If you downloaded the jar, then install with the command -</li>
</ul>
<p style="padding-left:60px;"><span style="color:#999999;"><em>java -jar wls1032_generic.jar</em></span></p>
<p style="padding-left:30px;">
<p>After 5-10 minutes (depending on the speed of the machine) you should have Weblogic Server installed on the machine. However, there is one small quirk in the installation. If you were like me (chances of which are slim), and you opted for <em>Custom </em>install type, and selected <em>Server Examples</em> and your JVM with which launched the jar file happens to be one of Sun&#8217;s, then you get to enjoy the wrath of the JVM as it melts down while installing the server.</p>
<div id="attachment_52" class="wp-caption aligncenter" style="width: 492px"><a href="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-4.png"><img class="size-full wp-image-52 " title="Oracle WL Server 10.3.2 Installation - 1" src="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-4.png?w=482&#038;h=342" alt="Oracle WL Server 10.3.2 Installation - Choosing &#34;Custom&#34; install type" width="482" height="342" /></a><p class="wp-caption-text">WLS 10.3.2 - Custom Install</p></div>
<div id="attachment_53" class="wp-caption aligncenter" style="width: 492px"><a href="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-5.png"><img class="size-full wp-image-53 " title="Oracle WL Server 10.3.2 Installation - 2" src="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-5.png?w=482&#038;h=345" alt="Oracle WL Server 10.3.2 Installation - Choosing Products and Components" width="482" height="345" /></a><p class="wp-caption-text">WLS 10.3.2 - Choosing Components</p></div>
<div id="attachment_55" class="wp-caption aligncenter" style="width: 500px"><a href="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-101.png"><img class="size-full wp-image-55 " title="Oracle WL Server 10.3.2 Installation - 3" src="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-101.png?w=490&#038;h=344" alt="Oracle WL Server 10.3.2 Installation - PermGen Error" width="490" height="344" /></a><p class="wp-caption-text">WLS 10.3.2 - PermGen Error</p></div>
<p>I hated it when I saw the error. To further exacerbate the situation, the so called <em>cleanup</em> action built into the installer doesn&#8217;t do a good job of <em>*undoing*</em> whatever it had done till that point of time.</p>
<p style="padding-left:30px;text-align:center;">
<div id="attachment_59" class="wp-caption aligncenter" style="width: 430px"><a href="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-1.png"><img class="size-full wp-image-59     " title="Oracle WL Server 10.3.2 Installation - 4" src="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-wl-10-3-2-0-1.png?w=420&#038;h=301" alt="Oracle WL Server 10.3.2 Installation - Installation Failure" width="420" height="301" /></a><p class="wp-caption-text">WLS 10.3.2 - Installation Fails here!</p></div>
<p>By the time it crashes, which happens exactly at <em>75%</em> when the installer reports <em>Creating Sample Domains&#8230; </em>it has already installed the WL Server. Hence, before retrying the installation again, you have to uninstall the product first.</p>
<p>The solution is pretty simple. Start the JVM with a bit more of <em>PermGen Space</em>, say, 128M (instead of the default, which happens to be a maximum of 84M in 1.6.0_18 JVM in Linux)</p>
<p style="padding-left:60px;"><span style="color:#888888;"><em>java -XX:MaxPermSize=128m -jar wls1032_generic.jar</em></span></p>
<p>I tried the installation with <em>JRockit</em> and tried to see how much of PermGen the installation requires and it turns out to be around <em>~100M</em>.</p>
<p style="text-align:center;">
<div id="attachment_61" class="wp-caption aligncenter" style="width: 514px"><a href="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-jr-3-1-2-05.png"><img class="size-full wp-image-61  " title="Oracle WL Server 10.3.2 Installation - 5" src="http://randomlogs.files.wordpress.com/2010/02/orcl-inst-jr-3-1-2-05.png?w=504&#038;h=410" alt="Oracle WL Server 10.3.2 Installation - Non-Heap usage plot" width="504" height="410" /></a><p class="wp-caption-text">WLS 10.3.2 - Non-Heap Usage</p></div>
<p>Oracle&#8217;s documentation (which is improving these days!) has no information (so far) on the PermGen requirement. However, I&#8217;m just wondering &#8211; <em>&#8220;Is it so difficult to actually check before the installer starts and figure out how much is the Max. PermGen size?&#8221;</em>. Shouldn&#8217;t the following piece of code suffice to avoid the suffering?</p>
<pre><em><span style="color:#999999;">...
/* acquire runtime information using the JMX API */
Iterator mPoolMXBeans =
	ManagementFactory.getMemoryPoolMXBeans().iterator();

while(mPoolMXBeans.hasNext()) {
	MemoryPoolMXBean mPoolMXBean = mPoolMXBeans.next();

	System.out.format("%18s  %20s  %5.2f MB\n",
			mPoolMXBean.getType(),
			mPoolMXBean.getName(),
			(mPoolMXBean.getUsage().getMax() / (1024.0*1024.0)));

	if (mPoolMXBean.getName().equalsIgnoreCase("CMS Perm Gen"))
		if (mPoolMXBean.getUsage().getMax() &#60; 104857600)
			System.out.println("\nWarning: " +
					"Current size for MaxPermGen is less than " +
					"the recommended size of 100M");</span></em>
<span style="color:#888888;">...</span>
<em>

<span style="color:#339966;">       Heap memory        Par Eden Space  15.63 MB
       Heap memory    Par Survivor Space   2.56 MB
       Heap memory           CMS Old Gen  63.25 MB
   Non-heap memory          CMS Perm Gen  84.00 MB

Warning: Current size for MaxPermGen is less than the recommended size of 100M

</span></em>
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Sun Oracle Soa Strategy (JCAPS , ORACLE FUSION)]]></title>
<link>http://eaiesb.wordpress.com/2010/01/29/sun-oracle-soa-strategy-jcaps-oracle-fusion/</link>
<pubDate>Fri, 29 Jan 2010 05:16:27 +0000</pubDate>
<dc:creator>eaiesb</dc:creator>
<guid>http://eaiesb.wordpress.com/2010/01/29/sun-oracle-soa-strategy-jcaps-oracle-fusion/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Sun Oracle Middleware Strategy]]></title>
<link>http://eaiesb.wordpress.com/2010/01/29/sun-oracle-middleware-strategy-2/</link>
<pubDate>Fri, 29 Jan 2010 04:36:13 +0000</pubDate>
<dc:creator>eaiesb</dc:creator>
<guid>http://eaiesb.wordpress.com/2010/01/29/sun-oracle-middleware-strategy-2/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Procedural city destruction]]></title>
<link>http://shaunkime.wordpress.com/2010/01/28/procedural-city-destruction/</link>
<pubDate>Thu, 28 Jan 2010 22:04:22 +0000</pubDate>
<dc:creator>shaunkime</dc:creator>
<guid>http://shaunkime.wordpress.com/2010/01/28/procedural-city-destruction/</guid>
<description><![CDATA[Found a really interesting post from Kotaku today about a procedural city tech demo. It seems like t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Found a really interesting post from Kotaku today about a procedural city tech demo. It seems like they hit a lot of the high points: procedural city interior and exteriors, destruction, and instanced object placement. What is unclear to me (their website is down) is if they plan to license this as middleware or if it is purely a tech demo for a new game. It appears to be middleware, since it has its own name and company associated with it. If so, the real key is how easy it is to create content and tweak the parameters. Most of the existing procedural city middleware engines fall down on this account. Admittedly this is a really complex problem, but procedural rulesets do not come easily to most artists and designers and to be useful to games you have to get them involved. A completely procedural ghost town city is only cool for a tech demo, not a game.</p>
<p><a href="http://kotaku.com/5455120/will-crysis-2-be-able-to-render-new-york-city-like-this">Kotaku: Will Crysis2 Be Able To Render NYC Like This?</a></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/AtC0lpKKE38&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/AtC0lpKKE38&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>If you&#8217;re interested in procedural city generation, <a href="http://www.digitalurban.blogspot.com/">Digital Urban</a> is a great resource.<br />
Some procedural city middleware:<br />
<a href="http://digitalurban.blogspot.com/2009/12/cityengine-20093.html">CityEngine</a><br />
<a href="http://digitalurban.blogspot.com/2009/12/cityscape-18-gis-and-openstreetmap.html">CityScape</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SUN ORACLE Middleware Strategy]]></title>
<link>http://eaiesb.wordpress.com/2010/01/28/sun-oracle-middleware-strategy/</link>
<pubDate>Thu, 28 Jan 2010 07:17:31 +0000</pubDate>
<dc:creator>eaiesb</dc:creator>
<guid>http://eaiesb.wordpress.com/2010/01/28/sun-oracle-middleware-strategy/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ Oracle + Sun: Five questions to ponder]]></title>
<link>http://jshurwitz.wordpress.com/2010/01/27/oracle-sun-five-questions-to-ponder/</link>
<pubDate>Wed, 27 Jan 2010 23:43:26 +0000</pubDate>
<dc:creator>Judith</dc:creator>
<guid>http://jshurwitz.wordpress.com/2010/01/27/oracle-sun-five-questions-to-ponder/</guid>
<description><![CDATA[I spent a couple of hours today listening to Oracle talk about the long-awaited integration with Sun]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I spent a couple of hours today listening to Oracle talk about the long-awaited integration with Sun Microsystems. A real end of an era and beginning of a new one. What does this mean for Oracle? Whatever you might think about Oracle, you have to give the company credit for successfully integrating the 60 companies it has purchased over the past few years. Having watched hundreds and perhaps thousands of acquisitions over the last few decades, it is clear that integration is hard. There are overlapping technologies, teams, cultures, and egos. Oracle has successfully managed to leverage the IP from its acquisitions to support its business goals. For example, it has kept packaged software customers happy by improving the software. Peoplesoft customers, for example, were able to continue to use the software they had become dependent on in primarily the same way as before the acquisition. In some cases, the quality of the software actually improved dramatically. The path has been more complicated with the various middleware and infrastructure platforms the company has acquired over the years because of overlapping functionality.</p>
<p>The acquisition of Sun Microsystems is the biggest game changer for Oracle since the acquisition of PeopleSoft. There is little doubt that Sun has significant software and hardware IP that will be very important in defining Oracle in the 21st century. But I don&#8217;t expect this to be a simple journey.  Here are the five key issues that I think will be tricky for Oracle to navigate. Obviously, this is not a complete list but it is a start.</p>
<p>I<strong>ssue One: Can Oracle recreate the mainframe world?</strong> The mainframe is dead &#8212; long live the mainframe. Oracle has a new fondness for the mainframe and what that model could represent. So, if you combine Sun&#8217;s hardware, networking layer, storage, security, packaged applications, middleware into a package do you get to own total share of a customer&#8217;s wallet? That is the idea. Oracle management has determined that IBM had the right ideas in the 1960s &#8212; everything was nicely integrated and the customer never had to worry about the pieces working together.<br />
<strong>Issue Two: Can you package everything together and still be an open platform?</strong> To its credit, Oracle has build its software on standards such as Unix/Linux, XML, Java, etc. So, can you have it both ways? Can you claim openness when the platform itself is hermetically sealed? I think it may be a stretch. In order to accomplish this goal, Oracle would have to have well-defined and published APIs. It would have to be able to certify that with these APIs the integrated platform won&#8217;t be broken. Not an easy task.<br />
<strong>Issue Three: Can you manage a complex computing environment?</strong> Computing environments get complicated because there are so many moving parts. There are configurations that change; software gets patched; new operating system versions are introduced; emerging technology enters and messes up the well established environment.  Oracle would like to automate the process of managing this process for customers. It is an appealing idea since configuration problems, missing links, and poor testing are often responsible for many of the outages in computing environments today. Will customers be willing to have this type of integrated environment controlled and managed by a single vendor? Some customers will be happy to turn over these headaches. Others may have too much legacy or want to work with a variety of vendors. This is not a new dilemma for customers. Customers have long had to rationalize the benefits of a single source of technology against the risks of being locked in.<br />
<strong>Issue Four: Can you teach an old dog new tricks? Can Oracle really be a hardware vendor?</strong> Clearly, Sun continues to be a leader in hardware despite its diminished fortunes.  But as anyone who has ventured into the hardware world knows, hardware is a tough, brutal game. In fact, it is the inverse of software. Software takes many cycles to reach maturation. It needs to be tweaked and finessed.  However, once it is in place it has a long, long life. The old saying goes, old software never dies. The same cannot be said for hardware. Hardware has a much straighter line to maturity. It is developed, designed, and delivered to the market. Sometimes it leapfrogs the competition enough that it has a long and very profitable life. Other times, it hits the market at the end of a cycle when a new more innovative player enters the market. The culmination of all the work and effort can be short as something new comes along at the right place at the right time. It is often a lot easier to get rid of hardware than software. The computer industry is littered with the corpses of failed hardware platforms that started with great fanfare and then faded away quickly. Will Oracle be successful with hardware? It will depend on how really good the company is in transforming its DNA.<br />
<strong>Issue Five. Are customers ready to embrace Oracle&#8217;s brave new world?</strong> Oracle&#8217;s strategy is a good one &#8212; if you are Oracle. But what about for customers? And what about for partners? Customers need to understand the long-term implication and tradeoffs in buying into Oracle&#8217;s integrated approach to its platform. It will clearly mean fewer moving parts to worry about. It will mean one phone call and no finger pointing. However, customers have to understand the type of leverage that single company will have in terms of contract terms and conditions. And what about partners? How does an independent software vendor or a channel partner participate within the new Oracle? Is there room? What type of testing and preparation will be required to play?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ Millennium Global Investments (MGI) Standardizes on Red Hat's JBoss Enterprise Middleware]]></title>
<link>http://customers.redhat.com/2010/01/20/millennium-global-investments-mgi-standardizes-on-red-hats-jboss-enterprise-middleware/</link>
<pubDate>Wed, 20 Jan 2010 13:00:38 +0000</pubDate>
<dc:creator>Red Hat Customer Reference Team</dc:creator>
<guid>http://customers.redhat.com/2010/01/20/millennium-global-investments-mgi-standardizes-on-red-hats-jboss-enterprise-middleware/</guid>
<description><![CDATA[Deployment of JBoss Enterprise BRMS improves scalability, efficiency and risk management for investm]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://www.sas.com/offices/europe/uk/solutions/customer_successes/images/millenium.gif" align="right"/></p>
<p><em>Deployment of JBoss Enterprise BRMS improves scalability, efficiency and risk management for investment company</em></p>
<p><strong>Raleigh, NC – January 20, 2010</strong> – Red Hat (NYSE: RHT), the world&#8217;s leading provider of open source solutions, today announced that Millennium Global Investments (MGI), a specialist in developing and managing alternative investment products for institutional investors, has selected JBoss Enterprise BRMS (Business Rules Management System) for its mission-critical business rules repository.</p>
<p>London-based MGI wanted to improve the flexibility of its compliance system so that its business and trade rules could be revised and adjusted rapidly within a managed environment. MGI selected JBoss Enterprise BRMS to bring business rules into a managed environment, standardise business rules and support the scalability of the business. </p>
<p>The transparency of the new repository enables MGI business users to gain access to detailed information about why certain rules may prevent trading. This access improves business users&#8217; efficiency and reduces the number of queries sent to MGI’s IT organisation. The transparent business rules repository is also an essential part of MGI’s risk management strategy</p>
<p>“Red Hat&#8217;s flexible subscription terms for JBoss Enterprise Middleware allowed us to deploy only the components needed for the new platform and to avoid vendor lock-in. Unlike other vendors, Red Hat offers the ability to support other applications of the rules engine, be it market signal monitoring or algorithmic trading,” said Richard Macaskill, managing director, IT &#38; Systems Development, MGI. “We were very pleased with the level of support Red Hat provided during the new business rules repository&#8217;s development.  We are extremely satisfied to have deployed an integrated business rules platform that has improved our efficiency and ability to manage risk.” </p>
<p><!--more-->JBoss Enterprise Business Rules Management System (BRMS) is an open source business rules solution that enables easy business policy and rules development, access, and management. JBoss Enterprise BRMS allows customers to reduce development time to update applications and processes with the latest business rules and policies. </p>
<p>“We are delighted with the positive feedback from MGI on its deployment of JBoss Enterprise BRMS.   We are seeing further momentum of JBoss Enterprise BRMS as the enterprise continues to drive innovation through open source middleware,” said Pierre Fricke, Director, SOA Products, Red Hat. “Automating business decisions with JBoss Enterprise BRMS can help a business run faster and enable business process stakeholders to rapidly implement change. This is the kind of agility that enterprise deployments demand in today&#8217;s marketplace.”</p>
<p>For more information about Red Hat, visit <a href="http://www.redhat.com" target="_blank">www.redhat.com</a>.  For more news, more often, visit <a href="http://www.press.redhat.com" target="_blank">www.press.redhat.com</a>.</p>
<p><strong>About Red Hat, Inc.</strong><br />
Red Hat, the world&#8217;s leading provider of open source solutions and a component of the S&#38;P 500, is headquartered in Raleigh, NC with over 65 offices spanning the globe. CIOs ranked Red Hat as one of the top vendors delivering value in Enterprise Software for six consecutive years in the CIO Insight Magazine Vendor Value survey. Red Hat provides high-quality, affordable technology with its operating system platform, Red Hat Enterprise Linux, together with virtualization, applications, management and Services Oriented Architecture (SOA) solutions, including Red Hat Enterprise Virtualization and JBoss Enterprise Middleware. Red Hat also offers support, training and consulting services to its customers worldwide. Learn more: <a href="http://www.redhat.com" target="_blank">http://www.redhat.com</a>.</p>
<p><strong>Forward-Looking Statements </strong><br />
Certain statements contained in this press release may constitute &#8220;forward-looking statements&#8221; within the meaning of the Private Securities Litigation Reform Act of 1995. Forward-looking statements provide current expectations of future events based on certain assumptions and include any statement that does not directly relate to any historical or current fact. Actual results may differ materially from those indicated by such forward-looking statements as a result of various important factors, including: risks related to delays or reductions in information technology spending, the integration of acquisitions and the ability to market successfully acquired technologies and products; the ability of the Company to effectively compete; the inability to adequately protect Company intellectual property and the potential for infringement or breach of license claims of or relating to third party intellectual property; the ability to deliver and stimulate demand for new products and technological innovations on a timely basis; risks related to data and information security vulnerabilities; ineffective management of, and control over, the Company&#8217;s growth and international operations; fluctuations in exchange rates; uncertainty and adverse results in litigation and related settlements, and changes in and a dependence on key personnel, as well as other factors contained in our most recent Quarterly Report on Form 10-Q (copies of which may be accessed through the Securities and Exchange Commission&#8217;s website at http://www.sec.gov), including those found therein under the captions &#8220;Risk Factors&#8221; and &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221;. In addition to these factors, actual future performance, outcomes, and results may differ materially because of more general factors including (without limitation) general industry and market conditions and growth rates, economic conditions, and governmental and public policy changes. The forward-looking statements included in this press release represent the Company&#8217;s views as of the date of this press release and these views could change. However, while the Company may elect to update these forward-looking statements at some point in the future, the Company specifically disclaims any obligation to do so. These forward-looking statements should not be relied upon as representing the Company&#8217;s views as of any date subsequent to the date of the press release.</p>
<p>© 2009 Red Hat, Inc. Red Hat, the Shadowman logo and JBoss are registered trademarks of Red Hat, Inc. in the U.S. and other countries. Linux is a registered trademark of Linus Torvalds. </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Third International Conference on MOBILe Wireless MiddleWARE, Operating,Systems, and Applications]]></title>
<link>http://koumaras.wordpress.com/2010/01/07/third-international-conference-on-mobile-wireless-middleware-operatingsystems-and-applications/</link>
<pubDate>Thu, 07 Jan 2010 06:42:54 +0000</pubDate>
<dc:creator>Harilaos Koumaras</dc:creator>
<guid>http://koumaras.wordpress.com/2010/01/07/third-international-conference-on-mobile-wireless-middleware-operatingsystems-and-applications/</guid>
<description><![CDATA[MOBILWARE 2010 Third International Conference on MOBILe Wireless MiddleWARE, Operating Systems, and ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>MOBILWARE 2010<br />
Third International Conference on MOBILe Wireless MiddleWARE, Operating Systems, and Applications</p>
<p>Sponsored by ICST, technically co-sponsored by Create-Net<br />
Proceedings published in the Springer LNICST Series<br />
Chicago, USA, June 30-July 2, 2010 &#8211; <a href="http://www.mobilware.org">http://www.mobilware.org</a></p>
<p>Extended versions of selected best papers will be published in the Springer Mobile Networks and Applications (MONET) Journal<br />
and in the Springer Journal of Network and Systems Management.</p>
<p>Deadline for workshop proposal submission: February 1, 2010<br />
Deadline for paper submission: February 1, 2010</p>
<p>The advances in wireless communication technologies and the<br />
proliferation of mobile devices have enabled the realization of intelligent environments for people to communicate with each other, interact with information-processing devices, and receive a wide range of mobile wireless services through various types of networks and systems everywhere, anytime. A key enabler of this pervasive and ubiquitous connectivity environment is the advancement of software technology in various communication sectors, ranging from communication middleware and operating systems to networking protocols and applications.<br />
The 2010 edition of MOBILWARE will be the first time to move out of Europe. We plan to further diversify the representation of key organizers and expand the community of industrial and academic researchers fruitfully exchanging novel ideas and operational experiences in the field. MOBILWARE is dedicated to addressing emerging topics and challenges in various mobile wireless software-related areas. The scope of the conference is the design, implementation, deployment, and evaluation of middleware, operating systems, and applications for computing and communications in mobile wireless systems. It aims to provide a high profile, leading edge forum for researchers, engineers, and standards developers to present their latest research activities, techniques, and experiences in the area of software technology for mobile wireless systems.</p>
<p>PAPERS: Original and unpublished research achievements in various aspects of middleware/operating systems/applications for mobile computing and networking are solicited. Areas of interest include, but are not limited to:<br />
* Integration of heterogeneous wired and wireless networks<br />
* QoS awareness, adaptation, and fault-tolerance of mobile services * Opportunistic and delay-tolerant mobile and wireless networking * Location-aware and context-aware networking and computing<br />
* Energy-efficient applications and services<br />
* Mobility and handoff management<br />
* Location and tracking supports and services<br />
* Mobility-aware service discovery, management, and delivery * Agent technologies for mobile systems and services<br />
* Human-computer interface and portable 3D graphics for mobile devices * Novel applications and communication protocols for wireless sensor networks, vehicular networks, and home networks<br />
* Modeling, simulation, and performance evaluation of mobile wireless systems and services<br />
* Trustworthiness, security, and privacy of mobile and wireless systems</p>
<p>WORKSHOPS/TUTORIALS:<br />
Proposals for workshops/tutorials are solicited. Potential organizers are requested to submit a proposal of at most 5 pages, including a biographical sketch of each proponent, to the Workshop/Tutorial Chair by February 1, 2010 (form deadline). Proposal evaluation will be based on proponents&#8217; expertise and relevance of the subject matter. Workshop proceedings will be published in the Springer LNICST series, as the proceedings of the main conf.</p>
<p>SUBMISSION INSTRUCTIONS:<br />
All papers and workshop/tutorial proposal submissions will be handled electronically. Please visit the MyReview paper submission server at &#60; <a href="http://rs.cs.iastate.edu/MobilWare2010/">http://rs.cs.iastate.edu/MobilWare2010/</a><br />
&#62; or the conference Website at &#60; <a href="http://www.mobilware.org">http://www.mobilware.org</a> &#62; for detailed submission requirements and procedures.</p>
<p>PUBLICATION:<br />
All submitted papers will be rigorously reviewed by TPC members and invited reviewers. All accepted papers will be published in the novel Springer Lecture Notes of ICST (LNICST) series and be included in major article indexing services. Extended versions of selected best papers from MOBILWARE&#8217;10 will be published in a dedicated special issue of the Springer Mobile Networks and Applications (MONET) Journal and recommended for publication (fast review track) in the Springer Journal of Network and Systems Management.</p>
<p>IMPORTANT DATES:<br />
Workshop/Tutorial Proposal Due Date: February 1, 2010<br />
Paper Submission Due Date: February 1, 2010<br />
Notification of Acceptance: April 1, 2010<br />
Camera Ready Versions Due: April 20, 2010</p>
<p>STEERING COMMITTEE<br />
Imrich Chlamtac (Chair), Create-Net, Italy<br />
Paolo Bellavista, Univ. Bologna, Italy<br />
Carl K. Chang, Iowa State Univ., USA</p>
<p>GENERAL CHAIRS<br />
Paolo Bellavista, Univ. Bologna, Italy<br />
Carl K. Chang, Iowa State Univ., USA</p>
<p>TECH. PROGRAM COMMITTEE CHAIRS<br />
Ying Cai, Iowa State Univ.., USA<br />
Minglu Li, Shanghai Jiaotong Univ., China<br />
Thomas Magedanz, Fraunhofer FOKUS, Germany</p>
<p>WORKSHOP/TUTORIAL CHAIR<br />
Jinchun Xia, San Jose State Univ., USA</p>
<p>LOCAL CHAIRS<br />
Jennifer Juehring, Iowa State Univ., USA<br />
Laurel Tweed, Iowa State Univ., USA</p>
<p>WEB AND PROCEEDINGS CHAIR<br />
Carlo Giannelli, Univ. Bologna, Italy</p>
<p>TECHNICAL PROGRAM COMMITTEE (to be confirmed and extended)<br />
J.M. Bonnin, Inst. Telecom/Telecom Bretagne, France<br />
C. Borcea, NJIT Univ., USA<br />
J.J. Bu , Zhejiang Univ., China<br />
R.H. Campbell, UIUC, USA<br />
J. Cao, Polyt. Univ., Hong Kong<br />
Z. Chen, Florida Int. Univ., USA<br />
L. Cheng, Lehigh Univ. Bethlehem, USA<br />
A. Chibani, Paris 12 Univ., France<br />
I. Demeure, ENST, Telecom ParisTech, France<br />
A. Fasbender, Ericsson GmbH, Germany<br />
X. Fu, Univ. of Massachusetts Lowell, USA<br />
A. Gavras, Eurescom, Germany<br />
M. Gerla, Univ. California at Los Angeles, USA<br />
R. Glitho, Concordia Univ. Montreal, Canada<br />
J. Govil, CISCO, USA<br />
M. Gunes, FU Berlin, Germany<br />
C. Hesselman, Novay, the Netherlands<br />
R. Hill, Indiana University, USA<br />
S. Holtel, Vodafone Group R&#38;D, Germany<br />
F. Hong, Ocean Univ. of China, P. R. China<br />
C.-L. Hu, National Central Univ., Taiwan<br />
L. Iftode, Rutgers Univ., USA<br />
A. Jaokar, Futuretext, UK<br />
W. Jiang, Huazhong Univ. of Sci. &#38; Tech., China<br />
C. Julien, Univ. of Texas at Austin, USA<br />
T.G. Kanter, Mid Sweden Univ., Sweden<br />
P.J. Keleher, Univ. Maryland, USA<br />
W.-S. Ku, Auburn Univ., USA<br />
Y. Lan, Northeastern Univ., China<br />
P. Langendoerfer, IHP, Germany<br />
X. (Cindy) Li, Univ. N. Carolina Pembroke, USA<br />
X. Li, Oklahoma State Univ., USA<br />
D. Maggiorini, Univ. of Milano, Italy<br />
R. Minerva, Telecom Italia, Italy<br />
P. Nixon, Univ. College Dublin, Ireland<br />
J.K. Nurminen, Nokia, Finland<br />
H. Ohsaki, Osaka Univ., Japan<br />
G. Ormazabal, Verizon Laboratories, USA<br />
J. Payton, Univ. North Carolina at Charlotte, USA<br />
S. Pandey, CISCO Systems Inc., USA<br />
F. Ren, Tsinghua Univ., China<br />
K. (Quinn) Ren, Illinois Inst. Technology, USA<br />
R. Schwaiger, Deutsche Telekom Labs, Germany<br />
J. Song, KAIST, Korea<br />
L. Sun, Chinese Academy of Sciences, China<br />
W. Sun, Fudan Univ., China<br />
J. Taheri, Univ. Sydney, Australia<br />
X. Tao, Nanjing Univ., China<br />
A. Tripathi, Univ. Minnesota, USA<br />
N. Ventura, Univ. Cape Town, South Africa<br />
Xiaodong Wang, Nat. Univ. Defense Tech., China<br />
Xinbing Wang, Shanghai Jiaotong Univ., China<br />
B. Xu, Tsinghua Univ., China<br />
G. Xue, Shanghai Jiaotong Univ., China<br />
W. Xue, Tsinghua Univ., China<br />
M.A. Youssef, Nile Univ., Egypt<br />
F. Zambonelli, Univ. Modena e R. Emilia, Italy<br />
L. Zhang, Indiana Univ. S. Bend, USA<br />
Q. Zheng, Xian Jiaotong Univ., China<br />
Y. Zhu, Shanghai Jiaotong Univ., China</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Internet of Things - Hydra Project]]></title>
<link>http://dorai.wordpress.com/2010/01/04/internet-of-things-hydra-project/</link>
<pubDate>Tue, 05 Jan 2010 01:42:00 +0000</pubDate>
<dc:creator>dorai</dc:creator>
<guid>http://dorai.wordpress.com/2010/01/04/internet-of-things-hydra-project/</guid>
<description><![CDATA[Internet of Things (IOT) is one of the emerging technology trends. Some indications of useful applic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Internet of Things (IOT) is one of the emerging technology trends. Some indications of useful applications of IOT are given by the <a href="http://dorai.posterous.com/internet-of-things-hydra-project">Hydra project</a> team.</p>
<div style="margin-left:40px;">With Hydra, all manner of devices such as electricity meters, TV sets, refrigerators, stereos as well as heating and lighting systems, can be networked without having to know what goes on inside them.Existing devices can be adapted to work with Hydra. “We are delivering a device  development kit where you could integrate the middleware into the devices,” Eisenhauer says, “but you can make use of it with existing devices and Hydra-enable them as long as they have a certain computing power.”</p>
<p>Another major application is expected to be in healthcare, especially the monitoring of patients in their own homes. The partners have set up a demo using networked sensors measuring body weight, blood pressure, blood sugar and oxygen saturation. A muscle sensor gives warning of an epileptic fit.</p>
<p>&#8220;So we have different kinds of technologies – ZigBee, Bluetooth and others – all covered by our network manager within Hydra,” says Eisenhauer. “And then just to show that we can also use off-the-shelf devices we have used a Wii balance board as a weight scale and have connected it to our Playstation 3.”</p>
</div>
<p><a href="http://bit.ly/iot-hydra">This article</a> describes many areas including Agriculture which can benefit from this initiative. Hydra opens up several possibilities, especially for innovative social applications, a ripe area for student projects. You can get more information on such exciting projects from <a href="http://cordis.europa.eu/ictresults/">ICT Results</a>.</p>
<p style="font-size:10px;"><a href="http://posterous.com">Posted via email</a> from <a href="http://dorai.posterous.com/internet-of-things-hydra-project">Dorai&#8217;s LinkLog</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Data-Centric, Transaction-Centric]]></title>
<link>http://bulldozer00.wordpress.com/2009/12/24/data-centric-transaction-centric/</link>
<pubDate>Thu, 24 Dec 2009 05:00:29 +0000</pubDate>
<dc:creator>bulldozer00</dc:creator>
<guid>http://bulldozer00.wordpress.com/2009/12/24/data-centric-transaction-centric/</guid>
<description><![CDATA[The market (ka-ching!, ka-ching!) for transaction-centric enterprise IT (Information Technology) sys]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The market (ka-ching!, ka-ching!) for transaction-centric enterprise IT (Information Technology) systems dwarfs that for real-time, data-centric sensor control systems. Because of this market disparity, the lion&#8217;s share of investment dollars is naturally and rightfully allocated to creating new software technologies that facilitate the efficient development of behemoth enterprise IT systems.</p>
<p>I work in an industry that develops and sells distributed, real-time, data-centric sensor systems and it frustrates me to no end when people don&#8217;t &#8220;see&#8221; (or are ignorant of) the difference between the domains. With innocence, and unfortunately, ignorance embedded in their psyche, these people try to jam-fit risky, transaction-centric technologies into data-centric sensor system designs. By risky, I mean an elevated chance of failing to meet scalability, real-time throughput and latency requirements that are much more stringent for data-centric systems than they are for most transaction-centric systems. Attributes like scalability, latency, capacity, and throughput are usually only measurable after a large investment has been made in the system development. To add salt to the wound, re-architecting a system after the mistake is discovered and ( more  importantly) <strong>acknowledged, </strong>delays release and consumes resources by amounts that can seriously damage a company&#8217;s long term viability.</p>
<p>As an example, consider the  <a href="http://en.wikipedia.org/wiki/CORBA" target="_blank">CORBA </a>and  <a href="http://en.wikipedia.org/wiki/Data_Distribution_Service" target="_blank">DDS</a><a href="http://en.wikipedia.org/wiki/Object_Management_Group" target="_blank"> </a>OMG standard middleware technologies. CORBA was initially designed (by committee) from scratch to accommodate the development of big, distributed, client-server, transaction-centric systems. Thus, minimizing latency and maximizing throughout were not the major design drivers in its definition and development. DDS was designed to accommodate the development of big, distributed, publisher-subscriber, data-centric systems. It was not designed by a committee of competing vendors each eager to throw their pet features into a fragmented, overly complex quagmire. DDS was derived from the merger of two fielded and proven implementations, one by Thales (distributed naval shipboard sensor control systems) and the other by RTI (distributed robotic sensor and control systems). In contrast, as a well meaning attempt to be all things to all people, publish-subscribe capability was tacked on to the CORBA beast after the fact. Meanwhile, DDS has remained leaned and mean and because of the architecture busting risk for the types of applications it targets, no client-server capability has been back-fitted into its design.</p>
<p>Consider the example distributed, data-centric, sensor system application layer design below. If this application sits on top of a DDS middleware layer, there is no &#8220;intrusion&#8221; of a (single point of failure) CORBA ORB into the application layer. Each application layer system component simply boots up, subscribes to the topic (message) streams it needs, starts crunching them with it&#8217;s app-specific algorithms, and publishes its own topic instances (messages) to the other system components that have subscribed to the topic in order to do their own crunching and publishing.</p>
<p><a href="http://bulldozer00.wordpress.com/files/2009/12/data-centric-example.png"><img class="aligncenter size-full wp-image-3146" title="Data Centric Example" src="http://bulldozer00.wordpress.com/files/2009/12/data-centric-example.png" alt="" width="458" height="226" /></a></p>
<p>Now consider a CORBA-based instantiation of this application example (refer to the figure below). Because of the CORBA requirement for each system component to register with an all knowing centralized ORB (Object Request Broker) authority, CORBA &#8220;leaks&#8221; into the application layer. After registration, and after each service has found (via post-registration ORB lookup) the other services it needs to subscribe to, the ORB can disappear from the application layer &#8211; until a crash occurs and the system gets hosed. DDS avoids leakage into the value-added application layer by avoiding the centralized ORB concept and providing for fully distributed, under-the-covers, &#8220;auto-discovery&#8221; of publishers and subscribers. No DDS application service has to interact with a registrar at startup to find other components &#8211; it only has to tell DDS which topics it will publish which topics that it needs to subscribe to. Each CORBA component has to know about the topics it needs <strong>and </strong>it needs to find the services it needs to subscribe to.</p>
<p><a href="http://bulldozer00.wordpress.com/files/2009/12/data-centric-corba-comm.png"><img class="aligncenter size-full wp-image-3147" title="Data Centric CORBA Comm" src="http://bulldozer00.wordpress.com/files/2009/12/data-centric-corba-comm.png" alt="" width="458" height="235" /></a></p>
<p>The more a system is required to accommodate future growth, the more inapplicable an ORB-based architecture is. Relative to a fully distributed coordination  auto-discovery mechanism that&#8217;s transparent to each application component, attempting to jam fit a single, centralized coordinator into a large scale distributed system so that the components can find each other reduces robustness and increases long term maintenance costs .  It&#8217;s a bummer when the leadership at a company that is trying to increase profitability lets that happen.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[REMOTE PROCEDURE CALLs: C vs. Erlang (part 2)]]></title>
<link>http://pdincau.wordpress.com/2009/12/21/remote-procedure-calls-c-vs-erlang-part-2/</link>
<pubDate>Mon, 21 Dec 2009 10:07:57 +0000</pubDate>
<dc:creator>pdincau</dc:creator>
<guid>http://pdincau.wordpress.com/2009/12/21/remote-procedure-calls-c-vs-erlang-part-2/</guid>
<description><![CDATA[In the previous post, I have told you how to make a counter server in C and then call its functional]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In the previous post, I have told you how to make a counter server in C and then call its functionalities through RPC calls.</p>
<p>In Erlang it is defined a module called rpc. It provides services which are similar to remote procedure calls. It also contains broadcast facilities and parallel evaluators. As I told you also in the previous blog a remote procedure call is a method to call a function on a remote node and collect the answer.</p>
<p>The most important function in this module is rpc:call(Node, Module, Function, Arguments), it executes the specific function defined in the specific module, with the specified arguments on the node Node and returns the corresponding that can be either the return value, or a tupla of the form {badrpc, Reason}.</p>
<p>Sounds easy! Thus let&#8217;s start by coding our counter server:</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">%%%-------------------------------------------------------------------
%%% File    : counter_svr.erl
%%% Author  : XXXXX
%%% Description : A counter server
%%%
%%% Created : 19 Dec 2009 by XXXXX
%%%-------------------------------------------------------------------
-module(counter_svr).

-behaviour(gen_server).

%% API
-export([start_link/0,count/0]).

%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
	 terminate/2, code_change/3]).

-record(state, {counter=0}).

%%====================================================================
%% API
%%====================================================================
%%--------------------------------------------------------------------
%% Function: start_link() -&#62; {ok,Pid} &#124; ignore &#124; {error,Error}
%% Description: Starts the server
%%--------------------------------------------------------------------
start_link() -&#62;
    gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).

%%====================================================================
%% gen_server callbacks
%%====================================================================

%%--------------------------------------------------------------------
%% Function: init(Args) -&#62; {ok, State} &#124;
%%                         {ok, State, Timeout} &#124;
%%                         ignore               &#124;
%%                         {stop, Reason}
%% Description: Initiates the server
%%--------------------------------------------------------------------
init([]) -&#62;
    {ok, #state{}}.

%%--------------------------------------------------------------------
%% Function: %% handle_call(Request, From, State) -&#62; {reply, Reply, State} &#124;
%%                                      {reply, Reply, State, Timeout} &#124;
%%                                      {noreply, State} &#124;
%%                                      {noreply, State, Timeout} &#124;
%%                                      {stop, Reason, Reply, State} &#124;
%%                                      {stop, Reason, State}
%% Description: Handling call messages
%%--------------------------------------------------------------------
handle_call(count, _From, State) -&#62;
    Reply = State#state.counter + 1,
    NewState = #state{counter=Reply},
    {reply, Reply, NewState};

handle_call(_Request, _From, State) -&#62;
    Reply = ok,
    {reply, Reply, State}.

%%--------------------------------------------------------------------
%% Function: handle_cast(Msg, State) -&#62; {noreply, State} &#124;
%%                  ﻿                    {noreply, State, Timeout} &#124;
%%                                      {stop, Reason, State}
%% Description: Handling cast messages
%%--------------------------------------------------------------------
handle_cast(_Msg, State) -&#62;
    {noreply, State}.

%%--------------------------------------------------------------------
%% Function: handle_info(Info, State) -&#62; {noreply, State} &#124;
%%                                       {noreply, State, Timeout} &#124;
%%                                       {stop, Reason, State}
%% Description: Handling all non call/cast messages
%%--------------------------------------------------------------------
handle_info(_Info, State) -&#62;
    {noreply, State}.

%%--------------------------------------------------------------------
%% Function: terminate(Reason, State) -&#62; void()
%% Description: This function is called by a gen_server when it is about to
%% terminate. It should be the opposite of Module:init/1 and do any necessary
%% cleaning up. When it returns, the gen_server terminates with Reason.
%% The return value is ignored.
%%--------------------------------------------------------------------
terminate(_Reason, _State) -&#62;
    ok.

%%--------------------------------------------------------------------
%% Func: code_change(OldVsn, State, Extra) -&#62; {ok, NewState}
%% Description: Convert process state when code is changed
%%--------------------------------------------------------------------
code_change(_OldVsn, State, _Extra) -&#62;
    {ok, State}.

%%--------------------------------------------------------------------
%%% Internal functions
%%--------------------------------------------------------------------
count() -&#62;
    gen_server:call(?MODULE, count).</pre>
<p>As you can see I used the template of a gen_server for my implementation of the counter server. The value of the counter is stored inside its state, and it starts with the value of 0. The server handles a specific call that is aimed to retrieve the counter from the server, increment it by one and return that value to the client.  In the internal functions space, I defined a function named count that performs the specific call to the gen_server.</p>
<p>Easy, isn&#8217;t it?</p>
<p>Now we have only to start the server in a Erlang node (we name it server@ourlocalhost).</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">bellerofonte@pegaso:~$ erl -sname server@pegaso
Erlang R13B02 (erts-5.7.3)
Eshell V5.7.3  (abort with ^G)
(server@pegaso)1&#62; counter_svr:start_link().
{ok,&#60;0.40.0&#62;}</pre>
<p>At this point the server is up an running on our Erlang node, so the only thing left is to start another Erlang node (or many nodes) and perform some RPC from these.  First of all we start the second node, you should know that this node must be connected to the previous one and share with it the same cookie, if you don&#8217;t see <a href="http://www.erlang.org/doc/reference_manual/distributed.html#id2277144">Erlang User Guide</a> for more info. In brief I can tell you that you can check whether two nodes are connected by calling in one node the function net:ping(&#8216;othernode@host&#8217;) that gives back a &#8216;pong&#8217; if they are connected, or a &#8216;pang&#8217; if they are not&#8230;..moreover you can check if the nodes have the same cookie by calling in both nodes the function erlang:get_cookie() (otherwise you can set the cookie with erlang:set_cookie(Cookie).  Coming back to our discussion on rpc, inside the second node we call the function through RPC by using as stated above rpc:call(Node, Module, Function, Arguments)&#8230;in our specific case Node is the node where the server is running, Module is the module implementing the server, Function is the function that retrieves the counter and increments it and Arguments is an empty list, since the function takes no arguments.</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">bellerofonte@pegaso:~$ erl -sname client@pegaso
Erlang R13B02 (erts-5.7.3)
Eshell V5.7.3  (abort with ^G)
(client@pegaso)1&#62; rpc:call('server@pegaso', counter_svr, count, []).
1
(client@pegaso)2&#62; rpc:call('server@pegaso', counter_svr, count, []).
2
(client@pegaso)3&#62; rpc:call('server@pegaso', counter_svr, count, []).
3
(client@pegaso)4&#62; rpc:call('server@pegaso', counter_svr, count, []).
4</pre>
<p>As you may see in the example I posted above, multiple RPCs to our server, give back the result expected&#8230;..</p>
<p>In my opinion this comparison explains why I still prefer using Erlang when talking or coding distributed systems!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[REMOTE PROCEDURE CALLs: C vs. Erlang (part 1)]]></title>
<link>http://pdincau.wordpress.com/2009/12/21/remote-procedure-calls-c-vs-erlang-part-1/</link>
<pubDate>Mon, 21 Dec 2009 09:13:58 +0000</pubDate>
<dc:creator>pdincau</dc:creator>
<guid>http://pdincau.wordpress.com/2009/12/21/remote-procedure-calls-c-vs-erlang-part-1/</guid>
<description><![CDATA[In the last weeks I have been geeking a while with Remote Procedure Calls. RPCs were invented at Sun]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In the last weeks I have been geeking a while with Remote Procedure Calls.</p>
<p>RPCs were invented at Sun Microsystems in the 80s, and can be seen as &#8220;normal&#8221; procedure calls on a distributed system. The concept behind RPCs is the following: you don&#8217;t have to declare the function you want to use in your client, you can declare that function on a server and than if you invoke it, a so-called &#8220;middleware&#8221; is going to forward the request from the client to the server, where the function is executed and the result is returned back to the client.</p>
<p>Since I&#8217;m still confident that Erlang is much more better than C for distributed systems I&#8217;ll try to code in both languages a server that keeps a counter in it, each time a client calls via RPC a function it will increment that value.</p>
<p>In C I could do it coding three files. Let&#8217;s start with the first: a file (counter.x) with the specifications of the service provided by the functions that can be called remotely. The specifications must be converted to stubs and header files for the middleware using the tool rpcgen (we will se it later).</p>
<p>When you write the specifications, you must identify the functions that are going to be called remotely. The functions must specify the return type and arguments. For every function (called RPC), you must assign an ID and must include it in a program that must be uniquely referred to by an ID and a version.</p>
<p>Our counter.x may look like this:</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">program COUNTERPROG {
  version COUNTERVERS {
    int COUNTER() = 1;
  } = 1;
} = 0x20000001;</pre>
<p>where the remote procedure COUNTER has ID 1 and is included in the version 1 of the program COUNTERPROG. The ID of the program is 0&#215;20000001.</p>
<p>After that you must write the procedure code as if you would write it locally, but with slight changes. The procedure must use a conventional name PROGRAM_VERSION_svc (in our case counter_1_svc). The procedure uses pointers to return the result and receive the arguments. One more argument is required to identify the execution context.</p>
<p>Thus in our case we can create a file named counter_proc.c of the following form:</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">#include &#60;stdio.h&#62;
#include "counter.h"
int *counter_1_svc(void *msg, struct svc_req *req)
{
  static int result = 0;
  result++;
  return (&#38;result);
}</pre>
<p>The header file counter.h is one of the files generated by rpcgen. As you can see we create a STATIC variable result that lives in the space allocated for static variables so that it can survive when the execution of the fuction ends. Whenever the function is called we increment that value and return the address of that static variable.</p>
<p>Now we have to write to client! This client, before performing the remote call to the server, must connect to it. Then, after the call it can disconnect. The connection is done using the function clnt_create(server address, program id, program version, transport protocol). The disconnection is done using the function clnt_destroy().</p>
<p>Let&#8217;s create a file called rcounter.c of the following form:</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">#include &#60;stdio.h&#62;
#include &#60;string.h&#62;
#include "counter.h"
int main(int argc, char **argv)
{
  CLIENT *clnt;
  int *result;
  char *server;
  // try to get the server address from command line
  if (argc != 2) {
    fprintf(stderr, "Usage is the following: %s server\n", argv[0]);
    return -1;
  }
  server = argv[1];
  // create the client
  clnt = clnt_create(server, COUNTERPROG, COUNTERVERS, "udp"); //udp may be set to tcp
  if (clnt == NULL) {
    clnt_pcreateerror(server);
    return -1;
  }
  // call the function
  result = counter_1(NULL, clnt);
  if (result == NULL) {
    clnt_perror(clnt, server);
    return -1;
  }
  // print the value obtained from the call
  printf("The value of the counter is %d\n", *result);
  // destroy the client
  clnt_destroy(clnt);
  return 0;
}</pre>
<p>Now let&#8217;s compile all the files:</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">bellerofonte@pegaso:~$ rpcgen counter.x</pre>
<p>This generates: counter.h counter_svc.c counter_clnt.c</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">bellerofonte@pegaso:~$ gcc counter_svc.c counter_proc.c -o counter_svr -lnsl
bellerofonte@pegaso:~$ gcc counter_clnt.c rcounter.c -o counter_clt -lnsl</pre>
<p>and execute them:</p>
<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;border:1px dashed #2f6fab;padding:1em;">bellerofonte@pegaso:~$ ./counter_svr &#38;
[1] 4898
bellerofonte@pegaso:~$ ./counter_clt localhost
Counter is 1
bellerofonte@pegaso:~$ ./counter_clt localhost
Counter is 2
bellerofonte@pegaso:~$ kill -9 4898</pre>
<p>As you can see at every call the value returned is the previous one plus 1 (starting from zero).</p>
<p>I killed the server in the end because I started it in background mode&#8230;if you want you can run the two files in different shells to avoid this.</p>
<p>Ok, this post starts being long&#8230;so for the Erlang code I will open a new one <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Struts2.1入门]]></title>
<link>http://allenwbl.wordpress.com/2009/12/21/struts2-1%e5%85%a5%e9%97%a8/</link>
<pubDate>Mon, 21 Dec 2009 05:31:44 +0000</pubDate>
<dc:creator>allenwbl</dc:creator>
<guid>http://allenwbl.wordpress.com/2009/12/21/struts2-1%e5%85%a5%e9%97%a8/</guid>
<description><![CDATA[I have come across a document about Struct 2.1 overview,  I think it will help me to understand Stru]]></description>
<content:encoded><![CDATA[I have come across a document about Struct 2.1 overview,  I think it will help me to understand Stru]]></content:encoded>
</item>
<item>
<title><![CDATA[WebLogic Server Version Deployment Feature]]></title>
<link>http://allenwbl.wordpress.com/2009/12/21/weblogic-server-version-deployment-feature/</link>
<pubDate>Sun, 20 Dec 2009 16:24:30 +0000</pubDate>
<dc:creator>allenwbl</dc:creator>
<guid>http://allenwbl.wordpress.com/2009/12/21/weblogic-server-version-deployment-feature/</guid>
<description><![CDATA[Tonight, I have seen a good article about weblogic version deployment feature(side by side deploymen]]></description>
<content:encoded><![CDATA[Tonight, I have seen a good article about weblogic version deployment feature(side by side deploymen]]></content:encoded>
</item>
<item>
<title><![CDATA[Pierre Fricke - JBoss Matrix Blog]]></title>
<link>http://pierrefricke.wordpress.com/2009/12/20/7/</link>
<pubDate>Sun, 20 Dec 2009 16:02:05 +0000</pubDate>
<dc:creator>pierrefricke</dc:creator>
<guid>http://pierrefricke.wordpress.com/2009/12/20/7/</guid>
<description><![CDATA[This is my old blog on the JBoss Matrix&#8230; http://blogs.jboss.org/blog/pfricke/]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is my old blog on the JBoss Matrix&#8230;</p>
<p><a href="http://blogs.jboss.org/blog/pfricke/">http://blogs.jboss.org/blog/pfricke/</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Grass May Be Greener, Less Filling]]></title>
<link>http://neontapir.wordpress.com/2009/12/18/the-grass-may-be-greener-less-filling/</link>
<pubDate>Fri, 18 Dec 2009 06:24:52 +0000</pubDate>
<dc:creator>neontapir</dc:creator>
<guid>http://neontapir.wordpress.com/2009/12/18/the-grass-may-be-greener-less-filling/</guid>
<description><![CDATA[I embarked on an adventure last month, leaving my old job after eighteen months to re-enter the worl]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I embarked on an adventure last month, leaving my old job after eighteen months to re-enter the world of consulting. </p>
<p>When I started at the old firm, I thought of myself as just a computer programmer. I had reached a plateau at the home-building firm where I&#8217;d cut my teeth and had arrived at that position ready for a new challenge.</p>
<p>The first week, I was asked to add an enhancement to an application I hadn&#8217;t seen before. They wanted the capability to alter an HTML control&#8217;s text via an XML configuration file. I turned it around quickly, and developed a good reputation. </p>
<p>It turned out that the department had just started using agile and were having trouble getting over the hump. At my prior position, we&#8217;d been doing Scrum for a while and I said I could get it going there. They gave me a team of eager people and we were wildly successful. We got the rest of the department on Scrum, and our department managed to nearly double our output. I became a key part of the team, someone whom management and fellow developers looked to for leadership.</p>
<p>Sadly, it was not to last. We sold our product to a large customer overseas, and we were not ready to support that customer as though the product were a custom application. Meanwhile, the company I worked for had been acquired just as I hired on, and this overseas deployment brought scrutiny and change from the main office. As their culture and decisions supplanted our office, our agile ways and product vision met with more resistance. </p>
<p>I believe that friction led to some key leadership departures, and the magic that dwelt in that place dwindled away. I was even given the role of lead architect, but I quickly came to realize it was a quixotic quest and one not to be combined with a promotion. So, I sought my fortunes elsewhere.</p>
<p>My current position is a stark contrast to my architect position. My sphere of influence went from office-wide to cubicle-wide overnight. Most of my co-workers work in another state, and I feel isolated from the people I work beside. </p>
<p>The work is somewhat different from what I expected, too. I imagined technical challenges in decommissioning a certain piece of legacy middleware and replacing it with an adapter web service. We started by building a mapper service that can convert a type to an arbitrary type driven by an XML specification, for use on request and response objects. </p>
<p>A week in, I realized I was building something akin to ObjectBuilder or an IoC container. The constraints of the project hampered some tasks. For example, I had to fight to use unit tests, and I was asked to deliver a solution without any third-party libraries such as MbUnit. I was limited to VS 2005, C# 2.0, and ASMX web services. </p>
<p>I did have some latitude, though. I architected the whole solution. In the beginning, I though I was going to have to implement my own version of LinqBridge, but I found that the Composite and Decorator patterns led to some simple structures with powerful functionality. </p>
<p>I used TDD and ReSharper to amaze my co-worker with my quick delivery and robust code. My tests are in MbUnit, and I&#8217;m glad to report that during the development effort, the solution never dipped below 90% coverage as reported by PartCover. Initially, I didn&#8217;t have access to their source control (VSS), so I installed Subversion locally and used Tortoise SVN to write to a repository on my network drive, which is where my tests still safely reside. </p>
<p>Sadly, though, I did not run into the kind of design challenges I was hungry for in building this component. However, I must say that I&#8217;ve leveraged the Reflection library much deeper than I had before. The most interesting piece was conditional mappings, which I implemented as delegates. </p>
<p>Going forward, it looks like I will be doing analysis of their legacy Java systems, detailing their old object and data models. Once done, systems analysts will be able to map the legacy application to the new infrastructure, and we can create an adapter web service with the help of that mapper component we wrote.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Why did IBM buy Lombardi?]]></title>
<link>http://jshurwitz.wordpress.com/2009/12/16/why-did-ibm-buy-lombardi/</link>
<pubDate>Wed, 16 Dec 2009 18:39:13 +0000</pubDate>
<dc:creator>Judith</dc:creator>
<guid>http://jshurwitz.wordpress.com/2009/12/16/why-did-ibm-buy-lombardi/</guid>
<description><![CDATA[Just as I was about to start figuring out my next six predictions for 2010 I had to stop the presses]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Just as I was about to start figuring out my next six predictions for 2010 I had to stop the presses and focus on IBM&#8217;s latest acquisition. IBM just announced this morning that it has purchased Lombardi which focuses on Business Process Management software. Lombardi is one of the independent leaders in the market as well as a strong IBM business partner. The obvious question is why would IBM need yet another business process management platform? After all, IBM has a large portfolio of business process management software &#8212; some homegrown and some from various acquisitions such as Filenet, ILOG, and Webify. I think that the answer is actually quite straight forward. Lombardi&#8217;s offerings are used extensively in business units, by business management to codify complex processes that are at the heart of streamlining how businesses are able to differentiate themselves. Clearly, IBM has recognized the importance of Lombardi to its customers since it has had a long standing partnership with the company.  I think there are two reasons that this acquisition are significant beyond the need to provide direct support for business management. The ability to use Lombardi&#8217;s technology to sell more WebSphere offerings and the connection of business process to IBM&#8217;s Smarter Planet initiative are the two issues that stand out in my mind.</p>
<p>Selling more WebSphere products. There is no question that the WebSphere brand within IBM&#8217;s Software business unit includes a lot of products such as its registry/repository, applications integration, security, and various middleware offerings. IBM likes to sell its products by focusing on entry points &#8212; the immediate problem that the customer is trying to solve. The opportunity to gain direct access to business buyers who start with business process management and then may be see the value of adding new capabilities to that platform.</p>
<p>Supporting the Smarter Planet strategy. Business transformaton often starts by reconstructing process. IBM&#8217;s smarter planet strategy is based on the premise that customers want to be able to transform their businesses utilizing sophisticated technology. Therefore, it is important to look at how business innovation can be supported by IBM&#8217;s huge hardware, software, and services portfolio. The fact that Lombardi&#8217;s technology is the starting point for business units looking at transformational process changes is an important marker in IBM&#8217;s evolution as a company.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Introduction to Oracle Service Bus]]></title>
<link>http://allenwbl.wordpress.com/2009/12/16/introduction-to-oracle-service-bus/</link>
<pubDate>Wed, 16 Dec 2009 07:42:54 +0000</pubDate>
<dc:creator>allenwbl</dc:creator>
<guid>http://allenwbl.wordpress.com/2009/12/16/introduction-to-oracle-service-bus/</guid>
<description><![CDATA[一、Role of OSB OSB is a configuration-based, policy-driven Enterpris Service Bus. OSB facilitates a l]]></description>
<content:encoded><![CDATA[一、Role of OSB OSB is a configuration-based, policy-driven Enterpris Service Bus. OSB facilitates a l]]></content:encoded>
</item>
<item>
<title><![CDATA[关于Oracle RAC和WebLogic Multi Data Source使用的问题说明]]></title>
<link>http://allenwbl.wordpress.com/2009/12/14/%e5%85%b3%e4%ba%8eoracle-rac%e5%92%8cweblogic-multi-data-source%e4%bd%bf%e7%94%a8%e7%9a%84%e9%97%ae%e9%a2%98%e8%af%b4%e6%98%8e/</link>
<pubDate>Mon, 14 Dec 2009 15:34:24 +0000</pubDate>
<dc:creator>allenwbl</dc:creator>
<guid>http://allenwbl.wordpress.com/2009/12/14/%e5%85%b3%e4%ba%8eoracle-rac%e5%92%8cweblogic-multi-data-source%e4%bd%bf%e7%94%a8%e7%9a%84%e9%97%ae%e9%a2%98%e8%af%b4%e6%98%8e/</guid>
<description><![CDATA[今天的Presentation遇到的问题，我查了下，分享下结果。 一.  Oracle RAC Load Balancing with WebLogic Server   1. 在Weblogic上配]]></description>
<content:encoded><![CDATA[今天的Presentation遇到的问题，我查了下，分享下结果。 一.  Oracle RAC Load Balancing with WebLogic Server   1. 在Weblogic上配]]></content:encoded>
</item>
<item>
<title><![CDATA[Gorilla SOA]]></title>
<link>http://riaansnyders.wordpress.com/2009/12/10/gorilla-soa/</link>
<pubDate>Thu, 10 Dec 2009 03:15:38 +0000</pubDate>
<dc:creator>riaansnyders</dc:creator>
<guid>http://riaansnyders.wordpress.com/2009/12/10/gorilla-soa/</guid>
<description><![CDATA[Jim Webber has recently coined the term &#8220;Guerrilla SOA&#8221; to describe a lightweight approa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://riaansnyders.wordpress.com/files/2009/06/untitled2.png"><img class="alignleft size-full wp-image-11" title="logo" src="http://riaansnyders.wordpress.com/files/2009/06/untitled2.png" alt="" width="67" height="58" /></a>Jim Webber has recently coined the term &#8220;<a href="http://www.infoq.com/presentations/webber-guerilla-soa"><span style="color:#0b59b2;">Guerrilla SOA</span></a>&#8221; to describe a lightweight approach to SOA that does not rely on big middleware products. Here is some abstracts:</p>
<p><a href="http://www.infoq.com/news/2009/12/SOA_Gorilla">http://www.infoq.com/news/2009/12/SOA_Gorilla</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Middleware]]></title>
<link>http://bluewarrior.wordpress.com/2009/11/29/middleware/</link>
<pubDate>Sun, 29 Nov 2009 02:55:47 +0000</pubDate>
<dc:creator>bluewarrior</dc:creator>
<guid>http://bluewarrior.wordpress.com/2009/11/29/middleware/</guid>
<description><![CDATA[Pengertian middleware didefinisikan sebagai sebuah aplikasi yang secara logic berada diantara lapisa]]></description>
<content:encoded><![CDATA[Pengertian middleware didefinisikan sebagai sebuah aplikasi yang secara logic berada diantara lapisa]]></content:encoded>
</item>
<item>
<title><![CDATA[Messaging in the Cloud - Any Ideas?]]></title>
<link>http://charlesbrett.wordpress.com/2009/11/25/messaging-in-the-cloud-any-ideas/</link>
<pubDate>Wed, 25 Nov 2009 06:48:50 +0000</pubDate>
<dc:creator>charlesbrett</dc:creator>
<guid>http://charlesbrett.wordpress.com/2009/11/25/messaging-in-the-cloud-any-ideas/</guid>
<description><![CDATA[I have been thinking about Clouds. There is lots of noise (but hardly thunder). One area particularl]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I have been thinking about Clouds.  There is lots of noise (but hardly thunder).  One area particularly attracts&#8230;.</p>
<p>Assume that you have several (or many) separate applications running in your cloud.  You want some or all of these applications to communicate.  How do you do this?</p>
<p>From what I can see (and I do not see Amazon&#8217;s lightweight queuing as sufficient) there is a need for a memory based, inter-system messaging solution.  This has to be able to be fast yet also be made transaction-friendly (there should be a demonstrable trade-off/choice &#8211; within the one solution &#8211; between reliability and speed which the user can select rather than have imposed). </p>
<p>Too me MQSeries is simply too plodding to be broad-based in a cloud.  JMS is also probably too heavyweight.  Something like RV might be more applicable.</p>
<p>There is an opportunity, in my assessment for someone to act and satisfy an opportunity that seems likely to grow and grow &#8211; and be applicable within private clouds, public clouds and especially hybrid public/private clouds.</p>
<p>Suggestions and/or comments are welcome. </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to design Master Detail process in Oracle BPEL]]></title>
<link>http://eoracleapps.wordpress.com/2009/11/24/how-to-design-master-detail-process-in-oracle-bpel/</link>
<pubDate>Tue, 24 Nov 2009 22:05:54 +0000</pubDate>
<dc:creator>eoracleapps</dc:creator>
<guid>http://eoracleapps.wordpress.com/2009/11/24/how-to-design-master-detail-process-in-oracle-bpel/</guid>
<description><![CDATA[In this blog , I will explain with simple example how to design Master/Detail BPEL Flow .For aurdien]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In this blog , I will explain with simple example how to design Master/Detail BPEL Flow .For aurdience who has working knowledge of workflow it is very easy to understand and visualize the process, but Oracle BPEL has made it so simple &#8230;<br />
For complete details Refer <span style="text-decoration:underline;"><span style="color:#0000ff;"><a title="BPEL" href="http://eoracleapps.blogspot.com/2009/11/how-to-desgin-master-detail-flow-in.html" target="_blank">BPEL</a></span></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Allianz will save more than $500,000 in middleware licensing costs as it moves from WebSphere to JBoss.]]></title>
<link>http://bgeorges.wordpress.com/2009/11/24/allianz-will-save-more-than-500000-in-middleware-licensing-costs-as-it-moves-from-websphere-to-jboss/</link>
<pubDate>Tue, 24 Nov 2009 03:33:08 +0000</pubDate>
<dc:creator>bgeorges</dc:creator>
<guid>http://bgeorges.wordpress.com/2009/11/24/allianz-will-save-more-than-500000-in-middleware-licensing-costs-as-it-moves-from-websphere-to-jboss/</guid>
<description><![CDATA[This week&#8217;s great announcement revolves around Allianz&#8217;s $1M saving going Open-Source. T]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This week&#8217;s great announcement revolves around Allianz&#8217;s $1M saving going Open-Source. The <a href="http://www.theaustralian.com.au/australian-it/insurer-slashes-1m-from-costs-with-move-to-linux/story-e6frgakx-1225802661307">theaustralian.com.au article</a> not only mention huge cost reductions by moving to Linux, but Alllianz&#8217;s substential savings are also coming from their move from IBM&#8217;s Websphere Application Server to <a title="JBoss Enterprise Application Platform" href="http://www.jboss.com/products/platforms/application/">JBoss Enterprise Application Platform</a>.</p>
<p>Encouraged by the economic conditions and the growing mindshare around middleware Opensource, we see this trend accelerating accross the world and especially in Asia/Pacific, Japan.</p>
<p>There is 2 ways to start a migration to JBoss middleware.</p>
<ol>
<li>Outsource &#8211; Contact our experts and services team, they offer<a href="http://www.jboss.com/services/consulting/"> migration assessment and pilot services</a></li>
<li>DIY &#8211; JBoss is contributing back the tools and methodology to assist you when migrating.</li>
</ol>
<p>Resources: <a href="http://www.jboss.com/pdf/671457_0608_AmentraWP_web.pdf">Migration Guide</a>(PDF), <a href="http://www.jboss.org/mass">JBoss Migration assistance project</a></p>
<p>If you want to read about success stories in your region or your industry, please check Red Hat Success Stories <a title="Red Hat Success stories" href="http://www.jboss.com/services/consulting/">here</a>.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
