HELP !!!!!! Design decision...!!!!!

Hello,
I am in a dilemma of making a design decision . We are developing a business tier component. This is going to talk to webservices on the backend. Right now it is going to integrate with 2 different backend systems through web services. In future it might support more of such backend systems.
And there are clients (web app, xml app) who interface with the component.
Most of the data elements passed over to backend systems is similar for both the systems, but some are different.
Now is it a good design to make 2 different client interfaces for 2 backend systems ? so that ,clients upfront decide which interface to use. This is more cleaner and easier implementation.
Or is it good to have a generic interface, and component then figures out which data to use and to which backend system to talk to.
Please help,
Thanks

There are several patterns that could apply, but the most widly used is probably the MVC (Model View Controller) pattern.
With the pattern the View layer is the front end (in your case this would be the web app / xml app).
The Controller would be your middle tier, this layer is responsible for relaying requests of the View layer to the Model layer.
The Model layer would be your backend webservices.
As said, the controler is responsible for relaying the requests from the view layer to the correct webservice. This means you need to have some way to know how to do this. You can employ several methods to do this.
You could have different methods for the different webservices, this is the most straight forward way.
Or you could look at the provided parameters and decide where you need to go based on that. This is slightly more difficult, but when you have two or more webservices that do almost the same thing, this might be the better way to go.
If you really wanted to make things fancy, you could employt the second method and have the checks be based on rules you configure through a dynamically loaded file, this way, you could (theoratically) build your middle tier in such a way that you can add new front ends / back ends without having to redo the middle tier. This might eventually be the cleanest / best way to go, but it is also the most difficult and takes a lot of planning beforehand.
Mark

