Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Abhishek 11 posts 52 karma points
    Nov 12, 2015 @ 12:10
    Abhishek
    0

    Umbraco 3 Layer Architecture

    Hi All,

    I have started using Umbraco 7 and observed that same above issue, where I now I need to split my project into a three layered. For security, our web servers only have access to the application servers, which in turn can access the DB servers.

    1. UI Project - Umbraco
    2. App Service Project - WCF Project
    3. Database layer

    Please let me know is this possible?

  • Alex Skrypnyk 6175 posts 24176 karma points MVP 8x admin c-trib
    Nov 12, 2015 @ 13:23
    Alex Skrypnyk
    0

    Hi Abhishek,

    Yes. Why not? You can create such architecture.

    What will Service project do ?

    Thanks,

    Alex

  • Abhishek 11 posts 52 karma points
    Nov 13, 2015 @ 06:44
    Abhishek
    0

    Hi Alex,

    Thanks for the quick response!!!! Due to security reasons our web servers only have access to the application servers, which in turn can access the DB servers. I have observed after consuming Umbraco Nuget, UI project is now directly communicating to DB. I need a layer between Umbraco UI and Database, A Application service which will be deployed to different server and will communicate to DB Server for all operations.

    Below is our architecture:

    UI-AppService - Internet AppService-DB - Intranet

    We do not have and cannot have direct communication between UI - DB Server.

    Thanks in Advance...

  • Abhishek 11 posts 52 karma points
    Nov 18, 2015 @ 07:33
    Abhishek
    0

    Hi Alex,

    Just checking, did you get a chance to look at above query?

    Thanks In Advance !!!

    Regards. Abhishek

  • Alex Skrypnyk 6175 posts 24176 karma points MVP 8x admin c-trib
    Nov 18, 2015 @ 09:30
    Alex Skrypnyk
    100

    Hi Abhishek,

    I'm thinking how to solve your problem. It's unusual task. Maybe you can use SQL Compact for Umbraco ? You don't need to connect to umbraco database in this case. Database will store on the 'App_Data' folder.

    Thanks, Alex

  • Abhishek 11 posts 52 karma points
    Nov 22, 2015 @ 07:40
    Abhishek
    0

    Thanks Alex.. I'll try to integrate the same only use case I can think of which can fail if with Load Balancing..

  • Nicholas Westby 2054 posts 7103 karma points c-trib
    Nov 22, 2015 @ 19:22
    Nicholas Westby
    0

    I would not recommend using SQL Server CE. For one, because it is horrible in terms of scalability. Secondly, because you are then just putting the database on the same machine, which I suspect is not allowed anyway. And if it were, why not put an actual database (e.g., the free SQL Server Express) on the machine?

    I think some clarification is required before your question can be answered properly. When you say "UI", do you mean:

    • Website. That is, the thing that most users see when they visit your domain.
    • Back Office. That is, the thing that your content editors see when they log in to Umbraco.
    • Both. Both user interfaces (i.e., the website and the back office).

    If you mean website, then you may be in luck. I suspect your three-tiered architecture comes from a desire for security. If so, then you can do the following:

    • Create two web servers. One will be for the website, and the other will be for the back office. The website should work fine without a connection to the database (assuming you can copy the XML cache file from the back office server to the website server).
    • The website server will simply get information from the XML cache (using the Umbraco API that was built for this purpose).
    • The back office server will allow people in your company to edit the website. That server can reside entirely within the company's firewall, and so should not be subject to quite so stringent security requirements.
    • Periodically copy media from the back office server to the web server. Alternatively, you can implement your own media repository in Umbraco so that you pass through the application level to gain access to the media.

    Here are some risks you may want to evaluate:

    • Can Examine indexes be built without a database connection? You will probably need whichever index is used to index media.
    • Will the website function without a database connection? I'm pretty sure I have seen it working fine, but you'll want to double check.
    • Is there ancillary functionality that may require a database connection (e.g., member login)?

    Finally, you may want to consider whether or not Umbraco is the right solution given these requirements. Perhaps you can built your own CMS or avoid a CMS entirely. One thing to note is that Umbraco is open source, so you could hypothetically reengineer it so that it can use the three tiered architecture you need to deal with. Here's the source code: https://github.com/umbraco/Umbraco-CMS/

    Keep in mind that trying to shoehorn Umbraco into this three tiered architecture may cost your company tens or hundreds of thousands of dollars. You may want to bring that up with them to see how they prioritize security when compared to cost.

  • George Moody 7 posts 77 karma points
    Jul 08, 2016 @ 14:20
    George Moody
    0

    Hi Abhishek,

    Did you manage to find a solution for your project in the end? I am hoping to do something similar to you with Umbraco being separated from the main business logic and data by a WebAPI layer but haven't worked out whether this is sensible/achievable.

    Cheers, George

Please Sign in or register to post replies

Write your reply to:

Draft