<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Composite Applications</title>
    <link>http://scn.sap.com/community/bpm/composite-applications/blog</link>
    <description>Composite applications, or "composites," access existing functionality via service-enabled interfaces. SAP NetWeaver Composition Environment provides a toolset and runtime for developing, running, and efficiently managing composite applications based on SOA principles. It builds on proven technologies that have been enhanced and integrated to provide greater functionality and flexibility.</description>
    <pubDate>Mon, 23 Jul 2012 18:44:02 GMT</pubDate>
    <generator>Jive SBS 5.0.1.1  (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2012-07-23T18:44:02Z</dc:date>
    <item>
      <title>Transaction Management Issues While Dealing with Underlying Database and Proposed Resolutions in CE 7.1.1 SP03</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2012/07/23/transaction-management-issues-while-dealing-with-underlying-database-and-proposed-resolutions-in-ce-711-sp03</link>
      <description>&lt;!-- [DocumentBodyStart:70684f4b-f17e-4e30-967e-4be7aa673006] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;SAP NetWeaver provides a framework called the Composite Application Framework which supports the development of composite applications on SAP NetWeaver platform based on SAP assets like SAP ERP, SAP CRM, etc as well as non-SAP assets available in the landscape. This framework also comes up with a persistence layer for storing business data. Transaction management while dealing with business data is a major challenge. This write-up is about pinpointing some pain points in that area.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h2&gt;Business Case&lt;/h2&gt;&lt;p&gt;Say, for example I have two CAF Application Services CAF-App Service1 and CAF-App Service2. CAF-App Service1 is calling several other CAF-App services having functionalities like Functionality1, Functionality2&amp;#8230; for serving specific business purposes. Now say, CAF-App Service1 is calling CAF-App Service2 for the business functionality Functionality5 where business data needs to be updated in CAF-BO. But Functionality7 needs the updated business data that was updated by Functionality5 which is now not available because of improper transaction management.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-69602-122326/CAF+Transaction+Handling.png"&gt;&lt;img alt="CAF Transaction Handling.png" class="jive-image-thumbnail jive-image" height="400" onclick="" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-69602-122326/594-400/CAF+Transaction+Handling.png" width="594"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Proposed Solution:&lt;/h2&gt;&lt;ol style="list-style-type: decimal;"&gt;&lt;li&gt;Terminate T1 transaction so that CAF BO &amp;ldquo;UPDATE&amp;#8221; operation is completed and data is committed in database. Next call T2 transaction as Asynchronous call to execute CAF BO &amp;ldquo;READ&amp;#8221; operation.&lt;ul style="list-style-type: disc;"&gt;&lt;li&gt;&lt;em style="color: red;"&gt;The above solution could have potential performance impact since this change will impact many DCs and for every create/update operation an Async call has to be spawned leading to potential performance overhead.&amp;#160; &lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; For doing that we need to change the transaction type of the CAF Service Operation to &lt;strong&gt;REQUIRES_NEW&lt;/strong&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2. Use Bean Management Transaction*&lt;/p&gt;&lt;ul style="list-style-type: disc;"&gt;&lt;li&gt;Write Annotation @TransactionManagement(TransactionManagementType.BEAN) at the BeanImpl class&lt;/li&gt;&lt;li&gt;Set autoCommit false&lt;/li&gt;&lt;li&gt;Write commit explicitly at the DAO class&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:70684f4b-f17e-4e30-967e-4be7aa673006] --&gt;</description>
      <category domain="http://scn.sap.com/community/bpm/composite-applications/blog/tags">composition_environment_(ce)</category>
      <pubDate>Mon, 23 Jul 2012 18:44:02 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2012/07/23/transaction-management-issues-while-dealing-with-underlying-database-and-proposed-resolutions-in-ce-711-sp03</guid>
      <dc:creator>Sunit K Roy</dc:creator>
      <dc:date>2012-07-23T18:44:02Z</dc:date>
      <clearspace:dateToText>10 months, 4 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/transaction-management-issues-while-dealing-with-underlying-database-and-proposed-resolutions-in-ce-711-sp03</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=69602</wfw:commentRss>
    </item>
    <item>
      <title>DC Interplay and Public Part (PP) usage</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2011/03/23/dc-interplay-and-public-part-pp-usage</link>
      <description>&lt;!-- [DocumentBodyStart:abdee1ee-06f7-4233-8c9e-9cae942d9ce7] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-57214-71277/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-57214-71277/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In my previous &lt;a class="jive-link-blog-small" data-containerId="9156" data-containerType="2020" data-objectId="22624" data-objectType="37" href="http://scn.sap.com/people/arvind.goel/blog"&gt;blogs&lt;/a&gt;, I have talked about componentization, why it matters and why it is important for an Composite Application to be able to evolve in future. I emphasized on structuring the application code in different Software Components (SCs) &amp;amp; Development Components (DCs) following the design principles of &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Separation_of_concerns"&gt;Separation of Concerns&lt;/a&gt; (SoC) to achieve flexible design.&amp;#160;&lt;/p&gt;&lt;p class="Default"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;It is also important how these different components communicate. &amp;#160;In today&amp;rsquo;s blog, I will focus mainly on how the components within a composite application should interact with each other. &lt;/p&gt;&lt;p&gt;Well, when we talk about the interaction between components within a composite application, we all know it happens through well defined interfaces in the form of Public Parts.&amp;#160; Each DC exposes its functionality as Public Parts, which can be used by other components. Keeping this as a baseline, I would like to introduce the concept of so-called Fa&amp;#231;ade DC. Fa&amp;#231;ade DCs do not have any functionality to expose, but instead they act as Deployment Units and they are also responsible for exposing referenced Pubic Parts provided by the internal DCs within the same Software Component. This concept is known as &lt;strong&gt;Public Part Forwarding&lt;/strong&gt; which I will describe here.&lt;/p&gt;&lt;p&gt;I will continue with the same example of Common/Model SC I have elaborated on in detail in my preceding blogs. As said, in this particular SC, each DC (srv/interfaces, model &amp;amp; utils) exposes a Public Part. These Public Parts should not be accessed directly from the outside (from other SCs). However, a fa&amp;#231;ade DC (app) references these Public Parts and make them available for usage to the outside. Any component outside of this Software Component should define dependency to the Fa&amp;#231;ade DC only and all the internal DCs should be unknown to outside world. This design enables us to achieve one more level of flexibility as the internal DCs can be replaced as needed (without modifing the Public Part definition) and this entire replacement is hidden from the consuming components. &lt;/p&gt;&lt;p&gt;You might be interested to read about various &lt;a class="jive-link-external-small" href="http://help.sap.com/saphelp_nw70/helpdata/en/e6/504540d1b79523e10000000a1550b0/content.htm"&gt;Dependencies between DC Types&lt;/a&gt; and their usage. &lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Below are the steps to define dependency to a component using Public Part Forwarding:-&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Each DC exposes its functionality with Public Part (say PP1).&lt;/li&gt;&lt;li&gt;This DC restricts its usage only to current Software Component and marks it for entity forwarding. This can be done by adding the authorized component in the Permission tab.&amp;#160;&lt;/li&gt;&lt;li&gt;The Fa&amp;#231;ade DC defines dependency to the internal DCs and exposes it as a new Public Part (say PP2). This Public Part should not have any access restrictions.&lt;/li&gt;&lt;li&gt;Other components use the new Public Part (PP2) defined by Facade DC.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-57214-71278/DCInterplay.jpg"&gt;&lt;img alt="Dc Interplay" height="374" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-57214-71278/630-374/DCInterplay.jpg" style="vertical-align: middle;" width="630"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;(For details about the Software and Development Components shown in the picture, please refer my previous &lt;a class="jive-link-blog-small" data-containerId="9156" data-containerType="2020" data-objectId="22624" data-objectType="37" href="http://scn.sap.com/people/arvind.goel/blog"&gt;blogs&lt;/a&gt;&amp;#160;)&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The above picture shows a detailed snapshot of a composite application and its components; how they communicate with other components using Public Part Forwarding. The picture highlights some of the important dependencies which are very common in a Composite Application. You might notice that UI does not define dependency on Business Logic layer, it directly implements the interfaces defined in srv/interfaces DC. &amp;#160;Read &lt;a class="jive-link-blog-small" data-containerId="19644" data-containerType="37" data-objectId="56651" data-objectType="38" href="http://scn.sap.com/people/vincenzo.turco/blog/2011/02/07/how-to-leverage-jndi-in-web-dynpro-for-java"&gt;How to leverage JNDI in Web Dynpro for Java&lt;/a&gt; to know how to avoid EJB model binding with Web Dynpro for Java and use plain JNDI calls.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Summarizing it, this kind &lt;strong&gt;(Public Part Forwarding&lt;/strong&gt;) of structuring and dependency usges decouples internal DCs from outside components and reduces the amount of &lt;strong&gt;P2P (Point to Point) dependencies&lt;/strong&gt;, therfore it is always a good practice and recommended way to communicate through Facade DCs.&lt;/p&gt;&lt;p&gt;This blog ends the current series of &lt;strong&gt;Composite Application layering&lt;/strong&gt;.&amp;#160; You may first want to read about &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56000" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2010/12/09/flexible-design--know-componentization-and-sap-component-model"&gt;Flexible Design - Know Componentization and SAP Component Model&lt;/a&gt;, then &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56422" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--i"&gt;Composite Application Layering Part - I&lt;/a&gt;, then &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56450" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--ii"&gt;Composite Application Layering Part - II&lt;/a&gt; &amp;amp; finally DCs Communication described in this blog. If you&amp;rsquo;re interested to see this design principle being applied you may want to familiarize yourself with the of &amp;#8216;DemoKit&amp;rsquo; sample we are currently developing on Code Exchange. &lt;a class="jive-link-blog-small" data-containerId="5177" data-containerType="2020" data-objectId="7238" data-objectType="37" href="http://scn.sap.com/people/steinermatt/blog"&gt;Matthias Steiner&lt;/a&gt; recently published a blog explaining its &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56994" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/03/01/compappsmm-2-architecture-overview"&gt;CompAppsMM #2 &amp;#150; Architecture Overview&lt;/a&gt; to get you started.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:abdee1ee-06f7-4233-8c9e-9cae942d9ce7] --&gt;</description>
      <pubDate>Wed, 23 Mar 2011 01:05:06 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2011/03/23/dc-interplay-and-public-part-pp-usage</guid>
      <dc:creator>Arvind Goel</dc:creator>
      <dc:date>2011-03-23T01:05:06Z</dc:date>
      <clearspace:dateToText>10 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/dc-interplay-and-public-part-pp-usage</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=57214</wfw:commentRss>
    </item>
    <item>
      <title>CompAppsMM #2  Architecture Overview</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2011/03/01/compappsmm-2-architecture-overview</link>
      <description>&lt;!-- [DocumentBodyStart:d8886085-0b40-495e-b584-ded6f42e74c1] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56994-70893/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56994-70893/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 style="clear: both;"&gt;Ready-Set-Go!&lt;/h4&gt;&lt;p&gt;Having set the tone in my &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56862" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/02/17/compappsmm-1-mission-statement"&gt;CompAppsMM #1 &amp;#150; Mission Statement&lt;/a&gt; a few days back I now would like to get started and talk about the anticipated architecture of the 'DemoKit' sample application. As you remember, one of the main aspects of Composite Applications is their adaptability to change. It's that inherent flexibility of Composites that makes them a good long-time investment and fundamental cornerstone of a Service-Oriented Architecture (SOA). I already shared my stance on this topic in a recent article for the &lt;a class="jive-link-blog-small" data-containerId="30783" data-containerType="37" data-objectId="56254" data-objectType="38" href="http://scn.sap.com/community/mentors/blog/2010/12/22/release-of-the-1st-mentors-quarterly"&gt;Release of the 1st Mentors Quarterly&lt;/a&gt; titled '&lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b060f97a-4df5-2d10-f6bc-f25aa20845a9"&gt;Innovation without Disruption&lt;/a&gt;' and I see little-to-no value in paraphrasing it here again. Hence, I refrain from repeating that particular topic... and directly jump to the architecture overview.&lt;/p&gt;&lt;h4&gt;Architecture Principles&lt;/h4&gt;&lt;p&gt;In principal, the 'DemoKit' application design is based on a traditional multi-tier model, which clearly helps to separate the individual concerns that Composite Applications (Composites) have to take care of. We have the good old-known layers for data access, business logic processing and presentation plus an additional process orchestration layer on top (for our BPM needs) - nothing overly fancy or innovative at this point. Sure, this design approach certainly qualifies as a seasoned one, yet it has been highly effective in the Java Enterprise world for years and proven to be a very robust and reliable blueprint to develop enterprise software.&lt;/p&gt;&lt;p&gt;The main idea is simple: we decouple the Composite from a concrete backend system or data model/type system by &lt;strong&gt;separating the data access from the business logic processing&lt;/strong&gt;. This is the first of many level of abstractions we will apply that cater to our flexibility needs from the inside.&lt;/p&gt;&lt;p&gt;We invest into our SOA by steadily nurturing the repository of services/functionality available in our landscape by &lt;strong&gt;exposing the new business services provided by the Composite&lt;/strong&gt; as Enterprise Services. These services comprise the public API of the Composite, which can then be leveraged and build-upon by additional technologies such as BPM. We will also provide means to alter and enhance the processing flow of the Composites by introducing ExtensionPoints that can be implemented by customers/ISVs in a modification-free manner on the business logic layer.&lt;/p&gt;&lt;p&gt;The API is also the foundation of the presentation layer and as such needs to be&amp;#160;flexible&amp;#160;enough to be tailor-fitted to individual requirements from multi-channel consumers (desktop, mobile, web apps or other composites.) With all the movement we see in the UI/UX domain these days it seems as valid as it ever was to aim for &lt;strong&gt;keeping the presentation layer as lean as possible&lt;/strong&gt;. That being said, this design approach may speak in favor of&amp;#160;shifting some of the controller coding (as in MVC) to a facade layer in between BL and UI layer.&lt;/p&gt;&lt;h4&gt;Componentization&lt;/h4&gt;&lt;p&gt;As you can see it all revolves around developing a new application based on a set of well-defined, re-usable and loosely-coupled components. Now, that we have come to a common understanding of the fundamental design principles of the application it's about time to map them to our tool set - SAP NetWeaver Composition Environment.&lt;/p&gt;&lt;p&gt;The recommend way of structuring your composite application is to leverage the &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-12019"&gt;SAP Component Model&lt;/a&gt; in conjunction with the &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-104891"&gt;SAP NetWeaver Development Infrastructure&lt;/a&gt; (NWDI.) My pal &lt;a class="jive-link-blog-small" data-containerId="9156" data-containerType="2020" data-objectId="22624" data-objectType="37" href="http://scn.sap.com/people/arvind.goel/blog"&gt;Arvind Goel&lt;/a&gt; wrote a series of blog posts on the topic on behalf of the CompApps initiative that I highly recommend:&lt;/p&gt;&lt;div style="margin-top: 10px;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56000" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2010/12/09/flexible-design--know-componentization-and-sap-component-model"&gt;Flexible Design - Know Componentization and SAP Component Model&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56422" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--i"&gt;Composite Application Layering Part - I&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56450" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--ii"&gt;Composite Application Layering Part - II&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;(For those that prefer video over writing or those who want to get the full scoop I would like to mention the blog post by my fellow SAP Mentor &lt;a class="jive-link-blog-small" data-containerId="15480" data-containerType="2020" data-objectId="9879" data-objectType="37" href="http://scn.sap.com/people/greg.chase/blog"&gt;Greg Chase&lt;/a&gt; who caught me on tape (or better 'on disk') just after TechEd. In our &lt;a class="jive-link-blog-small" data-containerId="8979" data-containerType="37" data-objectId="55915" data-objectType="38" href="http://scn.sap.com/community/bpm/blog/2010/11/29/video-lost-sapteched-sessions-cd301-advanced-composite-patterns"&gt;Video:&amp;#160; Lost #SAPTechEd sessions &amp;#150; CD301 &amp;#147;Advanced Composite Patterns&amp;#148;&lt;/a&gt; about the &lt;a class="jive-link-blog-small" data-containerId="31833" data-containerType="37" data-objectId="54655" data-objectType="38" href="http://scn.sap.com/community/events/teched/blog/2010/09/01/loose-coupling-and-strong-bonding-teched-2010"&gt;Loose-coupling and strong bonding @ TechEd 2010&lt;/a&gt; we talk about Componentization and its importance.)&lt;/p&gt;&lt;div style="float: right;"&gt;&lt;a href="http://weblogs.sdn.sap.com/weblogs/images/5263/SC_structure.png"&gt;&lt;img alt="" height="144" src="http://weblogs.sdn.sap.com/weblogs/images/5263/SC_structure.png" style="margin-left: 10px; margin-bottom: 10px; border: 1px solid black;" width="274"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;h4&gt;Application Architecture&lt;/h4&gt;&lt;p&gt;Based on the information provided in these blog posts the basic structuring of the 'DemoKit' application is as shown in the screenshot at the right. It illustrates a Development Configuration (aka development track) &amp;#160;called &lt;strong&gt;CDEMOKT_dev&lt;/strong&gt;, which consists of the following 7 Software Components (SCs):&lt;/p&gt;&lt;div style="margin-top: 10px;"&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT]&lt;/strong&gt; This SC is special and only contains the Product Description of our Composite as required by the &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-113605"&gt;Composite Designer&lt;/a&gt; Perspective.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT_BC]&lt;/strong&gt; All the connectivity and persistence related concerns are encapsulated in a dedicated Backend Connectivity (BC) layer.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT_BL]&lt;/strong&gt; The business logic (BL) belongs here and the functionality is typically implemented based on Stateless Session Beans (EJB 3.0), which can be exposed as Enterprise Services.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT_CMN]&lt;/strong&gt; This SC contains both the technical components (TC) as well as the domain model and service interfaces of the demo application. This will be the first Software Component we will setup as we follow a bottom-up approach. The application specific objects defined on this layer are used across all other layers and as such have been labeled as Common (CMN).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT_PL]&lt;/strong&gt; We also separate the process layer (PL) which acts as a container for our BPM process models.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT_QM]&lt;/strong&gt; This Software Component is the home of our unit tests and developer tools such as stubs, scripts and configuration tools etc. It may or may not be shipped as part of the application.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;[CD_DEMOKIT_UI]&lt;/strong&gt; The demo app ships with a standard UI (one to start with), which in encapsulated into a distinct SC as well based on our design principles.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;We'll have a much closer look on all of these layers/components as me move along. Now that we have a rough overview about our main building blocks it's time to set the foundation of our demo application. As mentioned above, we do that from the ground up - in our case it means we will start with the common layer and more precisely the technical components (please see the screenshot below.)&lt;/p&gt;&lt;div style="float: left;"&gt;&lt;a href="http://weblogs.sdn.sap.com/weblogs/images/5263/architecture_overview.png"&gt;&lt;img alt="" height="114" src="http://weblogs.sdn.sap.com/weblogs/images/5263/architecture_overview_tn.png" style="margin-right: 20px; margin-bottom: 10px; border: 1px solid black;" width="174"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;p&gt;In the past, we made very positive experiences in laying out this foundation first before expanding the development team. This way, all the required cross-cutting concerns have already been establish and are more likely to be used in a unified manner - by all developers.&lt;/p&gt;&lt;p&gt;That's important: the design of the application emphasizes on&amp;#160;&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Separation_of_concerns"&gt;Separation of Concerns&lt;/a&gt; (SoC) and the development should be setup alike - to minimize redundant work. The sooner the tool set is in place, the higher the chance for broad adoption.&lt;/p&gt;&lt;h4 style="clear: both;"&gt;A word on the SAP Component Model and Code Exchange&lt;/h4&gt;&lt;p&gt;As mentioned above, the SAP Component Model and NWDI are the recommended way of developing Composites and as such a solid understanding of these concepts is vital to get this important aspect of the application right. It's the first step of the development phase and if you don't do it properly at the beginning it may grow a very long tail. Therefore, we believe this aspect of Composite architecture is too important to be neglected.&lt;/p&gt;&lt;p&gt;Unfortunately, the current toolset around Code Exchange and the underlying &lt;a class="jive-link-external-small" href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; source code repository does not yet provide easy means to use Software Components and Development Configurations. In the perfect world we would have a simple option that would allow us to import software configurations by using the standard wizard directly out of a Subversion repository hosted on Code Exchange. A fresh breeze of reality makes us realize that this day is yet to come and an evaluation of alternatives is required. Fortunately, the SAP NetWeaver Developer Studio (NWDS) provides simple ways to import Software Component Archives (SCAs) and we opted for leveraging this functionality and providing our 'DemoKit' application as SCAs.&lt;/p&gt;&lt;p&gt;I've written a &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-139302"&gt;short document&lt;/a&gt; that walks you through the process of importing the SCAs into your NWDS to get the 'DemoKit' app installed locally.&lt;/p&gt;&lt;h4&gt;Next steps&lt;/h4&gt;&lt;p&gt;So, in the next episode - which is already in the making - I'll get started with the COMMON and QM layer. True, we are not really moving in &lt;em&gt;god speed&lt;/em&gt;, yet the steady and medium-paced progress should allow the interested followers to catch up on the reading, jump aboard and then move along. Such an excursion is always twice the fun when having good company, isn't it?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d8886085-0b40-495e-b584-ded6f42e74c1] --&gt;</description>
      <pubDate>Tue, 01 Mar 2011 06:13:58 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2011/03/01/compappsmm-2-architecture-overview</guid>
      <dc:creator>Matthias Steiner</dc:creator>
      <dc:date>2011-03-01T06:13:58Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/compappsmm-2-architecture-overview</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=56994</wfw:commentRss>
    </item>
    <item>
      <title>CompAppsMM #1  Mission Statement</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2011/02/17/compappsmm-1-mission-statement</link>
      <description>&lt;!-- [DocumentBodyStart:b1cbf15f-4e21-4dd5-bff2-b0f3427868d6] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56862-70711/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56862-70711/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4&gt;First things first&lt;/h4&gt;&lt;p&gt;In my &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56498" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/31/composite-apps--the-missing-manuals"&gt;Composite Apps - The Missing Manuals&lt;/a&gt; I introduced the idea of "&lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composite Applications - The Missing Manuals&lt;/a&gt;" and the team behind it. In today's edition of my accompanying blog series I'd like to provide some more details and background information about the concept we have in mind. I'll talk about our vision and then discuss how we approach our first contribution to &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SAP Code Exchange&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;One of the main motivations that drives the team behind the project is to roll-out our experiences gathered in the process of developing Composite Applications over the years. I'd rather avoid the term '&lt;em&gt;best practices&lt;/em&gt;' as there's a bad taste to it and may lead people to believe that there's such a thing as a silver bullet or one-size-fits-all solution. There is not!&amp;#160;By that rational, all we can and want to offer is to share with the community what worked for us in the past - there is a great likeliness that it may also work for you or at least provides you with a wider spectrum of lessons-learned to make a more educated decision in the future.&lt;/p&gt;&lt;h4&gt;From the Ground up&lt;/h4&gt;&lt;p&gt;In a nutshell, our mission statement revolves around documenting our approach to developing Composite Applications based on &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/sdn/nw-composition"&gt;SAP NetWeaver Composition Environment&lt;/a&gt; from the ground-up. As such, it has to be considered as a companion to other resources already available:&lt;/p&gt;&lt;div style="margin-top: 10px;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="jive-link-external-small" href="http://help.sap.com/saphelp_nwce10/helpdata/en/44/d958673ef05f4de10000000a11466f/frameset.htm"&gt;SAP NetWeaver Composition Environment Library&lt;/a&gt; (Docupedia)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;&lt;a class="jive-link-external-small" href="http://help.sap.com/saphelp_nwce10/helpdata/en/45/beddad24a252f5e10000000a1553f7/frameset.htm"&gt;Guidelines for Developing Composite Applications&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-external-small" href="http://help.sap.com/saphelp_nwce10/helpdata/en/45/3c65d68c604c2ce10000000a1553f6/frameset.htm"&gt;Developing and Composing Applications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-wiki-small" data-containerId="2216" data-containerType="14" data-objectId="7877" data-objectType="102" href="http://scn.sap.com/docs/DOC-7877"&gt;SAP NetWeaver Composition Environment Samples Center&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;So, what is our unique selling proposition (&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Unique_selling_proposition"&gt;USP&lt;/a&gt;) you may wonder? Fair enough.&lt;/p&gt;&lt;p&gt;What we want to accomplish is to &lt;strong&gt;develop a complete sample application&lt;/strong&gt; that illustrates/demonstrates all aspects of developing this type of enterprise applications &lt;strong&gt;and to document this process&lt;/strong&gt; in parallel. We are aiming for a holistic approach that does not only provide results, but also reveals the reasoning behind the design decisions taken.&lt;/p&gt;&lt;p&gt;We believe that &lt;em&gt;flexibility&lt;/em&gt; is the key characteristic of Composites and as such some of the recurring terms we will&amp;#160;elaborate&amp;#160;on are &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Separation_of_concerns"&gt;Separation of Concerns&lt;/a&gt; (SoC), &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Aspect_(computer_science)"&gt;Aspects&lt;/a&gt;,&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Loose_coupling"&gt; Loose-coupling&lt;/a&gt;, abstraction and proper componentization.&amp;#160;We have already started doing so by sharing some of these generic design principles that &amp;#160;our sample app '&lt;strong&gt;DemoKit&lt;/strong&gt;' &amp;#160;will be based on (please find the complete list of documents &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-136927"&gt;here&lt;/a&gt;.)&lt;/p&gt;&lt;h4&gt;Technical Components&lt;/h4&gt;&lt;p&gt;Now that you know what to expect it's time to have a closer look on the details. As always when developing a new application it is a good investment of time to think about the purpose of the to-be-build application for a while before getting started. In our case the 'DemoKit' application is supposed to be an easy and comprehensive demo application showcasing design patterns commonly used to develop composites.&lt;/p&gt;&lt;p&gt;It contains several technical components (TCs) that simplify the usage of &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Cross-cutting_concern"&gt;cross-cutting concerns&lt;/a&gt; and hereby allowing the developers to focus on the business processes. The concept is to provide an application &lt;em&gt;frame set&lt;/em&gt; that can be leveraged to more rapidly build applications without having to re-invent the wheel again in regards to all these low-level and non-business related aspects of software development. I intentionally avoided the term "&lt;em&gt;framework&lt;/em&gt;" in my last sentence, as we certainly do NOT intend to build another framework on top of a framework!&lt;/p&gt;&lt;div style="float: right;"&gt;&lt;a class="jive-link-blog-small" data-containerId="8979" data-containerType="37" data-objectId="55915" data-objectType="38" href="http://scn.sap.com/community/bpm/blog/2010/11/29/video-lost-sapteched-sessions-cd301-advanced-composite-patterns"&gt;Video:&amp;#160; Lost #SAPTechEd sessions &amp;#150; CD301 &amp;#147;Advanced Composite Patterns&amp;#148;&lt;/a&gt; &lt;/div&gt;&lt;p&gt;As a matter of fact,&amp;#160;flexibility&amp;#160;(our highest-valued good) demands that the entire application is build in a loosely-coupled fashion. As such, every technical component is well-advised to be minimal obtrusive to the application that wants to leverage it. To our experience, a great way to achieve this loose-coupling between technical components and the embedding application is an AOP-like approach of treating cross-cutting concerns as Aspects. My buddy &lt;a class="jive-link-blog-small" data-containerId="10691" data-containerType="2020" data-objectId="17426" data-objectType="37" href="http://scn.sap.com/people/shobhit.garg/blog"&gt;Shobhit&lt;/a&gt; has written a great introduction blog about this particular topic a while back: &lt;a class="jive-link-blog-small" data-containerId="17426" data-containerType="37" data-objectId="55864" data-objectType="38" href="http://scn.sap.com/people/shobhit.garg/blog/2010/11/26/lower-the-tcp"&gt;Lower the TCP!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In addition, you may also want to watch the &lt;a class="jive-link-blog-small" data-containerId="8979" data-containerType="37" data-objectId="55915" data-objectType="38" href="http://scn.sap.com/community/bpm/blog/2010/11/29/video-lost-sapteched-sessions-cd301-advanced-composite-patterns"&gt;Video:&amp;#160; Lost #SAPTechEd sessions &amp;#150; CD301 &amp;#147;Advanced Composite Patterns&amp;#148;&lt;/a&gt; that SAP Mentor Greg Chase and I recorded after SAP Teched last year. In the second part/video of the session I talk about the topic of &lt;em&gt;Aspectizing &lt;/em&gt;(around the ~ 9:30 minute mark.)&lt;/p&gt;&lt;h4 style="clear: both;"&gt;DemoKit Sample Application&lt;/h4&gt;&lt;p&gt;But the 'DemoKit' is more than just a set of technical components. Much more. In order to demonstrate the ease of integrating the technical components with any given or to -be-created application we will develop a small sample application for this purpose. As we want the people to be able to focus on the technical aspects without being distracted by overly complex business logic we opted for a simple app. One of the most cost commonly found business object in enterprise applications is the 'business partner' and therefore it was a natural choice to build a business partner cockpit that allows you to search and maintain business partners. Maybe not the most original idea, but certainly one that helps lowering the entry-barrier. And... this scenario is ideally suited to demonstrate the flexibility of the application as we can easily connect various backend systems as data repositories.&lt;/p&gt;&lt;h4&gt;Vision&lt;/h4&gt;&lt;p&gt;Now, if that by itself didn't get you on the edge of your seats yet then let me share our vision with you. We envision the 'DemoKit' as a sandbox that can be used as a generic starting point to develop proof of concepts (&lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Proof_of_concept"&gt;PoC&lt;/a&gt;) using emerging technologies. We would love to see other people on Code Exchange to build on-top or around our 'DemoKit' and use it as an accelerator for their own proof of concepts and the like. It's a bold vision - true - but then... a wise man once said one needs to apply high standards in order to meet them.&lt;/p&gt;&lt;p&gt;Based on the flexible nature of the solution and the used concepts the 'DemoKit' allows to extend/replace components of the application in a modification-free manner.&amp;#160;Connecting new UIs to the exposed business logic API such as &lt;a class="jive-link-external-small" href="http://www.adobe.com/devnet/flash.html"&gt;Adobe Flash&lt;/a&gt; and &lt;a class="jive-link-external-small" href="http://www.silverlight.net/getstarted/"&gt;Microsoft Silverlight&lt;/a&gt; are scenarios that come to mind instantly. Or what about creating a mobile (-friendly) front-end using &lt;a class="jive-link-external-small" href="http://www.w3.org/TR/html5/"&gt;HTML5&lt;/a&gt; or&amp;#160;&lt;a class="jive-link-external-small" href="http://jquery.com/"&gt;jQuery&lt;/a&gt;/&lt;a class="jive-link-external-small" href="http://jquerymobile.com/"&gt;jQuery Mobile&lt;/a&gt; - or maybe even project&amp;#160;Phoenix? The potential add-on scenarios are certainly not limited to the UI layer either...&lt;/p&gt;&lt;p&gt;Due to the Extensibility framework incorporated into the application it will be feasible to plug into so called extension points to alter or extend the processing flow. I already mentioned backend abstraction and the ability to provide alternative implementations of data provisioning. While the initial release will 'only' come with support for two alternative data repositories (ERP and CRM) in the near future we may see an implementation connecting to SAP Business ByDesign or any other system that exposes API to retrieve and manipulate business partners. The sky is the limit... :)&lt;/p&gt;&lt;h4&gt;Next Stop - Architecture Overview&lt;/h4&gt;&lt;p&gt;Alright, let's wrap it up for today... if you would like to stick around and closely witness our progress you may be interested in the next blog post of the series, where I'll provide an overview about the high-level architecture and a recap on Componentization. Stay tuned...&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b1cbf15f-4e21-4dd5-bff2-b0f3427868d6] --&gt;</description>
      <pubDate>Thu, 17 Feb 2011 07:06:22 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2011/02/17/compappsmm-1-mission-statement</guid>
      <dc:creator>Matthias Steiner</dc:creator>
      <dc:date>2011-02-17T07:06:22Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/compappsmm-1-mission-statement</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=56862</wfw:commentRss>
    </item>
    <item>
      <title>Composite Apps - The Missing Manuals</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/31/composite-apps--the-missing-manuals</link>
      <description>&lt;!-- [DocumentBodyStart:4759be83-ec63-4b59-a91f-750a9c668a31] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h4&gt;Introduction&lt;/h4&gt;&lt;p&gt;Today I have the&amp;#160;privilege&amp;#160;to officially announce the kick-off of the '&lt;strong&gt;Composition Application - Missing Manual&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;' initiative!&lt;/p&gt;&lt;p&gt;Having build Composite Applications on all releases of SAP NetWeaver Composition Environment (NWCE) and its predecessors for several years now we - &lt;a class="jive-link-external-small" href="http://www.sap.com/services/customdev/index.epx"&gt;SAP Custom Development&lt;/a&gt; - have gathered a lot of experience in how-to develop this new breed of enterprise software. Since my&lt;a class="jive-link-blog-small" data-containerId="7238" data-containerType="37" data-objectId="44866" data-objectType="38" href="http://scn.sap.com/people/steinermatt/blog/2007/10/04/talking-about-custom-composite-development"&gt;Talking About Custom Composite Development&lt;/a&gt; in 2007 I've been actively rolling out our findings and learnings on behalf of the organisation and in 2011 we want to take our contributions to the next level with this initiative:&lt;/p&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56498-70076/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56498-70076/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 style="clear: both; margin-top: 20px;"&gt;Background&lt;/h4&gt;&lt;div style="float: right;"&gt;&lt;a data-containerId="-1" data-containerType="-1" data-objectId="85962" data-objectType="111" href="/servlet/JiveServlet/downloadImage/38-56498-85962/intro.jpg"&gt;&lt;img alt="" class="alignright" height="146" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56498-70077/204-146/intro.jpg" style="margin-bottom: 15px; margin-left: 25px;" width="204"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;p&gt;Being the &lt;a class="jive-link-external-small" href="http://c2.com/cgi/wiki?LazinessImpatienceHubris"&gt;lazy developers&lt;/a&gt; we are, we try to do things right... and right-away? Right? Great ... thought so! :)&lt;/p&gt;&lt;p&gt;Now, while there's nothing wrong in writing a prototype or &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Proof_of_concept"&gt;PoC&lt;/a&gt; - the opposite in fact - as long as they remain prototypes or PoCs and not suddenly get productized afterwards.&amp;#160;I think we all heard about these urban legends talking about such incidents happening though... this is where we jump in by providing a&amp;#160;&lt;strong&gt;toolbox of re-usable components, technical libaries and low-level utilities to get you kick-started&lt;/strong&gt;!&lt;/p&gt;&lt;p&gt;Our DemoKit comes with several technical components as typically required in any project using NWCE and its core (Java 5 Enterprise Edition application server). The motivation for such a toolset is simple: without having to worry about basic cross-cutting concerns no more, you can exclusively focus on the business logic of your application. These components will be bundled up with a lightweight demo app illustrating and documenting how-to use and integrate them.&lt;/p&gt;&lt;p&gt;We are striving for high standards in both code and source code documentation and we strongly believe that proper documentation goes a long way. (One of rewarding aspects of proper documentation is the implicit permission to reply with RTFM - "&lt;em&gt;Read The *Fantastic* Manual!&lt;/em&gt;" ;) ) We have already started our series of blogs providing background information and explaining some of the key concepts; for the complete list please refer to our &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-136927"&gt;documentation page&lt;/a&gt;. There is plenty of material lined up waiting to be massaged and we will continuously share this information with the SCN community from now on.&lt;/p&gt;&lt;h4 style="clear: both;"&gt;The Team&lt;/h4&gt;&lt;div style="width: 90%; margin-left: auto; margin-right: auto; padding: 10px; min-height: 120px; max-width: 700px;"&gt;&lt;table cellspacing="10"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56498-70078/reema_portrait.png"&gt;&lt;img alt="Reema Mittal" height="95" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56498-70078/125-95/reema_portrait.png" style="border: 1px solid black;" title="Reema Mittal" width="125"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" data-containerId="12843" data-containerType="2020" data-objectId="22145" data-objectType="37" href="http://scn.sap.com/people/reema.mittal/blog"&gt;Reema Mittal&lt;/a&gt; is a Senior Consultant at SAP Labs Custom Development. Currently, she is developing Composite Applications using SAP NetWeaver Composition Environment with a focus on JPA and WebDynpro for Java. Prior to this, she has worked on various development projects in the ABAP world in functional areas like finance, GTS, HR for 2 years.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;a href="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=4082&amp;amp;size=350"&gt;&lt;img alt="Katharina Seiz" height="94" src="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=4082&amp;amp;size=350" style="border: 1px solid black;" title="Katharina Seiz" width="125"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" data-containerId="3992" data-containerType="2020" data-objectId="12052" data-objectType="37" href="http://scn.sap.com/people/katharina.seiz/blog"&gt;Katharina Seiz&lt;/a&gt; is a Solution Designer at SAP Custom Development.&amp;#160;In this role she is supporting customer projects from evaluation to execution.&amp;#160;She has more than 10 years of experience across a broad range of SAP technologies&amp;#160;such as NW CE, WD4J, Java EE, SOA, BPM, ABAP and WD4A.&amp;#160;As core member of the Technology Competence Team she is constantly pushing the edge&amp;#160;with her focus areas being User Interface technologies and UX (User Experience.)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;a href="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=4064&amp;amp;size=350"&gt;&lt;img alt="Shobhit Garg" height="95" src="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=4064&amp;amp;size=350" style="border: 1px solid black;" title="Shobhit Garg" width="127"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" data-containerId="10691" data-containerType="2020" data-objectId="17426" data-objectType="37" href="http://scn.sap.com/people/shobhit.garg/blog"&gt;Shobhit Garg&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;is a Principal Consultant at SAPLabs Custom Development. In his current role he is actively engaged in developing custom applications on some of the cutting edge SAP technologies. Prior to this he spent close to two years developing the SAP NetWeaver Mobile 7.1 platform.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;a href="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=3987&amp;amp;size=350"&gt;&lt;img alt="Arvind Goel" height="94" src="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=3987&amp;amp;size=350" style="border: 1px solid black;" title="Arvind Goel" width="125"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" data-containerId="9156" data-containerType="2020" data-objectId="22624" data-objectType="37" href="http://scn.sap.com/people/arvind.goel/blog"&gt;Arvind Goel&lt;/a&gt; has been working on J2EE and composite applications developement since 2006 and involved in designing and architecting flexible composite applications.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56498-70079/jens_steckhan.jpg"&gt;&lt;img alt="image" class="aligncenter" height="169" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56498-70079/120-169/jens_steckhan.jpg" style="border: 1px solid black;" title="Jens Steckhan" width="120"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" data-containerId="3236" data-containerType="2020" data-objectId="22181" data-objectType="37" href="http://scn.sap.com/people/jens.steckhan/blog"&gt;Jens Steckhan&lt;/a&gt; is a Solution Architect at SAP Custom Development. He has been programming Java from day one and has worked with a variety of SAP and mobile platforms. He is currently working on the integration of digital signatures and the new German electronic ID into NW CE.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;a href="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=4070&amp;amp;size=350"&gt;&lt;img alt="Matthias Steiner" height="95" src="https://cw.sdn.sap.com/cw/profile-image-display.jspa?imageID=4070&amp;amp;size=350" style="border: 1px solid black;" title="Matthias Steiner" width="126"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="font-size: 0.7em;vertical-align: top;"&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" data-containerId="5177" data-containerType="2020" data-objectId="7238" data-objectType="37" href="http://scn.sap.com/people/steinermatt/blog"&gt;Matthias Steiner&lt;/a&gt; is a Principal Solution Architect for SAP Custom Development, where his role is to evaluate SAP's cutting edge technologies and transform them into real solutions for SAP customers using the potential of SOA and composite applications. As a core member of the Technology Competence Network within SAP Custom Development he has been pioneering Composite development since 2004 and has gathered significant experience in numerous enterprise-scaled development projects in both the ABAP and the Java world.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4759be83-ec63-4b59-a91f-750a9c668a31] --&gt;</description>
      <pubDate>Mon, 31 Jan 2011 02:21:15 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/31/composite-apps--the-missing-manuals</guid>
      <dc:creator>Matthias Steiner</dc:creator>
      <dc:date>2011-01-31T02:21:15Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/composite-apps--the-missing-manuals</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=56498</wfw:commentRss>
    </item>
    <item>
      <title>Composite Application Layering Part - II</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--ii</link>
      <description>&lt;!-- [DocumentBodyStart:65b55d35-3352-4f8b-868b-3d730ac0ff1a] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56450-70027/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56450-70027/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56422" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--i"&gt;Composite Application Layering Part - I&lt;/a&gt; of this series, we have seen how important the structuring of Software Components (with respect to Composite Application) is and why it is important for flexible architecture to be able to evolve in the future. In this second part of the series, we will have a detailed look on componentization of Development Components.&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;How Development Components (DCs) should be structured?&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;Till now, we have discussed how-to define the different components (SCs) that the application will be made of. The next question is how-to structure the source code into different Development Components (DCs). &lt;/p&gt;&lt;p&gt;SAP NetWeaver supports separate DC types for different use-cases. For example, all Process Content is located in a Process Composer DC; all Web Dynpro content is part of Web Dynpro DC. &amp;#160;The picture shows all available DC types with in SAP NetWeaver CE 7.1 EhP1.&lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56450-70028/DCTypes.jpg"&gt;&lt;img alt="DC Types" height="302" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56450-70028/180-302/DCTypes.jpg" width="180"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;A DC is the very initial thought to plan for reusability. For example, separate DCs should be created for generic functions (such as utility classes) so that they can be reused across all layers.&amp;#160; After a change, the entire DC must be rebuilt; therefore we also have to take care of the size carefully so that it does not contain too many objects. It&amp;rsquo;s preferable to have a fine granular DC structure but don't overdo it either. &lt;/p&gt;&lt;p&gt;Next I am going to explain the recommended DC structure for the Software Components typically found in most applications &amp;ndash; Common/Model, Business Logic and the UI.&lt;/p&gt;&lt;p&gt;First, we will see how the content should be structured within the Software Component that contains the domain model and the common utility classes (think of logging, tracing, formatting etc). All the stuff of this nature goes to a separate DC (&lt;strong&gt;utils&lt;/strong&gt;). &lt;/p&gt;&lt;p&gt;Domain models (Application specific models) are typically Java beans describing the structures and data types, which comprise the &lt;a class="jive-link-external-small" href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html"&gt;Data Transfer Objects&lt;/a&gt; (DTOs) across different layers, therefore it is really recommended to put all domain models into separate DC (&lt;strong&gt;model&lt;/strong&gt;). &amp;#160;These structures should be independent from backend systems; preferably &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/downloads?rid=/webcontent/uuid/00b9bb44-f2ff-2b10-2c83-c95f77365392"&gt;Global Data Types&lt;/a&gt; (GDTs) as defined by SAP. &lt;/p&gt;&lt;p&gt;For a composite application to interact with backend systems, we need to define the service contract (interfaces). It is always preferred to separate the implementation from its interfaces in order to allow customers to come up with their own implementations and replace the default ones, therefore a separate DC (&lt;strong&gt;srv interfaces&lt;/strong&gt;) is introduced for the service contract definition. The core business functionality of the application implements the data from the backend systems based on this contract definition.&lt;/p&gt;&lt;p&gt;The recommended DC structuring of the Common/Model Software Component is illustrated below. We need to deploy all these DCs, so we need a deployment unit (&lt;strong&gt;app)&lt;/strong&gt; (EAR Project) for all this content. This deployment unit will also act as facade for all the contained DCs in order to minimize the number of direct point-to-point dependencies by leveraging a concept called &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/docs/DOC-113191?treeid=DOC-99703"&gt;Public Part&lt;/a&gt; Forwarding. The facade DC is responsible for all the communications to its internal DCs from outside. &lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56450-70029/DCsForCommons.JPG"&gt;&lt;img alt="DCs structuring for Common/Model SC" height="150" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56450-70029/599-150/DCsForCommons.JPG" width="599"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;On top of the Common/Model layer, we have the BL Software Component. In the example here I have combined Business Logic &amp;amp; Backend Connectivity Logic in one Software Component BL. However, this can also be split up into a separate Software Component (BC) depending on the requirements/size as mentioned above. The BC layer is responsible of retrieving/accessing the data from the backend systems or the persistence repository and mapping it to application specific model (from Common/Model). &lt;/p&gt;&lt;p&gt;The BL layer is solely responsible of processing the data. It really does NOT need to know how this data is fetched, which communication protocol is used to connect to backend systems or the like. Therefore interfaces defined on srv/interfaces DC will be implemented separately in &lt;strong&gt;bc/dao&lt;/strong&gt; and &lt;strong&gt;bl/srv impl&lt;/strong&gt; DC. The concrete implementation (residing in &lt;strong&gt;bc/dao&lt;/strong&gt;) comprises the service contract implementation layer (SCIL). The &lt;strong&gt;bl/srv impl&lt;/strong&gt; is the implementation of core business functionality of the application, which is used by the upper layers (UI). The UI layer should not directly depend on the BC layer; it is the responsibility of &lt;strong&gt;bl/srv impl&lt;/strong&gt; to connect to service contract implementation layer.&lt;/p&gt;&lt;p&gt;The recommended DC structuring of BL Software Component is illustrated below. Finally, we need to create a deployment unit (&lt;strong&gt;bc/dao/app)&lt;/strong&gt; (EAR Project) for the service contract implementation (bc/dao) and a deployment unit (&lt;strong&gt;bc/srv/app&lt;/strong&gt;) for the business logic services. Again these deployment units will act as fa&amp;#231;ades. &lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56450-70030/DCsForBL.JPG"&gt;&lt;img alt="DC structuring for BL SC" height="148" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56450-70030/544-148/DCsForBL.JPG" width="544"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;On the Presentation layer side (if Web Dynpro for Java is used), the recommendation is to place UI utilities, Web Dynpro models, Web Dynpro components, component interface definitions and Local Dictionaries in separate Web Dynpro DCs.&amp;#160; Therefore, content related to UI utilities for example Object Work Lists (OWLs); error handling etc. should be combined in to a separate DC (&lt;strong&gt;ui/utils&lt;/strong&gt;). It is recommended to create separate DC(s) (&lt;strong&gt;ui/model&lt;/strong&gt;) for the EJB/WS Models (generated from the service interfaces). Finally the User Interfaces (WD components, Views etc) can be created in a separate WD Development Component (&lt;strong&gt;ui/xyz&lt;/strong&gt;).&lt;/p&gt;&lt;p&gt;The recommended DC structuring of UI Software Component is shown below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56450-70031/DCsForUI.JPG"&gt;&lt;img alt="DCs structuring for UI SC" height="131" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56450-70031/476-131/DCsForUI.JPG" width="476"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;Distributed development with XXL projects&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;We have discussed the application structuring on Software Component level, now let&amp;rsquo;s have a closer look on the granularity of Development Components. Usually a big project can be split up into two or three main modules (for example master data and transactional data) and the teams working on these different modules may be distributed across different locations. If we split up some of the Development Components into two (or more) Development Components, the individual development teams can work on their own modules without the need of synchronizing and building the other DCs, which greatly speeds up the development. By having different deployment units one can deploy the stuff individually and keep the content separated from each other. As shown below, this kind of structuring is the most recommended way for the extra large projects especially in distributed development projects. Nevertheless, it always depends on various factors like team size, team expertise and of course the number of locations in distributed development projects.&lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56450-70032/DCForXXLDev.JPG"&gt;&lt;img alt="DCs structuring for XXL DDPs" height="294" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56450-70032/294-294/DCForXXLDev.JPG" width="294"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To summarize it all, we have seen how the artifacts of a composite application should be structured according to the SAP Component Model. The more Development Components there are, the higher the time it takes to build all these components so there is always a conflict between optimizing either the number of DCs for the fastest overall build (as few DCs as possible) and the fastest build for developers (as many DCs as possible). By using Public Part Forwarding it is possible to change that transparently through-out the development phase as required in the current phase! The actual guidelines are highly dependent on the application use cases, but the build time and infrastructure aspects still have to be taken into account during the composite application structuring.&lt;/p&gt;&lt;h4&gt;Outlook&lt;/h4&gt;&lt;p&gt;In my next blogs, I will elaborate on how Development Components should interact with each other and how Deployment Units can help in reducing Point to Point Dependencies (fa&amp;#231;ade paradigm). Stay tuned&amp;#8230;.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:65b55d35-3352-4f8b-868b-3d730ac0ff1a] --&gt;</description>
      <pubDate>Wed, 12 Jan 2011 19:27:26 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--ii</guid>
      <dc:creator>Arvind Goel</dc:creator>
      <dc:date>2011-01-12T19:27:26Z</dc:date>
      <clearspace:dateToText>10 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/composite-application-layering-part--ii</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=56450</wfw:commentRss>
    </item>
    <item>
      <title>Composite Application Layering Part - I</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--i</link>
      <description>&lt;!-- [DocumentBodyStart:39adea3b-ce1f-4c73-817d-f8c3bb9d3140] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56422-70006/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56422-70006/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4&gt;&lt;strong&gt;Think about loose coupling from the start!&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;In my &lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56000" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2010/12/09/flexible-design--know-componentization-and-sap-component-model"&gt;Flexible Design - Know Componentization and SAP Component Model&lt;/a&gt;, I have talked about &lt;strong&gt;componentization&lt;/strong&gt;; why it is important for flexible design and why it is vital to take care of it at the beinning of a project. In today&amp;rsquo;s blog post of two part series I will provide architectural recommendations on how to best use the SAP Component Model to structure an application (particularly composite application) in a loosely-coupled, extensible and flexible manner. &lt;/p&gt;&lt;p&gt;The entire idea about application structuring is &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Separation_of_concerns"&gt;Separation of Concerns&lt;/a&gt; (SoC).&amp;#160; Maintaining separation of concern is one of the key concepts to achieve flexibility. SoC enables us to break down the complexity of a particular solution into easier-to-solve sub problems. &lt;/p&gt;&lt;p&gt;Definition of &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Separation_of_concerns"&gt;SoC&lt;/a&gt; according to Wikipedia: &amp;ldquo;&lt;em&gt;In computer science, separation of concerns (SoC) is the process of separating a computer program into distinct features that overlap in functionality as little as possible.&lt;/em&gt;&amp;#8221; &lt;/p&gt;&lt;p&gt;Based on this definition we will discuss in this blog series how- to best use the SAP Component Model to break the application behavior/features (Concerns) in to different components (SCs &amp;amp; DCs). The entire idea of componentization revolves around the concept of &lt;strong&gt;&lt;em&gt;Innovation without disruption&lt;/em&gt;&lt;/strong&gt;. You might be interested to read about &lt;em&gt;Enterprise Innovation&lt;/em&gt; by &lt;a class="jive-link-blog-small" data-containerId="5177" data-containerType="2020" data-objectId="7238" data-objectType="37" href="http://scn.sap.com/people/steinermatt/blog"&gt;Matthias Steiner&lt;/a&gt; in First &lt;a class="jive-link-wiki-small" data-containerId="2268" data-containerType="14" data-objectId="7840" data-objectType="102" href="http://scn.sap.com/docs/DOC-7840"&gt;SAP Mentor Initiative&lt;/a&gt; quarterly magazine which can be found &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b060f97a-4df5-2d10-f6bc-f25aa20845a9"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Applications should be built based on this design principle to be able to evolve in the future. It should be easy to replace one component with another (without affecting the other parts of the application) according to business needs. &lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;How granular Software Components (SCs) should be?&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;Before we start, let&amp;rsquo;s have a quick recap on the concept of Software Component; it represent both the installation and deployment unit and comprise the smallest package of functionality that can be shipped individually to the customer. The first question during application design is how many Software Components one shall use. The granularity to apply on Software Component level depends on various factors. One of the most important ones is application size. A close second is life-cycle operation considerations; one may need to be able to maintain separate code-lines/releases, so it is always a good idea to have a fine granular structure of the application to cater to this aspect and to be able to only branch the SCs that really differ from one code line to the other.&lt;/p&gt;&lt;p&gt;Usually a SC should be created if different parts of the application can be executed on different servers or if these parts can be deployed independently of each other e.g. if some of the functionality is optional.&lt;/p&gt;&lt;p&gt;For (very) small applications&amp;#160; (e.g. if you are developing&amp;#160; a prototype or an in-house project) it may be pragmatic to only use a single Software Component (&lt;strong&gt;APP&lt;/strong&gt;) as shown below to avoid unnecessary complexity.&lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56422-70007/SCForSmallApp.jpg"&gt;&lt;img alt="SCs structuring for very small applications" height="102" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56422-70007/148-102/SCForSmallApp.jpg" width="148"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you are developing a customer project or a medium to large product you may want to consider separating the functionalities into more reusable and distinct components. In such cases you may be best advised to break down your SCs based on traditional application layering as shown in the picture. &lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56422-70008/SCForMediumAndX-LargeApp.jpg"&gt;&lt;img alt="SCs structuring for medium/large/x-large applications" height="304" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56422-70008/333-304/SCForMediumAndX-LargeApp.jpg" width="333"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Separate components such as BPM&lt;/strong&gt; (Business Processes) and &lt;strong&gt;Portal&lt;/strong&gt; should be introduced if these technologies are required by the application. &lt;strong&gt;UI&lt;/strong&gt; is the container for the presentation logic, which is (just one) consumer of the functionality exposed by the &lt;strong&gt;BL &lt;/strong&gt;(Business Logic) layer. (I emphasize on this aspect as treating the UI as just one possible consumer help to keep the right mindset to properly service-enable an application.)It is considered best practice to have a separate component (&lt;strong&gt;Common/Model&lt;/strong&gt;) for common utilities/domain models used across all layers of the application as they provide the domain model , which the interfaces (and public API) is based on. Having a separate Software Component for Quality Management (&lt;strong&gt;QM&lt;/strong&gt;) stuff (unit tests etc.) enables you to mark the QM Software Component as an internal component that is not intended to be shipped to the customer.&lt;/p&gt;&lt;p&gt;If you are building an extra large application, it may even make sense to separate the Backend Connectivity (&lt;strong&gt;BC&lt;/strong&gt;) logic (including persistence) from the main Business Logic (BL) as shown in the picture. In this case having a separate Software Component for backend connectivity logic will route the application design towards flexibility and which can be replaced as needed without affecting the Business Logic layer.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To wrap up, these distinct components can be replaced as needed, they can be combined with other components and ultimately they can be reused across different projects. For example for the same business logic layer implementation there can be separate UI technologies which you may want to use in future. With the presented approach we also get the option to deploy the Portal Content on SAP NetWeaver 7.0 server and the rest of the application may be deployed on SAP NetWeaver CE 7.1 EhP1 or EhP2. (Prior to the Global Availability of the unified stack that is shipped as SAP NetWeaver CE 7.1 EhP3 lots of customers still have a central SAP NetWeaver 7.0 portals system.)&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In the &lt;strong&gt;&lt;a class="jive-link-blog-small" data-containerId="31782" data-containerType="37" data-objectId="56450" data-objectType="38" href="http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--ii"&gt;Composite Application Layering Part - II&lt;/a&gt; in this series&lt;/strong&gt;, I will continue having a closer look on the componentization of Development Components.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:39adea3b-ce1f-4c73-817d-f8c3bb9d3140] --&gt;</description>
      <pubDate>Wed, 12 Jan 2011 01:24:52 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2011/01/12/composite-application-layering-part--i</guid>
      <dc:creator>Arvind Goel</dc:creator>
      <dc:date>2011-01-12T01:24:52Z</dc:date>
      <clearspace:dateToText>10 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/composite-application-layering-part--i</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=56422</wfw:commentRss>
    </item>
    <item>
      <title>Flexible Design - Know Componentization and SAP Component Model</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2010/12/09/flexible-design--know-componentization-and-sap-component-model</link>
      <description>&lt;!-- [DocumentBodyStart:cf760e2b-43d4-42dc-81ff-ecd845c4ca53] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;div style="width: 650px; margin-left: auto; margin-right: auto; padding: 10px; border: 2px solid #44697D; min-height: 120px; max-width: 700px;"&gt;&lt;div style="float: left; margin-right: 10px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56000-69362/CompAppsMM_qr.png"&gt;&lt;img alt="[Composite Apps - MM] QR-Code" height="120" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56000-69362/120-120/CompAppsMM_qr.png" width="120"/&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="display: table-cell; vertical-align: middle;"&gt;&lt;p style="padding-top: 15px !important;"&gt;The '&lt;strong&gt;Composition Application - Missing Manuals&lt;/strong&gt;' initiative hosted on the &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/code-exchange"&gt;SDN Code Exchange Platform&lt;/a&gt; aims to create a productivity starter kit and sandbox system for the development of Composites by providing technical libraries and an easy demo app documenting its features &amp;amp; how-to use them. &lt;br/&gt;&lt;br/&gt;Links: &lt;a class="jive-link-external-small" href="https://cw.sdn.sap.com/cw/groups/compappsmm"&gt;Composition Application - Missing Manuals&lt;/a&gt; | &lt;a class="jive-link-external-small" href="http://twitter.com/#!/CompAppsMM"&gt;Twitter&lt;/a&gt; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p class="Default"&gt;In this blog I will talk about software componentization in general, why it matters and how to best use the capabilities provided by the SAP Component Model to build scalable and flexible Composite Applications.&lt;/p&gt;&lt;p class="Default"&gt;&amp;#160;&lt;/p&gt;&lt;p class="Default"&gt;Software componentization, also known as component-based development focuses on the structuring of software as a composition of individual reusable parts (components) that are assembled and bundled together to achieve the required business functionality of a given business scenario.&lt;/p&gt;&lt;p class="Default"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The whole idea of Software Componentization is structuring the individual building blocks of an application into separate and distinct components (&lt;strong&gt;Separation of Concerns&lt;/strong&gt;) with well-defined interfaces and dependencies to ease the development, deployment and maintenance. By dividing the software project into components, you can organize them right from the start in comprehensible and reusable units. Components can use other components in a controlled manner or even encapsulate child components.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;Why Componentization?&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;1.)&amp;#160;&amp;#160;&amp;#160; Componentization aims to distribute the complexity of the whole application into sub components.&lt;/p&gt;&lt;p&gt;2.)&amp;#160;&amp;#160;&amp;#160; Reuse: Reusable components can be directly fitted in-to new application to improve productivity and efficiency.&lt;/p&gt;&lt;p&gt;3.)&amp;#160;&amp;#160;&amp;#160; Components contain encapsulated functionality so the overall supportability is improved. A shared set of proven components caters to both quality and maintenance aspects of development costs. &lt;/p&gt;&lt;p&gt;4.)&amp;#160;&amp;#160;&amp;#160; Flexibility: The replacement of components (ultimately at runtime) enables to achieve scalability and extensibility.&lt;/p&gt;&lt;p&gt;5.)&amp;#160;&amp;#160;&amp;#160; With more of integration tasks (with some of already available reusable components), TCD (total cost of development) can be reduced significantly.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In the same context, if we talk about &lt;strong&gt;Service Oriented Architecture (SOA)&lt;/strong&gt;, it is implicitly referring to componentizing the functionality within durable and reusable services.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;SAP Component Model &lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;The SAP Component Model is a component model to build applications on the Java 5 Enterprise Application Server shipping with SAP NetWeaver. It is based on dividing the source code of software applications into components in order to manage the life-cycle operations of software.&lt;/p&gt;&lt;p&gt;As Composite Application development is fully based on components, SAP NetWeaver Development Infrastructure with SAP Component Model is promoted way to organize and build Java based applications. &lt;/p&gt;&lt;p&gt;It goes beyond pure Java language visibility concepts by having different components exposing their functionality in the form of public parts, which provides more fine-granular control of access control lists.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The picture here shows SAP Component Model and its elements. &lt;/p&gt;&lt;p&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-56000-69363/SAPComponentModel.JPG"&gt;&lt;img alt="SAP Component Model" height="351" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-56000-69363/630-351/SAPComponentModel.JPG" style="vertical-align: middle;" width="630"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Till EhP1 (SAP NetWeaver Composition Environment 7.11), the composite application development starts from &lt;strong&gt;Software Components&lt;/strong&gt; and these software components together comprise the final product. With the release of EhP2 (SAP NetWeaver Composition Environment 7.20), the topmost entity is called &lt;strong&gt;Product&lt;/strong&gt; which can be created in &lt;strong&gt;Composite Designer&amp;#160;&lt;/strong&gt;and then referencing different software components into it. &lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Refer &lt;a class="jive-link-blog-small" data-containerId="17336" data-containerType="37" data-objectId="52083" data-objectType="38" href="http://scn.sap.com/people/ivan.stoyanov/blog/2010/01/14/composite-designer-major-part-of-sap-nwce"&gt;Composite Designer (Major Part of SAP NWCE)&lt;/a&gt;&amp;#160;and &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/f04a0a13-0ca1-2c10-0dbc-b5e131982f62"&gt;Do you Know Composite Designer&lt;/a&gt;&amp;#160;for complete information about &lt;strong&gt;Composite Designer&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;How-to achieve a flexible Design&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;The whole idea is about making the life easier in the evolving world of changing business processes. Flexible application design makes it future proof when we developing-in agile methodologies or when facing change requests (CR). Technically, this is taken care of by the SAP Component Model, by using Software components (SCs) and Development components (DCs). These are the main elements which help composite applications to adapt to changes in an ever-increasing complexity of change. Ultimately these components can be extended and replaced to fit in the future requirements without re-writing the entire application again.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Software Components&lt;/strong&gt; (SCs) are the components which are reusable units across different products. If a software component is already available for a part of the required functionality, it can be easily imported and integrated with other components. SCs are meant for deployment and installation. The functionality contained within a SC can be executed on a totally different server and can be shipped alone without affecting other components. As such, they are the smallest unit of providing patches, upgrades or enhancements from a life-cycle perspective.&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;A &lt;strong&gt;Development Component&lt;/strong&gt; (DC) may be best described as an enhanced Java project (from an eclipse perspective) with additional metadata, public parts (describing the visibility and accessibility of Development Objects) and dependencies to other DCs. These are mainly development and build units. DCs are the components which act as a container for all kinds of source artifacts (Java files, deployment descriptors, dictionaries etc). The functionality exposed by a DC &amp;ndash; via Public Parts - is encapsulated qualifies as black box for other components, which refer to the fact, that all other components can only access the objects which are exposed via public parts of a particular DC. &lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In nut shell, SAP Component Model emphasis on component based architecture which ensures flexible application design.&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Finding the right balance between SCs and DCs can be quite challenging and is influenced by several factors. In the next blog, I will talk about application layering in general and cover composite application specifies, and elaborate on how to structure a composite application in conjunction with the SAP Component Model to achieve scalability and flexibility by applying loose-coupling principles.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:cf760e2b-43d4-42dc-81ff-ecd845c4ca53] --&gt;</description>
      <pubDate>Thu, 09 Dec 2010 13:17:52 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2010/12/09/flexible-design--know-componentization-and-sap-component-model</guid>
      <dc:creator>Arvind Goel</dc:creator>
      <dc:date>2010-12-09T13:17:52Z</dc:date>
      <clearspace:dateToText>10 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/flexible-design--know-componentization-and-sap-component-model</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=56000</wfw:commentRss>
    </item>
    <item>
      <title>Building Extensible Composite Applications with SAP</title>
      <link>http://scn.sap.com/community/bpm/composite-applications/blog/2009/10/05/building-extensible-composite-applications-with-sap</link>
      <description>&lt;!-- [DocumentBodyStart:5f90704c-1a59-45e1-9081-fc92889a9ce0] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h3&gt;My whereabouts&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Those who closey follow &lt;a class="jive-link-blog-small" data-containerId="5177" data-containerType="2020" data-objectId="7238" data-objectType="37" href="http://scn.sap.com/people/steinermatt/blog"&gt;my blog&lt;/a&gt; may have been wondering about my lack of blogging in the last couple of months and the reasons behind it. Well, truth is... the fact that I haven't been as active as in the past in this regard does not mean that I have abandoned this aspect of my job - the OPPOSITE. In fact, I put it to a whole new level... I've been writing a book.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h3&gt;Writing a book&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;div style="float: left; margin: 0px 10px 5px 0px; border: #c0c0c0 1px solid; padding: 2px;"&gt;&lt;a href="http://scn.sap.com/servlet/JiveServlet/showImage/38-50932-61236/book_web2.png"&gt;&lt;img alt="Building Extensible Composite Applications with SAP - Book Cover" border="0" height="255" src="http://scn.sap.com/servlet/JiveServlet/downloadImage/38-50932-61236/196-255/book_web2.png" width="196"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;It all started around two years ago with my first few articles and blogs about the topic of &lt;a class="jive-link-external-small" href="http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417800)ID1554432050DB20091355983622889362End?blog=/pub/wlg/7791"&gt;extensibility in Java applications&lt;/a&gt; being published on SDN, which were well perceived by the community. Shortly after I found myself confronted with the idea about writing an entire book about the topic, which I just couldn't resist. So I jumped on the challenge...&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I have always enjoyed blogging, discussing technical topics with my peers and sharing my thoughts and views here on SDN. Yet, writing an entire book takes it to the next level for sure.&amp;#160; While I spent more than one late-night session seeing the project's steady progress kept me motivated. The excitement of getting the chance to write an entire book - especially for such a reknown publisher as &lt;a class="jive-link-external-small" href="http://www.sap-press.com"&gt;SAP Press&lt;/a&gt; - kept me going for the last couple of months. &lt;/p&gt;&lt;p&gt;The positive feedback I received from my colleagues who reviewed the individual topics rest-assured me that I was on track with my vision of writing a book that offers a unique selling point. Not only does the book cover various extensibility techniques in great detail, but I also managed to incorporate my knowlegde gathered in over 5 years of Composite development projects. As such the book provides insight on best-practices and proven design patterns that help to build &lt;em&gt;flexible&lt;/em&gt; Java applications. Despite the title I did not solely focus on extensibility techniques exclusivly, but also point out other topics and concepts typically encountered during Java development projects based on SAP NetWeaver Composition Environment.&amp;#160; &lt;/p&gt;&lt;div style="clear: both;"&gt;&lt;h3&gt;Feedback welcome&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Enough of the advertizing now... in fact, the main motivation for today's blog has been to setup a place for discussions about the book. I explicitly want to encourage all my readers to post their feedback and questions here. &lt;strong&gt;The more, the merrier!&lt;/strong&gt; &lt;strong&gt;:)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;PS: &lt;/strong&gt;Oh, I almost forgot... now, with the book getting into print these days&amp;#160; I hope to get back to my routine of blogging on a monthly basis. The potential topics have been pilling up on my desk over the last couple of months and I sure got some very interesting articles up my sleeve... stay tuned!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;hr/&gt;&lt;/div&gt;&lt;h3&gt;Extensibility Sessions at TechEd'09&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;As personally I will not be able to attend TechEd this year due to other assignments I'd like to take the opportunity to refer you to some of the sessions presented/hosted by my colleagues that cover the topic:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;BPM300 - Architecture Guidelines (Oliver Mayer, Volker Stiehl)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;CD267&amp;#160; - Java Extension Configuration Framework in SAP NetWeaver Composition Environment(Raphael Vogel)&lt;/div&gt;&lt;/li&gt;&lt;div&gt;&lt;li&gt;BPM360 - Composite Application Development: the Business Objects and Services Layer (Katrin von Ahsen, Stefan Henke and Volker Stiehl&lt;/li&gt;&lt;/div&gt;&lt;/ul&gt;&lt;hr/&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5f90704c-1a59-45e1-9081-fc92889a9ce0] --&gt;</description>
      <pubDate>Mon, 05 Oct 2009 11:46:05 GMT</pubDate>
      <guid>http://scn.sap.com/community/bpm/composite-applications/blog/2009/10/05/building-extensible-composite-applications-with-sap</guid>
      <dc:creator>Matthias Steiner</dc:creator>
      <dc:date>2009-10-05T11:46:05Z</dc:date>
      <clearspace:dateToText>3 weeks, 1 day ago</clearspace:dateToText>
      <clearspace:replyCount>4</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>http://scn.sap.com/community/bpm/composite-applications/blog/comment/building-extensible-composite-applications-with-sap</wfw:comment>
      <wfw:commentRss>http://scn.sap.com/community/bpm/composite-applications/blog/feeds/comments?blogPost=50932</wfw:commentRss>
    </item>
  </channel>
</rss>

