a s k e s i s
start >  services >  Software design & implementation

Software design & implementation

Our expertise lies in building advanced distributed applications. Distributed applications are information systems whose parts can be distributed across different machines. Several databases, components with business logic and client applications can live on networked machines and interoperate as if they were one single, large system.

Such distributed systems are by nature complex. A lot of time is spent in creating the technical infrastructure, needed as a foundation for the application logic. The Askesis Application Server Development Distribution is meant to alleviate these problems. It is built on the J2EE specification and provides a pluggable, extensible framework for all kinds of business applications. The business logic is component-based and therefore easily expandable with new functionality. The system offers expandability, performance and fault-tolerance through clustering and it connects to a multitude of databases and legacy systems, such as ERP systems like SAP or Baan/ERP.

The application server can also be accessed by all kinds of client-server communication protocols. Clients can connect directly through either RMI-IIOP (the J2EE protocol) or Corba to communicate with the server, but you can also use web-based clients (e.g. for e-commerce applications) or even use the newest webservices through SOAP.

Typical applications

To give you a better understanding of the usability of an application server, we have compiled a list of some common types of applications, that can benefit from being built on our Askesis Application Server Development Distribution.

Groupware

  • Order communication systems. A central application server houses the business logic and database access that a typical order system needs. Client programs can be either standalone applications or web-based.
  • Sales representatives working offline while on the road. When being online, orders are transferred from their notebooks to the order system and product and stock catalogs are updated back from the database.
  • Electronic forms that need to be accessed throughout your organisation. Centralized forms that can be viewed and altered immediately instead of paper forms that are either at the wrong department when somebody needs them or exist in multiple copies which are never up-to-date.
  • Make your LAN available over the internet so that your staff can work from anywhere in the world with an internet connection.
  • Secure access to data. Authentication and authorization for multiple client applications (including web access) are handled centrally and all client applications are connected through the server's security checks, which automatically handle setting up secure communications channels and validating sessions if necessary.

E-Commerce

  • Building a secure e-commerce site, fully integrated with your already existing applications.

Knowledge systems

  • Supplying knowledge systems to third parties. You can build specialized queries around your database and offer the resulting information through webservices/SOAP.
  • Mobile agents querying multiple databases; define your query once and let the agent application take care of visiting both local and remote databases.

High availability

  • Robust 24x7 solutions. Our application server solutions are extremely scalable and offer both high performance and high availability through clustering and load balancing:
    • fault tolerance is achieved by transparently redistributing the load whenever a node fails
    • performance is scalable; add a machine to the cluster and the application will automatically be deployed on the new machine and it will almost immediately serve it's part of the load.

Licenses

Askesis uses, unless requested otherwise by our customer, Open Source software. We prefer Open Source software for several reasons:

  • There are usually no licensing costs
  • The source code is available both to us and to our customers

The advantages of no licensing costs are obvious. Software licensing can take up the better part of the project budget. In fact, together with the cost of customization, it may mean that the project cannot start at all: the initial investment is simply too large.

The advantages of having access to the source code may not be immediately obvious, but they are in the areas of:

  • Adaption: if the software out-of-the-box doesn't work according to our customers' exact wishes, it can usually be adapted to them better than binary-only software can.
  • Maintenance: software bugs are usually solved faster because of the large number of programmers worldwide having access to the code and fixes can immediately be applied by us, instead of having to wait for a patch or update from the manufacturer.
  • Support: if problems come up, we are better able to determine what goes wrong because the source code of the entire system is available.

Technologies

Distributed technologies

Askesis uses three technologies in creating advanced distributed applications:

  • CORBA, when interoperability with other Corba components is required or major parts of the system need to be written in languages other than Java.
  • J2EE, most often used, because it allows rapid development and a high level of standardization.
  • DCOM/.NET, used when the already existing infrastructure is based on it.

Development technologies

Gosis uses modern technologies to develop applications. Keywords in our developement are:

  • Object Orientation, which improves the modelling of real world objects in software.
  • The unified software development process, which standardizes the development process, making it more manageable to all parties.
  • UML, the de facto method for communicating systems and software between managers, systems analists and software implementers.
  • Patterns, which help to recognize generic software challenges and apply proven solutions.

Software

Askesis uses Open Source software. Because there is no one-stop solution available (neither open source, nor closed source), we developed the Askesis Application Server Development Distribution. This is a suite of Open Source applications that we configured to work seamlessly together. All though we prefer Open Source applications, depending on the customer's wishes, we also use other applications if they work just as seamlessly together as their Open Source counterparts.

The suite is modular by nature: all applications can be replaced by other applications. This can be done at the customer's request, if e.g. the customer already has another brand of application and wants to use it's own software instead of learning and maintaining new software. In most descriptions of the software we will mention both our prefered Open Source and our prefered closed source solution. Feel free to contact us whether we support your choice of software.

J2EE application servers

The core of the Askesis Application Server Development Distribution is a J2EE Application server. A Java application server is a software system that provides a run-time environment for executing components written in Java. The application server complies to the J2EE specification, which ensures that a well written component can be deployed without additional development work in almost all Java application servers. Different brands of application servers differ in their implementation and tools, but not in their specifications.

Askesis uses the following J2EE application servers:

  • JBoss, both with Jetty and Tomcat
  • IBM WebSphere

Platforms

The Askesis Application Server Development Distribution is platform independent. The core of the suite is a Java based J2EE application server, JBoss, which runs everywhere where a Java 2 Runtime Environment or Developer's Kit version 1.3 or higher is available. This covers almost every platform you can think of.

Askesis uses the following operating systems:

  • Linux
  • FreeBSD
  • Windows NT 4.0 and Windows 2000
  • Solaris

Databases

All databases that have a JDBC or ODBC driver can be used. For optimum performance a native JDBC driver is prefered. There are two major open sourced databases available, PostgreSQL and MySQL, which we both support. The choice for a specific database depends on the demands of the application. If the system has modest requirements and is to be run on limited hardware, we often use MySQL, for example when both application server and database back-end are to run on a single, moderately powerful machine. If the demands are higher and especially when a separate machine is available for the database, we will always use PostgreSQL, because it is offers much more.

Askesis routinely uses the following databases:

  • PostgreSQL
  • MySQL
  • IBM DB2

Web servers

An important front end for the communication with your customers is your webserver.

Askesis uses the following web servers:

  • Apache HTTP server
  • Internet Information Server

CORBA

CORBA is a key element in both J2EE application servers and in Enterprise Application Integration (EAI).

Askesis uses the following ORBs:

  • TAO (C++)
  • JacORB (Java)

Programming languages

We have experience in a wide range of languages. The choice of programming language is important: if the software must be maintained within your organization it must be written in a language that is known or available within your organization. Askesis also has several courses available for your staff to make it possible to maintain or adapt the software.

Askesis uses the following programming languages:

  • C/C++
  • Java
  • Perl
  • PHP
  • Rexx
  • Tcl