WebServices Frameworks

Java WebServices Development Tools:

Apache CXF: Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.

Apache Axis2: is a Web Services / SOAP / WSDL engine, the successor to the widely used Apache Axis SOAP stack. There are two implementations of the Apache Axis2 Web services engine - Apache Axis2/Java and Apache Axis2/C.

Apache Wink: Apache Wink is a simple yet solid framework for building RESTful Web services. It is comprised of a Server module and a Client module for developing and consuming RESTful Web services.

JAX-WS: JAVA-API( XML-based Webservices, means mainly WSDL/SOAP though REST is possible too )
RI(Reference Implementation): JAX-WS: { javax.xml.ws.**.* , core Web services support } = JAX-WS “RI” [is subset of] Metro
Note: Metro = JAX-WS “RI” + WSIT/Tango ( WSIT/Tango provides support for Security, Reliability, Transactions and Interoperability with .NET 3.0 )

JAX-RS: JAVA-API( RESTful Web Services )
RI(RI(Reference Implementation): JAX-RS = { javax.ws.rs.**.* } = Jersey

AWS Toolkit for Eclipse: The AWS Toolkit for Eclipse is an open source plug-in for the Eclipse Java IDE that makes it easier for developers to develop, debug, and deploy Java applications using Amazon Web Services. With the AWS Toolkit for Eclipse, you’ll be able to get started faster and be more productive when building AWS applications.

Eclipse WST Web Services UI: The Web Services project is a sub-project in the Eclipse WTP Top-Level Project. The project consists of two components: The JST Web services component, which contains tools for developing and interacting with Java Web services and the WST Web services component, which contains tools for Web services development which is not Java specific.

Eclipse with Lomboz plugin: Lomboz is an open source and free J2EE development environment for businesses and individuals. You can develop, test, profile and deploy Web, Web services, Java, J2EE and EJB applications with this IDE. Lomboz has comprehensive support for most J2EE standard application server runtimes, and supports most popular open source runtimes such as JOnAS, and other vendor runtime environments. Lomboz is buillt on the Eclipse open source platform and the Web Tools Platform (WTP) projects.


OpenSource WebService Testing Tools:
  • soapUI
  • TestMaker
  • WebInject

Miscellaneous:
  • Tools to view HTTP requests and responses - Wireshark, Fiddler, IEInspector HTP Analyser, Firebug, HttpFox
           Web Development: Client side debugging tools/plugins inside Browser:
            Chrome => Chrome developer Tools ( F12 )
            Firefox  => FireBug/Poster
            IE          => Fiddler
  • Tools to test RESTful Webservices - RESTClient(from GoogleCode; A Java application to test RESTful webservices), HTTP4E(REST HttpClient for Eclipse)
  • POSTER add-on to Firefox - RESTful Web Services can be tested using a firefox addon called Poster. It's a developer tool for interacting with web services and other web resources that lets you make HTTP requests, set the entity body, and content type. This allows you to interact with web services and inspect the results.
  • Microsoft’s WCF & Service Trace Viewer Tool - Windows Communication Foundation (WCF) Service Trace Viewer Tool helps you analyze diagnostic traces that are generated by WCF

ref:

Open Source Web Services Tools in Java - http://java-source.net/open-source/web-services-tools

Lua Scripting Language

Lua is a lightweight multi-paradigm programming language designed as a scripting language with "extensible semantics" as a primary goal. Lua is cross-platform since it is written in ISO C. Lua has a relatively simple C API compared to other scripting languages.

Lua is intended to be embedded into other applications, and accordingly it provides a robust, easy-to-use C API. The API is divided into two parts:

1. Lua core
2. Lua auxiliary library.

Lua Features:

1. Lua is commonly described as a “multi-paradigm” language, providing a small set of general features that can be extended to fit different problem types, rather than providing a more complex and rigid specification to match a single paradigm. Lua, for instance, does not contain explicit support for inheritance, but allows it to be implemented relatively easily with metatables. Similarly, Lua allows programmers to implement namespaces, classes, and other related features using its single table implementation; first-class functions allow the employment of many powerful techniques from functional programming; and full lexical scoping allows fine-grained information hiding to enforce the principle of least privilege.

2. In general, Lua strives to provide flexible meta-features that can be extended as needed, rather than supply a feature-set specific to one programming paradigm. As a result, the base language is light – the full reference interpreter is only about 150 kB compiled - and easily adaptable to a broad range of applications.

3. Lua is a dynamically typed language intended for use as an extension or scripting language, and is compact enough to fit on a variety of host platforms. It supports only a small number of atomic data structures such as boolean values, numbers (double-precision floating point by default), and strings. Typical data structures such as arrays, sets, lists, and records can be represented using Lua’s single native data structure, the table, which is essentially a heterogeneous associative array.

4. Lua implements a small set of advanced features such as first-class functions, garbage collection, closures, proper tail calls, coercion (automatic conversion between string and number values at run time), coroutines (cooperative multitasking) and dynamic module loading. By including only a minimum set of data types, Lua attempts to strike a balance between power and size.


ref:


Lua for Windows Download - Binaries - http://code.google.com/p/luaforwindows/

Lua Windows Binaries and Source Code from SourceForge - http://luabinaries.sourceforge.net/




LuaRocks(Management system for Lua modules) - http://luarocks.org/


What makes LuaJIT faster than Lua ? - http://www.quora.com/What-makes-LuaJIT-faster-than-Lua

Programming in Lua - http://www.lua.org/pil/

Lua 5.2 Reference Manual - http://www.lua.org/manual/5.2/


Interpreted Languages: Tcl, Lua, JavaScript, Io - http://hyperpolyglot.org/embeddable

The Scripting Language of the Web: Why not Lua? - http://blog.luapineapple.com/?p=152

Build an app with JavaScript and Lua: Dynamic language interplay - http://www.mosync.com/content/mixing-javascript-and-lua-dynamic-language-interplay