Thursday 31 December 2009

strap on bike

cool strap on bike


Prototype trials in China, Australia & Singapore from Chariot Skates on Vimeo.

Wednesday 30 December 2009

Cool android apps

cool android apps




A review of nexus one UI

Tuesday 29 December 2009

Nexus One Launch jan 5

Another story, this time from credible source about Nexus one launch to be eminent

http://www.guardian.co.uk/technology/2009/dec/29/google-nexus-one

Nexus one by google, a game changer?

It has been a few days since blog sphere started speculating about google phone aka nexus one. As expected people are comparing this with Iphone 3GS.

Its bit funny to see people comparing spec by spec and declaring one one winner over the other, but we should not forget that Iphone kicked Nokia by not coming up with just good spec phone but by setting great user experience driven by great ecosystem of services, such as music download, apps and excellent marketing.

One thing that could kill Iphone would be inovation in form of new business model, services etc.

If one is to believe the rumors, google is going to launch Nexus one on Jan 5th 2010 at discounted price of $199

Monday 23 November 2009

ssh key error

If you get get error below, this probably due to ssh not set in known_hosts file used to make sftp connection


The invocation resulted in an error: com.sshtools.j2ssh.transport.kex.KeyExchangeException: The host key is invalid or was not accepted!.

sony XPERIA X10

This has to be one of the coolest phone from



Monday 16 November 2009

log4j logging in weblogic 10g

It has been a long time since i have updated. Today i am sharing a quick tip to enable log4j logging in weglogic 10g

1) Copy log4j jar into domain/lib dir
2)copy WL_HOME/server/lib/wllog4j.jar into domain/lib

Log into weblogic console browse to the server and in logging tab select log4j
Give weblogic a restart

Monday 31 August 2009

Enable mack book pro to sync with Google contact

I wanted to sync my address book with google contacts in my gmail account


I didnt have IPhone so i I found following tutorial helpful:
http://www.zaphu.com/2008/05/29/how-to-enable-mac-address-book-syncing-with-googles-gmail-contacts-without-an-iphone-or-mac/

Also i dont have have ipod (yes its true)

so need to create a file in library/preferences with contents mentioned in the link

http://forums.macosxhints.com/showthread.php?t=90231

Sunday 16 August 2009

Sync Google contacts calendar MAC and Nokia

I like Ical for easy interface that it presents on my MAC, but lets face it i am not always carry my mac. A quick search on the net reveled various third party products. I am not too inclined to use them as they clog the system


I found following

Sync your Mac ICal




Nokia come with PC suite to back up the contacts on the phone, but i never liked the software and lets face it its a pain to back up manually, i rather spend my time doing something eles than backing up my mobile contacts.

so here is a solution keep your mobile and google contacts in sync


Sync your Nokia mobile

Sunday 5 July 2009

Oracle service Bus on MAC

Well the first set is to insure that you have java 1.6 on your mac, this seems quite obvious but things are interesting in mac world. in windows one has to insure the right JDK in on the path and Java home defined etc. In MAc world its really dead simple, just download jdk 1.6 and run, and its done, seriously

My mac machine had 1.5 installed when i went to update it to 1.6 i was surprised that all it asked was do want to install on Macintosh HD? Unlike windows no need to give a location and then changing environment variables, etc. Just go to utilities and Java preferences to set your default JDK, it handels multiple JDK most elegantly.

Once you are done with Java, download HP UX edition of oracle service bus and run it from terminal, as Mac is basically unix under the hood

Sunday 28 June 2009

Mac book pro getting started

Mac keyboard is bit different and some things may not be obvious

Hash key --> #
Anyway to cut a long story short it’s ALT + 3. Not too much hassle, and apparently a common thing with Mac UK keyboards.


Copy paste
apple key & C

Right click
ctrl & click


I was playing with a Mac the other day and I noticed that the red ball with an X does not actually close a program. If this the way it works or there is an option to make the X close or minimize them?


The red X is to close the window only. To minimize hit he yellow -. If you want to quit a program hit command+q or choose the applications menu and quit.



This is because on Macs the applications aren't restricted to a root window (nor are windows "instances" of an application on a Mac). Most apps present the user with document windows... which are documents in an application and not the application itself.

The default behavior in Windows stems from it's origins as a shell for running GUI apps. Since that time most Windows apps have been rooted in a main (root) window and closing that window closes the application.

