|
De presentatie staat bij velen van ons bekend als de OO presentatie van Consist. Dat dacht ik ook, maar er is veel meer besproken dan OO alleen. Alle behandelde onderwerpen zal ik hierna puntsgewijs behandelen (hou daarbij de sheets in het oog).
Onderdelen van de presentatie:
Geschiedenis softwareontwikkeling Trends Object Orientatie Corba Java Netwerk Computer (NC) Frameworks San Fransisco Components vs Frameworks
Raakvlakken andere presentaties:
Client server Java (studentenpresentatie) NC (studentenpresentatie)
Geschiedenis Softwareontwikkeling
Kijken we naar de ontwikkeling van de software in de laatste 25 jaar dan zien we dat er op dit moment 4 grote stromingen zijn met software en systemen
Zo is er IBM met zijn AS400 systemen, welke stabiel en betrouwbaar zijn. Daarrnaast de verschillende maatwerk oplossingen van de verschillende ISV's (Independent Software Vendor). Verder zijn er op het moment ook de totaal oplossingen aanwezig van de verschillende ERP leveranciers zoals sap baan oracle en peoplesoft. En daarnaast nog de verschillende softwarepakketen voor de PC's (zoals exact en Davilex).
De ontwikkeling van de software spits zich de laatste tijd toe op de integratei van de verschillende systemen (AS400 praat met erp pakketten en PC programma's zonder "grote" moeilijkheden) etc.
Trends
Trends die de laatste tijd naar voren komen binnen de ontwikkelingswereld zijn:
Meer functionaliteit: een pakket moet niet alleen de dingen doen waar het voor gemaakt is maar ook de standaard handelingen die enigszins in de buurt liggen.
Openheid: Kijk naar LINUX de source-code is vrijgegegeven en iedereen kan zelf applicaties schrijven onder linux en dit besturingssysteem wordt (daardoor) nu ook door de grote systeemboeren ondersteund. Betere Integratie: De markt eist steeds meer dat alle applicaties met elkaar kunnen communiceren en gegevens kunnnen uitwisselen. (erp systemen zijn hier een goed voorbeeld van) Meer flexibiliteit:
Al deze ontwikkelingen zijn grotendeels terug te vinden in de wereld van Object orientatie:
Object Orientatie
Kijken we nu naar hoe de software is opgebouwd dan kan men voor de traditionele situatie een drie lagen model onderscheiden, nl een scheiding tussen Data, functionaliteit en presentatie. De data laag is de laag waarin alle gegevens van een applicatie staan. Wat er met deze geggevens gedaan moet worden is vestagelegd in de functielaag, waarna de bewerkte data door de presentatielaag wordt getoond aan de gebruiker. Binnen een traditionele applicatie worden voor het uitvoeren van een handeling steeds verschillende stappen ondernomen vanuit de behoefte aan een oplossing (database) in de OO is dit juist anders en geven de verschillende objecten mbv messages aan andere objecten aan dat ze iets gedaan willen hebben. Hiervoor zijn er voor objecten een paar kernbegrippen opgesteld welke op de sheet OO Kernbegrippen staan (LEER DEZE GOED!)
In de OO staat de gegevens van het object klant in het object zelf (encapsulated in het object). Alleen de methoden (methods) welke gedefinieerd zijn in de schil van het object kunnen bewerkingen uitvoeren op de gegegevens. Verschillende objecten kunnen met elkaar communiceren door het versturen van messages. Het ontvangende object begrijpt deze message en stuurt het antwoord (ook in een message) terug naar het vragende object. Hoe deze classes de aan hen gezonden messages interpreteren heet polymorphisme. Door gebruik te maken van OO wordt de drie lagen architectuur vervangen door een n-lagen architectuur waarin er is van evenzoveel lagen als er objecten zijn. (distributed objects)
Voordelen van OO
Onderhoudbaarheid - Classes makkelijk te vervangen Hergebruik Interoperability (objecten doen onderling zelf het werk, hoef je niet aan te sturen) Bouw van applicatie door het "bijeenbouwen van lego steentjes (componenten)" Gebruik nieuwe technologie
CORBA Common Object Request Broker Architecture
Deze aanpak levert de architectuur voor de interne communicatie tussen objecten in een applicatie. OVER VERSCHILLENDE PLATFORMEN HEEN. Dus: Corba weet waar alle classes en objecten binnen een systeem staan. Ontwikkelt door OMG (Object Management Group) Corba praat in IDL (interface definition language)
Waarom belangrijk?
Applicatie kan over meerdere plaatsen in de wereld verdeeld zijn. Corba zorgt ervoor dat alles dan nog met elkaar kan praten.
Java
Java is een OO-taal (tegenwoordig de standaard-taal) welke met behulp van een JAVA VIRTUAL MACHINE in staat is om op alle platforms te draaien. JVM is de interface tussen de standaard java code en de benodigde codes voor het desbetreffende besturingssysteem.
Java maakt gebruik van Byte-code, dit is de code die je overzend om op een andere machine (client-server) die specifieke instructies te laten uitvoeren. Byte-code is klein en wordt Just in Time gecompileerd (JIT: alleen compileren wanneer opdracht moet worden uitgevoerd)
Java op dit moment nog de enige platformonafhankelijke taal.
Netwerk Computer NC kan alles wat gewone pc kan, alleen staat de software niet op de nc maar op de server van de nc. De software wordt echter wel op de nc uitgevoerd. Hierdoor zijn er grote voordelen te behalen in de beheerskosten, in het versiebeheer en in de hardwarekosten.
Frameworks
Wat is een framework? Zie sheet!
Opbouw van de frameworks kan men als volgt beschrijven: Kijken we naar de erp software dan zien we daar een verdeling in lagen, een laag voor de technische aansturing, een laag voor de communicatie tussen alle functies en applicaties (componenten) en een laag waarin de verschillende applicaties staan (financieel, produktie, logistiek).
Benamingen voor deze lagen:
Technology layer (technische laag) Interoperability layer (commicatie laag) Application Layer (applicatie laag)
Het totaal van deze drie lagen noemt men een backbone (basisarchitectuur). Er zijn twee soorten backbones: Open en gesloten backbones.
Een gesloten backbone; zoals een SAP of Baan produkt heeft al 80% van de totale functionaliteit in zich zitten. De overige 20% kan de klant zelf toevoegen aan het systeem. Aan de eerste 80% valt dus niets te wijzigen.
Bij een open backbone; zoals SF is slechts 40% van de fuinctionaliteit gerealiseerd. Deze 40% zorgt voor de communicatie tussen de verschillende torens met functionaliteit. Deze torens kan men zelf ontwikkelen of kopen bij ISV's. zodoende krijgt men dus het lego-steentjes effect van: "Wat heb ik nodig; financieel pakket en logistiek pakket en niet het produktiepakket" (pakket = toren).
SF (San Fransisco)
SF is een voorbeeld van een open backbone framework. Het SF Framework is als volgt opgebouwd:
Door deze structuur is het dus mogelijk voor de klant om zelf te kiezen wat men voor soort hardware, software tools en applicaties men gaat gebruiken.
Bijkomend groot voordeel van SF is de grote uitbreidbaarheid van het framework (ander woord voor uitbreidbaarheid: extensibility) Daarnaast zijn enkele patterns (je weet wel van die standaard OO oplossingen) al verwerkt in het SF Framework, waardoor deze direct zijn te gebruiken.
Deze patterns zijn:
Class Replacement
Hiermee maakt men een kopie van een class zodat deze voor eigen doeleinden kan worden gebruikt.
Policy Pattern
Hiermee maakt men ook een kopie aan van een class, maar dan naast de standaard, zodat er onderscheidend vermogen is, tussen de standaard oplossing en de eigen oplossing.
Property Container
Class a heeft de eigenschap van class B in zich. B staat los van A maar kan alleen door A worden aangeroepen.
Proxy Pattern
Maakt exacte kopie van class op client computer, dit om transparantie van het netwerk te realiseren.
Componenten versus Frameworks
Evolutie programmeertalen:
Eerst waren er 4-gl talen zoals Cobol en Pascal Daarna kwamen de windows gebasseerde talen (component based) zoals Visual Basic en Delphi Nu zijn er de frameworks met bijbehorende objecten en classes
|