Technology Architecture
Hardware, Networking, Operating Systems, DBMSes
Selection & Evaluation Criteria
Grid & Cloud Computing
Business
Informatie / Communicatie
Business Process Modeling
Operations
Technologie
DB Design
Architecture
Data Mining Bron: https://enterprisearchitecture.nih.gov/Pages/TechnologyArchitectureIntroduction.aspx
Enkele criteria om “juiste” Technologie te kiezen
Marktaandeel
Aanschaf Implementatie Onderhoud Software: Integration, Interoperability, Compatibility, Portability Hardware: Capacity, Compatibility, Robustness, Form Factor, Obsolescense H+S: Scalability, Performance, Reliability, Security
Integration is concerned with the process of combining components into an overall system (after IEEE 610). Figure 1 shows two components interacting to form an integrated system. Integration testing is concerned with whether the two components when combined (integrated) to form an integrated system behaves as the system as a whole is expected to behave.
Risico’s
Providers Ondersteuning (services, updating, etc.) Human Resources (beschikbaarheid bekwame werknemers)
Technologische Eigenschappen
Integration (Software)
Total Cost of Ownership (TCO)
Geen standaard notatie of voorstellingswijze. Schema
Technology Acceptance
Strategie
Structuur
Onderdeel van Enterprise Architecture
Systeem (security, safety, denial of service, etc.) Markt Toekomstige Technologie
Licensing Andere?
http://www.testingstandards.co.uk/
Interoperability (Software)
Interoperability is the ability of two or more systems (or components) to exchange and subsequently use that information (after IEEE 610). So interoperability is concerned with the ability of systems to communicate – and it requires that the communicated information can be understood by the receiving system - but it is not concerned with whether the communicating systems do anything sensible as a whole. Figure 2 shows two systems communicating with an interface in each system to handle the communication. The interface provides the information for use by the receiving system at the point marked ‘X’.
http://www.testingstandards.co.uk/
Compatibility (Software)
Compatibility is concerned with the ability of two or more systems or components to perform their required functions while sharing the same environment (after IEEE 610). The two components (or systems) do not need to communicate with each other, but simply be resident on the same environment – so compatibility is not concerned with interoperability. Figure 3 shows two components in the same environment. They are compatible with each other as long as both can run (or simply reside) on the environment without adversely affecting the behaviour of the other. An example of compatibility testing would be to test whether word processor and calculator applications (two separate functions) could both work correctly on a PC at the same time.
http://www.testingstandards.co.uk/
Portability (Software)
Capacity (Hardware)
Portability is concerned with the ease of moving components or systems between environments (hardware and/or software environments). In figure 4, component X can be seen in two different environments.
Size of
Hard Disks Internal Memory
Speed of
Hard Disks (read/write) Central Processing Units Network cards Internal data transmissions
http://www.testingstandards.co.uk/
Interoperability (Hardware)
Sometimes referred to as “Compatibility” Support for external devices
Support for software
Connections, slots Drivers Instruction Set Address Space
Connectivity
Robustness (Hardware)
Business-grade vs Consumer-grade Mean Time Before Failure (MTBF) Serviceability Support from 3 rd parties Security Recovery from failure Stable drivers Power supply (UPS) Etc.
Wired Wireless (Bluetooth, Wifi, etc.)
Form Factor (Hardware)
Rack Units (1U, 2U, 3U, 4U, …)
HD Storage Size by time
Storage cost (consumer-grade HD) Nonlinear decrease
< 10 ct / GB
(Wikipedia) http://www.freestatistics.org/blog/index.php?v=date/2012/Mar/17/t13319893046hn3zdvecnwx7kw.htm/
Redundant Array of Independent Disks (RAID) Fault Tolerance: # schijven die mogen verwijderd worden zonder data verlies.
Inexpensive (oorspronkelijk)
Why RAID 6 stops working in 2019?
Probability of failure will increase due to increased HD complexity Stel n=45 => Space Efficiency=1-2/45=95,6% (voor RAID6) terwijl Space Efficiency=1-1/45=97,8% voor RAID5
(Wikipedia)
Obsolescence (Hardware)
Technical Technical obsolescence may occur when a new product or technology supersedes the old, and it becomes preferred to utilize the new technology in place of the old Functional Particular items may become functionally obsolete when they do not function in the manner that they did when they were created. This may be due to natural wear, or due to some intervening act. For example, if a new mobile phone technology is adopted, and there is no longer a provider who provides service based on the old technology, any mobile phone using that technology would be rendered obsolete due to the inability to access service. Planned Sometimes marketers deliberately introduce obsolescence into their product strategy, with the objective of generating long-term sales volume by reducing the time between repeat purchases. One example might be producing an appliance which is deliberately designed to wear out within five years of its purchase, pushing consumers to replace it within five years. Style When a product is no longer desirable because it has gone out of the popular fashion, its style is obsolete. Etc.
(ZDNet)
Other properties (Hardware + Software)
Performance is characterized by the amount of useful work accomplished by a computer system or computer network compared to the time and resources used (Wikipedia). Depending on the context, high computer performance may involve one or more of the following: short response time for a given piece of work, high throughput (rate of processing work), low utilization of computing resource(s), high availability of the computing system or application, fast (or highly compact) data compression and decompression, high bandwidth, short data transmission time
Scalability the ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth. For example, it can refer to the capability of a system to increase its total output under an increased load when resources (typically hardware) are added. (Bondi 2000; Wikipedia)
Reliability the ability of a system or component to perform its required functions under stated conditions for a specified period of time (Wikipedia).
Security is security applied to computing devices such as computers and smartphones, as well as computer networks such as private and public networks, including the whole Internet. The field includes all the processes and mechanisms by which digital equipment, information and services are protected from unintended or unauthorized access, change or destruction, and is of growing importance due to the increasing reliance of computer systems in most societies (The Australian).
Licensing
Open Source Software
Proprietary is software that is owned by an individual or a company (usually the one that developed it). There are almost always major restrictions on its use, and its source code is almost always kept secret.
Open Source is computer software with its source code made available with a license in which the copyright holder provides the rights to study, change and distribute the software to anyone and for any purpose.
Free(dom) Software / Libre Software is computer software that gives users the freedom to run the software for any purpose as well as to study, modify, and distribute the original software and the adapted versions.
Proprietary Software
Open Source Software
Free Software
Free Redistribution The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale. Source Code The program must include source code, and must allow distribution in source code as well as compiled form. Derived Works The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. Other specifications Integrity of the author's source code No discrimination against persons or groups
Freedom scale
No discrimination against fields of endeavor Distribution of License License must not be specific to a product License must not restrict other software
Free Software is not the same as freeware! Freeware is proprietary software that is offered for use, free of monetary charges (e.g. Acrobat Reader, Internet Explorer).
Free(dom) Software
License must be technology-neutral
Linus Torvalds
Free Software Business Model –Example
Freedom 0 The freedom to run the program as you wish, for any purpose Freedom 1 The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this Freedom 2 The freedom to redistribute copies so you can help your neighbor Freedom 3 The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Richard Stallman
Community-based Datasharing for Neuroscience
Hardware
Underlying principles:
Leverage existing hardware as much as possible Design storage solution:
Cheap Reliable Easy to build, deploy, maintain
Increase computing capacity (share hardware) Excellent security Respect Research Lab autonomy as much as possible (OS, applications, etc.) 16 MB Hard Disk
Random Access Memory (Hardware)
Vaststellingen:
Voldoende RAM geheugen is reeds aanwezig Indien een wachtrij wordt gebruikt, kunnen berekeningen sequentieel worden uitgevoerd Geen extra RAM nodig
Processoren en ondersteunende software (Hardware)
Byte Code & Virtual Machines (Hardware Abstraction)
Vaststellingen:
Moore’s law
Gevolgen:
Processors (Hardware)
Voldoende rekencapaciteit is reeds aanwezig Indien Research Labs hun hardware (rekentijd) delen dan verhoogt dit de totale capaciteit Processoren worden gestuurd door software. Maar niet elke machine heeft dezelfde software (besturingssysteem, analytische software)
Gevolgen:
Berekeningen moeten in een wachtrij worden geplaatst Een gemeenschappelijke statistische analysesoftware moet worden gebruikt (R programmeertaal)
Virtualization (Hardware Abstraction)
Virtualization (Hardware Abstraction)
Virtualization (Hardware Abstraction)
Android Architecture (Hardware Abstraction)
(Wikipedia)
Examples of Virtualization (Hardware Abstraction)
Smartphone:
Virtual Private Server (VPS) or Virtual Dedicated Server (VDS) Huge potential for CC
On-demand Servers:
VirtualBox
Remote Server:
Android apps (Dalvik VM)
Personal Computer:
Cloud Computing (Hardware)
Cloud Computing
These are not necessarily based on Virtualization:
Community-based (Grid) Computing Web Hosting Kundra (2011), Federal Cloud Computing Strategy
Cloud Computing (Hardware)
Costs of Cloud Computing (Hardware)
Online Calculators
Rackspace:
http://www.rackspace.com/cloud/cloud_hosting_products/sites/ pricing /
Amazon EC2:
http://calculator.s3.amazonaws.com/calc5.html
Case: Backblaze Storage Pods 4.0 (Hardware)
Case: Backblaze Storage Pods (Hardware) Custom-made rack-mountable 4U casings
4U casings
Consumer-grade disks in RAID6 configuration
http://blog.backblaze.com/2011/07/20/petabytes-on-a-budget-v2-0revealing-more-secrets/
Case: Backblaze Storage Pods (Hardware) The good news: storagepods can be purchased in the UK. All Research Labs already own rack-based Data Centers.
Hardware Technology
Backblaze Storage Pods + Existing Hardware from Research Lab:
Marktaandeel
TCO
Open Systems Interconnection model HTTP, HTTPS Persistence Assymmetric Cryptography FTP, FTPS Bittorrent IPv4, IPv6
Robustness (zeer goed) Form Factor + Scalability (zeer goed) Obsolescence (geen idee maar zeker niet slechter dan bestaande, business-grade hardware) Performance (zeer goed maar ook afhankelijk van rekencapaciteit)
Risico’s
Network Technology
Storage Pod: 9305 USD per toestel voor 180 TB (≈ 52 USD/TB; zeer goedkoop) Rack-mountable (4U) RAID6 (2 disk fault tolerance en 96% efficiëntie) Schijven zijn makkelijk vervangbaar
Eigenschappen
Relatief klein (er zijn enkele honderden klanten voor storage pods) Anderzijds is marktaandeel niet relevant omdat de blueprint (om storage pods zelf te bouwen vrij beschikbaar is)
Systeem (zeer robuust) Markt (klein omdat er grote concurrentie is in harde schijven) Toekomst (Zal Backblaze toekomstige designs gratis ter beschikking stellen? Masterproef voor ingenieur?)
Open Systems Interconnection model (Network Technology) Layer
Function
Example
Application
Protocol access by application
HTTP, FTP, SMTP, Firewall telnet, DNS, …
Management
Presentation
Data conversion, ASCII/EBCDIC, (de)compression, SSL, TLS encrypt/decrypt
Session
Start, stop RPC session. Maintain order.
Transport (socket)
Entire message delivery
TCP, UDP
Network (packets)
Path determination
Router, ICMP, IPv4, IPv6
Data Link (frames)
Physical addressing
MAC address
Physical
Medium, signal, transmission
UTP5 Cables, hubs, …
Digital Certificate Management
IPv4 -> IPv6
New cables
Hypertext Transfer Protocol (Network Technology)
HTTP functions as a request-response protocol in the client-server computing model. In HTTP, a web browser, for example, acts as a client, while an application running on a computer hosting a web site functions as a server. The client submits an HTTP request message to the server. The server, which stores content, or provides resources, such as HTML files, or performs other functions on behalf of the client, returns a response message to the client. A response contains completion status information about the request and may contain any content requested by the client in its message body. An HTTP session is a sequence of network request-response transactions. An HTTP client initiates a request by establishing a Transmission Control Protocol (TCP) connection to a particular port on a server (typically port 80; see List of TCP and UDP port numbers). An HTTP server listening on that port waits for a client's request message. Upon receiving the request, the server sends back a status line, such as "HTTP/1.1 200 OK", and a message of its own. The body of this message is typically the requested resource, although an error message or other information may also be returned.
HTTP Requests (Network Technology)
HTTP defines nine methods indicating the desired action to be performed on the identified resource. What this resource represents, whether pre-existing data or data that is generated dynamically, depends on the implementation of the server. Often, the resource corresponds to a file or the output of an executable residing on the server. HEAD asks for the response identical to the one that would correspond to a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content. GET requests a representation of the specified resource. Requests using GET should only retrieve data and should have no other effect. (This is also true of some other HTTP methods.) POST submits data to be processed (e.g., from an HTML form) to the identified resource. The data is included in the body of the request. This may result in the creation of a new resource or the updates of existing resources or both. PUT uploads a representation of the specified resource. DELETE deletes the specified resource. TRACE echoes back the received request, so that a client can see what (if any) changes or additions have been made by intermediate servers. OPTIONS returns the HTTP methods that the server supports for specified URL. This can be used to check the functionality of a web server by requesting '*' instead of a specific resource. CONNECT converts the request connection to a transparent TCP/IP tunnel, usually to facilitate SSLencrypted communication (HTTPS) through an unencrypted HTTP proxy. PATCH is used to apply partial modifications to a resource. HTTP servers are required to implement at least the GET and HEAD methods and, whenever possible, also the OPTIONS method.
(Wikipedia & w3c)
HTTP request & response (Network Technology)
Multiple versus Persistent Connections (Network Technology)
Note: the newly accepted HTTP 2.0 standard is more efficient and uses multiplexing and compression.
RFC gebruikt persistent connections behalve als de browser dit niet ondersteunt/wenst.
BitTorrent gebruikt multiple connections.
Public/Private Key Cryptography (Network Technology)
Mathematisch verband (Wikipedia) Private key kan niet zomaar worden bepaald a.d.v. public key.
Encrypted TCP Packets (Network Technology)
HTTPS Session (Network Technology)
Public/Private Keys & HTTPS (Network Technology)
Versleutelde Informatie wordt verstuurd
Identiteit van de Server wordt gecontroleerd
Nu is de client zeker dat de juiste/echte server een antwoord stuurt.
BitTorrent (Network Technology)
Torrent bestand downloaden (bevat Tracker informatie) Torrent bestand inlezen in BitTorrent software BitTorrent software legt connectie met Tracker Tracker geeft informatie over Peers BitTorrent software begint met down- en uploaden van fragmenten van het databestand
BitTorrent (Network Technology)
Seedbox a private or virtual dedicated server used for the uploading and downloading BitTorrent extensions
HTTPS Session Certifying Authority (= onafhankelijke derde partij) beheert & controleert public keys)
Datacommunicatie wordt vertraagd omdat de encryptie (relatief veel) rekentijd vergt en omdat de service van de CA wordt gebruikt.
FTP & SFTP (Network Technology)
Derden kunnen boodschap lezen maar niet begrijpen Integriteit van de Informatie wordt verzekerd
Encryption Anonymous Peers (with several in-between nodes) Peer exchange of meta data Etc.
Some (academic & commercial) ISPs restrict the use of BitTorrent.
IPv4 -> IPv6 (Network Technology)
File Transfer Protocol (over TCP) wordt gebruikt om bestanden (sequentieel) te lezen/schrijven => continue connectie is vereist, hoewel re-connect mogelijk is
=> Hardware and software must support IPv4 and IPv6.
Network Technology
Marktaandeel
Digitaal Certificaat (= jaarlijkse kost) Nieuwe “Tracker Software” ontwikkelen en onderhouden Support voor IPv4 en IPv6 Goede ondersteuning Storage pods van Backblaze gebruiken als Seedbox (bij voorkeur in elk Research Lab)
Eigenschappen
Zeer groot voor Bittorrent Normaal voor HTTPS Volwassen technologieën
TCO
Robustness (zeer goed) Form Factor (nvt) Scalability (zeer goed) Obsolescence (relatief stabiele technologie)
Risico’s
Systeem (BitTorrent is zeer robuust; Tracker kan uitvallen; web servers; denial-of-service aanval eerder onwaarschijnlijk) Markt (groot) Toekomst (Zullen academische ISPs BitTorrent toelaten? Wat met andere ISPs?)
“Old” Integration Technologies
Distributed Component Object Model (DCOM) = a proprietary Microsoft technology for communication among software components distributed across networked computers. Common Object Request Broker Architecture (CORBA) = standard defined by the Object Management Group that enables software components written in multiple computer languages and running on multiple computers to work together (i.e., it supports multiple platforms).
REpresentational State Transfer: REST (Integration Technology)
Architecture of Integration Technology by Roy Fielding (2000) Relies exclusively on HTTP
Difficulties involved in getting either of these, otherwise, superior technologies to work over Internet firewalls, and on unknown and insecure machines, meant that normal HTTP requests in combination with web browsers won out over both of them. => interoperability is, de facto, made impossible
SOAP RPC (Integration Technology)
Integration Technology
HTTPS & Bittorrent:
SOAP = Simple Object Access Protocol Exchanges structured information in the implementation of Web Services in computer networks. It relies on XML for its message format, and usually relies on other Application Layer protocols, most notably Hypertext Transfer Protocol (HTTP) and Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission. RPC = Remote Procedure Call
Voorbeelden in RFC (Integration Technology)
Tekstverwerker: gebruikt SOAP-RPC via TCP HTTP/GET en POST maar geen PUT of DELETE functie (dus geen RESTful web service):
Peer Review: enkel POST Statistische berekening: GET en POST Bloggen: GET en POST
Communicatie tussen servers: SOAP-RPC via HTTP
Integration Technology
Software
SOAP RPC:
Webservices ontwikkelen (via academische financiering) Installatie + documentatie (via academische financiering) Webservices onderhouden = relatief goedkoop
Integration (zeer goed) Interoperability (zeer goed) Compatibility (zeer goed) Portability (zeer goed)
Risico’s
Tracker Extend R Framework Administration
Eigenschappen
Zeer groot voor SOAP RPC REST is niet mogelijk omdat we niet uitsluitend HTTP gebruiken
TCO
Marktaandeel
Systeem () Markt (de facto standaard) Toekomst (webservices technologie is volop in ontwikkeling)
Marketshare of web servers (Software) Web servers handle HTTP(S) requests and forward them to other software components.
Computing Copying Sales Queue Etc.
Which development languages & environments should we use?
Web development (Software) Is well-supported by Apache webserver!
We have to develop web applications that work well under Apache’s webserver. PHP is a server-side scripting language. JavaScript works well on the client.
(netcraft.com)
Binary images (Software)
Code generation in RFC (Software)
PNG is well-supported by most browsers and uses a lossless compression algorithm.
R + meta data is automatically converted to R modules
par1 par1 <<- as.numeric(par1) as.numeric(par1) if if (par3 (par3 == == "TRUE") "TRUE") par3 par3 <<- TRUE TRUE if if (par3 (par3 == == "FALSE") "FALSE") par3 par3 <<- FALSE FALSE if if (par4 (par4 == == "Unknown") "Unknown") par1 par1 <<- as.numeric(par1) as.numeric(par1) if if (par4 (par4 == == "Interval/Ratio") "Interval/Ratio") par1 par1 <<- as.numeric(par1) as.numeric(par1) if if (par4 (par4 == == "3-point "3-point Likert") Likert") par1 par1 <<- c(1:3 c(1:3 -- 0.5, 0.5, 3.5) 3.5) if if (par4 (par4 == == "4-point "4-point Likert") Likert") par1 par1 <<- c(1:4 c(1:4 -- 0.5, 0.5, 4.5) 4.5) if if (par4 (par4 == == "5-point "5-point Likert") Likert") par1 par1 <<- c(1:5 c(1:5 -- 0.5, 0.5, 5.5) 5.5) if if (par4 (par4 == == "6-point "6-point Likert") Likert") par1 par1 <<- c(1:6 c(1:6 -- 0.5, 0.5, 6.5) 6.5) if if (par4 (par4 == == "7-point "7-point Likert") Likert") par1 par1 <<- c(1:7 c(1:7 -- 0.5, 0.5, 7.5) 7.5) if if (par4 (par4 == == "8-point "8-point Likert") Likert") par1 par1 <<- c(1:8 c(1:8 -- 0.5, 0.5, 8.5) 8.5) if (par4 == "9-point Likert") par1
> 50) 50) par1 par1 <<- 50 50 myhist<-hist(x,breaks=par1,col=par2,main=main,xlab=xlab,right=par3) myhist<-hist(x,breaks=par1,col=par2,main=main,xlab=xlab,right=par3) }} }} else else {{ plot(mytab plot(mytab <<- table(x),col=par2,main="Frequency table(x),col=par2,main="Frequency Plot",xlab=xlab,ylab="Absolute Plot",xlab=xlab,ylab="Absolute Frequency") Frequency") }} dev.off() dev.off() if(is.numeric(x[1])) if(is.numeric(x[1])) {{ myhist myhist n n <<- length(x) length(x) load(file="createtable") load(file="createtable") a<-table.start() a<-table.start() a<-table.row.start(a) a<-table.row.start(a) …. ….
• • • • • •
Blueprint of GUI R libraries Technical descriptions License License agreement agreement Author etc/.
R Framework Code processor
Automatic Code Generators (Software)
HTML5 versus Adobe Flash? (Software)
A similar scheme will be adopted for future development of web applications.
These are insecure and will be forced to upgrade soon. This is not a big deal…
…but this would be a huge deal. Apple could dump Flash support entirely when HTML5 matures.
iPads/iPhones are increasingly popular in academia and elsewhere. (html5portal.net)
Waarom HTML5 in RFC? (Software)
HTML5 is een webstandaard in wording
Niet één maar verschillende componenten In volle evolutie maar is bedoeld als opvolger van HTML4 Video en Audio worden (op dit ogenblik) beter ondersteund in Flash maar dit is geen prioriteit (screencasts via YouTube) User Interfaces van R modules worden aangemaakt door het R Framework. Ze kunnen ook worden gewijzigd in real time door gebruikers. Dit is met Flash quasi onmogelijk vanwege de restrictieve licentierechten. >8% van gebruikers (wessa.net) heeft geen flash ondersteuning We gebruiken enkel die elementen uit HTML5 die in alle (belangrijke) browsers (recente versies) even goed ondersteund worden. Adobe Flash is gesloten, HTML5 is open MathML kan worden gegenereerd vanuit LaTeX
Graphical User Interfaces & Usability (Software)
Simplicity
Vertical forms Thumbnails Code generators
Software Technology
(R + PHP voor Servers) + (HTML5 + CSS3 + JavaScript voor Clients):
Marktaandeel
TCO
HTML5 + CSS3 + JavaScript
Only few Integrated Development Environments available We need to develop code generators to enable automatic & real-time GUI creation User Interface should work with or without JavaScript
Free Software licenties (én bovendien gratis) Ontwikkeling (via academische financiering: zie ook Integration Technology)
Eigenschappen
Zeer groot Klein voor HTML5/CSS3 (maar wordt gezien als technologie van de toekomst)
Integration (zeer goed) Interoperability (zeer goed) Compatibility (zeer goed) Portability (zeer goed)
Risico’s
Systeem (gering) Markt (R en PHP zijn de facto standaarden) Toekomst (Wint Flash toch van HTML5?)
Open Source DBMS
Commercial & Open DBMS JSON (non-SQL type of DB)
marketshare
RDBMS commercial
Object-oriented RDBMS Fork van MySQL
DBMS ngrams
Oracle acquires Sun
MySQL
Overestimation
VirtualBox & VM Server
Oracle means something else here…
Zeer groot Gratis Goede ondersteuning Grote bekendheid Geen “exotische” implementatie van SQL Goede interface (phpMyAdmin)
Eigenschappen
TCO
http://www.mysql.com/tcosavings/
Marktaandeel
Integration (zeer goed) Interoperability (zeer goed) Compatibility (zeer goed) Portability (zeer goed) (http://wiki.postgresql.org/ wiki/Converting_from_other_Databases_to_PostgreSQL )
Risico’s
LibreOffice (=fork of OpenOffice) Brand “OpenOffice” now transferred to Apache Foundation
The Windows (r)evolvution (Operating Systems)
DMBS MySQL:
Continued support Integration with hardware and software
OpenOffice
Continued support Claims TCO is much lower http://www.mysql.com/tcosavings/
Systeem (zeer robuust) Markt (groot => commerciële incentive voor Oracle) Toekomst (Zal Oracle de ontwikkeling MySQL blijven ondersteunen?)
Closely linked to Personal Computers History of exclusivity deals (IBM) Pre-installed Strong ties to hardware manufacturers
Windows & Mac OS (Operating Systems)
Unix Family Tree (Operating Systems)
Microsoft’s visie is dat Windows bruikbaar is met elk type hardware Apple’s Mac OS mag enkel met Apple hardware gebruikt worden (hard- en software zijn op elkaar afgestemd) Beide hebben een lange geschiedenis en een aanzienlijk marktaandeel voor het personal computing segment.
MacOS & Linux (Operating Systems)
Smartphones (Operating Systems)
Opgelet: dit is in omzet gemeten
Smartphones (Operating Systems)
Smartphones (Operating Systems)
Het marktaandeel van het # verkochte eenheden ziet er anders uit. Indien we smartphone gebruikers willen ondersteunen, moeten we ons richten op Android en iOS.
(Wikipedia) Voorspellingen realistisch? Waarop gebaseerd?
Supercomputers (Operating Systems)
Software Development (Operating Systems)
Eclipse Foundation
Operating Systems
Mobile: Android (53%) > iOS > BlackBerry > Symbian > Windows
Operating Systems
Gnu/Linux (voor Servers), Windows+MacOS+iOS+Android+Linux+Unix (voor Clients):
Tablets:
iOS (58%) > Android (39%) > Windows (1,5%)
Desktop/Laptop/Netbook:
PC/Rack Servers:
Mainframe:
z/OS > U/Linux
Supercomputers: Linux (91,4%) > IBM AIX (5,6%) > Other Unix > Microsoft HPCS
Gratis licenties, open source Commerciële support indien gewenst (Canonical, Redhat)
Eigenschappen
Linux (64%) > Windows (36%)
Groot Geen OS-specifieke clients. Marktaandeel van Client OS is niet relevant omdat alle User Interfaces cross-platform kunnen werken (zie Software)
TCO
Windows (80%) > MacOS X (10%) > Linux (1%) Windows (70%) > MacOS X (21%) > Linux (3%)
Marktaandeel
Integration (zeer goed) Interoperability (zeer goed) Compatibility (zeer goed) Portability (zeer goed)
Risico’s
Systeem (gering) Markt (de smartphone en tablet markt is in volle evolutie) Toekomst (nieuwe client toestellen?)
(various sources)
Security
Software Defects
Software Defects SSL/TLS -> Network Technology SSH -> maintenance (Public/Private key cryptography) Multi-tier architecture Callback
149597/252010313 = 0.000593615
492578/684318640 = 0.000719808
Multi-tier system Client
HTTP(S)
Callback in RFC (Security) Web server
Presentation
Client
HTTP(S)
XML over HTTP(S), TCP/IP on LAN
Admin
SSH & public/private key
Application server
XML Presentation
Web server
HTTPS GET new_task.php?id=587 Application server
Business Logic
Business Logic
XML over HTTP(S), TCP/IP on LAN
Data Management
DB Server
DB
Callback in RFC (Security) Client
HTTP(S)
DB Server
DB
Callback in RFC (Security) XML Presentation
Web server
Data Management
Client
Connection remains open
HTTP(S)
XML Presentation
Web server
Connection remains open
Firewall Connection remains open
The Application Server calls back!
Data Management
HTTPS GET 587.xml
Application server
DB Server
DB
HTTP(S)
Web server
HTTPS response
Application server
Business Logic
Callback in RFC (Security) Client
Firewall Connection remains open
Data Management
XML
DB Server
Business Logic
DB
Callback in RFC (Security) XML Presentation
Connection remains open
Client
HTTP(S)
Web server
Presentation
Connection remains open
Delete or archive XML Connection remains open
Application server
Connection remains open
Application server
XML Business Logic
XML Business Logic Delete or archive XML
Another Callback could be used here
Secure connection Firewall
Data Management
DB Server
DB
Data Management
DB Server
DB
Callback in RFC (Security) HTTP(S)
Client
Callback in RFC (Security)
Web server
Client
Presentation
HTTPS response
Web server
Presentation
Connection remains open
Connection remains open
Binary Output
HTTPS response
Application server
Data Management
Binary Output
Business Logic
DB Server
DB
Callback in RFC (Security)
Data Management
Web server
Presentation
HTTPS GET + response Binary Output
Application server
Business Logic
Data Management
DB Server
Meta data over HTTPS
lab
lab lab
Bittorrent
Community-based Grid-like solution
Which protocol?
Do we build or rent the DC?
Companybased solution
IS Which OS?
1, 2, 3 Tiers? RAID0, 1, 5, or 6?
Physical or Virtual Computing?
Physical or Virtual Storage?
Cloud or Hardware Provider?
DB
Onmogelijk voor derden om opdrachten te sturen naar Application Server Onmogelijk om databank rechtstreeks te benaderen # Application Servers kan (zonder probleem) toenemen (= scalability) => soortgelijke oplossing voor Communitybased datasharing
Technology Portfolio (Summary)
Tracker + Request + Execute + Retrieve + Publish + Re-use Handling
IS
DB Server
DB
Which Technology Architecture? Minimum 2 seeders / dataset (~ RAID5) Minimum 3 seeders / dataset (~ RAID6)
Business Logic
Voordelen van Multi-Tier Callback in RFC
Client
Application server
Hardware: exisiting + Backblaze storage pods + VPS (Tracker and Administrative System) Network: HTTPS + BitTorrent Integration: SOAP RPC Software: R + PHP + HTML5 + CSS3 + JavaScript DBMS: MySQL OS of Tracker & Administrative System: Linux Security: Multi-Tier & Callback
Literature
Optional:
Mell & Grance (2011), NIST definition of Cloud Computing Kundra (2011), Federal Cloud Computing Strategy Goethals et al. (2007), The data building blocks of the enterprise architect
Required Reading:
Armbrust et al. (2010), A View of Cloud Computing Rosenthal et al. (2009), Cloud Computing: A new business paradigm for biomedical information sharing
Examen
Vragen:
Bespreek de algemene voor- en nadelen van Grid Computing en Cloud Computing indien men zeer grote hoeveelheden aan gegevens en informatie wil delen tussen verschillende organisaties. Motiveer uw antwoord op basis van Rosenthal et al. (2009) en/of Armbrust et al. (2010). Bespreek drie (relevante) technologische componenten m.b.t. de vorige vraag. Geef telkens een beschrijving van de technologie (in eigen woorden) en maak een verantwoorde keuze op basis van objectieve criteria. Leg de nadruk op de aspecten die betrekking hebben op veiligheid en kostprijs.
Examen
Vragen:
Beschrijf volgende concepten en geef telkens een voorbeeld: ●
●
Integration, Interoperability, Compatibility, Portability Capacity, Interoperability, Robustness, Form Factor, Obsolescence, RAID
●
Performance, Reliability, Scalability, Security
●
Virtual Machine / Hardware Abstraction
●
HTTP, HTTPS, Public/Private Key Cryptography, Bittorrent
●
SOAP RPC
●
Automatic Code Generation, HTML5
●
Multi-Tier System, Callback