10 Replies Latest reply on Aug 15, 2011 1:23 PM by rcernich

    SwitchYard Console

    rcernich

      Hey all,

       

      We're in the process of putting together an administrative console for SwitchYard.  We currently have a stubbed out application available on github:  https://github.com/jboss-switchyard/console

       

      The application is deployed as a WAR on AS7.  Once deployed, the console can be accessed at: http://localhost:8080/switchyard

      Attached is a screenshot.

       

      Currently, the application is divided into three segments:

      1.  SwitchYard deployment artifacts.

      2.  SwitchYard modules/components.

      3.  SwitchYard application/system.

       

      Each segment is responsible for providing access to any configurable properties and any operational details (not sure what either of those may be at this time).

       

      For deployment artifacts, the user should be able to view the components deployed by the artifact (domains, transformations, services, properties).  The user should also be able to view operational details specific to the deployment (e.g. message throughput, average latency, tracing information, etc.).

       

      In addition to static views and operational details, we would also like the console to serve as a basis for a SwitchYard editor.  The details around this are pretty sparse at this point, but a simple use case is for a user to be able to create a proxy to an existing web service directly from the web interface.  From there, the sky's the limit as they say.

       

      Architecture

      The application is based on GWT 2.2 and uses AS7's DMR interface for loading system details.  Most of the client side widgetry is imported from the AS7 console project (including the DMR client) via source inclusion (i.e. the SwitchYard console imports some of the AS7 source directly into its project, via maven-dependency-plugin).

       

      The DMR approach works fine for basic system configuration, but starts to break down once more complicated operations are required (e.g. retrieving only SwitchYard deployments).  Because of this, we are also looking at adding an administrative API to the SwitchYard application.  (I'll start up another discussion to talk specifically about that.)

       

      Any and all feedback and suggestions are welcome (good, bad or ugly ;)).

       

      Rob

        • 1. Re: SwitchYard Console
          rcernich

          I should also add that for visualization, we hope to provide interfaces graphically similar to those used by the SCA community (for service components) and the Camel/EAI community (for message flows).  Once again, this is pie in the sky and will probably not make it into the 0.2 release.

          • 2. Re: SwitchYard Console
            tfennelly

            Hi Rob.

             

            I checked out your master branch and built and deployed it.  Looks nice.

             

            Small things...

             

            1. The names of modules.  Currently using the archive file name.  Wouldn't it be nice to be able to provide friendy names for those e.g. maybe the name from the switchyard.xml?  Of course the issue there might be uniqueness.  Something to think of though perhaps.
            2. switchyard-console-gwt appears as one of the modules?

             

            Thanks Rob.

            • 3. Re: SwitchYard Console
              rcernich

              Hey Tom,

               

              Thanks for taking the time to look at console stub.

               

              1. The names of modules.  Currently using the archive file name.  Wouldn't it be nice to be able to provide friendy names for those e.g. maybe the name from the switchyard.xml?  Of course the issue there might be uniqueness.  Something to think of though perhaps.
              2. switchyard-console-gwt appears as one of the modules?

              1.  This is certainly a possibility.  We will be working through the management/administrative API in the days to come and will certainly keep this in mind.

              2.  Currently, there is no easy way to discern between a SY application and any other application deployed on the server.  I have created a patch which will tag SY deployments as belonging to the SY subsystem, but the changes have not made it into jboss-switchyard or the console.

               

              Thanks for the feedback,

              Rob

              • 4. Re: SwitchYard Console
                rcernich

                Hey all,

                 

                I have updated the console to display all SwitchYard applications and services.  The "application" page displays a list of all services contained within it.  The "service" page displays the containing application, implementation details (e.g. interface name) and gateways (well, just has a space for them).  Everything is tied together with hyperlinks, so you can click on a service in an application and it will take you to the service page (and vice versa).

                 

                I need to do a little bit of cleanup to get the branches ready to be pulled, but you can find the latest here:

                https://github.com/rcernich/console/tree/SWITCHYARD-361

                 

                Note, you'll need some changes to core, which can be found here:

                https://github.com/rcernich/core/tree/SWITCHYARD-361

                 

                I still need to integrate population of "components" into the admin model.  Once that is done, those will be available in the console too.

                 

                Rob

                • 5. Re: SwitchYard Console
                  rcernich

                  Screenshots of the new/updated console pages.

                   

                  Application details:

                  application_details.jpg

                   

                  Service details:

                  service_details.jpg

                   

                  System details

                  system_details.jpg

                  • 6. Re: SwitchYard Console
                    rcernich

                    Updated screenshots.

                     

                    Added "Transformers" tab to application page which lists transformers defined by the application.

                    Added "Component Services" list to services tab on application page.  This describes the component services contained by the application.

                    Added "Promoted Service" field to services list.  This contains the name of the component service promoted by the service.

                    Changed "Implementation" to "Promoted Service" on service page.

                    Gateways list on service page is now populated.  In addition, it adds a "configuration" column which, when clicked, opens a dialog with the raw configuration data.

                    Title bar is updated based on page displayed.

                    Namespaces are now displayed for services and applications.

                     

                    The screenshots:

                    Application services:

                    application_services.jpg

                     

                    Application transformers:

                    application_transforms.jpg

                     

                    Service details:

                    service_details.jpg

                     

                    Gateway configuration:

                    binding_details.jpg

                    • 7. Re: SwitchYard Console
                      kcbabo

                      This looks awesome!  One note : I think the composite service view should show an interface value even if one is not defined directly at the composite level.  In the forge tooling, I simply note that the interface is "inherited".  We could do the same in the admin console, or we could get fancier by including a link to the component level service with includes the interface.  Maybe an "inherited" link which points to the component-level service?  Any of those would work for me.  I don't think we want to leave that blank though.

                      • 8. Re: SwitchYard Console
                        kcbabo

                        After playing with this while processing your pull request, I want to reiterate that this is awesome! 

                         

                        One other enhancement that would be nice to see is a "View Configuration ...." at the component service level for implementation config.  Hopefully that's mostly a copy and paste exercise. :-)

                        • 9. Re: SwitchYard Console
                          rcernich

                          Hey Keith,

                           

                          Thanks for the kind words.

                           

                          Placing inherited into the composite service's interface, when one is not specified, sounds like a great idea.  I'll create a JIRA and add that in.

                           

                          As for the component service configuration, I can add that in too.

                           

                          Looking beyond 0.2, we'll need to review the admin API for completeness (e.g. injecting a component in between composite service and component service).  We should also start looking into how the UI can be extended for specific implementation types (e.g. camel vs. bpm).

                           

                          Thanks again,

                          Rob

                          • 10. Re: SwitchYard Console
                            rcernich

                            JIRA: https://issues.jboss.org/browse/SWITCHYARD-396

                             

                            Display composite service inherited interface and component service implementation configuration.