WebServices or JMS

Hi !
Need to know if JMS can be used instead of webservices.
My requirement is that i have 2 applications which have to contact each other over internet. I also don't need synchronous communication. One application is in java/jsp and other is in ASP/com.
Earlier i was planning to use webservices (xml/http) for communication among them.
Can i use JMS instead of Web Services ? Also, i have to use weblogic application server, so is MOM/JMS service provided in weblogic sufficient enough for full fledge use and can be used for communication between java and no-java clients over internet or do i need to use some other MOM service.
If anyone can provide me info on
1. If JMS can be an alternative to web service
2. How exactly JMS works over ineternet
3. If anyone has worked on weblogic JMS and prove me inputs on it

1. If JMS can be an alternative to web serviceIf you mean for asynchronous processing, certainly.
2. How exactly JMS works over ineternetIt won't - you have firewalls in the way (if your admins are smart).
3. If anyone has worked on weblogic JMS and prove me
inputs on itWorks great - INSIDE THE FIREWALL.

Similar Messages

  • Submit order using Webservice over JMS

    Hi,
    from the SDK samples(webservice sample) and from one of the reply from the forum:
    The wlsmimehdrContent_Type JMS header must be set to the following value: text/xml; charset="UTF-8"
    The URI JMS header must be set to the following value: /osm/wsapi
    Want to test webservice over JMS using SOAP UI (that supports HermesJMS):
    I have configured HermesJMS then configured SoapUI 4.0 by adding endpoint as JMS then selected webserive endpoint as JMS:osm_ws_request (long name) instead of "http://localhost:7001/osm/wsapi".
    Now for JMS endpoint where to add webservice URI "/osm/wsapi" unable to figure out where to add URI (in SOAPUI or HermesJMS) which parameter need to set for webservice URI?
    Regards,
    Rutvej

    Hi,
    Above query is resolved..
    Cheers,
    Rutvej

  • How to call Apache CXF webservice/Spring/jms from Oracle BPM 10g

    Hi , I am new to Oracle BPM and trying to develop simple POC. Can anybody give me some pointers on how to call a webservice whcich is based on Apache CXF/Spring/WSDL/jms as transport from oracle bpm 10g

    You should ask this question in the JDeveloper or BI Publisher forum.

  • Webservice + secured jms (Web Service over the JMS trans).

    Apologize since this post is in the webservice forum as well but since it is related to jms as well i put it here as well.
    I have a web service that is using JMS (@WLJmsTransport Web Service over the JMS transport)
    and everything seems to be ok BUt i do not know how to use this if the JMS is secured .
    By Adding security on JMS queue what other things i need to do in order for the webservice to access the queue ?
    (where i specify the credentials ?)
    @WebService(serviceName = "ASyncService", targetNamespace = "http://axyz.org/notification/v1", endpointInterface = "
    axyz.notification.ASyncPort")
    @WLJmsTransport(contextPath = "notify", serviceUri = "async_event", portName = "ASyncServicePort", queue = "events", connectionFactory = "cnfct_receiver")
    Thank you !

    The annotation you gave is for accessing the webservice but in this case it seems the webservice has to access a secured jms
    However having your response lead me to @RunAs which solved my problem.
    Very hard to find this information.
    Thank you very much for your answer !
    Nice blog as well !
    Edited by: user630775 on Jan 28, 2010 2:02 AM

  • WebServices over JMS

    Hello,
    Is that possible to have WebServices working with JMS server behind the scene? I mean not using SOAP/HTTP, but SOAP/JMS so the SOAP message is posted to JMS queue directly by the stub without being sent via HTTP on server and then pushed to JMS queue.
    From what I saw in the Sun technical articles, they offer next solution:
    Stub->Generates SOAP message->Message is sent over HTTP on server->Servlet takes the message and pushes to JMS queue
    What I'm looking for is:
    Stub->Generates SOAP message->Message is pushed to the JMS server directly.
    Can someone help me with this?
    Thanks.

    please check the below link it has some info
    http://www-128.ibm.com/developerworks/webservices/library/ws-jms/

  • Configure # of JMS consumers for WebServices over JMS Transport

    I'm using WebLogic Server 9.2. My Web Services are using JMS Transport.
    10,000 Web Services requests are submitted to the Web Services JMS queue at the same time. Processing time seems a little slow. In the Admin console, monitoring info of the JMS queue shows the Consumers is 4 and Consumers High is 6.
    I want to scale Web Services processing by increasing the number of JMS consumers that transform JMS request messages into Web Services requests. Does anyone have an idea to configure it?

    Hi,
    I don't think the number of consumers for a service is configurable. There is a single consumer for each service. Well, there is another consumer for interop purposes, which is irrelevant to our discussion here.
    You may be aware that multiple consumers reading from the same queue would result in requests being processed in parallel, which means the order that the requests are processed might be different from the order that they are put into the queue.
    For applications where the order of processing the requests to the same web service is not important, it probably makes sense to have an option of configuring multiple consumers. But this is no such option right now.
    Regards,
    Dongbo, BEA

  • Webservice vs JMS in Global Automatic

    Hi all,
    My client wants to automatically initiate a process after receiving some information from a web service. I have to use a Global Automatic activity to do so. I understand that the Global Automatic activity has an option to listen to an automatic JMS message and trigger/start/initiate the process..
    But the global automatic activity has no option to trigger/start/initiate the process after receiving some information from a web service. Can this be done irrespective of whether the Global Automatic activity has the option or not? Or do I have to only use JMS message to trigger the process?
    Edited by: user647659 on Aug 7, 2009 7:29 AM

    But the global automatic activity has no option to trigger/start/initiate the process after receiving some information from a web service. Can this be done irrespective of whether the Global Automatic activity has the option or not? Or do I have to only use JMS message to trigger the process?To see how to create an instance from a Global Automatic (or any activity) using logic go to How to create Instace of another process from running process.
    Dan

  • SOA Suite JMS Design

    Hi,
    I have a requirement for the following:
    1) A webservice receives messages from external system (XML file)
    2) The XML message will use JMS to pass the XML file to an internal subsystem
    Before starting I have a few questions in Oracle SOA. I am trying a very basic functionality of this.
    1) Which scenario should I use JMS operation type request-reply?
    2) Should it follow flow sequence like External System ---->WebService--> Mediator ----> JMS Adapter (to produce messages) --> Queue --> JMS Adapter (to consume messages) ----> Internal subsystem? I don't understand Is this flow sequence right?
    3) Any sample example of similiar implementation.
    4) On what basis should I choose synchronous or Asynchronous? Requirment is real time, so it should be synchronous I presume.
    Any help on these four points appreciated. Just starting and new to SOA suite, wanted some design inputs.
    Regards
    Thomas

    Hi,
    I have a requirement for the following:
    1) A webservice receives messages from external system (XML file)
    2) The XML message will use JMS to pass the XML file to an internal subsystem
    Before starting I have a few questions in Oracle SOA. I am trying a very basic functionality of this.
    1) Which scenario should I use JMS operation type request-reply?
    2) Should it follow flow sequence like External System ---->WebService--> Mediator ----> JMS Adapter (to produce messages) --> Queue --> JMS Adapter (to consume messages) ----> Internal subsystem? I don't understand Is this flow sequence right?
    3) Any sample example of similiar implementation.
    4) On what basis should I choose synchronous or Asynchronous? Requirment is real time, so it should be synchronous I presume.
    Any help on these four points appreciated. Just starting and new to SOA suite, wanted some design inputs.
    Regards
    Thomas

  • JMS destination

    I´m new to JMS and i still don´t understand how can i use a JMS queue to access APIs or webservice.
    Given an example where i have an API or WebService exposed to enter customer orders in some system, how can i integrate my JMS queue with it?
    * Do i have to create message consumers on the remote server? If so, how do i integrate the messages in the consumer queue with my API or WebService?
    * Can the queue on my server point directly to the API or WebService?
    thanks...

    933272 wrote:
    I´m new to JMS and i still don´t understand how can i use a JMS queue to access APIs or webservice.
    Given an example where i have an API or WebService exposed to enter customer orders in some system, how can i integrate my JMS queue with it?
    * Do i have to create message consumers on the remote server? If so, how do i integrate the messages in the consumer queue with my API or WebService?
    * Can the queue on my server point directly to the API or WebService?
    JMS is a Java API for sending messages to, and receiving messages from. a JMS queue (or JMS topic). The JMS queue or topic runs in a JMS server somewhere: there are several JMS servers available, some free, some non-free. That's basically all there is to it. You need to write the Java code that sends the messages to (and receives the messages from) the JMS queue, so you can decide where it runs and how it is related to the rest of your system.
    Nigel

  • ClassCastException when calling a JMS implemented web service

    Hi,
    I published a Message Driven Bean EJB to WebService using WebLogic 8.1 and servicegen.
    When I try to call it using the automatic generated Web interface, I receive the
    following ClassCastException.
    Do you see what is going wrong?
    Is it a bug?
    Thanks for your help
    Charles
    ClassCastException :
    javax.xml.rpc.soap.SOAPFaultException: Exception during processing: java.lang.ClassCastException
    (see Fault Detail for stacktrace) at weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:270)
    at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:131)
    at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:439)
    at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:405)
    at weblogic.webservice.server.servlet.ServletBase.invokeMultiOutput(ServletBase.java:322)
    at weblogic.webservice.server.servlet.ServletBase.invokeOperation(ServletBase.java:296)
    at weblogic.webservice.server.servlet.WebServiceServlet.invokeOperation(WebServiceServlet.java:312)
    at weblogic.webservice.server.servlet.ServletBase.handleGet(ServletBase.java:253)
    at weblogic.webservice.server.servlet.ServletBase.doGet(ServletBase.java:138)
    at weblogic.webservice.server.servlet.WebServiceServlet.doGet(WebServiceServlet.java:232)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6291)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:97) at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3575)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2573)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151)
    I use this and command :
    <servicegen
    destEar="${WAS_APPLICATIONS}/${version}${ear_ws_file}"
    contextURI="${version}WebServices" >
    <service
    JMSDestination="mq_receive"
    JMSAction="send"
    JMSDestinationType="queue"
    JMSConnectionFactory="mq_QCF"
    JMSOperationName="${JMSOperationName}"
    JMSMessageType="${JMSMessageType}"
    generateTypes="True"
    targetNamespace="http://www.francetelecom.com/cristal/${version}Webservices"
    serviceName="${version}"
    serviceURI="/${version}"
    expandMethods="True">
    </service>
    <classpath>
    <pathelement location="${build}" />
    </classpath>
    <classpath refid="classpath" />
    </servicegen>
    My MDB is
    public void ejbCreate () throws CreateException {
         LoggerConfigurator.configure();
    log.debug("called");
    public void onMessage(Message msg)
    log.debug("called");
              try
                   ObjectMessage objMessage = (ObjectMessage)msg;
                   String text = (String)objMessage.getObject();
                   home = lookupHome();
                   Toupper client = (Toupper)
                        PortableRemoteObject.narrow(home.create(), Toupper.class);
                   text=client.toupper(text);               
                   log.error("Toupper="+text);
                   startJMS();
                   sendJMS(text);
                   client.remove();
              } catch (Exception e)
                   e.printStackTrace();

    "mq_receive" is define as a Local JNDI Name of a Foreign JMSDestination.
    And it works when I use it with only the MDB (without WebService)
    Good try,
    Thanks
    Charles
    "Neal Yin" <[email protected]> wrote:
    My best guess is that JNDI name "mq_receive" is not bound as JMS queue.
    Thanks
    -Neal
    "Charles Desmoulins" <[email protected]> wrote in
    message
    news:[email protected]...
    Ok Neal,
    This is the result :
    <!-------------------- REQUEST ---------------->
    URL :
    http://localhost:7001/messageToupperWebServices/messageToupper
    Headers :
    SOAPAction: [""]
    Content-Type: [text/xml]
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoaporg/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body
    env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><m:toupper
    xmlns:m="http://www.francetelecom.com/cristal/messageToupperWebservices"><pa
    ram
    xsi:type="xsd:string">sAmple string totransform</param></m:toupper></env:Body></env:Envelope>
    <!-------------------- END REQUEST ------------>
    <!-------------------- RESPONSE --------------->
    URL :
    http://localhost:7001/messageToupperWebServices/messageToupper
    Headers :
    Date=Fri, 11 Jul 2003 14:29:33 GMT
    Server=WebLogic WebLogic Server 8.1 Thu Mar 20 23:06:05 PST 2003246620
    Content-Length=2522
    Content-Type=text/xml
    Envelope :
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body><env:Fau
    lt><faultcode>env:Server</faultcode><faultstring>Exception
    during processing: java.lang.ClassCastException (see Fault Detail forstacktrace)</faultstring><detail><bea_fault:stacktrace
    >
    xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0"/>j
    ava.lang.ClassCastException
    atweblogic.webservice.component.jms.JMSSendInvocationHandler.invoke(JMSSendInv
    ocationHandler.java:131)
    atweblogic.webservice.core.handler.InvokeHandler.handleRequest(InvokeHandler.j
    ava:81)
    atweblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.jav
    a:125)
    atweblogic.webservice.core.DefaultOperation.process(DefaultOperation.java:513)
    atweblogic.webservice.server.Dispatcher.process(Dispatcher.java:150)
    atweblogic.webservice.server.Dispatcher.doDispatch(Dispatcher.java:125)
    atweblogic.webservice.server.Dispatcher.dispatch(Dispatcher.java:74)
    atweblogic.webservice.server.WebServiceManager.dispatch(WebServiceManager.java
    :98)
    atweblogic.webservice.server.servlet.WebServiceServlet.serverSideInvoke(WebSer
    viceServlet.java:274)
    atweblogic.webservice.server.servlet.ServletBase.doPost(ServletBase.java:393)
    atweblogic.webservice.server.servlet.WebServiceServlet.doPost(WebServiceServle
    t.java:244)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    atweblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:1053)
    atweblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :387)
    atweblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :305)
    atweblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:6291)
    atweblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubjec
    t.java:317)
    atweblogic.security.service.SecurityManager.runAs(SecurityManager.java:97)
    atweblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3575)
    atweblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2573)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151)
    </detail></env:Fault></env:Body></env:Envelope>
    <!-------------------- END RESPONSE ----------->
    An exception Exception during processing: java.lang.ClassCastException(see Fault
    Detail for stacktrace)
    javax.xml.rpc.soap.SOAPFaultException: Exception during processing:java.lang.ClassCastException
    (see Fault Detail for stacktrace)
    atweblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:270)
    atweblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:131
    atweblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:439)
    atweblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:425)
    at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:536)
    at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:389)
    at ft.services.messageToupper.WSClient.main(WSClient.java:60)

  • Methods to write JMS program other than MDB

    HI guys,
    Could you please help me out.
    I need to call a webservice using JMS.I know how to write a JMS message consumer or producer using MESSAGE DRIVEN BEAN,but i would like to know is there any other technologies to write JMS message consumer or producer.
    Thanks

    You might need to reword that!
    JMS is a specification for java messaging and doesn't directly support web services. If you mean that upon receiving a message you want to invoke a remote web service, then it's easy. Simply write a message consumer that calls the web service from the onMessage method.
    You should be able to do this using an MDB or a JMS Listener (See the MessageListener J2EE interface).
    I'd recommend using XFire for the web service invocation and you may also look at Lingo (which after 1 year is still on my TODO list of things to check out)

  • BPM Newbie

    Hi Guys
    I am a BPEL guy and just started working on BPM. Being a newbie in BPM field i have few queries which should be able to make me understand the diff between BPEL and BPEM.
    1) We created Business Process in BPEL with WS Orchestration, Deployed on BPEL PM Server then invoked the BPEL process with java code. Is it same with BPM? Do we have separate BPM Engine / Server for BPM? Where it is deployed? How is it invoked?
    2) Can we call/invoke one BPM process from another BPM process?
    3) How to use business rules in BPM?
    4) How do we use BPM process in actuall overall project deployment?
    5) Can it call any ESB and BPEL process? or can we call a BPM process from ESB or BPEL?
    6) Does it also have instances like BPEL? and its versions?
    I may have asked some stupid questions here but i am just trying to know how it can help me in understanding the business modelling better.
    Many Thanks

    user12128585 wrote:
    Hi Guys
    1) We created Business Process in BPEL with WS Orchestration, Deployed on BPEL PM Server then invoked the BPEL process with java code. Is it same with BPM? Do we have separate BPM Engine / Server for BPM? Where it is deployed? How is it invoked?There is the dedicate engine for BPM that can run on an application server like WLS, you just have to deploy your projects on the engine in order to have them available.
    The processes can be started in may ways: using the workspace (web application that alllows users to interact with processes) running activities (applications) that start the processes, using webservices, using jms listenere and so on. I suggest you to look at the documentation for specific details.
    2) Can we call/invoke one BPM process from another BPM process? Of course!
    3) How to use business rules in BPM? Just prepare the rules and use them, for instance using business rule based transitions to control the flow of the process...
    4) How do we use BPM process in actuall overall project deployment?It depends on your project
    5) Can it call any ESB and BPEL process? or can we call a BPM process from ESB or BPEL?Sure with ESB, it's strongly integrated with it. I've no experience with BPEL integration but I know it can be done.
    6) Does it also have instances like BPEL? and its versions?It has. Don't know if in BPEL it's the same...
    You define a process and then you can run instances of that process. You can modify it and have different versions running on the engine... but it would be too long to discuss here and now.
    I may have asked some stupid questions here but i am just trying to know how it can help me in understanding the business modelling better. No question is stupid :)
    Hope that this helps.
    Giuliano

  • Integration using XML

    Good morning to everyone!
    I am still very new to XML. Currently, I have a problem in integrating 2 different systems. In my hand , I have an asset management system that written in J2EE environment and from here I need to integrate with SAP system.
    Basically, SAP people will send us their updated data in XML format into a share folder. My problem is, how do I grab their XML data in real time from this share folder and update into my system everytime my partner (SAP) update that file?
    Please Help and your guidance is really appreciated by me
    -sheena-

    Hi David,
    XI/PI is like any other middle ware tool you use in your organisation for interconnecting various systems. PI has several adapters which can "talk" to several systems.
    An example would be JDBC adapter can "talk" to Databases with JDBC drivers.
    SOAP adapter can "talk" to Webservice and JMS adapters can "talk" with Queues.
    If you are looking at ways to communicate only with files, then File adapter can help you. As you said XI uses XML internally. But XI/PI is much more powerful than that. You can use it to communicate with Db/webservices/Queues/http
    Hope I dint add up to your confusion.
    Regards,
    Jaishankar

  • ORAMED-03302:[Exception in oneway execution]Unexpected exception in oneway

    Hi,
    I have a composite which looks like below.
    JMS Adapter -------> Mediator -------> WebService
    The JMS adapter will get a payload from a queue and push the same to the given webservice through mediator.
    My Problem here starts when the given webservice is not available. The composite gets strucked when the endpoint is not available throwing me the below fault
    Non Recoverable System Fault :
    *ORAMED-03302:[Exception in oneway execution]Unexpected exception in oneway operation "CreateExceptionLog" on reference "ExceptionLogger1".Possible Fix:Check whether the reference service is properly configured and running or look at exception for analysing the reason or contact oracle support. Cause:Unable to access the following endpoint(s): http://10.103.96.161:8088/mockExceptionEventSOAP11Binding*
    I thought of implementing retry logic through Fault Policies. But it is not working. I need to configure in such a way that the composite should retry to push the payload till the webservice comes ON(if fails human intervention should be made).
    How can i achieve this ?? Isnt possible to handle exception in mediator level??
    With smile,
    Siva Balan V

    Hi,
    I have a composite which looks like below.
    JMS Adapter -------> Mediator -------> WebService
    The JMS adapter will get a payload from a queue and push the same to the given webservice through mediator.
    My Problem here starts when the given webservice is not available. The composite gets strucked when the endpoint is not available throwing me the below fault
    Non Recoverable System Fault :
    *ORAMED-03302:[Exception in oneway execution]Unexpected exception in oneway operation "CreateExceptionLog" on reference "ExceptionLogger1".Possible Fix:Check whether the reference service is properly configured and running or look at exception for analysing the reason or contact oracle support. Cause:Unable to access the following endpoint(s): http://10.103.96.161:8088/mockExceptionEventSOAP11Binding*
    I thought of implementing retry logic through Fault Policies. But it is not working. I need to configure in such a way that the composite should retry to push the payload till the webservice comes ON(if fails human intervention should be made).
    How can i achieve this ?? Isnt possible to handle exception in mediator level??
    With smile,
    Siva Balan V

  • SOAP over Messaging

    I was curious to know the status of SOAP over messaging protocols. Is this standardized
    yet? If not is the support for WebServices over JMS in WebLogic a proprietary
    implementation?

    Hello,
    In pointing to this recent spec [1] the three authors have provided
    their contact information; they would be a good source of information in
    this area.
    Regards,
    Bruce
    [1]
    http://dev2dev.bea.com/technologies/webservices/WS-MessageData_Intro.jsp
    Mohammad Naderi wrote:
    >
    I was curious to know the status of SOAP over messaging protocols. Is this standardized
    yet? If not is the support for WebServices over JMS in WebLogic a proprietary
    implementation?

Maybe you are looking for