none
Selecting a Manufacturing Site Based on Few Criteria - Your inputs please RRS feed

  • Question

  • Thank you all for taking time to read my post. This is for a research paper.

    Here's a brief summary:

    The problem is about a large industrial printer with five or six different facilities scattered across the country coast to coast. They print stuff (newsletters, fliers, posters etc) that will be mailed to individuals located all over the country.

    Each facility as a certain capacity. Also, certain type of jobs can be done only in a certain facilities.

    For example, let's say we have the following locations (and capacities it can handle):

    1) NYC, NY (100,000) - Can print color newsletters and posters
    2) Chicago, IL (50,000) - Can print black and white newsletters only
    3) San Francisco, CA (75,000)  - Can print color newsletters and posters
    4) Miami, FL (50,000)  - Can print color and black and white newsletters only

     The capacities are the number of print copies it can handle at a time.

    The problem is to assign the jobs to the facilities (sites). The following are to be considered  :

    1) Site's Capability (can it print color? can it print poster? etc)
    2) Site's Workload /Volume - in %
    3) Site's Proximity to the ultimate recipient - to minimize the mailing expenses.


    How best to device an architecture for this? If I don't make enough sense, please feel free to comment and I'll try to clarify.
    Monday, July 16, 2007 10:23 PM

Answers

  •  

     

    Fresh!

     

    Think you'd implement this in business rules.  If your capacities, workload and proximity are likely to change often, then it might need to be implemented in a database, and loaded from there.  If they don't expect to be changing much at all, then you could use configs or Xml to specify them.  And if they're never going to change, or at least not in the forseeable future, then the rules could be expressed directly in code.

     

    Given the values for proximity, capacity and capability, you'd have to work out the order of which is most important.  You could then have weightings for each measure, and sum the three.  The location with the best score wins.

     

    I hope that helps you a little.  And I'm not sure how much that's really going to affect any architecture, it's probably more appropriate at a coding level.

     

    Cheers,

     

    Martin.

    Wednesday, July 18, 2007 6:14 AM
  • Hi;

    Regarding the logic to determine which location should process the request, I suggest that you use the strategy pattern.

     

    I assume that the client logs on to it to submit his material and purchase request from online web application.

     

    One option, is to make this website accessible for all other locations. After the user submits his request online, a module determines the best location to handle this request, then a user from that location check online requests and process them. I know it sounds too simpleSmile . I'm sure you will have some good security module to implement. This approach is simple, all you need is to create your website and host it.

     

    The other option is to create a website on which customers apply their requests. The module that determines the location will be called then it will call a webservice in that location to submit the request details. A user in that location works on this data to deliver that request. During the processing of this request, this application can call the website through a webservice to update the request status.

     

    I do not like the second option much because it involves complex connectivity requirements and is harder to maintain. Go for it only if each location will have its own application.

    Wednesday, July 18, 2007 8:35 AM
  • I agree with Martin about the decision requirements (database or config files for the location settings).

    I would create one website where people submit their orders, and have a workflow (WF or Biztalk) to apply the rules (Biztalk rules engine sounds very handy here).

    You have 3 factors you need to consider :

    1. Site capability - this could be stored normally on the database, which I think would be best to add more sites.

    2. Sites Workload/Volume- this looks like you need MOM to do the measurements and reporting or have a custom web agent.

    3. Site's proximity to recepient- this looks like a database thing as well.

     

    All the above can be custom activities in a workflow and they can determine where to forward the request.

     

    I hope this was helpful.

    Please provide me with your feedback.

     

     

     

    Wednesday, July 18, 2007 5:20 PM
  • You might want to consider a Space-Based Architecture if you're shooting for the "high-end". I have some posts on the topic here: Space-Based Architecture [http://udidahan.weblogs.us/category/space-based-architecture/].

     

    Also, realize that while each facility has a known maximum capacity, its actual capacity at any given moment is dynamic - plotter went down, ink ordered didn't arrive, etc. Keeping all of this information up to date across all facilities probably isn't what you're looking for in your work-dispatch algorithm. Instead, consider a "pull" model where each facility pulls the amount and type of work that it is capable of at that time.

     

    This could be implemented on top of a "space", some kind of in-memory data grid that enables the master-work pattern. Each facility (worker) attempts to take work from the space using a template (color:=black_and_white && type:=newsletter && mailto [closer than] DISTANCE) up to the amount it is currently capable of doing. This loosely-coupled design enables adding new facilities without changing anything else.

     

    In terms of handling the work items that fall between the cracks due to load and distance constraints, have those same facilities take them at another, much slower interval - hopefully having the closer facility pick them up.

     

    Does that comply with your requirements?

    Sunday, July 22, 2007 3:37 AM

