VAR3 3.0 Platform and Project Orientation Analysis.

Slides:



Advertisements
Similar presentations
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Advertisements

Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Networked Application Architecture Design. Application Building Blocks Application Software Data Infrastructure Software Local Area Network Server Desktop.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
1 Operating System Overview. 2 Today’s Objectives Explain the main purpose of operating systems and describe milestones of OS evolution Explain fundamental.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Processes Introduction to Operating Systems: Module 3.
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
An Overview of Support of Small Embedded Systems with Some Recommendations Controls Working Group April 14, 2004 T. Meyer, D. Peterson.
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 Operating System Overview Tarek Abdelzaher Lawrence Angrave Vikram Adve.
CLIENT SERVER COMPUTING. We have 2 types of n/w architectures – client server and peer to peer. In P2P, each system has equal capabilities and responsibilities.
Application Sharing Bhavesh Amin Casey Miller Casey Miller Ajay Patel Ajay Patel Bhavesh Thakker Bhavesh Thakker.
Chapter 2, Operating System Structures
Introduction to Operating Systems Concepts
Computer System Structures
The Holmes Platform and Applications
OPERATING SYSTEM CONCEPTS AND PRACTISE
Operating System Overview
Operating System Structures
Kernel Design & Implementation
Chapter 1: Introduction
Operating System Structure
Chapter 9: The Client/Server Database Environment
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Chapter 2 Database Environment.
N-Tier Architecture.
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Chapter 2 Database System Concepts and Architecture
Key Ideas from day 1 slides
Computer Software Lecture 5.
Chapter 1: Introduction
Chapter 1: Introduction
Operating System Structure
Part 3 Design What does design mean in different fields?
The Client/Server Database Environment
The Client/Server Database Environment
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 1: Introduction
Design and Maintenance of Web Applications in J2EE
Chapter 2 Database Environment.
Chapter 2 Database Environment Pearson Education © 2009.
What is an Architecture?
Chapter 6 System and Application Software
Chapter 2: System Structures
Chapter 3: Operating-System Structures
Inventory of Distributed Computing Concepts
Chapter 1: Introduction
What is Concurrent Programming?
Analysis models and design models
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Chapter 7 –Implementation Issues
Chapter 1: Introduction
Chapter 1: Introduction
Principles of Programming Languages
What is an Architecture?
Chapter 1: Introduction
Chapter 6 System and Application Software
Chapter 1: Introduction
Chapter 6 System and Application Software
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 6 System and Application Software
Chapter 1: Introduction
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

VAR3 3.0 Platform and Project Orientation Analysis

Platform Comparison GNU Linux  Very robust OS that has it vendor (Unix) and open source version (Linux)  The drivers for hardware is generally develped by third party foundations and it’s open source.  There is a community of developers that use mail lists, wikis, and forums to share knowledge. Windows NT/XP  Very robust OS, the most used in the world.  The drivers for hardware is developed by the vendor of the hardware and usually gives technical support. The driver comes with the product.  There is too a community of product’s users that share knowledge.

Development Paradigms There are four main development paradigms  Functional: everything is a function  Logical: it depends on clauses and statements  Imperative: it has a linear execution of instructions  Object Orientation: the functions and attributes are encapsulated in objects, this it’s easier to perform abstraction

Paradigms comparison Imperative  C, Cobol, etc…  Its execution is quicker  The hardware integration is easier  It’s more flexible in memory management  Difficult maintenance Object Oriented  Small talk, C#, C++, Java  Can hide information to modules that don’t need it.  Allows abstraction of conceptual modules directly.

…and for VAR3 ?? Imperative paradigm  The imperative makes the abstraction and modularization difficult  The style is too monolithic.  Scalability and Maintenance becomes uncomfortable.  The migration to web applications is difficult Object Oriented Paradigm  Makes the abstraction and modularization easier  It has a distributed style  Scalability is more managable and with a good design the maintenance is a lot easier and secure.  It’s much easier to migrate to web application style.

…and for VAR3 ?? Imperative  Specifically in C. the DBUS it’s not scalable to a distributed system.  With DBUS the abstraction becomes difficult because it doesn’t integrate a lot of functionality. Object oriented  The Java virtual machine can manage using simple threads.  The java technology in this case can be useful to a programmer because of its high level of functional abstraction.

Costs Imperative-C  At first sight, keeping the code developed and continue from then is the lowest cost way in short term.  As it was explained, with this paradigm we have troubles with maintenance and scalability and in long term that costs a lot. O.O – Java  Changing the programming paradigm has more cost attached.  The design that we have now can be reused and expanded to O.O.  But in a long term vision the maintenance and scalability will make this inversion worthy.

Portability – cross platform ability Imperative – C  The c code can be compiled in other unix/linux systems. But there are conflicts with a lot of dependencies For example: even in the same windows platform the development environments have different ways of coding. Conflicts between linux distributions O.O. Java  The java virtual machine concept allows to run in a set of different architectures without recompiling.  The configuration changes that may be needed can be made with in the data base or xml config file context

Troubles found

What do we have now ? The sound is drove by Gstreamer The process are intercommunicated by DBUS The GPI/O card is drove by a driver developed for CTI. You can match a zone with a certain number of lines of the GPI/O card

Gstreamer performance The gstreamer framework, as is shown, loads the CPU in a unacceptable way. The recommendation is to avoid the usage of this framework

Gstreamer performance

Gstreamer The generated code doesn’t convey with the design and this brings a lot of high coupled code: each modification in one part implies modifications in many places and a lot of recompiling.

DBUS interprocess communication Doesn’t support a distributed paradigm It has a poor abstraction of a messaging schema The semantic becomes a programmer’s responsibility (work load) Expanding the system will be extremely difficult especially in a distributed scheme

Development documents In the company there was a lack of software development documents. There were no documents in these areas :  Specification  Design  Programming  Testing The wiki navegavility was a little uncomfortable There was no software development standard at all.

Data base right now SQLite3 Disadvantages  No security  No referential integrity  No stored procedures  No triggers

Good things found Audiopath design General Layer design Client scheme Backbone design VCP definition Embedded DB

NEW PROPOSAL

New horizons Adopt Object Oriented paradigm Cross-platform Java Virtual Machine There are some parallel issues: development methodology, and documentation schema. The audio path abstraction can be reused along with the scheduler logic, the admin and configuration logic. too

Very general overview

The layer design

Some protocols and interfaces must be supported by the new design Back End CTI AIP (Analog Interface Protocol) xDA old protocol (ASCII based) used for:  uDA  bbDA  cbDA  M4-bbDA  bbDA1094 SNMP for the new xDA technology Legacy drivers and protocols for some devices in use

Drivers and Protocols abstraction xDA device family example

Hardware Control Layer Design - a design oriented to the modularization

The factory knows what classes to instantiate

HW Control Layer Sequence Diagram

Data base server architecture Referential integrity Security Stored procedures Scalability -- MySQL (open source) Data base Proposal

Data Base Access Diagram

MySQL Cross platform: works in more than 30 platforms Big subset of ANSI SQL 99 Stored Procedures Triggers Views VARCHAR support Distributed transaction support Independent data engines (for quick read and transactions) SSL support

Documentation Schema Project specification Project plan Project time table  Work plan (MS Office Project) Requirements specification  Use cases diagrams (MS Office Visio)  Data base conceptual model (MS Office Visio) Detailed Design Tests Plan  Error Report (MS Office Excel)

Framework to use: SPRING By Rod Johnson Programming to interfaces rather than concrete classes The applications are not attached to the spring framework