This rooted application environment is actually a limitation of Windows rather than a feature. Other operating systems (some going back to the 80's) avoided this limitation, but it has followed Windows from it's earliest incarnations



Saturday 27 June 2009

Going over board with chilies



Many times you hear people take on toll they are familiar with too far. We have many examples in It world, classic one is with XML, but today I was surprise by Indian Defense department using chilies in hand grenades. This is no funny matter BBC has it on their website.


This is supposed to be used for crowd control, but I sound more like crowd torture.

Sunday 14 June 2009

Iphone3GS Andriod

IPhone 3GS was an incremental release by apple. As other bloggers and media have noted its not a game changer. The hardware has been upgraded a bit to handle Iphone OS 3 features, but it is more or less the same phone.

Android phones have been bit slow to hit the market, but i am aware there are many phones from different vendors in the pipeline.

so i was wondering would android phones still have the steam to beat iphone when they arrive? would android phones ever gain media attention something close to iphone?

Saturday 23 May 2009

Weblogic UDDI and UDDI Explorer

In my previous post i looked into using Oracle Uddi in conjunction wih Oracle Aqualogic ESB. As Oracle has bought many middleware productct from various vendors, this has resulted in several Apps in Oracle middleware porfolio with over lapping funcationality.

UDDi registery is one such case. Weblogic server as well provides UDDI 2.0 registery and its started when weblogic is started.

Over the next few days i will be exploring this further and provides steps to utilize weblogic UDDI

Tuesday 19 May 2009

Wolffam Alpha new serach engine


Today Wolffam Alpha was launched. It is in a way a game changer, mainstream search engines have been concentrating to provide best possible page based on query and its upto user to digest that.


Wolffam Alpha on the other hand tries to analyze the query and give answer rather than search result.

give it a try :)

Saturday 2 May 2009

Google Andriod HTC Magic

Today i had a look at HTC magic phone, this is successor to HTC G1.

Overall this phone had power to WOW users and appeal users in masses. IPhone has been iconic hit in US and Europe but has not made much inroads in India. The major adoption obstacle for IPhone in India is its entry price.

HTC magic phone currently being offered by vodaphone has potential to offer serious competition to IPhone as its Slim, very easy to use interface, much better than anything by Noika or samsung.




HTC Magic Review

you might be wondering am i try to write a phone review. nope lots of web sites do this fairly well. i being a developer i am curious about its architecture

I quite optimistic that i will have large developer base compared to iphone.

1) user base is going to increase dramatically as new android based phone appear in market from various vendors.

2) Development on Windows platform compared to Mac Os. one of the reasons i haven't played with iPhone dev

3)Eclipse IDE is used for android development. virtually all JAVA, c++ developers

Friday 1 May 2009

UDDI lookup based dynamic routing Oracle ESB

Intro

There is a scenario when a service request comes into the ESB (Enterprise Service Bus) and we need to look at the payload and determine which endpoint to route this service.

There are two ways

1) Look up in DB or XML file to dynamic route to a business service

2) End point lookup in UDDI and route message


End point lookup in UDDI and route message



Step 1

Create WSDL, that contains information based on which we can look up endpoints example version, brand country etc- not going into details :)

Step 2

Create proxy service for WSDL in step 1

Create Business service, based on end service implementation, its wsdl might be similar to step 1 sans added info to help us do routing

Create proxy service for UDDI Inquiry service.

Step 3

Retrieve routing information from message using XPath

Service calls out to get_serviceDetails or if one needs to find business first one can do it. Retrieve access point from response message via XPath

Step 4

Route to business service

Edit routing option for outgoing message, change url to access point retrieved in step 3 and voila

Tuesday 28 April 2009

UDDI Oracle ESB


There are scenarios that one may need to Inquire UDDI repository. There are several options to our disposal to do in Oracle ESB, publishing endpoint to uddi is available out of the box.

To inquire one can use UDDI API, Java API for XML Registries (JAXR), or UDDI v3 web services. Over next few days i will be exploring these options. Uddi based lookup and routing details


Wednesday 15 April 2009

Scheduling Oracle BPM and SSIS


Scheduling computational tasks is a very fundamental functionality, which is provided by most OS. Recently I was looking into scheduling tasks in SOA environment. There are several tools at ones disposal to schedule tasks they could be placed in one or more of following buckets

•    Scheduling library, example Quartz
•    Software Package, example job Scheduler
•    Service Orchestration/ Choreography tools, example Oracle BPM
•    Databases, primarily for database tasks



Scheduling library

This approach works best if one has to there is minimal UI required to for scheduling. Example picking up schedule from a property file etc

Software Package
COTS or Open source packages provide UI, with user management, ability to schedule various types of tasks. They are good at getting up and running rather quickly but their UI may not alight with UI for in-house applications. Also on has to take into account the business process surrounding scheduling tasks such as manager approvals.

Service Orchestration

Depending on the enterprise mix, and tasks that need to be scheduled this may fit the needs. In SOA environment BPM could easily be used to schedule services and sketch various scenarios.




I am looking into integration of Oracle BPM with Microsoft SSIS package. The
primary use for SSIS is data warehousing, as the product features a
fast and flexible tool for data extraction, transformation, and loading
(ETL).


