Showing posts with label REST. Show all posts
Showing posts with label REST. Show all posts

Tuesday, October 26, 2010

"The UltraESB environment was a much cleaner solution for putting together the mock services, particularly with the IntelliJ IDE for writing the code"

Read the Original Comment from Jim

"Note that the leading tool for Web Services testing is SoapUI. While this product provides some powerful support for Soap based mock services, its support for REST based mock services is almost non-existent (basically, just setting up a separate test case for each endpoint and sending a file). The UltraESB environment was a much cleaner solution for putting together the mock services, particularly with the IntelliJ IDE for writing the code. I could load the payload, read it into a string, manipulate it, the write it back out to the payload. The learning curve was very minimal. Great job!"

The UltraESB recently started supporting RESTful JSON Data Services more information on the JSON support is available from http://jsonesb.org

Sunday, October 24, 2010

JSON Data Services

Want to specify an SQL statement and a corresponding URI pattern, and create a RESTful JSON Data Service with just one line of configuration?

The Free and Open Source UltraESB v1.3.0 introduces JSON Data Services which does exactly this! Create data services by specifying a SQL file and a URI pattern. The URI patterns allows you to specify variables, that correspond to the SQL statement as shown in the following example.

For example, say that you would like to expose the result of the SQL query:
SELECT * from employee where permanent = 1
and would like the Data Service to be available at URI:
/getPermanentEmployees

Or to consider a more advanced example, say that you wish to expose the results of the SQL:
SELECT * from employee where
    division = :division and department = :department 
    and sex = :sex and age > :age
and expose the Data Service with a URI as follows:
/byDeptAndDivision/<department>/<division>?age=<age>&sex=<sex>

See how easily you could create RESTful JSON Data Services using the UltraESB and a couple of lines of configuration in "JSON Data Services" published on the AdroitLogic web site.

Sunday, May 30, 2010

HTTP Basic, Digest and Amazon S3 REST authentication

Secure your backend services using Basic Authentication or Digest Authentication over HTTP or HTTPS with a Proxy service deployed on the UltraESB. The credentials are verified using any Spring Security based authentication providers - including in-memory, Database, LDAP etc. The article presents the ready-to-run Sample #110 of the UltraESB that demonstrates many scenarios to secure, and to invoke secured services! The highlight of the article is a proxy service that could be used to authenticate into Amazon S3 using its REST API. A follow up article will soon demonstrate how a fixed-length COBOL file is polled from a directory or sftp, ftp/s, converted into XML and uploaded into a S3 location.. keep tuned!

HTTP Basic, Digest and Amazon S3 REST authentication

Tuesday, May 18, 2010

Enterprise Service Bus UltraESB challenges open source and commercial equivalents on performance and ease of use

Singapore - May 17, 2010 - AdroitLogic Private Ltd. announced today the general availability of its high performance Enterprise Service Bus (ESB) UltraESB, available free of charge for perpetual and unlimited production use. AdroitLogic also launched a website dedicated to ESB performance testing - http://esbperformance.org, that hosts a benchmark used by multiple ESB vendors since June 2007.

The UltraESB utilizes Zero-copy proxying of messages using Non-Blocking IO, to scale and support extremely high numbers of concurrent connections over HTTP/S. By moving away from a canonical message format, the UltraESB natively supports multiple types of payloads over transports such as HTTP/S, JMS, File, S/FTP, FTPS, MLLP/S, TCP/S and Email (POP,IMAP,SMTP). In addition, it can act as a B2B AS2 (Applicability Statement 2) connector to integrate backend systems securely with trading partners over the Internet, and as a Health Level 7 (HL7) systems integrator over multiple transports. By developing a custom WS-Security implementation, it offers much better performance when used as a WS-Security gateway than solutions based on the WSS4J/Rampart libraries. Fully supporting REST, SOAP, JSON, XML, Binary, Hessian, EDI, Text, HTML etc as payloads, the UltraESB ships with a load of ready-to-run samples, tools & documentation and bundles everything into a download of 30MB. The UltraESB can be deployed standalone or over a JEE application server, and supports both JTA XA and local transactions - including suspend and resume - even asynchronously.

The UltraESB is configured with an XML file that allows mediation code to be written as Java or [JSR 233] scripting language (e.g. Javascript, Groovy, Ruby..) snippets. Mediation can also be written as Java classes, or POJOs without depending on any specific interfaces. The UltraESB does not require the user to learn a new programming or configuration language; or compile-bundle-and-deploy artifacts for configuration changes. The configuration could be performed with an IDE of the users' choice that supports intelligent context aware auto completion, and allows step-through-debugging and unit testing to ensure quality. The UltraESB supports JMX management and reporting with any JMX console, and could even be used as a high performance load balancer in front of Tomcat instances etc to provide sticky loadbalancing and failover.

