Thursday, November 5, 2009

Better Open Source Enterprise C++ Web Services-webinar

I will be doing a webinar on WSF/C++ on 10th November. If you are looking to incorporate native web services stack in your web services solution, this webinar will be of great value for you to evaluate WSF/C++ and get to know the capabilities and get started and what's more its free. This webinar will be a technical oriented one with covering lots of details on how you can use WSF/C++ framework.

wsf-c  -banner-ot

Registration for webinar is now open. Looking forward to seeing lots of you turn-up for the webinar. :)

Sunday, October 18, 2009

WSO2 WSF/C++ 2.1.0 Released

We are pleased to announce the release of WSO2 Web Services Framework for C++ 2.1.0 release.  With this 2.1 release comes some very useful usability enhancements in addition to many improvements to the framework.

Now the code generator tool is able to generate visual studio project files for the generated code. In addition, we have released an eclipse plug-in wizard alone with this release, which provides a comprehensive GUI interface to the code generator tool. This will allow the users who are working within eclipse IDE to generate code without having to leave the IDE.

We have done some work to improve the performance of the WSF/C framework within this period of time. In addition, the many shortcomings  in the code generation tool has been addressed from the previous release.New samples were added. Also some platform specific issues have been addressed in this release which allowed WSF/C++ to be complied in both MacOS as well as Solaris without having to do any changes.

You can download the 2.1 release from here.  Also download the Eclipse Codegen Wizard Plugin if your prefer to work in eclipse.

Here is the complete release note.

WSO2 Web Services Framework for C++ (WSO2 WSF/C++) 2.1.0 Released

=================================================================

WSO2 WSF/C++ team is pleased to announce the release of WSO2 WSF/C++ 2.1.0.

You can download this release from: http://wso2.org/downloads/wsf/cpp

WSO2 Web Services Framework for C++ (WSO2 WSF/C++) is a standards compliant, enterprise

grade, open source, C++ library for providing and consuming Web services in C++, based on the popular,

WSO2 WSF/C library.

Project home page:

http://wso2.org/projects/wsf/cpp

-------------

Key Features

=============

1. Client API to consume Web services

      * ServiceClient class with one-way and two-way service invocation support

        for SOAP 1.1, and SOAP 1.2.

      * Options class to facilitate configuring the client for both SOAP and REST options.

2. Service API to provide Web Services

      * ServiceSkeleton class to extend from to implement services.

2. Attachments with MTOM

      * Binary optimized

      * Non-optimized (Base64 binary)

      * Attachment Caching Support

3. WS-Addressing

      * Version 1.0

      * Submission

4. WSPolicy

5. WS-Security

      * Username Token

      * Timestamp Token

      *  Signing

      *  Encryption

      * WS-SecurityPolicy based configuration 

      * Reply detection

      * WS-Trust

      * WS-Secure Conversation  

6. Code generation Tool

      * By providing a wsdl and options, generate client stubs and service skeletons

        in C++ using the code generation tool.

      * A Code generation Eclipse plugin is also available with this release. The code generation tool

has been integrated into an eclipse plugin wizard which allows a user to conveniently

utilise the code generation tool while working within eclipse.

7. SSL enabled transport layer

8. WS-Reliable Messaging

9. Has all the capabilities available from WSF/C library.

--------------------------------

Major Changes Since Last Release

================================

1. Eclipse plugin for code generation tool added.

2. Visual Studio project file generation is added to the code generation tool.

3. Documentation Improved.

4. Many bugs fixed in the code generation tool.

5. Many memory leak fixes.

6. More samples have been added.

7. The Service API has been enhanced to allow users to extend from the generated skeleton classes.

-------------------

Known Issues

-------------------

There could be memory leaks in some scenarios.

-------------------

Reporting Problems

===================

Issues can be reported using the public JIRA available at:

https://wso2.org/jira/browse/WSFCPP

-----------

Contact Us

===========

Mailing Lists

-------------

Please subscribe to our user or developer mailing lists. For details on how

to subscribe please visit: http://wso2.org/mail

Discussion Forums

-----------------

Questions could be raised using the WSF/C++ forum.

http://wso2.org/forum/352

Training

========

WSO2 Inc. offers a variety of professional Training Programs which includes training on WSF/C++.

For additional information please refer to http://wso2.com/training/

Support

========

WSO2 Inc. offers a variety of development and production support programs, ranging from Web-based

support up through normal business hours, to premium 24x7 phone support.

For additional support information please refer to http://wso2.com/services/support/

We welcome your early feedback on this implementation.

Thank you for your interest in WSO2 WSF/C++.

-- WSO2 WSF/C++ Team --

Thursday, September 24, 2009

New Blog on C++ Web Services

