Wednesday, July 29, 2009

WSO2 Releases Web Service Framework For C++

WSO2 announced the release of the Web Services Framework for C++ (WSF/C++) version 2.0.0. Similar to WSF/PHP which is really popular among the PHP community, WSF/CPP is the C++ language binding for the Apache Axis2/C and the other supporting web services projects like Apache Sandesha/C, Apache Rampart/C.

With this release C++ developers will be able to write web services and web service clients to inter-op with .NET/Java/PHP or any other platform built-on web service standards. The release is shiped with a code generation tool that will be used to generate the code for skeletons and stubs from a WSDL, so developers only need to concentrate on their business logic as the generated code will take care of building or parsing xmls and running them on top of the framework.
Here are the key features of the new release.

  1. Support core web service standards like SOAP 1.1, SOAP 1.2, WSDL 1.1, WSDL 2.0, REST

  2. Support for web services QoS specifications.

    • WS-Addressing

    • WS-Security

    • WS-Policy

    • WS-Security-Policy

    • WS-Reliable-Messaging



  3. Support binary attachment with MTOM and SWA (With the Support for large binaries)

  4. Code generation tool.

  5. Proven interoperability with .NET.


As a side note, you will be able to participate to a free summer school training session on the WSF/CPP conducted by Nandika Jayawardane who is the project lead of both WSF/CPP and WSF/PHP on 30th July. You can register to it (for free) from here.

Sunday, July 12, 2009

WSO2 Governance Registry 3.0.0 - What's New?

WSO2 Governance Registry (G-Reg) (Formally known as WSO2 Registry) is released its 3.0.0 version along with two other sibling WSO2 products, WSAS 3.1.0 and ESB 2.1.0. This is a major release specially for WSO2 Governance Registry as it contain number of new features and improvements.

1. The New Name - s/Registry/Governance Registry

The product name itself changed from 'Registry' to 'Governance Registry' (abbreviated as 'G-Reg'). As it may hint you, now the product is more focused on the 'Governance' aspects than just the 'registry' or a 'repository' aspects. In early releases, it mainly used to store, retrieve configurations and persistence data that the other products would need. Now you can govern these resources (Services, Policies, Processes, People) inside the G-Reg itself. It has emerged to become a complete tool that help you in governing your SOA platform.

2. Separate Views for Add/View/Remove Services

In G-Reg 'Services' along with Service MetaData (policies, wsdls, schemas) are distinguished from other resources, as they are the key resources in a SOA platform. You will be able to add/list/view services directly from the main menu in the G-Reg UI.

[caption id="attachment_1004" align="aligncenter" width="228" caption="Add Service Metadata"]Add Service Metadata[/caption]

When adding a service you will be prompted to provide additional details on the services. As they will help users in discovering these services. The fields of these details are configurable as you will change them according to the policies and requirements of your organizations, but the defaults will be adequate for most of the scenarios.  Additionally G-Reg will do WS-I validation as you add WSDLs, Schemas.
Note that this is an additional view you will get as you can still discover services on a tree view arranged according to their namespaces using the registry browser as in previous releases.

3. Service Life cycle Management with Check-lists

Managing service lifecycle is a core part of governing services. G-Reg provides you this functionality with a simple user interface.

Life Cycle Management with Check-Lists

Lifecycle states can be promoted or demoted. The state transition can be 'Designing' -> 'Developing' -> 'Testing' -> 'Deployed'. You can enforce a validation of a checklist in promoting the state to the next level. This states and the associated check-list items are highly configurable as you will change them to suit to the process of your organizations as you wish.

And G-Reg is shipped with a sample that extend the lifecycle management functionality by making it distributed. In there as you promote or demote the state, the service resource will move its position. The user guide on 'Distributed Life Cycle Management Sample' will describe how to use this functionality in more details. This will be really useful if you are enforcing a structured permission model in managing lifecycles. For an example you can enforce only developer role will be able to modify, check or promote a service in the 'Developing' state and QA role has permission in promoting a service in 'Testing' state and so on.

