Sunteți pe pagina 1din 18

LogicXtender

Integrated Runtime Application Environment

unleash the power of your imagination

2010 Nova Knowledge Sdn. Bhd.

The principal difference, from the technical standpoint, between computer and what is normally explicit referred to information in a as intellect, and is in algorithms Computer

with, into meta-data and actual data, and then managing this distinction is still technically challenging, and, in our view, yet to be resolved. This is especially so when there is general disagreement on what the best software development processes and methodologies are. Another aggravating that factor, while between distortions

segregation

computer.

programs are, mostly, just means of data processing; the data invariably treated as a passive resource. By converting the data in a computer processes into a more universal resource, it is possible to take a leap forward to embedding systems with intellectual. One of the ways of achieving this is to use the concept of meta-data, resource manage and the that piece control of the information automatically would

considering the software design process itself, with is communications and human beings leave much to be desired, gaps, ambiguities, manifested in the design itself. This is borne out in the research proliferation in concepts such as semantic modelling and natural language processing techniques in software development. The general purpose of LogicXtender

execution of a software program. After having done so, the role of computer information resources changes the information is now used for processing information, and is not a passive resource any longer. To date, there are many technologies that embed, in one way or another, the concept of meta-data, such as database for management systems, environments

Environment is to accelerate, streamline, and simplify software development process for e-applications by leveraging on progress made in computer science, as software well as It for development also serves methodologies, as a unified

programming concepts and techniques. platform enterprise application. resources

management

object oriented software development, XML based systems, etc. However, the task of codifying an adequate yet simple but unified mechanism for separating information, that computers deal

Page 2

2010 Nova Knowledge Sdn. Bhd.

1. LogicXtender: Concepts and Architecture


The main concept any of LogicXtender specific Environment is and

representing

domain

requirements

operational procedures as meta-data (as knowledge) that can be manipulated dynamically.

More specifically, LogicXtender carries into effect basic points of semantic modelling i.e. representing the real-world things in symbolic (notional) form, and then operates with such representation. Briefly, the above can be conveyed as following basic and simple principles. Every human being creates his own and specific model of the real world, his own representation of reality. He can express this model mainly by language he is using (various beliefs, concepts, etc), and manifest the model through his behaviour and actions. Nobodys model of reality is complete and comprehensive, and such model is to be altered, amended, and enriched during his activities and interactions with other human beings. Effectiveness of anybodys activities and behaviour depends on how adequate is his model to reality, and on how rich and comprehensive is his representation of the real world i.e. on the level of his model congruence with environment he is living in. These principles, narrowed down to particular professional areas, result in quite simple methodology of modelling domain experts activities in certain fields, and can be implemented as a software program. And the major functions such a program is to fulfil are: Maintaining semantic representation of a domain mainly, this means just a dictionary of notions to be used (for instance, from HR, CRM areas etc).

Page 3

2010 Nova Knowledge Sdn. Bhd.

Maintaining information of how these notions are correlated with each other rules and constraints the notions must obey. Support of dynamic (i.e. at runtime) changes to the above groups of entities (notions and rules) for easy alterations and improving of the model of professional activities. Support of dynamic interface, for users to be able to interact with the system, and for compliance with dynamic changes of rules, etc.

In technical terms, the above means that such a program must be able to represent any domain specific requirements and respective operational procedures, which are known to be effective and adequate to the requirements, as meta-data (as knowledge) and further utilize those, and such meta-data can be dynamically changed at run time. Having the above concepts and principles implemented, LogicXtender also adds other functions that are essential for real life enterprise Web Applications: Automatic object-relational mapping as soon as the system becomes aware of new notions, it immediately maps those into database structures. Embedded comprehensive security components for Intranet and Extranet applications. Sophisticated sessions management components every generated page is digitally signed to prevent any possibilities for back-door access to applications. Embedded Template Engine for dynamic generation of User Interface there is no need to hard-code neither ASP, nor JSP pages, as well as using any other presentation techniques; and the system just dynamically generates required interface on the basis of entered definitions and desired layout. Embedded various designers (Wizards) to make the development and

maintenance processes user-friendly, and such development and maintenance activities can be conducted on-line and remotely there is no need in physical access to the server even while developing a Web Application from the scratch. Embedded major maintenance functions, including remote compressing of the database, import/export of information, etc. Page 4