In terms of integration, i plank to kick start, SSIS package from
Oracle BPM and have mechanism, so that SSIS package can provide
feedback as to when its completed successfully or failed. Also i want
to take action in BPM in case there is no feedback from SSIS after set
interval example 2 hours.



First start with BPM process

1)Initialization - Automatic activity

2)Place timer - to insure process proceeds at set schedule

3)Launch SSIS - Automatic activity.

4)Notification wait with due transition- so that process waits for sucess/faliure notification, if that dues not come it will preform (due) transition after set interval to next state

 
 

Tuesday 7 April 2009

Add username password jax-ws

I made a JAX-WS client of PAPI web services of Oracle BPM, this web service was secured using username token profile 1.1.


so all you gotta do is generale JAX-ws client (i use myeclipse for that)

Call the client from where ever you want by:

PapiWebService_Service papiService= new PapiWebService_Service();
PapiWebService papiPort=papiService.getPapiWebServicePort();

addUsernameTokenProfile(papiPort);




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


private static void addUsernameTokenProfile(PapiWebService papiWebServicePort)
throws SOAPException {
try {
SOAPFactory soapFactory = SOAPFactory.newInstance();
QName securityQName = new QName(SECURITY_NAMESPACE, "Security");
SOAPElement security = soapFactory.createElement(securityQName);
QName tokenQName = new QName(SECURITY_NAMESPACE, "UsernameToken");
SOAPElement token = soapFactory.createElement(tokenQName);
QName userQName = new QName(SECURITY_NAMESPACE, "Username");
SOAPElement username = soapFactory.createElement(userQName);
username.addTextNode("3Support");//your username
QName passwordQName = new QName(SECURITY_NAMESPACE, "Password");
SOAPElement password = soapFactory.createElement(passwordQName);
password.addTextNode("3Support");//your password
token.addChildElement(username);
token.addChildElement(password);
security.addChildElement(token);
Header header = Headers.create(security);
((WSBindingProvider) papiWebServicePort).setOutboundHeaders(header);
} catch (SOAPException e) {
System.out.println("Could not configure Username Token Profile authentication");
e.printStackTrace();
}
}




---------------------------------
also i search and i found some fourms suggesting WSBindingProvider, but that didnt work for me



When i didnt set the username i was getting following error:
WSP0075: Policy assertion "{http://www.bea.com/wls90/security/policy}Identity" was evaluated as "UNKNOWN"

Tuesday 24 March 2009

Improve Eclipse speed

If you have lost of memory on your system but eclipse still runs slow try increasing heap size:


http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F

Jahia 6 improvements and drawbacks

A quick look at Jahia 6


Positive


  • UI Improved quite a bit
  • Portal engine JSR 168/268 compliant
  • Fine grain user right
  • JRule in order to automate file actions based on events sent by the DMS (post processing)
  • built on top of Jackrabbit instead of Apache Slide(in old version)
  • CIFS (shared drive)
Negative

  • supports 6 languages
  • No Web service integration
  • Import/ export same(monolithic)

Monday 23 March 2009

Agile Methodology principals

There are several books written about Agile methodology and its variation, but the crux of the matter is following points:



1) Individuals and interactions over processes and tools
2) Working software over comprehensive documentation
3) Customer collaboration over contract negotiation
4) Responding to change over following a plan



Friday 20 March 2009

Cloud computing and SOA

There has been lots of Buzz lately about cloud computing, this is in fact nothing new SUN micro systems declared long ago that network is computer. In Late 90's sun micro systems visioned a day when computing power will be rented. They actively worked on Grid computing and their efforts are paying off in large projects in R&D.


The most popular and successful player in cloud computing space has been Amazon . It provides storage, computing and other features. Meanwhile Microsoft has also jumped on the cloud bandwagon and is in process of releasing cloud computing platform/OS called Microsoft Azure. Since this is cloud platform it will be hosted by Microsoft with pay-as-you go payment plan. The developer hosting applications on Azure platform would be able to communicate using standard protocols HTTP, REST, SOAP, and XML.


Some have been quick to declare SOA is dead and Cloud computing is in. In fact if we examin cloud computing it is in fact an implementation of SOA. In cloud computing you are exposing Data services and custom business services running on rented infrastructure.

One must not confuse Cloud computing from Utility computing. The later is about providing on-demand infra structure where as cloud computing is about building applications on computing services hosted by cloud provider.







Cloud Computing in Plain English

Thursday 19 March 2009

Liferay document management part2

Further to my earlier post. I had a discussion with a Large vendor with lots of experience in Liferay, trying to sell liferay and it further cleared liferay is very strong on UI front as you could design just about any UI in portlets.

  1. However it would require customization of document portlet to provide role based access and other features.
  2. Again if we require document conversion it could be done through customized portlet
  3. To provide document conversion in the background have a servlet that pools the directory (Really crapy solution)
  4. To do filling of documents based on meta data, have a corn job or windows schedule (error prone)
  5. Template application through Apache POI API
  6. There is a provision to use open office for document conversion, but i have not tried it out