We created a new blog http://cppwebservices.blogspot.com/ which will work as an aggregator for discussing matters related to doing Web Services, SOA in C++. The plan to get it to the same level like http://www.phpwebservices.blogspot.com/ which is an aggregated blog where you can find lots of details on PHP Web Services.

The blog would be primarily discussing  how you can get web services running smoothly With WSF/C++Web Services Framework.  WSF/C++ comes with lots of features as demonstrated by the following architecture diagram.

wsf-cpp-architecture

Tuesday, September 1, 2009

Getting Started with Axiom/CPP

WSF/CPP comes with its own XML processing model which is Axiom. If you are already familiar with either Axiom/Java or Axiom/C it would not be difficult to grasp how to use Axiom/CPP.

Lets have a look at an small example. Say we want to construct an XML as follows.

<WSO2 xmlns:ns1="http://wso2.org">

<projects>

<WSF>

<WSFCPP>http://wso2.org/projects/wsf/cpp</WSFCPP>

<WSFPHP>http://wso2.org/projects/wsf/php</WSFPHP>

</WSF>

</projects>.

</WSO2>

Lets construct this xml using Axiom/CPP.

First call the Environment::initialize() method to initialize WSF/CPP.

 

Now create OMElement in the corresponding order. You can pass the parent element to the constructor of the child element. The code is self explanatory.

int main()