2010 Nova Knowledge Sdn. Bhd. This results in significant differences between approach offered by LogicXtender and conventional (traditional) way of developing software as follows: A domain specific Web application in LogicXtender environment is maintained as knowledge (meta-data) in the database, with automatic and dynamic generation of required classes whenever appropriate. LogicXtender Engine deploys this knowledge for generating relevant responses to users, and for updating actual information it stores. Whenever there is a necessity to change business logic or interfaces, there is no need to stop the server and re-compile the System, all the necessary actions LogicXtender performs at runtime automatically. There is also no need to redesign database schema when new entities are introduced. The system does object-relational mapping automatically, irrespective complexity of relations between existing entities. The above are made possible because LogicXtender itself is a meta-system, i.e. it does not do any domain specific job per se. Instead, it processes knowledge entered by users, and this particular knowledge becomes the core part of an e-application. This is achieved through LogicXtenders embedded and ready-to-use components, which tune, run and maintain e-applications, and all these components are available to users via a Web browser. The overall architecture of LogicXtender can be schematically represented as below:

LogicXtender Engine

Integration Layer: Interface, Persistence, SMTP integration, etc. Event Engine Session Engine Knowledge Representation Layer Objects Relational DB Mapping Layer Template Engine

RDBMS

Page 5

2010 Nova Knowledge Sdn. Bhd.

2. Components
The major ready-to-use components LogicXtender Environment offers to users are: Modelling Language Parser Events Engine Template Engine Forms Designer Session and Security Report Writer Processes Monitor

These components are being used both for designing a Web application and hosting it; application itself is maintained in the database as meta-data. The detailed descriptions of the above components are provided below.

Page 6

2010 Nova Knowledge Sdn. Bhd.

2.1. Modelling Language


LogicXtender Modelling Language (LXML) is a scripting programming language that provides users with a simple means of defining required objects, types of objects that may be needed for an application, relations between created objects, etc. Basically, LXML is being used to convert knowledge about particular domain of professional activities (various notions, business logic, work flow features, etc) into the form understandable for LogicXtender Engine it is, actually, a sort of procedural knowledge definition language. And LogicXtender Environment supports run-time alterations to previously entered entities (objects, rules, work flow settings, etc), without having to shut down server, and without having to interrupt connected users.

The functions users can perform with LXML are: 1. Defining Objects Categories 2. Defining Objects and other entities (Semantic Layer) 3. Defining business logic 4. Defining custom events (Event Handlers) for LogicXtender Engine 5. Describing work flow features 6. Describing formats of files for export/import operations Page 7

2010 Nova Knowledge Sdn. Bhd. All newly created entities (objects, etc) are immediately mapped into the database, and are available to users through their names the details of how these entities are actually mapped are, mostly, irrelevant to users. And after a user defines a procedure or particular event handler, LXML Parser converts it into Java class and dynamically injects this new class into the System without necessity to stop server. It is also possible, while defining a procedure, to insert into it fragments of Java code (invoking methods of external classes) along with LXML statements, thus making integration with external Java-compliant applications very straightforward and simple.

2.2. Events Engine


The Engine is a core component in LogicXtender Environment and is to execute user-defined business logic, and such executions are being performed in background and, mainly, triggered by certain assigned events or actions. Users do not have and do not need direct access to the Engine itself, and are interacting with it only through LXML statements while defining business logic. The defined rules may also be associated with particular custom events for conditional computations, for triggering another actions, for displaying results, etc. The custom events LogicXtender supports cover the following groups: Environmental Events (Time moment, period of time, etc) Computational Events (Starting or finishing execution of specified procedures, triggering various event handlers, generating a report, etc)

Users actions (login into the system, clicking particular buttons, selecting a record, attempts to create new record, attempts to navigate to particular forms, etc) SOAP Events triggered when external applications push messages to an application hosted by LogicXtender

Page 8

2010 Nova Knowledge Sdn. Bhd.

2.3. Template Engine and Forms Designer


The Template Engine and Form Designer associated with it are responsible for defining and then dynamically generating front-end User Interface (UI) of Web Applications. On defining UI, all that required is just selecting appropriate options, among offered ones, using embedded Form Designer. And system will store only definitions of desired interface actual generation of Web Page is being performed at runtime on its invocation, i.e. all UI definitions and layouts are maintained as meta-data.

