external
Uncle Unc Home Benefits

Benefits

Uncle Unc is an attempt to develop a generic component framework that allows many different structured data-sorting tasks to be harnessed in a manageable way. A small central set of open interfaces serve as a broker between any client and any service, giving the owners of the network the maximum degree of flexibility. In the language of Desiogn Patterns, Uncle Unc implements a bridge pattern between list-like clients and list-like servers.

A common set of interfaces are provided in the java programming language, and the framework has been developed to make it easy to expose any java object as an Uncle Unc service, and to control what gets exposed and how.

Network communication between clients and severs is done using XML, opening the door to non-java programs. Over time, we may develop more detailed frameworks for interoperability using PHP, Python, .NET or other popular programming languages.

Clients and servers are decoupled. That is, a client that can understand one service can understand any service. A service that can talk to one client can talk to any client. This results in a very efficient path to network-enabling a service across a range of platforms, or allowing access to network resources from a new type of client.

This increases the incentive for developers to provide new capabilities to the system. A widget set that provides a better view of a list of items does so for files, mail, log file entries, databases, newsgroups, etc. without any reworking. Similarly, a new backend service that delivers an Uncle Unc interface will enjoy exposure on all Uncle Unc client platforms (with plans afoot to cover web front-ends, smartphones, and scripting language access as well as the desktop clients).

The content of the user interface layer is directly defined by the properties and methods of the back-end service. As the back-end service evolves, there is no need to recode the GUI (or other UI), simplky the skeleton used to support it. Even this can be automatically generated from the back-end systems objects. Agile development is supported and encouraged in this way.

Defining the UI structure directly from the back-end has the further advantage of providing a good fit between the two. A hand-coded UI may omit certain capabilities of the back-end, because they are hard to express using an ad-hoc composition of low-level widgets such as textboxes, tick boxes and drop-down lists.

The UI is built around an open-ended description of the structure of the service that one is interacting with, rather than expressing a set of fixed pathways of interaction. As such, it supports a flexible, problem-solving approach by the end-user, rather than a purely mechanistic one.

Some examples of these benefits in the context of to real-world situations are given here.

credits
hosted by
SourceForge Logo
projects
download