Hmm my conclusion is why use liferay kick start java code, if i dont need liferay UI or its workflow?


Wednesday 18 March 2009

Liferay as Document Management

In my previous post i highlighted strengths of Alfresco as document management tool. One might be tempted to use Liferay on its own as document management. This may serve well if your requirements are very basic, as saving to particular folder structure. for anything serious its recommended to use liferay with Alfresco.

Below are some key point

  1. Liferay Document management is pretty basic. It provides repository that you can add document to, remove document or upload a new version.
  2. There is a portlet to display documents (with a preset set of properties that you can only configure by changing the code). If you need more things out of doc. management you would better off with Alfresco.
  3. A common way to use Alfresco with Liferay is to manage the content in Alfresco and have workflows that publish the content to some type of file store from which Liferay can pull the content. The main reason for doing this is to be able to use Alfresco's CIFS and WebDAV interfaces, which are really useful and not matched by Liferay's broken webdav implementation. In the future, the processing rules you can attach to a folder in Alfresco will also be useful, and are not present in Liferay

Document management Alfresco Jahia and SharePoint

I did some comparison on document management systems available against client requirements which were standard document management features and ability to integrate in SOA mix.

Below is a feature comparison between Alfresco, Jahia, and Sharepoint


Alfresco

Jahia

SharePoint

  • Virtual File System

WEBDAV Support

Collaboration happens via WEBDAV only

WebDAV, virtual file system

  • Open Search Integration ( Lucene based)

Apache Lucene based Text Search Engine

Open Search

  • Automatic meta-data extraction and rules application

Limited meta data extraction from files

Automatic Meta data extraction

  • Interfaces - Web & Desktop Clients Webdav, CIFS,FTP Support, REST and Web Services

WebDAV Support

WebDav, Web services, File system

  • Automatic format conversion using open office service

Format conversion support

Format conversion service available also ability to use custom doc conversion service

  • Support JSR 168,JSR 170,JSR283,JSR 127

Portal support (JSR 168),JSR 170

WSRP port-lets consumer out of the box. Provider using customization/third party tools

  • Smart Spaces

n/a


n/a


  • Email–Like Rules

n/a

Yes

  • Kerberos

n/a

yes

  • User Presence In future

NO

User presence

  • Limited

?

Email integration



Tuesday 10 March 2009

synchronize bookmarks

Ever faced a situation where you read a great article over the weekend, you bookmarked it as well, but forgot to mail yourself and suddenly there is a urge to read it at work?

A great add-on for firefox that keeps your bookmarks synchronized across computers. check out

http://www.foxmarks.com/ 

schema xs int versus integer versus positive integer

xs:int is a signed 32-bit integer,whereas xs:integer is unbounded in terms of bits. positive integer allows values greater than zero, if you are using it to represent primary key one would go with positiveinteger.

Friday 6 March 2009

World clock add on for firefox

Here is neat plugin for fire fox that will place world time in status bar. check it out:

FoxClocks :: Firefox Add-ons





Wednesday 4 March 2009

online UML Sequence diagram utility

My friend forwarded me this utility which is pretty cool but i don't think it can replace staple UML tools. It kinda reminds be on online text editors about year or two ago.

check it out:

Web-Based UML Sequence Diagram / MSC Generator


Also see umlet a open source UML tool. This is also available as eclipse plugin

http://www.umlet.com/


A standalone open source UMl tool

http://sourceforge.net/projects/staruml/


Tuesday 3 March 2009

Oracle ESB IMAP error

When trying to connect to imap server on port 143 i was getting following error

com.sun.mail.iap.ProtocolException: No login methods supported!


It happens to be that exchange server was running on SSL on port 993. when i change the port to 993 it just times out and gives following error


com.bea.wli.sb.transports.TransportException: Connection reset
        at com.bea.wli.sb.transports.email.EmailWorkPartitioningAgent.execute

 i will update this post when i have a solution

Oracle ESB Send email via smtp

To send email from Oracle esb you need access to smtp server. There are broadly two steps

  1. Define SMTP server
  2. Create a business service with message type text. In transport select email and select smtp server defined in step 1

Thats it and now you should be able to send mail from bus.








Also check out chris blog for sending email with attachment

Monday 23 February 2009

Oracle Aqualogic ESB Patterns

Enable Disable Registry editing

'Save the following code as text file with extension vbs, then double click to run
'Enable/Disable Registry Editing tools
'© Doug Knox - rev 12/06/99

Option Explicit

'Declare variables
Dim WSHShell, n, MyBox, p, t, mustboot, errnum, vers
Dim enab, disab, jobfunc, itemtype

