10.02.2013 Views

esb_deploy - Progress Sonic ESB Deployment Guide 8.5 - Product ...

esb_deploy - Progress Sonic ESB Deployment Guide 8.5 - Product ...

esb_deploy - Progress Sonic ESB Deployment Guide 8.5 - Product ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

®<br />

®<br />

PROGRESS®<br />

SONIC®<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

<strong>Deployment</strong> <strong>Guide</strong>


<strong>Progress</strong>® <strong>Sonic</strong>® <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

© 2011 <strong>Progress</strong> Software Corporation and/or its subsidiaries or affiliates. All rights reserved.<br />

These materials and all <strong>Progress</strong>® software products are copyrighted and all rights are reserved by <strong>Progress</strong><br />

Software Corporation. The information in these materials is subject to change without notice, and <strong>Progress</strong><br />

Software Corporation assumes no responsibility for any errors that may appear therein. The references in these<br />

materials to specific platforms supported are subject to change.<br />

Actional, Apama, Artix, Business Empowerment, Business Making <strong>Progress</strong>, DataDirect (and design), DataDirect<br />

Connect, DataDirect Connect64, DataDirect Technologies, DataDirect XML Converters, DataDirect XQuery,<br />

DataXtend, Dynamic Routing Architecture, EdgeXtend, Empowerment Center, Fathom, Fuse Mediation Router,<br />

Fuse Message Broker, Fuse Services Framework, IntelliStream, IONA, Making Software Work Together,<br />

Mindreef, ObjectStore, OpenEdge, Orbix, PeerDirect, POSSENET, Powered by <strong>Progress</strong>, PowerTier, <strong>Progress</strong>,<br />

<strong>Progress</strong> DataXtend, <strong>Progress</strong> Dynamics, <strong>Progress</strong> Business Empowerment, <strong>Progress</strong> Empowerment Center,<br />

<strong>Progress</strong> Empowerment Program, <strong>Progress</strong> OpenEdge, <strong>Progress</strong> Profiles, <strong>Progress</strong> Results, <strong>Progress</strong> Software<br />

Business Making <strong>Progress</strong>, <strong>Progress</strong> Software Developers Network, <strong>Progress</strong> <strong>Sonic</strong>, ProVision, PS Select,<br />

Savvion, SequeLink, Shadow, SOAPscope, SOAPStation, <strong>Sonic</strong>, <strong>Sonic</strong> <strong>ESB</strong>, <strong>Sonic</strong>MQ, <strong>Sonic</strong> Orchestration<br />

Server, SpeedScript, Stylus Studio, Technical Empowerment, WebSpeed, Xcalia (and design), and Your Software,<br />

Our Technology-Experience the Connection are registered trademarks of <strong>Progress</strong> Software Corporation or one of<br />

its affiliates or subsidiaries in the U.S. and/or other countries. AccelEvent, Apama Dashboard Studio, Apama Event<br />

Manager, Apama Event Modeler, Apama Event Store, Apama Risk Firewall, AppsAlive, AppServer, ASPen, ASPin-a-Box,<br />

BusinessEdge, Cache-Forward, CloudEdge, DataDirect Spy, DataDirect SupportLink, Fuse, FuseSource,<br />

Future Proof, GVAC, High Performance Integration, ObjectStore Inspector, ObjectStore Performance Expert,<br />

OpenAccess, Orbacus, Pantero, POSSE, ProDataSet, <strong>Progress</strong> Arcade, <strong>Progress</strong> CloudEdge, <strong>Progress</strong> Control<br />

Tower, <strong>Progress</strong> ESP Event Manager, <strong>Progress</strong> ESP Event Modeler, <strong>Progress</strong> Event Engine, <strong>Progress</strong> RFID,<br />

<strong>Progress</strong> RPM, PSE Pro, SectorAlliance, SeeThinkAct, Shadow z/Services, Shadow z/Direct, Shadow z/Events,<br />

Shadow z/Presentation, Shadow Studio, SmartBrowser, SmartComponent, SmartDataBrowser, SmartDataObjects,<br />

SmartDataView, SmartDialog, SmartFolder, SmartFrame, SmartObjects, SmartPanel, SmartQuery, SmartViewer,<br />

SmartWindow, <strong>Sonic</strong> Business Integration Suite, <strong>Sonic</strong> Process Manager, <strong>Sonic</strong> Collaboration Server, <strong>Sonic</strong><br />

Continuous Availability Architecture, <strong>Sonic</strong> Database Service, <strong>Sonic</strong> Workbench, <strong>Sonic</strong> XML Server, The Brains<br />

Behind BAM, WebClient, and Who Makes <strong>Progress</strong> are trademarks or service marks of <strong>Progress</strong> Software<br />

Corporation and/or its subsidiaries or affiliates in the U.S. and other countries. Java is a registered trademark of<br />

Oracle and/or its affiliates. Any other marks contained herein may be trademarks of their respective owners.<br />

Third Party Acknowledgements:<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Model Objects Framework v2.0 from ModelObjects Group. Such technology is<br />

subject to the following terms and conditions: The ModelObjects Group Software License, Version 1.0 - Copyright<br />

(c) 2000-2001 ModelObjects Group. All rights reserved. Redistribution and use in source and binary forms, with<br />

or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source<br />

code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions<br />

in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />

documentation and/or other materials provided with the distribution. 3. The end-user documentation included with


the redistribution, if any, must include the following acknowledgement: "This product includes software developed<br />

