Hi, It is too complex to answer in one post ;-), but you almost answer all your questions ;-) I don't know all the details about your system (will it be base on some J2EE App server?), but for example: - you can implement all your core business logic as simple POJO's base on Spring, it will allow you to test them in separation from the client code - for web tier you can use Struts2 and also use Spring to connect your actions to POJO's above, " ... MyAction.save() would go into POJO.save() ... " - exactly, and you can use some Transfer Object between action and POJO (you should not expose your entities to actions, repack them to POJO ;-) - even if don't plan to have interoperability with .NET you should use with your WebServices literal / document style (base on XSD and XML), then you can implement your WebService as a POJO, which will map in / from XML request to Transfer Object which will be used with POJO.save() - when you will want to use J2EE server, you can inject your POJO's with Spring to EJB's ( http://static.springframework.org/spring/docs/2.5.x/reference/ejb.html#ejb-implementation-ejb3 ) and once again pack your entities to TO (but it can the same TO for all tiers)
As you can see, you can simple extend access to your business logic, base on different technologies. If you want to connect does two systems, especially over the network, SOA can be a good solution. You can simply separate the logic of both and extend them independently, exposing new functionality through WebServices. But SOA is not a magic, you will encounter another problems when you will try to implement SOA (authorization, versionning, problems exposing complex objects / data, etc) I've hope that will give you some brief review how I see it ;-) Regards -- Lukasz http://www.linkedin.com/in/lukaszlenart --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]