En Ru
JAVA
based development

JAVA TECHNOLIGIES

We build corporate applications with rich GUI, wide business logic and self-monitoring features using various Java technologies.
We not only use several frameworks but we also expand and adapt them to meet specific needs of particular application architecture.
  Java based projects:

Budget planning and controlling system

Automated process management system on the cross boarding control

Related links:

Web UI technologies


Complex algorithms development

Technologies used: J2SE

Selected solutions:
  • Online planning of optimal activity plan. Combined algorithm that uses genetic algorithm approach with rule-based avoiding variants that have potentially low probability of achieving acceptable results. Algorithm was optimized to reduce amount of computation in order to meet time restriction imposed by online nature of task.
  • Semantic analyzes of analytical data model. Application analyzes data model (entities, attributes and relationships), extract semantic and automatically creates user interface for viewing, entering and changing information. Data exchange between GUI and database is done automatically. The goal is rapid application development. Semantic analyzes requires complicated algorithms in particular during semantic marshaling and grouping of entity attributes.

Java EE Application Development

Technologies used: EJB, Hibernate, JMS, Java Mail

Selected solutions:
  • EJB-based database search framework. Universal approach that allows to perform an effective search by custom criteria at the database with data pagination and data sorting
  • Auto update of data shown to user. JMS-based notification mechanism that allows client application to work with latest version of data provided by server.
  • EJB performance tuning. Set of solutions to improve Session and Entity beans performance: session facade beans, lazy loading approach for entity beans, tuning EJB-application server settings.
  • Transaction manager. Custom transaction manager that allows handling a set of parallel transactions.
  • Lock manager. Locking mechanism to provide shared access to data.
Since all listed solutions are based on Java EE platform API we are also able to implement solutions with usage of similar frameworks (e.g. Spring Framework).

Web Applications

Technologies used: Struts 2, Tiles, Java Servlets, JSP, JavaScript, Portlets

Selected solutions:
  • Internationalization and custom data conversion. Multilanguage web-application with capability to support custom data format.
  • Search framework. Set of View-layer solutions that provide common mechanism searching data by custom criteria. Interacts with business layer search framework to obtain data from database.
  • Secured pages. Web-applications that support custom behavior (available actions, components set and their availability) dependent on current user permissions.
  • Composite pages. Building pages as composite view that consists of several independent parts that can be handled separately.
  • Reusable page templates. Page templates which are embeddable to page layout. They can be customized by defining concrete template attribute values.
  • Reusable tables. Tables for JSPs that support data sorting and data pagination.
  • Multi-browser Ajax HTTP/XML Request/Response content loader. Converts asynchronous response to common format (XML) that allows being independent from concrete browser implementation details when using Ajax capabilities.

Rich GUI

Technologies used: SWING

Selected solutions:
  • Form with automatic component placement. Reusable component based on JInternalFrame that provides intelligent automatic placement of subcomponent according to their logical grouping. All necessary size adjustment is done automatically. Several grouping strategies can be freely combined.
  • Extended table. Reusable component for table-based data representation embeddable in other components. Supports image items, composite rows and columns, sorting and filtering by custom criteria, quick search, manual column reordering.
  • Focus management. Custom focus behavior implementation.
  • Changed component behavior. Implementation of UI-components that support custom behavior: embedded verifiers, defined by developer data display format, event handlers, etc.

Database Platforms

Technologies used:Oracle Database 8i, 9i, 10g, 11, PL/SQL and MySQL, JDBC

Selected solutions:
  • Indexing optimization for large tables (hundreds of millions of records).
  • Query optimization by hints. Building queries that use Oracle specific query hints to provide better performance.
  • Automatic DB update. Embedded auto applying of updates for database schema (tables structure, stored procedures, sequences). It ensures that when new version of software is installed DB structure is updated automatically.
  • Stored procedures. Part of data handling logic placed in stored procedures for improving application performance.
  • Custom data types. Custom object and collection data types used by stored procedures and application (Oracle Database Server).

Application and Web Servers

Technologies used: JBoss, Orion Application Server, Tomcat, WebSphere, WebLogic

We have an experience of building and deploying applications running on different application and Web-servers: JBoss, Orion Application Server, Tomcat, WebSphere.

Multithreading, Reflection, Management extensions

Technologies used: J2SE, JMX

Selected solutions:
  • Thread state monitoring. Embedded thread monitoring system that allows detecting thread blocking of different kinds.

Custom data format support

Technologies used: XML, POI Framework

Selected solutions:
  • Excel-export framework. POI-based custom data export to Excel-file with capability to provide custom data formatting.
  • XML based message service. Automatic XML-based data exchange between several applications.
  • DBF/XML conversion. Solution that automatically converts data with specific structure between these 2 formats.

Automated testing

Technologies used:JUnit, TestNG

Selected solutions:
  • Extension of JUnit framework for mutual independence of tests changing data in database. Solution that supports automatic rollback (including database changes) of test execution. Allows creating a set of independent server-side tests.