In the previous episodes in this series we started from a high level Java in the Telecommunications industry, zoomed in on Telemanagement Forum and the basics of OSS/J, described the basics of the Order Management API and now we'll discuss why the Order Management API fits perfectly in an Service Oriented Architecture (SOA). Why is this a relevant question? Virtually any organization does with order management in one way or another and many organizations are currently evaluating or realizing SOAs. Reason enough to check if the Order Management API fits in an SOA.

SOA is the most hyped TLA over the last years... Because SOA is so hyped and every vendor is trying to give a definition that's a perfect match for their product, we decided to not start with an SOA definition in our JavaOne and TMW presentations. Instead we took a more practical approach and compiled a list of concepts that are important for an SOA. We then checked if the Order Management API applied these concepts. The more concepts applied, the better the fit for use of the Order Management API in a SOA. An easy and efficient approach.

Below is the list of concepts we identified and per concept how this is applied in the Order Management API.

Service reuse Services exposed by the API can be reused for different types of Orders and are not bound to any specific business process.
Modular and autonomous <meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"><!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>The OM API is modular because it supports various types of Orders and each implementation can extend the types of Order supported. New order types can be plugged in without changing the API. From the larger architecture perspective an OM API implementation can be seen as a module with a clear task: Order Management. It does for example not cover inventory management or CRM.The OM API is autonomous because it does not depend on other APIs to be implemented. If you implement the OM API, you have a fully functional Order Management system which can work autonomously.</td> </tr> <tr> <td valign="top">Coarse grained</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>It is coarse grained becuase it allows for creation and starting of Orders by one call. There is no nitty-gritty interaction needed to create orders.</td> </tr> <tr> <td valign="top">Asynchronous</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>Asynchronous interactions are supported by the events that are available on all integration profiles (EJB, XML/JMS and web services) and of course for the XML/JMS profile all interactions are asynchronous.</td> </tr> <tr> <td valign="top">Stateless</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>While interacting with an OM implementation there is no stateful session being maintained (with the exception of execution large queries in which the result can be queried in batches).</td> </tr> <tr> <td valign="top">Composable</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>The services exposed by the API can be used in larger business flows.</td> </tr> <tr> <td valign="top">Described services</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>The services exposed by the API are well described via the XSDs (XML/JMS and webservice profiles), Javadoc (EJB profile).</td> </tr> <tr> <td valign="top">Ubiquitous domain language/model</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>All entities used in the API are based on the <a title="Telemanagement Shared Information and Data Model" href="http://www.tmforum.org/browse.aspx?catid=1684">TelemanagementForums Shared Information and Data model</a>. This provides the ubiquitous language.<br /> Please be aware that only generic elements of this model are used to ensure that the API is not bound to telecommunications specific systems only.</td> </tr> <tr> <td valign="top">Reliable messaging</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>Reliable messaging is supported through the JMS profile (and in future probably also for web service profile using the WS-Reliable Messaging standard).</td> </tr> <tr> <td valign="top">Loosely coupled</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>Loose coupling is provided through the XML/JMS and web services profile.</td> </tr> <tr> <td valign="top">XML Document based</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>Both the XML/JMS and web services profile use XML based message exchanges.</td> </tr> <tr> <td valign="top">Interoperable</td> <td><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>The web services profile support interoperability with other implementation technologies. Interoperability is also supported by the XML/JMS profile since many JMS providers provide APIs for non-Java clients.</td> </tr> </table> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">These are all the concepts that apply to the Order Management API. The following concepts are not addressed by the Order Management API and I'll explain why:</p> <p style="margin-bottom: 0in"> <table width="665" cellspacing="0" cellpadding="0" border="0"> <tr valign="top"> <td style="width: 230px">Versioning</td> <td style="width: 435px">There is no standard way for versioning of (for example) orders without breaking already connected clients. For example, when you'd add an attribute to an Order on the server, clients that validate the XML against the XML Schema will break.There are some ways to deal with this, but the Order Management API (or the OSS/J APIs in general) dooes not define how this situation should be handled. Luckily the Order Management API does provide support for dynamic attributes and by using these the problem becomes less urgent, but it is something that should be addressed in the future.</td> </tr> <tr> <td valign="top"><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>Policy Driven, Registry and discovery, Orchestration</td> <td valign="top"><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>These concepts should not be defined by one single system in a SOA, but are the responsibility of the SOA eco-system. Order Management API implementations can perfectly participate in a policy driven SOA, or be registered and discovered, or be used by and orchestration engine, but, the API does and should not define how this is realized.</td> </tr> <tr> <td valign="top"><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>Security</td> <td valign="top"><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title /><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)" /><meta name="AUTHOR" content="Gero Vermaas" /><meta name="CREATED" content="20070329;13524000" /><meta name="CHANGEDBY" content="Gero Vermaas" /><meta name="CHANGED" content="20070606;17002900" /> </p> <style type="text/css"> <!-- @page { size: 8.5in 11in; margin: 0.79in } TD P { margin-bottom: 0in } P { margin-bottom: 0.08in } --> </style> <p>The Order Management API itself does not specify how security should be addressed, but because it builds on the JavaEE and web service specifications, the security features of JavaEE and web services can be used to address security needs.</td> </tr> </table> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">In summary the Order Management API conforms to most of the relevant SOA concepts. If you're in a situation where an Order Management system needs to be integrated into an SOA, consider the <a href="https://jsr264-public.dev.java.net/">Order Management API (JSR264)</a>. In case you're missing important SOA concepts, let me know, then I'll explain if and how the Order Management API applies these concepts.</p> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in"> <p style="margin-bottom: 0in">This entry roughly covered the second part of our JavaOne and TMW presentations. What's next... not sure yet, but I'll be back with more Java and telco related posts. Suggestions are welcome 😉</p> <div class="et_social_inline et_social_mobile_on et_social_inline_bottom"> <div class="et_social_networks et_social_5col et_social_slide et_social_rounded et_social_left et_social_no_animation et_social_withcounts et_social_outer_dark"> <ul class="et_social_icons_container"><li class="et_social_facebook"> <a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share et_social_display_count" rel="nofollow" data-social_name="facebook" data-post_id="235" data-social_type="share" data-location="inline"data-min_count="0"> <i class="et_social_icon et_social_icon_facebook"></i><div class="et_social_network_label"></div><span class="et_social_overlay"></span> </a> </li><li class="et_social_twitter"> <a href="http://twitter.com/share?text=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture&url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&via=@Xebia" class="et_social_share et_social_display_count" rel="nofollow" data-social_name="twitter" data-post_id="235" data-social_type="share" data-location="inline"data-min_count="0"> <i class="et_social_icon et_social_icon_twitter"></i><div class="et_social_network_label"></div><span class="et_social_overlay"></span> </a> </li><li class="et_social_linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&title=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share et_social_display_count" rel="nofollow" data-social_name="linkedin" data-post_id="235" data-social_type="share" data-location="inline"data-min_count="0"> <i class="et_social_icon et_social_icon_linkedin"></i><div class="et_social_network_label"></div><span class="et_social_overlay"></span> </a> </li><li class="et_social_googleplus"> <a href="https://plus.google.com/share?url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share et_social_display_count" rel="nofollow" data-social_name="googleplus" data-post_id="235" data-social_type="share" data-location="inline"data-min_count="0"> <i class="et_social_icon et_social_icon_googleplus"></i><div class="et_social_network_label"></div><span class="et_social_overlay"></span> </a> </li><li class="et_social_hackernews"> <a href="https://news.ycombinator.com/submitlink?u=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share et_social_display_count" rel="nofollow" data-social_name="hackernews" data-post_id="235" data-social_type="share" data-location="inline"data-min_count="0"> <i class="et_social_icon et_social_icon_hackernews"></i><div class="et_social_network_label"></div><span class="et_social_overlay"></span> </a> </li></ul> </div> </div><span class="et_social_bottom_trigger"></span> <div class="post-nav pagination"> <div class="row"> <div class="col-md-6"><h4>Previous post</h4><p><a href="http://blog.xebia.com/podcast-episode-5-online-ejapp-performance-top-10-6-and-5/" rel="prev">Podcast Episode 5 online: EJAPP Performance Top 10, 6 and 5</a></p></div> <div class="col-md-6 text-right"><h4>Next post</h4><p><a href="http://blog.xebia.com/podcast-episode-5-online-episode-6-scrum-interview-with-jeff-sutherland-pt-12/" rel="next">Podcast Episode 6 online: SCRUM, interview with Jeff Sutherland (pt. 1/2)</a></p></div> </div> </div> </div> <div id="comments" class="post-comments"> <h3 class="title">Comments</h3> <div class="pingback even thread-even depth-1" id="comment-24013"> <div class="comment-author vcard"> <cite class="fn"><a href='http://blog.xebia.com/2007/11/16/order-management-in-converging-environments/' rel='external nofollow' class='url'>Xebia Blog</a></cite> <span class="says">says:</span> </div> <div class="comment-meta commentmetadata"><a href="http://blog.xebia.com/java-in-telecommunications-%e2%80%93-order-management-api-in-a-service-oriented-architecture/#comment-24013"> November 16, 2007 at 10:32 am</a> </div> <p>[...] It integrates easily into a SOA, see previous blog posting. [...]</p> <div class="reply"><a rel='nofollow' class='comment-reply-link' href='http://blog.xebia.com/java-in-telecommunications-%e2%80%93-order-management-api-in-a-service-oriented-architecture/?replytocom=24013#respond' onclick='return addComment.moveForm( "comment-24013", "24013", "respond", "235" )' aria-label='Reply to Xebia Blog'>Reply</a></div> </div><!-- #comment-## --> </div> <!-- comments --> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/java-in-telecommunications-%e2%80%93-order-management-api-in-a-service-oriented-architecture/#respond" style="display:none;">Cancel reply</a></small></h3> <form action="http://blog.xebia.com/wp-comments-post.php" method="post" id="commentform" class="comment-form"> <p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> Required fields are marked <span class="required">*</span></p><p class="comment-form-comment"><label for="comment">Comment</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" aria-required="true" required="required"></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" aria-required='true' required='required' /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="text" value="" size="30" maxlength="100" aria-describedby="email-notes" aria-required='true' required='required' /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="text" value="" size="30" maxlength="200" /></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='235' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="de9b9cbe4e" /></p><p style="display: none;"><input type="hidden" id="ak_js" name="ak_js" value="113"/></p> </form> </div><!-- #respond --> </article> </div> </div> </div> </div> <footer class="footer" id="contact"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="row"> <div class="col-md-2"> <div class="label"> <svg width="79px" height="26px" viewBox="448 31 89 29" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch --> <desc>Xebia Blog</desc> <defs></defs> <g id="Xebia" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(448.000000, 31.000000)"> <path d="M43.1184641,13.2420493 L34.8147059,13.2420493 C35.3236928,11.4012903 37.0251634,10.1883871 38.8284314,10.1883871 C41.0679739,10.1883871 42.5513072,11.2728653 43.1184641,13.2420493 M34.7710784,16.0388615 L46.9576797,16.0388615 L46.9576797,15.2825806 C46.9576797,13.3133966 46.4923203,11.7294877 45.5470588,10.3881594 C43.9328431,8.29055028 41.5333333,7.00629981 38.9447712,7.00629981 C36.8651961,7.00629981 34.8583333,7.89100569 33.3168301,9.47491461 C31.9062092,10.9446679 31.179085,12.7854269 31.179085,14.8687666 C31.179085,16.8379507 32.022549,18.878482 33.4477124,20.3482353 C35.0183007,21.8893359 36.894281,22.6456167 39.1629085,22.6456167 C42.5367647,22.6456167 45.2125817,20.8048577 46.4923203,17.5514231 L42.6676471,17.5514231 C41.9405229,18.7643264 40.5880719,19.3921822 39.0465686,19.3921822 C36.5598039,19.4777989 34.9455882,18.1364706 34.7710784,16.0388615" id="Shape" fill="#FFFFFF"></path> <path d="M52.4547386,15.0114611 C52.4547386,12.4572296 54.330719,10.5451233 56.8029412,10.5451233 C59.2751634,10.5451233 61.2238562,12.5856546 61.2238562,14.9401139 C61.2238562,17.4087287 59.3478758,19.3351044 56.6138889,19.3351044 C54.4179739,19.3493738 52.4547386,17.4372676 52.4547386,15.0114611 M52.3238562,8.64728653 L52.3238562,2.6683871 L48.8336601,2.6683871 L48.8336601,22.4030361 L52.3238562,22.4030361 L52.3238562,21.1901328 C53.7344771,22.274611 55.2614379,22.7740417 57.0501634,22.7740417 C58.9988562,22.7740417 60.6712418,22.146186 62.0382353,21.0617078 C63.8705882,19.5206072 64.8885621,17.3088425 64.8885621,14.9543833 C64.8885621,12.7854269 63.9869281,10.6164706 62.2854575,9.14671727 C60.8748366,7.80538899 59.0424837,7.17753321 57.0356209,7.17753321 C55.1887255,7.13472486 53.6908497,7.56280835 52.3238562,8.64728653" id="Shape" fill="#FFFFFF"></path> <path d="M67.3171569,7.52 L70.6910131,7.52 L70.6910131,22.4030361 L67.3171569,22.4030361 L67.3171569,7.52 L67.3171569,7.52 Z M67.3171569,2.6683871 L70.6910131,2.6683871 L70.6910131,5.97889943 L67.3171569,5.97889943 L67.3171569,2.6683871 L67.3171569,2.6683871 Z" id="Shape" fill="#FFFFFF"></path> <path d="M76.6098039,14.754611 C76.6098039,12.3288046 78.5584967,10.4880455 80.9580065,10.4880455 C83.1684641,10.4880455 85.2334967,12.4001518 85.2334967,14.9543833 C85.2334967,17.2517647 83.226634,19.2209488 81.0161765,19.2209488 C78.6166667,19.2209488 76.6098039,17.3801898 76.6098039,14.754611 L76.6098039,14.754611 Z M85.6261438,22.4030361 L89,22.4030361 L89,7.52 L85.6261438,7.52 L85.6261438,9.30368121 C84.5936275,7.83392789 83.0230392,7.13472486 80.8125817,7.13472486 C78.5439542,7.13472486 76.7261438,7.84819734 75.1846405,9.43210626 C73.7740196,10.9018596 73.0468954,12.8139658 73.0468954,14.911575 C73.0468954,19.3779127 76.4207516,22.7312334 80.8852941,22.7312334 C83.226634,22.7312334 84.7681373,22.1033776 85.6116013,20.562277 L85.6261438,22.4030361 L85.6261438,22.4030361 L85.6261438,22.4030361 Z" id="Shape" fill="#FFFFFF"></path> <polygon id="Shape" fill="#FFFFFF" points="0.130882353 28.8813662 9.37990196 28.8813662 19.3851307 19.0925237 29.3612745 28.8813662 38.726634 28.8813662 24.0678105 14.4977609 38.8575163 0 29.4921569 0 19.3851307 9.931537 9.33627451 0 0 0 14.702451 14.4977609"></polygon> </g> </svg> </div> </div> <div class="col-md-4 contact"> <h3><a href="https://xebia.com">← Back to xebia.com</a></h3> </div> <div class="col-md-6 proudly"> <p><strong>Proudly part of the Xebia Group</strong>Xebia explores and creates new frontiers in IT. We provide innovative products and services and strive to stay one step ahead of our customers’ needs.</p> <p>We create digital winners.</p> <p><a href="https://cdn.xebia.com/documents/Cookies+Policy+Xebia+20170130.pdf">Cookie Policy</a>  <a href="https://cdn.xebia.com/documents/privacy-policy-xebia-group.pdf">Privacy Policy</a></p> </div> </div> </div> </div> </div> </footer> <div class="et_social_sidebar_networks et_social_visible_sidebar et_social_slideright et_social_animated et_social_rectangle et_social_sidebar_grow et_social_mobile_on"> <ul class="et_social_icons_container"><li class="et_social_facebook"> <a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="facebook" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_facebook"></i> <span class="et_social_overlay"></span> </a> </li><li class="et_social_twitter"> <a href="http://twitter.com/share?text=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture&url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&via=@Xebia" class="et_social_share" rel="nofollow" data-social_name="twitter" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_twitter"></i> <span class="et_social_overlay"></span> </a> </li><li class="et_social_linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&title=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="linkedin" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_linkedin"></i> <span class="et_social_overlay"></span> </a> </li><li class="et_social_googleplus"> <a href="https://plus.google.com/share?url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="googleplus" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_googleplus"></i> <span class="et_social_overlay"></span> </a> </li><li class="et_social_hackernews"> <a href="https://news.ycombinator.com/submitlink?u=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="hackernews" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_hackernews"></i> <span class="et_social_overlay"></span> </a> </li></ul> <span class="et_social_hide_sidebar et_social_icon"></span> </div><div class="et_social_mobile_button"></div> <div class="et_social_mobile et_social_fadein"> <div class="et_social_heading">Share This</div> <span class="et_social_close"></span> <div class="et_social_networks et_social_simple et_social_rounded et_social_left"> <ul class="et_social_icons_container"><li class="et_social_facebook"> <a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="facebook" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_facebook"></i> <div class="et_social_network_label"><div class="et_social_networkname">Facebook</div></div> <span class="et_social_overlay"></span> </a> </li><li class="et_social_twitter"> <a href="http://twitter.com/share?text=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture&url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&via=@Xebia" class="et_social_share" rel="nofollow" data-social_name="twitter" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_twitter"></i> <div class="et_social_network_label"><div class="et_social_networkname">Twitter</div></div> <span class="et_social_overlay"></span> </a> </li><li class="et_social_linkedin"> <a href="http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&title=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="linkedin" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_linkedin"></i> <div class="et_social_network_label"><div class="et_social_networkname">LinkedIn</div></div> <span class="et_social_overlay"></span> </a> </li><li class="et_social_googleplus"> <a href="https://plus.google.com/share?url=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="googleplus" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_googleplus"></i> <div class="et_social_network_label"><div class="et_social_networkname">Google+</div></div> <span class="et_social_overlay"></span> </a> </li><li class="et_social_hackernews"> <a href="https://news.ycombinator.com/submitlink?u=http%3A%2F%2Fblog.xebia.com%2Fjava-in-telecommunications-%25e2%2580%2593-order-management-api-in-a-service-oriented-architecture%2F&t=Java%20in%20Telecommunications%20%E2%80%93%20Order%20Management%20API%20in%20a%20Service%20Oriented%20Architecture" class="et_social_share" rel="nofollow" data-social_name="hackernews" data-post_id="235" data-social_type="share" data-location="sidebar"> <i class="et_social_icon et_social_icon_hackernews"></i> <div class="et_social_network_label"><div class="et_social_networkname">Hacker News</div></div> <span class="et_social_overlay"></span> </a> </li></ul> </div> </div> <div class="et_social_mobile_overlay"></div> <!-- Start of Async HubSpot Analytics Code for WordPress v1.1.2 --> <script type="text/javascript"> var _hsq = _hsq || []; _hsq.push(["setContentType", "blog-post"]); (function(d,s,i,r) { if (d.getElementById(i)){return;} var n = d.createElement(s),e = document.getElementsByTagName(s)[0]; n.id=i;n.src = '//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/697348.js'; e.parentNode.insertBefore(n, e); })(document, "script", "hs-analytics", 300000); </script> <!-- End of Async HubSpot Analytics Code --> <script type='text/javascript' src='http://blog.xebia.com/wp-content/plugins/akismet/_inc/form.js?ver=3.3' defer onload=''></script> <script type='text/javascript' src='http://blog.xebia.com/wp-includes/js/jquery/jquery.js'></script> <script type='text/javascript' src='http://blog.xebia.com/wp-content/plugins/monarch/js/idle-timer.min.js?ver=1.3.2' defer onload=''></script> <script type='text/javascript'> /* <![CDATA[ */ var monarchSettings = {"ajaxurl":"http:\/\/blog.xebia.com\/wp-admin\/admin-ajax.php","pageurl":"http:\/\/blog.xebia.com\/java-in-telecommunications-%e2%80%93-order-management-api-in-a-service-oriented-architecture\/","stats_nonce":"bd5002e0db","share_counts":"cb70e663af","follow_counts":"155b7f93c9","total_counts":"cfa0756d5c","media_single":"e34f2418b5","media_total":"b3e7398900","generate_all_window_nonce":"8a5e7ed862","no_img_message":"No images available for sharing on this page"}; /* ]]> */ </script> <script type='text/javascript' src='http://blog.xebia.com/wp-content/plugins/monarch/js/custom.js?ver=1.3.2' defer onload=''></script> <script type='text/javascript' src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js?ver=3.3.6' defer onload=''></script> <script type='text/javascript' src='http://blog.xebia.com/wp-includes/js/wp-embed.min.js?ver=4.7.3' defer onload=''></script> </body> </html>