8 Replies Latest reply: Jun 27, 2012 6:51 AM by Todd Little-Oracle RSS

    What Best Approach Tuxedo offers for Integrating Multiple Apps

    Ahsan Asghar
      Hi Tuxedo Experts,
      I have a question in a scenario where I am planning to integrate multiple applications through Oracle Tuxedo. I will not be using it as a Transaction Processing System. Rather, I am trying to use it as an integration layer (somewhat like ESB). I have a couple of enterprise applications (Siebel & SAP), some telco system that only accept MML commands on a given port and some custom built applications. I have to design and implement the integration layer for this stack of applicaitons.

      As far as I have understood Oracle Tuxedo, I will have to develop Tuxedo client for each application and then make the clients do all integration related work (like an applicaiton adapter/wrapper). I am not thinking about work on SALT to expose web services throught Tuxedo, since web services can be created and exposed more easily without Tuxedo. So, I guess I have to do one client per application. First thing that I wanted to confirm was, am I on right track considering my scenario? or Oracle Tuxedo can offer a better approach for my scenario?

      Since I will be developing clients for each application that I integrate, would it be good if I skip the server all together and follow the Queue based communication (Peer-to-Peer Asynchronous Messaging Model)? Or will it cause any implications?

      Any guidance/tips is highly appreciated.

      Thanks & Regards,
      Ahsan Asghar
        • 1. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
          Todd Little-Oracle
          Hi Ahsan,

          Many customers use Tuxedo as a form of ESB. Partly due to its performance and scalability, but also partly due to its connectivity options. Along with SALT, Tuxedo provides connectivity to:

          JEE via WebLogic Tuxedo Connector in WebLogic Server, or the Tuxedo JCA Adapter
          Mainframes using the Tuxedo mainframe adapters (SNA and TCP for IBM mainframes and OSI-TP for Bull GCOS and the like)
          IBM Websphere MQ adapter

          The above are all transparent to Tuxedo clients and servers, i.e., using the SNA mainframe adapter, CICS applications see Tuxedo services as a DPL or APPC remote transaction, and Tuxedo see those CICS resources as Tuxedo services.

          As for writing clients, etc., the real question is where do you want the adopting (? maybe adaptation?) done and how can the systems needing integration communicate with Tuxedo. For example, as I mentioned in another thread, any service advertised in Tuxedo can be accessed as a SOAP/HTTP(S) web service. Siebel allows calling external web services as business services. SAP allows calling into it via Remote Function Calls (RFCs). So you could expose an SAP function module as a Tuxedo service writing a trivial Tuxedo server that uses RFC to call SAP. Then expose that Tuxedo service as a web service and call it from Siebel. The real issue becomes whether the SAP function module has the kind of interface you want or need. If not, you could potentially alter the interface to the SAP function module by changing the simple Tuxedo server and not trying to change SAP.

          Using the above technique, you only need one mechanism in Siebel to interact with any other system, as the mechanics of the communication are hidden. So the same technique (client as you were referring to it I believe) can be used to communicate with SAP and any other external system. For instance, let's say you have an external system you want to call from Siebel and the external system uses IBM WebSphere MQ Series in an asynchronous fashion. You could probably directly build an MQ client in Siebel to communicate with that remote system, but then your Siebel code has explicit knowledge of that remote system and how to communicate with it. If you already have a means of communicating with Tuxedo, you can use the same mechanism to communicate with the external system again by writing a simple Tuxedo server that accepts the request from Siebel and then enqueues the request (with perhaps some transformation first) to MQ, and then waits for a reply on the appropriate MQ reply queue. Thus Siebel sees a synchronous interaction even though the system it is communicating with is operating asynchronously.

          The primary advantage of the above technique is you only have to develop one form of communication for each system, instead of a point to point mess you might otherwise end up with.

          Of course the above can also be done with something like Oracle Service Bus, but it sounded as though you had specific reasons for using Tuxedo. OSB might be especially appealing if most of the system to integrate already use XML as OSB is very good at performing XML transformations, something Tuxedo isn't especially strong at.

          Regards,
          Todd Little
          Oracle Tuxedo Chief Architect
          • 2. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
            Ahsan Asghar
            Hi Todd & Fellow Forum Members,
            Thanks for such a comprehensive reply. I did get an idea how Tuxedo can play some part in an integration scenario.

            I understand that I have three options to talk between Siebel and other systems:
            1. Write a Client for each system that wants to receive messages/calls from Tuxedo Server
            2. Utilize a queuing system like WebSphere MQ (or may be others like Tibco EMS etc. if Tuxedo supports those)
            3. Call to system functionality through RFC/RPC and expose it as a web service on Tuxedo

            If I opt for point 1, I would be writing custom code in Siebel or any other system to call to the Tuxedo client (or embed Tuxedo client code within the system).
            I cannot go for point 2 as I do not have a messaging system available in the client environment (unless Tuxedo's inherent /Q functionality can accept messages on JMS standard, is that possible?)
            Point 3 does not seem as appealing, because if I have to expose web services using Tuxedo, I might as well write a light wrapper (outside Tuxedo) on any system and expose its functionalities through web services.

            Would you please help me get answers to aboce conerns.

            Thanks & Regards,
            Ahsan
            • 3. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
              Todd Little-Oracle
              Hi Ahsan,

              Tuxedo's /Q can integrate with WebLogic Server's JMS via the WebLogic Tuxedo Connector. This standard component of WLS contains a JMS bridge that can integrate JMS messaging with Tuxedo.

              I'm not sure why you are opposed to web services based integration. Perhaps you can explain a bit more? Creating a Tuxedo client call in whatever systems you are trying to integrate may be much harder than simply using SOAP. First it assumes that whatever systems you are trying to integrate can call some C functions that would then use the Tuxedo APIs to call into Tuxedo.

              Also, can you describe some use cases you have, i.e., what you want to call from where?

              Regards,
              Todd Little
              Oracle Tuxedo Chief Architect
              • 4. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
                Ahsan Asghar
                Hi Todd,
                Let me share little bit of context as you asked for use cases. We are implementing Siebel CRM in two phases.

                Phase1 - Customers & Sales Order Data will be created in existing Systems and this data will move to Siebel for View only purposes. Siebel will integrate with existing systems for getting data and not for getting any services from existing systems. This Customer & Sales Order data will be stored in Siebel and displayed on demand. Siebel will integrate with Receivables & Billing Systems to get Billing Information data on demand (brought & displayed on demand; not saved in Siebel). Siebel will integrate with some Telecom Core Network systems to get Subscription Status, Usage and Billing information.

                Phase2 - Customers & Sales Order Data will be created in Siebel and Sales Order will be provisioned on Service Provisioning systems. We will throw away data integration interfaces which were made in Phase1 to get Customer & Orders data from existing systems. We will still use integration with Billing, RS and Core Network systems (developed in Phase1).

                Two reasons why I am opposed to Web Service based integration in this specific scenario:
                - I am doing a lot of Data Integration. i.e. Customer & Sale Order data brought from existing systems. Message size will be rather large compared to average number of fields (10-20 fields) in a web service call.
                - I am not integrating to a service from existing systems, I am integrating with these systems for data (don't web services work for Service Oriented Architecture, normally).
                - Even if I go for web services in integration with Core Network Systems, shouldn't I write a simpler application that acts as a wrapper on Core Network systems and expose it as a web service. Hosting the web service on Tuxedo wouldn't be more complex (from development stand point) and expensive to maintain?

                I really appreciate your guidance and help on the concerns I have.

                Thanks & Regards,
                Ahsan
                • 5. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
                  Todd Little-Oracle
                  Hi Ahsan,

                  Perhaps I've misunderstood what you're trying to do. From your last post it seems like you need a data integration tool and not a service integration tool. Tuxedo is a SOA infrastructure for developing SOA based applications in C/C++/COBOL/Python/Ruby and soon PHP. Your requirements sound like something more suitable for Oracle Data Integrator than a SOA platform such as Tuxedo. You might get some better ideas over in the Siebel forum.

                  Regards,
                  Todd Little
                  Oracle Tuxedo Chief Architect
                  • 6. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
                    Ahsan Asghar
                    Hi Todd,
                    Actually my issue is, client has this Tuxedo implemented (for one system only) for accepting cash payment posts sent by banks and other similar 3rd party applications. They/client wants me to utilise Tuxedo for integration as well. They are not willing to spend on getting a proper ESB that can do it all (integration).

                    They do have Oracle Data Integrator as well but isn't that used for batch loads/ETL normally? I know it has the capability of picking data from sources other than Flat Files & DB. But Siebel does not allow putting data into its Core DB tables directly, which means loading data through Siebel's EIM tool (batch load utility). EIM takes a lot of resources even if we run small batches. If I have to do real time integration of data as well, I am not sure if that will be very optimised.

                    Besides, as I said earlier, I am in a situation where I have been given a tool (Tuxedo) and asked by client and my management to do the Integration using the given tool. So, I am trying to make some sense how I can do it and at the same time trying to learn Tuxedo development & administration.

                    I am hoping to get some idea how can I best utilize the given tool and how to actually work in it. Any help is much appreciated.

                    Really really gratefull for all the guidance I have got till now. I need some more though..

                    Thanks & Regards,
                    Ahsan
                    • 7. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
                      328729
                      Hi Asghar, how are you, can you tell mew what did you do with your integration problem??
                      • 8. Re: What Best Approach Tuxedo offers for Integrating Multiple Apps
                        Todd Little-Oracle
                        Hi Ahsan,

                        OK, so you do want service integration. Well Tuxedo should be able to provide this for you, or at least provide a platform on which you can build your service integration. Going back to your original post, I'm a little puzzled as to your statement that you aren't planning on using SALT as it is easier to create web services without Tuxedo? Although I don't believe that to be true, the problem is that then you just have web services and no other integration. If everything becomes a Tuxedo service, then you get web services essentially for free as there is no programming involved in turning a Tuxedo service into a web service. As well, once everything is a Tuxedo service, moving to something like OSB or SOA Suite, or other technologies becomes much easier.

                        As for building your adapters for your other systems, this in general is fairly straight forward. You create a Tuxedo service that offers a nicely defined Tuxedo service and inside the service implementation you use client calls or APIs to access the external system. Going in the other direction you could either create Tuxedo clients, or use the same server you created for outbound (out of Tuxedo) call, and simply add a client thread that handles incoming requests.

                        As I said originally, this is how many customers use Tuxedo.

                        Regards,
                        Todd Little
                        Oracle Tuxedo Chief Architect