Tuesday, August 16, 2005

What Time Is IT? Date GUI DBE Service

Files: UCEDateGUIExample.zip

In the last tutorial we run a simple DBE service using the ExE. The tutorial provided the basis for deploying and consuming the service, and also it provided instructions on how to install and configure an ExE DBE node.

Based on the previous tutorial, this one will implement the service with Graphical User Interface (GUI). This tutorial is based on the one produced by our Regional Catalyst partners ITA in Aragon (Spain). This tutorial focuses on getting the service quickly deployed and consumed.

The tutorial has 4 parts:
  • Requirements
  • Deploying the Service
  • Running/Testing the Service
  • Conclusions

Requirements
If you haven’t installed the servENT distribution yet, please follow the details in the previous tutorial to install and configure the servENT. We assume that you are using servENT version 1.4. In this example the service is self-contained and all the code necessary to run the service is part of the service itself, including the graphical user interface.

Deploying the Service
Download the UCEDateGUIExample.zip file and unzip it to a suitable directory. As with the previous tutorial, once the servENT is started, we can deploy our service by using the deploy.html file within that directory. Open the deploy.html file and upload the deployThis.dar file and press “go”. If everything went OK you should see a “Service Registered” message/page, and browsing to the services pages of the FADA node should display the service smid (http://localhost:2002/services)

Running/Testing the Service
In this case, we can run/test the service in two different ways, as a service embedded in a (Java) Applet or as a standalone DBE service.To test the service as an Applet, you will need to type this URL on your browser:
http://_servent_ip_:_servent_port_/CLIENT/show?entries=_entry_
where:
_servent_ip_ is the host where the servENT is running, typically localhost
_servent_port_ is the port where servENT is running, typically 2728 (default)
_entry_ is the name of the service (service smid as described in servent.props)

In our case, our URL should look like: http://localhost:2728/CLIENT/show?entries=UCEDateServiceGUI

When you load the URL, an Applet should open and run the service. Running the service as an Applet requires that you have your browser properly configured to support Java Applets.



To run the service as a standalone java class, copy the file “client.bat” (included in UCEDateGUIExample.zip ) under your servENT bin directory and execute the command (within that directory)

\bin\Client.bat UCEDateServiceGUI

More or less immediately, you should see a window like this.




If you click on the “get date” button, you should obtain a new window with a dialog box showing the date. In this case, our service contains both the user interface and the service.

Conclusions
The previous tutorial demonstrated how to deploy and consume a simple service. On this tutorial we have replicated the functionality of the previous service and included a GUI that also gets deployed and consumed together with the real service. In both cases, the service consumer (client) had no knowledge of the protocol, or the real service location*.

For more information, look at the source code included on this example and also at the servENT users guide, available at the SourceForge site.

http://swallow.sourceforge.net/distribution/docs/user_guide.html

* For simplicity, we have used only localhost

Friday, August 12, 2005

What Time Is IT? A DBE Service

Files: UCEDateExample.zip

This is a very short tutorial of how deploy and run a simple service based onto the DBE Execution Environment (ExE). When the service is called, it returns the date of the system in which the service is running.

While the service is nothing to get excited about, it demonstrates in simple terms the steps to deploy and consume a DBE service. The tutorial is based on some of the DBE training materials used during a DBE Technology Workshop held in Helsinki (Findland).


The tutorial has 6 parts:

  • Requirements
  • Installing and configuring servENT
  • Running servENT
  • Deploying the Service
  • Running the Service
  • Conclusions

Requirements

I will assume initially that we are using a MS Windows based system (XP Pro, 2000, Server, etc) and that you have also installed on the system initially the Java Runtime Environment (JRE) or the java SDK.

First you need to install the latest version of the servENT (currently version 1.4). The servENT is a hybrid client/server. The servENT site provides a short description of what the servENT is:

“A peer2peer application container that isolates the programmer from the peer2peer coding complexity. Applications are coded as a POJO (Plain Old Java Object) object without any single acknowledge of distributed programming”

In simpler terms, the servENT allows developers to create distributed applications as if they were local applications. servENT is both a client and a server, making the design of Services Oriented Architectures and digital ecosystems based on service aggregation simpler.

You can download the version 1.4 of the servENT here(*):

http://gaudi.techideas.info/dist/

(*) Version 1.5 of the servent has been released. This tutorial assumes that you have version 1.4.

Installing and configuring servENT
To install the servENT, double click on the jar file or run it from the command line:

java –jar servent-0.1.4.jar



After running the command, a window appears prompting you to accept the GNU Lesser GPL Licence and the installer will ask you where to install servENT. For simplicity, lets assume that we install the servENT on C:\Program files\servent (The default directory of the installer, see the previous picture).

Once the servent is installed, you will need to edit and change a couple of properties in the servent.props file. This file is located under C:\Program Files\servent.

Open the file and first of all, make sure that the property “rootPath” has the format (with forward slash)

rootPath=C:/Program Files/servent

Also, uncomment the property "fada.autostart" so that it reads

…..

#fada.leaseTime=6000

#fada.lookuptime=10000

fada.autostart=true

……

Also, change the password to something different and make a note. The property is called “adminPassword”

……

adminPassword=Your password here

….

We will need this password when deploying a new service. Save the servent.props file.

Running servENT
We are almost there. Now we need to run servENT. Under the c:\Program Files\servent\bin, double click on the run.bat. You should see the servent running spitting out lots of debug/output messages. The last message should read.

FADA on ready completed

If you get errors or servENT does not work, make sure that you have modified correctly the servent.props file

The servENT is actually made of two components servENT and FADA. You can read more about the architecture on http://swallow.sourceforge.net/ and http://fada.techideas.info/

Once the servENT is running, you can point your browser to http://localhost:2002/ and you should see the node management interface:



Deploying a Service
Now we need to deploy the service. Download the UCEDateExample.zip and unzip it to your local hard disk. In my case I unzipped the file in my F:\ drive. Under that directory there is a file called deploy.html. this file will upload a service to the local servENT, which is assumed that is running on your local machine (localhost).

Our Date service is already created and packed on a .dar file (Deployment ARchive) called "deployThis.dar"


Open the deploy.html, click on the “Browse” Button and select (open) the "deployThis.dar" file. Click on "go!". The system should prompt you for the password that you entered earlier. If everything went OK you should see a “Service Registered” message/page.


Browse to http://localhost:2002/services, and you should see our service registered:



Now is time to run our service. There is a .bat file called runClient.bat, if you run that command, from a console (not by double clicking) you should get an output like this:
conclusions

Conclusions

This sort tutorial has shown how to deploy and consume a DBE service. The .zip archive also contains instructions and scripts for Windows to compile and create the .dar file (see included readme.txt).

For simplicity, it has been assumed that everything is run under the same machine. However, it is possible to install a servENT node on a different machine in your local area network and start exploring the possibilities of running Services in the P2P network rather than running (Web)Services in a typical Client/Server architecture. If you do that, the FADA node management interface has an option to use multicast broadcast for the nodes to find each other (under the your servent/fada directory, the file is called "configure.bat)".

Thursday, August 11, 2005

Open Source Business Opportunities

A special report in Infoworld provides a list of interesting business opportunities. These include ERP, CRM, EPOS, VOIP, RFID, etc. These commercial opportunities look ideal to be exploited/tested through the DBE project. DBE enables the open source applications to be offered as services for usage by multiple industry segments.

Monday, August 08, 2005

Designing for Participation

On this PodCast (and the presentation), Tim O'Reilly presents current case of successful Business2Consumers (B2C) internet sites that rely on heavy services aggregation and user participation.

The PodCast and the presentation highlight how we are moving from software packages to software services, from standalone applications to applications as aggregated software services, from the desktop application stack to the internet application stack and where sharing your data and your services aggregated software services adds value to your data and to your business.

Friday, August 05, 2005

SOA Tools

An article describing the current momentum that SOA and the MDA philosophy is gaining amongst tool vendors, specially developing add-ons to Eclipse in order to support the SOA/MDA development approach.

Thursday, August 04, 2005

Business Benefits for SOA Adoption

It is interesting to try and understand the business drivers for SOA adoption. It is clear that these will be very different based on the size of the organisation, the industry sector, the value networks and the current level of IT adoption. Three areas have been looked based on the capabilities of SOA. These are:
  1. Reusability
  2. Service composition, orchestration and choreography
  3. Loose coupling

A paper from webMethods uses the above mentioned capabilities of SOA to discover the business drivers for SOA adoption (http://www1.webmethods.com/PDF/The_Business_Case_for_SOA.pdf).

The arguments presented are highly relevant from a large firm perspective particularly for those with a high level of IT adoption. The challenge still remains for small and medium enterprises (SME) who mostly lag in IT adoption and this has been a concern from economic perspectives. The digital divide is significant and pundits predict that SOA is an answer to bridge the gap. But how? The above three capabilities of SOA are still useful for discovering the business drivers for SMEs. But what else needs to be understood before we embark on identifying the real business drivers? These are likely to be:

  • Supply side and demand side capabilities and features
  • Current barriers to IT adoption - Technology and non-technology issues
  • Service needs and priorities

There is also the issue of availability of a public SOA for such a usage. Though the DBE Project is involved in creating such a facility it is going to take some time before it is ready to support any commercial service implementations.

Interesting blog on SOA in third world.

Tuesday, August 02, 2005

View of Business Service Flow

(c) Nagaraj

Creating DBE services from existing applications

Web Services, Service Oriented Architectures and Digital Business Ecosystems are becoming key concepts in the Software Development World. Software developers are keen to know more about these new developments and are also interested knowing how to get on board with their existing applications.

The key characteristics of software services developed for the new paradigm are loose coupling, reusability and open standards. These characteristics are important and lead a new focus in software development towards development of new software services. However for existing applications to be migrated to the DBE the requirement is to develop a service adapter to eanble access. The adapter is a simple Java programme. Information for creating web services from existing applications is available from this site - http://www-128.ibm.com/developerworks/webservices/library/ws-legacy/. The requirement for the DBE is similar.