Web Development



E-Commerce integration with existing systems

By Paul Masterson ·
I have been given the project for online shopping implementation. Our web site is hosted externally using for now a MySql database and Php. Our internal systems are a mixture of iSeries\AS400 and pSeries\Oracle. For the first phase of the project it is planned to implemnent online shopping with furniture which is housed on AS400. What I need to know is and been not familar with AS400, what is the best method to transfer realtime information to the web site. Information would be price and stock availability.
Any help appreciated.

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Answers

Collapse -

Depends on how real time you want it

by Tony Hopkinson In reply to E-Commerce integration wi ...

and where and how you can detect a change to the required information.

If you want it change by change and all the data is available in tables in your oracle DB then one way would be to get the Oracle DBA to set up a table and punch a pseudo transaction in there (within a trigger say)

Like Part X price changed from Oldvalue To Newvalue at time X.

Don't forget new parts, parts being deleted, you might also want to make the design extensible so you can do 'on order' and expected by etc.

Then you write an other process to suck data out of this table, process it into Mysql, and on success either mark it as done for oracle to delete, or delete it yourself.

Obviously you'll need to harden this up, for comms failures, missing changes on either side etc.

The advantage is the abstraction and the minimal dependency. Change from Oracle to DB2, or MySQL to postgreSQL should have very little impact on the comms process between the two systems. Equally a pseudo transaction will mean you can describe each communication with meta information. If you get the recipient to log and bin ones it doesn't understand you can develop the two systems separately(given an agreed spec !)
For instance you could pass the content of the message as an xml snippet.

A little extra work and you've got a web service!

If you can get away with say once an hour, or over night then you could do it on a report/export basis.

Oracle produces all changes since X and saves it some how, you pick it up and process it.

The other option is not to keep that data in the web system at all, but to pull it from the IBM when you need it. Speed and robustness will need to be good for that though or your web application will die a horrible death. I'd be real wary before I put something like that into place.

How much buy in have you got from the IBM side, have you a budget/commitment for them to help you meet the need?
If there's no timestamped transactional data, you are going to have to do a compare and find differences, that's generally inefficient and flaky.

Also do you have (or may want to) to send data back (orders , allocations) etc.

It's not rocket science, but to get the best system you need your guys and the IBM/Oracle chaps to sit down and design something that will last, both in terms of robustness and future business changes.


Collapse -


by Paul Masterson In reply to Depends on how real time ...


The project is coming from the C.O.O and IBM are keen to do the business, budget wil not be a problem as the organisation has a 4bn turnover and our keen to get into the ecommerce market. From a technolgy perspective, I will be aiming for interfacing with the AS400 for the first phase, we also do pass credit card transactions in house, about 70m tx a year. I am hoping to use this process to link into the web site. I want to keep it simple but secure initially to prove the concept. My main concern is making the interface for live updates secure.


Collapse -

Security between the machine containing

by Tony Hopkinson In reply to IBM

the product data and the web server is a different animal to that between the clients and the web server. Personally I would leave the credit card link alone.

Use the same tech by all means
but you don't want to expose that through some poor developer making a teensy weensy error in their code.

I commend you most strongly to consider security and function (msg content) separately.

As a for instance two tables on your oracle box and two on the mysql one called TableIn and TableOut. Two processes with a secure link between them suck data off TableOUT and send it, listen for traffic and spit it into TableIN.

What goes into TableOut on either side and what is pulled from TableIn are other processes.

The tables become managed persistent buffers, they aren't exposed and functionality at either side of the comms is completely independent.

Your webserver may become out of date if the link goes down, but catchup mechanisms can be developed, your AS/4000 box isn't going to choke and die because you turned the web server off You can monitor traffic, intercept it, inject it.

If you didn't have the databases in place then I might suggest a different design, but with them I've never seen anything to beat this idea in terms of simplicity, scalability and robustness between different platforms.

I wouldn't recommend tunnelling through your webserver into the AS 400 box at all. You go to lowest common denominator on your security, your system is more fragile and the process is far more monolithic.

Once you've agreed the spec, you can develop sourcing, sinking and the comms mechanism in parallel. The split in functionality simplifies the job massively. Source and sink agree content specs but don't care how they are transported, the comms process doesn't give a crap about content. You are laughing all the way to the credit bureau.

POC is making sure you can source the data you need at the rate you require it, consume that data so it's current enough to use and that you can establish some secure comms mechanism between two(or more) separate boxes, the latter is the easy bit.

It's my favourite design for this sort of thing and it's more than worked for me in the past.

Related Discussions

Related Forums