by the ModelObjects Group (http://www.modelobjects.com)." Alternatively, this acknowledgement may appear in<br />

the software itself, if and wherever such third-party acknowledgements normally appear. 4. The name<br />

"ModelObjects" must not be used to endorse or promote products derived from this software without prior written<br />

permission. For written permission, please contact djacobs@modelobjects.com. 5. <strong>Product</strong>s derived from this<br />

software may not be called "ModelObjects", nor may ModelObjects" appear in thier name, without prior written<br />

permission of the ModelObjects Group. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE MODEL OBJECTS GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br />

INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,<br />

BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<br />

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF<br />

LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />

OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF<br />

THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates OpenSAML Java Distribution v1.0.1. Such technology is subject to the following<br />

terms and conditions: The OpenSAML License, Version 1. Copyright (c) 2002 - University Corporation for<br />

Advanced Internet Development, Inc. All rights reserved. Redistribution and use in source and binary forms, with<br />

or without modification, are permitted provided that the following conditions are met: Redistributions of source<br />

code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in<br />

binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />

documentation and/or other materials provided with the distribution, if any, must include the following<br />

acknowledgment: "This product includes software developed by the University Corporation for Advanced Internet<br />

Development (http://www.ucaid.edu)Internet2 Project. Alternately, this acknowledegement may appear in the<br />

software itself, if and wherever such third-party acknowledgments normally appear. Neither the name of<br />

OpenSAML nor the names of its contributors, nor Internet2, nor the University Corporation for Advanced Internet<br />

Development, Inc., nor UCAID may be used to endorse or promote products derived from this software without<br />

specific prior written permission. For written permission, please contact opensaml@opensaml.org. <strong>Product</strong>s<br />

derived from this software may not be called OpenSAML, Internet2, UCAID, or the University Corporation for<br />

Advanced Internet Development, nor may OpenSAML appear in their name, without prior written permission of<br />

the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE<br />

COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE<br />

DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY,<br />

AND EFFORT IS WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS<br />

OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE<br />

FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL<br />

DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />

SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED<br />

AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT


(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS<br />

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates BasicLogin.java, SimpleCallbackHandler.java, SimplePasswordUser.java,<br />

SampleLoginModule.java, SamplePrincipal.java from Sun Microsystems, Inc. These technologies are subject to<br />

the following terms and conditions: Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.<br />

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the<br />

following conditions are met: -Redistributions of source code must retain the above copyright notice, this list of<br />

conditions and the following disclaimer. -Redistribution in binary form must reproduce the above copyright notice,<br />

this list of conditions and the following disclaimer in the documentation and/or other materials provided with the<br />

distribution. Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or<br />

promote products derived from this software without specific prior written permission. This software is provided<br />

"AS IS," without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS<br />

AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR<br />

A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS<br />

LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE<br />

AS A RESULT OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE<br />

OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST<br />

REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,<br />

INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF<br />

LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS<br />

BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You acknowledge that Software is not<br />

designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Saxon XSLT and XQuery Processor v8.9.0.4 from Saxonica Limited<br />

(http://www.saxonica.com/) which is available from SourceForge (http://sourceforge.net/projects/saxon/). PSC<br />

will, at Licensee's request, provide copies of the source code for this third party technology, including<br />

modifications, if any, made by PSC. PSC may charge reasonable shipping and handling charges for such<br />

distribution. Licensee may also obtain the source code through http://communities.progress.com/pcom/docs/DOC-<br />

16051 by following the instructions set forth therein. - Mozilla Public License Version 1.0 (the "License"); you may<br />

not use this file except in compliance with the License. You may obtain a copy of the License at<br />

http://www.mozilla.org/MPL. Software distributed under the License is distributed on an "AS IS" basis,<br />

WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language<br />

governing rights and limitations under the License. The Original Code of Saxon comprises all those components<br />

which are not explicitly attributed to other parties. The Initial Developer of the Original Code is Michael Kay. Until<br />

February 2001 Michael Kay was an employee of International Computers Limited (now part of Fujitsu Limited),<br />

and original code developed during that time was released under this license by permission from International<br />

Computers Limited. From February 2001 until February 2004 Michael Kay was an employee of Software AG, and<br />

code developed during that time was released under this license by permission from Software AG, acting as a<br />

"Contributor". Subsequent code has been developed by Saxonica Limited, of which Michael Kay is a Director,<br />

again acting as a "Contributor". A small number of modules, or enhancements to modules, have been developed by<br />

other individuals (either written specially for Saxon, or incorporated into Saxon having initially been released as<br />

part of another open source product). Such contributions are acknowledged individually in comments attached to


the relevant code modules. All Rights Reserved.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Mozilla Rhino v1.5R3. The contents of this file are subject to the Netscape Public<br />

License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may<br />

obtain a copy of the License at http://www.mozilla.org/NPL/. Software distributed under the License is distributed<br />

on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the<br />

specific language governing rights and limitations under the License. The Original Code is Mozilla Communicator<br />

client code, released March 31, 1998. The Initial Developer of the Original Code is Netscape Communications<br />

Corporation. Portions created by Netscape are Copyright (C) 1998-1999 Netscape Communications Corporation.<br />

All Rights Reserved. PSC will, at Licensee's request, provide copies of the source code for this third party<br />

technology, including modifications, if any, made by PSC. PSC may charge reasonable shipping and handling<br />

charges for such distribution. Licensee may also obtain the source code through<br />

http://communities.progress.com/pcom/docs/DOC-16051 by following the instructions set forth therein.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Apache Ant-Contrib 1.0B3. Such technology is subject to the following terms<br />

and conditions: The Apache Software License, Version 1.1 - Copyright (c) 2001-2003 Ant-Contrib project. All<br />

rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted<br />

provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright<br />

notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the<br />

above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other<br />

materials provided with the distribution. 3. The end-user documentation included with the redistribution, if any,<br />

must include the following acknowlegement: "This product includes software developed by the Ant-Contrib<br />

project (http://sourceforge.net/projects/ant-contrib)." Alternately, this acknowlegement may appear in the software<br />

itself, if and wherever such third-party acknowlegements normally appear. 4. The name Ant-Contrib must not be<br />

used to endorse or promote products derived from this software without prior written permission. For written<br />

permission, please contact ant-contrib-developers@lists.sourceforge.net. 5. <strong>Product</strong>s derived from this software<br />

may not be called "Ant-Contrib" nor may "Ant-Contrib" appear in their names without prior written permission of<br />

the Ant-Contrib project. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED<br />

WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE ANT-CONTRIB PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br />

INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,<br />

BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<br />

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF<br />

LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />

OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF<br />

THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Xalan Java XSLT Parser v2.4.1 from the Apache Foundation. Such technology<br />

is subject to the following terms and conditions: The Apache Software License, Version 1.1 - Copyright (c) 1999<br />

The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or<br />

without modification, are permitted provided that the following conditions are met: 1. Redistributions of source<br />

code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions<br />

in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the


documentation and/or other materials provided with the distribution. 3. The end-user documentation included with<br />

the redistribution, if any, must include the following acknowledgment: "This product includes software developed<br />

by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in<br />

the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xalan" and<br />

"Apache Software Foundation" must not be used to endorse or promote products derived from this software without<br />

prior written permission. For written permission, please contact apache@apache.org. 5. <strong>Product</strong>s derived from this<br />

software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of<br />

the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS<br />

OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

==========================================<br />

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software<br />

Foundation and was originally based on software copyright (c) 1999, Lotus Development Corporation.,<br />

http://www.lotus.com. For more information on the Apache Software Foundation, please see<br />

(http://www.apache.org/).<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Xerces v2.6.2 from the Apache Foundation. Such technology is subject to the<br />

following terms and conditions: The Apache Software License, Version 1.1 - Copyright (c) 1999-2004 The Apache<br />

Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without<br />

modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must<br />

retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary<br />

form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />

documentation and/or other materials provided with the distribution. 3. The end-user documentation included with<br />

the redistribution, if any, must include the following acknowledgment: "This product includes software developed<br />

by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in<br />

the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xerces" and<br />

"Apache Software Foundation" must not be used to endorse or promote products derived from this software without<br />

prior written permission. For written permission, please contact apache@apache.org. 5. <strong>Product</strong>s derived from this<br />

software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of<br />

the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS


OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

================================================================<br />

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software<br />

Foundation and was originally based on software copyright (c) 1999, International Business Machines, Inc.,<br />

http://www.ibm.com. For more information on the Apache Software Foundation, please see<br />

(http://www.apache.org/).<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates RSS4J v0.9.2. Such technology is subject to the following terms and conditions:<br />

Copyright (c) 1999-2002 ChurchillObjects.com All rights reserved. Redistribution and use in source and binary<br />

forms, with or without modification, are permitted provided that the following conditions are met: Redistributions<br />

of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<br />

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following<br />

disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the<br />

copyright holder nor the names of its contributors may be used to endorse or promote products derived from this<br />

software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT<br />

HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,<br />

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />

FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR<br />

CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,<br />

OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br />

SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />

INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN<br />

CONTRACT, STRICT LIABILITY, OR TORT, INC<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Crimson v1.1.3. Such technology is subject to the following terms and<br />

conditions: The Apache Software License, Version 1.1. Copyright (c) 1999-2003 The Apache Software<br />

Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification,<br />

are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the<br />

above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must<br />

reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation<br />

and/or other materials provided with the distribution. 3. The end-user documentation included with the<br />

redistribution, if any, must include the following acknowledgment: "This product includes software developed by<br />

the * Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in<br />

the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xerces" and<br />

"Apache Software Foundation" must not be used to endorse or promote products derived from this software without<br />

prior written permission. For written permission, please contact apache@apache.org. 5. <strong>Product</strong>s derived from this<br />

software may not be called "Apache", nor may "Apache" appear in their name, without prior written * permission<br />

of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT


SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS<br />

OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

====================================================================<br />

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software<br />

Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc.,<br />

http://www.ibm.com. For more * information on the Apache Software Foundation, please see *<br />

(http://www.apache.org/).<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Jing 20030619 and Trang 20030619. Such technology is subject to the following<br />

terms and conditions: Copyright (c) 2002, 2003 Thai Open Source Software Center Ltd. All rights reserved.<br />

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the<br />

following conditions are met: Redistributions of source code must retain the above copyright notice, this list of<br />

conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice,<br />

this list of conditions and the following disclaimer in the documentation and/or other materials provided with the<br />

distribution. Neither the name of the Thai Open Source Software Center Ltd nor the names of its contributors may<br />

be used to endorse or promote products derived from this software without specific prior written permission. THIS<br />

SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY<br />

EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED<br />

WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE<br />

DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS<br />

OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates RSSUTILS v1.1. Such technology is subject to the following terms and<br />

conditions: Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED Use of this software is authorized<br />

pursuant to the terms of the license found at http://developer.java.sun.com/berkeley_license.html Copyright 2003<br />

Sun Microsystems, Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without<br />

modification, are permitted provided that the following conditions are met:<br />

-Redistribution of source code must retain the above copyright notice, this list of conditions and the following<br />

disclaimer.<br />

-Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following<br />

disclaimer in the documentation and/or other materials provided with the distribution.<br />

Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or promote


products derived from this software without specific prior written permission. This software is provided "AS IS,"<br />

without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND<br />

WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A<br />

PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS,<br />

INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY<br />

LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS<br />

DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE,<br />

PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR<br />

PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,<br />

ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN<br />

ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You acknowledge that this software is not designed,<br />

licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates DSTC Xs3P version 1.1 from DSTC Pty Ltd. PSC will, at Licensee's request,<br />

provide copies of the source code for this third party technology, including modifications, if any, made by PSC.<br />

PSC may charge reasonable shipping and handling charges for such distribution. Licensee may also obtain the<br />

source code through http://communities.progress.com/pcom/docs/DOC-16051 by following the instructions set<br />

forth therein. - DSTC Public License. The contents of this file are subject to the DSTC Public License Version 1.1<br />

(the 'License') (provided herein); you may not use this file except in compliance with the License. Software<br />

distributed under the License is distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, either<br />

express or implied. See the License for the specific language governing rights and limitations under the License.<br />

The Original Code is xs3p. The Initial Developer of the Original Code is DSTC. Portions created by DSTC are<br />

Copyright (c) 2001, 2002 DSTC Pty Ltd. All Rights Reserved.<br />

August 2011


Contents<br />

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

About This <strong>Guide</strong>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

Typographical Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

<strong>Progress</strong> <strong>Sonic</strong> Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

<strong>Sonic</strong> <strong>ESB</strong> Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

Worldwide Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

Roles in Release Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

Stages of <strong>Deployment</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

Developing on <strong>Sonic</strong> Workbenches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

Deploying to Developer Integration Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

Deploying to Advanced Staging and <strong>Product</strong>ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

Security in the Staging and <strong>Product</strong>ion Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

Different Passwords in Staging and <strong>Product</strong>ion Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

Using Authentication to Differentiate Management Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

Connection Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

Authorization on Endpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong> . . . . . . . . . . . . . . . . . 31<br />

About <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

About <strong>Sonic</strong> Archive Files and File Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

About Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

About Roots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

<strong>Sonic</strong> Build and <strong>Deployment</strong> Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

Creating <strong>Deployment</strong> Archives from a Workbench’s Domain. . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

Creating <strong>Deployment</strong> File Sets from a Workbench’s Domain . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

Creating <strong>Deployment</strong> File Sets with Scripted Builds of Projects . . . . . . . . . . . . . . . . . . . . . . . 41<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 11


Contents<br />

Using the <strong>Deployment</strong> Export Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42<br />

Accessing Configurations in the <strong>Deployment</strong> Export Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . .43<br />

Defining and Exporting a <strong>Sonic</strong> <strong>Deployment</strong> Archive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45<br />

Viewing Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49<br />

Exporting <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50<br />

Starting the <strong>ESB</strong> Admin Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50<br />

Connecting to the Source Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51<br />

Using the Export Archive Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52<br />

Using the Export FS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53<br />

Closing the Domain Connection and Stopping the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . .53<br />

Using Scripted Builds to Export <strong>ESB</strong> Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54<br />

Example of a Scripted Build of <strong>ESB</strong> Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55<br />

Extending Ant Scripts For Mapping and Import Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . .57<br />

Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains . . . . . . . . . . . . . . . .59<br />

Overview of Mapping <strong>Sonic</strong> <strong>Deployment</strong> Archives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60<br />

Tailoring Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62<br />

Default Tailorings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63<br />

Adjusting Tailoring Rules to Apply When Creating Map Files. . . . . . . . . . . . . . . . . . . . . . . . .67<br />

Applying Tailoring Rules and Creating a Map File for an Archive. . . . . . . . . . . . . . . . . . . . . .73<br />

Adjusting and Applying a Map File to an Archive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78<br />

Defining Scripts to Automate <strong>Deployment</strong>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81<br />

Incrementally Updating or Building Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83<br />

Incrementally Updating a Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83<br />

Building <strong>ESB</strong> Elements into a Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84<br />

Deciding on Export or Promotion Through Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85<br />

Implementing Domain Builds and Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87<br />

Using the Build Strategy on a Static Target Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87<br />

Using the Update Strategy on Dynamic Target Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89<br />

Chapter 4: Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems.<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95<br />

Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96<br />

Reporting Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97<br />

Reporting <strong>Sonic</strong>MQ Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98<br />

Reporting on <strong>Sonic</strong>MQ Reverse Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100<br />

Reporting on Impact Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102<br />

12 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Contents<br />

Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain . . . . . . . . . 105<br />

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />

Backing Up the Domain and Documenting Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />

Using The <strong>Deployment</strong> Archive Import Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

Setting Import Properties for <strong>ESB</strong> Artifacts into a Domain . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

Saving a <strong>Deployment</strong> Import Property File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />

Importing an <strong>ESB</strong> Artifact Store Into a Domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112<br />

Validating Imported Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />

Viewing Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />

Importing or Merging <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

Starting the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

Connecting to the Target Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

Using Import Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

Using the Import Archive Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />

Using the Import FS Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />

Using the Merge Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />

Importing Configurations using the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />

Closing the Domain Connection and Stopping the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . 120<br />

Chapter 6: Adapting Imported Services to a Domain. . . . . . . . . . . . . . . . 121<br />

Scoping the Required Adaptation Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />

<strong>Deployment</strong> to a Unified Staging <strong>Deployment</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />

<strong>Deployment</strong> to a Distributed Staging or <strong>Product</strong>ion <strong>Deployment</strong> . . . . . . . . . . . . . . . . . . . . . 124<br />

Binding <strong>ESB</strong> Services to Messaging Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

Setting Up Distributed Messaging Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

Binding Connections to Host Ports in the New Domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

Binding the Endpoints in the New Domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />

Routing Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

Updating Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

Reconciling Users and Groups to Authentication Domains . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

Reconciling Endpoint Access and QoP to Authorization Policies . . . . . . . . . . . . . . . . . . . . . 131<br />

Enabling and Updating <strong>Sonic</strong> <strong>ESB</strong> Service Containers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132<br />

Installing Distributed Systems with <strong>Deployment</strong> Software . . . . . . . . . . . . . . . . . . . . . . . . . . 132<br />

Checking for Elements That Might Not Have Been Exported . . . . . . . . . . . . . . . . . . . . . . . . 132<br />

Tuning the Imported Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 13


Contents<br />

Chapter 7: Updating a Revised <strong>Deployment</strong> . . . . . . . . . . . . . . . . . . . . . . . . . .139<br />

Using <strong>Deployment</strong> Tools to Rebuild and Deploy a XAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140<br />

Using the <strong>ESB</strong> Admin Tool to Rebuild a XAR or File Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141<br />

Modifying ExportProperties.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141<br />

Rebuilding the Export Package with the <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . . . . . . . . .142<br />

Modifying the Import Rules for the Target Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142<br />

Deploying a Rebuilt XAR or File Store with <strong>ESB</strong> Admin Tool . . . . . . . . . . . . . . . . . . . . . . .143<br />

Chapter 8: Distributed <strong>Deployment</strong> at Runtime. . . . . . . . . . . . . . . . . . . . . . .145<br />

Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146<br />

Multiple Instances of a Service or Process in a Domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148<br />

Distributed Installation of a <strong>Product</strong>’s Runtime Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149<br />

Multiple Services in a Container. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150<br />

Multiple <strong>ESB</strong> Containers in a Management Container. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152<br />

Multiple Management Containers on a Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153<br />

Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154<br />

Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154<br />

Runtime Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155<br />

Monitoring and Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156<br />

<strong>ESB</strong> Container Notifications and Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157<br />

Management Container Notifications and Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158<br />

Container Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159<br />

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />

14 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Preface<br />

This Preface contains the following sections:<br />

● “About This <strong>Guide</strong>” — Describes this manual and its intended audience<br />

● “Typographical Conventions” — Describes the text formatting, syntax notation, and<br />

flags used in this manual<br />

● “<strong>Progress</strong> <strong>Sonic</strong> Documentation” — Describes the books and API online references<br />

packaged with the <strong>Sonic</strong> <strong>ESB</strong> <strong>Product</strong> Family<br />

● “Worldwide Technical Support” — Provides information on how to contact <strong>Progress</strong><br />

<strong>Sonic</strong> customer support and <strong>Progress</strong> <strong>Sonic</strong> evaluation support<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 15


Preface<br />

About This <strong>Guide</strong><br />

This guide is for administrators who want to export <strong>ESB</strong> artifacts from a source<br />

environment and <strong>deploy</strong> them into <strong>deploy</strong>ment environments, such as testing, and<br />

production.<br />

To make full use of this guide, you should be familiar with installing applications on your<br />

supported platform, and configuring <strong>Sonic</strong>MQ.<br />

This guide includes the following chapters:<br />

● Chapter 1, “Introduction” — Introduces file structures, security, and composite<br />

applications to make them easier to <strong>deploy</strong> and maintain<br />

● Chapter 2, “Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong>” — Describes archives,<br />

dependencies, and roots, then shows how use the <strong>deploy</strong>ment export tools and<br />

scripted builds to package <strong>deploy</strong>ment artifacts<br />

● Chapter 3, “Mapping <strong>ESB</strong> Artifacts to Target Domains” — Describes tailoring and<br />

mapping of export packages to a target domain. Shows alternative approaches build<br />

and manage <strong>deploy</strong>ment through source control and change management systems<br />

● Chapter 4, “Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems” —<br />

Details the syntax of each <strong>ESB</strong> Admin Tool command that reports on differences and<br />

dependencies between stores, and the impact of files or archives on a domain<br />

● Chapter 5, “Importing <strong>Deployment</strong> Artifacts into a Domain” — Describes how to use<br />

import and merge commands to move artifacts to a target domain<br />

● Chapter 6, “Adapting Imported Services to a Domain” — Presents the steps to<br />

implement an imported <strong>deploy</strong>ment archive<br />

● Chapter 7, “Updating a Revised <strong>Deployment</strong>” — Shows how to rebuild from a<br />

modified source<br />

● Chapter 8, “Distributed <strong>Deployment</strong> at Runtime” — Shows advanced techniques for<br />

additional service instances and combinations of services in a container or system<br />

16 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Typographical Conventions<br />

Typographical Conventions<br />

This section describes the text formatting conventions used in this guide and a description<br />

of notes, warnings, and important messages. This guide uses the following typographical<br />

conventions:<br />

● Bold typeface in this font indicates keyboard key names (such as Tab or Enter) and<br />

the names of windows, menu commands, buttons, and other <strong>Sonic</strong> user interface<br />

elements. For example, “From the File menu, choose Open.”<br />

● Bold typeface in this font emphasizes new terms when they are introduced.<br />

● Monospace typeface indicates text that might appear on a computer screen other than<br />

the names of <strong>Sonic</strong> user-interface elements, including:<br />

■ Code examples and code that the user must enter<br />

■ System output such as responses and error messages<br />

■ Filenames, pathnames, and software component names, such as method names<br />

● Bold monospace typeface emphasizes text that would otherwise appear in monospace<br />

typeface to emphasize some computer input or output in context.<br />

● Monospace typeface in italics or Bold monospace typeface in italics (depending<br />

on context) indicates variables or placeholders for values you supply or that might<br />

vary from one case to another.<br />

This guide uses the following syntax notation conventions:<br />

● Brackets ([ ]) in syntax statements indicate parameters that are optional.<br />

● Braces ({ }) indicate that one (and only one) of the enclosed items is required. A<br />

vertical bar (|) separates the alternative selections.<br />

● Ellipses (...) indicate that you can choose one or more of the preceding items.<br />

This guide highlights special kinds of information by shading the information area, and<br />

indicating the type of alert in the left margin.<br />

Note Note indicates information that complements the main text flow. Such information is<br />

especially important for understanding the concept or procedure being discussed.<br />

Important Important indicates information that must be acted upon within the given context in order<br />

for the procedure or task (or other) to be successfully completed.<br />

Warning Warning indicates information that can cause loss of data or other damage if ignored.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 17


Preface<br />

<strong>Progress</strong> <strong>Sonic</strong> Documentation<br />

<strong>Sonic</strong> installations always have a welcome page that provides links to <strong>Sonic</strong><br />

documentation, release notes, communities, and support. See the release’s <strong>Product</strong><br />

Update Bulletin book to see what’s new and what’s changed since prior releases.<br />

The <strong>Sonic</strong> documentation set includes the following books and API references.<br />

<strong>Sonic</strong> <strong>ESB</strong> Documentation<br />

<strong>Sonic</strong> <strong>ESB</strong> provides the following documentation:<br />

● <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong> — Provides information about<br />

installing, updating, and upgrading <strong>Sonic</strong> <strong>ESB</strong> components.<br />

● <strong>Progress</strong> <strong>Sonic</strong> Workbench User <strong>Guide</strong> (<strong>Progress</strong> <strong>Sonic</strong> Workbench Online Help) —<br />

Provides information about developing, testing, and debugging applications on the<br />

<strong>Progress</strong> <strong>Sonic</strong> Workbench. Describes the <strong>Sonic</strong> Workbench, its editors, and tools.<br />

Provides information about how to get started with each component of the <strong>Sonic</strong> <strong>ESB</strong><br />

<strong>Product</strong> Family and describes sample applications.<br />

● <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> Configuration and Management <strong>Guide</strong> — Provides information<br />

about configuring and managing components used by the <strong>Sonic</strong> <strong>ESB</strong> <strong>Product</strong> Family.<br />

Describes <strong>deploy</strong>ment configurations for <strong>Sonic</strong> <strong>ESB</strong>, <strong>Sonic</strong> Database Service, and<br />

<strong>Sonic</strong> BPEL Server<br />

● <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> — Provides information about moving<br />

development projects into test and production environments. Describes<br />

recommended build procedures, domain mappings, and reporting features.<br />

● <strong>Progress</strong> <strong>Sonic</strong> BPEL Server: Management API <strong>Guide</strong> — Describes how to use the<br />

management API to programatically access BPEL server functionality.<br />

● <strong>Sonic</strong> <strong>ESB</strong> API Reference — Online JavaDoc compilation of the <strong>Sonic</strong> <strong>ESB</strong> APIs.<br />

18 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Worldwide Technical Support<br />

Worldwide Technical Support<br />

<strong>Progress</strong> Software’s <strong>Sonic</strong> support staff can provide assistance from the resources on their<br />

Web site at www.progress.com/sonic. There you can access technical support for licensed<br />

<strong>Progress</strong> <strong>Sonic</strong> editions to help you resolve technical problems that you encounter when<br />

installing or using <strong>Progress</strong> <strong>Sonic</strong> products.<br />

When contacting Technical Support, please provide the following information:<br />

● The release version number and serial number of <strong>Sonic</strong>MQ that you are using. This<br />

information is listed on the license addendum. It is also at the top of the <strong>Sonic</strong>MQ<br />

Broker console window and might appear as follows:<br />

<strong>Sonic</strong>MQ Continuous Availability Edition [Serial Number nnnnnnn]<br />

Release nnn Build Number nnn Protocol nnn<br />

● The release version number and serial number of <strong>Sonic</strong> <strong>ESB</strong> that you are using. This<br />

information is listed on the license addendum. It is also near the top of the console<br />

window for a <strong>Sonic</strong> <strong>ESB</strong> Container. For example:<br />

<strong>Sonic</strong> <strong>ESB</strong> Continuous Availability Edition [Serial Number: nnnnnnn]<br />

Release nnn Build Number nnn<br />

● The platform on which you are running <strong>Progress</strong> <strong>Sonic</strong> products, and any other<br />

relevant environment information.<br />

● The Java Virtual Machine (JVM) your installation uses.<br />

● Your name and, if applicable, your company name.<br />

● E-mail address, telephone, and fax numbers for contacting you.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 19


Preface<br />

20 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 1 Introduction<br />

This chapter summarizes the tasks for developers to perform on <strong>Sonic</strong> Workbenches and<br />

the tasks performed by a release management team to package <strong>deploy</strong>able components<br />

and <strong>ESB</strong> artifacts for <strong>deploy</strong>ment testing, staging, and production environments. It also<br />

includes steps to establish secure, controlled access to <strong>deploy</strong>ment environments.<br />

<strong>Deployment</strong> is a managed, repeatable process of extracting a composite business<br />

application from one <strong>Sonic</strong> domain and tailoring it for use in other <strong>Sonic</strong> domains.<br />

This chapter contains the following sections:<br />

● “Roles in Release Management”<br />

● “Stages of <strong>Deployment</strong>”<br />

● “Security in the Staging and <strong>Product</strong>ion Domains”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 21


Chapter 1: Introduction<br />

Roles in Release Management<br />

Composite applications are created in the <strong>Sonic</strong> development environment, <strong>Sonic</strong><br />

Workbench. The release management team is the bridge between development and<br />

<strong>deploy</strong>ment. A release team has several roles; these might be shared by one person, or<br />

distributed to multiple work groups. The roles are:<br />

● <strong>Deployment</strong> Architect — An enterprise’s release management infrastructure evolves<br />

as tools and requirements evolve. The architect defines and monitors the team’s<br />

requirements and tasks to ensure that the <strong>deploy</strong>ment plan is reliable and efficient.<br />

● Release Manager — The release manager controls the configuration repositories and<br />

their versioning/branching mechanisms. Often multiple branches evolve<br />

concurrently—the latest in testing, the previous test-approved promoted to user<br />

acceptance, and the previous user-approved—the release manager monitors the flow,<br />

and, as stages are accepted or rejected, redirects the flow.<br />

● Build Manager — The build manager controls the build process. When cued by<br />

development managers that the developer checkins are ready for a build, the build<br />

manager runs (and monitors) the scripts that output the appropriate <strong>ESB</strong> artifacts and<br />

compile the libraries that package the branch build.<br />

● Configuration Manager — The underlying messaging infrastructure requires<br />

administrative management of the security systems and messaging brokers. While<br />

<strong>deploy</strong>ments can be reliably and consistently tailored for adaptation to a target<br />

domain, the configuration manager tunes the scripts to connect the <strong>deploy</strong>ed<br />

components to the currently assigned connections, protocols, endpoints, and security.<br />

22 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Stages of <strong>Deployment</strong><br />

Stages of <strong>Deployment</strong><br />

<strong>Deployment</strong> is based on composite applications stored in configuration repositories.<br />

Developers move files in and out of source control, creating and testing business<br />

functions, and then checking new or changed files into the source control repository.<br />

<strong>Sonic</strong> Workbenches<br />

Developer Licenses<br />

Developers<br />

Source Control<br />

Release Team<br />

- <strong>Deployment</strong> Manager<br />

- Release Manager<br />

- Build Manager<br />

- Configuration Manager<br />

<strong>Sonic</strong> Runtime <strong>Deployment</strong> Domains<br />

<strong>Deployment</strong> Licenses<br />

Staging and Test Environments<br />

Developer Integration<br />

User Acceptance<br />

<strong>Product</strong>ion<br />

Environment<br />

As illustrated, the typical stages from development to production are:<br />

● Development on Workbenches — Composite applications (applications that consist<br />

of functionality from several different sources within a domain) are developed on<br />

<strong>Sonic</strong> Workbenches. The developers check their files into a source control repository.<br />

See “Developing on <strong>Sonic</strong> Workbenches” on page 24 for more about this stage.<br />

● Developer integration — The first stage of <strong>deploy</strong>ment compiles classes from the<br />

source files in the branch, and packages <strong>ESB</strong> configurations in the branch for<br />

mapping to other domains. The procedure imports the configurations and JARs into<br />

the testbed where scripts execute tests. The release either reverts to further<br />

development or advances to the next stage. When advancing, tailoring of the bindings<br />

for the <strong>ESB</strong> artifacts prepare the files for the next domain in the progress toward<br />

production and—together with JARs that were built for the integration testing—<br />

imported into the next target domain. See “Deploying to Developer Integration<br />

Testing” on page 25 for more about this stage.<br />

● User Acceptance — An advanced <strong>deploy</strong>ment stage is user acceptance testing<br />

(UAT). The new <strong>deploy</strong>ment elements and the existing elements are positioned in a<br />

more complex underlying topology to more accurately simulate the production<br />

environment. In this stage, the stakeholders of the business applications evaluate the<br />

functionality of the new elements to confirm that the features perform as expected.<br />

UAT can be made more rigorous by exposing the domain to users for beta testing. See<br />

“Deploying to Advanced Staging and <strong>Product</strong>ion” on page 26 for more information.<br />

● <strong>Product</strong>ion Environment — The end-user-facing <strong>deploy</strong>ment domain. Testing<br />

performed in staging should make this stage of <strong>deploy</strong>ment occur without issues.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 23


Chapter 1: Introduction<br />

Developing on <strong>Sonic</strong> Workbenches<br />

The <strong>Sonic</strong> Workbench development environment decouples developers from the<br />

<strong>deploy</strong>ment architecture so that they can focus on the business application’s functionality.<br />

A <strong>Sonic</strong> Workbench is a domain where developers upload development artifacts without<br />

having to maintain configuration objects. Generic components relieve the developer from<br />

managing the configuration objects that host and run the services and processes created.<br />

Source Control<br />

Repository<br />

1. Update View<br />

2. Checkouts<br />

4. Checkins<br />

As illustrated, the development flow is:<br />

<strong>Sonic</strong> Workbench<br />

Development Licenses<br />

Eclipse<br />

Workspace<br />

- Projects<br />

- Source files<br />

1. A developer on a <strong>Sonic</strong> Workbench connected to a source control repository loads or<br />

updates the latest version or view of projects in their current work branch as specified<br />

by the release manager.<br />

2. The developer checks out files that will be changed.<br />

3. Build, Upload,<br />

Run & Debug<br />

Workbench<br />

Directory Service<br />

- dev endpoints<br />

- dev containers<br />

- custom classes<br />

3. After making changes and building projects in the workspace, and uploading them to<br />

the Workbench’s domain creates instances that simulate <strong>deploy</strong>ment and binds the<br />

<strong>ESB</strong> artifacts to default endpoints, connections, and containers. <strong>Sonic</strong> Workbench<br />

provides run, test, and debug facilities to unit test the changed application.<br />

4. When complete, the developer checks in the checked out files of the projects to the<br />

source control repository to resolve conflicts with other developers’ changes, to back<br />

up source files, and to transfer and update the project on a different Workbench. While<br />

<strong>deploy</strong>ment can occur on a developer’s Workbench, typically one person is the release<br />

manager.<br />

Note Each Workbench container caches a new copy of a file for each invocation of the service<br />

if a required file is located in the sonicfs:///workspace directory. This is by design,<br />

because the workspace directory is only intended for development. To stop the container<br />

from caching a new copy of a file for each invocation of the service, move the file outside<br />

of the workspace directory within the Directory Service storage, for example:<br />

sonicfs:///MyFolder/<br />

24 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Deploying to Developer Integration Testing<br />

Stages of <strong>Deployment</strong><br />

When all the developers’ check in their changes in and resolve any checkin conflicts, the<br />

release manager can initiate the <strong>deploy</strong>ment process, as shown in the following<br />

illustration.<br />

Source Control<br />

Repository<br />

Developer Integration Testing <strong>Deployment</strong> Licenses<br />

Clean DS<br />

image<br />

Selected technique for building and mapping <strong>ESB</strong> Artifacts<br />

Scripted build of source files into JARs<br />

<strong>Deployment</strong> Domain Manager<br />

Import <strong>ESB</strong><br />

Artifacts<br />

Clean Target<br />

by Refreshing<br />

from Clean DS<br />

Directory Service<br />

The release manager might use one of the <strong>Sonic</strong> Workbench techniques for <strong>deploy</strong>ment<br />

(described in Chapter 2, “Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong>,”) to access and build<br />

the projects in the branch that are moving to <strong>deploy</strong>ment.<br />

Two build functions occur, one to package and prepare the <strong>ESB</strong> artifacts to be tested, and<br />

the other to compile and package the classes used by the services and processes. When<br />

both succeed, the output is staged for import into the test environment.<br />

You should perform integration testing on a simple, uncomplicated domain, referred to in<br />

this document as a ‘clean Directory Service’ or clean DS. (How to set up and refresh a<br />

clean DS is discussed in “Using the Build Strategy on a Static Target Domain” on<br />

page 87.) After refreshing the integration test environment with a clean DS, you should<br />

delete any JARs imported in prior test runs.<br />

While the integration test environment is similar to <strong>Sonic</strong> Workbench’s underlying<br />

domain, you must modify the naming patterns and paths in the Workbench environment<br />

for <strong>deploy</strong>ment domains. The <strong>Sonic</strong> mapping tools (discussed in Chapter 3, “Mapping<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 25<br />

Import<br />

JARs<br />

Clean Target<br />

by Deleting<br />

Compiled<br />

JARs


Chapter 1: Introduction<br />

<strong>ESB</strong> Artifacts to Target Domains,”) let you define and standardize the mapping of names<br />

into the integration test environment.<br />

Importing <strong>ESB</strong> artifacts into the clean DS (see Chapter 5, “Importing <strong>Deployment</strong><br />

Artifacts into a Domain.”) is a pure write—there are no artifacts to overwrite and there are<br />

no residual artifacts or JARs.<br />

The configuration manager creates queues and connections that bind to the endpoints<br />

defined in configurations. The configuration manager also creates the containers that host<br />

the services. (See Chapter 6, “Adapting Imported Services to a Domain.”)<br />

When developer integration testing is successful, prepare the same build artifacts and<br />

JARs for the next staging domain.<br />

Deploying to Advanced Staging and <strong>Product</strong>ion<br />

In advanced staging domains, the configuration manager’s tasks are more involved, as the<br />

underlying messaging infrastructure is richer. The connections are dispersed across the<br />

broker architecture. Their messaging infrastructures reflect the <strong>deploy</strong>ment architect’s<br />

implementations that prototype configuration structures to improve performance,<br />

enhance security and fault tolerance, and emulate anticipated traffic volumes. These<br />

domains are stages toward the production environment.<br />

Source Control<br />

Repository<br />

Selected technique for building and mapping <strong>ESB</strong> Artifacts<br />

Scripted build of source files into JARs<br />

Advanced Staging and <strong>Product</strong>ion <strong>Deployment</strong> Licenses<br />

<strong>Deployment</strong> Domain Manager<br />

Import <strong>ESB</strong><br />

Artifacts<br />

Import Rules<br />

Analysis<br />

Reports<br />

Directory Service<br />

Import JARs<br />

26 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Security in the Staging and <strong>Product</strong>ion Domains<br />

Advanced staging and production domains are not easily refreshed, so the <strong>ESB</strong> artifacts<br />

to be imported often attempt to overwrite matching files in the target domain. To<br />

document differences and impact, <strong>Sonic</strong> provides analysis reports that describe<br />

impending changes and contrasts between domains and artifacts staged for <strong>deploy</strong>ment.<br />

(See Chapter 4, “Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems.”)<br />

When it is preferred that some artifacts not be overwritten, you can define import rules<br />

that deselect specified files or branches during the import. (See Chapter 5, “Importing<br />

<strong>Deployment</strong> Artifacts into a Domain.”)<br />

The exporting-reporting-mapping-importing functions can be completely scripted so the<br />

impending actions, the actual import, and an audit reporting of the completed tasks are<br />

consistent and predictable from end to end. After importing is complete, the configuration<br />

manager might have to adjust some bindings. (See Chapter 6, “Adapting Imported<br />

Services to a Domain” for more information.)<br />

Security in the Staging and <strong>Product</strong>ion Domains<br />

Planning for security makes it easier to administrate and control an evolving distributed<br />

services architecture. While the concepts and techniques for channel encryption, message<br />

Quality of Protection (QoP), and password-based file encryption are presented in the<br />

<strong>Sonic</strong>MQ <strong>Deployment</strong> <strong>Guide</strong> and <strong>Sonic</strong>MQ Configuration and Management <strong>Guide</strong>, this<br />

section discusses special considerations when <strong>deploy</strong>ing <strong>ESB</strong> services.<br />

Security considerations discussed in this section are:<br />

● Differentiating access to staging and production systems.<br />

● Setting up different access mechanisms for administrators and components that use<br />

management connections.<br />

● Defining different users for routing connections from different domains.<br />

● Using access control patterns for authorization. This task is simplified when you use<br />

hierarchical namespaces for destinations.<br />

This guide focuses authentication and authorization patterns to control domain use and<br />

management roles.<br />

See the <strong>Sonic</strong>MQ <strong>Deployment</strong> <strong>Guide</strong> Part I, “Designing a <strong>Sonic</strong>MQ <strong>Deployment</strong>” for<br />

details about topologies and other architectures, and Part III, “Implementing Security” for<br />

details about authentication and authorization for the <strong>Sonic</strong> Enterprise Service Bus.<br />

See also “Updating Security” on page 131 for security-related tasks after importing<br />

artifacts to a target domain.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 27


Chapter 1: Introduction<br />

Different Passwords in Staging and <strong>Product</strong>ion Domains<br />

You can use unique passwords for access to each domain to control changes made to the<br />

staging and production environments. For example, the domain used for developer<br />

integration testing might have a password known to all developers, whereas the<br />

administrators of the staging and production environments might have secret passwords.<br />

As a result, the developer roles and administrator roles are distinguished by their access.<br />

The <strong>Sonic</strong> Workbench development environment should not connect to or update a<br />

<strong>deploy</strong>ment domain. Any required changes migrate from the development environment to<br />

<strong>deploy</strong>ment, thereby honoring the life cycle stages.<br />

Using Authentication to Differentiate Management Roles<br />

Another approach to authentication control uses a variety of administrative user names so<br />

that the authority to use administrative tools, <strong>ESB</strong> tools, management connections for<br />

service containers, and management connections for messaging nodes can be assigned to<br />

different authenticated users.<br />

This technique can be particularly useful if you want to lock out most users of<br />

management connections for administrative tools while importing and validating<br />

<strong>deploy</strong>ments. When you are about to enter a <strong>deploy</strong>ment import session, you can check<br />

that there are no user connections that are not intended to be involved in import sessions<br />

and then temporarily change their user password until the <strong>deploy</strong>ment session has been<br />

validated (or reverted). With this technique, management connections for services and<br />

messaging nodes would not be impacted.<br />

Important When domains use management permissions, specified actions might not be allowed and<br />

some configuration objects might not be visible. See the chapter “Permissions to<br />

Maintain Configurations and Perform Runtime Actions” in the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

<strong>Deployment</strong> <strong>Guide</strong>.<br />

Connection Authentication<br />

When you use <strong>ESB</strong> connections to messaging nodes with routing to other messaging<br />

nodes, and security is enabled, these connections require user authentication as routing<br />

users. The subset of users that you define for these connections can increase the<br />

granularity of your control over access and minimize the recovery time from unauthorized<br />

use of a user name and password.<br />

28 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Authorization on Endpoints<br />

Security in the Staging and <strong>Product</strong>ion Domains<br />

The authorization policies in a domain enable control over read and write actions on<br />

endpoints—topics, queues, and routing nodes. When users are not granted privileges, the<br />

<strong>ESB</strong> services throw an exception. That means that a service can establish connections to<br />

perform its assigned tasks, yet might be prevented from performing certain tasks because<br />

a tightening of policies constrains the scope of the authenticated user’s access. See the<br />

<strong>Sonic</strong>MQ <strong>Deployment</strong> <strong>Guide</strong> for information about authorization policies.<br />

Naming Queues and Topics Using Hierarchical Namespaces<br />

You can use a naming pattern for endpoint queues and topics. While there are some<br />

restricted characters and some characters that have special meaning, you can establish any<br />

pattern you want.<br />

See Appendix A of the <strong>Sonic</strong>MQ Installation and Upgrade <strong>Guide</strong> for a complete listing<br />

of naming rules and allowed characters in <strong>Sonic</strong>MQ configuration elements.<br />

Application developers should use dot-delimited naming patterns to define endpoint<br />

names, for example:<br />

● com.myCorp.Inventory.Valuation.EntryQ1<br />

● com.myCorp.Inventory.Valuation.EntryQ2<br />

● com.myCorp.Inventory.Valuation.Exit<br />

You can constrain use of these queues to developers and <strong>deploy</strong>ment management of the<br />

myCorp Inventory Valuation project. The template character capability in access control<br />

lists means that the developer of this application can confidently set the permissions on<br />

com.myCorp.Inventory.Valuation.# without concern about conflict with other<br />

applications.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 29


Chapter 1: Introduction<br />

30 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 2<br />

Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

<strong>Deployment</strong> starts with exporting selected <strong>Sonic</strong> projects stored in source control<br />

repositories, and building the selected projects into runtime <strong>ESB</strong> artifacts and classes that<br />

define the distributed composite business applications in <strong>deploy</strong>ment.<br />

Other chapters in this guide discuss the mapping, analysis, and importing of these <strong>ESB</strong><br />

artifacts into target domains.<br />

Chapter 2 contains the following sections:<br />

● “About <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> Artifacts”<br />

● “<strong>Sonic</strong> Build and <strong>Deployment</strong> Tools”<br />

● “Using the <strong>Deployment</strong> Export Tool”<br />

● “Exporting <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool”<br />

● “Using Scripted Builds to Export <strong>ESB</strong> Artifacts”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 31


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

About <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> Artifacts<br />

A <strong>Sonic</strong> <strong>deploy</strong>ment is a unit of <strong>deploy</strong>ment, a set selected configuration files exported<br />

from a domain, either as a set of files or a <strong>Sonic</strong> archive file, a .xar file. Typically, the<br />

projects in a source control branch are uploaded and packaged as one <strong>deploy</strong>ment archive.<br />

Each export includes an export properties file that contains information about the source<br />

domain and the root elements selected for the export. The export properties file provides<br />

the template that the export tool uses to rebuild the set of exported configurations.<br />

The files exported from a domain can include containers, <strong>ESB</strong> processes, services, service<br />

types, endpoints, and resources in the <strong>Sonic</strong> File System, <strong>Sonic</strong>FS. As you construct an<br />

export archive, selected items are evaluated so that configurations that are dependencies<br />

are included while standard references that are installed in target domains are explicitly<br />

excluded from the archive.<br />

Most archives can be assembled in two steps:<br />

1. Choosing a process or service and letting it discover its dependencies<br />

2. Choosing the branch that defines your storage area for the project in the <strong>Sonic</strong> File<br />

System.<br />

Important Additional elements — Some configuration elements are not readily discovered or<br />

exported. Some elements that you must recreate in the target domain are:<br />

● Properties files for management and administrative tools.<br />

● Management containers. They are created in the target domain’s <strong>Sonic</strong> Management<br />

Console to bind hosted <strong>ESB</strong> components and services to physical distributed<br />

systems.<br />

● Classes (.jar files) that not imported into <strong>Sonic</strong>FS or not referenced by the <strong>ESB</strong><br />

Container through a classpath parameter.<br />

● Files not stored in the <strong>Sonic</strong>FS structure, perhaps used by services or GUI<br />

components of an application. See “Packaging Graphical Components” on page 37<br />

for more information.<br />

Note Ignored Elements — Within the set of referenced elements, some basic elements are not<br />

included because they are expected to exist in a target domain. These standard types are<br />

established in target domains as you define the domain and install its components.<br />

32 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


About <strong>Sonic</strong> Archive Files and File Sets<br />

About <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> Artifacts<br />

A <strong>Sonic</strong> archive file, a XAR file, is an archive of selected configuration files exported from<br />

a domain. Each archive file includes an export properties file that contains information<br />

about the source domain and the root elements selected for the archive. The export<br />

properties file provides the template that the export tool uses to rebuild the archive.<br />

The files exported from a domain can include containers, <strong>ESB</strong> processes, services, service<br />

types, endpoints, and resources in the <strong>Sonic</strong> File System, <strong>Sonic</strong>FS. As you construct an<br />

export archive, selected items are evaluated so that configurations that are dependencies<br />

are included while standard references that are installed in target domains are explicitly<br />

excluded from the archive.<br />

About Dependencies<br />

Dependencies are explicit references to other elements. When you choose an <strong>ESB</strong><br />

element to be evaluated, the dependency logic traverses the selected element’s references<br />

to determine the element’s explicit dependencies. The following illustration shows the<br />

hierarchy of the <strong>ESB</strong> element groups that have dependencies on elements in that group or<br />

subordinate groups:<br />

<strong>ESB</strong> Connection Types<br />

<strong>ESB</strong> Endpoint Types<br />

<strong>ESB</strong> Container <strong>ESB</strong> Services<br />

<strong>ESB</strong> Endpoints<br />

<strong>ESB</strong> Processes<br />

<strong>ESB</strong> Connections<br />

<strong>ESB</strong> Service Types<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 33


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

<strong>Sonic</strong>FS<br />

classpaths<br />

The following illustration provides a more detailed look at <strong>ESB</strong> elements and reveals<br />

recursive and secondary references that the dependency logic discovers in a full set of<br />

dependencies:<br />

Routing HTTP connections<br />

Bus connections<br />

Dependencies in BPEL Server Projects<br />

<strong>ESB</strong> Connection Types<br />

<strong>ESB</strong> Connections<br />

<strong>ESB</strong> Service Types<br />

<strong>ESB</strong> Endpoint Types<br />

<strong>ESB</strong> Container <strong>ESB</strong> Services<br />

<strong>ESB</strong> Endpoints<br />

if BPE<br />

if BPAR<br />

<strong>ESB</strong> Processes<br />

itinerary<br />

BPAR<br />

(BPEL Archive)<br />

tracking details<br />

WSDL<br />

To choose a <strong>Sonic</strong> BPEL Server project, build and upload its project, and then choose its<br />

service name (such as Sample.BPEL) or its BPAR file. The traversal of the .bpar file<br />

evaluates the .wsdl, .bpel, .xlst, and .xsd content of the BPAR file recursively to<br />

determine dependent endpoints, connections, processes, .wsdl files and Resources.<br />

34 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

WSDL URL


About Roots<br />

About <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> Artifacts<br />

The procedure of creating a <strong>deploy</strong>ment export package specifies through a series of<br />

selections, each of which defines a root in the archive structure. Each root is a line item<br />

in the archive definition that defines:<br />

● An <strong>ESB</strong> artifact from which dependencies are to be evaluated. The process of<br />

discovery attaches the artifact’s dependencies to that root element.<br />

● A file in the <strong>Sonic</strong> File System whose dependencies are discovered and defined as<br />

attachments to that root element. A file name with the extension xsl, xslt, xml, xsd,<br />

wsdl, <strong>esb</strong>ws, <strong>esb</strong>db, xaction, or cbr is examined for further references to <strong>Sonic</strong>FS.<br />

● A folder in the <strong>Sonic</strong> File System, <strong>Sonic</strong>FS. Specifying a sonicfs:// folder includes<br />

all subordinate folders and files as attachments to that root element. Choosing a folder<br />

in <strong>Sonic</strong>FS that contains files that, selected individually, would be evaluated does not<br />

cause any such files to be evaluated—instead the entire folder hierarchy below the<br />

selected folder is attached to that archive root.<br />

The following screen shows the roots specified in the example in “Using the <strong>Deployment</strong><br />

Export Tool” on page 42.<br />

There are two roots in this archive specification: one <strong>ESB</strong> process, and one text file.<br />

Editing ExportProperties.xml<br />

The roots are stored in the ExportProperties.xml file that is created by a new export, and<br />

then stored in the file store or archive. When an archive is rebuilt, its contents are<br />

discarded except for its defined roots. The roots are re-evaluated so that current<br />

dependencies and folder hierarchies are included. This file is edited by changes you make<br />

in the <strong>Deployment</strong> Export Tool. If you want to change an existing ExportProperties.xml<br />

file when rebuilding an <strong>ESB</strong> artifact package using <strong>ESB</strong> Admin Tool export command,<br />

this file must be edited in the file store or within the archive before you issue the<br />

command.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 35


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

An ExportProperties.xml file looks like this:<br />

<br />

<br />

source section — Defines the domain connection when rebuilding the archive.<br />

<br />

Domain1<br />

tcp://localhost:2506<br />

Administrator<br />

<br />

ignore section — Artifacts that are preconfigured in every <strong>ESB</strong>-enabled domain are<br />

ignored for archive packaging. <strong>Sonic</strong>’s tailoring tools will tailor references that are<br />

dev.* artifacts to global.*, artifacts that you set up in the target domain. Typically, the<br />

ignore list is accepted as is. If you add or remove from this section, a rebuild of the<br />

archive will ignore the artifacts listed in this section. (The listed items below are an<br />

excerpt of the complete default list of files that will be ignored.)<br />

<br />

<br />

<br />

<br />

<br />

<br />

. . .<br />

<br />

<br />

<br />

<br />

roots section — Shows the selected roots. In this example, one service type and one<br />

service were selected. If you selected all, the root would be:<br />

<br />

<br />

<br />

<br />

<br />

notes section — Annotates the export package with any text information entered.<br />

Archive created 23 Jan 2008 to package the Remote Information Accesss<br />

project. Spec: vobs_specs/RIA.doc Test plan: vobs_qa/RIA.xls<br />

Usage notes: see atached readme.txt Contact: myCorp_Dev@myCorp.com<br />

<br />

<br />

36 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Adding Additional Classes<br />

About <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> Artifacts<br />

The classes compiled on a <strong>Sonic</strong> Workbench into a project’s /lib/custom-servicesclasses.jar<br />

are for use only on the <strong>Sonic</strong> Workbench. Use a general build tool (such as<br />

Ant) to compile classes and create Java archive files (JARs) that contain the classes that<br />

you import into <strong>deploy</strong>ment domains.<br />

If you have additional JARs, such as third-party security JARs, that you need in<br />

<strong>deploy</strong>ment domains, you can import them into the <strong>Sonic</strong> File System and then select<br />

them as <strong>Sonic</strong>FS elements so that they are transported with their related configurations in<br />

the <strong>deploy</strong>ment archive.<br />

Packaging Graphical Components<br />

Applications that use graphical components, such as properties files and images, cannot<br />

reference files when they are in the <strong>Sonic</strong> File System. However, you can package<br />

supporting files for applications in an <strong>ESB</strong> <strong>deploy</strong>ment archive and unpack them on the<br />

target system. As the files transferred this way must be relocated locally to be used, you<br />

should create a readme file that describes the tasks required for runtime.<br />

To transfer graphical application components in a <strong>deploy</strong>ment, package the required files<br />

in their runtime project folder locations together with your read me file into a .zip archive.<br />

In the Configure tab of the <strong>Sonic</strong> Management Console, import the .zip file into <strong>Sonic</strong>FS.<br />

You could create a subfolder in the runtime directory of files to place files to be adapted<br />

to the target domain. After packaging the .zip file into a <strong>deploy</strong>ment, it can be imported<br />

into a new domain where you can then export it out of <strong>Sonic</strong>FS, relocate it and <strong>deploy</strong> its<br />

contents. After the <strong>deploy</strong>ment completes, review the files to see if you need to revise<br />

references in the properties files to URLs, endpoints, services, and <strong>ESB</strong> processes in the<br />

new domain.<br />

Rebuilding from Roots<br />

If you save export results and then prune or add a branch during ongoing development,<br />

choose to rebuild—select the Rebuild option in the <strong>Deployment</strong> Export Tool, or reference<br />

the export properties file in the <strong>ESB</strong> Admin Tool command parameters—to clear the<br />

archive or file store and repopulate it with the current dependencies and their artifacts. The<br />

rebuild process is not a refresh action. Instead, the ExportProperties.xml file’s source<br />

section supplies the correct domain connection, and its roots section is re-evaluated. The<br />

current list of files is packaged into the export results.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 37


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

<strong>Sonic</strong> Build and <strong>Deployment</strong> Tools<br />

The <strong>Sonic</strong> toolset provides alternative tool functions to export <strong>ESB</strong> artifacts:<br />

Tool and Function Selection Method<br />

<strong>Deployment</strong> Export Tool<br />

Save as <strong>deploy</strong>ment archive<br />

<strong>Deployment</strong> Export Tool<br />

Save to file system<br />

<strong>ESB</strong> Admin Tool<br />

export archive command<br />

<strong>ESB</strong> Admin Tool<br />

export fs command<br />

User recursively selects<br />

artifact types, and a root<br />

that delimits the<br />

selection’s scope.<br />

Typically used to either<br />

rebuild an existing<br />

export archive/file set or<br />

choose all artifacts in the<br />

domain.<br />

Scripted Build Exports all <strong>ESB</strong> artifacts<br />

in specified folders<br />

except BPEL archives.<br />

* Can select miscellaneous files when updating from a properties file created by<br />

<strong>Deployment</strong> Export Tool.<br />

The following sections provide an overview of:<br />

Creates and<br />

Can Use an<br />

Export<br />

Properties File<br />

Requires<br />

Domain<br />

Connection<br />

and Upload<br />

Yes Yes Yes<br />

No Yes Yes<br />

Yes Yes No*<br />

Yes Yes No*<br />

No No No<br />

● “Creating <strong>Deployment</strong> Archives from a Workbench’s Domain”<br />

● “Creating <strong>Deployment</strong> File Sets from a Workbench’s Domain”<br />

● “Creating <strong>Deployment</strong> File Sets with Scripted Builds of Projects”<br />

Allows<br />

Selection<br />

of Misc.<br />

Files<br />

38 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


<strong>Sonic</strong> Build and <strong>Deployment</strong> Tools<br />

Creating <strong>Deployment</strong> Archives from a Workbench’s Domain<br />

Source Control<br />

Repository<br />

<strong>Deployment</strong> archives provide coarse-grained packaging of <strong>ESB</strong> artifacts. The following<br />

tools enable you to connect to a running domain manager to create <strong>ESB</strong> artifact archives:<br />

● The <strong>Deployment</strong> Export Tool, by choosing the Save XAR command<br />

● The <strong>ESB</strong> Admin Tool, by using the export archive command<br />

1. Read Projects<br />

<strong>Sonic</strong> Workbench<br />

Development Licenses<br />

Eclipse<br />

Workspace<br />

- Projects<br />

- Source files<br />

2. Build, Upload<br />

As illustrated, a <strong>Sonic</strong> Workbench:<br />

Workbench<br />

Directory Service<br />

- dev endpoints<br />

- dev containers<br />

- custom classes<br />

4. Build Java sources for Projects into JARs<br />

1. Starts and reads projects into its workspace.<br />

3. Export <strong>ESB</strong> Artifacts in an Archive<br />

2. The projects in the workspace are built and uploaded into the Workbench’s domain,<br />

establishing the <strong>ESB</strong> artifacts in the domain.<br />

3. An export archive is created by either the <strong>Deployment</strong> Export Tool or the <strong>ESB</strong> Admin<br />

Tool.<br />

4. A separate procedure builds the Java source files into <strong>deploy</strong>ment JARs.<br />

Export to<br />

.XAR file<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 39


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

Creating <strong>Deployment</strong> File Sets from a Workbench’s Domain<br />

Source Control<br />

Repository<br />

<strong>Deployment</strong> file sets provide fine-grained packaging of <strong>ESB</strong> artifacts. The following tools<br />

enable you to connect to a running domain manager to create export <strong>ESB</strong> artifact file sets:<br />

● The <strong>Deployment</strong> Export Tool, by choosing the Save to File System As command<br />

● The <strong>ESB</strong> Admin Tool, by using the export fs command<br />

1. Read Projects<br />

<strong>Sonic</strong> Workbench<br />

Development Licenses<br />

Eclipse<br />

Workspace<br />

- Projects<br />

- Source files<br />

2. Build, Upload<br />

As illustrated, a <strong>Sonic</strong> Workbench:<br />

Workbench<br />

Directory Service<br />

- dev endpoints<br />

- dev containers<br />

- custom classes<br />

4. Build Java sources for Projects into JARs<br />

1. Starts and reads projects into its workspace.<br />

3. Export <strong>ESB</strong> Artifacts into File System<br />

2. The projects in the workspace are built and uploaded into the Workbench’s domain,<br />

establishing the <strong>ESB</strong> artifacts in the domain.<br />

3. An export of <strong>ESB</strong> artifacts as a set of files is created in the file system by either the<br />

<strong>Deployment</strong> Export Tool or the <strong>ESB</strong> Admin Tool.<br />

4. A separate procedure builds the Java source files into <strong>deploy</strong>ment JARs.<br />

Export to<br />

File System<br />

40 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


<strong>Sonic</strong> Build and <strong>Deployment</strong> Tools<br />

Creating <strong>Deployment</strong> File Sets with Scripted Builds of Projects<br />

Source Control<br />

Repository<br />

Scripted builds evaluate the <strong>ESB</strong> artifacts in all projects in a storage location to provide<br />

fine-grained packaging. In a build script, you specify the source locations in a properties<br />

file, and the location of output <strong>ESB</strong> artifact file sets. Running a specialized Ant build’s<br />

instructions against the script exports the artifacts.<br />

1. Script defines projects to build<br />

As illustrated:<br />

2. Build emulates an upload<br />

4. Build Java sources for Projects into JARs<br />

3. Build exports <strong>ESB</strong> Artifacts into File System<br />

1. A properties script specifies the root locations of the source files, and the target<br />

location of the output files.<br />

2. The Ant build of the <strong>ESB</strong> artifacts evaluates the specified projects to determine the<br />

<strong>ESB</strong> artifacts and their dependencies<br />

3. The Ant build exports the <strong>ESB</strong> artifacts as a set of files in the file system.<br />

4. A separate procedure builds the Java source files into <strong>deploy</strong>ment JARs.<br />

Both builds could run as one to automate the complete build process.<br />

Export to<br />

File System<br />

Note Scripted builds do not export <strong>Sonic</strong> BPEL Server projects complete for <strong>deploy</strong>ment.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 41


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

Using the <strong>Deployment</strong> Export Tool<br />

The <strong>Sonic</strong> <strong>deploy</strong>ment export tools include a graphical application and a command syntax<br />

in the <strong>ESB</strong> Admin Tool. This section describes the functionality of the graphical application,<br />

the <strong>Deployment</strong> Export Tool. The next section describes “Exporting <strong>ESB</strong> Artifacts With the<br />

<strong>ESB</strong> Admin Tool.”<br />

Note The corresponding <strong>Sonic</strong> <strong>Deployment</strong> Import Tool and the <strong>ESB</strong> Admin Tool commands<br />

import and merge are discussed in “Importing <strong>Deployment</strong> Artifacts into a Domain” on<br />

page 105.<br />

◆ To start the <strong>Deployment</strong> Export Tool:<br />

Note A system must have <strong>Sonic</strong> <strong>ESB</strong> Administration Tools installed (a <strong>Sonic</strong> <strong>ESB</strong><br />

Administration Tools installation or a <strong>Sonic</strong> Workbench installation) to run this tool.<br />

1. Check that the source domain manager is running.<br />

2. On the system where you will execute the export process, start the <strong>Sonic</strong> <strong>Deployment</strong><br />

Export Tool:<br />

■ Under Windows, choose:<br />

Start > Programs > <strong>Progress</strong> > <strong>Sonic</strong> <strong>8.5</strong> > Tools > <strong>ESB</strong> <strong>Deployment</strong> Export Tool<br />

■ Under UNIX or Linux, on a system installed with the <strong>Sonic</strong> <strong>ESB</strong> Administration<br />

Tools, open a console window to the <strong>Sonic</strong> <strong>ESB</strong> installation directory, and then<br />

enter: ./bin/<strong>deploy</strong>Export.sh<br />

The <strong>Deployment</strong> Archive Export window opens:<br />

42 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the <strong>Deployment</strong> Export Tool<br />

◆ To connect to the domain where you want to export <strong>ESB</strong> Artifacts:<br />

1. Be sure that the Domain Manager of the domain from which you want to export is<br />

running.<br />

2. Choose Domain > Connect. In the Domain Connection dialog box, enter the<br />

connection information for the domain, as shown:<br />

The default values (with the password Administrator) are appropriate when<br />

connecting on a <strong>Sonic</strong> Workbench system. When connecting to a Workbench domain<br />

from a different system, provide the source system’s host name instead of localhost.<br />

Accessing Configurations in the <strong>Deployment</strong> Export Tool<br />

The export options provide alternative techniques to select elements and files.<br />

The Actions menu offers the options, as shown:<br />

The scope of the export root selection options are:<br />

■ Add all elements in the domain — Selects everything. This is a useful technique<br />

in Workbench backup, and in advanced stages and production. This option does<br />

not require any further selection of additional root elements as it effectively adds<br />

all <strong>ESB</strong> elements, and all <strong>Sonic</strong>FS elements.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 43


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

■ Add all <strong>ESB</strong> elements in the domain — Selects all the <strong>ESB</strong> element types, but<br />

does not include <strong>Sonic</strong>FS data unless referenced as dependencies.<br />

■ Choose <strong>ESB</strong> Containers — Lets you select one or more <strong>ESB</strong> Containers. The<br />

links evaluated are services, endpoints, processes, and connections, each of which<br />

is, in turn, evaluated for dependencies.<br />

■ Choose <strong>ESB</strong> Processes — Lets you select one or more <strong>ESB</strong> processes. The links<br />

evaluated are endpoints, services, processes, and WSDL URLs (when referencing<br />

<strong>Sonic</strong>FS). Also:<br />

❑ For each step in an <strong>ESB</strong> process, the endpoint name at each endpoint step (the<br />

endpoint name, the process name of each <strong>ESB</strong> process step, and the service<br />

name of each service step.)<br />

❑ For each runtime parameter, if the parameter is a URL reference to a <strong>Sonic</strong>FS<br />

file, the referenced file is included.<br />

❑ For each invocation step, the .<strong>esb</strong>ws file, when that file is in <strong>Sonic</strong>FS.<br />

■ Choose <strong>ESB</strong> Services — Lets you select one or more <strong>ESB</strong> services. The links<br />

evaluated are endpoints, services, processes, WSDL URLs (when these reference<br />

<strong>Sonic</strong>FS), and init parameters that are URL references to <strong>Sonic</strong>FS files. <strong>Sonic</strong><br />

BPEL Server services evaluate the related BPAR as a dependency.<br />

■ Choose <strong>ESB</strong> Service Types — Lets you select one or more <strong>ESB</strong> service types.<br />

Choosing a service type includes its properties file as a dependency.<br />

■ Choose <strong>ESB</strong> Endpoints — Lets you select one or more <strong>ESB</strong> Endpoints. The links<br />

that are evaluated are EndpointTypes and WSDL URLs in <strong>Sonic</strong>FS.<br />

■ Add all <strong>Sonic</strong>FS — Since many elements in <strong>Sonic</strong>FS might be dependencies of<br />

<strong>ESB</strong> elements, this option selects all of the files in the <strong>Sonic</strong> File System.<br />

■ Choose <strong>Sonic</strong>FS — Lets you select one or more folders and files from <strong>Sonic</strong>FS:<br />

❑ When you choose a folder, you get all of a specified folder structure including<br />

any files you imported into the <strong>Sonic</strong>FS in the selected folder.<br />

❑ When you choose a file in <strong>Sonic</strong>FS as the root element, that file is evaluated<br />

to include its dependencies. These include xsl, xslt, xml, xsd, wsdl, <strong>esb</strong>ws,<br />

<strong>esb</strong>db, xaction, or cbr. For example, an <strong>esb</strong>ws file references a wsdl file.<br />

You can choose a mixture of folders and files, a technique that lets choose a<br />

folder’s contents and also evaluate the dependencies of a file in the folder that you<br />

know will have dependencies; for example, an <strong>esb</strong>ws file in a project folder.<br />

■ Rebuild — Starts the archive rebuild process, described on page 37.<br />

44 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Defining and Exporting a <strong>Sonic</strong> <strong>Deployment</strong> Archive<br />

Using the <strong>Deployment</strong> Export Tool<br />

As an example, the following procedure shows how some <strong>ESB</strong> artifacts, folders, and files<br />

can be exported.<br />

The basis of this export example is the <strong>Sonic</strong> Workbench’s <strong>ESB</strong> sample for Remote<br />

Information Access, Sample.RIA. The sample was imported onto a <strong>Sonic</strong> Workbench and<br />

then uploaded into its domain. That domain is where the <strong>deploy</strong>ment tools will connect<br />

to perform the export functions.<br />

Note Prototypes — The Sample.RIA project demonstrates the use of the Prototype Service. As<br />

such, this export includes those prototypes. In a real application, prototypes should be<br />

replaced by actual services before moving the project into <strong>deploy</strong>ment.<br />

◆ To export <strong>ESB</strong> Artifacts through the <strong>Deployment</strong> Export Tool:<br />

1. Select the Actions menu. The menu lists the options you can choose as your first root<br />

element. For this example, select Choose <strong>ESB</strong> Processes, as shown:.<br />

2. In the Choose <strong>ESB</strong> Processes dialog box, choose the Sample.RIA.processRequest:<br />

When you click OK, references from the Sample.RIA.processRequest to other<br />

elements are traversed. When the traversal is complete, you are presented with the<br />

results for review.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 45


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

The list shows the dependencies on the selected root that will be exported, as shown:<br />

The Sample.RIA.processRequest references other processes, as well as—in<br />

<strong>Sonic</strong>FS—a some resource files and sample data in the workspace.<br />

Notice the Errors tab. This indicates that something did not turn out as expected.<br />

While errors are not usually observed when projects have been successfully built and<br />

tested on the Workbench, a simple renaming and uploading of a dependent file causes<br />

dependency traversal to record an error when defining a root, and in the message<br />

viewer (see page 49) when creating or rebuilding an archive.<br />

To handle an error:<br />

a. Click the Errors tab to view the error.<br />

46 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the <strong>Deployment</strong> Export Tool<br />

b. Choose Cancel, correct the problem by correcting the name of the referenced file,<br />

choose the <strong>ESB</strong> process Sample.RIA.processRequest again, and then click OK.<br />

Note You can ignore the reported error by clicking OK. If you do so, the resource<br />

requirement will still be perpetuated into target domains so it will have to be<br />

adjusted there or you will have to import the missing file there. For this example,<br />

the file is reinstated and the set of dependent artifacts are added showing no errors<br />

3. If you have other roots that should be packaged in this archive, choose the Action<br />

menu.<br />

For this example, the project’s readme file is a file we want in the package.<br />

a. Choose Actions > Choose <strong>Sonic</strong>FS. In the Choose <strong>Sonic</strong>FS dialog box, navigate<br />

to the workspace/Sample.RIA folder, and then click on Readme.txt, as shown:<br />

b. Click OK. The selected file is shown in the file list for this root in the Confirm<br />

Added Elements dialog box:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 47


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

4. After the roots are defined for this example, the set of selected roots looks like this:<br />

5. When the archive is complete, you can add notes to the archive by selecting<br />

File > Properties, entering text in the Notes field for the package, and then clicking<br />

OK. This note is any text you want to add such as who created the archive and what<br />

the archive contains. For example:<br />

You might also outline additional tasks required to adapt the archive into a new<br />

domain, or provide links to requirements and test documents for the verification of<br />

the elements in the new domain. The notes are retained in the ExportProperties.xml<br />

file that is created in the archive when you save the results.<br />

6. Choose Save As and name the archive. In this example, RIA.xar.<br />

The <strong>Sonic</strong> <strong>deploy</strong>ment archive is packaged and saved, ready for tailoring and import into<br />

another domain.<br />

48 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the <strong>Deployment</strong> Export Tool<br />

In addition, you might want to output the files to the local file system. You can output<br />

directly to the file system by choosing Save to File System As. That creates a file structure<br />

identical to unpacking the XAR file. The only exception is that the export properties file<br />

is not created. As such, you cannot use files saved this way as the source for a command<br />

line rebuilding of the export files. To help you use this feature, you can set the select<br />

Options > Clean File System Before Write to clean out any files in that location in prior<br />

export actions.<br />

Chapter 4, “Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems,” shows how<br />

you can do analysis on either type of packaging.<br />

Viewing Messages<br />

You can choose View > Messages to review the sequence of steps taken by the export tool.<br />

The entries are date stamped and have colored alert flags for significant events worthy of<br />

special note or attention, as shown:<br />

Indicator flags call out the alert levels of each line item, as follows:<br />

● Red flags indicate errors, and when appropriate, provide a trace tab in the Message<br />

Details dialog box that opens when you double click on a message line.<br />

● Yellow flags indicate warnings.<br />

● Green markers set off the start and end points of actions.<br />

Messages that do not have indicator flags are informational only.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 49


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

Exporting <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool<br />

The <strong>Sonic</strong> <strong>ESB</strong> command line tool, <strong>ESB</strong> Admin Tool, performs export actions by adding<br />

all <strong>ESB</strong> elements, or those defined in the properties of an existing archive or an extracted<br />

archive properties file (ExportProperties.xml.) Using scripts, you can automate the<br />

process of connecting, starting the tool, opening an archive, and rebuilding the archive.<br />

The techniques under the command line tool are straightforward. Its use is appropriate for<br />

scripting the extraction of similar data from multiple systems. The archive files can be<br />

saved in change management or source control systems as binary objects.<br />

Note See “<strong>Sonic</strong> <strong>ESB</strong> Tools and Samples” chapter of the <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> Configuration<br />

and Management <strong>Guide</strong> for more information about this tool.<br />

This technique for export either exports all the <strong>ESB</strong> elements in the domain or only the<br />

roots defined in an ExportProperties.xml file and then evaluated for their dependencies.<br />

That file is automatically created in an archive and is not intended for user editing.<br />

Starting the <strong>ESB</strong> Admin Tool<br />

The <strong>Sonic</strong> <strong>ESB</strong> Admin Tool provides a command-line interface for <strong>deploy</strong>ment. It<br />

provides commands for exporting to archives and the file system. These export commands<br />

can become part of a scripted set of commands.<br />

◆ To start the <strong>ESB</strong> Admin Tool for export<br />

Note A system must have a <strong>Sonic</strong> <strong>ESB</strong> Administration Tools installation or a <strong>Sonic</strong> Workbench<br />

installation to run this tool.<br />

1. Check that the source domain manager is running.<br />

2. On the system where you run the export process, start the <strong>ESB</strong> Admin Tool:<br />

■ Under Windows, choose:<br />

Start > Programs > <strong>Progress</strong> > <strong>Sonic</strong> <strong>8.5</strong> > Tools > <strong>ESB</strong> Admin Tool<br />

■ Under UNIX or Linux, on a system installed with the <strong>Sonic</strong> <strong>ESB</strong> Administration<br />

Tools, open a console window to the <strong>Sonic</strong> <strong>ESB</strong> installation directory, and enter:<br />

./bin/<strong>esb</strong>admin.sh<br />

The <strong>ESB</strong> Admin Tool window opens.<br />

50 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


For a list of commands, enter:<br />

<strong>ESB</strong>Admin> help (or ?)<br />

After you complete the export tasks with this tool, enter:<br />

<strong>ESB</strong>Admin> disconnect<br />

<strong>ESB</strong>Admin> exit (or bye)<br />

Using Scripts in the <strong>ESB</strong> Admin Tool<br />

Exporting <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool<br />

You can create a text file of commands to run as a script. For example:<br />

1. Create a text file with the content:<br />

connect Domain1 localhost:2506 Administrator Administrator<br />

export archive c:\<strong>deploy</strong>\Samples.xar all<br />

disconnect<br />

2. Save the file as c:\<strong>deploy</strong>\exportAll.txt.<br />

3. Open a console window in the <strong>ESB</strong><strong>8.5</strong> directory, and then enter:<br />

c:\<strong>Sonic</strong>\<strong>ESB</strong><strong>8.5</strong>> bin\<strong>esb</strong>admin < c:\<strong>deploy</strong>\exportAll.txt<br />

Once you have developed tailoring maps, you can add scripted steps to apply maps,<br />

produce analysis reports, and import into the target domain.<br />

Connecting to the Source Domain<br />

To export from a domain, you must first connect to it. Enter the connection data for the<br />

domain using the following syntax:<br />

connect domain url [username password] [managementNode]<br />

For example, where security is required, but management nodes are not used:<br />

<strong>ESB</strong>Admin> connect Domain1 localhost:2506 Administrator Administrator<br />

Connecting ...<br />

Connected to Directory Service at localhost:2506<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 51


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

Using the Export Archive Command<br />

The export archive command syntax creates an archive file based on the properties or<br />

action specified in the command line:<br />

<strong>ESB</strong>Admin> export archive target.xar [source.xar | export-prop.xml | all]<br />

where:<br />

■ target.xar is the path and name of the file (using the .xar extension) that is the<br />

<strong>deploy</strong>ment export package. If the archive file exists, it is overwritten.<br />

■ Use one of the following arguments:<br />

❑ source.xar — When an existing archive filename is specified, the export<br />

performs according to the export properties file located in that archive file,<br />

putting the results in the target archive file. If source and target are the same<br />

file, the archive is rebuilt.<br />

❑ export-prop.xml — If the argument is an .xml file with well-formed and<br />

valid export properties, the export performs according to that export<br />

properties file, putting the results in the target archive file. This is an<br />

advanced concept; typically, source.xar or all are used.<br />

❑ all — All elements in the Directory Service are packaged in the archive file.<br />

For example, you might periodically script a backup archive to check in to source control:<br />

<strong>ESB</strong>Admin> export archive backup_myProject.xar all<br />

52 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the Export FS Command<br />

Exporting <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool<br />

The export fs command syntax creates a file system hierarchy for the exported files at<br />

the designated root on the local system:<br />

<strong>ESB</strong>Admin> export fs targetFileStore [sourceFileStore | export_prop.xml | all]<br />

where:<br />

■ targetFileStore is the path and name of the Directory Service store on the local<br />

system; for example, c:\mySourceControlStaging\<br />

■ Use one of the following arguments:<br />

❑ sourceFileStore — When an existing file system store is specified, the<br />

export performs according to the export properties file located in that file<br />

store, putting the results in the target file system store. If source and target are<br />

the same file system store, the store is rebuilt.<br />

❑ export-prop.xml — If the argument is an .xml file with well-formed and<br />

valid export properties, the export performs according to that export<br />

properties file, putting the results in the target archive file. This is an<br />

advanced concept; typically, source.xar or all are used.<br />

❑ all — All elements in the Directory Service are packaged in the archive file<br />

(the default value).<br />

Closing the Domain Connection and Stopping the <strong>ESB</strong> Admin Tool<br />

After you complete your export tasks with the <strong>ESB</strong> Admin Tool, close the administrative<br />

connection to the source domain, by entering:<br />

<strong>ESB</strong>Admin> disconnect<br />

To stop the <strong>ESB</strong> Admin Tool, enter:<br />

<strong>ESB</strong>Admin> exit (or bye)<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 53


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

Using Scripted Builds to Export <strong>ESB</strong> Artifacts<br />

Using scripted builds is a streamlined, reliable way to extract <strong>ESB</strong> artifacts for<br />

<strong>deploy</strong>ment. You specify the source locations you want to evaluate for <strong>ESB</strong> artifacts, and<br />

the target location for the output of the export process. Scripted builds have advantages<br />

and limitations.<br />

The advantages of scripted builds are:<br />

● They are applied against source control repository branches so that all checked in<br />

developer files are accessed concurrently and branches can be locked.<br />

● Ant build syntax and operations are familiar to build managers.<br />

● They do not require a running <strong>Sonic</strong> domain.<br />

● The build files and supporting properties files can be abstracted from the <strong>Sonic</strong><br />

Workbench install location to run entirely in Ant and a Java SDK.<br />

The limitations of scripted builds are:<br />

● They do not support variable selection of files and correspondingly do not support<br />

rebuild from an export properties file.<br />

● They are constrained to only <strong>ESB</strong> artifacts and, at that, exclude <strong>ESB</strong> Containers.<br />

Supporting files packaged into exports must be handled by other export techniques.<br />

Important You must have a Java SDK installation accessible on a local or networked drive.<br />

You cannot use a Java Runtime Environment such as the JRE installed with <strong>Sonic</strong>MQ.<br />

◆ To perform a scripted build of <strong>ESB</strong> artifacts:<br />

1. On a <strong>Sonic</strong> Workbench system, navigate to sonic_install_root\Workbench<strong>8.5</strong><br />

tools\eclipse\plugins\com.sonicsw.tools.sonicbuild_85n.<br />

2. In your text editor, edit the com.sonic.build.user.properties file located in the<br />

resources folder as follows:<br />

a. Edit the line com.sonic.projects.src_list=Dir1,Dir2 to provide a commadelimited<br />

list of the projects from which to expand and extract <strong>ESB</strong> artifacts.<br />

Use forward slashes (/) regardless of platform.<br />

b. Edit the line com.sonic.out.target=targetDir to provide a target for the output.<br />

Use forward slashes (/) regardless of platform.<br />

3. Open a console to sonic_install_root\Workbench<strong>8.5</strong>.<br />

a. Set JAVA_HOME. For example, set JAVA_HOME=c:\jdk1.5.0_11<br />

b. Enter ant_executable -f build_file<br />

54 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Example of a Scripted Build of <strong>ESB</strong> Artifacts<br />

Using Scripted Builds to Export <strong>ESB</strong> Artifacts<br />

The following steps describe setting up and running a scripted build of the Samples.<strong>ESB</strong><br />

project in a <strong>Sonic</strong> Workbench installation on a Windows system. While resources in the<br />

workbench installation are used, no <strong>Sonic</strong> components or tools are running. The project<br />

used has not been imported, built, or uploaded.<br />

◆ To run a scripted build of the Sample.<strong>ESB</strong> project:<br />

1. Download and install C:\jdk1.5.0_11.<br />

2. Update the user properties file with the source and target locations, as shown:<br />

3. Open a console window to the sonic_install_dir\Workbench<strong>8.5</strong> root, and then set the<br />

Java home variable, and then enter the Ant Build command as shown:<br />

The output location contains the evaluated and exported file set of <strong>ESB</strong> artifacts for<br />

<strong>deploy</strong>ment.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 55


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

4. When packaged in a Zip file with the extension .xar, the exported files are a tailorable<br />

export archive with the following content:<br />

The scripted build abstracted from the <strong>Sonic</strong> installation was successful.<br />

You could do a Java build on the project. The resulting classes could be packaged in a JAR<br />

that you add into the <strong>deploy</strong>ment archive.<br />

56 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using Scripted Builds to Export <strong>ESB</strong> Artifacts<br />

Extending Ant Scripts For Mapping and Import Functions<br />

When you use scripted builds to export <strong>ESB</strong> artifacts for <strong>deploy</strong>ment, you probably want<br />

to integrate the export script with the Java build process and the import process.<br />

You should also handle domain mapping functions (an archive-only process) and<br />

accessing <strong>ESB</strong> Admin commands from within the Ant script.<br />

As described in “Mapping <strong>ESB</strong> Artifacts to Target Domains” on page 59, mapping is an<br />

archive-only operation. You can manage that in your script by moving your <strong>ESB</strong> artifacts<br />

into a <strong>Sonic</strong> <strong>deploy</strong>ment archive form, doing the mapping from defined map definition<br />

files for the target domain, and then importing the mapped archive into the target domain.<br />

The following excerpted procedures outline these operations. The example uses these<br />

variables you might want to consider in your scripts:<br />

<br />

<br />

<br />

<br />

<br />

<br />

● Packaging a set of files into a XAR file:<br />

<br />

<br />

<br />

<br />

<br />

● Launching the <strong>ESB</strong> Admin Tool and then directing mapping scripts to run:<br />

The XQCommandline launches the <strong>ESB</strong> Admin Tool. The xarmapfile property specifies<br />

a script that is redirected into the <strong>ESB</strong> Admin Tool.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 57


Chapter 2: Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong><br />

In this example, XQCommandline launches the <strong>ESB</strong> Admin Tool. The xarmapfile<br />

property specifies the script that is redirected into the <strong>ESB</strong> Admin Tool.<br />

The script mapUAT.script does applyMap for your defined User Acceptance Test map<br />

and analysis report commands might look like this:<br />

applyMap C:\TheProject.xar C:\UAT_map.xml C:\TheProject_UAT.xar C:\UAT.log<br />

diff -xar C:\TheProject.xar -xar C:\TheProject_UAT.xar -out C:\diff_UAT.xml<br />

● Extending the mapping script to import the mapped archive into the target domain<br />

The archive for the target domain is well packaged so you can extend the <strong>ESB</strong> Admin<br />

script to connect to the target domain and perform the import:<br />

connect DomainUAT tcp://UAT_host:2506 UAT_Administrator UAT_Administrator<br />

import archive C:\UAT_staging\TheProject_UAT.xar override<br />

bye<br />

58 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 3 Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Chapter 3 contains the following sections:<br />

● “Overview of Mapping <strong>Sonic</strong> <strong>Deployment</strong> Archives”<br />

● “Defining Scripts to Automate <strong>Deployment</strong>”<br />

● “Incrementally Updating or Building Domains”<br />

● “Implementing Domain Builds and Updates”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 59


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Overview of Mapping <strong>Sonic</strong> <strong>Deployment</strong> Archives<br />

The configurations packaged in <strong>Sonic</strong> <strong>deploy</strong>ment archives are <strong>deploy</strong>ment<br />

configurations that will be bound to destinations, connections, and the file system in a<br />

target domain. Mapping requires that you step through the process of creating the export<br />

definitions, the tailoring rules, the maps, and the import rules that will result in a<br />

successful import into a target domain.<br />

Once you establish files used in the end-to-end procedure of export, map, and import, you<br />

can create scripts that automate the process.<br />

While it is typical to script the export process to the point where the mapped archive is<br />

contrasted with the target domain to review its impact in reports, you can script the<br />

complete end-to-end process.<br />

This chapter shows how to perform the individual processes, how to script those<br />

processes, and how to apply the processes in both static test domains, in dynamic preproduction<br />

stages, and in the live production environment.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> provides tools for mapping <strong>Sonic</strong> <strong>ESB</strong> configuration elements from<br />

development to <strong>deploy</strong>ment domains, as outlined in Chapter 1, “Introduction.”<br />

60 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Workbench<br />

Domain<br />

- <strong>ESB</strong> Artifacts<br />

- <strong>Sonic</strong>FS files<br />

Directory<br />

Service<br />

Export<br />

Archive<br />

a<br />

Exported <strong>Deployment</strong> Archive<br />

Overview of Mapping <strong>Sonic</strong> <strong>Deployment</strong> Archives<br />

The following illustration shows the steps in creating a <strong>Sonic</strong> <strong>deploy</strong>ment archive, and<br />

then tailoring and mapping the archive to a target domain.<br />

f<br />

c<br />

CreateMap<br />

for Archive<br />

Analysis of Directory Services,<br />

archives, and file stores<br />

Differences<br />

Impact analysis<br />

<strong>Sonic</strong>MQ dependencies<br />

<strong>Sonic</strong>MQ reverse dependencies<br />

Edit Map<br />

Parameters for<br />

Target Domain<br />

b<br />

Map File Edited Map File<br />

Tailoring Rules<br />

Tailoring and Map export archive<br />

<strong>Deployment</strong><br />

Domain<br />

d e<br />

Directory Service<br />

Import Tailored<br />

Archive<br />

Mapped Archive<br />

Import Log File<br />

Map Log File<br />

The steps (as shown in the illustration) to map elements from one domain to another<br />

include:<br />

a. Export Archive — Specify the configuration elements to copy from a source<br />

domain manager into an archive file. Export the selected files and configuration<br />

elements from the source Directory Service to a <strong>deploy</strong>ment archive file (.xar).<br />

See Chapter 2, “Exporting <strong>ESB</strong> Artifacts for <strong>Deployment</strong>,” for more information.<br />

b. Tailoring Rules — Review the default tailoring rules file to see if you want to<br />

create custom tailoring rules. See “Adjusting Tailoring Rules to Apply When<br />

Creating Map Files” on page 67 for more information.<br />

c. Create Map for Archive — Create a map from the <strong>deploy</strong>ment archive.<br />

See “Applying Tailoring Rules and Creating a Map File for an Archive” on<br />

page 73.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 61<br />

h<br />

Apply Map<br />

i<br />

g


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

d. Edit Map Parameters for Target Domain — Edit the map file to adjust<br />

development references and paths to preferred names in the <strong>deploy</strong>ment domain.<br />

Adjust any parameter values that should be changed in the <strong>deploy</strong>ment domain.<br />

“Editing the Map File for a Target Domain” on page 78 for more information<br />

e. Apply Map — Apply the edited map file to the exported archive to create a<br />

mapped archive. See “Adjusting and Applying a Map File to an Archive” on<br />

page 78 for more information.<br />

f. Analysis of Directory Services, Archives and File Stores — Produce analysis<br />

reports to review the dependencies and impact of the changes in the target<br />

domain. See “Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems” on<br />

page 95 for more information.<br />

g. Map Log File — Review the map log file to confirm that the mappings and<br />

parameter changes are correct. See “Reviewing the Mapping Log” on page 80 for<br />

more information.<br />

h. Import Tailored Archive — Define import properties to filter the <strong>deploy</strong>ment<br />

archive with overwrite capabilities on selected files, and ignore specified files,<br />

and then import the archive into the target domain manager. See Chapter 5,<br />

“Importing <strong>Deployment</strong> Artifacts into a Domain” for more information.<br />

i. Import Log File — Review the import log to certify that the changes took place<br />

as expected.<br />

You can produce analysis reports after the import completes to verify the changes.<br />

Tailoring Rules<br />

Tailoring rules define standards for transforming names and paths in the source domain<br />

(typically development), and for specifying the types of services, endpoints, and<br />

connections that will be exposed for mapping. For each of those types, the parameters that<br />

can be tuned at the mapping level are listed. Start by getting familiar with the structure<br />

and content of the default tailoring rules file at sonic_install_dir/<strong>ESB</strong><strong>8.5</strong>/<strong>deploy</strong>.<br />

You will learn how you an use tailoring rules to create map files that you edit and then<br />

apply to an archive. You will also learn how to customize the tailoring rules so that map<br />

files always define your preferred rules, and extract parameters you want to tailor.<br />

62 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Default Tailorings<br />

Tailoring Rules<br />

The following section reviews each section and subsection of DefaulTailorRules.xml.<br />

● DevEnvRules — The reference names used in the Workbench are typically updated for<br />

<strong>deploy</strong>ment environments.<br />

■ stringReplaceMaps — These maps adjust path names of artifacts as well as<br />

references to these same strings that are embedded in other artifacts. The default<br />

pattern is to remove the workspace folder level.<br />

<br />

<br />

<br />

<br />

■ DevServiceMaps — These DevEnvRules provide mapping of references in service<br />

configurations in the development environment to service configurations for<br />

service types that will be defined in <strong>deploy</strong>ment environments. Generic service<br />

configurations are defined in the development domain with the prefix dev. This<br />

mapping assumes that you will set up similar service configurations names that<br />

use the prefix global. The default DevServiceMap tailorings are as shown:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

■ DevEndpointMaps — These DevEnvRules provide mapping of references of<br />

endpoint configurations in the development environment to endpoint<br />

configurations for service types that will be defined in <strong>deploy</strong>ment environments.<br />

Generic endpoint configurations are defined in the development domain with the<br />

prefix dev. This mapping assumes that you will set up similar endpoint<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 63


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

configurations names that use the prefix global. The default DevEndpointMap<br />

tailorings are as shown:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

That completes the DevEnvRules section.<br />

64 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Tailoring Rules<br />

● ServiceRules — The next part of the default tailor rules file contains the<br />

ServiceRules. The listed services will be exposed in map files you create so that you<br />

can tune the parameters you expose in the map and then apply those changes to the<br />

archive before import into a target domain. The default service rules are as follows:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Continued<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 65


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Continued<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

● EndpointRules and ConnectionRules — These rules enable tailoring of instances of<br />

the JMSType to expose the parameters that are typically redefined in each target<br />

domain.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

66 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Tailoring Rules<br />

Adjusting Tailoring Rules to Apply When Creating Map Files<br />

You might accept the generic tailoring of this file, choosing instead to adjust the output<br />

maps you create.<br />

But when you find that you are copying and pasting the same variations into every map<br />

you create, you might want to customize the default rules file into variations that you use<br />

under different circumstances. Then, maps that you create are predictable and consistent.<br />

Edit a Copy of the Default Tailoring Rules File<br />

When you add a new service type, you must extend the tailoring rules file to include the<br />

new type and its tailorable parameters. For configuration elements that are listed in the<br />

rules file, you can add parameters for tailoring. Each configuration element’s<br />

configuration file lists its valid parameters. Similarly, if there are parameters in the default<br />

rules file that you never change from one domain to another, you can remove them from<br />

the rules file. The following example describes tuning a map for development references,<br />

adding a service type, and adding a parameter to an existing service type:<br />

1. Copy the <strong>ESB</strong> installation directory’s file, <strong>deploy</strong>/DefaultTailorRules.xml.<br />

2. Save the copied file as sonic_install_dir/<strong>ESB</strong><strong>8.5</strong>/<strong>deploy</strong>/myTailorRules.xml.<br />

3. Edit myTailorRules.xml as follows:<br />

■ “Revising and Extending String Replace Maps” on page 68<br />

■ “Adjusting Dev Service and Dev Endpoint Maps” on page 69<br />

■ “Adding New Service Types” on page 69<br />

■ “Adding Parameters to Existing ServiceTypes” on page 70<br />

■ “Adjusting EndpointRules” on page 70<br />

■ “Adjusting ConnectionRules” on page 70<br />

■ “Adding Property Mapping Rules” on page 71<br />

4. Save myTailorRules.xml.<br />

When you run a CreateMap command (see page 73), use the rules file parameter with the<br />

explicit path sonic_install_dir/<strong>ESB</strong><strong>8.5</strong>/<strong>deploy</strong>/myTailorRules.xml.<br />

The map file that it outputs will reflect your tailoring rules.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 67


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Revising and Extending String Replace Maps<br />

The stringReplaceMaps section, by default, removes workspace from the sonicfs paths.<br />

You can tune this line if, for example, you routinely want the <strong>deploy</strong>ed files from a<br />

development workspace to map to a directory structure named com.myCorp, as follows:<br />

<br />

Important Always replace the name workspace — While you can revise the string replacement of<br />

sonicfs: path references from workspace to no name or any specified name, you should<br />

never leave the name workspace in a <strong>deploy</strong>ment configuration as it might trigger<br />

behaviors not intended for <strong>deploy</strong>ment environments.<br />

You can extend the stringReplaceMaps section to include multiple steps. The added steps<br />

must each have an order parameter set to an incrementing integer value. As shown in the<br />

following code segment, the stringReplaceMap line where order=”1” is evaluated first,<br />

then the result is recursed with the line where order=”2”. After the sequence has been<br />

completed, the default stringReplaceMap applies, as shown:<br />

<br />

<br />

<br />

<br />

If you use order steps you must have one instance of each sequential step, but the listing<br />

of the steps need not be in order.<br />

References within files — String mappings also apply to strings within files, even if they<br />

are packaged within the XAR (such as a CSAR package). You need to be careful in raw<br />

string replacements to qualify your search string, and to avoid mapping key words, fixed<br />

namespaces, and related artifacts by string replacement. This feature is most useful for<br />

replacing URLs and references. For example, the following line might be for mapping<br />

references to targets used in the test environment:<br />

<br />

68 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Whereas the same line in the production map might be:<br />

Tailoring Rules<br />

<br />

Constraining references to a specified file — You can limit a string replacement to a<br />

specific file by adding the artifactName attribute, as shown for Readme.txt:<br />

<br />

Phases of tailoring — String replacement can be applied in the tailoring rules which<br />

propagate to map file. The map files can be extended or further edited. For example, you<br />

could either:<br />

● Do general changes in a general tailoring file—such as replacing<br />

sonicfs:///workspace/ with sonicfs:///com.myCorp/—and refine the projectspecific<br />

mappings in the map file for each target domain.<br />

● Do detailed changes in project-specific tailoring files so that map files can focus on<br />

finer tuning—such as the routings and quality of service—for each target domain.<br />

Adjusting Dev Service and Dev Endpoint Maps<br />

The transition from development to <strong>deploy</strong>ment means leaving behind the notion of a<br />

workspace, and mapping away from preset services and endpoints that are maintained and<br />

automated within the development environment.<br />

The sections DevServiceMaps and DevEndpointMaps map references that start with dev. to<br />

references that start with global. instead.<br />

You might want to change the prefix from global. to a general name that is focused on<br />

your work, such as com.myCorp or your customer’s project, such as EuroATM.<br />

Adding New Service Types<br />

When new service types are added, you can add the service type to the tailoring rules so<br />

that you can expose the parameters in its properties file for tuning in the map files.<br />

For example, if you were packaging the <strong>Sonic</strong>.<strong>ESB</strong> Sample.AuditServiceType, you might<br />

add the following lines to the tailoring rules file at the end of the ServiceRules section:<br />

<br />

<br />

<br />

<br />

<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 69


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Adding Parameters to Existing ServiceTypes<br />

The parameters of an <strong>ESB</strong> configuration element define its functionality and its bindings<br />

to a target domain’s requirements, service levels, and physical topology. While the<br />

functionality is intended to stay constant, the bindings must be adjusted when the <strong>ESB</strong><br />

element is brought into another domain.<br />

While predefined service types expose the most common parameters for tailoring, you<br />

might want to add (or remove) some parameters that can be mapped.<br />

For example, the configuration file for the service SplitJoinForEach.xml has several init<br />

parameters, only two of which are stated as required in the default tailoring rules file. If<br />

you want to tailor the Boolean parameter Keep Original Part to toggle from its default<br />

value false to true in <strong>deploy</strong>ment, add its parameter in your tailoring rules file as follows:<br />

<br />

<br />

<br />

<br />

<br />

Adjusting EndpointRules<br />

For an endpoint, you need to be aware of required destination names, particularly for the<br />

type QUEUE as queues must be statically defined before they are referenced. These queues<br />

will need to exist in the target domain. Other endpoint parameters are generally accepted<br />

as they have been defined.<br />

You might also provide a preferred name or pattern for destinations. For example, you<br />

could redefine a destination name RIA.entry to be controlled by ACLs you define for<br />

com.myCorp.# by changing the destination name to com.myCorp.RIA.entry.<br />

Adjusting ConnectionRules<br />

For a connection, the parameters exposed provide the parameters for management<br />

connection in the target domain, as well as SSL parameters that specify locations on local<br />

systems. Or, if you do not use SSL for management connections, you could leave those<br />

parameters off the tailoring rules so that they are not exposed.<br />

70 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Tailoring Rules<br />

Adding Property Mapping Rules<br />

You can append a PropertyRules section at the end of the tailoring rules file to enable<br />

mapping the value of a specific property name to your preferred value. For example:<br />

...<br />

<br />

<br />

<br />

<br />

<br />


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Using StringReplace and PropertyReplace Content Change Rules<br />

The content change rules, StringReplaceMaps and PropertyReplaceMaps, are closely<br />

related. The following sections contain information about using both types.<br />

Rule Processing<br />

When you apply a map, its content change rules are processed as follows:<br />

1. PropertyReplaceMaps are processed before StringReplaceMaps and are checked for<br />

named rules and generic rules.<br />

■ If both a named rule and a generic rule exist, and both affect the same property,<br />

the named rule takes precedence over the generic rule. Best practice is to make<br />

sure that a named property file contains only one instance of a named property,<br />

because multiple instances may cause unpredictable results.<br />

■ If multiple generic rules exist, they are processed in a top-down manner. If<br />

multiple generic rules affect the same property, the last rule found in the map (that<br />

is, the rule nearest to the bottom) takes precedence. Best practice is to have only<br />

one generic rule.<br />

■ Generic rules extend to all properties files in the XAR and any component<br />

packages. Best practice is to use only named properties files, unless you are<br />

comfortable with changing properties globally.<br />

2. After all PropertyReplaceMaps are completed, StringReplaceMaps are processed.<br />

■ StringReplaceMaps are checked to determine the order of rules (specified with the<br />

order attribute) and then processed in the specified order. Unordered rules are<br />

processed after ordered rules.<br />

■ You can add an artifactName property to a StringReplaceMap to constrain its<br />

scope to the named file. But the rule is still processed in the stated order.<br />

■ If there are multiple unordered StringReplaceMaps, they are processed in a topdown<br />

manner. Best practice is to use only ordered rules, because multiple rules<br />

with no specific order may cause indeterminate results.<br />

Creating Properties Files<br />

It is good practice to make additional copies of properties files in preparation for tailoring.<br />

For example, copying <strong>ESB</strong>ToREST.properties to <strong>ESB</strong>ToREST_test.properties and<br />

<strong>ESB</strong>ToREST_production.properties in <strong>Sonic</strong>FS makes tailoring a bit easier. The alternative<br />

would be to extract the properties file from the XAR, make a named copy, and then add<br />

them back in to the XAR.<br />

72 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Tailoring Rules<br />

Applying Tailoring Rules and Creating a Map File for an Archive<br />

Once the tailoring rules are complete, you can generate a map file from an archive. The<br />

tailoring rules will specify what is included in the map. Then you edit the map for the<br />

settings you want to adjust in the target domain. Then the edited map will ruin against the<br />

original archive to create a mapped archive.<br />

Creation of a map for an export archive is achieved by running an <strong>ESB</strong>Admin command with<br />

the source archive and the output map file as parameters. The default tailoring rules are<br />

applied unless you specify a custom rules file. Note that file path names are fully<br />

enunciated.<br />

For this example, the export file RIA.xar created in the “Exporting <strong>ESB</strong> Artifacts for<br />

<strong>Deployment</strong>” chapter is used in the ongoing example.<br />

◆ To create a map file from a source archive and use default tailoring rules:<br />

1. Start the <strong>ESB</strong> Admin Tool.<br />

2. Enter: <strong>ESB</strong>Admin> createMap source_archive map_file<br />

For this example: <strong>ESB</strong>Admin> createMap c:\RIA.xar c:\RIA_map.xml<br />

You can now edit the map you created to specify its parameters for the target domain.<br />

◆ To create a map file from a source archive and apply modified tailoring rules:<br />

If you created custom tailoring rules, as described in “Adjusting Tailoring Rules to Apply<br />

When Creating Map Files” on page 67, reference the file you saved, as follows:<br />

1. Start the <strong>ESB</strong> Admin Tool.<br />

2. Enter: <strong>ESB</strong>Admin> createMap source_archive map_file [rules_file]<br />

For this example: <strong>ESB</strong>Admin> createMap c:\RIA.xar c:\RIA_map.xml<br />

c:\myTailorRules.xml<br />

You can now edit the map you created to specify its parameters for the target domain.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 73


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

The content of RIA_map.xml when using the default tailoring rules is as follows:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Operation Router<br />

<br />

<br />

<br />

getPhoneAccountActivity<br />

<br />

<br />

<br />

getTVAccountActivity<br />

<br />

<br />

<br />

getWirelessCellAccountActivity<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

CombineAllAccounts<br />

<br />

<br />

<br />

Format Result<br />

<br />

<br />

<br />

<br />

74 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


continued<br />

Tailoring Rules<br />

continued<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Operation Router<br />

<br />

<br />

<br />

getAccounts<br />

<br />

<br />

<br />

getAccountActivity<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 75


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

If you did the changes in “Revising and Extending String Replace Maps” on page 68 and<br />

“Adjusting Dev Service and Dev Endpoint Maps” on page 69, the map file would be:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Operation Router<br />

<br />

<br />

<br />

getPhoneAccountActivity<br />

<br />

<br />

<br />

getTVAccountActivity<br />

<br />

<br />

<br />

getWirelessCellAccountActivity<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

CombineAllAccounts<br />

<br />

<br />

<br />

Format Result<br />

<br />

<br />

<br />

<br />

76 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


continued<br />

Tailoring Rules<br />

continued<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Operation Router<br />

<br />

<br />

<br />

getAccounts<br />

<br />

<br />

<br />

getAccountActivity<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 77


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Adjusting and Applying a Map File to an Archive<br />

Once you defined your tailoring rules (see “Adjusting Tailoring Rules to Apply When<br />

Creating Map Files” on page 67), and used those rules to create a map file for an <strong>ESB</strong><br />

export archive (see “Applying Tailoring Rules and Creating a Map File for an Archive”<br />

on page 73), you can edit the map file for a target domain and then generate a mapped<br />

archive, ready for import into a target domain.<br />

Editing the Map File for a Target Domain<br />

In your preferred text editor, open the map file you created—RIA_map.xml. If you intend<br />

to import the same archive into multiple domains, you can save a step by copying the map<br />

file you created and then editing a copy to tune it to each target domain.<br />

For this example, the timeToLive is modified in the map file from 0 (forever) to 10000<br />

(msecs) for the getAccountyActivity process for use in Developer Integration Testing:<br />

<br />

<br />

<br />

...<br />

Additional String Replacements in the Map File<br />

You might do string mapping in the map file. See “Revising and Extending String Replace<br />

Maps” on page 68 for more information. Keep in mind that once string replacements have<br />

been applied in tailoring, any string replacement in the map file applies to the text patterns<br />

in the tailored XAR.<br />

When a tailoring is prepared for an archive, you can apply the map file to the original<br />

source archive to generate a new archive that has the map instructions applied to the<br />

archive. The log option provides a detailing of the actions that occur.<br />

As this is the map file for RIA <strong>deploy</strong>ment into the Developer Integration Testing (DIT)<br />

domain, save the file as RIA_map_DIT.xml.<br />

Note If you are rerunning an applyMap command, it is good practice to relocate or delete an<br />

existing mapped archive file that has the same name and target location.<br />

78 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


◆ To apply an edited map to a source archive and create a mapped archive:<br />

❖ In the <strong>ESB</strong> Admin Tool, enter:<br />

Tailoring Rules<br />

applyMap source_archive.xar map_file.xml mapped_archive.xar [log_file.xml]<br />

For example, to execute this command against the sample RIA.xar and the<br />

RIA_map_DIT.xml file you created, you might name the output file RIA_DIT.xar, and the log<br />

file RIA_DIT_log.xml. Therefore, the command would be:<br />

applyMap C:\RIA.xar C:\RIA_map_DIT.xml C:\RIA_DIT.xar C:\RIA_DIT_log.xml<br />

The process creates the target tailored XAR, RIA_DIT.xar and the mapping log,<br />

RIA_DIT_log.xml. The string replacements are apparent in the XAR files.<br />

● Original XAR:<br />

● Mapped XAR:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 79


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

...<br />

...<br />

Reviewing the Mapping Log<br />

The application of the map to the archive creates a log. In this example, the output file is<br />

RIA_DIT_log.xml. The following shows excerpts from the mapping log for the example<br />

along with the old values and new values for each change:<br />

<br />

<br />

Sample.RIA.getAccountActivity<br />

Process<br />

<br />

Reject Endpoint Reference<br />

dev.RME<br />

com.myCorp.RME<br />

<br />

<br />

Tracking Level Endpoint Reference<br />

dev.Tracking<br />

com.myCorp.Tracking<br />

<br />

<br />

Itinerary Endpoint Reference, Step: Operation Router<br />

dev.CBR<br />

com.myCorp.CBR<br />

<br />

<br />

TTL<br />

0<br />

10000<br />

<br />

<br />

<br />

Sample.RIA.getAccountActivity<br />

<strong>ESB</strong><br />

<br />

String replacement<br />

sonicfs:///workspace/Sample.RIA/Sample Data/<br />

sonicfs:///com.myCorp/Testing/RIA/Data<br />

<br />

Importing the Mapped Archive into the Target Domain<br />

Chapter 5, “Importing <strong>Deployment</strong> Artifacts into a Domain,” describes the creation of<br />

import rules and the import process.<br />

80 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Defining Scripts to Automate <strong>Deployment</strong><br />

Defining Scripts to Automate <strong>Deployment</strong><br />

The preceding tasks created work files to enable scripting of the same process. The steps<br />

in Table 1 show how the steps can be used in scripts once their files are defined.<br />

Table 1. The <strong>Deployment</strong> Process Steps from Initial <strong>Deployment</strong> to Scripted <strong>Deployment</strong><br />

Step Initial Use Subsequent use<br />

a Export archive X from<br />

source domain<br />

Define export roots from<br />

domain into a <strong>Sonic</strong> Archive<br />

(XAR) file.<br />

b Adjust tailoring rules No action required, but adjust<br />

as needed.<br />

c Create map for<br />

archive X<br />

d Edit archive X map for<br />

target domain Y<br />

e Apply map to archive<br />

X and create archive Y<br />

f Create X-Y analysis<br />

reports<br />

createMap command,<br />

referencing tailoring rules when<br />

not using the default file<br />

Adjust values of exposed<br />

parameters and string<br />

references.<br />

applyMap command to exported<br />

archive referencing the map file<br />

and naming the mapped archive<br />

Use interactively to discover<br />

which types suit your<br />

requirements.<br />

g Review Y map log See if changes were applied as<br />

expected.<br />

h Define / review<br />

Y import rules then<br />

Import into Y domain<br />

Select overwrites and deselect<br />

features not to apply.<br />

Import through GUI tool to<br />

create import rules.<br />

Connect to domain and then<br />

rebuild using the predefined<br />

roots.<br />

No action required. -<br />

You reuse maps after they are<br />

edited so they are recreated<br />

only when basic changes<br />

occur.<br />

Minor edits usually tune the<br />

archive for changes in the<br />

target.<br />

applyMap command to<br />

exported archive referencing<br />

the map file and naming the<br />

mapped archive<br />

Define a set of analyses that<br />

are tied closely to an export<br />

script.<br />

Could be generated to standard<br />

output to document the<br />

scripted process.<br />

Stored import rules can be<br />

accessed by scripts.<br />

import command with import<br />

rules or merge.<br />

Used in<br />

Scripts?<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 81<br />

Yes<br />

-<br />

-<br />

Yes<br />

Yes<br />

Yes<br />

Yes


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

For example, the following code sample is an end-to-end script that exports from a<br />

domain under defined roots, applies its defined map, produces several analysis reports,<br />

and then imports into a defined target domain using defined import rules:<br />

connect Domain1 releaseManager:2506 Administrator Administrator<br />

export archive c:\dev.xar c:\exportProperties.xml<br />

disconnect<br />

applyMap c:\dev.xar c:\2\map1.xml c:\2\mapped1.xar c:\2\mapped2_log.xml<br />

diff -xar c:\dev.xar -xar c:\1\mapped2.xar -out c:\2\vDiff_xar_xar2.xml -v<br />

diff -xar c:\dev.xar -xar c:\1\mapped2.xar -out c:\2\tDiff_xar_xar2.xml<br />

mqdepends -xar c:\2\mapped2.xar -out c:\2\mqDepends.xml<br />

mqrevdepends -xar c:\2\mapped2.xar -out c:\2\mqRevDepends.xml<br />

connect Domain2 StageTwo:2526 Administrator StageTwoPassword<br />

impact -xar c:\2\mapped2.xar -out c:\2\tImpact_XAR2_DS2.xml<br />

-ds Domain2 StageTwo:2526 Administrator StageTwoPassword<br />

impact -xar c:\2\mapped2.xar -out c:\2\vImpact_XAR2_DS2.xml<br />

-ds Domain2 StageTwo:2526 Administrator StageTwoPassword -v<br />

import archive c:\2\mapped2.xar c:\2\2_import.xml<br />

disconnect<br />

bye<br />

That series of commands in <strong>Sonic</strong> <strong>ESB</strong> Admin Tool syntax, when saved as a text file such<br />

as End2End.txt, lets you create a script file that pipes in the command sequence, such as:<br />

C:\<strong>Sonic</strong>\<strong>ESB</strong><strong>8.5</strong>\bin\<strong>esb</strong>admin < c:\2\End2End.txt<br />

Once defined, the sequence of steps in the illustration on page 61 can be scripted. The<br />

script overlaying the image in the following illustration shows an end-to-end development<br />

to <strong>deploy</strong>ment process that is reliable, consistent, and fully documented:<br />

Workbench<br />

Domain<br />

- <strong>ESB</strong> Artifacts<br />

- <strong>Sonic</strong>FS files<br />

Directory<br />

Service<br />

Exported <strong>Deployment</strong> Archive<br />

Analysis of Directory Services,<br />

archives, and file stores<br />

Differences<br />

Impact analysis<br />

<strong>Sonic</strong>MQ dependencies<br />

<strong>Sonic</strong>MQ reverse dependencies<br />

Scripted Export Procedure, Mapping, and Import<br />

<strong>Deployment</strong><br />

Domain<br />

Directory Service<br />

Import tailored<br />

archive<br />

- Connect to the Workbench Domain.<br />

- Export archive using the previously defined export properties<br />

Mapped Archive<br />

- Disconnect. Export<br />

D<br />

archive<br />

C<br />

E<br />

- Apply the map that was previously defined to map the exported archive for this <strong>deploy</strong>ment domain.<br />

Edit Map<br />

- Output the map log fileCreateMap<br />

A<br />

Parameters for<br />

Apply Map<br />

- Generate a report that for shows Archive the differences between thie exported archive and the mapped archive.<br />

Target Domain<br />

- Generate a report that shows the <strong>Sonic</strong>MQ dependencies in the mapped archive.<br />

- Connect to the <strong>deploy</strong>ment domain Map File Edited Map File<br />

- Generate a report that shows Bthe<br />

impact of the mapped archive on this <strong>deploy</strong>ment domain.<br />

- Import into the <strong>deploy</strong>ment domain Tailoring using Rules the preeviously definred import rules.<br />

- Output the import log file.<br />

- Disconnect.<br />

- End the script.<br />

Tailoring and Map export archive<br />

Import Log File<br />

Map Log File<br />

82 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

G<br />

H<br />

F


Incrementally Updating or Building Domains<br />

Incrementally Updating or Building Domains<br />

You can update the <strong>ESB</strong> elements in a domain or, for testing environments, initialize the<br />

domain so that only the packaged <strong>ESB</strong> elements populate the domain after import.<br />

Incrementally Updating a Domain<br />

When importing files into a target domain, the existing Directory Service is usually<br />

populated with existing <strong>ESB</strong> elements, as shown in the following illustration:<br />

UPDATE scripts<br />

Target Domain<br />

Directory<br />

Service<br />

POPULATED<br />

Import Rules<br />

- Overwrite<br />

- Ignore<br />

The changes you apply must reconcile the incoming files with existing files so that any<br />

potential file overwrites clearly determine whether the incoming files take precedence<br />

over (overwrite) the existing files or not (ignore).<br />

Update scripts must submit archives to the target domain in a specified sequence so that<br />

the decision to ignore or overwrite changes in multiple archives achieves the expected<br />

final result.<br />

The archive packaged after successful integration testing is imported into an advanced<br />

staging domain or production as an incremental update. In live stages, the more elaborate<br />

distributed resources and existing <strong>ESB</strong> elements are not easily decoupled, so their<br />

Directory Services are incremented by files selected in import properties files and<br />

matching files are resolved to determine which of the matched files is retained.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 83


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Building <strong>ESB</strong> Elements into a Domain<br />

A build strategy is viable in a static domain where the physical installations are retained,<br />

but the Directory Service is discarded and a ‘clean’ base-level Directory Service is<br />

restored, as shown in the following illustration:<br />

BUILD scripts<br />

Target Domain<br />

Directory<br />

Service<br />

Flush and<br />

Restore with<br />

'Clean' DS<br />

The base level Directory Service structure is the foundation for the next build. The build<br />

strategy is useful only when the underlying domain manager is static, a situation that<br />

exists only on <strong>Sonic</strong> Workbenches and its <strong>deploy</strong>ment analog, the Developer Integration<br />

Test (DIT) environment. Because the DIT domain manager is narrowly defined and rarely<br />

reconfigured, a basic setup of the domain manager can be created, <strong>ESB</strong>-enabled, and then<br />

backed up and stored offline.<br />

The build scripts start by deleting the existing DIT Directory Service and then restoring<br />

the Directory Service from its backup. As a result, the imported <strong>ESB</strong> elements will<br />

encounter no file matches and there are no orphaned files to delete.<br />

This build technique propagates the selected branch of the source control repository into<br />

the target domain.<br />

You can use these methodologies in different ways at different <strong>deploy</strong>ment levels. For<br />

example, the techniques for <strong>deploy</strong>ment from development to integration testing might be<br />

a build process, while advanced staging uses incremental changes.<br />

84 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Incrementally Updating or Building Domains<br />

Deciding on Export or Promotion Through Stages<br />

The flow or <strong>deploy</strong>ment sets from development to production can:<br />

● Enter a stage, and then be re<strong>deploy</strong>ed to move to the next stage.<br />

● Enter a stage, and then determine whether the original <strong>deploy</strong>ment set should enter<br />

the next stage.<br />

Many <strong>deploy</strong>ments build the initial stages and use incremental change in the later stages.<br />

Exporting Through Stages<br />

Using this technique, satisfactory completion of a stage is characterized by exporting the<br />

changes that will be applied in the next stage, as illustrated:<br />

<strong>Sonic</strong> Workbenches<br />

Development Licenses<br />

Eclipse Project Workspace<br />

Checkout / Checkin<br />

Update View<br />

Source<br />

Control<br />

Repository<br />

Read source files and artifacts in branch<br />

This illustration shows:<br />

Runtime <strong>Deployment</strong>s<br />

<strong>Deployment</strong> Licenses<br />

Staging and Test Environments<br />

Developer<br />

Integration<br />

Directory<br />

Service<br />

User<br />

Acceptance<br />

DIT UAT LIVE<br />

Flush and<br />

Restore with<br />

'Clean' DS<br />

DIT Mapped Archive<br />

DIT Mapping Rules<br />

BUILD<br />

scripts<br />

<strong>Product</strong>ion Environment<br />

● The build strategy used in the Developer Integration Testing (DIT) environment—<br />

refresh the base level Directory Service, tailor the incoming archives, then apply<br />

import (at this stage, you might ignore nothing and overwrite everything unless you<br />

have a series of archives).<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 85<br />

Export<br />

Directory<br />

Service<br />

Import Rules<br />

- Overwrite<br />

- Ignore<br />

UAT Mapped Archive<br />

UAT Mapping Rules<br />

UPDATE<br />

scripts<br />

Export<br />

Directory<br />

Service<br />

Import Import Import<br />

Promoted<br />

to UAT<br />

Released to<br />

<strong>Product</strong>ion<br />

Import Rules<br />

- Overwrite<br />

- Ignore<br />

LIVE Mapped Archive<br />

LIVE Mapping Rules<br />

UPDATE<br />

scripts


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

● A single <strong>deploy</strong>ment archive is exported from DIT for incremental update in User<br />

Acceptance Testing (UAT) where it is tailored and passed through import rules. There<br />

might be conflicts. When conflicts are resolved, an archive is exported.<br />

● The UAT export archive carries the changes into production where, after tailoring, the<br />

issue resolutions discovered in UAT are similarly applied.<br />

Promotion Through Stages<br />

Using this technique, satisfactory completion of a stage is characterized by notifying the<br />

managers of the next stage that the version that it tested is ready for access, mapping, and<br />

import from the same source, as illustrated:<br />

<strong>Sonic</strong> Workbenches<br />

Development Licenses<br />

Eclipse Project Workspace<br />

Checkout / Checkin<br />

Update View<br />

Source<br />

Control<br />

Repository<br />

This illustration shows:<br />

Runtime <strong>Deployment</strong>s<br />

<strong>Deployment</strong> Licenses<br />

Staging and Test Environments<br />

Developer<br />

Integration<br />

Read source files and artifacts in branch<br />

Directory<br />

Service<br />

User<br />

Acceptance<br />

DIT UAT LIVE<br />

Flush and<br />

Restore with<br />

'Clean' DS<br />

DIT Mapped Archive<br />

DIT Mapping Rules<br />

BUILD<br />

scripts<br />

<strong>Product</strong>ion Environment<br />

● The build strategy used in the Developer Integration Testing (DIT) environment is the<br />

same used in the promotion-through-stages strategy.<br />

● Advanced staging and the production environment build from the same source files<br />

and import the same <strong>ESB</strong> artifacts as the DIT stage. This strategy keeps the path from<br />

the release management branch to the target stages consistent and easier to reconcile<br />

when errors are observed.<br />

86 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

Directory<br />

Service<br />

Import Rules<br />

- Overwrite<br />

- Ignore<br />

UAT Mapped Archive<br />

UAT Mapping Rules<br />

UPDATE<br />

scripts<br />

Directory<br />

Service<br />

Import Import Import<br />

Import Rules<br />

- Overwrite<br />

- Ignore<br />

LIVE Mapped Archive<br />

LIVE Mapping Rules<br />

UPDATE<br />

scripts


Implementing Domain Builds and Updates<br />

Implementing Domain Builds and Updates<br />

The next sections describe in detail the procedures for using the build and update<br />

strategies.<br />

Using the Build Strategy on a Static Target Domain<br />

The following steps describe how to use the build technique for a basic, static domain such<br />

as Developer Integration Testing.<br />

◆ To implement build techniques for a Domain, complete the following tasks:<br />

1. “Create a Base Level Directory Service Structure” on page 87<br />

2. “Specify the Build Content” on page 88<br />

3. “Run the Build for the Test Domains” on page 88<br />

4. “Bind the <strong>ESB</strong> Elements to the Domain” on page 88<br />

5. “Dump Endpoint Lists and Iterate Queue Creation” on page 88<br />

6. “Test the Build” on page 89<br />

The following sections detail each of these tasks.<br />

Create a Base Level Directory Service Structure<br />

A base level Directory Service is the foundation for many different <strong>deploy</strong>ment tests.<br />

Once you create it, you refresh the working Directory Service with the base level<br />

Directory Service to reset the domain, as detailed here:<br />

1. On the system where you want to set up an integrated testing environment, use the<br />

<strong>Sonic</strong> Installer to install a Domain Manager with an MQ and an <strong>ESB</strong> license key. If<br />

you intend to <strong>deploy</strong> <strong>Sonic</strong> BPEL Server, enter its key as well. Start the Domain<br />

Manager’s container.<br />

2. Connect to the domain through the <strong>Sonic</strong> Management Console to enhance the base:<br />

■ Add some global services and endpoints to simplify initial bindings for mapped<br />

artifacts. See “Adjusting Dev Service and Dev Endpoint Maps” on page 69 for<br />

more about these mapping targets.<br />

■ Set up management and <strong>ESB</strong> Containers that correspond to the development<br />

containers. For example, dit_Test and dit_Core.<br />

3. Stop the Domain Manager. Archive this clean Directory Service store.<br />

4. Save the backup archive file. You will use it routinely to refresh the build domain.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 87


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

Specify the Build Content<br />

The content of a build is typically determined by the release management team through<br />

their branch mechanisms in source control and their build scripts that build JARs and<br />

package <strong>ESB</strong> artifacts on the specified branch.<br />

Run the Build for the Test Domains<br />

When you want to do a build in developer integration testing, refresh the Directory<br />

Service, then import the archives.<br />

◆ To run the build in integration testing:<br />

1. Flush the existing structure by stopping the domain manager's container, and then<br />

deleting the Directory Service folder.<br />

2. Recreate the Directory Service store from the base level Directory Service backup<br />

you created.<br />

3. Use the <strong>Deployment</strong> Archive Import Tool to import the archives targeted for the build<br />

into the restored clean Directory Service store.<br />

Bind the <strong>ESB</strong> Elements to the Domain<br />

The components of the built domain must be bound to the domain infrastructure.<br />

◆ To bind <strong>ESB</strong> elements to a domain:<br />

1. Bind the connections and endpoints to the management node. If you did tailoring,<br />

these are key parameters of the mapping process, so you do not have to do them now.<br />

2. Create management containers that connect to the management node.<br />

3. Create <strong>ESB</strong> Containers for the imported services, then add the <strong>ESB</strong> Containers to<br />

appropriate management containers.<br />

Dump Endpoint Lists and Iterate Queue Creation<br />

Because queues are static objects, they must be explicitly created before they can be used.<br />

When a <strong>deploy</strong>ment contains many endpoints, you might want to programmatically set<br />

the queue endpoints on the appropriate messaging node.<br />

88 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


◆ To dump endpoint lists and iterate queue creation:<br />

Implementing Domain Builds and Updates<br />

1. In a dumped archive or file structure, create an iterator over the elements in<br />

<strong>ESB</strong>\Endpoints\. On each item, examine the file to see if type is QUEUE. For each queue<br />

item, output its destination value to a list.<br />

2. Create an application based on the <strong>Sonic</strong>MQ ConfigBean/CreateQueue sample that<br />

connects to the domain and then adds each listed item as a queue.<br />

Test the Build<br />

Run the services in the test domain. You might want to import the test plans into <strong>Sonic</strong>FS.<br />

When the test run is complete, the Directory Service on the Developer Integration Testing<br />

system can be refreshed to the base level DS structure in preparation for the next build.<br />

After the developer tests are complete, archive export and import techniques are generally<br />

appropriate for advanced staging and production environments.<br />

Using the Update Strategy on Dynamic Target Domains<br />

The following procedure describes how to use the update strategy for complex, evolving<br />

domains such as User Acceptance Testing and the production environment. The dynamic<br />

nature of the configured <strong>Sonic</strong>MQ objects in advanced staging or production makes it<br />

difficult to isolate a Directory Service that produces a base level, yet is cleared of all <strong>ESB</strong><br />

elements.<br />

When you import into an existing logical structure, you risk file name conflicts that can<br />

cause new services or existing services to perform in unexpected ways. Further,<br />

incremental changes that are updates of existing <strong>deploy</strong>ments might no longer use some<br />

files that should be removed.<br />

The advantage of incremental <strong>deploy</strong>ments is that existing services are bound to<br />

management containers so only new elements must adapt to the new domain.<br />

◆ To implement update techniques for a Domain, complete the following tasks:<br />

1. “Build or Export the Set of Changes Moving into <strong>Deployment</strong>” on page 90<br />

2. “Map Archives for the Target Domain” on page 90<br />

3. “Review Developer Documentation on Setup and Cleanup” on page 90.<br />

4. “Backup the Directory Service” on page 91<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 89


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

5. “Run a Scripted Update Sequence” on page 91<br />

6. “Evaluate Target Overwrites” on page 91<br />

7. “Dump Endpoint Lists and Then Iterating Queue Creation” on page 93<br />

8. “Manage Imports, Containers, and Installed <strong>Sonic</strong> <strong>Product</strong>s” on page 93<br />

9. “Evaluate Change Requirements in JavaScript, and ebXML Files” on page 93<br />

10. “Test and Accept or Rollback” on page 93<br />

The following sections detail each of these tasks.<br />

Note See “Importing <strong>Deployment</strong> Artifacts into a Domain” on page 105 for update techniques.<br />

Build or Export the Set of Changes Moving into <strong>Deployment</strong><br />

Use the archive or file set methods described in Chapter 2, “Exporting <strong>ESB</strong> Artifacts for<br />

<strong>Deployment</strong>.”<br />

Map Archives for the Target Domain<br />

If you used the archive method, create and apply the map for the target domain. See<br />

“Applying Tailoring Rules and Creating a Map File for an Archive” on page 73 for more<br />

information.<br />

Review Developer Documentation on Setup and Cleanup<br />

Ideally, the development and QA teams add their test procedures and notes to the archive.<br />

For example, queues that are expected to see high traffic can be properly placed in highspeed<br />

clusters. Or, for updated <strong>deploy</strong>ments, any elements that are no longer in use can be<br />

deleted in the updated domain (a manual task).<br />

90 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Backup the Directory Service<br />

Implementing Domain Builds and Updates<br />

Before starting incremental changes, you should stop the management container, and then<br />

back up the Directory Service store before you perform archive imports. If imports and<br />

regression testing do not succeed, you can revert gracefully to the prior configuration.<br />

Important An import procedure that considers restoration of the Directory Service as a recovery<br />

technique should lock out administrative changes to the Directory Service until the<br />

import is complete and verified. When you start the domain manager after backup, you<br />

could revise the password for administrative users until the import procedure is complete<br />

and then change it back.<br />

Another tactic is to install the administrator tools on the target domain manager system.<br />

Then, when the import file is copied to that system, the domain manager can drop its<br />

network connections until the local user completes the import procedure (or restores the<br />

previous directory service.) That tactic can be quite effective when using fault tolerant<br />

management components at a remote site. In that case, when you back up the primary<br />

Directory Service and copy it to the backup location, set it to not accept updates. Then,<br />

when you take the primary Directory Service offline the failover is to the current data set<br />

as read-only. After the import session is complete, failback to the primary Directory<br />

Service resumes as write-enabled.<br />

Run a Scripted Update Sequence<br />

If you use archives in the advanced stages, the flow of updates might result in more than<br />

one archive loading to achieve the update. In that circumstance, you might want to script<br />

the process so that any overwrites in the import properties are consistently applied in later<br />

stages.<br />

See “Defining Scripts to Automate <strong>Deployment</strong>” on page 81 for information on creating<br />

and applying scripts.<br />

Evaluate Target Overwrites<br />

When <strong>deploy</strong>ment elements reach advanced staging and production, you must decide<br />

whether or not to overwrite on a file match. In the absence of a timestamp, you cannot<br />

choose to have “newer” overwrite “older.” Developer documentation and file<br />

management techniques can make these decisions easier. For example:<br />

● Use comments in XML files to record change history — When you add notes to<br />

XML files (actually, any files), you continue the established programmer tradition of<br />

maintaining change history.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 91


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

● Import without overwrites — When you attempt an import with no overwrites, the log<br />

indicates file matches that were not overwritten. Perform an import with no<br />

overwrites, and then examine the import message log for matched files.<br />

● Export and difference matched files — Examine the content of each of the files in a<br />

text tool. If developers recorded change history, the decision is easy. Otherwise, some<br />

criteria must be applied to decide which files overwrite on import.<br />

As the techniques of importing are in the scope of the import tool, see “Importing<br />

<strong>Deployment</strong> Artifacts into a Domain” on page 105 for more information.<br />

92 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Implementing Domain Builds and Updates<br />

Dump Endpoint Lists and Then Iterating Queue Creation<br />

When a <strong>deploy</strong>ment contains many endpoints and multiple messaging nodes, you might<br />

want to programmatically set the queue endpoints on the appropriate messaging node.<br />

◆ To dump endpoint lists and iterate queue creation:<br />

1. Extract the content of an archive to a temp directory.<br />

2. Create an iterator over the elements in <strong>ESB</strong>\Endpoints\. On each item, examine the file<br />

to see if the type is QUEUE. For each queue item, output its destination value to a list.<br />

3. Create an application based on the <strong>Sonic</strong>MQ ConfigBean/CreateQueue sample that<br />

connects to the domain and then adds (but does not overwrite!) each listed queue.<br />

4. You can tune the queues after they are created (global, clusterwide, size, etc.).<br />

You might have to handle different connection_ref values in separate runs, or a more<br />

robust application.<br />

Manage Imports, Containers, and Installed <strong>Sonic</strong> <strong>Product</strong>s<br />

If you used host names as the management container names, you can add the name of the<br />

product hosted so adding <strong>deploy</strong>ed services to appropriate containers is easier to map. For<br />

example, if you install <strong>Sonic</strong> BPELServer (bpel) on a system named eagle, you could<br />

name the container eagle_bpel.<br />

Evaluate Change Requirements in JavaScript, and ebXML Files<br />

Use a regular expression tool to review sonicfs:// and URL references in documents.<br />

Correct references might be in development or early staging levels. Confirm that<br />

references are correct in the target domain.<br />

Test and Accept or Rollback<br />

You should run a test suite in a target domain that is for advanced staging or production<br />

to ensure that the behaviors expected of the new or updated elements in the change set are<br />

as expected and that nothing else changed. Be prepared to fail a domain update and roll it<br />

back to its previous configuration store.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 93


Chapter 3: Mapping <strong>ESB</strong> Artifacts to Target Domains<br />

94 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 4 Analyzing <strong>ESB</strong> Artifacts in Archives,<br />

Stores, and File Systems<br />

This chapter describes the tools for analyzing <strong>Sonic</strong> <strong>ESB</strong> artifacts and <strong>Sonic</strong>MQ<br />

dependencies in file systems, archives, and Directory Service stores.<br />

This chapter has the following sections:<br />

● “Overview”<br />

● “Reporting Differences”<br />

● “Reporting <strong>Sonic</strong>MQ Dependencies”<br />

● “Reporting on <strong>Sonic</strong>MQ Reverse Dependencies”<br />

● “Reporting on Impact Analysis”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 95


Chapter 4: Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems<br />

Overview<br />

The decoupling of <strong>Sonic</strong> <strong>ESB</strong> artifacts from the underlying messaging infrastructure<br />

means that you must tune the artifacts and their parameters when you import them into a<br />

new domain. To help evaluate the potential changes, <strong>Sonic</strong> provides a set of analysis<br />

reports that extract differences and dependencies into XML files. The analysis reports<br />

discover and document variations in <strong>ESB</strong> artifact files and their content, and reveals<br />

<strong>Sonic</strong>MQ configuration parameters required by <strong>ESB</strong> artifacts.<br />

The analysis commands assess the files in a file store, archive, or directory service in three<br />

categories: XML, text, or binary. In an analysis that offers the -v verbose switch, not<br />

enabling the option provides a Boolean response to differences. A file’s extension<br />

classifies it for analysis and appropriate verbose information, as shown in this table:<br />

File Type Extensions Differencing Verbose [-v]<br />

XML .amap<br />

.bp<br />

.cbr<br />

.<strong>esb</strong>ws<br />

.<strong>esb</strong>db<br />

.prj<br />

.wsdl<br />

.xaction<br />

.xcbr<br />

.xml<br />

.xsd<br />

.xsl<br />

.xslt<br />

Text .bat<br />

.css<br />

.html<br />

.js<br />

.properties<br />

.sh<br />

.txt<br />

.xquery<br />

Binary .bpv<br />

.gif<br />

.jar<br />

.jpg<br />

.xar<br />

any other<br />

extension<br />

Requires XML<br />

equivalence. The order<br />

of elements is not<br />

significant—a series of<br />

tags listed in a different<br />

sequence is treated as<br />

equivalent.<br />

Reports on differences in the<br />

content of XML elements.<br />

The content (payload) of an<br />

element is case sensitive.<br />

XML tag names are not case<br />

sensitive.<br />

Exact textual match. Reported as in a standard text<br />

difference.<br />

Case sensitive.<br />

Exact binary match. Offset into the document of the<br />

first byte difference<br />

96 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Reporting Differences<br />

Reporting Differences<br />

The diff command assesses the difference between two artifact stores. Unlike a generic<br />

differencing engine, the <strong>ESB</strong>Admin diff command only assesses specific filetypes in certain<br />

store types. The stores can be <strong>Sonic</strong> archive files—XAR files—(-xar store type), file<br />

systems (-fs store type), or Directory Service stores (-ds store type).<br />

Differences include:<br />

● Artifacts that are in both stores, yet do not have identical content. You can choose to<br />

identify only that the files are dissimilar or to expose the differences in detail.<br />

● Artifacts that are in the source store, but not in the target store.<br />

● Artifacts that are in the target store, but not in the source store.<br />

The syntax of the diff command in the <strong>Sonic</strong> <strong>ESB</strong> Admin Tool is:<br />

diff -storeType storeParameters -storeType storeParameters<br />

[-out outputFile.xml] [-v]<br />

where:<br />

■ The first -storeType storeParameters identifies the source artifact store, and<br />

the next -storeType storeParameters identifies the target artifact store.<br />

■ storeType is { xar | fs | ds }.<br />

■ storeParameters are:<br />

❑ When storeType is xar, the archive location on a file system<br />

❑ When storeType is fs, the root of the hierarchy on a file system<br />

❑ When storeType is ds, the management connection to a domain in the form:<br />

domain url [username password] [managementNode]<br />

■ outputfile is the preferred target XML file name and location for the analysis<br />

report on the file system. When you do not specify this parameter, the output file<br />

is created as <strong>Sonic</strong>_Diff.xml in the tool’s directory.<br />

■ -v requests verbose reporting.<br />

Examples of diff Commands<br />

● Comparing two XAR files:<br />

<strong>ESB</strong>Admin> diff -xar sourceStore.xar -xar targetStore.xar<br />

● Comparing a XAR file with a Directory Service store:<br />

<strong>ESB</strong>Admin> diff -xar sourceStore.xar -ds Domain1 myHost:2506 aUser aPassword<br />

● Comparing a file system with a XAR file in verbose output:<br />

<strong>ESB</strong>Admin> diff -fs C:/myinstalldir/<strong>ESB</strong> -xar targetStore.xar -v<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 97


Chapter 4: Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems<br />

Reporting <strong>Sonic</strong>MQ Dependencies<br />

The mqdepends command assesses a source artifact store to evaluate and report on the<br />

dependencies of <strong>ESB</strong> artifacts on <strong>Sonic</strong>MQ configuration objects. This information can<br />

then be used to create or verify the existence of the specified dependencies in a target<br />

Directory Service store. The stores can be a <strong>Sonic</strong> archive file, file system, or a Directory<br />

Service store.<br />

<strong>Sonic</strong> <strong>ESB</strong> dependencies on <strong>Sonic</strong>MQ artifacts include:<br />

■ Endpoints for their destination dependencies (topics, queues, or routing).<br />

■ <strong>ESB</strong> connections for <strong>Sonic</strong>MQ connection parameters (and, therefore, the broker<br />

location and port where static destinations must be created.)<br />

The report indicates an <strong>ESB</strong> artifact, and whether the <strong>Sonic</strong>MQ configuration elements<br />

that are its dependencies exist in the target domain.<br />

The command provides parameters so you can constrain the analysis to specified files or<br />

a text document that provides a list of files.<br />

The syntax of the mqdepends command in the <strong>Sonic</strong> <strong>ESB</strong> Admin Tool is:<br />

mqdepends -storeType storeParameters [-out outputFile.xml]<br />

[-include artifact1 [artifact2 ...] | -includeFile artifactListFile]<br />

where:<br />

■ storeType is { xar | fs | ds }.<br />

■ storeParameters are:<br />

❑ When storeType is xar, the archive location of a .xar file on a file system<br />

❑ When storeType is fs, the root of the hierarchy on a file system<br />

❑ When storeType is ds, the management connection to a domain in the form:<br />

domain url [username password] [managementNode]<br />

■ outputfile is the preferred target XML file name and location for the analysis<br />

report on the file system. When you do not specify this parameter, the output file<br />

is created as <strong>Sonic</strong>_Dependency.xml in the tool’s directory.<br />

■ artifact1 artifact2 ... is a series of specific files in the store to analyze.<br />

■ artifactListFile is a text file that provides a list of files in the store to analyze.<br />

98 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Examples of mqdepends Commands<br />

● Producing a dependency report on a XAR file:<br />

<strong>ESB</strong>Admin> mqdepends -xar sourceStore.xar<br />

● Producing a dependency report on a file system:<br />

<strong>ESB</strong>Admin> mqdepends -fs C:/myinstalldir/<strong>ESB</strong><br />

● Producing a dependency report on a Directory Service store:<br />

<strong>ESB</strong>Admin> mqdepends -ds Domain1 myHost:2506 aUser aPassword<br />

● Producing a dependency report on a file system:<br />

<strong>ESB</strong>Admin> mqdepends -fs C:/myinstalldir/<strong>ESB</strong><br />

● Producing a dependency report on specified files:<br />

Reporting <strong>Sonic</strong>MQ Dependencies<br />

<strong>ESB</strong>Admin> mqdepends -fs C:/myinstalldir/<strong>ESB</strong> -include processA svcA svcB<br />

● Producing a dependency report on a list of specific files:<br />

<strong>ESB</strong>Admin> mqdepends -fs C:/myinstalldir/<strong>ESB</strong> -includeFile artifactList.txt<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 99


Chapter 4: Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems<br />

Reporting on <strong>Sonic</strong>MQ Reverse Dependencies<br />

The mqrevdepends command assesses a source artifact store to evaluate and report on the<br />

dependencies of <strong>ESB</strong> artifacts on <strong>Sonic</strong>MQ configuration objects. This information can<br />

then be used to create or verify the existence of the specified dependencies in a target<br />

Directory Service store.<br />

Reverse dependency produces the same set of information as a dependency. But the<br />

information indicates, for each <strong>ESB</strong> artifact, the <strong>Sonic</strong>MQ configuration element on<br />

which it depends.<br />

The store can be a <strong>Sonic</strong> archive file, file system, or a Directory Service store.<br />

The command provides parameters so you can constrain the analysis to specified files or<br />

a text document that provides a list of files.<br />

The syntax of the mqrevdepends command in the <strong>Sonic</strong> <strong>ESB</strong> Admin Tool is:<br />

mqrevdepends -storeType storeParameters [-out outputFile.xml]<br />

[-include artifact1 [artifact2 ...] | -includeFile artifactListFile]<br />

where:<br />

■ storeType is { xar | fs | ds }.<br />

■ storeParameters are:<br />

❑ When storeType is xar, the archive location of a .xar file on a file system<br />

❑ When storeType is fs, the root of the hierarchy on a file system<br />

❑ When storeType is ds, the management connection to a domain in the form:<br />

domain url [username password] [managementNode]<br />

■ outputfile is the preferred target XML file name and location for the analysis<br />

report on the file system. When you do not specify this parameter, the output file<br />

is created as <strong>Sonic</strong>_ReverseDependency.xml in the tool’s directory.<br />

■ artifact1 artifact2 ... is a series of specific files in the store to analyze.<br />

■ artifactListFile is text file that provides a list of files in the store to analyze.<br />

100 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Examples of mqrevdepends Commands<br />

● Producing a reverse dependency report on a XAR file:<br />

Reporting on <strong>Sonic</strong>MQ Reverse Dependencies<br />

<strong>ESB</strong>Admin> mqrevdepends -xar source.xar<br />

● Producing a reverse dependency report on a Directory Service:<br />

<strong>ESB</strong>Admin> mqrevdepends -ds Domain1 myHost:2506 aUser aPassword<br />

● Producing a reverse dependency report on a file system:<br />

<strong>ESB</strong>Admin> mqrevdepends -fs C:/myinstalldir/<strong>ESB</strong><br />

● Producing a dependency report on specified files:<br />

<strong>ESB</strong>Admin> mqrevdepends -fs C:/myinstalldir/<strong>ESB</strong> -artifacts processA serviceA<br />

● Producing a dependency report on a list of specific files:<br />

<strong>ESB</strong>Admin> mqrevdepends -fs C:/myinstalldir/<strong>ESB</strong> -artifactsFile aList.txt<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 101


Chapter 4: Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems<br />

Reporting on Impact Analysis<br />

An impact analysis report combines aspects of “Reporting Differences” and “Reporting<br />

on <strong>Sonic</strong>MQ Reverse Dependencies.” Together, these features define the impact on the<br />

target store that would result from merging the source store into the target store.<br />

Because this report provides impact, the following information is also included:<br />

● If a binary file type is different, the impact analysis report indicates that the file in the<br />

source store will overwrite the one in the target store.<br />

● If a file exists in the source store but not in the target store, the impact analysis report<br />

indicates that a new file will be added to the target store.<br />

However, if a file exists in the target store but not in the source store, it is not reported,<br />

as it is not impacted and will not be affected by any import actions.<br />

● If a dependency indicates that <strong>Sonic</strong>MQ configuration objects must be created, the<br />

impact analysis report describes the requirement.<br />

Conversely, if existing <strong>Sonic</strong>MQ configuration objects are no longer required by<br />

<strong>ESB</strong>, the impact analysis report notes that fact. (There might be non-<strong>ESB</strong> related<br />

references to a <strong>Sonic</strong>MQ configuration.)<br />

The syntax of the impact command in the <strong>Sonic</strong> <strong>ESB</strong> Admin Tool is:<br />

impact -storeType storeParameters -storeType storeParameters<br />

[-out outputFile.xml] [-v]<br />

where:<br />

■ The first -storeType storeParameters identifies the source artifact store, and<br />

the next -storeType storeParameters identifies the target artifact store.<br />

■ storeType is { xar | fs | ds }.<br />

■ storeParameters are:<br />

❑ When storeType is xar, the archive location on a file system<br />

❑ When storeType is fs, the root of the hierarchy on a file system<br />

❑ When storeType is ds, the management connection to a domain in the form:<br />

domainName hostname:port [user password]<br />

■ outputfile is the preferred target XML file name and location for the analysis<br />

report on the file system. When you do not specify this parameter, the output file<br />

is created as <strong>Sonic</strong>_ImpactAnalysis.xml in the tool’s directory.<br />

■ -v requests verbose reporting (otherwise, you get terse reporting).<br />

Assessing impact on a Directory Service store requires a connect command to establish a<br />

connection to the domain prior to running impact.<br />

102 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Examples of the impact Commands<br />

● Reporting the impact of a XAR on a Directory Service store:<br />

Reporting on Impact Analysis<br />

<strong>ESB</strong>Admin> impact -xar sourceStore.xar -ds Domain1 myHost:2506 aUser aPassword<br />

● Reporting the Impact of a file system on a XAR:<br />

<strong>ESB</strong>Admin> impact -fs C:/myinstalldir/<strong>ESB</strong> -xar source.xar<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 103


Chapter 4: Analyzing <strong>ESB</strong> Artifacts in Archives, Stores, and File Systems<br />

104 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 5<br />

Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Chapter 5 contains the following sections:<br />

● “Overview”<br />

● “Backing Up the Domain and Documenting Tests”<br />

● “Using The <strong>Deployment</strong> Archive Import Tool”<br />

● “Importing or Merging <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 105


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Overview<br />

The <strong>deploy</strong>ment import process is based on the existence of target domains and<br />

<strong>deploy</strong>ment files extracted from source Workbench or <strong>deploy</strong>ment domains.<br />

The “Mapping <strong>ESB</strong> Artifacts to Target Domains” chapters described different ways to set<br />

up staging, source control, mapping of archives to target domains, and Directory Service<br />

population.<br />

This chapter discusses the procedures that take a mapped archive (or unmapped export<br />

files in a file store) and import it into the target domain. In this chapter, you see how the<br />

<strong>Sonic</strong> <strong>Deployment</strong> Archive Import Tool helps you create import rules to determine which<br />

files to overwrite and which to ignore.<br />

After developing import rules, the import process can be scripted, as described in<br />

“Defining Scripts to Automate <strong>Deployment</strong>” on page 81.<br />

The “Adapting Imported Services to a Domain” and “Updating a Revised <strong>Deployment</strong>”<br />

chapters discuss the final tuning of the imported <strong>ESB</strong> elements into the target domain, and<br />

the recurrence of the lifecycle when changes in developed applications are ready to update<br />

their previous <strong>deploy</strong>ment artifacts through established processes.<br />

Backing Up the Domain and Documenting Tests<br />

While importing <strong>deploy</strong>ment elements into an existing domain is not difficult, be sure you<br />

can recover the directory service if the updated domain is not accepted.<br />

Preparing a domain for import requires you to either stop and backup (incremental<br />

technique), or restore (build technique) the existing Directory Service. See “Incrementally<br />

Updating or Building Domains” on page 83 for more on these strategies.<br />

When you complete the backup or restoration of the Directory Service, start the container<br />

that hosts the Directory Service and the management broker.<br />

Developers should describe the tests (written as <strong>ESB</strong> services or processes) that verify<br />

their <strong>deploy</strong>ment elements when their work moves from <strong>Sonic</strong> Workbench into a target<br />

environment. Those tests can be added to the project elements packaged with the runtime<br />

<strong>deploy</strong>ment files.<br />

If regression or error conditions cannot be resolved, stop the domain manager and restore<br />

the directory service backup.<br />

106 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using The <strong>Deployment</strong> Archive Import Tool<br />

Using The <strong>Deployment</strong> Archive Import Tool<br />

The <strong>Sonic</strong> <strong>Deployment</strong> Import Tool, when connected to a target domain manager, inserts<br />

selected configuration elements that are in a <strong>deploy</strong>ment archive or file store created by<br />

the <strong>Sonic</strong> <strong>Deployment</strong> Export Tool.<br />

Import properties files define rules to filter incoming elements. You can ignore some files<br />

and, for other files, specify that the imported file overwrite an existing file of the same<br />

identity.<br />

Importing elements from archive files involves:<br />

● Defining import rules for the archive contents<br />

● Updating the selected domain and reviewing logs of actions taken<br />

◆ To start the <strong>Deployment</strong> Import Tool<br />

A system must have <strong>Sonic</strong>MQ and <strong>Sonic</strong> <strong>ESB</strong> Administration Tools installed (these are<br />

included in the <strong>Sonic</strong> Workbench) to run this tool.<br />

1. Check that the target domain manager is running.<br />

2. On the system where you will administrate the import process, start the <strong>Sonic</strong><br />

<strong>Deployment</strong> Import Tool:<br />

■ Under Windows, choose Start > Programs > <strong>Progress</strong> > <strong>Sonic</strong> <strong>8.5</strong> ><br />

Tools > <strong>ESB</strong> <strong>Deployment</strong> Import Tool<br />

■ Under UNIX or Linux, on a system installed with the <strong>Sonic</strong> <strong>ESB</strong> Administration<br />

Tools, open a console window to the <strong>Sonic</strong> <strong>ESB</strong> installation directory, and then<br />

enter: ./bin/<strong>deploy</strong>Import.sh<br />

Setting Import Properties for <strong>ESB</strong> Artifacts into a Domain<br />

The <strong>Deployment</strong> Export Tool lets you select structures of files for inclusion in an export<br />

package. You could not, however, at the time of the export, select which dependent files<br />

would be allowed into the target domain and, for those files that are allowed in, which<br />

should overwrite existing files of the same name and location. That functionality is<br />

defined in import properties—notation of files and branches that should overwrite<br />

existing files and files that should be ignored.<br />

If you choose not to define import properties, the default behavior is assumed—all files<br />

in the <strong>ESB</strong> artifact store are imported but no imported file will overwrite an existing file.<br />

Note The Remote Information access export file that was mapped for the Developer Integration<br />

Testing (DIT) named RIA_DIT.xar after it was mapped is described in these procedures.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 107


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

◆ To define <strong>deploy</strong>ment import properties:<br />

1. Start the <strong>Deployment</strong> Import Tool.<br />

2. Select an exported <strong>Sonic</strong> archive file (*.xar) and click Open. The file displays on the<br />

Archive Elements tab, as in this example using the mapped RIA sample XAR:<br />

(You could select the root of a file store if you chose to export as files in the Export<br />

Tool or used the <strong>ESB</strong> Admin Tool command export fs.)<br />

The elements in the store display with a green square in the lower corner of their icon.<br />

That means that the default behavior will be applied: import the file unless it would<br />

result in overwriting an existing file.<br />

108 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using The <strong>Deployment</strong> Archive Import Tool<br />

3. To construct rules that override the default behavior for folder structures or individual<br />

elements, do the following:<br />

a. To specify the import should overwrite when it encounters a match, select the<br />

item, then choose Overwrite Existing on the menu. After the option is selected,<br />

the selected item has a filled red circle, as illustrated:<br />

b. To specify that the import should overwrite all the files in a branch when they<br />

encounter a file match, select the branch, then choose Overwrite Existing on the<br />

menu. After the option is selected, the selected item’s the branch and any items<br />

in the branch have a filled red circle, as illustrated:<br />

c. To ignore a file specified to overwrite at the branch level, click on the file, and<br />

then choose Ignore, as illustrated:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 109


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

d. You can click on the folder level and then choose Reset to clear the effect of the<br />

selection on that folder. In this series of examples, the files set to overwrite are<br />

cleared. The file-specific override to ignore stays in effect, as illustrated:<br />

After you tune your import properties, the Properties tab presents the text representation<br />

of the import properties settings you apply in this example:<br />

110 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using The <strong>Deployment</strong> Archive Import Tool<br />

These defined import properties can be applied immediately. The following illustration<br />

shows the graphic representation of the overwrite and ignore options that can be applied<br />

to the example, RIA_DIT.xar:<br />

Saving a <strong>Deployment</strong> Import Property File<br />

You can store a defined set of import properties for reuse in later sessions or distribution<br />

of the packaged <strong>ESB</strong> artifacts. Choose Properties > Save to start the save process. The<br />

resulting import file for the example used here is named RIA_DIT_Import.xml so that it can<br />

be reapplied through a script in a subsequent import with the <strong>ESB</strong> Admin Tool.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 111


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Importing an <strong>ESB</strong> Artifact Store Into a Domain<br />

After you establish (or open a saved) import properties file, the import process into a<br />

domain is a straightforward task that logs actions and anomalies.<br />

Note An <strong>ESB</strong> artifact store can be imported to more than one target domain. You can define an<br />

import properties file unique to each target domain.<br />

◆ To import a <strong>deploy</strong>ment <strong>ESB</strong> artifact store into a domain:<br />

1. Start the <strong>Deployment</strong> Import Tool, as described on page 107.<br />

2. Open the <strong>ESB</strong> artifact store you want to import, as follows:<br />

■ Open an archive file by choosing File > Open XAR. Select an exported <strong>Sonic</strong><br />

archive file (*.xar) and click Open.<br />

■ Open a file store by choosing File > Open File System. Select the root of an<br />

exported <strong>Sonic</strong> <strong>ESB</strong> artifact file store and click Open.<br />

3. To overwrite or ignore any of the content, define import properties or open an existing<br />

import file, as described on page 108.<br />

4. Choose Domain > Connect. In the Domain Connection dialog box, enter the<br />

connection information for the domain to which you want to import configurations.<br />

5. Select Actions > Import.<br />

The files selected are imported into the domain.<br />

112 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Validating Imported Elements<br />

Using The <strong>Deployment</strong> Archive Import Tool<br />

You should confirm the imported elements, especially if you ignored some elements on<br />

the import.<br />

Another case for validation is when you are not sure if the export process ignored reported<br />

errors. See the example of error handling during export in Step a on page 46.<br />

A good technique to resolve missing elements is to initiate an export from the target<br />

domain of the elements that have dependencies to see if they indicate that any of their<br />

dependent elements are missing.<br />

Validation, however, is not a substitute for a test plan that exercises the features of the new<br />

and revised (or impacted) services together with a delineation of the expected results of<br />

each set of test parameters and actions. You can build your plan and any associated<br />

services or test applications and store them in <strong>Sonic</strong>FS so they can travel in a <strong>deploy</strong>ment<br />

archive. You can create an additional project folder for test plans as they are relevant in<br />

both development and <strong>deploy</strong>ment domains.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 113


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Viewing Messages<br />

You can choose View > Messages to review the sequence of steps taken by the import tool.<br />

The entries are date stamped and have colored alert flags, as shown:<br />

Indicator flags call out the alert levels of the line item, as described:<br />

● Yellow flags indicate warnings.<br />

● Red flags indicate errors, and when appropriate, provide a trace tab in the Message<br />

Details dialog box that opens when you double click on a message line.<br />

● Green markers set off the start and end points of actions.<br />

Messages that do not have indicator flags are informational only.<br />

Saving Import Messages to File as an Import Log<br />

When you view import messages, you can save the messages as a log of the import<br />

procedures that have been recorded in the current session of the <strong>Deployment</strong> Import Tool.<br />

114 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


◆ To save the import messages:<br />

Using The <strong>Deployment</strong> Archive Import Tool<br />

1. In the Messages window, click the Save Messages to File button:<br />

2. Enter a location and name for the text file in the Save Messages dialog box.<br />

3. Click Save.<br />

Remove Import Messages<br />

You can delete a message or range of import messages in the Messages window.<br />

◆ To remove import messages:<br />

1. In the Messages window, click the message or range of import messages you want to<br />

remove.<br />

2. Click the Remove Message button:<br />

The selected import message is removed.<br />

Displaying an Import Message’s Details In a Dialog Box<br />

You can view an import message in a dialog box.<br />

◆ To display an import message’s details:<br />

1. In the Messages window, click a message that you want to see in a dialog box.<br />

2. Click the Message Details button:<br />

3. After you review the message details, click Close to close the dialog box.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 115


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Importing or Merging <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool<br />

The <strong>Sonic</strong> <strong>ESB</strong> command line tool, <strong>ESB</strong> Admin Too, adds <strong>ESB</strong> artifacts in a <strong>Sonic</strong><br />

Archive or a file store to a target domain.<br />

Note See the “<strong>Sonic</strong> <strong>ESB</strong> Tools and Samples” chapter of the <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong><br />

Configuration and Management <strong>Guide</strong> for more information on this tool.<br />

Starting the <strong>ESB</strong> Admin Tool<br />

On the system where you will run the import process, start the <strong>ESB</strong> Admin Tool:<br />

● Under Windows, choose:<br />

Start > Programs > <strong>Progress</strong> > <strong>Sonic</strong> <strong>8.5</strong> > Tools > <strong>ESB</strong> Admin Tool<br />

● Under UNIX or Linux, on a system installed with the <strong>Sonic</strong> <strong>ESB</strong> Administration<br />

Tools, open a console window to the <strong>Sonic</strong> <strong>ESB</strong> installation directory, and enter:<br />

./bin/<strong>esb</strong>admin.sh<br />

The <strong>ESB</strong> Admin Tool opens. For a list of commands, enter: <strong>ESB</strong>Admin> help (or ?).<br />

Connecting to the Target Domain<br />

All import actions require that you open the archive and then establish connection to the<br />

target domain. Enter the connection data for the domain using the syntax:<br />

connect domain url [username] [password] [managementNode]<br />

For example:<br />

<strong>ESB</strong>Admin> connect Domain1 localhost:2506 Administrator Administrator<br />

Using Import Properties<br />

When you use the <strong>Deployment</strong> Import Tool, the rules you define to overwrite or ignore<br />

specified files or folders can be saved. (See “Saving a <strong>Deployment</strong> Import Property File”<br />

on page 111). That file can be used on subsequent imports with either the <strong>Deployment</strong><br />

Import Tool or the <strong>ESB</strong> Admin Tool import commands.<br />

You can edit an import properties file. Start with an existing rules file that has some ignore<br />

and some overwrite settings to observe the syntax of the import properties.<br />

116 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the Import Archive Command<br />

Importing or Merging <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool<br />

The import archive command syntax reads an archive file, and, optionally, a related<br />

import properties file in its command line:<br />

<strong>ESB</strong>Admin> import archive source.xar [import_prop.xml | override ]<br />

where:<br />

■ souce.xar is the path and name of the file (using the .xar extension) of the<br />

<strong>deploy</strong>ment archive package to be imported.<br />

■ One of the following arguments is used:<br />

❑ import-prop.xml — When an appropriate import properties file exists, you<br />

can use its location as a parameter of the command to apply the defined<br />

overwrite and ignore settings.<br />

❑ override — Import everything in the archive file with overwrite set to true.<br />

As an example, you might import the RIA export archive and use the defined import<br />

properties file (when the archive and the import properties file are at the <strong>ESB</strong> installation<br />

root) as:<br />

<strong>ESB</strong>Admin> import archive C:\RIA_DIT.xar C:\RIA_DIT_Import.xml<br />

Using the Import FS Command<br />

When the source store is a file store, use the import fs command.Its syntax reads a file<br />

system structure, and, optionally, a related import properties file in its command line:<br />

<strong>ESB</strong>Admin> import fs sourceFileStore [import_prop.xml | override ]<br />

where:<br />

■ sourceFileStore is the root of the file system hierarchy that contains the files to<br />

be imported into the connected Directory Service’s store.<br />

■ One of the following arguments is used:<br />

❑ import-prop.xml — When an import properties file exists, it can be applied<br />

as a parameter of the command to apply the defined overwrite and ignore<br />

settings.<br />

❑ override — Import everything in the file system file with overwrite set to<br />

true.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 117


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Using the Merge Command<br />

An alternative to the import command is the merge command. It performs the action of<br />

applying the source store to the target store, and while it replaces <strong>ESB</strong> artifacts that are<br />

different in the target store and adds <strong>ESB</strong> artifacts that are new to the target store, it does<br />

not overwrite existing, unchanged files.<br />

The syntax of the merge command of one store into another in the <strong>ESB</strong> Admin Tool is:<br />

merge -storeType storeParameters -storeType storeParameters<br />

-out outputFile.xml<br />

[-v]<br />

where:<br />

■ The first -storeType storeParameters identifies the source artifact store, and<br />

the next -storeType storeParameters identifies the target artifact store.<br />

■ storeType is { xar | fs | ds }.<br />

■ storeParameters are:<br />

❑ When storeType is xar, the archive location on a file system<br />

❑ When storeType is fs, the root of the hierarchy on a file system<br />

❑ When storeType is ds, the management connection to a domain in the form:<br />

domain url [username password] [managementNode]<br />

■ outputfile is the target XML file name for the post-merge impact report on the<br />

file system.<br />

■ -v requests verbose reporting.<br />

Examples of merge Commands<br />

● Merging a XAR into a Directory Service store:<br />

<strong>ESB</strong>Admin> merge -xar sourceStore.xar -ds Domain1 myHost:2506 aUser aPassword<br />

● Merging a file system into a XAR:<br />

<strong>ESB</strong>Admin> merge -fs C:/<strong>ESB</strong>_install_dir/<strong>ESB</strong> -xar targetStore.xar<br />

118 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using Merge for Multiple Stores<br />

Importing or Merging <strong>ESB</strong> Artifacts With the <strong>ESB</strong> Admin Tool<br />

The merge command enables a merge of two source stores into a target store. As a result,<br />

the target store is acted on but the two source stores are not modified. The source and<br />

target stores can be XAR files, file systems, or Directory Service stores.<br />

The syntax of the merge command of one store into another in the <strong>ESB</strong> Admin Tool is:<br />

merge -sourceStore1Type sourceStore1Parameters<br />

-sourceStore2Type sourceStore2Parameters<br />

-targetStoreType targetStoreParameters<br />

-out outputFile.xml<br />

[-v]<br />

where:<br />

■ sourceStore1 and sourceStore2 are the sources of the <strong>ESB</strong> artifacts to be merged<br />

into the target.<br />

■ targetStore is the target store where sourceStore1 is merged and then<br />

sourceStore2 is merged.<br />

■ storeType is { xar | fs | ds }.<br />

■ storeParameters are:<br />

❑ When storeType is xar, the archive location on a file system<br />

❑ When storeType is fs, the root of the hierarchy on a file system<br />

❑ When storeType is ds, the management connection to a domain in the form:<br />

domain url [username password] [managementNode]<br />

■ outputfile is the target XML file for the post-merge report on the file system.<br />

■ -v requests verbose reporting.<br />

Examples of merge Commands on Multiple Stores<br />

● Performing a merge of a XAR and a DS into a target XAR:<br />

<strong>ESB</strong>Admin> merge -xar sourceStore.xar<br />

-ds domain url [username password] [managementNode]<br />

-xar targetStore.xar<br />

● Merging a XAR and a file system into a target file system:<br />

<strong>ESB</strong>Admin> merge -xar source.xar -fs C:/source_dir/<strong>ESB</strong> -fs C:/target_dir/<strong>ESB</strong><br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 119


Chapter 5: Importing <strong>Deployment</strong> Artifacts into a Domain<br />

Importing Configurations using the <strong>ESB</strong> Admin Tool<br />

You can use the <strong>ESB</strong> Admin Tool to import connections and endpoints into a domain’s<br />

Directory Service store.<br />

◆ To import connection types into a domain:<br />

1. Start the <strong>ESB</strong> Admin Tool.<br />

2. Connect to the target domain’s management broker.<br />

3. Enter:<br />

import connectionType path_to_the_file [override]<br />

where:<br />

■ path_to_the_file is the pathname to the connection type XML configuration file<br />

■ the optional override parameter enables overwrite of a matching configuration.<br />

4. Confirm the new connection type configurations in the Directory Service by listing<br />

the stored connection types. Enter:<br />

list connectionType<br />

◆ To import endpoint types into a domain:<br />

1. Start the <strong>ESB</strong> Admin Tool.<br />

2. Connect to the target domain’s management broker.<br />

3. Enter:<br />

import endpointType path_to_the_file [override]<br />

where:<br />

■ path_to_the_file is the pathname to the endpoint type XML configuration file<br />

■ the optional override parameter enables overwrite of a matching configuration.<br />

4. Confirm the new endpoint type configurations in the Directory Service by listing the<br />

stored endpoint types. Enter:<br />

list endpointType<br />

Closing the Domain Connection and Stopping the <strong>ESB</strong> Admin Tool<br />

After you complete your import tasks with the <strong>ESB</strong> Admin Tool, close the administrative<br />

connection to the target domain. Enter:<br />

<strong>ESB</strong>Admin> disconnect<br />

To stop the <strong>ESB</strong> Admin Tool, enter:<br />

<strong>ESB</strong>Admin> exit (or bye)<br />

120 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 6<br />

Adapting Imported Services to a Domain<br />

Chapter 6 contains the following sections:<br />

● “Scoping the Required Adaptation Tasks”<br />

● “Binding <strong>ESB</strong> Services to Messaging Nodes”<br />

● “Updating Security”<br />

● “Enabling and Updating <strong>Sonic</strong> <strong>ESB</strong> Service Containers”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 121


Chapter 6: Adapting Imported Services to a Domain<br />

Scoping the Required Adaptation Tasks<br />

When you move <strong>deploy</strong>ment elements into a new domain, you might need to map some<br />

parameters to the new domain while other parameters might not require modification<br />

when moving one domain to another.<br />

The following checklists provide a way to scope the requirements for tailoring and<br />

adapting imported archives, depending on the target environment and its maturity:<br />

● “<strong>Deployment</strong> to a Unified Staging <strong>Deployment</strong>”<br />

● “<strong>Deployment</strong> to a Distributed Staging or <strong>Product</strong>ion <strong>Deployment</strong>”<br />

122 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


<strong>Deployment</strong> to a Unified Staging <strong>Deployment</strong><br />

Scoping the Required Adaptation Tasks<br />

When you move archives move into unified testing, consider the following requirements:<br />

[ ] Are the required <strong>deploy</strong>ment products installed?<br />

If not, see <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong>.<br />

[ ] Is this a build domain? If so, has the base level DS been restored?<br />

If so, see “Using the Build Strategy on a Static Target Domain” on page 87.<br />

[ ] Is there a tailoring rules file for creating a map for this archive for this domain?<br />

If so, see “Adjusting Tailoring Rules to Apply When Creating Map Files” on page 67.<br />

[ ] Is there a map file for mapping this archive for this domain?<br />

If so, see “Applying Tailoring Rules and Creating a Map File for an Archive” on<br />

page 73.<br />

[ ] Does the test team plan to use localhost:2506?<br />

If not, see “Binding Connections to Host Ports in the New Domain” on page 125.<br />

[ ] Were any custom acceptors created?<br />

If so, see “Binding Connections to Host Ports in the New Domain” on page 125.<br />

[ ] Were the management user and password modified?<br />

If not, see “Reconciling Users and Groups to Authentication Domains” on page 131.<br />

[ ] Was the pattern of ACLs changed?<br />

If so, “Reconciling Endpoint Access and QoP to Authorization Policies” on page 131.<br />

[ ] Are there any new queues?<br />

If so, see “Binding the Endpoints in the New Domain” on page 128.<br />

[ ] Do you want to force overwriting on file matches?<br />

If so, “Setting Import Properties for <strong>ESB</strong> Artifacts into a Domain” on page 107.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 123


Chapter 6: Adapting Imported Services to a Domain<br />

<strong>Deployment</strong> to a Distributed Staging or <strong>Product</strong>ion <strong>Deployment</strong><br />

When <strong>deploy</strong>ing to a distributed <strong>deploy</strong>ment environment, consider the following:<br />

[ ] Is the domain manager configured?<br />

If so, see <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong>.<br />

[ ] Are messaging nodes configured?<br />

If so, see <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong>.<br />

[ ] Are the tools installed on an administrative system?<br />

If so, see <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong>.<br />

[ ] Are the required <strong>deploy</strong>ment products installed for services?<br />

If so, see <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong>.<br />

[ ] Is there a tailoring rules file for creating a map for this archive for this domain?<br />

If so, see “Adjusting Tailoring Rules to Apply When Creating Map Files” on page 67.<br />

[ ] Is there a map file for mapping this archive for this domain?<br />

If so, see “Applying Tailoring Rules and Creating a Map File for an Archive” on<br />

page 73.<br />

[ ] What host port or connection list will be used for administrative connections?<br />

See “Binding Connections to Host Ports in the New Domain” on page 125.<br />

[ ] What HTTP URLs are used by <strong>ESB</strong> Services <strong>deploy</strong>ed as Web Services?<br />

See “Binding Connections to Host Ports in the New Domain” on page 125.<br />

[ ] What are the acceptors in the new domain?<br />

See “Binding Connections to Host Ports in the New Domain” on page 125.<br />

[ ] What is the management user and password in the new domain?<br />

See “Reconciling Users and Groups to Authentication Domains” on page 131.<br />

[ ] Was the pattern of ACLs changed?<br />

If so, “Reconciling Endpoint Access and QoP to Authorization Policies” on page 131.<br />

[ ] Are there any new queues?<br />

If so, see “Binding the Endpoints in the New Domain” on page 128.<br />

[ ] Do you want to force overwriting on file matches?<br />

If so, “Setting Import Properties for <strong>ESB</strong> Artifacts into a Domain” on page 107.<br />

124 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Binding <strong>ESB</strong> Services to Messaging Nodes<br />

Binding <strong>ESB</strong> Services to Messaging Nodes<br />

You can import configurations into a domain that consists of only an <strong>ESB</strong>-aware domain<br />

manager. However, a distributed <strong>deploy</strong>ment environment typically constrains the domain<br />

manager’s messaging traffic to management traffic. Distributed broker installations are<br />

assigned to handle message traffic.<br />

Setting Up Distributed Messaging Nodes<br />

One of the first steps required after importing a <strong>deploy</strong>ment archive is binding<br />

connections and endpoints defined in <strong>ESB</strong> services to the new domain’s messaging<br />

environment. Often new messaging brokers are defined and <strong>deploy</strong>ed to host the<br />

connections and endpoints, especially in the initial stages of a distributed rollout. After<br />

the brokers are set up and configured, you can bind the connections and endpoints to the<br />

domain.<br />

See “Installing <strong>Sonic</strong>MQ Messaging Nodes in the Domain” in the <strong>Progress</strong> <strong>Sonic</strong><br />

Installation and Upgrade <strong>Guide</strong> for basic instructions on installing a messaging node.<br />

The administrator of the domain can set up broker clusters, fault tolerant brokers, and<br />

establish location-specific encryption and activation mechanisms for the <strong>deploy</strong>ed<br />

messaging nodes. See <strong>Sonic</strong>MQ <strong>Deployment</strong> <strong>Guide</strong> for details on broker architectures and<br />

topologies.<br />

Binding Connections to Host Ports in the New Domain<br />

After the messaging nodes are installed, you can bind the <strong>ESB</strong> connections defined in<br />

<strong>Sonic</strong>MQ Endpoints to acceptors on messaging nodes in the new domain.<br />

Important When you initially <strong>deploy</strong> into a new domain, be sure that you bind to connections on<br />

brokers in the new domain instead of perpetuating connections to messaging nodes in the<br />

source domain.<br />

The <strong>ESB</strong> connections such as http_defaultConnection and jms_defaultConnection are<br />

defined once in a domain. If you are hosting <strong>ESB</strong> services in a domain for the first time,<br />

you need to revise the connection URLs of the default <strong>ESB</strong> connections to the protocol,<br />

host, and port for corresponding acceptors set up on the stated host.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 125


Chapter 6: Adapting Imported Services to a Domain<br />

In the following illustration, the protocol, host, and port defined for the acceptor<br />

TCP_ACCEPTOR on the messaging node installed as Broker100 are entered as the Connection<br />

URL for the http_defaultConnection <strong>ESB</strong> connection:<br />

The connections defined for <strong>ESB</strong> endpoints must bind to brokers on ports where the<br />

specified connection protocol is supported.<br />

You can run analysis reports for <strong>Sonic</strong>MQ dependencies and the impact of the <strong>deploy</strong>ment<br />

on a domain to reveal the acceptors required by connections. Refer to the following<br />

sections:<br />

● “Reporting <strong>Sonic</strong>MQ Dependencies” on page 98<br />

● “Reporting on <strong>Sonic</strong>MQ Reverse Dependencies” on page 100<br />

● “Reporting on Impact Analysis” on page 102<br />

126 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


◆ To bind connections to host ports in the new domain:<br />

Binding <strong>ESB</strong> Services to Messaging Nodes<br />

1. Connect the <strong>Sonic</strong> Management Console to the domain that is the import target.<br />

2. On the Configuration tab, expand the broker that you want to use as a messaging<br />

node.<br />

3. Click on Acceptors to view the acceptors and their properties.<br />

4. Decide which acceptor you want to use for the <strong>ESB</strong> endpoint connection.<br />

5. In the <strong>ESB</strong> Configured Objects section, expand the Endpoints folder and click on<br />

<strong>Sonic</strong>MQ Endpoint.<br />

6. Select the Connections tab.<br />

7. Click on each Connection Name to view its parameters.<br />

8. Change the Connection URL to the acceptor you identified in Step 3. You can provide<br />

a comma-delimited list of connections. See the <strong>Sonic</strong>MQ Configuration and<br />

Management <strong>Guide</strong> for more about connection lists.<br />

9. Click Apply.<br />

10. Repeat for each connection name as required.<br />

The security parameters on the connection for authentication and SSL parameters are<br />

discussed in the <strong>Sonic</strong>MQ Configuration and Management <strong>Guide</strong>.<br />

Custom Connections<br />

If any connections were defined other than (or instead of) the default ones, you should<br />

review them before you start an import to determine whether to allow the import to<br />

overwrite existing connection definitions of the same name.<br />

Generally, it is a good practice to let individual applications define their own connection<br />

names even if they will resolve to the same acceptor used by other connections.<br />

The following screen excerpt shows two custom connection definitions:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 127


Chapter 6: Adapting Imported Services to a Domain<br />

Binding the Endpoints in the New Domain<br />

After you bind the <strong>Sonic</strong>MQ endpoints to a messaging broker host port, you must set up<br />

any queues required as endpoints on that broker. Because queues are static objects, they<br />

must exist in order to be used. Topics are dynamic and as such are created as needed on<br />

the messaging node.<br />

Important Security authorization policies let you define read and write permissions for<br />

authenticated users on both queues and topics. These policies also let you specify the<br />

requirements for messages to and from a specified endpoint to use encryption techniques.<br />

See “Reconciling Endpoint Access and QoP to Authorization Policies” on page 131.<br />

In this illustration, the endpoint myQ001 defines its Queue Destination Name as Q001 on the<br />

connection myCorp_NodeB. In this target domain, the node named NodeB is Broker100, so<br />

a queue named Q001 was created on Broker100. When routing definitions on other brokers<br />

specify NodeB, messages sent to NodeB::Q001 are routed to Broker100’s Q001.<br />

128 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Binding <strong>ESB</strong> Services to Messaging Nodes<br />

You can run analysis reports for <strong>Sonic</strong>MQ dependencies and the impact of the <strong>deploy</strong>ment<br />

on a domain to reveal the destinations required by endpoints. Refer to the following<br />

sections:<br />

● “Reporting <strong>Sonic</strong>MQ Dependencies” on page 98<br />

● “Reporting on <strong>Sonic</strong>MQ Reverse Dependencies” on page 100<br />

● “Reporting on Impact Analysis” on page 102<br />

Setting Queue Parameters<br />

Queues have parameters that give them flexibility in the <strong>deploy</strong>ment topology:<br />

● Size and threshold — Controls the in-memory queue size and its save threshold<br />

● Global — Lets other messaging nodes send to the queue<br />

● Exclusive — Allows only one active receiver<br />

● Clusterwide — Defines a queue on all members of a cluster<br />

For more information about queue parameters, see the <strong>Sonic</strong>MQ <strong>Deployment</strong> <strong>Guide</strong> and<br />

the <strong>Sonic</strong>MQ Configuration and Management <strong>Guide</strong>.<br />

You can examine a <strong>deploy</strong>ment archive in the <strong>Deployment</strong> Import Tool to determine<br />

whether endpoints are defined that specify queues that do not exist on the broker specified<br />

for the endpoint’s connection.<br />

◆ To establish queues on messaging nodes that bind to endpoints in the new domain:<br />

1. Connect the <strong>Sonic</strong> Management Console to the domain that is the import target.<br />

2. On the Configuration tab, expand the broker that you want to use as a messaging<br />

node.<br />

3. Click on Queues to view the queues and their properties.<br />

4. In the <strong>ESB</strong> Configured Objects section, expand the Endpoints folder and select<br />

<strong>Sonic</strong>MQ Endpoint.<br />

5. On the Endpoints tab, select each new Endpoint Name to view its parameters.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 129


Chapter 6: Adapting Imported Services to a Domain<br />

6. If the JMS Destination Type is Queue, determine whether that queue exists on the<br />

target broker. If it does not exist, click Create Queue.<br />

7. Choose the broker from the list of brokers defined for connections. The queue is<br />

configured on the broker you select. Click OK.<br />

8. Repeat for each endpoint name as required.<br />

The security parameters on the destination for authorization and QoP are discussed in<br />

“Reconciling Endpoint Access and QoP to Authorization Policies” on page 131.<br />

Routing Nodes<br />

When WSDL definitions have routing definitions that use the node syntax (such as<br />

sonic://NodeB/Q1), you might have to establish the routing definition in the new domain.<br />

You could either revise the WSDL to use a different syntax or to create the node definition<br />

in the new domain. While the node does not have to be in the new domain, be sure that it<br />

is in the correct context for the new domain; that is to say, if the node was defined as<br />

another Workbench in development and you are moving into advanced staging, the node<br />

should be redefined as a node in the advanced staging or production infrastructure.<br />

130 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Updating Security<br />

Updating Security<br />

Security in a domain has a set of interdependencies that make it an important aspect of the<br />

initial creation of a domain and messaging nodes. You should plan what security you will<br />

use and implement the plan as you define the domain and messaging nodes.<br />

There are many aspects of security to consider:<br />

● When you use authentication, you must:<br />

■ Consider whether to use external authentication and the login SPI.<br />

■ Create the users and passwords in the default authentication domain, or use a<br />

different authentication domain.<br />

■ For SSL, configure the provider, acceptors, and—if you use certificates—the<br />

certificate management and certificate revocation lists.<br />

● When you use Quality of Protection, the cipher suite for encryption<br />

● When you use authorization, defining authorization policies<br />

See the <strong>Sonic</strong>MQ <strong>Deployment</strong> <strong>Guide</strong> section on implementing security in a domain.<br />

Note Channel Encryption and External Authentication — See the <strong>Sonic</strong>MQ <strong>Deployment</strong><br />

<strong>Guide</strong> and the <strong>Sonic</strong>MQ Configuration and Management <strong>Guide</strong> for details about SSL<br />

parameters, HTTPS, QoP, and the Login SPI.<br />

Reconciling Users and Groups to Authentication Domains<br />

<strong>Sonic</strong>MQ endpoint connections specify a user and password. You must either create the<br />

user and password information in the target domain or change the <strong>ESB</strong> connection user<br />

and password to one that exists in the target domain.<br />

Reconciling Endpoint Access and QoP to Authorization Policies<br />

Access control and Quality of Protection (QoP) is enforced by authorization policies in<br />

the target domain. Unless you set up patterns that will apply appropriate policies to new<br />

queues, topics, and routings, you must modify the ACLs in the target domain to provide<br />

your preferred pattern of permissions.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 131


Chapter 6: Adapting Imported Services to a Domain<br />

Enabling and Updating <strong>Sonic</strong> <strong>ESB</strong> Service Containers<br />

Once the messaging nodes are established for the connections and endpoints in the target<br />

domain, the distributed systems and containers can be implemented.<br />

Installing Distributed Systems with <strong>Deployment</strong> Software<br />

On the computer systems that will run the services being <strong>deploy</strong>ed, install the appropriate<br />

software for the services. For example, the software for <strong>ESB</strong> requires installing the<br />

<strong>Sonic</strong>MQ Container feature and then installing the <strong>Sonic</strong> <strong>ESB</strong> Container feature. See<br />

<strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade <strong>Guide</strong> for instructions on all <strong>deploy</strong>ment<br />

installations. The <strong>Sonic</strong> Installer requires that you use <strong>deploy</strong>ment licenses to install<br />

distributed components.<br />

Determine what <strong>ESB</strong> Containers need to be installed from the archive. When you create<br />

<strong>ESB</strong> Containers on distributed systems, the installation creates the named <strong>ESB</strong> Container<br />

and a similarly named management container. The remote installation registers the<br />

installation in the Directory Service and creates its boot file. It can run but has no assigned<br />

services.<br />

Then, when you import the archive, the <strong>ESB</strong> Container and any associated services and<br />

classpaths can overwrite the <strong>deploy</strong>ed <strong>ESB</strong> Container to complete the service<br />

configuration.<br />

Checking for Elements That Might Not Have Been Exported<br />

Chapter 1, “Introduction,” described how <strong>deploy</strong>ment archives can package all the files<br />

needed to transfer between development domains or move into <strong>deploy</strong>ment.<br />

Elements that need adjustment in the target domain are:<br />

● Classes External to <strong>Sonic</strong>FS — If you did not import additional classes or JAR files<br />

and include them in the <strong>deploy</strong>ment package, they must be moved to the <strong>deploy</strong>ment<br />

domain and relocated in the same relative position to the <strong>Sonic</strong> installation as they<br />

were in the source domain.<br />

● <strong>ESB</strong>DB Scripts and <strong>ESB</strong>WS WSDL Files External to <strong>Sonic</strong>FS — <strong>ESB</strong>DB scripts and<br />

<strong>ESB</strong>WS WSDL files can be stored on a file system outside the Directory Service.<br />

When that is the case, these files are not exported by the <strong>deploy</strong>ment tool. You can<br />

choose to add them into <strong>Sonic</strong>FS as runtime elements. You might need to relocate<br />

them in the target domain to the same relative location outside <strong>Sonic</strong>FS in the target<br />

domain after importing them.<br />

132 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Enabling and Updating <strong>Sonic</strong> <strong>ESB</strong> Service Containers<br />

● GUI Properties Files and Images External to <strong>Sonic</strong>FS — Applications that use<br />

graphical components, such as properties files and images, cannot access their files<br />

when they are in <strong>Sonic</strong>FS. These files are not exported unless you make a point of<br />

doing so. If you do not package them, they must be moved to the <strong>deploy</strong>ment domain<br />

and relocated in the same relative position to the <strong>Sonic</strong> installation as they were in the<br />

source domain.<br />

Tuning the Imported Services<br />

Some elements are not bound to configuration objects in a <strong>Sonic</strong> domain. You could be<br />

referencing sample Web locations that will be consistently used in development, staging,<br />

and perhaps even in production.<br />

References to Files by URL in XSLT Files<br />

XSLT files that reference other files in <strong>Sonic</strong>FS must be edited to correct the URL<br />

references to appropriate references in the new domain.<br />

Endpoints and Services Referenced in Code or in JavaScript Files<br />

Endpoints and services that are referenced in application code or in JavaScript files might<br />

need to be adapted in the new domain by creating queues. For example, an async dispatch<br />

to an endpoint effectively references the endpoint. That means that the destination and<br />

connection of that endpoint must exist in the <strong>deploy</strong>ment domain.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 133


Chapter 6: Adapting Imported Services to a Domain<br />

Tuning BPEL Server <strong>Deployment</strong>s<br />

A <strong>Progress</strong> <strong>Sonic</strong> BPEL Server installation for <strong>deploy</strong>ment and its configurations in the<br />

<strong>deploy</strong>ment domain adapt the BPEL services to their runtime environment.<br />

Specifying Persistence<br />

A <strong>Sonic</strong> BPEL Server installation can be set to persist its data in one of three ways:<br />

● When you choose memory, be sure that adequate memory is available on the target<br />

systems after allowing for the operating system, enterprise resources, and JVM<br />

memory usage.<br />

● When you choose embedded storage, specifying a storage directory will establish<br />

the store locally on each system where the BPEL server runs. Be sure that there is<br />

adequate disk space to accommodate the store. It is recommended that the data<br />

storage directory is a different directory from the BPEL service staging directory so<br />

that the staging directory can be easily deleted and recreated as needed.<br />

● When you choose your other database, you can specify oracle or mysql:<br />

■ For oracle, set the Oracle SID, the machine name, port, user name, and password.<br />

■ For mysql, set the database name, host name, port, user name, and password.<br />

Using a Callback URL<br />

MyRole is the local endpoint for a partner link defined by the process. It is used by the<br />

BPEL Server in the following two cases:<br />

● ReplyTo / Fault To for outbound invocations when asynchronous transport is used.<br />

● Explicit assignment from a myRole of a partner link. The value is determined using the<br />

service configured CallBack URL.<br />

You must also create a corresponding HTTP Direct acceptor (on the broker’s<br />

configuration) and a WebServices Protocol configuration so that messages sent to the<br />

callbackURL are routed to the BPEL Service entry endpoint.<br />

Monitoring Destinations for Processing Replies<br />

To monitor processing replies:<br />

● Two temporary queues are used, one for synchronous replies and one for<br />

asynchronous replies. Operations that are bound to <strong>ESB</strong> use synchronous replies.<br />

● The format of temporary queue names uses the pattern:<br />

container_name.service_name.queue_name<br />

134 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Enabling and Updating <strong>Sonic</strong> <strong>ESB</strong> Service Containers<br />

where queue_name is either replies.async or replies.sync.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 135


Chapter 6: Adapting Imported Services to a Domain<br />

Setting the Number of Listener Threads<br />

The number of listeners for a BPEL Service needs to account for the expected number of<br />

concurrently active receives with corresponding replies. A receive with a corresponding<br />

reply blocks the listener thread until the reply is produced. A single process could have<br />

multiple receive/reply pairs; and could therefore block multiple listener threads. If there<br />

aren't enough listeners available a process could deadlock. Asynchronous interactions<br />

(one way with an invoke callback rather than a reply) do not tie up a listener thread.<br />

The optimal number of threads is one more than the number of threads required by each<br />

receive in a BPEL server instance times the number of allowed concurrent receives to the<br />

instance. For example, if the developer notes that a BPEL Service requires two threads<br />

and you expect no more than five receives to be running concurrently, set the number of<br />

listener threads to eleven.<br />

For more information, see the <strong>Progress</strong> <strong>Sonic</strong> Workbench User <strong>Guide</strong> in the Eclipse help.<br />

Invoking a BPEL Service from an Itinerary using <strong>ESB</strong>PEL or <strong>ESB</strong>WS<br />

A BPEL Service can be invoked from an itinerary using either an <strong>ESB</strong>PEL file or an<br />

<strong>ESB</strong>WS file:<br />

● Using an <strong>ESB</strong>PEL — Can invoke any process or partner link in a <strong>deploy</strong>ed BPAR. No<br />

need for a public WSDL or any binding information. Script executes in the BPEL<br />

Service on its listener thread.<br />

● Using an <strong>ESB</strong>WS — Requires concrete port and binding information in the BPEL<br />

Service's public WSDL. This WSDL must be authored (it is not generated). Script<br />

executes on the caller's thread.<br />

Tuning Classloader Memory<br />

Each BPEL Service <strong>deploy</strong>ed to a container has a classloader that loads its classes first.<br />

When you <strong>deploy</strong> multiple BPEL Services in one container, multiple copies of the same<br />

classes are loaded in memory. You can set the -XX:MaxPermSize JVM option to specify a<br />

larger memory allocation for class files.<br />

136 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Enabling and Updating <strong>Sonic</strong> <strong>ESB</strong> Service Containers<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 137


Chapter 6: Adapting Imported Services to a Domain<br />

138 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 7<br />

Updating a Revised <strong>Deployment</strong><br />

Once a <strong>deploy</strong>ment has been imported and adapted into a domain, it can be modified to,<br />

for example, change a service configuration, or update an XSLT file. These changes<br />

should be applied on the source workbench and propagated through the staging<br />

environments and into production. This chapter contains the following sections:<br />

● “Using <strong>Deployment</strong> Tools to Rebuild and Deploy a XAR”<br />

● “Using the <strong>ESB</strong> Admin Tool to Rebuild a XAR or File Store”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 139


Chapter 7: Updating a Revised <strong>Deployment</strong><br />

Using <strong>Deployment</strong> Tools to Rebuild and Deploy a XAR<br />

The <strong>Deployment</strong> Export Tool contains an ExportProperties.xml file that you can edit<br />

interactively in the graphical tool. Then, use the <strong>Deployment</strong> Import Tool to bring the<br />

rebuilt archive’s contents in to the target domain.<br />

◆ To rebuild an archive with the <strong>Deployment</strong> Export Tool:<br />

1. Start the <strong>ESB</strong> <strong>Deployment</strong> Export Tool.<br />

2. Connect to the source domain and open the archive you want to change.<br />

3. Add or remove configurations, files, and roots.<br />

4. Choose Rebuild.<br />

5. Save the rebuilt archive. You can choose to save the archive under a different name.<br />

The export tool recreates the archive with any changes and a redefined<br />

ExportProperties.xml file.<br />

You might want to tune the import properties before importing the rebuilt archive into the<br />

target domain. See “Modifying the Import Rules for the Target Domain” on page 142 for<br />

more information.<br />

◆ To import a rebuilt archive with the <strong>Deployment</strong> Import Tool:<br />

1. Start the <strong>ESB</strong> <strong>Deployment</strong> Import Tool.<br />

2. Open the rebuilt archive.<br />

3. If you are only adding to the previous archive, change the import option to clear<br />

Override Existing Files (= ‘FALSE’) to prevent changing any of the<br />

endpoints/configurations previously modified.<br />

In the previous example with exampleProcess, you would specify to overwrite<br />

everything except:<br />

■ Endpoints<br />

■ Connections<br />

4. Connect to the target domain.<br />

5. Complete the import.<br />

In the example exampleProcess, the procedure imports the three additional files.<br />

140 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the <strong>ESB</strong> Admin Tool to Rebuild a XAR or File Store<br />

Using the <strong>ESB</strong> Admin Tool to Rebuild a XAR or File Store<br />

When using the <strong>ESB</strong> Admin Tool commands, if you want to modify the export properties,<br />

you must edit the file before running an export command.<br />

Modifying ExportProperties.xml<br />

You can rebuild an <strong>ESB</strong> artifact package to regenerate the package with different or<br />

changed roots if the package contains ExportProperties.xml. That file is produced in most<br />

cases and is stored at the root level of export packages, specifically:<br />

● In a XAR produced by either the <strong>Deployment</strong> Export Tool or the <strong>ESB</strong> Admin Tool<br />

command export xar<br />

● In a file store produced by the <strong>ESB</strong> Admin Tool command export fs<br />

See “Editing ExportProperties.xml” on page 35 for more information.<br />

Adding Additional Configurations or Files<br />

You can add files that were not included in an export package. In the exampleProcess, the<br />

following files were referenced indirectly by files that were included in the archive:<br />

● File: sonicfs://Resources/myHelperFiles.js<br />

● File: sonicfs://Resources/soap-imports.xsl<br />

To obtain these files, go to the source domain, open the archive, and explicitly add these<br />

files. The packaging rules will then explicitly include three items—the ExampleProcess,<br />

plus the two files.<br />

Then see “Rebuilding the Export Package with the <strong>ESB</strong> Admin Tool” on page 142 and<br />

“Deploying a Rebuilt XAR or File Store with <strong>ESB</strong> Admin Tool” on page 143.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 141


Chapter 7: Updating a Revised <strong>Deployment</strong><br />

Changing a Root Element<br />

You can also make changes to the configuration used as a root element before rebuilding.<br />

In the example process, the ErrorEndpoint is removed as a step. It is replaced by an<br />

invocation step to an ErrorService. This is an <strong>ESB</strong> service called using<br />

sonicfs://Resources/ErrorService.<strong>esb</strong>ws.<br />

When the archive is rebuilt it will have the following changes:<br />

● Addition of sonicfs://Resources/ErrorService.<strong>esb</strong>ws.<br />

● The endpoint, ErrorEndpoint, is no longer included in the archive.<br />

Note Reimporting the rebuilt archive overwrites the ExampleProcess. However, it does not<br />

remove the ErrorEndpoint from the target domain. You must do this manually,<br />

Rebuilding the Export Package with the <strong>ESB</strong> Admin Tool<br />

When you have identified the XAR and, if necessary, edited the ExportProperties.xml<br />

file, you can recreate the package by either:<br />

● “Using the Export Archive Command” on page 52<br />

● “Using the Export FS Command” on page 53<br />

Modifying the Import Rules for the Target Domain<br />

In the target domain, you want to control importing a revised <strong>deploy</strong>ment so that it<br />

concentrates on the areas of change. The developer preparing the archive should generate<br />

a corresponding import properties template for the changes that includes:<br />

● Overwritten Elements — When you are importing changes that you want to definitely<br />

replace a matching file at the same location, choose to overwrite in the import<br />

properties to ensure that the changes are accepted.<br />

● Ignored Elements — Setting the ignore flag on branches and files that are<br />

dependencies and supporting files but are known to have not changed, minimizes the<br />

rebinding in the target domains.<br />

● Leftover Elements — Elements that are no longer meaningful should be removed<br />

from the target domain. For example, if the original archive had services A, B, C, and<br />

D and the revised package uses only A and D, the developer should include an update<br />

note in the project folder that recommends deletion of services B and C in the updated<br />

domain.<br />

142 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Using the <strong>ESB</strong> Admin Tool to Rebuild a XAR or File Store<br />

● Overrides — If you are only adding to the previous archive, change the import option<br />

to clear Override Existing Files (= ‘FALSE’) to prevent changing any of the<br />

endpoints/configurations previously modified.<br />

● Roots — You could change the nature of an archive by deleting roots and adding new<br />

ones. When everything is being packaged for the first time, it is in effect a new<br />

archive. But if there are some parts of the archive that were packaged and imported in<br />

other domains, rebuilding the archive rebuilds it from scratch, not incrementally.<br />

Deploying a Rebuilt XAR or File Store with <strong>ESB</strong> Admin Tool<br />

The following procedure describes how to use the <strong>ESB</strong> Admin Tool to import a rebuilt<br />

archive or rebuilt file store into a target domain.<br />

When you have rebuilt the export package and tuned the import rules, you can recreate<br />

the package according to its type:<br />

● For an archive, see “Using Import Properties” on page 116<br />

● For an file store, see “Using the Import FS Command” on page 117<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 143


Chapter 7: Updating a Revised <strong>Deployment</strong><br />

144 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Chapter 8<br />

Distributed <strong>Deployment</strong> at Runtime<br />

This chapter contains the following sections:<br />

● “Overview”<br />

● “Multiple Instances of a Service or Process in a Domain”<br />

● “Distributed Installation of a <strong>Product</strong>’s Runtime Features”<br />

● “Multiple Services in a Container”<br />

● “Multiple <strong>ESB</strong> Containers in a Management Container”<br />

● “Multiple Management Containers on a Host”<br />

● “Operations”<br />

● “Monitoring and Metrics”<br />

● “Container Collections”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 145


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

Overview<br />

The procedures previously described in this guide described single services to import into<br />

a domain and single service installations. The following illustrations also depict this. This<br />

illustration pattern is expanded later in this chapter.<br />

Consider a set of configuration elements exported from the development environment<br />

(<strong>Sonic</strong> Workbench) for <strong>deploy</strong>ment. In these illustrations, the functionality of the services<br />

and processes are represented by diamond shapes.<br />

For a distributed services infrastructure, a <strong>deploy</strong>ment domain manager is installed to<br />

provide the runtime Directory Service.<br />

The <strong>deploy</strong>ment package is imported into the new domain’s Directory Service, as shown:<br />

my.xar<br />

Import <strong>ESB</strong> Artifacts<br />

Directory<br />

Service<br />

Management<br />

Node<br />

Enterprise Service Bus<br />

On a host system named aHost, install a Container Launcher with a management<br />

container named aHost-1 connected to the <strong>deploy</strong>ment Directory Service that will manage<br />

it. The container can be created to have a Windows Service, and can be started at the time<br />

it is created<br />

Create an <strong>ESB</strong> Container, and then create an instance of the service to <strong>deploy</strong> with<br />

appropriate parameters for the instance. Add the instance to <strong>ESB</strong> container.<br />

146 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

ctHostA1


Overview<br />

When you add the <strong>ESB</strong> container to the aHost-1 container, the cache of the management<br />

container at the remote location is provisioned with the appropriate versioned libraries to<br />

support the <strong>ESB</strong> service and any additional service functionality on the Enterprise Service<br />

Bus, as shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

ctHostA1<br />

Enterprise Service Bus<br />

<strong>esb</strong>HostA1<br />

Advanced <strong>ESB</strong> Service<br />

BPEL Server + BPEL DataStore<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

The alternative <strong>deploy</strong>ment scenarios let you to enable multiple instances in the domain,<br />

in an <strong>ESB</strong> Container, and in management containers on a host system. This chapter shows<br />

the techniques and best practices for:<br />

● “Multiple Instances of a Service or Process in a Domain” on page 148<br />

● “Distributed Installation of a <strong>Product</strong>’s Runtime Features” on page 149<br />

● “Multiple Services in a Container” on page 150<br />

● “Multiple <strong>ESB</strong> Containers in a Management Container” on page 152<br />

Note You can install <strong>deploy</strong>ment archives into multiple domains.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 147<br />

ctHostA1<br />

HostA


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

Multiple Instances of a Service or Process in a Domain<br />

After you establish a service or process in the production environment, you can <strong>deploy</strong><br />

multiple instances of the service. This scales your service oriented architecture, as shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

ctHostA1<br />

ctHostB1<br />

Advanced <strong>ESB</strong> Service<br />

BPEL Server + BPEL DataStore<br />

<strong>esb</strong>HostA1<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

<strong>esb</strong>HostB1<br />

ctHostA1<br />

HostA<br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

Enterprise Service Bus<br />

Advanced <strong>ESB</strong> Service<br />

BPEL Server + BPEL DataStore<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

In this illustration, the service that was imported into the domain is duplicated by<br />

installing similar <strong>deploy</strong>ment software on a different host, and—when the components<br />

register in the Directory Service—adding an instance of the service to the new container.<br />

Both instances of the service provide identical operation. As you <strong>deploy</strong> more instances<br />

of the service, and the service is modified, one update to the domain perpetuates the<br />

change to every service instance automatically.<br />

148 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

ctHostB1<br />

HostB


Distributed Installation of a <strong>Product</strong>’s Runtime Features<br />

Distributed Installation of a <strong>Product</strong>’s Runtime Features<br />

my.xar<br />

Import<br />

<strong>ESB</strong> Artifacts<br />

You can locate the runtime features of some products on different systems. That means<br />

that you could <strong>deploy</strong> several instances of one runtime feature and a few of another. It also<br />

means that features that intensively use the resources of a host system can be isolated from<br />

other runtime features of its product <strong>deploy</strong>ment, as shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

ctHostA1<br />

ctHostB1<br />

Advanced <strong>ESB</strong> Service<br />

Service One<br />

<strong>esb</strong>HostA1<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

<strong>esb</strong>HostB1<br />

ctHostA1<br />

HostA<br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

Enterprise Service Bus<br />

ctHostB1<br />

HostB<br />

Advanced <strong>ESB</strong> Service<br />

Service Two<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

In this illustration, a <strong>deploy</strong>ment archive imported into the Directory Service defines two<br />

fully-encapsulated services. The services could be distributed as follows:<br />

● Service One— On system HostA, the <strong>Sonic</strong>MQ management container, and <strong>ESB</strong><br />

Container installations are registered in the Directory Service. Then, Service One is<br />

<strong>deploy</strong>ed into the <strong>ESB</strong> Container.<br />

● Service 2— On system HostB, the <strong>Sonic</strong>MQ management container, and <strong>ESB</strong><br />

Container are registered in the Directory Service. Then, Service Two is <strong>deploy</strong>ed into<br />

that <strong>ESB</strong> Container.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 149


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

Multiple Services in a Container<br />

Sometimes the resources to maintain a service do not tax a system’s resources. You can<br />

choose to place several different services into a container and let them work<br />

independently to provide finer granularity for your composite application. Some services<br />

complement each other to the point where they comprise a coarser grained application, as<br />

shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

ctHostA1<br />

<strong>esb</strong>HostA1<br />

Enterprise Service Bus<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

In this illustration, several services are <strong>deploy</strong>ed in a container. The services work<br />

independently, sharing the caching and runtime management of the single container.<br />

When Intra-Container Messaging is enabled on a container, messages can be transferred<br />

within the container. Do this when a message heading for one hosted service’s exit<br />

endpoint matches the entry endpoint of another service hosted in the container.<br />

For more information on intra-container messaging and also its Quality of Service<br />

ramifications, see the <strong>Sonic</strong> <strong>ESB</strong> <strong>Product</strong> Family: Development <strong>Guide</strong> in the Eclipse help.<br />

See Part IV of the <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> Configuration and Management <strong>Guide</strong> for<br />

150 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

ctHostA1<br />

HostA


Multiple Services in a Container<br />

information on using intra-container messaging in adding multiple Database Service steps<br />

to an <strong>ESB</strong> process, and using polling queries to run the Database Service in an <strong>ESB</strong><br />

process.<br />

Services that share an <strong>ESB</strong> Container are not required to be heterogeneous. You can have<br />

an BPEL Server running in a container where an <strong>ESB</strong> service transforms or routes the<br />

incoming or outgoing data, as shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

ctHostA1<br />

<strong>esb</strong>HostA1<br />

Advanced <strong>ESB</strong> Service<br />

BPEL Server + BPEL DataStore<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Management Container<br />

<strong>Sonic</strong>MQ<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 151<br />

ctHostA1<br />

HostA<br />

Enterprise Service Bus


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

Multiple <strong>ESB</strong> Containers in a Management Container<br />

A management container can support multiple <strong>ESB</strong> Containers. You might want to do this<br />

to have one classloader for the two <strong>ESB</strong> containers. This tactic is not typically<br />

recommended because the memory requirements for another management container’s<br />

JVM are minimal when compared to the <strong>ESB</strong> processes. An appropriate use-case for this<br />

construct is when you have a large <strong>ESB</strong> process that is running intra-container, as shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

<strong>esb</strong>HostA1<br />

ctHostA<br />

<strong>esb</strong>HostA2<br />

<strong>esb</strong>HostA1 <strong>esb</strong>HostA2<br />

Management Container<br />

aHost-1<br />

ctHostA<br />

<strong>Sonic</strong>MQ<br />

In this illustration, HostA has one management container, hosting two <strong>ESB</strong> Containers.<br />

When intra-container steps are in separate <strong>ESB</strong> Containers, the process writes the<br />

message to the broker at strategic places in the process. Thus, a restart of the process can<br />

resume the process, and avoid having to start it from its beginning.<br />

152 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

HostA<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Enterprise Service Bus<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong>


Multiple Management Containers on a Host<br />

Multiple Management Containers on a Host<br />

Using multiple management containers provides independence of services. Unless the<br />

services complement each other or can use intra-container messaging, it is usually better<br />

to use separate container instances, as shown:<br />

Directory<br />

Service<br />

Management<br />

Node<br />

ctHostA1<br />

ctHostA2<br />

Management Container Management Container<br />

<strong>Sonic</strong>MQ<br />

aHost-1<br />

ctHostA1<br />

<strong>Sonic</strong>MQ<br />

ctHostA2<br />

In this illustration, HostA has two management containers, each hosting an <strong>ESB</strong><br />

Container.<br />

When you keep multiple management containers in the same version, you can use<br />

Activation Daemons to provide remote and scheduled startup of management containers.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 153<br />

HostA<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong><br />

Enterprise Service Bus<br />

<strong>esb</strong>HostA1 <strong>esb</strong>HostA2<br />

<strong>ESB</strong> Container<br />

<strong>Sonic</strong> <strong>ESB</strong>


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

Operations<br />

The <strong>Sonic</strong> Management Console provides runtime monitoring and management on<br />

management containers and <strong>ESB</strong> Containers.<br />

Note The operations and activities mentioned in this chapter are described in the “Managing<br />

the <strong>Sonic</strong> Management Environment” chapter in the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration<br />

and Management <strong>Guide</strong>”<br />

Actions<br />

You can perform operations on <strong>ESB</strong> Containers when their management container is<br />

running, as shown:<br />

You can also perform operations on a management container. However, you can only start<br />

a remote container if you have associated it with an Activation Daemon that is running on<br />

the remote system. See the “Extending and Activating Components” chapter in the<br />

<strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management <strong>Guide</strong> for information on setting up<br />

Activation Daemons on remote systems.<br />

154 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Runtime Properties<br />

Operations<br />

Management containers and <strong>ESB</strong> Containers have Properties dialog boxes that show their<br />

identity, status, loading, and tracing facilities. <strong>ESB</strong> Container Properties can be viewed<br />

whether an <strong>ESB</strong> Container is running or not. However, if the management container is not<br />

running, the <strong>ESB</strong> Container’s Properties are not available.<br />

Management container information is described in the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration<br />

and Management <strong>Guide</strong>. <strong>ESB</strong> Container information is described in the <strong>Progress</strong> <strong>Sonic</strong><br />

<strong>ESB</strong> Configuration and Management <strong>Guide</strong>.<br />

The following set of Properties dialog box tabs are for an <strong>ESB</strong> Container:<br />

● The General tab shows domain identification information and the <strong>ESB</strong> Container’s<br />

status:<br />

● The Loading tab shows the classpaths in use by this <strong>ESB</strong> Container:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 155


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

● The Tracing tab lets you select tracing options, which are immediately implemented<br />

in the <strong>ESB</strong> Container’s logs. The management container also has tracing options:<br />

Tracing options should be used with discretion to debug or monitor specific<br />

situations. The volume of data that could flow into the logs when extensive, verbose<br />

tracing is active can increase the container logs dramatically. You can set the tracing<br />

options on a management container and on an <strong>ESB</strong> Container to persist through<br />

restarts.<br />

For more information about management container and <strong>ESB</strong> Container tracing, see<br />

the “Logging and Tracing” section of the “<strong>ESB</strong> Containers” chapter in the <strong>Progress</strong><br />

<strong>Sonic</strong> <strong>ESB</strong> Configuration and Management <strong>Guide</strong>.<br />

Monitoring and Metrics<br />

Use monitoring and metrics to send notifications and alerts to the domain manager (rather<br />

than to the log) to observe the management container and the <strong>ESB</strong> Container.<br />

156 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


<strong>ESB</strong> Container Notifications and Metrics<br />

Monitoring and Metrics<br />

<strong>ESB</strong> Container notifications let you watch for notifications of state changes, as shown:<br />

<strong>ESB</strong> Container metrics let you measure performance in the <strong>ESB</strong> Container, as shown:<br />

For more information about <strong>ESB</strong> Container notifications and metrics, see the “Monitoring<br />

Service Metrics and Notifications” section of the “<strong>ESB</strong> Containers” chapter in the<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> Configuration and Management <strong>Guide</strong><br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 157


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

Management Container Notifications and Metrics<br />

The management container provides metrics and a range of notifications. The<br />

Notifications options for a management container include:<br />

The Metrics options for a management container are as shown:<br />

See the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management <strong>Guide</strong> for more information<br />

about metrics and notifications on management containers.<br />

158 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


Container Collections<br />

Container Collections<br />

Container collections are components that monitor the runtime status of selected<br />

management containers defined in its collection. The same container can be monitored in<br />

several container collections.<br />

The examples shown here are simple. In a deeply nested structure or a large scale<br />

<strong>deploy</strong>ment, container collections are useful for providing operator alerts. In this<br />

example, two management containers are included in the configured object created at the<br />

root level of the domain hierarchy. As shown, both of its monitored containers are running<br />

(green highlight) so the container collection object also displays a green highlight:<br />

When one of the monitored components stops (red highlight) and the other continues to<br />

run, the container collection object displays a yellow highlight, as shown:<br />

For more information about collections, see “Configuring Container Components”<br />

section of the “Containers and Collections” chapter in the <strong>Sonic</strong>MQ Configuration and<br />

Management <strong>Guide</strong>.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 159


Chapter 8: Distributed <strong>Deployment</strong> at Runtime<br />

160 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>


A Access Control Lists 131<br />

activation daemon 154<br />

applyMap<br />

syntax 79<br />

authorization<br />

endpoints 29<br />

B<br />

Index<br />

backup<br />

Directory Service before import 91<br />

build<br />

scripted 38, 41, 54<br />

build strategy 84, 87<br />

C<br />

classes<br />

as dependencies 37<br />

external to <strong>Sonic</strong>FS 132<br />

classpath<br />

loaded at runtime 155<br />

clusterwide queue 129<br />

connection<br />

source domain for export 43<br />

connections<br />

adapting in a new domain 125<br />

custom 127<br />

container<br />

messaging when multiple services 150<br />

operations 154<br />

runtime state 155<br />

container collections 159<br />

CPA files<br />

adjusting after import 134<br />

createMap<br />

syntax 73<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 161<br />

D<br />

dependencies 33<br />

classes 37<br />

Directory Service<br />

base level for builds 87<br />

distributing runtime features 149<br />

E<br />

ebXML files<br />

adjusting after import 134<br />

endpoint lists 88, 93<br />

endpoints<br />

adapting in a new domain 128<br />

<strong>ESB</strong> Admin Tool<br />

export archive 50<br />

import archive 116<br />

<strong>ESB</strong>DB scripts<br />

external to <strong>Sonic</strong>FS 132


Index<br />

<strong>ESB</strong>WS WSDL files<br />

external to <strong>Sonic</strong>FS 132<br />

exclusive queue 129<br />

F<br />

FTP server<br />

adjusting configuration 134<br />

G<br />

global queue 129<br />

graphical components 37<br />

group<br />

reconciling in a new domain 131<br />

GUI properties 37<br />

H<br />

hierarchical namespaces<br />

authorization 29<br />

I<br />

ignore<br />

during export 36<br />

during import 109<br />

import properties 107<br />

imported elements<br />

validation 113<br />

incremental change 83<br />

intra-container messaging 150<br />

J<br />

JavaScript<br />

adjusting embedded endpoint references 133<br />

adjusting embedded service references 133<br />

M<br />

Mail server<br />

adjusting configuration 134<br />

messaging nodes 125<br />

metrics 156<br />

monitoring 156<br />

162 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong><br />

N<br />

node syntax 130<br />

notes<br />

attached to archive properties 48<br />

notifications 156<br />

O<br />

overwrite<br />

during import 109<br />

P<br />

password<br />

between <strong>deploy</strong>ment domains 28<br />

management roles 28<br />

properties<br />

external to <strong>Sonic</strong>FS 133<br />

properties files 37<br />

Q<br />

QoP 131<br />

queue creation 88, 93<br />

queue parameters 129<br />

queue size 129<br />

R<br />

rebuilding an archive 37<br />

reload an <strong>ESB</strong> Container 154<br />

reload container 154<br />

Reset 110<br />

reset<br />

defining import properties 110<br />

restoring<br />

Directory Service 91


outing nodes 130<br />

S<br />

scripted build 38, 41, 54<br />

service<br />

<strong>deploy</strong>ing multiple instances 148<br />

source control 50<br />

stages 85, 86<br />

stages, <strong>deploy</strong>ment 23<br />

start an <strong>ESB</strong> Container 154<br />

start container 154<br />

state<br />

container at runtime 155<br />

stop an <strong>ESB</strong> Container 154<br />

stop container 154<br />

support, technical 19<br />

T<br />

technical support 19<br />

test plans<br />

regression after import 106<br />

testing 89, 93<br />

tracing<br />

<strong>ESB</strong> container 156<br />

U<br />

update strategy 89<br />

users<br />

reconciling in a new domain 131<br />

V<br />

validation<br />

imported elements 113<br />

W<br />

WSDL<br />

external to <strong>Sonic</strong>FS 132<br />

Index<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong> 163<br />

X<br />

xslt<br />

adjusting embedded URL references 133


Index<br />

164 <strong>Progress</strong> <strong>Sonic</strong> <strong>ESB</strong> <strong>Deployment</strong> <strong>Guide</strong> <strong>8.5</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!