For every user-defined Form (Web Page), the Template Engine automatically generates default template, with all selected elements and controls included, and it is possible to further improve or enrich it, if there is need, manually at any point of time. Whenever users change or alter UI, the system automatically regenerates respective templates, and further maintains updated definitions.

Page 9

2010 Nova Knowledge Sdn. Bhd. Besides, any action performed on designed and generated Form (Web Page) may be assigned custom events, which can trigger navigation to another page, background computational procedure, or whatsoever.

2.4. Report Writer


LogicXtender provides users with embedded comprehensive yet simple-to-use Report Writer, by means of which users can define their own Report Templates, including sophisticated interactive reports by adding standard DHTML features. LogicXtender supports XML-like syntax for defining Report Templates, and, after having been generated, these reports can be converted into Word or Excel format.

The System automatically monitors access rights for all defined reports, depending on User Group these reports have been defined for.

Page 10

2010 Nova Knowledge Sdn. Bhd. Defined Reports can be generated either manually, or triggered automatically on the basis of user-defined rules in response to specified events. Apart of full-fledged Reports, LogicXtender also supports simple ad-hoc reporting facilities (Query Designer), and even computer illiterate users can use these facilities for generating simplified tabular reports on the fly.

2.5. Processes Monitor


The Processes Monitor can be used to have full and clear picture of what is happening in the system, and the Monitor logs all actions being performed by applications, irrespective whether those are user-initiated actions, or actions automatically triggered by applications themselves. Especially Monitor concerns computationally intensive aspects, like executing procedures. The Processes Monitor also maintains detailed timings for the actions performed in the system, and can be used for performance control and optimisation of hosted applications.

2.6. Other Components


The other important components of LogicXtender Environment that are invoked by the system automatically, whenever required, are: Object-relational Mapping Security Components Session Management

Page 11

2010 Nova Knowledge Sdn. Bhd. The mapping is done automatically whenever new entities are introduced to LogicXtender, and no interventions from users are needed mostly, the users do not have even to know how specifically those entities have been mapped into database structures, since they always can refer to actual data through names of entities, and perform any operations over data they think appropriate. The Security Layer implements roles based concept, and supports unlimited number of users groups, each of group assigned specific role in particular application. And security components also provide different logical views of applications for different users groups according to particular tasks these groups are to perform with applications. The Session Management layer is responsible for maintaining special system object for every user User Context, and this object contains entire navigation history of every user, as well as includes additional security feature (digital signatures) for every visited page. Besides, to ensure optimal utilization of server resources, LogicXtender Environment employs, for session management, concept of time slotting on application level: every user occupies resources only while the system performs actions for him (generating response), and after the response is generated, the resources are released immediately, including allocated, from the pool, connection to the database.

Page 12

2010 Nova Knowledge Sdn. Bhd.

3. Methodological implications
LogicXtender Environment inevitably enforces

concepts and certain features of knowledge-based approach to software design, thus noticeably changing methodological principles of the design process itself. There are, normally, five steps involved in

creating a piece of software: enumerating the requirements; designing the program; actually writing the code; testing it; and then deploying it. Traditionally and naturally enough, this was seen as a sequential process. However, by the time an organisation gets around to deploying a piece of software, its requirements have often already changed. This indicates that an iterative model, in which an organisation continually cycles through the five phases, makes more sense than the traditional waterfall process, which puts them in sequence. This situation is aggravated by inevitable communication gaps in development teams. Mostly, software projects require quite a number of specialists possessing different qualifications and skills, starting from Business Consultants, Analysts, and ending with Coders/Programmers. And conventional development process is arranged in a hierarchical way; the information (requirements, specifications, etc) flows from the top level to the bottom thus passing through and digested by respective layer and every layer (Analysts, Project Managers, etc) inevitably adds certain omissions and distortions into overall understanding of the tasks. It is not something unusual in software industry when people who do actual coding have just 50% of understanding the tasks, comparing to Business Consultants or Analysts the information has been lost or distorted somewhere in the middle layers in this chain. This fact immediately implyies iterative process (reconciliation), through over all layers and, mostly, results into many patches to initial design. LogicXtender implyies methodology where there is no need in explicit separation into coders and some other groups, Analysts can directly interact with the system and can have immediate results all omissions can be corrected further just by updating previously Page 13