About AdroitLogic

AdroitLogic Private Ltd. is a privately owned, innovative technology company based in Singapore. AdroitLogic believes in working closely with real enterprise users of its software, and thus invites them to participate in defining its road map, schedule, features & releases. Becoming a parter with AdroitLogic, offers users access to its source code.

Thursday, January 21, 2010

HTTP client supporting REST, SOAP, Hessian etc for testing and Load testing!

The AdroitLogic UltraESB includes the ESB and SOA ToolBox - that can be used to test any payload over HTTP/S. Supporting all methods over HTTP such as GET, POST, PUT, DELETE, HEAD and OPTIONS, it allows a payload pasted into a text area, or read as a file to be sent to any HTTP/S endpoint, optionally authenticating the request with HTTP basic or digest authentication.


The user can select if the request should use HTTP 1.0 or 1.1, or send the entity as chunked or using 'Content-Length' encoding, if the '100-Continue' expect handshake should be used-or-not, if HTTP KeepAlive should be used or not, and if response  compression (i.e. GZip) is requested. If the request is over SSL, you could also turn off SSL Trust and Hostname verification for testing purposes - such as when using test certificates. Additionally, it can also use an identity certificate if 2-way SSL is requested.

To make this even better, the ToolBox also offers a HTTP/S Load test version of this same utility - that can be used to load test REST, SOAP, Hessian or any kind of payload over HTTP/S. This Load Test utility is a clone of the popular Apache Bench load test client - but much more advanced and stable!


The ToolBox also includes a TCP Dump utility - that can be used to view requests over the wire - in both HEX and Text formats. It additionally introduces support to capture a request into a file - which allows one to capture any kind of request message - even WS-Secured messages, Hessian binary messages etc, which can then be used with the JavaBench - to run a load test against your services.

For those who really knows what they are doing, and for example if you would like to test your ESB or SOA server for its support against malicious or malformed requests - there is a Raw socket client.


This allows one to hand-craft a HTTP request as you wish! The ToolBox also hosts a module that will start one or more Jetty servers with sample applications, which could then be used to test your ESB or SOA services. Starting multiple instances over different ports allows one to easily test load balancing and fail-over options of your ESB.

Finally the ToolBox allows you to start an instance of the UltraESB - the ultimate ESB that is simple to use, but supports ultra performance! Do read the full article "Getting started with the AdroitLogic ToolBox for the UltraESB" and follow through the end-to-end sample to get started.

Wednesday, January 20, 2010

Mock Services - be it either REST, SOAP or even any other!

The UltraESB allows the creation of Mock Services for almost any protocol over multiple transports. Thus you can mock REST, SOAP, Hessian, or even JMS, Email or File/FTP related services, or even other such services easily.

The article "Mock RESTfully with the UltraESB" shows how one may write Mock services for REST methods GET, POST, PUT and DELETE.. The mock service implementation can be written as Java as a class, code fragment or a Spring bean, or as any JSR 233 Scripting language code. However, you do NOT need to compile, bundle, deploy any of these - as the UltraESB does all that automatically! Just checkout the sample and see how a dozen lines of configuration can simplify your tasks!

The AdroitLogic ToolBox will allow one to test the mock services, as well as any other backend services. It includes sample RESTservices, a RFC 2616 compliant HTTP/S client that supports basic and digest authentication and 2-way SSL in addition to supporting GET, PUT, DELETE, POST, HEAD and OPTIONS for REST.

Proxy REST through the UltraESB

The UltraESB from AdroitLogic fully supports REST! Thus you can use it to proxy GET, POST, PUT, DELETE, HEAD, OPTIONS and TRACE compliant with the HTTP spec RFC 2616!

For an example on the configuration, refer to this article "RESTful Proxy Services with the UltraESB" which describes how a JBoss RESTEasy service can be proxied via the UltraESB - and demonstrates the above REST methods, and the automatic 'Location' header re-writing etc, which allows the Proxy service to fully hide the real service.

The UltraESB also includes a very useful utility - the ToolBox! It allows one to play with all the above HTTP methods with an easy to use and intiutive graphical user interface. Read this article on how to use the ToolBox as an ESB and SOA test toolkit - "Getting started with the AdroitLogic ToolBox for the UltraESB"

As the UltraESB ships ready-to-run samples, you do not need anything other than the 25MB download available from http://adroitlogic.org/download.html And this includes ALL thats required to test this sample, including a sample RESTful service, and the HTTP/S client from the ToolBox