Set WSHShell = WScript.CreateObject("WScript.Shell")
p = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\"
p = p & "DisableRegistryTools"
itemtype = "REG_DWORD"
mustboot = "Log off and back on, or restart your pc to" & vbCR & "effect the changes"
enab = "ENABLED"
disab = "DISABLED"
jobfunc = "Registry Editing Tools are now "

'This section tries to read the registry key value. If not present an
'error is generated.  Normal error return should be 0 if value is
'present
t = "Confirmation"
Err.Clear
On Error Resume Next
n = WSHShell.RegRead (p)
On Error Goto 0
errnum = Err.Number

if errnum <> 0 then
'Create the registry key value for DisableRegistryTools with value 0
    WSHShell.RegWrite p, 0, itemtype
End If

'If the key is present, or was created, it is toggled
'Confirmations can be disabled by commenting out
'the two MyBox lines below

If n = 0 Then
    n = 1
WSHShell.RegWrite p, n, itemtype
Mybox = MsgBox(jobfunc & disab & vbCR & mustboot, 4096, t)
ElseIf n = 1 then
    n = 0
WSHShell.RegWrite p, n, itemtype
Mybox = MsgBox(jobfunc & enab & vbCR & mustboot, 4096, t)
End If

Distributed Transaction install XA Driver SQL Server

Install SQL Server 2005 and all required patches.

2. Select the authentication mode for this installation:

o Windows Authentication Mode

o Mixed Mode (Windows Authentication and SQL Server Authentication)

Either authentication mode allows the user who is specified as the database administrator in the wkplc_comp.properties file to log in to the SQL server. Mixed Mode authentication allows either a Windows user or a SQL server user, or both, to log in to the SQL Server.

3. In the SQL Server 2005 Setup panel, Components to Install, select the following components, which are required services for WebSphere Portal:

o SQL Server Database Services

o Integration Services

The option Integration Services, creates the directory DTS/Binn, where you will need to copy files when you install Microsoft SQL Server 2005 JDBC drivers and enable XA connections.

4. Complete the installation using SQL Server documentation as a guide.

5. Enable TCP/IP connectivity in the SQL Server Configuration Manager.

6. Install the JDBC driver using one of these methods:

o Installing DataDirect Connect for JDBC drivers on UNIX

o Installing DataDirect Connect for JDBC drivers on Windows

o Installing Microsoft SQL Server 2005 JDBC drivers and enabling XA connections

7. Network the connections for MSDTC in the Windows Component Services as described in Microsoft Help and Support.

8. Start SQL Server 2005.

Installing DataDirect Connect for JDBC drivers on UNIX

1. Purchase and download DataDirect Connect for JDBC and save file 360connectjdbc.jar in a temporary work directory.

2. To create the required files, run the following command from the directory that contains 360connectjdbc.jar:jar -xvf 360connectjdbc.jar:

3. Run ./Installer.sh in the same directory.

4. When installation is complete, change directory to /installation/lib, where installation is the directory in which you installed the DataDirect Connect for JDBC drivers.

5. Run the following command to change the permissions on the JAR files in the installation/lib directory:chmod 777 *.jar

6. Change the ownership and group of these files by running the following commands in the installation/lib directory:

7. chgrp system_grp *.jar

chown root *.jar

Where system_grp is the system group as labeled by your operating system.

Installing DataDirect Connect for JDBC drivers on Windows

1. Purchase and download DataDirect Connect for JDBC and save file 360connectjdbc.jar in a temporary work directory.

2. To create the required files, run the following command from the directory that contains 360connectjdbc.jar:jar -xvf 360connectjdbc.jar:

3. Run Installer.bat in the same directory.

Installing Microsoft SQL Server 2005 JDBC drivers and enabling XA connections

1. Download and install the Microsoft SQL Server 2005 JDBC driver.

2. Copy file sqljdbc_xa.dll from the xa subdirectory to the C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqljdbc_xa.dll directory of the SQL Server 2005 installation.

3. Start the database server.

4. Ensure that the Distributed Transaction Coordinator has been started. The status can be verified in the list of services in the Computer Management console.

5. Start the Microsoft SQL Server Management Studio and connect to the local database engine as the system administrator, sa.

6. Select File > Open > File and select xa_install.sql from the subdirectory of the downloaded and extracted JDBC driver.

7. Execute the script by selecting Query > Execute.

Note: Any warnings that appear in the messages section of the application window that say that stored procedures cannot be found can be safely ignored.

8. For Microsoft SQL Server 2005 JDBC drivers: If you are running Windows XP SP2, Windows XP 64-Bit Edition, or Windows Server 2003, refer to the Registry Entries Are Required for XA Transaction Support document for information on a new security constraint and how to set SQL Server 2005 on Windows XP SP2, Windows XP 64-Bit Edition, or Windows Server 2003.

Create a additional value in the Windows registry for WebSphere Portal by following these steps:

a. Open theWindows Registry Editor (regedit) and navigate to the element HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL

b. From the menu bar, select Edit > New > String Value to create a new parameter named sqljdbc_xa.dll in that element.

c. Change the value of the new parameter to the location of the sqljdbc_xa.dll file copied in Step 2 above, for example: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqljdbc_xa.dll

Enable XA Transactions in Windows Component Services

1. From your Windows desktop, follow these steps:

2. Click Start > Settings > Administrative Tools > Component Services.

3. Expand the tree view to locate the computer where you want to turn on support for XA transactions (for example, My Computer).

4. Display the context menu for the computer name and click Properties.

5. Click Options and tune the Transaction Timeout that suits your environment. (The recommended minimum is 180 seconds).

6. Click MSDTC and click Security Configuration.

7. Under Security Settings, select XA Transactions to enable this support.

8. Click OK to save your changes.

Note: The installation documentation for JDBC XA connectivity refers to two known problems, see the Microsoft support site for more information:

· KB899756: Windows 2003 only. MSDTC does not detect process termination, and MSDTC cannot set time-out values for XA transactions in Windows Server 2003.

· KB318818: Performance slows down when you use XA Transactions with SQL Server.

Saturday 21 February 2009

Save Object to Database Oracle BPM

You can also create a BPMObject directly from the catalogued table (right click table and select "Create here). This object will have all the table fields of your respective table. You can create instances of these BMPObjects for use in automatic activities or screenflow presentation function calls. These BPMObjects provide a method called "store" to directly update the corresponding database table.

eg. 

1. You have database db and table mytable
2. Catalogue table ad say you name it MyTable
3. Right-click and select "Create Heir" and you name it MyTableObj
4. To use this: 
Create an instance of this BMPObject type
myTable as MyTableObj = MyTableObj()
myTable.<some field> = .... to set some field value or
someVar = myTable.<some field> to read some field value
5. To save record in DB use: myTable.store()

WS-Addressing Tutorial

Blelow are Some of the resources i have found intertesting on WS-Addressing


A good Overview by SUN


http://www.javapassion.com/webservices/wsaddressing.pdf


Friday 20 February 2009

BPM Definations and Overview

A Big overview of BPM: One page Executive summary by Oracle



So what definitions do you need to build an architecture?

  1. The rules for mapping your organization into the BPM space

    Criteria must be in place to translate the real organization into BPM, which includes defining the following things:

    • Patterns for organizational units
    • Patterns for organizational roles
    • Patterns for groups
    • Assignment of participants to OUs
    • Assignment of participants in groups
    • Assignment of organizational roles to participants and groups
  2. The infrastructure components

    The distribution of applications and services and the way they communicate is a critical part of the architecture. Actually, this is the technical architecture of the solution. Here is a basic list of applications you need to include and the type of configuration needed.

    • BPM Enterprise Servers
      • Type (Standalone, WebLogic)
      • Configuration (Clustering, Location)
      • Database configuration
    • HiPer Workspace for BPM
      • Configuration (Clustering, Location)
    • Other modules
      • Business process dependencies
  3. The process deployment topology

    Business processes have to be inserted in the infrastructure and the organization: This is the deployment topology. The topology has a direct impact on the infrastructure and on the way people use the processes. The definitions are simple, but they need to be carefully defined based on the organization and the infrastructure.

    • The mapping to the organization
      • The OUs that the process will be deployed
      • The mapping of process roles to organization roles
    • The mapping to the infrastructure
      • The enterprise server that will execute the processes
      • The external resources required by the processes




Thursday 19 February 2009

WS-Policy Tutorial

Web service contracts can be extended with policies that express additional constraints, requirements, and qualities that typically relate to the behaviors of services. You can create human-readable policies that become part of a supplemental service-level agreement, or you can define machine-readable polices that are processed at runtime.


Name Spaces and prefix

* xmlns:wsp="http://www.w3.org/2006/07/ws-policy" – This represents the actual namespace used for elements from the WS-Policy language.

xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" –
We will show some policy examples related to the WS-Addressing
language, which is why this namespace comes up here. How the referenced
WS-Addressing features actually work is covered in Chapter 18 and this particular policy assertion is further revisited at the end of Chapter 19.

* xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702" –
This namespace corresponds to the WS-ReliableMessaging policy
assertion. Although WS-ReliableMessaging is not a technology covered in
this book, there are a few references to one of its policy assertions
in the examples.

* xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" –
There is a special type of schema that is referred to as a "utility
schema" in which generic and commonly used attributes are established.
One such attribute is wsu:Id, a
simple ID used to associate an identifier with an element. This and
other chapters make occasional reference to this attribute.



There are two ways of attaching policies to WSDL documents:

  • The policy expression code can be embedded within the WSDL definition and then utilized via native references that can be attached directly to WSDL elements as child extensibility elements.

  • Policy expressions can reside externally in a separate WS-Policy definition document, which is then referenced within the WSDL document via an external attachment mechanism.



Policy Attachment Points and Policy Subjects

Whatever part of a WSDL definition we attach a policy to is referred to as a policy attachment point. For example, we could have a policy attached to an operation element and then another to one of that operation's message elements.

Within WSDL 1.1, the following elements represent common policy attachment points:

  • service element
  • port element
  • binding element
  • portType element
  • operation element
  • message element


The policy attachment specification organizes these policy attachment points into the following four distinct policy subjects:

  • Service (maps to service element in wsdl)
  • Endpoint (maps to port, binding, portType)
  • Operation (maps to Operation element in wsdl)
  • Message




Note: This is work in progress more updates to follow

source:Thomas Erl- Web service Contract Design and versioning for SOA

Oracle Day 2009- IT Architects

The Oracle Day 2009 will cover the Oracle Technology stack from the Database and Middleware through to SOA, Enterprise 2.0, Business Intelligence and Security. This event will bring together IT professionals across industry sectors to address the real challenges faced by IT today


Agenda

Tuesday 17 February 2009

free Xpath XSLT plugin for notepad++

If you are interested in using XPath feature of stylus studio or xml spy but dont want to to pay hefty amount as you maybe using it occasionally, you could give a try to XML plugin for notepad++ both the editor and xml plugin are ope source and free


  1. Download the notepad++ binary installer
  2. Download the cml plugin. The zip file will contain a dll file that you need to place in plugin folder to install

restart notepad++ and in plugins menu there will be a xml tools sub-menu

cheers :)

