Monday, May 29, 2006

Bulletproofing SOA

I found this nice article on the web on how to bulletproof SOA:

http://news.zdnet.com/2100-9593_22-6076996.html?tag=zdnn.alert

Thursday, May 25, 2006

SOA 2.0 - Moving towards Event driven architecture

Here is an article about future of SOA 1 i.e. SOA 2.0

"SOA 2.0 is the term that we're using to talk about the combination
of service-oriented architecture and event-driven architecture," said
Steve Harris, vice president of Oracle Fusion middleware.

The term, SOA 2.0, also is being championed by Gartner's Yefim Natis,
a vice president and distinguished analyst at the firm. Contacted by
telephone, Natis stressed event-driven architecture as the main
distinction between SOA 2.0 and the first, client-server driven
iteration of SOA.

"SOA as we know it today deals with a client-server relationship
between software modules," with services being subroutines serving
clients, Natis said. "However, not all business processes and
software
topologies fit this model."

With SOA 2.0, an event-driven architecture is deployed in which
software modules are related to business components, and alerts and
event notifications are featured. The initial SOA concept has not
been
event-driven but instead has featured direct calls from one piece of
software to another in a client-server process, Natis said. SOA
implementations have focused on Web services and subordinates to
clients, he said.

SOA 2.0 applications could include order processing systems, hospital
admissions processes or bank transactions, Natis said.

Oracle is positioning its Fusion middleware components as a solution
for SOA. Oracle sees the Java Platform, Enterprise Edition 5 (Java EE
5), SOA 2.0 and Web 2.0 coming together to produce a more productive
application platform, said Thomas Kurian, Oracle senior vice
president. Web 2.0 features more dynamic clients.

You can read this in full at:




Wednesday, May 24, 2006

Cruise Control Step by Step procedure

Following steps might be useful while installing cruise control:

Please Note:
1. These steps were created in one of our projects and by a team member. Many of the folders are hard coded. The developer needs to modify the folder names appropriately.
2. There could be other ways to set up and more easily.

Installation of the Cruise Control
-----------------------------------
Version : Cruise Control 2.3

INSTALL PROCEDURE

NOTE: It is VERY, VERY important that you follow this procedure carefully and exactly with NO changes.
CruiseControl can be quite finicky and takes a long time to debug if it doesn't work right!


Pre-requisite: (on the machine where cruise control is running)
---------------------------------------------------

Tortoise CVS should be installed.
Tomcat 5.0 is installed
JSDK1.4.2 version or above
ANT 1.6 or above


Folder Structure
---------------------------------------------------
-Create a Folder continuousintegration on c:
c:\continuousintegration
-cruisecontrol
-builds
-artifacts
-checkout


Installation Steps:
-------------------

1) Create the Folder structure as shown in above.

2) Install the Tortise clint on the machine where the cruise control is running.
(required to update the files from repository)

3) Install the Java SDK 1.4.2_06 in "c:\j2sdk1.4.2_06" and set JAVA_HOME to the same.
or set the JAVA_HOME where you have the JSDK installed.

4) Install Tomcat 5.0 in "c:\Tomcat5.0" (no spaces!) and set CATALINA_HOME to "c:\Tomcat5.0". Use port 80 during the installation and note down the administrator username and password tht you supply(username:admin password: admin).

5) set ANT_HOME variable in the System's environment to "C:\continuousintegration\apache-ant-1.6.2"
or set the ANT_HOME where you have the ant folder.

6) download the cruisecontrol-2.3.0.1.zip version from the below link and extract this folder in the path
C:\continuousintegration\cruisecontrol downloadlink :http://cruisecontrol.sourceforge.net/download.html

- And set CCDIR variable in the System's environment to
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main"
(This is path of the cruise control which you extracted)

- copy the config.xml file attached with this document into path
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin"

7) Prepend "%JAVA_HOME%\bin;%ANT_HOME%\bin" to the PATH variable in the system environment

8) Restart the machine. This is necessary for the PATH changes to take effect for creating a Service


