ubi:binder Service-oriented Invocation of Custom Business Objects by Binding to any Data Source
Service-Oriented Architecture (SOA) constitutes one of the most promising and increasingly popular interoperability mechanisms, providing enterprises and information systems to communicate, interoperate and exchange information. SOA is a way of designing systems and enterprise architectures composed of services that are invoked in a standard way. Therefore, the main artifacts of a SOA-based system are the “services” that are reusable components representing business or mission tasks. A service interacts with other services through a message-based communications model. The most common communications model is the Web Services technology that uses Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL). However, not all systems expose Web Services. Legacy and propriety systems and old-fashion client-server applications do not support Web Services at all or they just include a minimum layer of Web Services that provide access to a restricted number of predefined data objects.
ubi:binder promotes the service-oriented adaptation of native legacy systems, constituting a customizable mechanism for the dynamic generation of Web Services on top of the data sources of these systems. On the one hand, ubi:binder enables the binding to any legacy systems’ data sources and the ad-hoc definition of custom business objects out of their data models, providing a user-friendly wizard that permits the graphical browsing and navigation of the each data source model. On the other hand, ubi:binder facilitates the semi-automated generation and grounding of Web Services realizing CRUD methods (Create-Retrieve-Update-Delete) on the user-defined business objects, using reverse-Hibernate models.
ubi:binder applies a standards-based approach to manage services available by different software packages for reuse and reconfiguration. ubi:binder leverages the notion of information exchange to service publication and discovery. Through these technologies, ubi:binder provides a platform for building services which is loosely-coupled, location transparent and protocol independent, realizing interoperability between different systems and organizations.
Internal Architecture
ubi:binder comprises of three fundamental building blocks: (a) the Object Binder module, (b) the UI Designer module, and (c) the Stab Generation module.
The Object Binder is used in order to bind to a structure and create an upper level model for this structure. This structure in most of the cases is a relational schema of a database. Therefore, the technical difficulty behind this module is that the binding capabilities should include as many RDBMS as possible. The choice of Hibernate technology for this module was an essential one since it turned out to be rather efficient in dealing with database agnostic development.
The upper-level models that are generated by the Object Binder are used by the UI-Designer. The UI-Designer incorporates a wizard environment that guides the end-user in order to accomplish four consecutive steps: a) business objects definition (based on the model that is generated by the Object Binder); b) custom-validation rules definition (which are used when someone is submitting data to the web service); c) automated web forms generation; and d) automated web services generation. The step of automatic form generation and automatic service generation are practically two different flavours of the same business logic. The core business logic, that is automatically implemented, refers to the Create-Retrieve-Update-Delete (CRUD) methods business logic. This logic is automatically generated for every defined business object and is consumed during the aforementioned steps (a) and (b). However, the CRUD service can be consumed either manually through an auto-generated form or automatically through another Web Service.
Finally, the Stab Generation module is responsible for creating the proxy-classes that encapsulate the aforementioned CRUD functionality.
ubi:binder acts as a middleware among the heterogeneous business systems and provides a toolset for assisting organizations that do not have Web Servicse -exposed functionality to do-so in a semi-automated way. ubi:binder can deployed as a Web-based toolset that can be used by any system developer and engineer. The only restriction that is imposed is the fact that the Web server that hosts ubi:binder should have network connectivity to the RDBMS, which will be used as an input is order to define the desired business objects and expose Web Services on top of them.