<?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>Sceneric Thinking</title>
	<atom:link href="http://www.sceneric.com/blogs/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.sceneric.com/blogs</link>
	<description>thoughts on technology and industry</description>
	<lastBuildDate>Thu, 28 Jun 2012 14:12:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sceneric Thought Leadership: China Ecommerce today</title>
		<link>http://www.sceneric.com/blogs/?p=103</link>
		<comments>http://www.sceneric.com/blogs/?p=103#comments</comments>
		<pubDate>Thu, 28 Jun 2012 14:12:11 +0000</pubDate>
		<dc:creator>Malcolm Wild</dc:creator>
				<category><![CDATA[Retail]]></category>
		<category><![CDATA[hybris]]></category>
		<category><![CDATA[China]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=103</guid>
		<description><![CDATA[At the current progress in 2013 China is anticipated to overtake the USA for the number one position as the world biggest ecommerce market.]]></description>
			<content:encoded><![CDATA[<ul>
<li>June 24, 2012, Shanghai, China</li>
</ul>
<p>China is a country that encompasses both tradition and change.  This last weekend (23rd June) saw the celebrations of <em>Duānwǔ Jié</em> meaning Double Fifth, also known as the <em>Dragon Boat Festival</em>. The people take time to celebrate traditional activities with family members. From high above China’s first woman in space sent her best wishes to her country and family from the recently launched Shenzhou-9 space mission. Meanwhile another Chinese team on the Jiaolong submarine achieved the deepest manned submersible dive on the Mariana Trench at a depth of 7015m. Again China is showing the world that it continues to push technology boundaries and this momentum also continues in the world of Ecommerce.</p>
<p>Traditional shopping habits are changing fast.  Figures recently released from the China Internet Network Information Center showed that 194 million Chinese people made an online purchase by the end of 2011, with the average customer shopping online over 18 times a year. In revenue terms this equated to 783 billion yuan ($123 Billion USD).  Currently 420 million Chinese users are online with the majority on broadband services in major tier one cities, such as Shanghai, representing a major opportunity for ecommerce.</p>
<p>At the current progress in 2013 China is anticipated to overtake the USA for the number one position as the world biggest ecommerce market.</p>
<p><strong>So where are the Chinese spending their money online?</strong> According to <em>China IntelliConsulting Corp</em>, clothing categories leads the way with almost 80% of online shoppers buying clothes online and it is rising year-on-year. Next in popularity is electronics with 45% of all online consumers buying these products, up +2.5% year-on-year.  Cosmetic products sees the fastest year-on-year online growth with trusted overseas brands leveraging platforms like tmall.com stalls as well as their own sites.</p>
<p><strong>How are the retailers selling online?</strong> From a platform point of view the market has been dominated by the large ecommerce portal players such as Alibaba which provides turnkey sales outlets to a large audience, similar to an Ebay store model in the Europe/USA. This isn’t always the perfect solution as a brand often prefers to have greater control of the online offering and a more tailored user experience.</p>
<p>At other levels China has always had an abundance of local development capabilities at low costs, but the level of maturity and understanding of ecommerce  varies dramatically, meaning retailers can miss basic opportunities such as cross selling and upselling.</p>
<p>We see international retailers moving to China and local businesses are looking to maintain strong branding and improve user experiences to differentiate them in this large market.</p>
<p>Equally customers are expecting a more refined service that works across channels, i.e. mobile, tablet, PC as well as through online marketplaces such as tmall, Amazon China and Alibaba.  The Chinese culture encourages bargaining, so is brutally price conscious,but consumers recognise value in buying from quality brands, which goes some way to explaining why the luxury end of the market is booming.</p>
<p>To take advantage of this growth, time to market and flexibility are key. Today’s technology offerings from ecommerce platform providers Sceneric implements such as hybris (<a href="http://www.hybris.com/">www.hybris.com</a>) offer mature, proven, feature rich platforms giving retailers a long term platform compatible with the requirements of an APAC market, e.g. multi language, multi-currency and highly extensible.</p>
<p><strong>Where will this lead the market in 2012?</strong> Well the predications are everywhere, but from on the ground in China we are seeing no halt to the local appetite and its only just getting started.  Mobile remains a key channel arguably as critical as the PC user base.  As international brands expand further into China they need ecommerce capabilities tailored to the local market and its channel outlets.  Education still remains a challenge both for the consumer and retailer as many commodity services for Western ecommerce, e.g. SOE, email marketing haven’t established the same adoption and maturity yet, but will do in time.  As the consumer trust levels in product quality, delivery standards and payment security improve this will further accelerate the growth and it is perfectly feasible to see online ecommerce usage surpass any western market.</p>
<p><em>“China represents a huge and viable ecommerce market with outstanding growth figures, especially for premium retailers where demand from the Chinese middle class online shopper is significant. However the market is still maturing and requires a significant amount of local knowledge and strong local partners to help make ecommerce work here. Sceneric’s APAC operations combine our global delivery capabilities with local market expertise to help our clients businesses get online the right way.&#8221;</em></p>
<p><em>Malcolm Wild, Managing Director, Sceneric  Hong Kong</em></p>
<p>Sources:</p>
<ul>
<li>China IntelliConsulting Corp</li>
<li>China Daily</li>
<li>China Internet Network Information Center (<a href="http://www.cnnic.net.cn/">http://www.cnnic.net.cn</a>)</li>
<li>U-co.com</li>
<li>tmall.com</li>
<li>Sceneric.com</li>
</ul>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>About Sceneric </strong></p>
<p>Sceneric is an ecommerce solutions provider that works closely with its customers to help them achieve leadership positions in their markets. We bring a combination of in depth industry knowledge, technical excellence and delivery expertise to support the operational objectives of our customers.</p>
<p>Founded in 2006, with offices in Europe and Asia-Pacific, Sceneric works with industry leaders across Retail and Finance sectors and is proud to name clients as Legal &amp; General, B&amp;Q, LOVEFiLM, Molton Brown, Stanley Gibbons, Simplyhealth, Friends Provident, HL-Hybris, Mouchel, mgmadvantage, Zurich amongst many others.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=103</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recognising Launch Anxiety</title>
		<link>http://www.sceneric.com/blogs/?p=98</link>
		<comments>http://www.sceneric.com/blogs/?p=98#comments</comments>
		<pubDate>Thu, 08 Dec 2011 02:01:02 +0000</pubDate>
		<dc:creator>jimherbert</dc:creator>
				<category><![CDATA[Delivery]]></category>
		<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=98</guid>
		<description><![CDATA[With every project there will come a time during testing where the bugs are being raised, and fixed and classified in the usual way:

Blocking bug &#8211; can&#8217;t launch with one of these
Major bug &#8211; don&#8217;t want to launch with more than X of these
Minor bug &#8211; don&#8217;t want to launch with more than Y of [...]]]></description>
			<content:encoded><![CDATA[<p>With every project there will come a time during testing where the bugs are being raised, and fixed and classified in the usual way:</p>
<ul>
<li>Blocking bug &#8211; can&#8217;t launch with one of these</li>
<li>Major bug &#8211; don&#8217;t want to launch with more than X of these</li>
<li>Minor bug &#8211; don&#8217;t want to launch with more than Y of these</li>
</ul>
<p>No matter how well the project has gone, there will come a point when the pressure is on to launch and suddenly those Major&#8217;s seem like Blockers or &#8220;actually, this Minor is more important than this Blocker can you work on that&#8221;.  At Sceneric we call this &#8220;launch anxiety&#8221; and it can stop a project on the brink of success.  How to recognise it?</p>
<ul>
<li>Track the bugs in a decent bug / task tracking package (we use Jira &amp; Greenhopper)</li>
<li>If, close to launch deadline, there is a sudden upward trend of Blocking bugs &#8211; sit down and discuss as a team.  Are these *really* Blocking bugs, or is it a way of delaying launch (which might be useful from a dependency perspective), a genuine fear of launching or simply a way to get &#8220;best value for money&#8221; in the dev phase</li>
</ul>
<p>If launch anxiety is taking hold, it&#8217;s important to clients and vendors alike to remember the cost of not launching.  We often see 100% increases in online revenue with new sites &#8211; it begs the question &#8220;is this bug <strong>really</strong> stopping me from launching my site and missing out on that extra cash?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magnolia Conference 2009</title>
		<link>http://www.sceneric.com/blogs/?p=69</link>
		<comments>http://www.sceneric.com/blogs/?p=69#comments</comments>
		<pubDate>Mon, 28 Sep 2009 16:31:39 +0000</pubDate>
		<dc:creator>jonholmes</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Magnolia]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Magnolia Conference]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=69</guid>
		<description><![CDATA[First of all, Sceneric congratulates the Magnolia team for running such a great event &#8211; Definitely worthwhile, and we look forward to next year&#8217;s.
It was good to see so many different groups represented, the whole range through users, customers, integrators (even competitors ?!?!).
Whilst it&#8217;s nice to see all these people, from a business perspective it [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, <a href="http://www.sceneric.com">Sceneric</a> congratulates the <a href="http://www.magnolia-cms.com">Magnolia</a> team for running such a great event &#8211; Definitely worthwhile, and we look forward to next year&#8217;s.</p>
<p>It was good to see so many different groups represented, the whole range through users, customers, integrators (even competitors ?!?!).</p>
<p>Whilst it&#8217;s nice to see all these people, from a business perspective it represents a whole lot more. In the cliched &#8216;fractured&#8217; CMS market place, it is essential for Sceneric to be able to demonstrate to potential customers the depth, reach and commitment of the Magnolia community.<br />
Being able to directly speak to different members of the community and understand what they have been doing, allows us to speak to customers with more confidence<br />
about not only what <em>could</em> be achieved, but more importantly , what <em>has</em> been achieved.</p>
<p>Obviously, <a href="http://www.sceneric.com/index.php?page=clients">customers</a> don&#8217;t want to feel like they are the guinea pigs for a weakly supported fledgling 1.0 product, therefore having the knowledge of and confidently be able to refer to similar projects, provides an invaluable tool for the promotion of Magnolia.</p>
<p>Up until now, we knew generally of different groups utilising Magnolia in a variety of different ways, but this conference has provided a focal point for the pooling and and sharing of the details of those different projects.</p>
<p>I&#8217;m confident that we&#8217;ll all look back at this conference as another significant step towards Magnolia further establishing itself as a main player in the CMS space.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=69</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magnolia OEM&#8217;d</title>
		<link>http://www.sceneric.com/blogs/?p=85</link>
		<comments>http://www.sceneric.com/blogs/?p=85#comments</comments>
		<pubDate>Mon, 28 Sep 2009 16:30:43 +0000</pubDate>
		<dc:creator>jonholmes</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Enterprise Integration]]></category>
		<category><![CDATA[Financial Services]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Magnolia]]></category>
		<category><![CDATA[Magnolia Conference]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=85</guid>
		<description><![CDATA[As well as being System Integrators, Sceneric also have a Software Development arm, currently developing products for the Financial Services industry.
Therefore, at the Magnolia Conference, it was interesting to see the proposition the guys from NRG Edge are putting together. They are  currently building an online banking solution, the Marketing Portal aspect of which [...]]]></description>
			<content:encoded><![CDATA[<p>As well as being System Integrators, Sceneric also have a Software Development arm, currently developing <a href="http://www.scenericproposalsystem.com/" target="_blank">products</a> for the Financial Services industry.</p>
<p>Therefore, at the <a href="http://www.magnolia-cms.com/home/conference/">Magnolia Conference</a>, it was interesting to see the proposition the guys from NRG Edge are putting together. They are  currently building an online banking solution, the Marketing Portal aspect of which is driven by Magnolia.</p>
<p>We like this on a number of levels.</p>
<p>Firstly, it&#8217;s another great example of how Magnolia is being used outside of it&#8217;s &#8216;comfort zone&#8217; web CMS area, it&#8217;s really encouraging to see an intermediary organisation making a commitment like this to the Magnolia solution. It all acts as further validation as to the quality of the Magnolia product for when we find ourselves speaking to potential clients.</p>
<p>Further, for us maybe in the future, it gives us some ideas about how we can leverage our knowledge of the Magnolia solution within our own offerings, providing the means for clients to publish and maintain products, brands and web content through a single holistic experience for both authors and users.</p>
<p>Plenty of food for thought.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=85</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magnolia On Air &#8211; A Demonstration in Adaptability</title>
		<link>http://www.sceneric.com/blogs/?p=74</link>
		<comments>http://www.sceneric.com/blogs/?p=74#comments</comments>
		<pubDate>Mon, 28 Sep 2009 16:28:45 +0000</pubDate>
		<dc:creator>jonholmes</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Enterprise Integration]]></category>
		<category><![CDATA[Magnolia]]></category>
		<category><![CDATA[Magnolia Conference]]></category>
		<category><![CDATA[Magnolia On Air]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=74</guid>
		<description><![CDATA[So, I&#8217;ve seen it on the Magnolia website, but this was the first time I&#8217;d seen in detail the On Air solution.
I&#8217;m not the editor of a large scale Broadcast website, so may not be the best person to comment, however, from Peter&#8217;s demonstration, it was possible to see the ease with which the Rich [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve seen it on the Magnolia website, but this was the first time I&#8217;d seen in detail the <a href="http://www.magnolia-cms.com/onair">On Air</a> solution.</p>
<p>I&#8217;m not the editor of a large scale Broadcast website, so may not be the best person to comment, however, from Peter&#8217;s demonstration, it was possible to see the ease with which the Rich Media publication process could be managed.</p>
<p>I can only assume this is exactly the kind of ease of use that will endear it to time pressed journalists &#8211; It was  very simple to operate, it was very &#8216;Magnolia&#8217;.</p>
<p>As well as being impressed by the product, was was also great to see was the fact that Magnolia was being integrated with another impressive solution.<br />
It&#8217;s this kind of approach that demonstrates that Magnolia exists as more than &#8216;just&#8217; a Web CMS &#8211; It demonstrates the capability of magnolia to be transformed from a generic product to one that supports very specific industry verticals.</p>
<p>As Systems Integrators ourselves, it acts as a great standard bearer for the potential of Magnolia to be integrated with other products and systems.</p>
<p>Congratulations to the Magnolia and futureLAB teams.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=74</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrating SVN and Mantis on WAMP</title>
		<link>http://www.sceneric.com/blogs/?p=62</link>
		<comments>http://www.sceneric.com/blogs/?p=62#comments</comments>
		<pubDate>Tue, 12 May 2009 22:30:07 +0000</pubDate>
		<dc:creator>jimherbert</dc:creator>
				<category><![CDATA[Delivery]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[change control]]></category>
		<category><![CDATA[mantis]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=62</guid>
		<description><![CDATA[A superb blog article here:
http://alt-tag.com/blog/archives/2006/11/integrating-mantis-and-subversion/
describes how to integrate SVN and Mantis, however the post-commit hook is for linux.  To do this on windows:
post-commit.bat
SET REPOS=%1
SET REV=%2
SET TMP_LOG=%TEMP%.\svnfileTMP-%REV%
D:\&#60;svnhome&#62;\bin\svnlook log -r %REV% %REPOS%&#62;%TMP_LOG% 

D:\&#60;phphome&#62;\php.exe -q D:\&#60;mantishome&#62;\core\checkin.php &#60; %TMP_LOG%
]]></description>
			<content:encoded><![CDATA[<p>A superb blog article here:</p>
<p><a href="http://alt-tag.com/blog/archives/2006/11/integrating-mantis-and-subversion/" target="_blank">http://alt-tag.com/blog/archives/2006/11/integrating-mantis-and-subversion/</a></p>
<p>describes how to integrate SVN and Mantis, however the post-commit hook is for linux.  To do this on windows:</p>
<pre><strong>post-commit.bat</strong></pre>
<pre>SET REPOS=%1
SET REV=%2
SET TMP_LOG=%TEMP%.\svnfileTMP-%REV%
D:\&lt;svnhome&gt;\bin\svnlook log -r %REV% %REPOS%&gt;%TMP_LOG% 

D:\&lt;phphome&gt;\php.exe -q D:\&lt;mantishome&gt;\core\checkin.php &lt; %TMP_LOG%</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=62</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just what is Social Commerce?</title>
		<link>http://www.sceneric.com/blogs/?p=50</link>
		<comments>http://www.sceneric.com/blogs/?p=50#comments</comments>
		<pubDate>Thu, 07 May 2009 21:54:13 +0000</pubDate>
		<dc:creator>jimherbert</dc:creator>
				<category><![CDATA[ATG]]></category>
		<category><![CDATA[Financial Services]]></category>
		<category><![CDATA[Industries]]></category>
		<category><![CDATA[Life and Pensions]]></category>
		<category><![CDATA[Mortgages]]></category>
		<category><![CDATA[Retail]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Bazaarvoice]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[social commerce]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=50</guid>
		<description><![CDATA[Social Commerce is a new phrase which is a mash up of two of the internet's most pervasive technologies - ecommerce and social networks, but is it a real phenomenon and what's the size of the market?]]></description>
			<content:encoded><![CDATA[<p>Social Commerce is a new phrase which is a mash up of two of the internet&#8217;s most pervasive technologies &#8211; ecommerce and social networks, but is it a real phenomenon and what&#8217;s the size of the market?</p>
<p>With average conversion improvements of 40%, Social Commerce is real and there are 2 key aspects; <em>Recommendations</em> and <em>the power of groups</em>.  Recommendations is something that’s 2/3 years old on the web – it’s basically where a product shows customer reviews from real people.  Our partners at Bazaarvoice are leaders in this respect and have some interesting statistics – 85% of people will trust a customer review over the site content and having reviews increases a conversion by up to 70% (on a reviewed site, 0 reviews leads to a –30% downturn, 1-5 reviews 20% increase – even if they’re negative, 5-15 reviews 40%&#8230;).</p>
<p>The power of groups is all about automatically twittering / facebook status updates during the path to purchase, with the real power being that a friends list contains groups of people who are demographically similar.   For example, a customer buy&#8217;s a Plasma TVs and his Twitter account is updated:  “Jim bought a new 46” flat screen”.  Human beings are status driven animals, and posts like this will compel friends think about buying buy a 50&#8243; flat screen.  Our partners at ATG support this automatically with version 9.0, and Bazaarvoice support this with their SocialVoice product again with measurable impact on business.</p>
<p>SKU based retail (clothing, electronics etc.) is taking a lead in social commerce but other industries will catch-up and as always the first to implement will benefit from being the first to market.  For instance, recommendations are becoming common for direct to consumer financial services products such as credit cards, but is not common in insurance.  The first health, general and life insurance companies to implement recommendations should see a big increase in direct to consumer sales.  Again, social network updates will also impact this market, if a friend broadcasts that they received 12 months for the price of 10 on home insurance with Provider X, it&#8217;s likely to impact sales in a positive fashion.</p>
<p>The next step is to embed the path to purchase into the social network.  With the ease of use of the Facebook and OpenSocial APIs this is a fairly trivial task and one which could lead to a revolution in internet commerce.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=50</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quality not quantity</title>
		<link>http://www.sceneric.com/blogs/?p=36</link>
		<comments>http://www.sceneric.com/blogs/?p=36#comments</comments>
		<pubDate>Sun, 15 Mar 2009 10:08:02 +0000</pubDate>
		<dc:creator>jimherbert</dc:creator>
				<category><![CDATA[Delivery]]></category>
		<category><![CDATA[Enterprise Integration]]></category>
		<category><![CDATA[Financial Services]]></category>
		<category><![CDATA[Industries]]></category>
		<category><![CDATA[Investment Banking]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Life and Pensions]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Mule]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Axis]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[CXF]]></category>
		<category><![CDATA[expert]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[offshore]]></category>
		<category><![CDATA[Webservices]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=36</guid>
		<description><![CDATA[As an SME consulting company, we often come up against large offshore development set-ups and the classic accountancy argument &#8220;We&#8217;ll use them as their day rates are a fraction of yours&#8221;.  There is an obvious problem with this &#8211; software development is complicated and expertise gained over years of coding, integrating and testing can lead [...]]]></description>
			<content:encoded><![CDATA[<p>As an SME consulting company, we often come up against large offshore development set-ups and the classic accountancy argument &#8220;We&#8217;ll use them as their day rates are a fraction of yours&#8221;.  There is an obvious problem with this &#8211; software development is complicated and expertise gained over years of coding, integrating and testing can lead to orders of magnitude of improvement in speed of development and subsequent quality.</p>
<p>We&#8217;ve recently come up against an excellent example of this.  While on client site, we were integrating to a credit card provider in Mule via web services.  Mule supports CXF, Axis 1 and Axis 2 as Java WS frameworks, and they all have positives and negatives so we advised the client to use the same framework as their offshore supplier had used in the back-office system to ensure support and maintenance was made easier.  We subsequently discovered that, as they had no experience of Web Service integration, the offshore supplier had used HTTPConnection and DOM &#8211; i.e. they were hard-coding each web service call.</p>
<p>That afternoon, we integrated all 5 webservices and used Mule&#8217;s definition XML to model the control process.  In 4 hours work we had acheived the equivalent of over 200 man days of offshore development.</p>
<p>Expertise was obviously the clear winner here!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrate Axis into Magnolia</title>
		<link>http://www.sceneric.com/blogs/?p=28</link>
		<comments>http://www.sceneric.com/blogs/?p=28#comments</comments>
		<pubDate>Thu, 05 Feb 2009 22:38:19 +0000</pubDate>
		<dc:creator>jimherbert</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Enterprise Integration]]></category>
		<category><![CDATA[JSR170]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Magnolia]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Package Implementation]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Integration]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=28</guid>
		<description><![CDATA[A few months ago we created a proof of concept to access the Magnolia JCR container using Webservices so that a PHP based site we were building could access new items within an Enterprise Class CMS.  It turned out to be remarkably easy:
To integrate Axis 1.4 into Magnolia:

Download the Axis distribution
Copy the jars into the [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago we created a proof of concept to access the Magnolia JCR container using Webservices so that a PHP based site we were building could access new items within an Enterprise Class CMS.  It turned out to be remarkably easy:</p>
<p>To integrate Axis 1.4 into Magnolia:</p>
<ol>
<li>Download the Axis distribution</li>
<li>Copy the jars into the magnoliaAuthor and magnoliaPublic WEB-INF/lib directories</li>
<li>Copy the servlet declarations from the axis web.xml into the magnolia web.xml in both auth and pub</li>
<li>Open AdminCentral and browse to Configuration</li>
<li>Open server/filters/servlets and copy log4j node, rename to AxisServlet</li>
<li>Open AxisServlet/mappings/&#8211;magnolia-pages&#8211;/patten and change to /services/*</li>
<li>Change AxisServlet/servletClass to org.apache.axis.transport.http.AxisServlet</li>
<li>Change AxisServlet/servletName to AxisServet (to match the web.xml servletname)</li>
</ol>
<p>If you now deploy a class through jws or wsdl methods (by coping the classes, wsdl and .wsdd files) into Magnolia you will be able to access it through &lt;host&gt;/&lt;maginstance&gt;/services/ServiceName?wsdl</p>
<p>You might want to bypass Magnolia security during development, to do that:</p>
<ol>
<li>Open AdminCentral and browse to Configuration</li>
<li>Open server/filters/uriSecurity/bypasses</li>
<li>Create a new content node &#8220;services&#8221;</li>
<li>Create 2 new data nodes; &#8220;services/class&#8221; with data info.magnolia.voting.voters.URIStartsWithVoter and &#8220;services/pattern&#8221; with data /services</li>
</ol>
<p>For our demo, we simply queried the API for a &#8220;text&#8221; content node based on a path that was passed into the method:<br />
<code><br />
public String getContent (String name) throws Exception {<br />
String returnContent = new String();<br />
returnContent="";<br />
try {<br />
//get the current context<br />
Context context = MgnlContext.getSystemContext();<br />
//get a hierarchy manager and lookup the content node<br />
HierarchyManager mgr = context.getHierarchyManager(ContentRepository.WEBSITE);<br />
Content uriContent = mgr.getContent(name);<br />
if(uriContent==null){<br />
//oops<br />
returnContent+=" content is null";<br />
} else {<br />
//get the data collection and return the text node<br />
for(Iterator i = uriContent.getNodeDataCollection().iterator(); i.hasNext();) {<br />
NodeData nodeData = (NodeData) i.next();<br />
String nodeName = nodeData.getName();<br />
if (nodeName.equals("text")) {<br />
returnContent=nodeData.getString();<br />
}<br />
}<br />
}<br />
} catch (RepositoryException e) {<br />
throw new Exception(e.getMessage());<br />
}<br />
return returnContent;<br />
}<br />
</code><br />
Axis presents this with the following WSDL:</p>
<pre id="line1"><span class="pi">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
&lt;<span class="start-tag">wsdl:definitions</span><span class="attribute-name"> targetNamespace</span>=<span class="attribute-value">"http://test.sceneric.com" </span><span class="attribute-name">xmlns:apachesoap</span>=<span class="attribute-value">"http://xml.apache.org/xml-soap" </span><span class="attribute-name">xmlns:impl</span>=<span class="attribute-value">"http://test.sceneric.com" </span><span class="attribute-name">xmlns:intf</span>=<span class="attribute-value">"http://test.sceneric.com" </span><span class="attribute-name">xmlns:wsdl</span>=<span class="attribute-value">"http://schemas.xmlsoap.org/wsdl/" </span><span class="attribute-name">xmlns:wsdlsoap</span>=<span class="attribute-value">"http://schemas.xmlsoap.org/wsdl/soap/" </span><span class="attribute-name">xmlns:xsd</span>=<span class="attribute-value">"http://www.w3.org/2001/XMLSchema"</span>&gt;
<span class="comment">&lt;!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)--&gt;</span>
 &lt;<span class="start-tag">wsdl:types</span>&gt;
  &lt;<span class="start-tag">schema</span><span class="attribute-name"> elementFormDefault</span>=<span class="attribute-value">"qualified" </span><span class="attribute-name">targetNamespace</span>=<span class="attribute-value">"http://test.sceneric.com" </span><span class="attribute-name">xmlns</span>=<span class="attribute-value">"http://www.w3.org/2001/XMLSchema"</span>&gt;
   &lt;<span class="start-tag">element</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContent"</span>&gt;
    &lt;<span class="start-tag">complexType</span>&gt;
     &lt;<span class="start-tag">sequence</span>&gt;
      &lt;<span class="start-tag">element</span><span class="attribute-name"> name</span>=<span class="attribute-value">"name" </span><span class="attribute-name">type</span>=<span class="attribute-value">"xsd:string"</span><span class="attribute-name">/</span>&gt;
     &lt;/<span class="end-tag">sequence</span>&gt;</pre>
<pre id="line12">    &lt;/<span class="end-tag">complexType</span>&gt;
   &lt;/<span class="end-tag">element</span>&gt;
   &lt;<span class="start-tag">element</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContentResponse"</span>&gt;
    &lt;<span class="start-tag">complexType</span>&gt;
     &lt;<span class="start-tag">sequence</span>&gt;
      &lt;<span class="start-tag">element</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContentReturn" </span><span class="attribute-name">type</span>=<span class="attribute-value">"xsd:string"</span><span class="attribute-name">/</span>&gt;
     &lt;/<span class="end-tag">sequence</span>&gt;
    &lt;/<span class="end-tag">complexType</span>&gt;
   &lt;/<span class="end-tag">element</span>&gt;</pre>
<pre id="line21">  &lt;/<span class="end-tag">schema</span>&gt;
 &lt;/<span class="end-tag">wsdl:types</span>&gt;

   &lt;<span class="start-tag">wsdl:message</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContentResponse"</span>&gt;

      &lt;<span class="start-tag">wsdl:part</span><span class="attribute-name"> element</span>=<span class="attribute-value">"impl:getContentResponse" </span><span class="attribute-name">name</span>=<span class="attribute-value">"parameters"</span><span class="attribute-name">/</span>&gt;

   &lt;/<span class="end-tag">wsdl:message</span>&gt;

   &lt;<span class="start-tag">wsdl:message</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContentRequest"</span>&gt;</pre>
<pre id="line32">      &lt;<span class="start-tag">wsdl:part</span><span class="attribute-name"> element</span>=<span class="attribute-value">"impl:getContent" </span><span class="attribute-name">name</span>=<span class="attribute-value">"parameters"</span><span class="attribute-name">/</span>&gt;

   &lt;/<span class="end-tag">wsdl:message</span>&gt;

   &lt;<span class="start-tag">wsdl:portType</span><span class="attribute-name"> name</span>=<span class="attribute-value">"TestWebService"</span>&gt;

      &lt;<span class="start-tag">wsdl:operation</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContent"</span>&gt;

         &lt;<span class="start-tag">wsdl:input</span><span class="attribute-name"> message</span>=<span class="attribute-value">"impl:getContentRequest" </span><span class="attribute-name">name</span>=<span class="attribute-value">"getContentRequest"</span><span class="attribute-name">/</span>&gt;

         &lt;<span class="start-tag">wsdl:output</span><span class="attribute-name"> message</span>=<span class="attribute-value">"impl:getContentResponse" </span><span class="attribute-name">name</span>=<span class="attribute-value">"getContentResponse"</span><span class="attribute-name">/</span>&gt;</pre>
<pre id="line43">      &lt;/<span class="end-tag">wsdl:operation</span>&gt;

   &lt;/<span class="end-tag">wsdl:portType</span>&gt;

   &lt;<span class="start-tag">wsdl:binding</span><span class="attribute-name"> name</span>=<span class="attribute-value">"TestWebServiceSoapBinding" </span><span class="attribute-name">type</span>=<span class="attribute-value">"impl:TestWebService"</span>&gt;

      &lt;<span class="start-tag">wsdlsoap:binding</span><span class="attribute-name"> style</span>=<span class="attribute-value">"document" </span><span class="attribute-name">transport</span>=<span class="attribute-value">"http://schemas.xmlsoap.org/soap/http"</span><span class="attribute-name">/</span>&gt;

      &lt;<span class="start-tag">wsdl:operation</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContent"</span>&gt;

         &lt;<span class="start-tag">wsdlsoap:operation</span><span class="attribute-name"> soapAction</span>=<span class="attribute-value">""</span><span class="attribute-name">/</span>&gt;</pre>
<pre id="line55">         &lt;<span class="start-tag">wsdl:input</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContentRequest"</span>&gt;

            &lt;<span class="start-tag">wsdlsoap:body</span><span class="attribute-name"> use</span>=<span class="attribute-value">"literal"</span><span class="attribute-name">/</span>&gt;

         &lt;/<span class="end-tag">wsdl:input</span>&gt;

         &lt;<span class="start-tag">wsdl:output</span><span class="attribute-name"> name</span>=<span class="attribute-value">"getContentResponse"</span>&gt;

            &lt;<span class="start-tag">wsdlsoap:body</span><span class="attribute-name"> use</span>=<span class="attribute-value">"literal"</span><span class="attribute-name">/</span>&gt;

         &lt;/<span class="end-tag">wsdl:output</span>&gt;</pre>
<pre id="line67">      &lt;/<span class="end-tag">wsdl:operation</span>&gt;

   &lt;/<span class="end-tag">wsdl:binding</span>&gt;

   &lt;<span class="start-tag">wsdl:service</span><span class="attribute-name"> name</span>=<span class="attribute-value">"TestWebServiceService"</span>&gt;

      &lt;<span class="start-tag">wsdl:port</span><span class="attribute-name"> binding</span>=<span class="attribute-value">"impl:TestWebServiceSoapBinding" </span><span class="attribute-name">name</span>=<span class="attribute-value">"TestWebService"</span>&gt;

         &lt;<span class="start-tag">wsdlsoap:address</span><span class="attribute-name"> location</span>=<span class="attribute-value">"http://localhost:8800/magnoliaAuthor/services/TestWebService"</span><span class="attribute-name">/</span>&gt;

      &lt;/<span class="end-tag">wsdl:port</span>&gt;</pre>
<pre id="line79">   &lt;/<span class="end-tag">wsdl:service</span>&gt;

&lt;/<span class="end-tag">wsdl:definitions</span>&gt;</pre>
<p>and an example of this in action is:</p>
<pre id="line1"><span class="pi">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
&lt;soapenv:Envelope&gt;
−
&lt;soapenv:Body&gt;
−
&lt;getContentResponse&gt;
−
&lt;ns1:getContentReturn&gt;
&lt;p&gt;yadda yadda yadda&lt;/p&gt;
&lt;/ns1:getContentReturn&gt;
&lt;/getContentResponse&gt;
&lt;/soapenv:Body&gt;
&lt;/soapenv:Envelope&gt;</pre>
<p>Of course, a twist to this approach would be to wrap the JSP rendering with Axis to take advantage of the tag libraries. We tested this with PHP 5&#8217;s SOAP Client and successfully read data from Magnolia.  In a production environment we would obviously use XPath or the Query Builder in order to search the repository, and return more complex results.</p>
<p>You can see a video demonstration of this here: <a href="http://bit.ly/uPreky">http://bit.ly/uPreky</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why CMIS ? (Content Management Interoperability Services)</title>
		<link>http://www.sceneric.com/blogs/?p=20</link>
		<comments>http://www.sceneric.com/blogs/?p=20#comments</comments>
		<pubDate>Wed, 04 Feb 2009 22:51:42 +0000</pubDate>
		<dc:creator>jonholmes</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[JSR170]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>

		<guid isPermaLink="false">http://www.sceneric.com/blogs/?p=20</guid>
		<description><![CDATA[As a Java teccy who has spent a significant proportion of the last few years designing, building, specifying, analysing and frequently criticising CMS solutions it was pleasing to watch the development of the Java Content Repository (JSR 170 and JSR 283) Specification – It felt as though it was a significant step towards standardising what [...]]]></description>
			<content:encoded><![CDATA[<p>As a Java teccy who has spent a significant proportion of the last few years designing, building, specifying, analysing and frequently criticising CMS solutions it was pleasing to watch the development of the Java Content Repository (JSR 170 and JSR 283) Specification – It felt as though it was a significant step towards standardising what up until now (and remains so) a fractured and frustratingly immature technology sector.</p>
<p>I’ve just finished working with a government department that was looking to further utilise the large volume of content (running to millions of items) stored in their internal web based knowledge system (essentially a glorified web CMS). However, this department was hamstrung by the fact that the repository was built on a well known, Java based, proprietary CMS solution with a nearly non-existent API, meaning that we either exposed the information via the CMS’ own portal product (a non-starter, bearing in mind we were trying to move away from the proprietary nature of the system) or, as happened implement our own interface&#8230;</p>
<p>&#8230;Which is how we get to CMIS, which simply put is a specification to define a set of protocols allowing CRUD like operations in order to interact with a Content Repository via web services – This has the potential to make Systems Integrators lives easier, and therefore offer better value to customers.<br />
CMIS could be seen as moving the ideas of JCR further along – Indeed, the groups looking to make this happen are the same as those who worked towards the JCR specs. However, on this occasion, Microsoft are also along for the ride.</p>
<p>EMC have already released a version of their flagship Documentum product that complies with the CMIS standards and others are already looking to do the same.</p>
<p>CMIS is by no means an accepted standard, however it potentially promises solve a number of core business requirements (seamlessly linking apps. to multiple repositories, enabling the decoupling of management apps from the content repository etc.) However, it still has a long way to go, but we will be watching closely to see how it develops.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sceneric.com/blogs/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
