Enterprise Integration using Web Services: A Vendor Managed Inventory (VMI) Implementation

Report | Presentation

In this project I have considered one supplier and one retailer. Both of them act like two different enterprises. Both supplier and retailer have their own information systems within their organization and these information systems are hosted on two different software platforms. In this case we have assumed that retailer has .Net platform on the other hand supplier has Java EE platform. Our main objective is to provide a method by which they can share the information across the platforms. The project mainly focuses on interoperability of tow existing architecture i.e. .Net and Java EE. Here we are not only implementing a cross platform technology, we are also making possible a communication between two widely used programming frameworks. The following figure shows the Web Services architecture adopted for the VMI implementation.

In present scenario the frameworks for writing web services are Java EE and .Net. WSDL is used for service description. For communication protocol SOAP is used. There are other protocols also but they do not provide the flexibility in data transfer as SOAP does. For transport we are using HTTP protocol, which helps communication through browser.

Retailer Side Development:
As shown in the sequence diagram under the section 3.1 that the retailer needs to send the data three times in a VMI system. And also retailer needs to get the data two times from supplier. For web services implementation we need three web services and two clients on retailer side. Three web services will be sending the data about “stock level”, “acknowledgement on consignment stock” and “confirmation about invoice”. The two clients will receive the data about “information on consignment stock” and “invoice information” from supplier.

Supplier Side Development:
From sequence diagram we can see that a supplier needs to receive the data from retailer three times and send the data to retailer two times in a VMI system. Therefore two web services and three clients are required for communication. The two web services send the data about “Information on consignment stock” and “invoice information” and the three clients receive the data about “stock level”, “acknowledgement on consignment stock” and “confirmation about invoice”.

Information flow over the network

This web services implementation of VMI was done successfully on two different platforms. Both of the supplier and retailer were able to share the information without any complexity. The client interfaces of both the sides are shown below:

Retailer side client to consume supplier’s web services

Supplier side client window for consuming retailer’s web services

Application of HCI Techniques for Developing a Web-based User Interface using AJAX


The main technologies which were adopted for this project were HCI and AJAX.
HCI stands for Human Computer Interaction; it is also referred as Computer Human Interaction (CHI); vaguely it is called Software Ergonomics. HCI mainly focuses on user-centered design and user-centered design is achieved when “people need not have to change the way that they use a system in order to fit in with it. Instead, the system should be designed to match their requirements.” HCI follows these principles:

1. Simple and natural dialogue
2. Speak the users’ language
3. Minimize user’s memory load
4. Be consistent
5. Provide feedback
6. Provide clearly marked exits
7. Provide shortcuts
8. Minimize the user’s slips and errors.
9. Provide help

AJAX stands for Asynchronous Javascript And XML. AJAX is a web method for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the data-source (server), so that the entire web page does not have to be reloaded each time the user makes a change. This is meant to increase the web page’s interactivity, speed, and usability; which are the main factors in order to make a design user-centered. AJAX is not a technology but a technique refers to a group of technologies. The main component of AJAX is “XMLHttpRequest” object in JavaScript language, used for exchanging data asynchronously as well as synchronously. AJAX also helps in real time updating of data that is any changes made at server-side will reflect in no time at client-side.

Other Technologies
Other technologies which were used for this project were XHTML, XML, JavaScript and CSS.

Development of the User-Interface
The development of the user interface can be divided into three main parts:
1. Dashboard design
2. Sidebar and Main display panel design
3. Header design

The main page of the user-interface is shown in the figure. This is the first page after user login. This user-interface is designed in such a way that a user does not need to click three times in order to navigate at any level. Dashboard is loaded synchronously when the whole page loads. The sidebar and header area is made static since a user requires it all the time while dashboard area is acts like a container to other pages and data. New data is loaded in dashboard area asynchronously.
Any window can be maximized by double clicking on the window or by clicking the link provided in the dashboard module named as Dashboard. The maximized window loads on top of the interface to save the time of the user by avoiding unnecessary loading. The maximized window shows the content of the smaller window in detail.

The following figure shows the area where the new content will load after clicking the “Schedule New Scan”. In the next figure we can see that the content is loaded which was requested by clicking “Schedule New Scan” button.

This whole process of loading takes very less time and user remains intact with interface. And also user finds it very easy to work with the application when he can get all the information required very fast and at one place with minimum number of modifications in the user interface. This also reduces the idleness of the user enhancing the continuity of the interaction between user and the interface. And also this is the maximum level of navigation required in this application but still if some data is required, it loads on the top of the interface as shown in the next figure. When clicked on the “[Click here to select]” link a small window loads avoiding any modification in the present interface.

