Distributed Application Architecture

Posts   
 
    
dazedorconfused avatar
Posts: 89
Joined: 06-Apr-2006
# Posted on: 03-Oct-2006 17:42:01   

I have a WinForms application that I wrote in VB.NET (VS 2003) using LLBLGen Pro (1.0.2005.1 Final) generated objects as my persistence layer. I used the SelfSerivcing pattern because from what I read in the docs, it was simpler to implement than adapter. So this application was originally slated to be deployed to about 5 users. Well, due to how quickly it was implemented and how well it performs, additional functionality has been added and its now deployed to 50 or so users. Currently, I have designed the solution such that I have the following projects... Persistence - a Class Library that is nothing more than the LLBLGen Generated Classes. Interfaces - a Class library that contains generated proxies for web services called by the application Objects - A Class Library that contains classes that inherit from the Generated classes as necessary to provide custom validation and implementation of business logic. Also in this project are classes that represent objects used in Web Service calls. UI - Well, pretty much self explanitory, contains all of the forms that make up the UI.

So, when I origianlly wrote this, I figured at some point, I'd have to learn remoting and make the persistence and object layers run in a windows service and have the ui connect to the service.

Well, that time has come and I desparately need some direction. I have read a lot in the past few days on Enterprise Services and Remoting. There is a difference... right? From what I read about Enterprise Services, I'd no longer be able to use my LLBLGen objects... is that true? I hope not. If I implement remoting, I need to change to the adapter pattern... right?

Has anyone used LLBLGen in a distributed application... using Remoting or COM+? Did/does it work? Any advice?

Thanks!

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39749
Joined: 17-Aug-2003
# Posted on: 05-Oct-2006 10:23:30   

Let's start by the remark you make: webservices and later on: remoting. Which one of the two are you using? Webservices (the XML ones) or a remote service over remoting?

In a distributed scenario, keep the services at a high level of abstraction. This means: don't make the DAL a service, but make a high-level service with an api which can work on its own. This leads to messaging usage, the recommended way of using webservices.

Frans Bouma | Lead developer LLBLGen Pro
Insane
User
Posts: 10
Joined: 19-Sep-2006
# Posted on: 05-Oct-2006 13:17:48   

We are writing a project with remoting which business layer is remote.

Remoting is fairly simple and if you're willing to use it, use it with binary formatter which is faster than web services' xml formatter.

All comes default with .NET so, in 4-5 lines of code you define server and with another 4-5 lines of code for client.

COM+ is harder to implement compared to remoting. If your code is not written with a different language than .NET I don't think its a good way to choose it. (Ex: Our old web site code is written with ASP and when we develop .NET components we have to make them COM+ to use with ASP directly)

dazedorconfused avatar
Posts: 89
Joined: 06-Apr-2006
# Posted on: 05-Oct-2006 15:02:45   

Otis, The web services I speak of are services that I consume, that is, I act as a client. Specifically, I am calling web services on several SAP Business Connector Servers to get data from SAP to my client application. So, what will ultimately become my back end (server side application) will be interfacing with SQL Server and DB2 (possibly Oracle) via LLBLGen objects as well as webservices. So to the end user, using the win forms client, its transparent to them where the data they are viewing is coming from.

I appreciate your help!