Similar Messages

  • COPA vs. BCS design decisions (ex. profitability by customer in BCS)

    We are trying to meet a business goal of identifying gross profit by customer.
    We realize "customer" as a field in BCS is problematic, so we are thinking of only storing certain customers in BCS with a catch-all "Others" customer - with the goal of keeping the BCS data volume reasonable.
    Consider the scenario: US company sells material X qty 1 to Spain company for 100 with cost of 30 (therefore profit of 70)
    Spain sells same material X qty 1 to third-party customer for 120.
    Spain from a local perspective profits 20, however the group from an overall perspective profits 90 ( the US revenues of 100 eliminate against the Spain COGS of 100 so you are left with revenue of 120, COGS 30, profit 90 - from the group perspective ).
    We want to know how to see, on a customer level, the 90 profit from these transactions. 
    We do not believe COPA can do this, can this may be accomplished in BCS? 
    If you do a "one-sided" elimination (elimination driven by the revenue side only) of the intercompany revenue the system would not be able to reference customer on the elimination. We are wondering if this scenario of analyzing overall profit by customer can be accomplished by BCS functionality and are particularly interested in knowing what functionality you used to accomplish this requirement and in what sequence within the BCS close (BCS monitor).
    Thank you in advance for any input you may have.
    Also we are interested in any opinions/comments anyone may have about design decisions regarding BCS vs. COPA in BW.  BCS business content identifies a sample design for a BCS data model including item, company, movement type, trading partner, functional area, etc.  COPA (as configured in R3/ECC and extracted to BW) commonly features analysis by customer, material, etc.  Considering BCS features elimination functionality, what design concerns have people faced with respect to fields that they include in both reporting systems?  Obviously a prominent concern is sizing of the systems, but what common characteristics has anyone decided to feature in both systems? What considerations drove the decisions as to what common characteristics to feature in both BCS and COPA?

    Hi John,
    Reg, your last question - might be useful info in here, if you have not seen it yet:
    Re: Reports using COPA cube, BCS Cube

  • JPA Arhitectural Design Decision

    Hi,
    I'm building a 1 tier web shop, using mostly Ajax, Servlets and JPA and I need your advice on a design decision.
    When a user demands to see the products belonging to a particular category of products, my DAO object returns to the servlet a java.util.List<Product>, where Product is a JPA entity. In the servlet class I "manually" create the Ajax XML response, the user gets to see the products, everything is nice and great.
    I am not happy with the fact that the list of products remains detached in the servlet class, sort of say, and when another user demands to see the same products another list gets greated. These are objects that have method scope, but still they are on the stack, right? For 100 users who want to see 100 products each, the no. of objects created could cause the application to have a slower reponse time.
    So my question is about the design of the application.
    I obtain the list of products in the servlet class and construct the XML response. Right before sending the response, should I pass the list of products back to the DAO, and ask the EntityManager to merge the products? Will this reduce the no. of objects my application creates? Shouldn't I do this because I'm merging entities that have not been changed and the merge operation is time consuming?
    Should I not pass back the products to the DAO and set each product in the list to reference null and call System.gc() ?
    Keeping in mind, that my main concern is application response time, not reduced development time, are there any other suggestions you can make?

    first of all, a merge is only used to synchronize a changed entity that is not managed by an entity manager with the database. Why did you even come to the conclusion that you might need this?
    No you don't nullify the entities in the list. You let the entire list go when you are done with it. Manually nullifying can hinder the garbage collector, just don't do it unless you have a very good reason for doing so.
    Your main problem seems to be that you don't like the fact that you are fetching 100 objects for both users, putting duplicate objects in memory on the server. Are you sure this is a problem? You shouldn't be thinking about optimizations while you are still developing you know. I would wait until you are done, then profile the application to see where bottlenecks are; if fetching those 100 products turns out to take a lot of system resources, THEN optimize it.
    You may want to look into caching. If for example under water you use Hibernate as the persistence provider, search for "hibernate cache" using google.

  • Design decision / purpose / aim of audit trail

    Hi,
    since the audit trail doesn't contain so many data and BAM is great for real time monitoring my question is: What is the design decision, or the purpose / aim of the audit trail?
    What was the main target to implement a audit trail? Is it primarily for debugging? To see the flow the process instance has taken?
    Obviously the audit trail isn't the right way for real time monitoring, right? So maybe you can tell me, why there is an audit trail at all. What was the design decision behind it?
    Greetings
    Mike

    Hi Mike,
    While I am certainly not one of the people who designed it, I think I can answer your question.
    The audit trail is what the name implies - it keeps track of all the steps preformed by the process instance. It lets you view the instance history, variable content etc. and lets you see the current state of an in flight instance or to be more exact lets you see the last dehydration point. You can minimize the trail data, or even disable it.
    BAM however is real time monitoring of business or operational data or KPI. You send data to the BAM engine using sensors, and you only send the data you want to send when you want to send it. IF you don't need real real-time monitoring with all the fantastic visual features, alerts etc. of BAM, you can send the same data to a database or JMS server instead and built your own monitoring.
    hth,
    ~ronen

  • Questioning design decision in java.lang.Character

    Having a look at the source code for java.lang.Character, I have the Character class explicitly extends Object
    I am using jre1.6.0_07 on window XP
    Now the question is what is the reason for such a decision and we all know that any class implicitly extends Object class.
    public final class Character extends Object implements java.io.Serializable, Comparable<Character> {
    }Regards,
    Alan Mehio
    London, UK
    Edited by: alan_mehio on 24-Jul-2009 12:31

    I cannot answer with anything but personal intuition, and give non-conclusive details:
    first this is not a design decision, merely a style decision, since, as you mention, any class implicitly extends directly java.lang.Object if not explicitly extending anything else (and at the bytecode level, the source-level difference is undetectable).
    As far as style is concerned, I would have assumed that the whole JDK team is required to strictly follow consistent rules, but different classes suggest otherwise.
    Sun's public [Code Conventions for the JavaTM Programming Language|http://java.sun.com/docs/codeconv/html/CodeConventions.doc5.html#2991] do not have an explicit rule about this; section +6.4 Class and Interface Declarations+ provide an example with an extends Object clause, but the rule is not explicit in the text; and the previous section 5.2 does provide an example without this clause...
    I went on speculating that the developpers for the Character class had a special intent in mind, as they override Object methods equals() and hascode(), but other class in the same package do the same without the explicit extends Object clause (Void, System, Number). At that step I gave up trying to find a reason other than the developers' own style...

  • Landscape Design decision

    hi,
    I have an query regarding the design decision.
    There are 2 applications at the target (both serving different division) which would receive the master data from ECC via SAP PI.
    Target structure for PI is identical for both the applications.
    Now the question is should I have only 1 application to dump the data or should connect to both application using only 1 mapping and 2 different end points.
    regards,
    Anirudh.

    Hi Gaurav,
    Thanks for your reply but I am aware of this and it is not a PI technical question.
    My question is more from a design perspective.
    If you have 2 applications serving same business but different division and can accept similar structures, should we make separate end point connection with each or let one become HUB and it can share the data to with another server.
    This way you reduce the end point connection with PI and reduce the development effort. Drawback is that it will introduce a point of failure for another server which will take data from the HUB.
    regards,
    Anirudh.

  • "Help Design Products You Want" popup message never goes away

    I installed my Photosmart 5510 a month ago on my Dell desktop.  The printer works fine.  But the HP popup message "Help Design Products You Want" keeps popping up, around once an hour all day long.  I've tried every option (Decline, Remind Me Later, Participate) several times over.  I've completely reinstalled the 5510 software.  Still the message pops up.  I've registered as an HP user and can see my HP products including the 5510 on my account on HP.  Running Vista Ver 6, SP2 on my desktop. 
    How can I get rid of this annoying popup? 
    Thanks

    I have the same problem on two computers and would be very intereseted in removing this permanentley. 
    HBrian wrote:
    I installed my Photosmart 5510 a month ago on my Dell desktop.  The printer works fine.  But the HP popup message "Help Design Products You Want" keeps popping up, around once an hour all day long.  I've tried every option (Decline, Remind Me Later, Participate) several times over.  I've completely reinstalled the 5510 software.  Still the message pops up.  I've registered as an HP user and can see my HP products including the 5510 on my account on HP.  Running Vista Ver 6, SP2 on my desktop. 
    How can I get rid of this annoying popup? 
    Thanks

  • Archiving Design Decisions

    Hi Friends,
    I would like to know the data archiving frequency  & Design decisions for data archiving?
    Thanks in advance,
    Chandu.

    Hi Chandu,
    Frequency depends on nature and residence period of data. Application data like IDOC, Work Items and Application logs has short residence time those can be archive very frequently, whereas business data has long residence time period those can be probably archive annually or Quarterly.
    Archiving Decision depends on business’s legal and technical  retention policies.
    Regards,
    Rajnish Pathak

  • Can I help design the iphone ..? I've got a lot of design

    Can I help design the iphone ..? I've got a lot of design

    http://www.apple.com/jobs/us/

  • Need help with design decision: JavaEE or JavaSE

    Hello folks,
    We are developing an application that has the following requirements:
    - Client will be a desktop client developed in Swing
    - JPA will be used for ORM modelling on server-side
    - MySQL will be used as the DB
    - JMS will be used for client-server event communication (since we need a robust event communication mechanism)
    Given the above, we are not able to decide whether to stick to Java SE or to use Java EE.
    I understand that if we decide to stick to Java SE, JPA can be used but what about JMS?
    Is there a way to use JMS without an application server?
    If not, would it be appropriate to use an App Server just for the sake of JMS?
    (We don't want to go with a third-party framework like Spring just for using JMS.
    For us, the choice is between Java SE or Java EE.)
    What do you people suggest would be better?
    Your inputs will be of great help.
    Thanks much,
    Sandeep

    Here is one way to approach this:
    I would first write the use cases like:
    GeneralUser -> (maintain local data)
    AdminUser    -> (maintain local data)
    GeneralUser -> (export to central data)
    AdminUser    -> (export to central data)
    GeneralUser -> (view common data)
    AdminUser    -> (view common data)
    AdminUser    -> (manage users) << include >> (add user), (delete user)then I would apply the pattern (http://www.theserverside.com/patterns/thread.tss?thread_id=17595)
    and identify the following three apps and the components that they depend on:
    LocalDataApp    { AuthenticationMgr, LocalDataMgr }
    CentralDataApp { AuthenticationMgr, ExportMgr, CentralDataMgr }
    UserAdminApp  { UserMgr }where the AuthenticationMgr component invokes the UserAdminApp to get the user info for authorization,
    the ExportMgr invokes the LocalDataApp to get the local data so the CentralDataApp can use CentralDataMgr to persist it in the central store.
    LocalDataApp and CentralDataApp could have one web front end and UserAdminApp could have another web front end. The communication between AuthenticationMgr and UserAdminApp could be via JNDI.
    Hope that helps,
    Nalla

  • UI Layers design decision help needed

    I'm finisihing a very simple application framework - docking menus and icon bars and such. Last thing is the dropdown menus from the menu bar and I'm having real trouble. My dropdowns keep getting painted over by stuff that I want to stay underneath.
    So byte the bullet and decide to figure out the LayeredPane stuff. Just when I think I'm ready to go back to coding I see one more item in the 1.4 API: "1.5 will give you direct control of the Z-order so you won't need layered panes." Ugh. Hard not to read that as "we tried this, but decided it really wasn't such a good idea, after all."
    I'm trying to write a product that will be widely useful, so I don't want to write for 1.5 only. On the other hand, I'm not keen on mastering a technology that's already obsolete. So what to do?
    a) assume 1.5 will take over rapidly and go that way? (Not be liking this as long as Sun can't decide if it's 1.5 or 5.)
    b) master and use LayeredPanes? (Not be liking this, since if it's obsolete I can't count on bug fixes.)
    c) try and fake it using the undocumented LAFP (last added, first painted) principal? (Not be liking the use of undocumented stuff.)
    If you've used both Layered Panes and the 1.5 Z-order, I really want your advice! If you've got a long memory, I'd like to hear that LAFP really has been the case all along.

    camickr:
    Not mixing, getting outsmarted. I have a JPanel named "content" that holds the application. My menu is built on another JPanel. When I pop the menu, the Swing (or AWT) code says "Oh dear. We've damaged 'content' - better repaint it." And bingo, my popup's gone. (Problem is, I'm trying to use my own menu, not an AWT or Swing popup menu.)
    Am seriously thinking about ditching Sun's stuff altogether, putting my own content pane in, and doing all my own painting off that. I've done that before and it's possible, but that road too is full of gotchas.

  • Help needed with design decision

    I have this application i'm working on which is very modular. All most every action carried out from the system requires searching for a customer. Now i don't want to have to display the search customer on every page just to carry out a subsequent action. Is there any better ways of doing it?

    If the value of customer does not change, then store it in a session variable, this will remain available for later use.
    If the customer does change, put your search form in a separate jsp and use a file include, or a jsp include to call it into all pages that require a search bar, thus you only have to code it once.

  • SP 2013 Development - How can I Simulate Different Devices to Help Design and Test a New UI?

    Hello Community!
    I am working with SharePoint 2013 and I need to be able to design and test a new design across multiple device browsers.  Does anyone know how to simulate a device browser for design and testing?  BTW, I know about Device Channels, and they give
    me a way to dynamically change my UI for different device browsers, but because this UI is complex, I cannot be sure what dynamic changes need to occur until I can simulate the device browsers and view my new UI in them.
    Thanks!
    Tom
    Tom Molskow - Senior SharePoint Architect - Microsoft Community Contributor 2011 and 2012 Award -
    Linked-In - SharePoint Gypsy

    Hi Tom,
    Because your question is mainly how to simulate different devices, which is more related to SharePoint development, I am moving this thread to
    SharePoint 2013 - Development and Programming forum for better response.
    Best regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Need Help: Workflow Decision Task not visible in NWBC for customer Task

    Hello All,
    I am  new to NWBC configuration , need ur expert knowledge  for the below issue. I have checked the treat . Approve/Reject button for SRM Approval for RFx response ,but not able to get the exact steps for the configurations in NWBC.
    Requirement.
         We are working on SLM/SRM module, where we have requirement to create a custom workflow with custom Task for which we have executed below actions.
    Created the Custom Workflow.
    Created the custom Task with custom  ZCLASS and ZEVET.
    Created   Event linkages in SWE2.
    After doing this we are getting the workitem in the NWBC, currently we don’t have the Portal system in place, so we are using the NWBC for all our testing.
    What is the issue?
         When we select the workitem in the NWBC (UML) inbox  , the Decision Task ie “Approve” or “Reject” button are not visible , where as for SAP standard  Task  buttons are visible.
    What help we need?
      When we cross check the SCN/IBM portal, found that we need to do the XML file configurations. Can you any one kindly let us know the steps we need to follow to achieve our functionality.
    Thanks a lot in advance.
    Thanks and Regards
    Channa

    You need to share the details of what Inbox you are using, configuration steps depend on it. If you aren't using portal, you aren't using UWL and there is no UML inbox. You need to get your facts straight. Most likely you are using the Business Workflow Inbox (SWF_WORKPLACE) or the Lean Inbox (IBO_WDA_INBOX). Both are based on Web Dynpro ABAP and POWL but the configuration is different. Regardless, you posted this in the wrong space. Correct space is either SAP NetWeaver Business Client or Web Dynpro ABAP.

  • Action for click in table like in value help design since SP11

    Hi everybody,
    since SP11 with the new value helps (F4) design, you can click everywhere in the table of the search result table, to select and use one hit.
    Now I want to create a table with this behaviour and layout, too.
    Is it possible in a table, normal table or with a ALV, to set an action for a event "clicking in the table"?
    I know Is it possible in use of celleditors like button or link. But than you see the link or a button I dont want to have.
    So maybe someone know how it could be realized.
    Many thanks and
    best regards
    Christian

    Hi Neha,
    thanks for your answer. With setting the type, die text is underlined when the mouse is over the text.
    But in the value helps, the whole cell is activ to click in. So you don't have to click on the text, a click in the cell is enough.
    So the question is, if this functionality only programmed only for the DDIC value helps or can I set a table to this "layout".
    Best regards
    Christian

Maybe you are looking for