• 1

pulsar, pulsar consulting

Pulsar has developed its own GID Internet Development Platform starting from the standard JSParchitecture, allowing developing complex interactive internet-based application in a minimal time (GID1). 

In a second phase, Eurocontrol/EATMP/DSA/AIM started a new project with Pulsar to enhance GID platform (GID2). Today both Pulsar and DSA/AIM teams benefit of the new platform and can make developments or enhancements by their own. 

More, any technical team within Eurocontrol wishing to have the knowledge and develop itself based on GID platform can obtain freely the licensing for the Development phase. Thus, GID is today a stable platform fully compliant with the IT requirements in Eurocontrol.


Technical Environment

  • J2EE, EJB compliancy
  • JSP, Servlet
  • Oracle 9iAS, Tomcat+Apache or another J2EE compliant application server
  • Oracle JDevelopper9I as a Java and XML development environment
    Oracle 9iDatabase Server or SQL-Server 8 as database server
  • Thin client: only html pages and javascript, running on most of the browsers.
  • Standard Web Browser Client: Internet Explorer, Netscape and Mozilla.



Pulsar GID Platform Features

  • Compatibilitywith any J2EE compliant Application Server. 
    Component based development (e.g. Access to Oracle Data via Entity Beans, …).
  • HTML design possible by non-programmer profiles, XML data tags added by developer for interactive application behaviour.
  • Groups access rights defined at application level (modules, menus, pages, fields, tables, etc) and at data level.
  • Caching of global application data for performance and data reusability reasons.
  • Consistent Exception Handling for easy problem understanding and correction.
  • Centralization of reusable JavaScript code for shared functions.
  • Templates for basic functionality's (Query, Browse, List of Values, …) to ease designers/developers work.
  • Connection pooling to the database server (performance and server resources reasons).
  • Multilingual support on application level and data level
  • ThreadSupport for parallel tasks.
  • Hierarchical Tree presentation of data for recursive data structures, like the service provider organization, form tree questionnaires, etc.
  • Job Scheduling support for batch tasks.
  • Authentication, Access Rights, Multilanguage, Navigation, managed by a central controller servlet.
  • Users Connections logging centralized.
  • Limit the number of JSP pages per application or a tool to master this.
  • Parameters Deployment: should be easy to modify by the system administrator (DEV/TEST/ PROD) by straightforward configuration files or through user-friendly custom interface.
  • Upload/Download files, like XML questionnaires, and "import" them into the database from client stations. A specific and personal disk area on the server must be given to the user or IC for security reasons.
  • Prioritisation: allow, when necessary the prioritisation between batch processes, and against on-line processes.
  • Unicode: This means allowing representation of special characters and languages (Arabic, Cyrillic, etc).


Benefits with Pulsar GID development platform 

A stable and standard Web-enabled architecture: new applications or modules can be integrated smoothly and with minimal effort. This allows having the same look for Intranet and Internet screens and "publishing" new screens in Internet without any development effort. 

RAD (Rapid Application Development) approach: HTML designers produce the user interface prior to the development of the application. This gives to the end-users a very good idea of the final design of the application before the technical analysis and development (in functional analysis phase) is done. This allows easier changes of the application in continuously changing businesses. Pre-existent server modules: allowing the development team to concentrate on business-related development rather than on technical issues. Re-usability of server-side modules. Easier to debug issue. 

Cost reduction: For the infrastructure, the maintenance (impact from the different modules in relation with the growth of the number of users). 

Parallelism: allowing many users to request services in the same time. 

Thin client: minimal installation on client side (browser), no or minimal interaction with other client software. 

Scalability: allowing the sizing of the IT infrastructure depending of the business needs (from a small system to a huge system without changes in the software application) 

Persistence: keeping/journalising/archiving the important data by user and session 

Transactional: allowing, through a locking mechanism, an error-free and hanging-free processing when several users are working in parallel in Add/Modify/Delete mode on the same data. 

On-line/Batch: allowing users and administrators to work either in on-line mode with immediate answer from the system, or start tasks and let the system process the data in background while the user can go on working on other tasks. 

Performance: the system assures good response times to users requests, even when loaded (many users in parallel, many tasks to do, with a large amount of data in the database)

  Portability: the new platform is as portable as possible from one IT system to another, allowing future changes of the technical infrastructure (OS, server hardware, devices, web and application server, etc) without or small impact in the application software. 

Connectivity: the new system can assure a pre-defined frame, based on API layers to define, to easily connect to other Eurocontrol IT systems. 

Availability: the new applications developed on this platform must be able to support a high availability towards user requests, not only during the office hours but also during the Week-End, late in the evening or early in the morning. 

Standardization: for future evolutions preserving today’s investments, this is a unique and consistent open-source and EurocontrolÂ’s standard platform, open source minded. This avoids mixing technologies (like client-server, Access, etc). 

Shared platform between Eurocontrol and Pulsar: GID allows EurocontrolÂ’s developers to develop by their own enhancements of the application or completely new modules. No dependency on Pulsar as a supplier of services (but at request we can offer the needed support or maintenance activities). 