{

  Environment::initialize("test.log",AXIS2_LOG_LEVEL_TRACE);

   OMElement *wso2 = new OMElement(NULL,"WSO2", new OMNamespace("http://wso2.org","ns1"));
    OMElement *projects = new OMElement(wso2, "projects");;
    OMElement *wsf = new OMElement(projects,"WSF");
    OMElement *wsfcpp = new OMElement(wsf, "WSFCPP");
    wsfcpp->setText("
http://wso2.org/projects/wsf/cpp");
    OMElement *wsfphp = new OMElement(wsf, "WSFPHP");
    wsfphp->setText("
http://wso2.org/projects/wsf/php");

    cout<<wso2;
    delete wso2;

   return 0;

}

Common Issue with Certificates created on Windows

One of the common issues faced when dealing with certificates for doing SSL communication or WS-Security is that the certificates created on windows does not work on Linux. This is due to the addition of Windows Specific characters to the certificate. I have seen so many users struggle to get SSL/HTTPS working due to this problem.

So easiest thing to do, if you want to run a client with HTTPS on Linux with a certificate created on windows, just do a dos2unix on the certificate.  :)

This should help you save a lot of time.

Building WSF/PHP with PHP 5.3.0

Since the release of PHP5.3.0 number of requests were there inquiring the compatibility of WSF/PHP with PHP 5.3.0.  I tried it out on windows and I only encountered minor issues. These issues are now fixed on the svn trunk. Here is how you can build WSF/PHP from the svn source to use with PHP 5.3.0.

First download both PHP 5.3.0 source and binary distributions from php.net. You will also need to download the binary tools such as bison.exe which are required to build the PHP source.

Next you need to run the buildconf.bat contained with the php source in order to build the windows specific headers.

Now you are ready to build wsf/php for php 5.3.0.

Get the svn source of wsf/php from  https://wso2.org/repos/wso2/trunk/wsf/php.

svn co http://wso2.org/repos/wso2/trunk/wsf/php wsfphp

Now cd to wsfphp directory and open the configure.in file and set php configurations as follows.

PHP_SRC_DIR = E:\php\php-5.3.0
PHP_BIN_DIR = E:\php\php-5.3.0-Win32
BINDLIB_DIR = E:\php\bindlib-cvs-vc8

Of course you need to set the other dependencies according to your machine configurations.

Now run the build.bat file. This will build wsf/php binary for php 5.3.0

Wednesday, August 5, 2009

Personality types

Knowing your personality type can be really useful. I found these links on the Internet which helps one judge what his personality type is like.

Here is one nice exercise which can be used to decide the personality oneself.  I saw somewhere that most programmer and software engineers happen to be INTJ.

Here is another type of analysis. The good thing about this one is it has some tips on how to deal with each type of personality.

Thursday, July 23, 2009

WSO2 WSF/CPP 2.0.0 Released

WSO2 WSF/CPP 1.0.0 was released sometime back with the intention of providing a C++ API for C++ developers while leveraging the capabilities of WSF/C Web Services Stack. It only had the Client API. With this new release,the product has been significantly enhanced with the addition of a Service API, Code Generation support for C++, and Many WS-Security features. WSF/C++ can be deployed on both Apache2, and IIS. Also it has the stand alone http server as well. You can download WSF/C++ from http://wso2.org/downloads/wsf/cpp.

Here is the complete release note.

 

WSO2 Web Services Framework for C++ (WSO2 WSF/C++) 2.0.0 Released

=================================================================

WSO2 WSF/C++ team is pleased to announce the release of WSO2 WSF/C++ 2.0.0.

You can download this release from: http://wso2.org/downloads/wsf/cpp

WSO2 Web Services Framework for C++ (WSO2 WSF/C++) is a standards compliant, enterprise

grade, open source, C++ library for providing and consuming Web services in C++, based on the popular,

WSO2 WSF/C library.

Project home page:

http://wso2.org/projects/wsf/cpp

-------------

Key Features

=============

1. Client API to consume Web services

      * ServiceClient class with one-way and two-way service invocation support

        for SOAP 1.1, and SOAP 1.2.

      * Options class to facilitate configuring the client for both SOAP and REST options.

2. Service API to provide Web Services

      * ServiceSkeleton class to extend from to implement services.

2. Attachments with MTOM

      * Binary optimized

      * Non-optimized (Base64 binary)

      * Attachment Caching Support

3. WS-Addressing

      * Version 1.0

      * Submission

4. WSPolicy

5. WS-Security

      * Username Token

      * Timestamp Token

      *  Signing

      *  Encryption

      * WS-SecurityPolicy based configuration 

      * Reply detection

      * WS-Trust

      * WS-Secure Conversation  

6. Code generation Tool

      * By providing a wsdl and options, generate client stubs and service skeletons

        in C++ using the code generation tool.

7. SSL enabled transport layer

8. WS-Reliable Messaging

9. Has all the capabilities available from WSF/C library.

--------------------------------

Major Changes Since Last Release

================================

1. Service API which enable implementing services in C++.

2. Code Generation tool for C++.

3. Documentation Improved.

4. WS-Security Additions including

    * WS-Secure Conversation

    * Replay Detection

5. Many bug fixes.

-------------------

Known Issues

-------------------

Dual channel scenarios could cause crash issues.

-------------------

Reporting Problems

===================

Issues can be reported using the public JIRA available at:

https://wso2.org/jira/browse/WSFCPP

----------------------

Contact Us

===========

Please subscribe to our user or developer mailing lists. For details on how

to subscribe please visit: http://wso2.org/mail

We welcome your early feedback on this implementation.

Thank you for your interest in WSO2 WSF/C++.

-- WSO2 WSF/C++ Team --

Monday, June 29, 2009

Develop Web Services With WSF/C++

WSF/C++ is the latest product from the WSF family of frameworks for developing Web Services with C++. Its client side was released a while back and now the server side has also been added to the stack. This is due to be release soon.

Following are some of the features of the Up coming WSF/C++ 2.0.0.

1. Client and Service API s for providing and consuming Web Services.

2. Support for WS-Security, WS-Secure Conversation and WS-Policy based configuration options.

3. MTOM attachments support.

4. Code generation tool to generate client stubs and service skeletons given a wsdl.

I will go though these futures in detail in future posts.

Installing eAccelerator with WSF/PHP

eAccelerator is a popular php optimizer and a dynamic content cache. By installing an optimizer, a php web site can be optimized to get maximum performance and would result in very quick response times for the clients significantly improving the client experience.

Here we will have a look at how to install this tool with a PHP system which already have installed WSF/PHP. One of the complains I have seen is that eAccelerator does not work properly with WSF/PHP which is not correct.  You can easily get both WSF/PHP and eAccelerator running together.

First install WSF/PHP which has been explained in detail in the installation guide. Next download the eAccelerator source code.

Now you are ready to go ahead with the installation.

unzip the source code.

unzip eaccelerator-0.9.5.3.zip

cd eaccelerator-0.9.5.3

type ./configure --help to view the configuration options.

./configure --help

You will find the configuration option --with-eaccelerator-doc-comment-inclusion

Now you are ready to configure and install eaccelerator.

./configure --with-eaccelerator-doc-comment-inclusion

./make

./make install

This will install the eaccelerator shared library to the php extensions directory.  Now configure the php.ini settings for eaccelerator.

Sunday, March 1, 2009

Dealing with Log files

WSF/PHP uses two log files to log down certain messages useful for tracing and debugging incase of an error. These logs are handled by the underlying WSF/C Framework. It supports a log rotation as well.

Following are the log level supported by WSF/PHP.

Log values are set to the wsf.log_level php.ini entry.

0 -> CRITICAL  ( Only critical errors will be logged )
1 -> ERROR      ( Errors will be logged)
2 -> WARNING  ( Errors and Warnings will be logged)
3 -> INFO       ( Errors , Warnings and Information will be logged)
4 -> DEBUG   ( All log messages including debug messages will be logged)

When you have enabled log higher log levels, a large number of log messages are done to the log file which result in the log file growing rapidly with the number of messages processed. This would not be a problem if you are running your system for testing. But if you are running it on production this could cause some problems, because we noticed that these is a issue in the log rotation scheme for WSF/PHP 2.0.0. Due to this issue, a number of users have complained that apache stopped working as well. Therefore it is recommenced that you used the log level 0 on production systems.

Monday, February 23, 2009

Getting started with BPEL

These days I have been doing a bit of reading on BEPL ( Business Process execution language. )  BPEL plays a vital role in an real SOA deployment.Here are some of the nice tutorial links i found on the web.

1. A Hands-on Introduction to BPEL

2. A Hands-on Introduction to BPEL, Part 2: Advanced BPEL

Both these links are from oracle and involved with oracle process manager. However the BPEL aspect is explained in a very elegant way.

Also you can find some very nice links from apache ODE site

Sunday, February 15, 2009

Apache OFBiz Development ( Book Review )

I had the opportunity of reading the book  Apache OFBiz DevelopmentApache OFBiz is a top level project at apache software foundation and has a large code base and an active development community. OFBiz (Open For Business) is a open source enterprise automation software project. It has the capabilities to  cater for many business requirements like ERP, CRM , E-Business ect.

1847194001

Apache OFBiz development book  is written in such a manner that even a total new developer to the domain can quickly get started with the software. It begins with the all important aspect of how to obtain the software, how to install and getting started which is absolutely  vital.The first chapter contains details on even setting up  the eclipse devolvement environment for OFBiz as well.  The authors only expect the knowledge of java language since the software is in java.

OFBiz is a software that is built around the popular MVC ( Model View Controller ) architecture. So the book also focuses on each of these aspects thought the book. The first set of chapters focus on explaining the View aspect.  For any business application with a front end, the look and feel of the front end, the maintainability and usability of the front end is absolutely vital and the book covers a great deal about it.

From the 2nd to 6 chapter, the book covers creating a webapp with OFBiz, the how to customize it. The book goes in to great deal of detail in explaining the creating a component in OFbiz and then enhancing it systematically. Chapters 3 and four covers screen widgets and Form widgets. It has lots of detail on how to use xml configuration files. Form widgets chapter covers how to create forms , fundamentals of XHTML forms, event handling ect...

Entire chapter 6 has been dedicated to explaining the control servlet ( Controller of MVC). It  covers all details you need to know. 

Next the book focuses on the Model aspect (Data) of OFBiz. OFbiz has a Declarative Entity Engine ( Database agnostic ).  And Chapter 7 and 8 covers all the know how stuff needed for managing the data within OFbiz. It covers Entity Engine concepts, creating and using entities relationship types ... and many more.

Chapter 9 focus on Events. It focus is on Java Events, OFBiz techniques for programing business logic, handling security, .... Chapter 10 covers how to make your business components operate within an SOA model by making services available. It covers in detail "The Service Engine" of the OFbiz software.Also the book covers permissions,  security, configurations with SSL, Apache, controlling look and feel, and vital tips and techniques in managing an deploying in a live environment.

What i like about this book is the number of code samples, details explanations, and the coverage of each and every aspect of the software. Being a very large software project , OFBiz has lots of things to cover, and authors does an excellent job in putting together  think kind of a comprehensive book. For any developer using OFBiz  this is a must have book. It will not only guide you through all the important aspects of OFBiz, but also will serve as a vital reference to look up when ever you need to figure out something.

Thursday, January 29, 2009

Making Good SOA Great

WSO2 has release a nice booklet on leveraging Carbon platform to make good SOA great. Here is a link to it.

http://wso2.org/project/carbon/making_good_soa_great.pdf

Monday, January 26, 2009

Nice article on C/C++ calling conventions

I found this nice article on code project explaining the use of calling conventions.

Thursday, January 22, 2009

Deb and RPM packages for WSF/PHP

From 1.2.1 release on wards, we did not release the .deb and .rpm packages for WSF/PHP. This was due to number of reasons.When the number of release packages were big, the testing process involved becomes lengthy. Also due the different versions of operating systems these packages have to be built for each version. Since the limited about of resources and time availability, we decided to release only the src [1]packages for linux , and binary and src packages for Windows. Also we released a [2]pecl package for Linux as well. In case you are using the PECL package, you will also need to download and install the dependency library WSF/C[3]. Therefore, it is always easier to download and installed the src package, since it contains all the decencies as well.  How ever we did not remove the installation instructions for deb and rpm since it might be useful if one is using and older release which contained deb and rpm packages or if one wished to build them manually.

In case you want to build the  binary packages for linux yourself, you can find the installation instructions here.

[1] http://dist.wso2.org/products/wsf/php/2.0.0/wso2-wsf-php-src-2.0.0.tar.gz

[2]http://dist.wso2.org/products/wsf/php/2.0.0/wso2_wsf_php-2.0.0.tgz

[3] http://wso2.org/downloads/wsf/c

[4]. http://wso2.org/wiki/display/wsfphp/Release+Process