WCS Architecture – The Introductory Overview
WebSphere Commerce framework uses MVC design pattern. It provides an environment that hosts business logic and handles persistence. It performs the tasks as transaction and session management. Let’s checkout WCS framework architecture.
WCS is multichannel-enabled which means it can support transactions across various sales channels. The servlet engine is a part of the WebSphere Application Server runtime environment. It acts as a request dispatcher for inbound URL requests.
The servlet engine manages a pool of threads to handle requests and it is only used for Web applications. Each inbound request get executed on a separate thread.
WebSphere Commerce handles call from various devices like:
a) Typical internet browsers.
b) Mobile phones by using Internet browsers.
c) Procurement systems that send requests by using XML over HTTP.
WebSphere Commerce Framework Architecture flowchart
WCS Architecture – The Implementation Overview
1) A user request moves in the form of thread irrespective of it comes from any channel.
2) The Servlet engine passes that URL request to servlet filter. The filter passes the request to the Adapter Framework.
3) The Adapter Manager determines which adapter is capable of handling the request. Then it returns that specific adapter to associate with the request. Below are the following adapters used by the WebSphere Commerce runtime environment.
a) HTTP browser adapter (Web request):
This adapter provides support for the request that comes from HTTP browsers.
b) HTTP PvC adapter (Mobile-App request):
This adapter provides support for the request that comes from Mobile App. You need to extend this adapter for Mobile-App design.
c) HTTP Program adapter (Procurement systems request):
This adapter provides support for the request that comes from External systems. It recognizes their XML requests.
4) The adapter passes the request to the Dynacache Servlet Container.
At this point, either of the following actions can occur:
a) If the request is already in cache, then the response can be return back from here itself.
b) If the request is not in cache, then the Struts action invokes the Business Logic Facade. Struts Action specifies the Interface Name of the business logic.
5) The Business Logic Facade query the command registry (CMDREG table). It determine appropriate implementation class for respective storeId. When no record present in CMDREG table, then it looks for that specific Interface file. Here it will take the value of defaultCommandClassName, which holds the command name.
6) The Business Logic Facade tries to invoke the appropriate controller command.
7) Here comes the call of Access Control Framework. It prevents users for running particular business logic or controller command. This provides fine grained control on business logic. It has flexibility to restrict access on what data the user can view or update.
At this point, either of the following actions can occur:
a) If Controller Command is having access, then it start its execution.
b) If Controller Command is not having access, then it throws an exception.
Exception: The user does not have the authority to run this command “MyCustomCmd“.
c) We need to run Access Policy for this command to get rid of this exception.
8) The Controller Command starts its execution, along with its Task Command if any. It access the DB using an access bean and its corresponding entity bean.
9) The Business Logic Facade returns a set of properties to the Struts action. The action looks up the global forward view (i.e .jsp file) in Struts-config file based on viewName and storeId. The action forward implementation is appropriate for the device of the request.
10) The Struts RequestProcessor calls for action forward flow. Then the call will goes for the execution of the appropriate JSP page.
11) The Access Control Framework prevents users for running particular JSP.
At this point, either of the following actions can occur:
a) If JSP is having access, then it start its execution.
b) If JSP is not having access, then it throws an exception.
Exception: The user does not have the authority to run this command “MyCustomView“.
c) We need to run Access Policy for this view to get rid of this exception.
12) The JSP starts its execution. Within the page, JSP uses data bean to retrieve the dynamic information from DB. The data bean manager activates the data bean.
13) The Data Bean now looks for Access Bean and its corresponding entity bean to get data from DB.
14) Based on globalization information (i.e locale) in the request, the data bean formats the data.
15) Final result is now shown over there on the respective device.
Jithu
Great… Really usefull.. Iam new to WCS
Inez
Hurrah, that’s what I was exploring for, what a material! existing here at this website. Thanks admin of this site.
Fred
These are really impressive ideas in about blogging. You have touched some good points here. Any way keep up writing.
Rey Rudolfo Margarida
Hi friends, fastidious article and fastidious arguments commented here, I am actually enjoying by these.
Olive Rafi Timmons
Nice read, I just passed this onto a colleague who was doing a little research on that. And he just bought me lunch since I found it for him smile So let me rephrase that: Thank you for lunch!
Kristy Homer Wadlinger
It is not my first time to go to see this web site, I am browsing this web page daily and get pleasant facts from here daily.
Mignon Fowler Judie
After checking out a number of the blog posts on your web site, I truly appreciate your technique of blogging. I book marked it to my bookmark website list and will be checking back in the near future.
Lacy Nobie Elisa
Awesome write-up. I am a regular visitor of your site and appreciate you taking the time to maintain the excellent site. I will be a regular visitor for a long time.
Nickie Gregorius Jennifer
Excellent post. I will be going through many of these issues as well.
Veronique Brock Calli
This is very useful. Thanks for taking your time to write this.
Madel Brantley Simmons
After study a few of the blog posts on your site now, as well as I absolutely like your means of blogging. I bookmarked it to my book marking site listing as well as will be examining back soon.
Celinka Blane Gerge
Definitely, what a fantastic site and enlightening posts, I surely will bookmark your website. Have an awesome day!
Alethea Westley Veedis
I’m grateful for the blog article. Much thanks again.
Annice Rriocard Cecil
I’m obliged for the article post. Really looking forward to read more. Really Great.
Madhur Rampal
Its very good to read.