|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
architecture questionA few of my co-workers and I are working on a concept architecture at work because our current system has many limitations and really hardly any documentation. Currently we have a 2 tier system and they are the presentation tier and business and data tier that are together. Our current system allows us to add a new product anytime we want. Our current system passes a service code and gets all the information needed to load that product, including the assembly, namespace and the class that has the logic for the product and this assembly is loaded using reflection. I was wondering if there’s a 3rd party product from Microsoft or anyone else that will accomplish this exact same thing or if there is a better way of doing it? If anyone can answer my question I would really appreciate it. Thanks, BravesCharm =?Utf-8?B?QnJhdmVzQ2hhcm0=?= <BravesCh***@discussions.microsoft.com>
wrote in news:40DFD796-39ED-4E60-995B-1A892ACCA053@microsoft.com: Rather then passing assemblies around, you might want to take a look at > Currently we have a 2 tier system and they are the presentation tier > and business and data tier that are together. Our current system > allows us to add a new product anytime we want. Our current system > passes a service code and gets all the information needed to load that > product, including the assembly, namespace and the class that has the > logic for the product and this assembly is loaded using reflection. > Service Oriented Architecture. Microsoft's Practice and Patterns website has information about it. Basically you expose a set of objects via remoting (or web services). Applications (Presentation Tier, Custom apps, client apps, etc) connect to these objects to perform work. This architecture is pretty flexible and allows for failover and clustering too (assuming you have no persisent state between requests). Hello BravesCharm,
As was recomended the SOA is the solution for you. All your product shoul be the services, any time you can add/remove new service and you system by request should discover this service and use it SOA is not an product, it's just guideline and policy. What concern technology you probably will use COM+, WebServices (BPEL), XML/XSLT B> A few of my co-workers and I are working on a concept architecture at B> work because our current system has many limitations and really B> hardly any documentation. B> B> Currently we have a 2 tier system and they are the presentation tier B> and business and data tier that are together. Our current system B> allows us to add a new product anytime we want. Our current system B> passes a service code and gets all the information needed to load B> that product, including the assembly, namespace and the class that B> has the logic for the product and this assembly is loaded using B> reflection. B> B> I was wondering if there’s a 3rd party product from Microsoft or B> anyone else that will accomplish this exact same thing or if there is B> a better way of doing it? If anyone can answer my question I would B> really appreciate it. B> B> Thanks, B> BravesCharm --- WBR, Michael Nemtsev :: blog: http://spaces.msn.com/laflour "At times one remains faithful to a cause only because its opponents do not cease to be insipid." (c) Friedrich Nietzsche Thanks guys for your help. We are using a 2 Tier environment and kind of
using SOA. Let me explain the architecture a bit more. 1)Request comes into Web Service for product “Speakers†2)Product/Service code for product “Speakers†is hard coded in the Web Service as SPK (One of the bad designs because it’s hard coded.). The web service takes product/service code SPK along with information about that product and passes it to the Application server via remoting (HTTP remoting.). 3)The remoting object looks up product/service code SPK in a table in SQL Service to get product assembly name, class name (this class has to be inherited off a business base class and overrides a virtual method.) and namespace that has the business logic for this product. 4)The remoting object loads the assembly and creates an instance of the class and calls the override method. The method handles the business logic for that product and returns to the remoting object and everything is done. This method is great because you can easily add a new product, insert a new row for the product/service into a table and it can be called easily without having to recompile anything. The disadvantage is it becomes maintence hell because there are so many assemblies because the amount of products we have. I’m going to look deeper into SOA but I figured we were pretty doing this. I never really thought about COM+ to host our business objects. That would allow us to plus and unplug new objects. I don’t know anything at all about BPEL so I’ll have to do some research on it. I’m also not sure how XML/XSLT will help much? Anyway, thanks for a quick response. Bravescharm Show quote "Michael Nemtsev" wrote: > Hello BravesCharm, > > As was recomended the SOA is the solution for you. > All your product shoul be the services, any time you can add/remove new service > and you system by request should discover this service and use it > > SOA is not an product, it's just guideline and policy. What concern technology > you probably will use COM+, WebServices (BPEL), XML/XSLT > > B> A few of my co-workers and I are working on a concept architecture at > B> work because our current system has many limitations and really > B> hardly any documentation. > B> > B> Currently we have a 2 tier system and they are the presentation tier > B> and business and data tier that are together. Our current system > B> allows us to add a new product anytime we want. Our current system > B> passes a service code and gets all the information needed to load > B> that product, including the assembly, namespace and the class that > B> has the logic for the product and this assembly is loaded using > B> reflection. > B> > B> I was wondering if there’s a 3rd party product from Microsoft or > B> anyone else that will accomplish this exact same thing or if there is > B> a better way of doing it? If anyone can answer my question I would > B> really appreciate it. > B> > B> Thanks, > B> BravesCharm > --- > WBR, > Michael Nemtsev :: blog: http://spaces.msn.com/laflour > > "At times one remains faithful to a cause only because its opponents do not > cease to be insipid." (c) Friedrich Nietzsche > > > Hello BravesCharm,
B> 1)Request comes into Web Service for product “Speakers†B> 2)Product/Service code for product “Speakers†is hard coded in the B> Web B> Service as SPK (One of the bad designs because it’s hard coded.). B> The web B> service takes product/service code SPK along with information about B> that B> product and passes it to the Application server via remoting (HTTP B> remoting.). B> 3)The remoting object looks up product/service code SPK in a table in B> SQL B> Service to get product assembly name, class name (this class has to B> be B> inherited off a business base class and overrides a virtual method.) B> and B> namespace that has the business logic for this product. What's likely should be changed to be on the SOA path is the way of discovering of your new components. If you use COM+ and wrap it into BusinessProcess or BusinessOperation (BPEL spec) you shoud ask for the name of you component and you system should find it (you can use some kind of business server for this like webMethods, BizTalk or smth else from open-source, we use webMethods for this) Using XML is the way of communication - ask to find, instant and communicate with you service. B> 4)The remoting object loads the assembly and creates an instance of B> the B> class and calls the override method. The method handles the business B> logic B> for that product and returns to the remoting object and everything is B> done. B> This method is great because you can easily add a new product, insert B> a new row for the product/service into a table and it can be called B> easily without having to recompile anything. The disadvantage is it B> becomes maintence hell because there are so many assemblies because B> the amount of products we have. That's why shifting to the SOA diminish this effect B> I’m going to look deeper into SOA but I figured we were pretty doing B> this. B> I never really thought about COM+ to host our business objects. That B> would B> allow us to plus and unplug new objects. Sure, just install new component to GAC. B> I don’t know anything at all about BPEL so I’ll have to do some research on it. This is one of the WSE specifications. BPEL describes you dependencies between logic. The idea is to wrap you COM+ logic into single business operation or into the business process - the workflow of the several business operations. You clients should interact directly with WebServices, not the COM+. B> I’m also not sure how XML/XSLT will help much? it's the way to communicate between client, webServices and server logic, because all messages are open, you can change or transfer to any message in any time. For example, you have a customer table, where you got new request to show the day of the last client's purchase. In this case you should change only XML/XSLT messages for this. On client side you change request XML message, and add node about lastDate. In server, where you generate SQL query based on incoming XML and XSLT to get SQLQuery, you just add new node and new lines to get correct SQL and fix output XML messages. In result, on the client side, you got new field to show client's last purchage date - without recompiling you app. B> Anyway, thanks for a quick response. You are welcome. --- WBR, Michael Nemtsev :: blog: http://spaces.msn.com/laflour "At times one remains faithful to a cause only because its opponents do not cease to be insipid." (c) Friedrich Nietzsche |
|||||||||||||||||||||||