a s k e s i s
start >  diensten >  Software ontwerp & implementatie

Software-ontwerp & -implementatie

Onze expertise is het maken van geavanceerde gedistribueerde applicaties. Gedistribueerde applicaties zijn informatie-systemen wier onderdelen verdeeld kunnen worden over meerdere machines in een netwerk. Veschillende databases, webservers, client-applicaties en ander software kunnen draaien op verschillende machines in het netwerk en werken samen als ware zij een grote applicatie.

Gedistribueerde applicaties zijn van nature complex. Vaak wordt heel veel tijd en geld besteed aan het in orde maken van de technische infrastructuur die nodig is als fundering voor de applicatie zelf. De Askesis Application Server Development Distribution is deze technische infrastructuur. Zij is gebouwd op de J2EE-specificatie en bied een modulair raamwerk dat makkelijk uit te breiden is met nieuwe functionaliteit. De distributie biedt uitbreidbaarheid, prestaties en fault-tolerance door clustering en heeft verbindingen met allerlei databases en "legacy"-systemen zoals-ERP Systemen (bijvoorbeeld Sap, Baan of Exact).

De applicatie-server kan benaderd worden met behulp van allerlei client-server communicatie-protocollen. Clients kunnen direct verbinden met RMI-IIOP (het J2EE-protocol) of met Corba, maar ook webbrowser-gebaseerde clients (bijvoorbeeld voor e-commerce toepassingen) zijn mogelijk. Uiteraard is het ook mogelijk met de nieuwste technieken als webservices op basis van SOAP contact te maken met de server.

Typische applicaties

Om u een beter inzicht te geven in de bruikbaarheid van een applicatie-server, hebben wij een lijst gemaakt van de typen applicaties die gebruik zouden kunnen maken van onze Askesis Application Server Development Distributie.

Groupware

  • Ordercommunicatie-systemen. De typische bedrijfslogica van de applicatie wordt uitgevoerd op een centrale server, samen met de database-toegang. De client-applcaties kunnen zowel stand-alone als webgebaseerd zijn.
  • Vertegenwoordigers werken off-line terwijl ze "en route" zijn. Zodra ze on-line zijn worden de orders van hun notebooks naar het order-systeem verstuurd en worden de laatste gegevens op het gebied van de producten en hun beschikbaarheid gedownload.
  • Electronische formulieren kunnen door heel de organisatie gebruikt worden. Door het centraal beheren van formulieren zij alle formulieren onmiddelijk in de hele organisatie beschikbaar en altijd "up-to-date".
  • Maak uw LAN beschikbaar over internet zodat uw personeel van overal ter wereld kan werken met behulp van een internet verbinding.
  • Beveiligde gegevenstoegang. Authenticatie en authorisatie voor meerdere client-applicaties (inclusied webtoegang) worden centraal verwerkt, waarbij alle applicaties verbonden zijn middels de toegangscontrole van de server. Hierdoor worden bijvoorbeeld de validatie van sessies en het opzetten van beveiligde verbindingen automatisch afgehandeld.

E-Commerce

  • Wij bouwen beveiligde e-commerce websites die volledig geïntegreerd zijn met uw bestaande applicaties.

Kennissystemen

  • Deel uw kennissystemen met anderen. U kunt gespecialiseerde bevragingen om uw database heen bouwen en de resultaten hiervan beschikbaar stellen met behulp van webservices/SOAP.
  • Mobile agents kunnen meerdere databases bevragen; stel uw vraag en laat de agent locale en andere databases bezoeken.

High availability

  • Robuuste 24x7 oplossingen. Onze applicatieservers zijn zeer schaalbaar en bieden zowel hoge prestaties als hoge beschikbaarheid door het gebruik van clustering en load balancing:
    • fault tolerance wordt bereikt doordat andere machines automatisch het werk overnemen als een machine er mee stopt.
    • prestaties zijn schaalbaar; voeg gewoon een machine toe aan het cluster en de applicatie zal er gelijk gebruik maken en de extra rekenkracht onmiddelijk inzetten.

Licenties

Askesis gebruikt, behalve als u andere wensen hebt, Open Source software. We gebruiken bij voorkeur Open Source software omdat:

  • er meestal geen licentiekosten aan verbonden zijn
  • de broncode beschikbaar is voor zowel u als voor ons

De voordelen van het ontbreken van licentiekosten zijn vanzelfsprekend. Licentiekosten zijn vaak een groot gedeelte van het automatiseringsbudget. Vaak is het zelfs zo dat de licentiekosten in combinatie met de overige kosten betekent dat het project in het geheel niet uitgevoerd kan worden : de initiële investeringen zijn gewoon te groot.

De voordelen van toegang tot de broncode zijn missschien niet onmiddelijk duidelijk, maar liggen bijvoorbeeld op de volgende terreinen:

  • Aanpassing: als de software zoals die aangeschaft is niet geheel doet wat u wilt dan kan de software met broncode beter aangepast worden dan software zonder broncode.
  • Onderhoud: bugs in de programmatuur worden als gevolg van het feit dat er wereldwijd aan de programmatuur gewerkt wordt sneller en beter hersteld worden, in plaats van dat u moet wachten tot de leverancier een patch of een nieuwe versie (ter betaling!) ter beschikking stelt.
  • Support: als er onverhoopt problemen zijn, dan zijn we beter in staat te bepalen wat er aan de hand is als de broncode van het hele systeem beschikbaar is.