2010 Nova Knowledge Sdn. Bhd. created objects, and there is no need to pass information to subordinated levels in development project. requirements. Furthermore, using LogicXtender it is very natural to implement development methodology based on rapid prototyping of Web applications initial version of application can be delivered to production within matter of days, mainly for data entry and verification purposes. All further activities, such as defining business logic, workflow features, improving or amending interface, etc until application takes desired shape - can be conducted on-line and without interrupting already existing users (data entry operators, or whomever). Applied functional modules wise, this approach noticeably mitigates the risk during software development process, shortens entire development cycle, and ensures adequateness of finished application to the very current requirements, which may be drastically changed compared to initial ones at the beginning of development. Generally, design process using LogicXtender Environment resembles the process of administering and structuring knowledge about particular application domain, with much less emphasis to be put on purely coding activities, as it would be when using conventional methodology. Besides, LogicXtender Environment is meant to serve as a unified application platform for wide range of Enterprise Applications, and since all meta-data is residing in a single database, the integration aspects between such various applications become transparent and trivial all required is just making particular entities (business objects) visible in another module with appropriate access rights, which can be performed by a single mouse click. And the system automatically verifies consistency of data thus providing feed back loop in case if some logical incoherencies are found in initial

Page 14

2010 Nova Knowledge Sdn. Bhd.

4. Specifications
LogicXtender Environment is a pure Java application itself, which was developed using NetBeans IDE Version 6.x and JavaCC Framework, and presently run in Apache Tomcat Servlet Container, with some other libraries and frameworks deployed for Web Services support. The third parties components and products required to run the System, are listed in the below table:

No 1 2 3 4 5 6

Product/Component Sun JSDK 1.5 or higher Apache Tomcat Ver. 5.0 Apache Log4j Ver. 1.2 Apache Axis Server Ver. 1.2.1 Castor Framework Ver 0.9.9.1 Oracle 10g SE

Remarks

Can be replaced with any other Servlet Container

The System can be ported to other Database Servers on need basis

LogicXtender can also be easily integrated with any external applications either directly with those supporting Java-compliant API, or through Web Services. Integration with applications supporting Java-compliant API can be performed by directly invoking methods of external classes from user-defined procedures, and such external classes (applications) can be developed using conventional approach.

Page 15

2010 Nova Knowledge Sdn. Bhd.

5. Case Studies
The below are some examples of using LogicXtender Environment in projects related to various application domains.

5.1. Human Resources Management System


The project conducted for Malaysian Resources Corporation Berhad (MRCB) was concern methodological and technological aspects of developing HRM System, and benchmarking was performed using two technologies: 1. Conventional ASP technology with Visual Basic and DCOM components 2. Pure LogicXtender Environment using LXML language The results of benchmarking are shown in the below table, for the same modules developed independently.

No 1

Technology ASP/VB

Modules 1. Personal Records Management 2. Establishment Data Management

Human Resources 20 programmers

Development Period Approx 9 months

LogicXtender

1. Personal Records Management 2. Establishment Data Management

4 programmers

6 weeks including requirements study

Besides, with the same volume of data, LogicXtender applications demonstrated more than 2 times faster reactivity for resource intensive transactions processing.

Page 16

2010 Nova Knowledge Sdn. Bhd.

5.2. Front-end Application for Location Based Services in GSM Network


The project for deploying Location Based Services using GSM network is conducted by a consortium of companies including Malaysian Mobile Operator Maxis, and is based on Matrix Positioning Technology from CPS (Cambridge Positioning Systems). LogicXtender Environment is used for developing end-user Web Application for accessing Location Based Services, as well as for integration through Web Services - with other components, such as external GIS Server and Gateway to Mobile Location Center (Matrix Server).

The benefits of using LogicXtender for this particular type of applications is easiness of tuning the functionalities to particular requirements of various customers for Location Based Services, including fleet management, assets management, and people tracking, with covering all the necessary business procedures organization may have.

Page 17

2010 Nova Knowledge Sdn. Bhd.

Nova Knowledge Sdn. Bhd.


C-01-03, SME Technopreneur Center Cyberjaya, 2270 Jalan Usahawan 2, 63000 Cyberjaya, Selangor, Malaysia

Phone: + 6 03 8319 2696

Page 18

S-ar putea să vă placă și