A fat client using the Rich Client Platform of Eclipse is available as example. The fat client uses the EJB3 stubs to exchange data with the server, however you could use as well REST, Webservices or distributed OSGi.
As relational databases MySQL, Oracle or MS SQL Server are used through plain SQL interfaces or object-realtional mapping (ORM). On Java the Apache Cayenne(tm) ORM is used as an open source persistence framework. On the non SQL based databases the google appengine datastore or mongodb are used.
This sample uses the Apache Cayenne ORM, Apache TOMEE/Tomcat or Jetty as server and Apache Wicket, OpenEJB, Apache CXF and Google Web Toolkit as web frameworks. It shows how you can utilise Apache Cayenne running within the same virtual machine and on different machines. This sample has as well simple console programs, Eclipse RCP fat client, simple servlets, web services and REST interfaces.
Python is a scripting language providing a full range of libraries easy to use within your script. If you want to do some administration or a sophisticated web application, python is an excellent choice. As python makes it easy to use C and C++ libraries, a full set of typical functions can be reused. A fat client based on GTK+ is shown, a python server on google appengine with RESTful services and a python flask server are provided.
PHP is a commonly used programming language supported by many hosting providers. The example supports RESTful support through usage of the SLIM Framework. As datastore a classic relational database through DBO is used (MySQL in the example). Native push notification to google and Apple is supported.
Perl was one of the first script based engines available and was a forerunner on using scripting technologies not only for system administration. As many still use Perl even for applications this example provides a Perl based server offering the standard functionalities as the PHP example.
Communication protocols build as well an important architectural element. Yafra mainly uses RESTful, webservices and plain TCP sockets in oder to communicate betweeen 2 components (mainly client and server).