|
|||||||||||||||||||||||||||||||
Shipka Applies Virtualization To Application Development
The virtualization is a powerful concept that has changed our life in many ways. Few examples:
The virtualization of application development is based on the fact that all applications can be composed from three main elements: data (persisted and non-persisted), operations (data transformations) and user interface components. It consists of:
Data Virtualization
It hides the complexity of dealing with different types of data objects (database, memory, XML, remote, LDAP, etc.). That includes managing persistence, transactions, data searches, data query, sorting,
change tracking, remote access, etc. Data virtualization services provide developers with much simpler paradigm to work with.
It is based on the concept of virtualized data object and the concept of Centralized Object Repository. Virtual objects are organized semantically in collections that are identified by objectId. Developers retrieve virtual objects, do some work with them and apply the changes back to the repository. Data Virtualization Services provide generic capabilities to search, query and sort collections of virtual data objects. Operation Virtualization
The term Operation means standalone unit of programming logic. It takes 0-many input parameters and returns result and 0-many output parameters. Operations enables developers to separate the implementation
of business logic and other algorithms from data objects managed by Data Virtualization Service.
Operation Virtualization Service hides the complexity of dealing with different operation implementations (local or remote (over WebServices, JMS, EJB, etc.)). It is based on the concept of virtual operation and Centralized Operation Repository. Each operation has unique identifier (operationId). Developers execute operations through Operation Virtualization Service by providing operationId and required input parameters. They receive back the output parameters. Presentation Virtualization
It is based on the concept of virtual presentation component and the concept of Centralized Presentation Repository. The term virtual presentation component means reusable, self-contained unit of presentation functionality
that is implemented without engaging into data management or operation implementation. Presentation components are not application-context aware. They are intended for deployment within applications, where they are customized and wired
to the application context. Each presentation component has unique identifier within the Presentation component repository.
Presentation Virtualization Service hides the complexity of dealing with different presentation technologies as well as connecting to remote presentation components. It also enables developers to integrate every application as presentation component within other applications. The applications interact with presentation components through Presentation Virtualization Service interface by providing presentationId. Application Orchestration
Application orchestration is a construction facility that enables developers to grab components from virtualized services and create final product from them. It defines the application functionality declaratively
as a hierarchy of application nodes. Presentation components are deployed at the nodes of the application hierarchy and customized through resource files. As part of the application orchestration deployed presentation components
are wired to the application context. It includes:
Application Architecture
Application architecture consists of three main layers:
Application Development Process
The virtualization impacts application development process in the following way:
Transparent Application Collaboration (TAC)
TAC is comprehensive solution for application collaboration. Instead of generalizing shared resources to a single concept like service (everything is a service - SOA) or web resource (everything is a web resource - ROA),
TAC recognizes the differences between resource types. It defines separate interface for each resource type, reflecting the functionality needed by developers to interact with it. The application integration is transparent, since TAC provides
remote implementations of the virtualization interfaces that are available to the local application. Any application may be a client and server of shared resources at the same time. TAC provides access to resources exposed as SOA services
or ROA web resources. It simplifies the application collaboration by eliminating the need of:
The combination of technology-agnostic application development and transparent collaboration holds many promises for the enterprises:
![]() |
|||||||||||||||||||||||||||||||