Besides of designing a user-centered interface there are some other important parameters which are also taken care of:

  • The web application is cross-browser. It can run in any browser without any change in the basic structure of the application. It helps user in running the application on different platforms.
  • This application can run on any screen-resolution. The problem of resizing during the change of screen resolution is also taken care of. The application does not show any inconsistency at various resolutions.

A Semantic Web based Framework for Knowledge Management System


Following Figure shows the proposed framework for knowledge management system on the semantic web, which reflects the variety of knowledge transformations in this distributed environment: knowledge can be collected from various sources in different formats, and then stored in the common representation formalism, processed in order to compute interdependencies between knowledge (Example: relationship between bird and Kiwi) items or to resolve conflicts (Example: Kiwi is a bird. Birds can fly. Kiwi can not fly.), shared/searched and finally used for problem solving. Therefore this approach has following processes:

  • Knowledge Capturing
  • Knowledge Representation
  • Knowledge Processing
  • Knowledge Sharing
  • Using of Knowledge

Knowledge Capturing: We identify four types of knowledge sources, which could be treated in knowledge capturing phase: (a) expert knowledge, (b) legacy (rule-base) systems, (c) metadata repositories and (d) documents. For knowledge capturing DSpace can be used. DSpace is an open source and combined project of HP Labs and MIT. DSpace has the ability of indexing and crawling the captured metadata. Because of high flexibility DSpace can be modified further to capture the expert knowledge (editor) as well as to convert the legacy system. Further this information will be converted to RDF Rules using a converter.
Knowledge Repository: Knowledge repository is a relational database organized in a way that enables efficient storing and access to RDF metadata. This repository can be seen as a RDF repository.
Knowledge Processing: Knowledge processing component enables efficient manipulation with the stored knowledge, especially graph-based processing for the knowledge represented in the form of rules, e.g. deriving dependency graph or consistency checking
Knowledge Sharing: Knowledge sharing is realized by searching for rules that satisfy the query conditions. In the RDF repository rules are represented as reified RDF statements and while in RDF any statement is considered to be an assertion, we can view an RDF repository as a set of ground assertions in the form (subject, predicate, and object). Rules are also related to domain ontology, which contains domain axioms used for deriving new assertions. Therefore the searching is realized as an inferencing process.
Using of Knowledge: The main advantage of this approach is using a conditional statement for the semantic annotation of knowledge sources. In that way we put statements used in the annotation into the context of each other, which consequently leads to efficient searching for knowledge. Moreover, annotating knowledge resources using Precondition-Action statements enables semantic hyper linking of each two resources, which satisfies the condition that the Precondition part of one annotation subsumes the Action part of the annotation of another resource. In that way querying for a problem can result in a composition of documents, which cover problem solving. This is a very important process in knowledge management or e-learning search.

Orchestration and Choreography in Web Services

Choreography and orchestration are used for combining web services and sequential execution of the web services. In orchestration, which is usually used in private business processes, a central process takes control of the involved Web services and coordinates the execution of different operations on the web services involved in the operation. Choreography does not rely on a central coordinator. Rather, each Web service involved in the choreography knows exactly when to execute its operations and with whom to interact.

Orchestration Model



Orchestration in case of multiple suppliers and one vendor (with a Coordinator in the center) is shown above. Vendor sends a message to the coordinator for getting the data from its retailers then coordinator invokes all the retailers associated with the vendor. Coordinator collects the data from all retailers and sends a reply to the vendor. Coordinator is a composite web service. This model is also called centralized model for composite web services.


Choreography Model



Choreography model used here for VMI (Vendor Managed Inventory) is for multiple retailers and multiple vendors. In this case each web service interacts with other web services directly. This model is called the decentralized or distributed composite web services model.


The Great Wall of India

Almost a decade earlier I had a habit of collecting newspaper cutting related to my areas of interests. This no-profit business ended in 2001 with two files containing more than 4000 paper cuttings, covering various fields like science, geography, history, sports etc. But all of them were from Hindi newspapers so half of them were unreliable. Hindi newspapers are one of the worst sources of information; they are good for only local news.

Once my eyes caught a small article bearing a heading “Bharat ki Mahaan Deewar” (The Great Wall of India). Though the article contained only two small paragraphs, the information it contained was astonishing. It said there used to be a wall running no more than 2,300 miles, from Himalayas to Orissa. It was not made of concrete or bricks but of bushes and plants, and it was built by Alan Octavian Hume (founder of Indian National Congress). The article said nothing about the objective of the wall but there was information about the year when it was built, it said around 1870s. But when you search over internet about any such information you get nothing. Even biographies of A. O. Hume don’t say anything about 3,700 kilometers long wall. And when you search ‘The Great Wall of India’ on internet, the results will display content related to famous cricketer Rahul Dravid.