All replies

  •  

     

    Fresh!

     

    Think you'd implement this in business rules.  If your capacities, workload and proximity are likely to change often, then it might need to be implemented in a database, and loaded from there.  If they don't expect to be changing much at all, then you could use configs or Xml to specify them.  And if they're never going to change, or at least not in the forseeable future, then the rules could be expressed directly in code.

     

    Given the values for proximity, capacity and capability, you'd have to work out the order of which is most important.  You could then have weightings for each measure, and sum the three.  The location with the best score wins.

     

    I hope that helps you a little.  And I'm not sure how much that's really going to affect any architecture, it's probably more appropriate at a coding level.

     

    Cheers,

     

    Martin.

    Wednesday, July 18, 2007 6:14 AM
  • Hi;

    Regarding the logic to determine which location should process the request, I suggest that you use the strategy pattern.

     

    I assume that the client logs on to it to submit his material and purchase request from online web application.

     

    One option, is to make this website accessible for all other locations. After the user submits his request online, a module determines the best location to handle this request, then a user from that location check online requests and process them. I know it sounds too simpleSmile . I'm sure you will have some good security module to implement. This approach is simple, all you need is to create your website and host it.

     

    The other option is to create a website on which customers apply their requests. The module that determines the location will be called then it will call a webservice in that location to submit the request details. A user in that location works on this data to deliver that request. During the processing of this request, this application can call the website through a webservice to update the request status.

     

    I do not like the second option much because it involves complex connectivity requirements and is harder to maintain. Go for it only if each location will have its own application.

    Wednesday, July 18, 2007 8:35 AM
  • I agree with Martin about the decision requirements (database or config files for the location settings).

    I would create one website where people submit their orders, and have a workflow (WF or Biztalk) to apply the rules (Biztalk rules engine sounds very handy here).

    You have 3 factors you need to consider :

    1. Site capability - this could be stored normally on the database, which I think would be best to add more sites.

    2. Sites Workload/Volume- this looks like you need MOM to do the measurements and reporting or have a custom web agent.

    3. Site's proximity to recepient- this looks like a database thing as well.

     

    All the above can be custom activities in a workflow and they can determine where to forward the request.

     

    I hope this was helpful.

    Please provide me with your feedback.

     

     

     

    Wednesday, July 18, 2007 5:20 PM
  • You might want to consider a Space-Based Architecture if you're shooting for the "high-end". I have some posts on the topic here: Space-Based Architecture [http://udidahan.weblogs.us/category/space-based-architecture/].

     

    Also, realize that while each facility has a known maximum capacity, its actual capacity at any given moment is dynamic - plotter went down, ink ordered didn't arrive, etc. Keeping all of this information up to date across all facilities probably isn't what you're looking for in your work-dispatch algorithm. Instead, consider a "pull" model where each facility pulls the amount and type of work that it is capable of at that time.

     

    This could be implemented on top of a "space", some kind of in-memory data grid that enables the master-work pattern. Each facility (worker) attempts to take work from the space using a template (color:=black_and_white && type:=newsletter && mailto [closer than] DISTANCE) up to the amount it is currently capable of doing. This loosely-coupled design enables adding new facilities without changing anything else.

     

    In terms of handling the work items that fall between the cracks due to load and distance constraints, have those same facilities take them at another, much slower interval - hopefully having the closer facility pick them up.

     

    Does that comply with your requirements?

    Sunday, July 22, 2007 3:37 AM
  • Thank you every single one of you for your answers. I've learned a good deal from all the answers so far.

    I just learned that the Site's proximity to the ultimate recipient will be determined by the number of days it will take for a mail to be delivered...which in turn will be determined by the Service Standards CD that USPS issues every quarter.
     
    Please feel free to add to this thread. I'm going to concoct something from all the answers. Thank you again.
    Monday, July 23, 2007 7:07 PM