Technieken

Gedistribueerde technieken

Askesis gebruikt een drietal industriestandaarden bij het ontwikkelen van geavanceerde gedistribueerde applicaties:

  • J2EE wordt het meest gebruikt, omdat het een snelle ontwikkeling garandeert en een hoge mate van standaardisatie kent.
  • CORBA wordt gebruikt wanneer er sprake is van samenwerking met andere Corba componenten of wanneer delen van het systeem in een andere programmeertaal dan Java geschreven zijn.
  • DCOM of .NET worden gebruikt als de bestaande infrastructuur uit Windows-applicaties bestaat.

Ontwikkeltechnieken

Askesis gebruikt moderne technieken bij het ontwikkelen van haar applicaties. Kernbegrippen in onze software-ontwikkeling zijn dan ook:

  • Object-oriëntatie, waarbij op een natuurlijke wijze "real world"-objecten in de software gemodelleerd kunnen worden..
  • Het Unified Software Development Process, dat het ontwikkelproces standaardiseert en helpt het hele proces voor alle betrokkenen hanteerbaar te houden.
  • UML, the de facto methode om te communiceren tussen tussen u, de systeemanalisten en de het ontwikkelteam.
  • Patterns, die helpen om generieke software-problemen te onderkennen en beproefde oplossingen voor die uitdagingen toe te passen.

Software

Askesis gebruikt Open Source software. Omdat er geen "one-size-fits-all" oplossingen bestaan (niet Open Source en niet Closed Source), hebben wij de Askesis Application Server Development Distribution ontwikkeld. Dit is een verzameling van Open Source applicaties die wij zo geconfigureerd hebben dat zij naadloos samenwerken. Hoewel wij Open Source prefereren kunnen wij op uw verzoek ook andere applicaties net zo naadloos laten samenwerken.

De distributie is modulair van opzet. Alle applicaties kunnen naadloos vervangen worden door andere, vergelijkbare, applicaties. Dit kan bijvoorbeeld op uw verzoek gebeuren als u al een bepaald programma gebruikt. Zo hoeft u geen nieuwe programma's te leren en te onderhouden. In de beschrijving van de door ons gebruikte software zullen we voor de door ons gebruikte Open Source software ook de door ons geprefereerde Closed Source software noemen. U kunt natuurlijk altijd contact opnemen met ons als uw software er niet bij staat om te bezien of wij uw software ondersteunen.

J2EE applicatie-servers

De kern van de Askesis Application Server Development Distribution wordt gevormd door een J2EE Applicatie-server. Een Java applicatie-server is een softwarepakket dat een run-time omgeving biedt aan componenten geschreven in Java. De applicatie-server voldoet aan de J2EE specificatie, zodat gegarandeerd wordt dat alle volgens de specificatie geschreven componenten gebruikt worden in alle applicatie-servers die ook voldoen aan de J2EE-standaard. De verschillende servers verschillen immers in hun implementatie, niet in hun specificatie.

Askesis gebruikt de volgende J2EE applicatie-servers:

  • JBoss, zowel met Jetty als met Tomcat
  • IBM WebSphere

Besturingssystemen

De Askesis Application Server Development Distribution is platformonafhankelijk. De kern van de distributie is een op Java gebaseerde J2EE applicatie-server, JBoss, die op alle besturingssystemen draait waarvoor een Java 2 runtime environment of Developer's Kit versie 1.3 of hoger beschikbaar is. Dit betekent dat de distributie op vrijwel alle besturingssystemen draait.

Askesis gebruikt de volgende besturingssystemen:

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

Databases

In beginsel kunnen alle databases die een JDBC- of een ODBC-driver hebben gebruikt worden. Voor een optimale prestatie is een JDBC-driver gewenst. Er zijn twee grote Open Source databases beschikbaar, PostgreSQL en MySQL, die wij beiden ondersteunen. De keuze voor de database hangt af van de applicatie. Bij bescheiden eisen en wanneeer de applicatie op bescheiden hardware moet draaien, gebruiken wij vaak MySQL. Als er hoge eisen aan de betrouwbaarheid en performance gesteld worden en er met name een aparte machine ter beschikking is voor de database gebruiken wij altijd PostgreSQL.

Askesis gebruikt gewoonlijk de volgende databases:

  • PostgreSQL
  • MySQL
  • IBM DB2

Web servers

Een belangrijke schakel in de communicatie tussen u en uw klanten wordt gevormd door de webserver die u gebruikt.

Askesis gebruikt de volgende web servers:

  • Apache HTTP server
  • Internet Information Server

CORBA

CORBA vormt een essentieel onderdeel van zowel J2EE applicatie-servers als de z.g. "Enterprise Application Integration" (EAI).

Askesis gebruikt de volgende ORB's:

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

Programmeertalen

Wij hebben ervaring met een heel scala aan programmeertalen. De keuze van een programmeertaal is belangrijk: als de software onderhouden moet worden binnen uw organisatie moet een programmeertaal gebruikt worden die men in de organisatie kent. Askesis heeft verschillende cursussen beschikbaar om uw personeel te training in het onderhouden en aanpassen van de software.

Askesis gebruikt de volgende programmeertalen:

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