Web Service Versioning

Service Version - This article is work in progress

Service Version - This article is work in progress

There is no one versioning approach that is right for everyone. Because versioning represents a governance-related phase in the overall lifecycle of a service, it is a practice that is subject to the conventions, preferences, and requirements that are distinct to any enterprise.

Three known strategies:
  • Strict – Any compatible or incompatible changes result in a new version of the service contract. This approach does not support backwards or forwards compatibility.

  • Flexible – Any incompatible change results in a new version of the service contract and the contract is designed to support backwards compatibility but not forwards compatibility.

  • Loose – Any incompatible change results in a new version of the service contract and the contract is designed to support backwards compatibility and forwards compatibility


Scenarios



This paper(see link below) groups service versioning options into two categories:

  • Message Versioning—Focuses on versioning the schemas used to describe messages processed by the service.
  • Contract Versioning—Focuses on versioning the WSDL and contract information used to describe the service.


Message versioning


Message versioning implies XML Schema related versioning. There are several common techniques for XML versioning and extensibility techniques available:

  • Namespaces
  • Extension Elements
  • Custom version attributes

Namespaces and Extension Elements

There are several options for versioning or extending a schema using XML Namespaces:


  1. Use a new XML Namespace for major version releases
  2. Keep XML Namespace values constant and add an XML Schema version attribute
  3. Keep XML Namespace values constant and add a special element for grouping custom extensions

Design Principle #1:



Use targetNamespace to communicate major version releases



Rationale:


Major version releases are typically breaking changes.
Ease of implementation and support.


Judicious use of <xsd:any>

Adding <xsd:any> enable you to enter anything in that. Its good in that you could add any extra tag when required, but drawback of this is that it would not be validated with XML schema, so it could be used in short term quick changes scenario.

Design Principle #2:



Judicious use of unambiguous wildcards can help minimize service versioning.



Rationale:




Extensible schemas adapt to meet changing user or service needs.



Extensible schemas minimize versioning due to schema enhancements.
The W3C Web Services Description Working Group is developing a set of
Adjuncts for WSDL 2.0. The Adjuncts will provide a set of predefined
extensions to WSDL 2.0 and will appear in Part 2 of the specification.
WSDL 2.0's predefined extensions were designed for message exchange
patterns, operation styles, and bindings. The extensions define a SOAP
Header Block that could be used to extend schemas by adding the new
data structures within the WSDL........ more on this later on

Contract Versioning