Historians always ignored it and therefore very few people knew about it, the people who saw it. In 2001 a tea planter Roy Moxham published a book on this subject and named it “The Great Hedge of India”, in which he explained the objective of the hedge was to prevent salt smuggling, 12000 people guarded this hedge. There were heavy Salt taxes imposed by British rule and therefore there were salt smugglers. There was hardly any relationship with A. O. Hume with the hedge. The hedge was built by East India Company, and was fourteen feet high and twelve feet thick.

For more than a century a significant part of history of this country remained unconscious. And now when we know about it, we know very little. The hedge vanished and there are hardly any remains left today. Roy Moxhan found some remains in Etawah district of Uttar Pradesh but no one can be sure about the remains of a hedge which existed almost 140 years before. The history is lost!

Pinyana in Wonderland

When I was in seventh standard I had a tuition friend; Ajit. Once I had to visit his home for my maths tuition. We were busy with our tuition when a very familiar but irritating sound distracted our ears. It was a motorbike with two persons sitting on it, Ajit almost shouted, “My father with my new motorbike.” I asked him, “Which one is your father?” He replied, “The person who is on the second seat.” Again I inquired, “And the first one, who is he?” He shocked me, “He is the driver.”
I had my railway reservation from Howrah to Shahjahanpur. There was an old couple on the front seat. It was night and I was on my berth, asleep. Next day the old man asked my name and my destination, I told him, he said that he was going to Haridwar for Shiv-Darshan. By noon the coach was thoroughly perused by a dozen of beggars, different kind of them; blind, crippled, women, kids, and poor; but the old couple never cared. When the train was crossing a river near Varanasi this old woman took some coins from her purse and threw them in the water.
Monoj Prabhakar is my father’s cousin that is my uncle in relationship. His parents sent him to Gwalior University for his bachelor’s degree. He stayed there for two years and returned home unsuccessful. Next time he was sent to Allahabad. He studied there and fell in love with his landlord’s daughter. He completed his bachelor’s degree in arts and married to his love. Nobody had any objection since the bridegroom had a bachelor’s degree and in their world bachelor’s degree was the certificate to a good job. Almost two years later when he was sitting in his room unemployed he got a letter from an employee of NTPC Dibiyapur that he can work under him with a payment of 6000 per month, which was quiet considerable. After two months only he learned that the job required hard work and regularity. He resigned and gave a set of reasons to his kin. After another three years of unemployment he got his dream job. Today he is getting 2500 per month which is adjustable with his cell phone and motorbike expenses. His wife and two kids are living on his father’s earnings.
When I was in sixth standard I had a very good friend Snajay Gupta (Sanju). One day he told me that he was going to discontinue his study. I urged him not to do that because he was the only friend I had. But he told me that he had no other option. He explained me, “My father is sick, he can not work anymore and I have three younger brothers and sisters, therefore I will have to discontinue and work for my family.”
My precious summer vacations were over and I was on my way to Lucknow from Shahjahanpur. I always use general coach for this three hours journey. Somehow I got a place to sit after perusing two and half coaches. In the front seat there were four guys and on my seat there was a guy right to me and an old lady left to me. Three front guys and the guy who was right to me were traveling together. They were traveling from Bareilly to Lucknow. One of then was a law practitioner in Lucknow. All of them were in their early thirties. When train started moving from Shahjahanpur they began talking about the city. One of them said, “Shahjahanpur is such a dirty place!” Other guy added, “Yeah, It is due to the Muslim population of the city.” Train stopped at a station named Balamau, one of these said, “I am hungry.” The guy who was sitting right to me said, “I’ll get some samosas.” He brought some 4-5 samosas and all of them began eating. After some ten minutes later when all of them were finished with samosas, the place which was almost clean ten minutes earlier was now a mess.
Balkrishan, my father’s colleague, one day received a phone call and left immediately to his hometown. Next day he was at his parental house where his younger brother’s dead body was kept preserved. Almost two days before his brother ended his life by taking poison. Balkrishan came to know about the matter through his elder sister, he peeped outside the window where a shopkeeper was leaned over a local newspaper which had two photographs of different persons and the headline said “An unmarried couple took its life over an unsuccessful love affair” one photo belonged to his brother and another photo was of a girl who lived nearby.

How are you going to interpret each event, It is up to you.