Patent Document

PRIORITY CLAIM  
       [0001]    This application claims the benefit of priority to EPO application Serial No. 07425248.7 filed on Apr. 27, 2007. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Technical Field 
         [0003]    This disclosure concerns a dynamically updating graphical user interface for a management system for provisioning and managing Voice over Internet Protocol (VoIP) Services. In particular, this disclosure relates to an end user control configuration (EUC) system with a dynamic user interface that dynamically generates graphical user interface (GUI) renderings that assist users to complete tasks required to provision or activate, and manage network services, such as IP Multimedia services. 
         [0004]    2. Background Information 
         [0005]    The telecommunications industry continues to face demands for more services, and rapid deployment of new services, while the complexity of the underlying technologies providing the services continues to increase. Consumers continually push for new VoIP, IP Multimedia (e.g., instant messaging, on-demand recording and play-back, application sharing, audio conferencing, and videoconferencing), and other value added services. The time to market for new IP Multimedia services depends on the systems used to implement the services, and the complexity and maturity of the technology. Reducing the time to market for new network services requires flexible development, integration and provisioning methods. Service providers require systems that allow service providers to rapidly integrate new network services, and provide end users, both residential and commercial consumers, the ability to easily activate and manage the new network services. Deploying new network services requires service providers to address connectivity, data exchange and process integration issues related to the underlying operational support systems (OSS) employed. 
         [0006]    Consumers assess network service providers based on the number of available services, the consumers&#39; ease of activation and use of the services. Consumers also recognize the cycle-time between a consumers request for a service and service activation as a dominant market differentiator. Correspondingly, service providers recognize consumers&#39; ability to self-service provision network services as a critical market differentiator. 
         [0007]    Unfortunately, the complexity of new operational support systems (OSS) deployed in support of new network services creates technical challenges for service provides desiring to hide the complexity from consumers. The evolution of OSS continues to introduce new complex technologies, in addition to life-cycle maintenance issues. The many technical challenges facing service providers include identifying operational cost reductions, reducing the time to market and time to delivery of services, while improving the consumer&#39;s experience related to activating and using services, and minimizing operational impacts resulting from the integration of new OSS with existing systems. 
         [0008]    Service providers recognize that many of the technical challenges to providing consumers with the ability to self-provision network services require robust and dynamic user interfaces and workflow solutions. The already immense number of workflow steps required to activate and manage network services increase exponentially with the integration of each new network element, and may require users to complete some number of tasks prior to service activation. Service providers positioned to effectively respond to consumer demands for self-provisioning services require a technical solution that presents users with dynamic workflows, and facilitates integration of the unending number of network elements. 
         [0009]    A need has long existed for a management system that hides the complexity of VoIP network services from consumers, and allows consumers to easily request, provision and manage VoIP, Services. The end user control configuration (EUC) system with dynamic user interface solves the technical problem of reducing the cycle-time to self-provision network services, and assisting users to complete the tasks required to activate, and manage VoIP services. 
       SUMMARY 
       [0010]    The end user control configuration (EUC) system with dynamic user interface helps to solve the difficult technical problems that service providers face to rapidly introduce new network services to consumers, and allows users to easily self-provision network services, while reducing the costs and time to integrate and manage new network platforms in support of the new services. The end user control configuration (EUC) system with dynamic user interface employs three logical layers, namely, a presentation layer, a business layer and an integration layer to manage user interactions, manage business logic, and deploy and manage network services, respectively. The presentation layer manages the user authentication, user authorization and user interactions with the EUC system. The presentation layer allows the user to input and validate network configuration order information, and activate requested services. The business layer manages business process definitions and business logic execution, and service configurations and activation rules. The integration layer manages the deployment of new network element managers (new OSS), network elements (i.e., provisioned services), and application services providing network services. The three logical layers communicate using a service bus. The service bus performs message brokering and protocol switching in the course of managing communication between the various layers and external systems, which increases the adaptability and stability of each layer. The service bus facilitates orchestration of complex and simple workflows used to support intricate service configurations and near-real time provisioning processes. 
         [0011]    The dynamic user interface helps to solve the technical challenges of flexibly provisioning a wide range of complex services, by allowing users to manage tasks related to the activation of services, or system failures, and track requests. For example, a user may use the end user control configuration (EUC) system with dynamic user interface to configure (i.e., perform self-provisioning) or change the class of service or phone service profile. The network technologies involved in support of the user&#39;s request may depend on the user&#39;s location and the network topology (e.g., two different types of IP Private Branch eXchange (IP-PBX) configurations connected to the network at different locations). Although both IP-PBX configurations provide the same services, each configuration involves different provisioning rules and network elements and application services. The dynamic user interface does not depend on, and is free from constraints that might otherwise rise from, the underlying network topology, and the various network constraints associated with each configuration. The EUC system determines the service configuration requirements and user profile information, and generates appropriate workflows to activate (i.e., provision) the service. In the event the workflows identify tasks for the user to complete prior to service activation, the dynamic user interface presents a dynamically generated graphical user interface (GUI) rendering to the user that includes the tasks, and may present the user with alternative approaches to provisioning the same service. 
         [0012]    The end user control configuration (EUC) system with dynamic user interface allows a user&#39;s profile authorization to control access to resources and the level of control of services. The EUC system&#39;s user authorization may allow a user to provision a service (e.g., associate a phone line to the user) as a result of manually inputting the users name, surname or user ID, or retrieve the user&#39;s profile information from a database through a search window, or upload the user&#39;s information from an external file. The end user control configuration (EUC) system with dynamic user interface may allow a user to configure, for example, IP-PBX and application services in terms of reduced numerical groups and Private/Public associated numbers, specific users and available telephone services. For example, the end user control configuration (EUC) system with dynamic user interface may summarize ranges of directory numbers configurable to the IP-IBX, and allow the user to define new ranges of directory numbers configurable to the IP-PBX. A user may use the dynamic user interface to select the public numbers to enable from an entire available range reserved for a site, and define the translation rules used between public and private directory numbers to configure reduced numerical groups used for a site. 
         [0013]    Following a user&#39;s interaction with the dynamic user interface, the business layer manages the execution of the corresponding network elements&#39; service configurations responsible for providing the requested changes to the service (e.g., IP-PBX service). The business layer updates internal service configuration work order parameters, and if tasks require completion prior to service activation, creates a work list and delivers a GUI rendering that includes the work list to the presentation layer. The tasks may include any task requiring user interaction (e.g., system errors, user profile information, or service specific configuration parameters). When a user selects a task from the work list, the presentation layer receives a subsequent GUI rendering containing the appropriate task related data fields, rules and actions. The business layer generates dynamic GUI renderings containing work list tasks until the EUC system recognizes completion of the tasks required prior to service activation. 
         [0014]    Other systems, methods, and features of the invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    The disclosure can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts or elements throughout the different views. 
           [0016]      FIG. 1  illustrates an end user control configuration (EUC) system with dynamic user interface. 
           [0017]      FIG. 2  shows the logical layers of the EUC system configuration. 
           [0018]      FIG. 3  illustrates the Interactions between the logical layers. 
           [0019]      FIG. 4  shows the error handling process flow diagram. 
           [0020]      FIG. 5  shows acts that the EUC system may take to render a dynamic GUI. 
           [0021]      FIG. 6  shows a user interface composition data file. 
           [0022]      FIG. 7  shows a user interface rule file. 
           [0023]      FIG. 8  shows dynamic GUI renderings. 
           [0024]      FIG. 9  shows a service bus flow diagram. 
           [0025]      FIG. 10  shows a service bus layer separation. 
       
    
    
     DETAILED DESCRIPTION 
       [0026]    The end user control configuration (EUC) system with dynamic user interface addresses difficult technical challenges related to hiding the complexity of VoIP network services from consumers, while allowing consumers to easily request, self-provision, and manage VoIP Services. In addition to reducing the cycle-time involved with self-provisioning network services, and assisting users to complete the tasks required to activate, and manage VoIP and IP Multimedia services, the end user control configuration (EUC) system with dynamic user interface isolates error handling, and development of new network platforms. The EUC system reduces the complexity of introducing new network technologies, and eliminates a user&#39;s need to understand the complexity of the business processes and network technologies required to activate network services. 
         [0027]    The EUC system uses Service Oriented Architecture (SOA) and standard web services (i.e., SOAP, XML and WSDL) to distribute system functionalities between different logical layers, simplify data connectivity, data exchange and process integration. The EUC system uses SOA based software modules to communicate using web services to separate the logical layers to strengthen the ease of introducing new network technologies and services and minimize impacts to systems at integration layer. Employing SOA provides layer separation and component isolation so that each layer may perform parallel development without operational impacts, and thereby, facilitates reduction in the time to market for new network services. The logical layers represent physically distributed systems that may include horizontal and vertical distribution. The EUC system uses vertically and horizontally scalable and reusable processes and services to deploy new network technologies, which lowers integration costs and improves platform performance. The EUC system also uses asynchronous calls (implemented, for example, with Java Messaging Service (JMS) queues) between the business layer and integration layer to reduce hardware resource requirements at the business layer. 
         [0028]    In the event the EUC system identifies tasks that may require user interaction to complete prior to service activation, the EUC system generates a work list, and builds a dynamic GUI rendering at run-time, based on information retrieved from a database and context information (e.g., state transition information) identified from previously completed tasks or workflow steps. The EUC system uses state transition information to create a dynamic sequence of workflow steps, and ultimately produces dynamic GUI renderings. The workflow steps include one or more transitions generated as a result of applying rules found in a user interface rule file (e.g., an XSLT—extensible Stylesheet Language based file) to data identified in a user interface composition data file (e.g., an XML—extensible Markup Language based file). The user interface rules may be combined with the user interface composition data into one file. The business layer manages the user interface rule file and the user interface composition data file that together store information that defines the tasks and sequence of workflow steps to perform to complete each transition, and dynamically compose and format the dynamic user interface (e.g., a JSP—Java Server Page). However, neither the presentation layer nor the business layer need to maintain statically coded permutations of workflow steps, state transitions or static GUI renderings. Instead, the business layer may isolate customizations to the error handling, work list task and workflow steps of the EUC system to the user interface composition data file and the user interface rule file. 
         [0029]    The workflow manager, in coordination with the error handling subsystem, generates user recovery tasks and GUI renderings to assist a user to resolve an error or condition requiring user interaction, ultimately resulting in the activation of IP Multimedia services. An example of a recovery task may include a user inputting a code in the WUI received by the user following the completion of a previous task or tasks. The user interface composition data file and the user interface rule file define: the set of visible data; the set of modifiable data; the set of names applied to data used to compose the user interface (GUI rendering); and the transition states. The user interface composition data and user interface rule file maybe modified to customize the dynamic user interface&#39;s error handling and tasks list features without requiring programming or development involving other components at the presentation layer, business layer or integration layer. 
         [0030]    Furthermore, although specific components of the end user control configuration (EUC) system with dynamic user interface will be described, methods, systems, and articles of manufacture consistent with the system may include additional or different components. For example, a processor may be implemented as a microprocessor, microcontroller, application specific integrated circuit (ASIC), discrete logic, or a combination of other type of circuits or logic. Similarly, memories may be DRAM, SRAM, Flash or any other type of memory. Logic that implements the processing and programs described below may be stored (e.g., as computer executable instructions) on a computer readable medium such as an optical or magnetic disk or other memory. Alternatively or additionally, the logic may be realized in an electromagnetic or optical signal that may be transmitted between entities. Flags, data, databases, tables, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be distributed, or may be logically and physically organized in many different ways. Programs may be parts of a single program, separate programs, or distributed across several memories and processors. Furthermore, the programs, or any portion of the programs, may instead be implemented in hardware. 
         [0031]      FIG. 1  illustrates an end user control configuration (EUC) system with dynamic user interface  102 . The EUC system  102  includes a processor unit  104  coupled to a communication interface  106 , a memory  108 , and a database  110 . The EUC system  102  may receive user requests to provision services and manage errors through the communication interface  106  in communication with an error handling subsystem  112 . The error handling subsystem  112  includes an error handling engine  114  that responds to workflow process errors. The error handling engine  114  determines state transitions  116  associated with one or more recovery tasks  118  that may require completion before the EUC system  102  may resume an attempt to complete a request or work order. The workflow manager  120  identifies the state transitions  116  from previously completed recovery tasks  118  or workflows  156 . The EUC system  102  uses state transition information to create a dynamic sequence of workflow steps, and ultimately produces dynamic GUI renderings  144 . The workflow steps  156  include one or more state transitions  116 . The EUC system memory  108  may include a workflow manager  120  that retrieves workflow process errors from the error message queue  124 , obtains service configuration information  126  for the provisioning task from a service configuration manager  128 , analyzes the service configuration information  126  and the workflow process errors, and generates a user interface composition data file  146  specifying a state transition  116  associated with a recovery task  118  for end user completion. 
         [0032]    The communications interface  106  receives and transmits, for example, user requests to provision services, and may directly connect to a network  128 , such as the Internet. The communications interface  106  may include a keyboard, mouse, or any other communications interface means. The EUC system  102 , in one implementation, is capable of communicating with order management systems  130 , external systems  132  (i.e., also referred to as network elements or systems delivering provisioned services), and remote user devices  134  (e.g., through the user interface rendering receiver  135 ) via the communications interface  106 . 
         [0033]    The EUC system  102  may include a dynamic GUI rendering program  136  that retrieves user interface composition data  138  that specifies the state transition  116 , and the user interface rules data  140 , and stores the information in memory  108 . The user interface composition data  138  and user interface rule file  142  may include information defining recovery tasks  118  to perform to complete a state transition  116 , as well as the start and end points of a state transition  116 . The dynamic GUI rendering program  136  may generate a GUI rendering  144  based on the user interface composition data  138 , and the user interface rules  140  identified in the user interface rule file  142  applied to the user interface composition data identified in the user interface composition data  138 . The user interface composition data file  146 , or user interface rule file  142 , or both files may also establish a GUI rendering&#39;s visible data  148 , modifiable data  150 , and data names  152  used to compose the GUI rendering  144 . The user interface composition data file  138 , or user interface rule file  142 , or both files may also establish the GUI rendering&#39;s  144  user interface composition data  138 , and state transitions  116 . 
         [0034]    The dynamic GUI rendering program  136  may generate the GUI rendering  144  by performing a composition data transformation  154  specified in the user interface rule file  142 . The composition data transformation  154  may result in the generation of a modified user interface element based on an original user interface element specified in the user interface composition data file  146 . In other words, whenever an error occurs that requires a user interaction to complete a state transition  116 , a composition data transformation  154  identified in the user interface rule file  142  may be applied to the user interface composition data  138  identified in the user interface composition data file  146 . 
         [0035]      FIG. 2  shows the logical layers of the EUC system  102 . The EUC system  102  includes a presentation layer  200  to manage user interactions, a business layer  210  to manage business logic, and an integration layer  220  to deploy and manage network services. The EUC system  102  also employs a service bus  230 , which provides bidirectional communication between the logical layers. The presentation layer  200  manages user interactions, and includes a Web-user Interface (WUI)  201 ; user authentication  202 ; and user authorization  203 . Presentation layer components may communicate with each other directly without the use of the service bus  230 . Communication between presentation layer components and the business layer components may occur through the service bus  230 . 
         [0036]    The EUC system  102  uses the WUI  201  to interact with users, for example through a set user interface screens, such as web pages. User interactions with the EUC system  102  occur through the WUI  201 . The WUI  201  may employ JPFs (Java Page Flow) and JSPs (Java Server Pages). The WUI  201  JPFs define a set of actions that may be performed during a user&#39;s navigation through a series of fields on a particular page or pages. Each WUI JPF action links to a hyper-text markup language (html) form that creates a form bean that stores information used to process the action. For example, the action may validate semantic and syntax on user inputs, or initiate requests to business layer components. Ultimately, the WUI  201  visualizes the results of the WUI JPF action. The WUI  201  communicates directly with other presentation layer components without the use of the service bus  230 . Although the WUI  201  may contain presentation specific logic, the WUI  201  accesses business logic at the business layer  210  through communication with the presentation manager  212 . The WUI  201  communicates with the business layer  210  through synchronous Web Services (e.g., SOAP/http based—Simple Object Access Protocol and Hypertext Transfer Protocol), but the WUI  201  uses asynchronous communication to process service logic and manage services. Accordingly, the business layer  210  receives service activation requests as work orders  147 . 
         [0037]    The user authorization  203  component grants access to services or resources, based on a user&#39;s profile information retrieved from the business layer  210  through the presentation manager  212  and/or the user profile manager  214 . The EUC system  102  caches the user&#39;s profile information locally. The user authorization  203  component communicates directly with the WUI  201  through direct web service calls. The user authentication  202  component authenticates users based on user profile information stored in the user profile database at the business layer  210 . The user authentication  202  component also communicates with the WUI  201  using direct Java calls. 
         [0038]    The business layer  210  contains business logic and processes required to activate and manage services. The business layer  210  manages requests from users, external customer relationship management (CRM) systems, user profile databases, and service configurations, as well as user access logic. The business layer  210  includes: a workflow manager  120 ; presentation manager  212 ; service configuration manager  213 ; user profile manager  214 ; and the order manager  215 . The business layer  210  publishes its services on the service bus  230  and communicates with the presentation layer  200  and integration layer  220  through the service bus  230 . The service bus  230  may manage synchronous and asynchronous communication between the business layer components. Alternatively or additionally, the business layer components may communicate with each other using direct JAVA calls for private, synchronous services and interactions. The business layer components also may communicate synchronously with presentation layer components through the service bus  230 . The business layer  210  communicates with the integration layer  220  synchronously or asynchronously, depending on the adapter  222 , the network elements  226 , and the nature of the communication. The service bus  230  manages timeouts and retries that occur during communication between the business layer  210  and the integration layer  220 . The network elements  226  may deliver an unlimited array of provisioned services (e.g., instant messaging, on-demand recording and play-back, application sharing, audio conferencing, and videoconferencing, and other value added services) to users. 
         [0039]    The workflow manager  120  manages the business layer  210  processes that implement the network services supported by the network elements  226 . The workflow manager  120  generates GUI renderings  144  using the following: retrieve the user interface rule file  142 ; retrieve the user interface composition data  138 ; identify the state transition  116 ; generate the tasks lists  160 ; and generate the GUI rendering  144  and display the tasks list  160 . The workflow manager  120  may control the error handling engine  114  and the error message queue  124 , which reside in the business layer  210 . The error message queue  124  may store error messages arising from exceptions generated during communication between or among components in the presentation layer  200 , business layer  210  and the integration layer  220 . The workflow manager  120  may include business logic classes (e.g., JAVA classes), and corresponding processes. The EUC system  102  may consider the business logic classes and corresponding processes logically as a single component that physically reside on separate applications on different systems. The workflow manager  120  may communicate with the network elements  226  (e.g., IP Multimedia systems that provide the provisioned network services) through the integration layer  220 . The workflow manager  120  may receive work order submissions from the presentation manager  212  and the order manager  215 . The workflow manager  120  may use information from the service configuration manager  213  and the user profile manager  214  to determine which processes and workflow steps to activate, or enable or disable, to complete work orders  147 . The workflow manager  120  may update work orders  147  while the business layer processes execute, and store work orders  147  on the database  145 . The workflow manager  120  may publish an asynchronous interface on the service bus  230  to allow the WUI  201  and order manager  215  to submit work orders  147 . The workflow manager  120  also may publish a synchronous interface, dedicated to other business layer components, to retrieve and update work order information. The business layer processes may communicate with the integration layer components through the service bus  230 . Table 1 shows an example work order xml file that the workflow manager  120  may receive from the presentation manager  212  and the order manager  215 . 
         [0000]    
       
         
               
             
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 work order.xml 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   &lt;?xml version=“1.0” ?&gt; 
               
               
                   −   &lt;xml-fragment  xmlns:wor=“http://xyz.abc.it/schemas/workOrder” 
               
               
                    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”&gt; 
               
               
                   −  &lt;wor:header&gt; 
               
               
                   &lt;wor:olId&gt;1003&lt;/wor:olId&gt; 
               
               
                   &lt;wor:statusId&gt;160&lt;/wor:statusId&gt; 
               
               
                   &lt;wor:physicalSiteId&gt;3&lt;/wor:physicalSiteId&gt; 
               
               
                      &lt;wor:instanceId&gt;[ ]:127.0.0.1-418e21b.1109ca490e1.-7c31- 
               
               
                    gend&lt;/wor:instanceId&gt; 
               
               
                   &lt;wor:taskId&gt;127.0.0.1-418e21b.1109ca490e1.-7c49&lt;/wor:taskId&gt; 
               
               
                   &lt;wor:timestamp&gt;2007-02-08T15:24:38.000+01:00&lt;/wor:timestamp&gt; 
               
               
                   &lt;wor:endDate&gt;2007-02-08T16:33:47.510+01:00&lt;/wor:endDate&gt; 
               
               
                   &lt;wor:workFlowName&gt;addIpPbx&lt;/wor:workFlowName&gt; 
               
               
                   &lt;wor:tsys&gt;30&lt;/wor:tsys&gt; 
               
               
                   &lt;wor:rsys&gt;30&lt;/wor:rsys&gt; 
               
               
                   &lt;wor:entityType&gt;entity&lt;/wor:entityType&gt; 
               
               
                   &lt;wor:functionType&gt;M&lt;/wor:functionType&gt; 
               
               
                   &lt;wor:olAggregate&gt;aggr&lt;/wor:olAggregate&gt; 
               
               
                   &lt;wor:olTypeId&gt;addIpPbx&lt;/wor:olTypeId&gt; 
               
               
                   &lt;wor:messageType&gt;01&lt;/wor:messageType&gt; 
               
               
                   &lt;wor:idWorkFlow&gt;id_flow1&lt;/wor:idWorkFlow&gt; 
               
               
                   &lt;wor:olOrder&gt;Ordinativo092374&lt;/wor:olOrder&gt; 
               
               
                   &lt;wor:nroItem /&gt; 
               
               
                   &lt;wor:operationType&gt;01&lt;/wor:operationType&gt; 
               
               
                    &lt;/wor:header&gt; 
               
               
                   −  &lt;wor:orderInfo&gt; 
               
               
                   &lt;wor:tguPhSite&gt;30&lt;/wor:tguPhSite&gt; 
               
               
                   &lt;wor:tguIBS&gt;30&lt;/wor:tguIBS&gt; 
               
               
                   &lt;wor:tiPhSite&gt;30&lt;/wor:tiPhSite&gt; 
               
               
                   &lt;wor:idSiebelSede&gt;s&lt;/wor:idSiebelSede&gt; 
               
               
                   &lt;wor:mnemPhSite&gt;s&lt;/wor:mnemPhSite&gt; 
               
               
                   &lt;wor:masterVoIP&gt;Y&lt;/wor:masterVoIP&gt; 
               
               
                   &lt;wor:tguSedeMaster /&gt; 
               
               
                   &lt;wor:siteIdCRM&gt;30&lt;/wor:siteIdCRM&gt; 
               
               
                   &lt;wor:vendor&gt;Vendor ABC&lt;/wor:vendor&gt; 
               
               
                   &lt;wor:escapeCodeLocal&gt;301&lt;/wor:escapeCodeLocal&gt; 
               
               
                   &lt;wor:escapeCodeOffNet&gt;302&lt;/wor:escapeCodeOffNet&gt; 
               
               
                   &lt;wor:escapeCodeOnNet&gt;303&lt;/wor:escapeCodeOnNet&gt; 
               
               
                   &lt;wor:reservedDerNum&gt;1&lt;/wor:reservedDerNum&gt; 
               
               
                   &lt;wor:numGNR&gt;1&lt;/wor:numGNR&gt; 
               
               
                   &lt;wor:singleLineNum&gt;0&lt;/wor:singleLineNum&gt; 
               
               
                    &lt;/wor:orderInfo&gt; 
               
               
                   −  &lt;wor:customer&gt; 
               
               
                   &lt;wor:customerId&gt;30563&lt;/wor:customerId&gt; 
               
               
                   &lt;wor:corporateName&gt;CORPORATION ABC&lt;/wor:corporateName&gt; 
               
               
                    &lt;/wor:customer&gt; 
               
               
                   −  &lt;wor:physicalSite&gt; 
               
               
                   &lt;wor:cfSede&gt;0erererere03&lt;/wor:cfSede&gt; 
               
               
                    &lt;/wor:physicalSite&gt; 
               
               
                   −  &lt;wor:physicalSite&gt; 
               
               
                   &lt;wor:physicalSiteId&gt;3&lt;/wor:physicalSiteId&gt; 
               
               
                   &lt;wor:physicalSiteType&gt;Y&lt;/wor:physicalSiteType&gt; 
               
               
                   &lt;wor:ragioneSociale&gt;Ph Site 30&lt;/wor:ragioneSociale&gt; 
               
               
                   &lt;wor:cfSede&gt;0030303&lt;/wor:cfSede&gt; 
               
               
                   &lt;wor:physicalSiteName&gt;30&lt;/wor:physicalSiteName&gt; 
               
               
                   &lt;wor:addressLocalita&gt;Rieti&lt;/wor:addressLocalita&gt; 
               
               
                   &lt;wor:addressIndirizzo&gt;via Garibaldi&lt;/wor:addressIndirizzo&gt; 
               
               
                   &lt;wor:addressCivico&gt;234&lt;/wor:addressCivico&gt; 
               
               
                   &lt;wor:addressCap&gt;02300&lt;/wor:addressCap&gt; 
               
               
                   &lt;wor:addressProvincia&gt;Rieti&lt;/wor:addressProvincia&gt; 
               
               
                   &lt;wor:siglaProvincia&gt;RI&lt;/wor:siglaProvincia&gt; 
               
               
                   &lt;wor:trNome&gt;Name1&lt;/wor:trNome&gt; 
               
               
                   &lt;wor:trCognome&gt;Name2&lt;/wor:trCognome&gt; 
               
               
                   &lt;wor:trTelefono /&gt; 
               
               
                   &lt;wor:trCellulare /&gt; 
               
               
                   &lt;wor:trMail&gt;name1.name2@companyabc.it&lt;/wor:trMail&gt; 
               
               
                   &lt;wor:trFax /&gt; 
               
               
                   &lt;wor:trIndirizzo /&gt; 
               
               
                   &lt;wor:trLocalita /&gt; 
               
               
                   &lt;wor:trProvincia /&gt; 
               
               
                   &lt;wor:trCap /&gt; 
               
               
                   &lt;wor:interoperabilita&gt;No&lt;/wor:interoperabilita&gt; 
               
               
                   &lt;wor:administrativeZone&gt;C1&lt;/wor:administrativeZone&gt; 
               
               
                   &lt;wor:additionalInfo /&gt; 
               
               
                   &lt;wor:codUtSede&gt;303&lt;/wor:codUtSede&gt; 
               
               
                   &lt;wor:tguSedeMaster /&gt; 
               
               
                   &lt;wor:siteIdCRM&gt;30&lt;/wor:siteIdCRM&gt; 
               
               
                   &lt;wor:tguPhSite&gt;30&lt;/wor:tguPhSite&gt; 
               
               
                   &lt;wor:cmmSite&gt;site_oxe&lt;/wor:cmmSite&gt; 
               
               
                    &lt;/wor:physicalSite&gt; 
               
               
                   −  &lt;wor:logicalSite&gt; 
               
               
                   &lt;wor:logicalSiteId&gt;1001&lt;/wor:logicalSiteId&gt; 
               
               
                   &lt;wor:type&gt;GNR&lt;/wor:type&gt; 
               
               
                   &lt;war:name&gt;30092374&lt;/wor:name&gt; 
               
               
                   &lt;wor:siteId&gt;32&lt;/wor:siteId&gt; 
               
               
                   &lt;wor:publicIpAddress&gt;10.10.10.10&lt;/wor:publicIpAddress&gt; 
               
               
                   &lt;wor:mandatoryCos&gt;All-Mobile&lt;/wor:mandatoryCos&gt; 
               
               
                   &lt;wor:districtCode&gt;030&lt;/wor:districtCode&gt; 
               
               
                   &lt;wor:districtName&gt;Roma&lt;/wor:districtName&gt; 
               
               
                   &lt;wor:sessionDirectorId&gt;1&lt;/wor:sessionDirectorId&gt; 
               
               
                   &lt;wor:northIf&gt;1&lt;/wor:northIf&gt; 
               
               
                   &lt;wor:qsig&gt;1&lt;/wor:qsig&gt; 
               
               
                   &lt;wor:nonQsig&gt;1&lt;/wor:nonQsig&gt; 
               
               
                   &lt;wor:additionalInfo /&gt; 
               
               
                   &lt;war:rangeSize&gt;4&lt;/wor:rangeSize&gt; 
               
               
                   &lt;wor:firstExDirNumber&gt;0923740001&lt;/wor:firstExDirNumber&gt; 
               
               
                   &lt;wor:firstIntDirNumber&gt;0001&lt;/wor:firstIntDirNumber&gt; 
               
               
                    &lt;/wor:logicalSite&gt; 
               
               
                   −  &lt;wor:ipPbx&gt; 
               
               
                   &lt;wor:ipPbxId&gt;1000&lt;/wor:ipPbxId&gt; 
               
               
                   &lt;wor:ipPbxType xsi:nil=“true” /&gt; 
               
               
                   &lt;wor:location&gt;30&lt;/wor:location&gt; 
               
               
                   &lt;wor:vendor&gt;Vendor ABC&lt;/wor:vendor&gt; 
               
               
                   &lt;wor:model&gt;Vendor ABC Uno Model&lt;/wor:model&gt; 
               
               
                   &lt;wor:publicIpAddress&gt;10.10.10.10&lt;/wor:publicIpAddress&gt; 
               
               
                   &lt;wor:hostName&gt;Hostname&lt;/wor:hostName&gt; 
               
               
                   &lt;wor:ipAddressVIanCustomer&gt;10.10.10.10 
               
               
                   &lt;/wor:ipAddressVIanCustomer&gt; 
               
               
                   &lt;wor:operatingSystem&gt;Unix&lt;/wor:operatingSystem&gt; 
               
               
                   &lt;wor:numberInventory&gt;10&lt;/wor:numberInventory&gt; 
               
               
                   &lt;wor:serialNumber&gt;1234&lt;/wor:serialNumber&gt; 
               
               
                   &lt;wor:release&gt;1&lt;/wor:release&gt; 
               
               
                   &lt;wor:description /&gt; 
               
               
                   &lt;wor:additionalInfo /&gt; 
               
               
                   &lt;wor:nodeNumber&gt;1&lt;/wor:nodeNumber&gt; 
               
               
                   &lt;wor:network&gt;1&lt;/wor:network&gt; 
               
               
                   &lt;wor:subnetwork&gt;1&lt;/wor:subnetwork&gt; 
               
               
                   &lt;wor:nodeName&gt;Node=1&lt;/wor:nodeName&gt; 
               
               
                   &lt;wor:networkName&gt;Network=1&lt;/wor:networkName&gt; 
               
               
                   &lt;wor:subnetworkName&gt;Subnetwork=1&lt;/wor:subnetworkName&gt; 
               
               
                   &lt;wor:profileDirectoryNumber&gt;1234567&lt;/wor:profileDirectoryNumber&gt; 
               
               
                   &lt;wor:auxiliaryServerFramework&gt;FWABC 
               
               
                   &lt;/wor:auxiliaryServerFramework&gt; 
               
               
                   &lt;wor:auxiliaryServerOv4760&gt;ABC AuxSrv 
               
               
                   &lt;/wor:auxiliaryServerOv4760&gt; 
               
               
                    &lt;/wor:ipPbx&gt; 
               
               
                   −  &lt;wor:ftpConfig&gt; 
               
               
                   &lt;wor:ftpUsername&gt;user&lt;/wor:ftpUsername&gt; 
               
               
                   &lt;wor:ftpPassword&gt;password&lt;/wor:ftpPassword&gt; 
               
               
                   &lt;wor:snmpRead&gt;prova&lt;/wor:snmpRead&gt; 
               
               
                   &lt;wor:snmpWrite&gt;prova&lt;/wor:snmpWrite&gt; 
               
               
                   &lt;wor:snmpReadConfirm&gt;prova&lt;/wor:snmpReadConfirm&gt; 
               
               
                   &lt;wor:snmpWriteConfirm&gt;prova&lt;/wor:snmpWriteConfirm&gt; 
               
               
                    &lt;/wor:ftpConfig&gt; 
               
               
                   −  &lt;wor:gnrs&gt; 
               
               
                   &lt;wor:gnrId&gt;1001&lt;/wor:gnrId&gt; 
               
               
                   &lt;wor:serviceTypeGNR&gt;90&lt;/wor:serviceTypeGNR&gt; 
               
               
                   &lt;wor:gnrDistrict&gt;030&lt;/wor:gnrDistrict&gt; 
               
               
                   &lt;wor:gnrPhone&gt;092374&lt;/wor:gnrPhone&gt; 
               
               
                   &lt;wor:reservedDerNum&gt;1000&lt;/wor:reservedDerNum&gt; 
               
               
                   &lt;wor:cac&gt;30&lt;/wor:cac&gt; 
               
               
                   &lt;wor:siteIdLogico&gt;30&lt;/wor:siteIdLogico&gt; 
               
               
                   &lt;wor:lowerBound&gt;3000&lt;/wor:lowerBound&gt; 
               
               
                   &lt;wor:upperBound&gt;3030&lt;/wor:upperBound&gt; 
               
               
                   &lt;wor:numCanaliQSIG&gt;30&lt;/wor:numCanaliQSIG&gt; 
               
               
                   &lt;wor:localArea&gt;area30&lt;/wor:localArea&gt; 
               
               
                   &lt;wor:routingNumber /&gt; 
               
               
                   &lt;wor:tnui&gt;301&lt;/wor:tnui&gt; 
               
               
                   &lt;wor:cnui&gt;302&lt;/wor:cnui&gt; 
               
               
                   &lt;wor:pbsts&gt;pbsts&lt;/wor:pbsts&gt; 
               
               
                   &lt;wor:domainId&gt;600&lt;/wor:domainId&gt; 
               
               
                   &lt;wor:siteId&gt;2&lt;/wor:siteId&gt; 
               
               
                   &lt;wor:range&gt;39092374XXXX&lt;/wor:range&gt; 
               
               
                   &lt;wor:digit&gt;4&lt;/wor:digit&gt; 
               
               
                   &lt;wor:prefixTranslate&gt;6002XXXX&lt;/wor:prefixTranslate&gt; 
               
               
                   &lt;wor:prefixPostTranslate&gt;39092374&lt;/wor:prefixPostTranslate&gt; 
               
               
                   &lt;wor:tradLowerBound&gt;0000&lt;/wor:tradLowerBound&gt; 
               
               
                   &lt;wor:tradUpperBound&gt;9999&lt;/wor:tradUpperBound&gt; 
               
               
                   −  &lt;wor:msemInfo&gt; 
               
               
                   &lt;wor:msempAclId&gt;300&lt;/wor:msempAclId&gt; 
               
               
                   &lt;wor:imsspAclId&gt;301&lt;/wor:imsspAclId&gt; 
               
               
                   &lt;wor:moduloVTCH1pi&gt;304&lt;/wor:moduloVTCH1pi&gt; 
               
               
                   &lt;wor:portaVTCH1pi&gt;305&lt;/wor:portaVTCH1pi&gt; 
               
               
                   &lt;wor:moduloVTCH2pi&gt;306&lt;/wor:moduloVTCH2pi&gt; 
               
               
                   &lt;wor:portaVTCH2pi&gt;307&lt;/wor:portaVTCH2pi&gt; 
               
               
                    &lt;/wor:msemInfo&gt; 
               
               
                   −  &lt;wor:msemInfo&gt; 
               
               
                   &lt;wor:msempAclId&gt;302&lt;/wor:msempAclId&gt; 
               
               
                   &lt;wor:imsspAclId&gt;303&lt;/wor:imsspAclId&gt; 
               
               
                   &lt;wor:moduloVTCH1pi&gt;308&lt;/wor:moduloVTCH1pi&gt; 
               
               
                   &lt;wor:portaVTCH1pi&gt;309&lt;/wor:portaVTCH1pi&gt; 
               
               
                   &lt;wor:moduloVTCH2pi&gt;300&lt;/wor:moduloVTCH2pi&gt; 
               
               
                   &lt;wor:portaVTCH2pi&gt;301&lt;/wor:portaVTCH2pi&gt; 
               
               
                    &lt;/wor:msemInfo&gt; 
               
               
                    &lt;/wor:gnrs&gt; 
               
               
                   −  &lt;wor:ipVoip&gt; 
               
               
                   &lt;wor:nameSD&gt;s&lt;/wor:nameSD&gt; 
               
               
                   &lt;wor:ipAddressSD&gt;s&lt;/wor:ipAddressSD&gt; 
               
               
                   &lt;wor:subnetSD&gt;s&lt;/wor:subnetSD&gt; 
               
               
                   &lt;wor:ipAddressDHCP&gt;s&lt;/wor:ipAddressDHCP&gt; 
               
               
                   &lt;wor:subnetDHCP&gt;s&lt;/wor:subnetDHCP&gt; 
               
               
                   &lt;wor:ipAddressCMM&gt;s&lt;/wor:ipAddressCMM&gt; 
               
               
                   &lt;wor:subnetCMM&gt;s&lt;/wor:subnetCMM&gt; 
               
               
                   &lt;wor:numServerCMM&gt;89&lt;/wor:numServerCMM&gt; 
               
               
                   &lt;wor:ipLanNetwork&gt;s&lt;/wor:ipLanNetwork&gt; 
               
               
                   &lt;wor:codeIPCX&gt;s&lt;/wor:codeIPCX&gt; 
               
               
                   &lt;wor:ipLanSubnetMask&gt;s&lt;/wor:ipLanSubnetMask&gt; 
               
               
                    &lt;/wor:ipVoip&gt; 
               
               
                   −  &lt;wor:option&gt; 
               
               
                   &lt;wor:optionType&gt;s&lt;/wor:optionType&gt; 
               
               
                   &lt;wor:optionValue&gt;s&lt;/wor:optionValue&gt; 
               
               
                    &lt;/wor:option&gt; 
               
               
                    &lt;/xml-fragment&gt; 
               
               
                   
               
             
          
         
       
     
         [0040]    The presentation manager  212  may manage requests from the presentation layer components, and either responds directly to each request or invokes other business layer components to complete each request. The service configuration manager  213  may manage service configuration and consistency information. The workflow manager  120  may invoke the service configuration manager  213  to retrieve information that identifies the workflows to activate, the network elements  226  and service specific parameters required, and update service consistency information on the database  145 . The user profile manager  214  may manage EUC administrators&#39; application profiles and end user service profiles, access to internal users&#39; profiles and service profiles database, and may communicate with the network elements  226  responsible for user identity and access management. The order manager  215  may manage communication with one or more of the network elements  226  (i.e., provisioned network elements). The workflow manager  120  may send work orders  147  to one or more provisioned network elements  226 , after having interacted with order manager  215  and having validated each work order  147 . 
         [0041]    The integration layer  220  may manage communication between the business layer components and the network elements  226 . The integration layer  220  may use adapters  222  (i.e., web services), to communicate with the network elements  226  to provision and manage services. Each network element  226  communicates with the integration layer  220  through a dedicated adapter. Each adapter  222  may process multiple simultaneous requests, and a single request from the business layer  210  or another adapter may cause the adapter  222  to forward multiple requests to the corresponding network elements  226 . For example, where business layer  210  requests a service from network element  228 , through service bus  230 , adapter  224  may forward multiple requests to network element  228  to complete the business layer  210  request. Each adapter  222  may publish its interface (i.e., service) on the service bus  230 , and communicate synchronously or asynchronously via a call-back interface. The adapters  222  use document based interfaces (XML files) designed to hide the complexity of the external systems. The business layer  210  and adapters  222  at the integration layer  220  communicate based on SOAP/http and XML. Each adapter  222  receives a request from a business layer component; transforms the request (XML based) into a set of requests to the corresponding external system; calls the external system&#39;s APIs (Application Program Interfaces) and waits for a response; aggregates the information retrieved while processing the XML document (request); and returns the results back to the business layer  210 . During synchronous communication, the adapter  222  returns the result in an http response to the initial web service call. During asynchronous communication, the adapter  222  returns the result to the business layer  210  via a call-back towards a dedicated Web Service. During asynchronous communications the adapter  222  returns an immediate acknowledgement to the business layer  210  upon a valid business layer  210  request, or an error message if the EUC system  102  cannot process the request (e.g., an invalid request, a full input queue, an external system unavailable message, or an external system error message). 
         [0042]    The service bus  230  may manage communications between the presentation layer  200 , business layer  210  and integration layer  220 . The service bus  230  hides the network complexity of managing and provisioning network services, facilitates isolated development and testing of components at each layer, and thereby improves service deployment time and service levels. The service bus  230  may provide protocol switching, content routing and message transformation functionalities. The service bus  230  may manage communication between the business layer components, either synchronously (SOAP/http) or asynchronously (JMS). The service bus  230  may manage timeouts and retries that occur during communication between the business layer  210  and the integration layer  220 , and call-backs from the integration layer  220  to the business layer  210 . When a request (call) from a business layer component to an adapter  222  times out while waiting for an acknowledgement from the adapter  222 , the service bus  230  may automatically resend the request (call) for a configurable number of times. When an asynchronous response (call-back) from an adapter  222  to the business layer  210  times out, the adapter  222  may automatically resend the response back to the business layer  210  for a configurable number of times. The adapters  222  also manage time outs and retries that occur while in communication with the network elements  226 , a configurable number of times. 
         [0043]      FIG. 3  illustrates the interactions between the Logical Layers. When one of the presentation layer components initiates a request (Act  305 ), the presentation manager  212  receives the request (Act  310 ) and may respond directly to the request (Act  315 ) or forward the request to the workflow manager  120 . If the presentation manager  212  responds directly to the request the presentation manager  212  may return a response to the presentation layer component (Act  360 ). In the event the presentation manager  212  forwards the request to the workflow manager  120  (Act  320 ), the workflow manager  120  retrieves service configuration information from the service configuration manager  213  (Act  325 ), and user profile information from the user profile manager  214  (Act  330 ). The workflow manager  120  may use information from the service configuration manager  213  and the user profile manager  214  to determine which processes and workflow steps to activate, or enable or disable, to complete the request (Act  335 ). 
         [0044]    In the event the workflow manager  120  does not identify recovery tasks  118  to complete before completing the request (Act  340 ) then the workflow manager  120  may forward work orders  147  to the order manager  215  (Act  345 ). The order manager  215  may process the work orders  147  received from the workflow manager  120 , and the workflow manager communicates with one or more network elements  226  to activate the requested service (Act  350 ). In the event the workflow manager  120  identifies recovery tasks  118  that may require completion before completing the request (Act  340 ) then the workflow manager  120  may initiate execution of the dynamic GUI rendering program  136  (Act  355 ). Once the dynamic GUI rendering program  136  completes generation of the GUI rendering  144 , the dynamic GUI rendering program  136  forwards the GUI rendering  144  to the presentation manager  212  (Act  356 ). The presentation manager  212  returns the GUI rendering  144  to the presentation layer component (Act  360 ) where the GUI rendering  144  is presented in the WUI  201 . 
         [0045]      FIG. 4  shows the error handling process flow diagram. When the workflow manager  120  receives a request (Act  410 ) the workflow manager retrieves service configuration information from the service configuration manager  213 , and user profile information from the user profile manager  214  to determine whether recovery tasks  118  may require completion before activating service or completing a request (Act  415 ). If the workflow manager  120  determines that no recovery tasks require completion before service activation then the workflow manager  120  completes the service activation and the request (Act  420 ). In the event the workflow manager  120  determines that recovery tasks  118  may require completion before completing the request, then the workflow manager initiates execution of the dynamic GUI rendering program  136  (Act  425 ). The dynamic GUI rendering program  136  generates a task list and the GUI rendering  144 , and delivers both to the presentation manager  212 , which returns the results to the presentation layer (Act  430 ). 
         [0046]      FIG. 5  shows acts that the dynamic GUI rendering program may take to dynamically generate a GUI rendering. The user interface composition data file  138  and the user interface rules file  142  files may store the information that defines the tasks and sequence of workflow steps to perform to complete the state transition  116 , and the start and end points of a transition. Accordingly, neither the presentation layer  200 , nor the workflow manager  120  needs to maintain every possible sequence of workflow steps and every possible static GUI rendering  144 . The business layer  210  may manage the user interface composition data file  138  and the user interface rules file  140  to configure the state transitions  116 , and generate the dynamic GUI renderings  144 . Customizations to the error handling and recovery tasks  118  may be isolated to the user interface composition data file  138  and the user interface rules file  140 . When the workflow manager initiates execution of the dynamic GUI rendering program  136  the dynamic GUI rendering program  136  retrieves the user interface composition data file  138  (Act  505 ), and the user interface rule file  140  (Act  510 ), and the user interface data  175  (Act  520 ). The dynamic GUI rendering program  136  uses the retrieved data to identify the state transition  116  (Act  520 ), and generate recovery tasks  118  (Act  525 ). The dynamic GUI rendering program  136  then generates the dynamic GUI rendering  144  and returns both to the presentation layer  200  (Act  540 ). 
         [0047]      FIG. 6  shows a user interface composition data file  146 . In the example shown in  FIG. 6 , the user interface composition data file  146  uses an XML based structure that defines data used to render the GUI rendering  144 , and includes an orderworkflow element  613 , ordertransition element  633 , and ordertask element  663 . The orderworkflow element  613  may identify workflows to perform to complete a state transition  116 , and the start and end points of the state transition. The ordertransition element  633  may identify one or more tasks to perform to complete a state transition  116 . The ordertask element  663  may identify one or more tasks associated with the ordertransition element  633  to perform for a state transition  116 . 
         [0048]    The orderworkflow element  613  may include tags that identify: the service order or recovery tasks to manage, using the oltype tag  615 ; the start point for a state transition, using the starttransition tag  620 ; and the outstanding task or tasks of the workflow to complete, based on the starttransition tag  620 , and the last action performed indicated by the action tag  640  of the transition tag  625  (i.e., state transition  116 ). In other words, for a given service order (i.e., request to provision service or recovery task) one or more workflows and state transitions maybe identified based on completed workflow steps and state transitions, where workflow steps include one or more state transitions including one or more tasks. The orderworkflow element  613  may also identify the default state transition, using defaulttransition tag  630 , where a starttransition tag  620  and action tag  640  in combination does not indicate an alternative state transition. 
         [0049]    The ordertransition element  633  may further identify the transition tag  625  (i.e., state transition  116 ); the current status of the state transition  116 , using the statusin tag  635 ; the tasks to complete in order to pass from the status indicated by the statusin tag  635  to a statusout tag  645  status set to “complete”; and the action tag  640 , which indicates the last action performed. The ordertransition element  633  may include a workloglevel tag  650  that defines whether to store a line of code, numerical values as codes or other information in the database as a log of the performed operation or task. The ordertransition element  633  also may include: a description of the state transition  116 , using a description tag  655 ; and identify one or more tasks needed to complete the state transition  116 , using the task tag  660 . The statusin  635  tag, in combination with the action  640  tag, determine the state transition  116  by identifying the completed tasks, or alternatively the uncompleted tasks associated with the state transition  116 . The ordertransition element  633  may specify whether a state transition includes multiple tasks, using multiple task tags  660 . 
         [0000]    The ordertask element  663  further defines the tasks identified by the task tag  660  of the ordertransition  633  element, and includes tags that identify: the type of task, either automatic or manual, using the tasktype tag  675 ; and actions associated with the task, using the taskaction tag  680  (e.g., set e-mail address or contact information). Table 2 shows an example taskaction tag to insert a new IP-PBX for system EMX, which the system may perform to complete a service order for a new IP-PBX. 
         [0000]    
       
         
               
             
               
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                 taskaction tag 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 &lt;task&gt; 
               
               
                   
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   
                   &lt;type&gt;AUTO&lt;/type&gt; 
               
               
                   
                   &lt;action&gt;insertNewIP-Pbx&lt;/action&gt; 
               
               
                   
                   &lt;status&gt;NEW&lt;/status&gt; 
               
               
                   
                   &lt;functionId&gt;ord.centralino.add&lt;/functionId&gt; 
               
               
                   
                   &lt;worklistTaskId&gt;&lt;/worklistTaskId&gt; 
               
               
                   
                   &lt;system&gt;EMX&lt;/system&gt; 
               
               
                   
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   
                   &lt;errorCondition&gt;false&lt;/errorCondition&gt; 
               
               
                   
                   &lt;additionalInfo&gt;Automatic Pbx Insert&lt;/additionalInfo&gt; 
               
               
                   
                 &lt;/task&gt; 
               
               
                   
                   
               
             
          
         
       
     
         [0050]      FIG. 7  shows a user interface rule file  142 . After an error occurs or recovery task  118  requires a user interaction to complete a state transition  116 , a composition data transformation  154  specific to the error identified in the user interface rule file  142  may be applied to user interface composition data  138  identified in the user interface composition data file  146  to generate a GUI rendering  144 . Referring to Table 1 above that shows a work order  147  that identifies a work order physical site (i.e., xml-fragment/wor:physicalSite) and some of the physical site&#39;s attributes to which the user interface rule file  142  applies a composition data transformation  154 .  FIG. 7  illustrates a composition data transformation  154  that sets the background color to yellow and the font weight to bold for the user interface composition data  138  related to “xmlfragment/wor:physicalSite” identified in the work order  147  shown in Table 1. 
         [0051]    In an alternate implementation, Table 3 shows user interface composition data  138  and user interface rules file data  140  combined in one XML to simplify development, deployment, and maintenance. In the alternate implementation, the combined user interface composition data  138  and user interface rules data  140  file, shown in Table 3, may include an element dinamicJspData that contains a rule that indicates that the IP-PBX data from the work order  147 , displayed in a GUI rendering  144 , may be modified by the user. 
         [0000]    
       
         
               
             
               
             
           
               
                 TABLE 3 
               
               
                   
               
               
                 combined user interface composition data 138 and 
               
               
                 user interface rules file data 140 file 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                   &lt;?xml version=“1.0” encoding=“UTF-8” ?&gt; 
               
               
                 − &lt;orderWorkflow xmlns=“http://abc.xyz.it/schemas/orderStatusManager” 
               
               
                 xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” 
               
               
                 xsi:schemaLocation=“http://abc.xyz.it/schemas/orderStatusManager 
               
               
                 OrderStatusManager.xsd”&gt; 
               
               
                   &lt;olType&gt;addIpPbx&lt;/olType&gt; 
               
               
                 − &lt;startTransition&gt; 
               
               
                   &lt;statusIn&gt;statusInStartTransition&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;actionStartTransition&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;20&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;VALIDATO ORDINE RICEVUTO DA ATOM&lt;/description&gt; 
               
               
                   &lt;/startTransition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneEsplosioneDerivati&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;50&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;GESTIONE ESPLOSIONE DERIVATI&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;completataEsplosioneDerivati&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.gnr.explosion&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EUC&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;false&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo&gt;ESPLOSIONE ARCHI&lt;/additionalInfo&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;completataEsplosioneDerivati&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;60&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;ESPLOSIONE DERIVATI COMPLETATA&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneCentralino&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;70&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;GESTIONE CENTRALINO&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;inserimentoCentralino&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.switchboard.management&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EMX&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;false&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo&gt;INSERIMENTO CENTRALINO&lt;/additionalInfo&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;preparazioneInterazioneConnettoreCmm&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;80&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;PREPARAZIONE INTERAZIONE CMM&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;preparazioneInterazioneConnettoreEmx&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;90&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;PREPARAZIONE INTERAZIONE EMX&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;centralinoCompleto&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;100&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;CENTRALINO COMPLETO&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneUtenze&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;110&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;GESTIONE UTENZE&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;gestioneUtenzeInCorso&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.line.management.multiple&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EUC&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;false&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo&gt;GESTIONE UTENZE&lt;/additionalInfo&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneUtenzeInCorso&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;120&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;GESTIONE UTENZE IN CORSO&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneIssw&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;64&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;GESTIONE ISSW&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;gestioneIsswInCorso&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.msem.management&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EUC&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;false&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo&gt;GESTIONE ISSW&lt;/additionalInfo&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneIsswInCorso&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;65&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;GESTIONE ISSW IN CORSO&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;ordineCompletato&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;160&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;ORDINE COMPLETATO&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;ordineAnnullato&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;170&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;ORDINE ANNULLATO&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;emxAddCustomerException&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;*&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                    &lt;description&gt;RECUPERO  ERRORI  DOVUTI  ALL&#39;INTERAZIONE  CON  LA 
               
               
                 PIATTAFORMA EMX&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;gestioneEmxRespose&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.exception.communication&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EMX&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;true&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo /&gt; 
               
               
                 − &lt;dinamicJspData&gt; 
               
               
                 − &lt;type&gt; 
               
               
                   &lt;id&gt;workOrder&lt;/id&gt; 
               
               
                 − &lt;section&gt; 
               
               
                   &lt;id&gt;CUSTOMER&lt;/id&gt; 
               
               
                   &lt;changeable&gt;true&lt;/changeable&gt; 
               
               
                   &lt;/section&gt; 
               
               
                   &lt;/type&gt; 
               
               
                   &lt;/dinamicJspData&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;emxAddIpPbxException&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;*&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                    &lt;description&gt;RECUPERO  ERRORI  DOVUTI  ALL&#39;INTERAZIONE  CON  LA 
               
               
                 PIATTAFORMA EMX&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;gestioneEmxRespose&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.exception.communication&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EMX&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;true&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo /&gt; 
               
               
                 − &lt;dinamicJspData&gt; 
               
               
                 − &lt;type&gt; 
               
               
                   &lt;id&gt;workOrder&lt;/id&gt; 
               
               
                 − &lt;section&gt; 
               
               
                   &lt;id&gt;IPPBX&lt;/id&gt; 
               
               
                   &lt;changeable&gt;true&lt;/changeable&gt; 
               
               
                   &lt;/section&gt; 
               
               
                   &lt;/type&gt; 
               
               
                   &lt;/dinamicJspData&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;emxAddPhysicalSiteException&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;*&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                    &lt;description&gt;RECUPERO  ERRORI  DOVUTI  ALL&#39;INTERAZIONE  CON  LA 
               
               
                 PIATTAFORMA EMX&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;gestioneEmxRespose&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.exception.communication&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EMX&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;true&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo /&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;emxAddLogicalSiteException&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;*&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                    &lt;description&gt;RECUPERO  ERRORI  DOVUTI  ALL&#39;INTERAZIONE  CON  LA 
               
               
                 PIATTAFORMA EMX&lt;/description&gt; 
               
               
                 − &lt;task&gt; 
               
               
                   &lt;id&gt;0&lt;/id&gt; 
               
               
                   &lt;olId&gt;0&lt;/olId&gt; 
               
               
                   &lt;type&gt;MANUAL&lt;/type&gt; 
               
               
                   &lt;action&gt;gestioneEmxRespose&lt;/action&gt; 
               
               
                   &lt;status&gt;NUOVO&lt;/status&gt; 
               
               
                   &lt;functionId&gt;ord.exception.communication&lt;/functionId&gt; 
               
               
                   &lt;worklistTaskId /&gt; 
               
               
                   &lt;system&gt;EMX&lt;/system&gt; 
               
               
                   &lt;flagBlocking&gt;true&lt;/flagBlocking&gt; 
               
               
                   &lt;errorCondition&gt;true&lt;/errorCondition&gt; 
               
               
                   &lt;additionalInfo /&gt; 
               
               
                   &lt;/task&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;transition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;gestioneEmxRespose&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;*&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                   &lt;description&gt;LA GESTIONE DEGLI ERRORI DOVUTI ALL‘INTERAZIONE CON 
               
               
                 LA PIATTAFORMA EMX E’ STATA PORTATA A TERMINE&lt;/description&gt; 
               
               
                   &lt;/transition&gt; 
               
               
                 − &lt;defaultTransition&gt; 
               
               
                   &lt;statusIn&gt;any&lt;/statusIn&gt; 
               
               
                   &lt;action&gt;defaultTransition&lt;/action&gt; 
               
               
                   &lt;statusOut&gt;*&lt;/statusOut&gt; 
               
               
                   &lt;worklogLevel&gt;0&lt;/worklogLevel&gt; 
               
               
                     &lt;description&gt;QUESTA  OPERAZIONE  NON  GENERA  NESSUN 
               
               
                 EFFETTO&lt;/description&gt; 
               
               
                   &lt;/defaultTransition&gt; 
               
               
                   &lt;/orderWorkflow&gt; 
               
               
                   
               
             
          
         
       
     
         [0052]      FIG. 8  shows dynamic GUI renderings  805 . The dynamic GUI renderings  805  may include interface elements to perform the operations to recover the error (e.g. a Skip element  812 , an Abort element  814 , and a Retry element  816 ). Dynamic GUI renderings  805  may result from the workflow manager  120  updating work order  147  parameters and state information, and processing information from the service configuration manager  213  to determine which processes and workflow steps to activate, or enable or disable, to complete work orders. Dynamic GUI renderings  805  may result from the workflow manager  120 , in coordination with the error handling subsystem  112 , generating user tasks lists  160  and GUI renderings (e.g., dynamic GUI rendering-A  810  and dynamic GUI rendering-B  820 ) to assist a user to resolve errors or conditions requiring user interactions, which ultimately result in the activation of IP Multimedia services. The workflow manager  120  may generate the dynamic GUI rendering-A  810  with tasks list  160  after retrieving the most current service configuration requirements from the service configuration manager  213 , and thereby identifying the state transition  116 . Configuration changes at the integration layer  220  (e.g., a new network element  226  implemented at the integration layer  220  that replaces a prior network element, and requires different, fewer or more configuration information than the prior network element) may be realized dynamically by the workflow manager  120 , so that the GUI rendering-A  810  reflects such changes dynamically. 
         [0053]    A user may select a task (e.g., Task A) from the tasks list  160  that causes the workflow manager  120  to generate another GUI rendering (e.g., dynamic GUI rendering-B  820 ) that presents service configuration parameters to a user for validation (e.g., Srvc Config Parameter  1 - 7 ) or customization (e.g., Input Field  1 - 7 ). The workflow manager  120  may generate the dynamic GUI rendering only after determining the currently required service configuration information  126 , rules, user input fields, actions, and state transition  116 . For example, the EUC system  102  may integrate a new or alternative network service through a recently integrated network element  226  that requires the user to self-provision the service differently from a prior procedure for requesting service activation. Although one or more different or entirely new workflows, tasks or service configuration parameters require user interaction, the GUI renderings  144  adapt, without requiring programming changes at the presentation layer  200 . The presentation layer  200 , and the workflow manager  120  do not need to maintain every possible sequence of workflow steps, tasks list  160  and every possible GUI renderings. The EUC system  102  may present new network services to users, while isolating development to the integration layer  220  and hiding the complexity of the network entirely from the user. 
         [0054]      FIG. 9  shows a service bus layer separation. The service bus  230  may manage communications between the presentation layer  200 , business layer  210  and integration layer  220 . The service bus  230  hides the complexity of managing and provisioning network elements  226 , facilitates isolating development and testing of components at each layer, and thereby, improves service deployment time and service levels. The service bus  230  may provide protocol switching, content routing and message transformation functionalities using multiple configurable proxy services  905 - 935 , and corresponding business services  955 - 985 . The service bus  230  may manage communication between the business layer components, either synchronously (SOAP/http) or asynchronously (JMS) using the proxy services  905 - 935  and corresponding business services  955 - 985 . 
         [0055]    The service bus may simulate integration layer adapters, based on standard web services. The service bus may deploy stub adapters (simulator proxy services) to facilitate development of business logic, and substitute production adapters for the stub adapters once development has completed, and thereby isolating impacts to the service bus configuration. Accordingly, the EUC system  102  may configure the service bus to call the operational adapter (real external system, i.e., network element), after successful completion of integration testing, without modifying components at the business layer and without modifying the real adapter at the integration layer. 
         [0056]    The service bus  230  also may manage timeouts and retries that occur during communication between the business layer  210  and the integration layer  220 , and call-backs from the integration layer  220  to the business layer  210 . When a request (call) from a business layer component to an adapter  222  times out while waiting for an acknowledgement from the adapter  222 , the service bus  230  may automatically resend the request (call) for a configurable number of times. When an asynchronous response (call-back) from an adapter  222  to the business layer  210  times out, the service bus  230  may automatically resend the response back to the business layer  210  for a configurable number of times. The service bus  230  also manages time outs and retries that occur while in communication with the network elements  226 , a configurable number of times. 
         [0057]      FIG. 10  shows a service bus flow diagram. When a presentation layer component, business layer component or integration layer component calls one of the proxy services  905 - 930  (Act  1005 ), the proxy service may operate in one of at least two configurable modes, namely as a standard proxy or a simulator proxy. If the Standard proxy service receives a request (Act  1015 ) then the proxy service may proxy the incoming request to the corresponding business service (Act  1015 ), which receives the request and forwards the request to the final addressee (Act  1020 ). If a Simulator proxy service receives a request the proxy service may return a response to the calling layer without interacting with the corresponding business service (Act  1097 ). 
         [0058]    The EUC system  102  and remote user device  134  may include general purpose computing devices in the form of a conventional computing environment (e.g., personal computer, a laptop, mobile device, or personal digital assistant), including a processing unit, a system memory, and a system bus that couples various system components including the system memory to the processing unit. The processing unit may perform arithmetic, logic, and control operations by accessing system memory. The system memory may store information and instructions for use in combination with the processing unit. The system memory may include volatile and non-volatile memory, such as random access memory (RAM) and read only memory (ROM). A basic input/output system (BIOS) containing the basic routines that help transfer information between elements within the personal computer, such as during start-up, may be stored in ROM. The system bus may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. 
         [0059]    The end user control configuration (EUC) system with dynamic user interface  102  and remote user device  134  may further include a hard disk drive for reading from and writing to a hard disk, and an external disk drive for reading from or writing to a removable disk. The removable disk may be a magnetic disk for a magnetic disk driver or an optical disk such as a CD ROM for an optical disk drive. The hard disk drive and external disk drive are connected to the system bus by a hard disk drive interface and an external disk drive interface, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the personal computer. The relevant data may be organized in a database, for example in a relational or object database. 
         [0060]    It should be appreciated by those skilled in the art that the computing environment presently described may include any type of computer readable media which can store data accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories, read only memories, and the like, may also be used in the exemplary computing environment. 
         [0061]    A number of program modules may be stored on a hard disk, external disk, ROM or RAM, including an operating system, one or more application programs, other program modules, and program data. The application programs may include at least a part of the functionality as indicated in  FIGS. 1 through 10 . 
         [0062]    A user may enter commands and information, as discussed above, into the graphical user interface (GUI)  120  through input devices such as a keyboard and mouse. Other input devices may include a microphone (or other sensors), joystick, game pad, scanner, or the like. These and other input devices may be connected to the processing unit  104  through a serial port interface coupled to the system bus, or may be connected by other interfaces, such as a parallel port interface, wireless communication device such as a modem, game port, or a universal serial bus (USB). Further, information may be printed using a printer. The printer, and other parallel input/output devices, may be connected to the processing unit through parallel port interface. An interface also connects a monitor or other type of display device to the system bus, such as a video input/output. In addition to the monitor, the computing environment may include other peripheral output devices, such as speakers or other audible or visual output. 
         [0063]    The computing environment may communicate with other electronic devices, wired or wireless, such as a computer, telephone, personal digital assistant, television, or the like. To communicate, the computer environment may operate in a networked environment using connections to one or more electronic devices. The computer environment may also be networked with a remote computer. The remote computer may be another computing environment such as a server, a router, a network PC, a peer device, or other common network node, and may include many or all of the elements described above relative to the computing environment. The logical connections may include a local area network (LAN) and a wide area network (WAN). Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. The network connections shown are examples only, and other logic for establishing a communications link between the electronic devices may be used. The above-described computing system is only one example of the type of computing system that may be used to implement the EUC system  102 . 
         [0064]    A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of the following claims.

Technology Category: h