1

I'm a bit confused about architectural choices for the // world. For / world the available (open source) choices to implement web applications is pretty limited to zero, involving or the choices explode to a,- hard to sort out -, mess of available 'frameworks' and application approaches. I want to sort out a clean MVC model, where the M stands for a fully blown (POCO, POJO driven) domain model (according M.Fowler's EAA pattern) using a mature OO language (Java,C++) for implementation.

The background is: I have a system with certain hardware components (that introduce system immanent active behavior) and a configuration database for system meta and HW-components configuration data (these are even usually self contained, since the HW-components are capable to persist their configuration data anyway).
For realization of the configuration/status data exchange protocol with the HW-components we have chosen the Google Protobuf format, which works well for the directly wired communication with these components.
This protocol is already used successfully with a Java based GUI application via TCP/IP connection to the main system controlling HW-component. This application has some drawbacks and design flaws for historical reasons.

Now we want to develop an abstract model (domain model) for configuration and monitoring those HW-components, that represents a more use case oriented view to the overall system behavior. I have the feeling that a plain Java class model would fit best for this (c++ implementation seems to have too much implementation/integration overhead with viable language-bridge interfaces).

Google Protobuf message definitions could still serve well to describe DTO objects used to interact with a domain model API. But integrating Google Protobuf messages client side for e.g. data binding in the current view doesn't seem to be a good choice. I'm thinking about some extra serialization features, e.g. for JSON based data exchange with the views/controllers.
Most lightweight solutions seem to involve a python based presentation layer using WSGI or JSON based data transfer (I'm at least not sure to be fully informed about this).

Can someone give good advice about best practices or easy to integrate frameworks for such case?

UPDATE:
According to my recent research and comments of colleagues I've noticed that using Java (and some JVM) might not be the preferable choice for integration with on a limited linux system as we have (running on ARM9 with hard to discuss memory and MCU costs), but C/C++ modules would do well for this (since this forms the native interface to python extensions, doesn't it?).
E.g. a pyramid based solution seems to provide a lightweight framework, that allows to integrate a domain model using an appropriate python facade. Protobuf also provides python class generation support, does someone have experience with integrating protobuf messages as DTO's with python?

I can imagine to provide a domain model from an appropriate C/C++ API (though I still think it's more efforts and higher skill requirements for the involved developers to do with these languages). Still I'm searching for a good approach that supports such architecture. I'll appreciate any pointers!

4
  • @maple_shaft Hmm' I see. I'm primarily asking for a framework. I'd like to see pointers for a viable approach more likely ... Commented Nov 7, 2013 at 20:32
  • Is there may be a better fitted Stack Exchange Site to ask for technology integration approaches? Commented Nov 7, 2013 at 20:34
  • This is really the best site to talk about technology integration in software design, it is just that as this question was worded it seemed like a shopping request which is explicitly off topic. If you are looking for advice on specific areas of your design approach then feel free to edit your question and flag for moderator attention and if it meets the standards we will reopen it.
    – maple_shaft
    Commented Nov 8, 2013 at 1:39
  • @maple_shaft Thanks for your advice. I've tried to reword the question, that it doesn't sound like i want to go on a shopping tour anymore. The whole blast of seemingly possible solutions and frameworks just ovekills me for making good decisions. I've also tried to figure out a bit more what's my actual state and efforts in research. Commented Nov 8, 2013 at 22:30

1 Answer 1

-1

It is hard to understand your exact question but generally speaking JSON would be a good choice to integrate with the client side in Java. You can serialize POJOs using jackson. But better yet you can deserialize proto buffers to JSON.
In terms of a framework for Java, I would recommend Spring MVC. You need an instance of an application server (tomcat, jetty etc.) i.e. a jvm in which to run. It has great RESTful support and provides to and fro conversion from POJO's to JSON by simply including jackson in the classpath.

6
  • this post is rather hard to read (wall of text). Would you mind editing it into a better shape?
    – gnat
    Commented Nov 13, 2013 at 8:48
  • Is that the reason for a downvote ? Its kinda tricky to get formatting right on mobile
    – sunny
    Commented Nov 13, 2013 at 16:55
  • in line with sister stackexchange sites can the downvoter let me know the reason for a downvote ?
    – sunny
    Commented Nov 14, 2013 at 8:11
  • 1
    @sunny: A (down)voter has no responsibility towards explaining his vote. Commented Nov 14, 2013 at 14:45
  • @JeroenVannevel i.e true but as discussed here and when to downvote it is okay to ask. On stackoverflow atleast that worked pretty well.
    – sunny
    Commented Nov 14, 2013 at 19:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.