Documente Academic
Documente Profesional
Documente Cultură
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
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
representing
domain
requirements
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
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
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
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.
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
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.
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.
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
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
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
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
5. Case Studies
The below are some examples of using LogicXtender Environment in projects related to various application domains.
No 1
Technology ASP/VB
LogicXtender
4 programmers
Besides, with the same volume of data, LogicXtender applications demonstrated more than 2 times faster reactivity for resource intensive transactions processing.
Page 16
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
Page 18