Any JDBC Relational Database: GID can connect to any JDBC relational database, including Access, to extract data. 

Middleware: GID can act itself as a middleware, allowing connecting easily to other tools by different means: csv or XML files thru the file system, TCP/IP connection, etc. The technique is the same as for the rendering of HTML pages from database information: instead of the database a file is read, instead of rendering HTML page to the client he’s delivering the information to another application or another module of GID. 

Evolution: GID allows thru its JSP architecture to easily plug new beans or other modules, specific to the business. 

Pre-defined features: User Groups features, LDAP API, web security features + protected file system directories, dynamic error messages system, pre-defined system parameters table allowing to tune the functioning of the application thru administration parameters, etc.


GID Architectural Concepts and Components

Basic components
Oracle Business Components (BC4J) = java layer abstracting the access to the database, implementing the structure of the database in entities and object views, using a caching system for performance reasons. The GID developers needs to create, with Oracle Jdeveloper tool, the Business Components specific to their client database (entities for tables, object views for joined tables, etc)

Server File System = server side file system, with protected directories for security, with possible sub-directories allowed for each user (for iUpl/iDownl)

Hidden components
The following technical components of GID are used to implement some of the flows (these components are only used by GID kernel and are not manageable by GID developers):

iError_Handler (iERR) = component implemented in java classes instantiated by iCTRL and/or iCALL whan an error occurs. 

Database_Connection_Pooler (iPOOL) = singleton started by iCTRL that manage the connection to the database. Each bean or java class that needs to connect to the database asks a connection to iPOOL that offer it. When a component releases a connection, iPOOL recuperate it to use it for another component requesting a connection. In the configuration file of the application server some environment parameters define to which schema (in Oracle terminology) to connect. 

ISEQUENCER (iSEQ) = singleton started at initialization of iCTRL that generates sequences and counters at request. 

ClassLoader (iCLASS) = java component allowing GID to be "JVM-tolerant": GID loads its own libraries in the JVM independently from whatever other application present in the JVM, avoiding interference between different versions of the same library loaded by GID and another application.

Accessible Components

The following main components of GID are highlighted in the diagram. These components are available to the GID developers:

IRAD_WIZARD (iRAD) = the wizard tool, implemented also in iREPO, that allow developing applications on GID platform 

iREPOSITORY (iREPO) = the repository database, containing all applications developed on GID platform (html pages and their content, javascript, the java beans, etc). See the TEC-PLS-GID-iREPO document for more explanations on the iREPO structure and functioning. 

iCONTROLLER (iCTRL) = the servlet of GID, receiving requests from the users browsers and forwarding the request to the concerned component (usually iCALL); this servlet checks the authorization and the access rights of the requestor.

  iBEAN_CALLER (iCALL)= bean started in the unique jsp page page by iCTRL, which connects to iREPO and fill-in a new jsp page with all beans of the page requested by the user 

iXML_PREPARATOR (iPREP) = a bean started by iCALL (if present in the requested page in iREPO), and which prepares dynamically an XML file (or DOM) representing the lay-out of the page to be sent to the user as response to his request: positions in the xml file the html tags (all tags supported). 

iGENERATOR (iGEN) = a bean started by iCALL (if present in the requested page in iREPO), which receive the XML from iPREP (if present) or takes a static XML from the file system and fill it in with data extracted from the client specific database. Specific rendered elements, all html specific tags that hold data: fields, labels, tables, check-boxes, radio-buttons, combo-boxes. It does not render the Frame, Frame Set, Body, Head, etc tags (struct. Specific) 

iWebTree (iTREE)= a bean started by iCALL (if present in the requested page in iREPO), which receive the XML from iPREP (if present) or takes a static XML from the file system and fill it in with data extracted from the client specific database. Specific rendered elements: a javascript Tree-View. 

JobScheduler = a bean started by iCALL (if present in the requested page in iREPO), which executes a system command thru the java standard API. SQL scripts, BAT files, SQL Loader files, etc can be started at planned date-time moments 

iFileHandler (iFILE) = a bean started by whatever other bean, that allows managing files: put/get them from a storage media like file system, database, TCP/IP pipe, compress them with zip or other format, etc 

iUploader (iUP) = a bean started by whatever other bean, inheriting from the iFILE setters (methods), that allows uploading a file after selecting it on the local file system. 

iDownloader (iDOWN) = a bean started by whatever other bean, inheriting from the iFILE setters (methods), that allows downloading a file after selecting the place on the local system where to place it. 

iMailer (iMAIL) = a bean started by whatever other bean, inheriting from the iFILE setters (methods), that allows sending a mail with attachments to a destination list. 

iSvgRenderer (iSVG) = A bean started by iCALL in a non-HTML page, that allows sending to a client plug-in like Adobe SVG Viewer an SVG-XML file representing whatever graphical information: geographical information, graphical reports, diagrams, etc.

iRAD Wizard example: Users and Groups Association