Contract Versioning implies WSDL versioning.

  • Adding a new operation—Adding a new
    operation to a service does not break existing consumers since they
    will be unaware of the new operation's existence. Newer consumers can
    then take advantage of these new operations without breaking existing
    consumers.
  • Adding new data structures and data types—New
    data structures and data types can be added as long as the old ones are
    preserved. New, optional structures and data types added to the end of
    messages sent to services will not break existing consumers since they
    will be unaware of the new data structures. Services can also expand
    the range of possible data values or types they can accept without
    impacting existing consumers (assuming a doc-literal encoding style is
    utilized).
  • Adding a new interface for an existing operation—Once
    again, existing consumers will be unaware of the new interface and will
    be unaffected by it. Newer consumers will have a choice of interfaces
    to utilize.
  • Remember the First Tenet—The
    first tenet of Service Orientation tells us that boundaries are
    explicit. A boundary represents the border between a service's public
    interface and its internal, private implementation. Service internals
    can be modified, evolved, or totally rewritten as long as the contract
    for that service remains unchanged. When service implementation details
    leak into the service boundary this freedom is lost and the contract
    becomes much more fragile.
  • Type restriction in response messages—Response
    messages cannot, for the most part, be modified without breaking
    existing consumers. Services may restrict the range of possible types
    sent as a response without breaking the contract, depending on how a
    given consumer has been developed. Consumers will most likely still
    expect a given range of response values without realizing that the
    range of possible responses has just been reduced in scope.
  • Use <wsa:Action>—ASMX
    uses the soapAction header to perform message dispatching by default.
    This enables service operation names to change without impacting
    consumers because the soapAction remains constant. soapAction is only
    valid over HTTP because the WSDL specification restricts its usage to
    HTTP. Luckily, WS-Addressing's <wsa:Action> element can be used to communicate intent across any protocol (even HTTP).
  • Use a Service Broker—A
    service broker serves as a front-end to the targeted service,
    redirecting the request to the appropriate version of the service,
    based upon the content of the request itself. Service brokers are
    available as commercial products or can be specialized services
    designed to serve as façades for existing systems.

Design Principle #4:



When adding new data structures, make them optional and add them to the end of service request messages.



Rationale:




Existing consumers remain unaware of the new data structures.


Design Principle #5:



Changing service response messages (other than type
restrictions) are breaking changes and will require a new version of
the service.



Rationale:




Existing consumers cannot serialize unexpected data structures.

Conclusion

Six design principles were identified to summarize best practices
for service versioning. This is not a static list and will likely grow
as the Web services specifications continue to evolve:

  1. Use targetNamespace to communicate major version releases.
  2. Judicious use of unambiguous wildcards can minimize service versioning.
  3. Extensions must not use the targetNamespace value.
  4. When adding new data structures, make them optional and add them to the end of service request messages.
  5. Changing
    service response messages (other than type restrictions) are breaking
    changes that will require a new version of the service.
  6. Adopt a one-to-one relationship between interface versions and UDDI tModels.


http://msdn.microsoft.com/en-us/library/ms954726.aspx


Monday 16 February 2009

Facebook test

Hmm just to test if i can do some integrationg between my blog and facebook.

I am just using atom feed to start off. After playing with several applications on facebook, including one from typepad, the most stable one is blog/rss import on facebook wall. I am also experimenting with "Simplaris blogcast" this adds Box on profile displaying bog contents, its automatic refresh feature has been reported to be bit flaky in past.

So conclusion stick with blog/Rss import on facebook wall :)

if you got any suggestions let me know.

Oracle Aqualogic ESB Dynamic Routing Step By Step

I am trying out dynamic routing In oracle service bus based on message payload. Example if the message contain country code 'UK', the UK end point should be called. similarly if country code is US us endpoint (business service) should be called.

This was achieved using dynamic routing as described in Oracle message flow guide. In the guide two methods are specified for dynamic routing, one static xml and another one is storing routing table in database and fetching routing endpoint using XQuery.

Below is a screen shot of proxy routing.

  1. First routing destination is determined by inspecting the payload (using XPath).
  2. Using XQuery respective business service is determined from the DB
  3. Routing Data is deleted from payload as business service does not need this info
  4. Dynamic service call


Over All Flow




Step 1 and 2

  1. First routing destination is determined by inspecting the payload (using XPath).
  2. Using XQuery respective business service is determined from the DB


ER Diagram of the routing database

Step 3

  1. Routing Data is deleted from payload as business service does not need this info




Last Step





Wednesday 11 February 2009

Oracle ESb Dynamic routing error

Response Document
The invocation resulted in an error: .


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

<soapenv:Body>

<soapenv:Fault>

<faultcode>soapenv:Serverfaultcode>

<faultstring>BEA-380001: Internal Server Errorfaultstring>

<detail>

<con:fault xmlns:con="http://www.bea.com/wli/sb/context">

<con:errorCode>BEA-380001con:errorCode>

<con:reason>Internal Server Errorcon:reason>

<con:location>

<con:node>RealmBasedRoutingcon:node>

<con:path>response-pipelinecon:path>

con:location>

con:fault>

detail>

soapenv:Fault>

soapenv:Body>

soapenv:Envelope>


If i look under the Invocation tree, Under the Message context


Message Context Changes
added $outbound
changed $body

<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Fault>

<faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPActionfaultcode>

<faultstring>no SOAPAction header!faultstring>

soapenv:Fault>

soapenv:Body>






This error was resolved by adding Transport level SoapAction header when doing dynamic routing. SoapAction was set to empty string, this resolved the error as service then looks for operation details in soap body