I am redesigning our application architecture and one of the concepts I want to inject is an ORM and centralized business logic w/Web services. I know the basics of ORM, and have an in-house ORM written in Perl I want to retire.
I want to use a single backend server to map objects to/from my Oracle database, and serve remote clients by serializing those objects out to remote Winform clients as well as Intranet Java, Perl and Ruby applications.
Here is my initial thinking:
Relational DB <-> ORM <-> (Web Services | Serialization Channel) <-> (Winform clients | ASP.NET apps | Ruby utilities)
1) Use C# as the Web services server, do serialization with SOAP, even though it is bulky. C# does XML and SOAP serialization out of the box. I can use NHibernate as the basis for the server.
2) I can use a Java server, Hibernate, and some sort of serialization technique.
Problem is I do not know what is out there, especially on the Java side. Which will interoprate with multiple languages.
3) Is there some sort of proxy solution, where I can run an ORM builtin to the client GUI app, that proxies over HTTP? I want to use ORM so I don't have to write the data access code for each object, but in my current design, I have to instantiate an object at the server level to serialize it out over the web. Am I on the wrong track with using the lower level .NET serialization stuff, and should I just move right to full SOAP/WSDL framework?
Thanks in advance.