4. Business Activity Monitoring (BAM)

This is a brand new feature provide in G-Reg. You may find the user guide on 'BAM' will be really helpful in configuring the servers you want to monitor. But in order to view the monitoring data you have to go to the dashboard, which is the next new feature.

5. Dashboard

For most of the you, this will be the coolest feature in the new G-Reg., an eye-catching dashboard filled with bunch of Gadgets.

[caption id="attachment_1007" align="aligncenter" width="753" caption="Dashboard"]Dashboard[/caption]

The dashboard provides you the information related to runtime governance as well as design-time governance as described in the 'Dashboard' user guide.

6. Eventing and Notifications

If you want you to notified when a resource is updated or a lifecycle state of a service is changed, this feature will be really helpful. Look at the 'Eventing and Notifications' user guide on how you can get notified and the built-in events that you can listen.

7. Mount Remote Resources - Federating Registries

If you are maintaining two separate registry instances, this feature will enable you to share resources among them. In G-Reg you can create links to resources in remote registries (remote-links) as well as to the resources in the same registry (sym-links). Here is the user guide for 'Sym Links and Remote Links' to read more details of the subject.

8. User Profiles
The new G-Reg has the ability to keep multiple user profiles per user. A simple how to on creating profiles can be found in the user guide on 'User Profiles'.

9. Checkin/Checkout with Local Filesystem

The new G-Reg is shipped with a command line tool that allows you to checkin and checkout registry resources with your local filesystem. If you are familiar with a version control system like subversion, the checkin/checkout commands will not be much difficult to you.

Checking out a resource is simple as (the following command is what you typed in linux, in windows you will use the checkin-client.bat instead).

./checkin-client.sh co / -u user -p user_pw

And to checkin,

./checkin-client.sh ci -u user -p user_pw

Similarly you can use this tool to create backups or move resource or resource hierarchy off-line. Here is a complete user guide on 'Checkin-Client'.

10. Performance Boost

Last but not least, the new G-Reg is performing very fast than its predecessor. In the performance test, it was seen each primitive operation in the registry is at least 10% faster in this release, where as some operations are performing much faster (for an example, 'Add Collection' operation seemed 50% faster). And the remote registry calls also optimized by keeping a local cache (http-level-caching).

This was a list of most notable new features in addition to the bunch of the features that was already there in the previous releases. You will be able to download WSO2 Governance Registry freely from the product website, http://wso2.org/projects/governance-registry and evaulate these features as you want.

Saturday, July 11, 2009

WSO2 Carbon 2 - WSAS, ESB & Governance Registry Released

WSO2 -An open source middleware company- announced the release of bunch of their SOA enabling products along with Carbon 2.0.0 which is an OSGI based unified platform that all the WSO2 java products are built on.

  • WSAS (Web Service Application Server) - Provide and consume web services, data services with full WS-*, REST support, GUI tools, Integration with Eclipse, etc..

  • ESB (Enterprise Service Bus) - Message routing, mediation, transformation, logging, task scheduling, load balancing, failover routing, event brokering, etc. with number of transports support

  • Governance Registry - Govern you SOA platform, introducing number of new features including Dashboard with Gadgets, lifecycle management with checklists, eventing and notifications, remote/symbolic links, checkin/checkout functionality and new meta data management UI.


You will be able to get the advantage of the carbon platform by extending the functionality of any of these products, just by mixing components from other products (Just like running an ESB within WSAS).

Download, Play around with them and Enjoy:)!!!

Sunday, July 05, 2009

JDBC Transactions And Deadlocks

Programming with Database is very challenging. It is all about you designed and normalized the database really correctly without missing any important indexing and writing the most optimized queries. In addition to that database programmer should be aware of whether the order of the queries in an execution flow will make a deadlock specially in very complex systems.
There are many guidelines that you can follow specially on avoiding (probably minimizing) deadlocks. Specially the guide "Reducing SQL Server Deadlocks" provides a checklist to reduce deadlocks in a database program.