9) Start Tomcat. Go to "http://localhost/manager/html" and login in using the administrator login and password.

10) Before deploying the cruisecontrol.war on tomcat, build the cruisecontrol.war through command prompt.
follow steps
-go to command pomopt "C:\Downloads\cruisecontrol-2.3.0.1\reporting\jsp"
-execute command C:\Downloads\cruisecontrol-2.3.0.1\reporting\jsp>build war;
-build will start now and will ask for the fallowing inputs so plese input associated values
as given below.
-set.log.dir:
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin\log"
-set.status.file:
"currentbuildstatus.txt"
-set.artifaacts.dir:
"C:\continuousintegration\cruisecontrol\builds\artifacts"

-confirm that your build is successfull.

11) Using the "WAR file to deploy" section, deploy
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\dist\cruisecontrol.war" into
"C:\Tomcat5.0\wepapps" Tomcat. You should be able to see the cruisecontrol jsp application in a browser at "http://localhost/cruisecontrol". This does NOT mean that cruisecontrol process is running.

12) Check out your project, and copy/cut the entire "checked out source code" folder and paste it into "C:\continuousintegration\cruisecontrol\builds\checkout".

13) Go into the "C:\continuousintegration\cruisecontrol\builds\checkout\" folder and run "ant war" to verify that an ant build works in this directory.

14) Run "InstallCruiseControlService.bat" from directory "C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin" in a command shell.

15) If you go to "Start->Control Panel->Administrative Tools->Services", you should now be able to see a service called "CruiseControl".

16) Change the service to "Automatic" and start it. This should run the service. Check by typing "http://localhost:8000" into a browser. This should bring up the cruisecontrol's JMX control panel.

17) Click on the link named "CruiseControl Project:name=" To view the attributes set for the cruisecontrol.

18) Run "cruisecontrol.bat" from directory
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin" in a command shell.
If the console did't throw any exception then Hopefully your cruise control will be working fine
and it will continously look for the modification at your repository.

19) See your console for your cruise controle activities or you can see the log files from
C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin\logs

Some of the Usefull Reference Sites:
http://cruisecontrol.sourceforge.net/
http://cruisecontrol.sourceforge.net/main/configxml.html
http://www.javaranch.com/journal/200409/DrivingOnCruiseControl_Part1.html
http://www.javaranch.com/journal/200410/DrivingOnCruiseControl_Part2.html

Configuration files
---------------------
1. config.xml ==> Generally available in: C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin

2. CruiseBuild.xml ==> available in your source code folder. Should contain the CVSRoot info.

3. use "\" appropriately while mentioning folder structure based on your operating system.

4. Take special care while specifying the environment variables. I got stuck while appending "%ANT_HOME%"\bin to the PATH. Finally, I expanded ANT_HOME to proper windows directory and pasted onto PATH.

5. Ensure that the log file directory is properly set. Mostly it would be:
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin\logs\
You can also set the log directory at the time of building the Cruisecontrol WAR OR you can change the log dir in web.xml after deplopying Cruisecontrol on tomcat

Thursday, May 18, 2006

Amazon being a technology company

All these days when somebody talked about Amazon, first thing I used to visualize was some software book image on the web browser !!! But following article changed the way I look at amazon, as a Technology company !!

http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=388&page=3

I remember reading it somewhere that McDonald's is not really into making burgers but are into real estate. Now I can see what I read !!!

Wednesday, May 17, 2006

Difference between Transfer and Transport protocol

Here is a good definition of transfer and transport protocol found on SOA discussion forum.

They're two different protocols of the stack that play
entirely different, non-overlapping roles. Transport is for
moving bits around the network. Transfer is for exchanging
data between applications. Transfer uses transport.

In OSI-speak (since somebody brought it up) IIOP, SOAP (as
commonly used), etc.. are layer 5/6 protocols, while transfer
protocols are layer 7. That's why I've always got a chuckle
about those try to put SOAP over HTTP 8-)