CAPÍTULO Marco Teórico

21
20 CAPÍTULO 2 Marco Teórico

Transcript of CAPÍTULO Marco Teórico

Page 1: CAPÍTULO Marco Teórico

20

CAPÍTULO 2

Marco Teórico

Page 2: CAPÍTULO Marco Teórico

21

2 Marco Teórico

2.1 Ingeniería de software

“El objetivo principal es convertir el desarrollo de software en un proceso formal,

con resultados predecibles, que permitan obtener un producto final de alta calidad y

satisfaga las necesidades y expectativas del cliente. La Ingeniería de Software es un

proceso intensivo de conocimiento, que abarca la captura de requerimientos, diseño,

desarrollo, prueba, implantación y mantenimiento. -Gacitúa (2003)” [1]

“Para muchas personas el software son solo programas de computadora, sin

embargo nos comenta que son todos aquellos documentos asociados a la

configuración de datos que se necesitan para hacer que estos programas operen de

manera adecuada. - Somerville (2005)”. [2]

Generalmente a partir de un complejo esquema de comunicación en el que

interactúan usuarios y desarrolladores, el usuario brinda una concepción de la

funcionalidad esperada y el desarrollador especifica esta funcionalidad a partir de esta

primera concepción mediante aproximaciones sucesivas. Este ambiente de interacción

motiva la búsqueda de estrategias robustas para garantizar que los requisitos del

usuario serán descubiertos con precisión y que además serán expresados en una

forma correcta y sin ambigüedad, que sea verificable, trazable y modificable. [3]

El término ingeniería del software empezó a usarse a finales de la década de

los sesenta, para expresar el área de conocimiento que se estaba desarrollando en

torno a las problemáticas que ofrecía el software. En esa época, el crecimiento

espectacular de la demanda de sistemas de computación cada vez más y más

complejos, asociado a la inmadurez del propio sector informático (totalmente ligado al

electrónico) y a la falta de métodos y recursos, provocó lo que se llamó la crisis del

software. Durante esa época muchos proyectos importantes superaban con creces los

presupuestos y fechas estimados. La crisis del software finalizó pues se comenzó a

progresar en los procesos de diseño y metodologías. [3]

Page 3: CAPÍTULO Marco Teórico

22

2.2 Desarrollo de software.

El Proceso para el desarrollo de software, también denominado ciclo de vida del

desarrollo de software es una estructura aplicada al desarrollo de un producto de

software. Hay varios modelos a seguir para el establecimiento de un proceso para el

desarrollo de software, cada uno de los cuales describe un enfoque diferente para

diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran

un modelo de ciclo de vida un término más general que un determinado proceso para

el desarrollo de software. [4]

Desarrollar un software significa construirlo simplemente mediante su

descripción. Está es una muy buena razón para considerar la actividad de desarrollo

de software como una ingeniería. En un nivel más general, la relación existente entre

un software y su entorno es clara ya que el software es introducido en el mundo de

modo de provocar ciertos efectos en el mismo. [4]

Aquellas partes del mundo que afectarán al software y que serán afectadas por

él será el Dominio de Aplicación. Es allí donde los usuarios o clientes observarán si el

desarrollo del software ha cumplido su propósito. [5]

Una de las mayores deficiencias en la práctica de construcción de software es

la poca atención que se presta a la discusión del problema. En general los

desarrolladores se centran en la solución dejando el problema inexplorado. El

problema a resolver debe ser deducido a partir de su solución. [6]

Esta aproximación orientada a la solución puede funcionar en campos donde

todos los problemas son bien conocidos, clasificados e investigados, donde la

innovación se ve en la detección de nuevas soluciones a viejos problemas. [6]

Pero el desarrollo de software no es un campo con tales características. La

versatilidad de las computadoras y su rápida evolución hace que exista un repertorio

de problemas en constante cambio y cuya solución software sea de enorme

importancia. [7]

Page 4: CAPÍTULO Marco Teórico

23

2.3 Sistema de control

Es un conjunto de dispositivos encargados de administrar, ordenar, dirigir o

regular el comportamiento de otro sistema, con el fin de reducir las probabilidades de

fallo y obtener los resultados deseados. Por lo general, se usan sistemas de control

industrial en procesos de producción industriales para controlar equipos o máquinas.

Objetivos

Los sistemas de control deben conseguir los siguientes objetivos:

Ser estables y robustos frente a perturbaciones y errores en los modelos.

Ser eficiente según un criterio preestablecido evitando comportamientos

bruscos e irreales.

Necesidades de la supervisión de procesos

Limitaciones de la visualización de los sistemas de adquisición y control.

Control vs Monitoreo Del Proceso

Control software. Cierre de lazo de control.

Recoger, almacenar y visualizar información.

Minería de datos.

2.3.1Sistema

Conjunto de elementos unidos y en interacción. Un sistema no necesariamente

es físico y puede aplicarse a fenómenos abstractos y dinámicos, tales como los que

se encuentran en economía. Por tanto, la palabra sistema debe interpretarse como

una implicación de sistemas físicos, biológicos, económicos y similares. [7]

2.3.2 Control

Selección de las entradas de un sistema de manera que los estados o salidas

cambien de acuerdo a una manera deseada. Los elementos Son: [8]

Siempre existe para verificar el logro de los objetivos que se establecen en la

planeación.

Medición. Para controlar es imprescindible medir y cuantificar los resultados.

Page 5: CAPÍTULO Marco Teórico

24

2.4 Proceso

Operación o desarrollo natural progresivamente continúo, marcado por una

serie de cambios graduales que se suceden uno al otro en una forma relativamente

fija y que conducen a un resultado o propósito determinados. Operación artificial o

voluntaria progresiva que consiste en una serie de acciones o movimientos

controlados, sistemáticamente dirigidos hacia un resultado o propósito determinados.

[9]

2.5 Estructuras de un programa

Un programa se va a dividir en 3 partes claramente diferenciadas: [10]

procesos de entrada

proceso de datos

procesos de salida

Todo programa está constituido por un conjunto de instrucciones capaces de

gestionar un conjunto de datos.

2.6 Puertos

En informática, un puerto es una interfaz a través de la cual se pueden enviar y

recibir los diferentes tipos de datos.

Son conectores integrados en tarjetas de expansión o en la tarjeta principal

"Motherboard" de la computadora; diseñados con formas y características electrónicas

especiales, utilizados para interconectar una gran gama de dispositivos externos con

la computadora, es decir, los periféricos. Varía la velocidad de transmisión de datos y

la forma física del puerto acorde al estándar y al momento tecnológico. [11]

2.7 Puertos COM

Un puerto COM es un puerto serial en una computadora, que es una ranura que

permite que los dispositivos periféricos como un ratón o un módem se conecten a la

computadora a través de un cable. Han sido reemplazados por los pequeños

Page 6: CAPÍTULO Marco Teórico

25

conectores USB (Universal Serial Bus). Las computadoras más nuevas no tienen

puerto COM. En su lugar, se conectan con los periféricos a través del puerto USB.

2.8 Puertos USB

Por sus siglas en ingles “Universal Serial Bus” es una conexión mediante cables,

conectores para conectar, comunicar y proveer de alimentación eléctrica entre

computadoras, periféricos y dispositivos electrónicos.

El USB es utilizado como conexión estándar de periféricos como son los teclados,

ratones, memorias USB, escáneres, teléfonos móviles, impresoras etc.

Figura 4 Icono representativo de USB

Page 7: CAPÍTULO Marco Teórico

26

2.9 Metodologías

“La metodología es el estudio, descripción, explicación y justificación de los

métodos y no los métodos en sí mismos. – KAPLAN”

Es un conjunto de técnicas o procedimientos específicos que se emplean en una

ciencia; que entenderla como descripción, explicación y justificación de los métodos

en general.

Una metodología de programación es un conjunto o sistema de métodos,

principios y reglas que permiten enfrentar de manera sistemática el desarrollo de un

programa que resuelve un problema algorítmico. Estas metodologías generalmente se

estructuran como una secuencia de pasos que parten de la definición del problema y

culminan con un programa que lo resuelve.

La metodología debe ajustarse a los objetivos, cada aproximación al desarrollo

de software está basada en unos objetivos, por lo tanto la metodología debe recoger

el aspecto filosófico de la aproximación deseada.

La metodología debe de cubrir todo el ciclo de desarrollo de software; investigación,

análisis de requerimientos y diseño. [12]

Page 8: CAPÍTULO Marco Teórico

27

2.9.1 Modelo en Cascada

El modelo en cascada también conocido como Ciclo de vida del software es el

más básico de todos los modelos y han servido como bloque de construcción para los

demás paradigmas de ciclo de vida. Este modelo permite organización en el desarrollo

del software a través de sus características etapas, esto quiere decir que cuando se

esté llevando a cabo alguna tarea pertinente dentro de esa etapa, no se podrá avanzar

a la siguiente hasta terminar con todas las tareas especificadas. Lamentablemente el

uso de este modelo del desarrollo del software pone en jaque la integridad mientras se

construye el sistema, ya que si se falla en una etapa, se ve obligado a reiniciar

prácticamente el proceso de construcción. [13]

Etapas

Figura 5 Diagrama de etapas del modelo en cascada

Page 9: CAPÍTULO Marco Teórico

28

2.9.2 Prototipos

Este modelo permite que todo el sistema se construyan rápidamente para así

poder comprender fácilmente y aclarar ciertos aspectos en lo que se aseguren que el

desarrollo, el usuario o el cliente estén de acuerdo en lo que se necesita así como

también plantear una solución para dicha necesidad y de esta manera poder minimizar

el riesgo y la incertidumbre en el desarrollo del sistema. El modelo Prototipos se

encarga del desarrollo de diseños para que puedan ser analizados a medida que

adhieran nuevas especificaciones. [14]

Este modelo se aplica cuando el cliente define los objetivos para el software sin

delimitar los requisitos de entrada y salida de datos.

Etapas

Figura 6 Diagrama de etapas de la metodología prototipos

Page 10: CAPÍTULO Marco Teórico

29

2.9.3 Incremental

El modelo incremental combina elementos del modelo lineal secuencial con la

filosofía interactiva de construcción de prototipos, aplica secuencias lineales de forma

escalonada mientras progresa el tiempo en el calendario. Consiste en el desarrollo de

la arquitectura completa del sistema, seguido de sucesivos incrementos funcionales.

Cada incremento tiene su propio ciclo de vida y se basa en el anterior. [15]

Surgió como una forma de reducir la repetición del trabajo en el desarrollo de

sistema y dar la oportunidad de retrasar la toma de decisiones en los requisitos.

El modelo es de naturaleza interactiva brindando al final de cada incremento la

entrega de un producto operacional. Este modelo es particularmente útil cuando no se

cuenta con una colaboración de personal suficiente.

Figura 7 Diagrama de etapas del modelo incremental

Page 11: CAPÍTULO Marco Teórico

30

2.10 Metodologías agiles

Las metodologías que se consideran ágiles cumplen con el manifiesto ágil que no es

más que una serie de principios que se agrupan en 4 valores: [16]

o Los individuos y su interacción, por encima de los procesos y las herramientas.

o El software que funciona, frente a la documentación exhaustiva.

o La colaboración con el cliente, por encima de la negociación contractual.

o La respuesta al cambio, por encima del seguimiento de un plan.

A continuación se muestran las metodologías agiles más usadas en el desarrollo de

software.

2.10.1 Scrum

Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un

marco para la gestión de proyectos, que se ha utilizado con éxito durante los últimos

10 años. Está especialmente indicada para proyectos con un rápido cambio de

requisitos.

Características

o El desarrollo de software se realiza mediante iteraciones, denominadas sprints,

con una duración de 30 días. El resultado de cada sprint es un incremento

ejecutable que se muestra al cliente.

o Las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15

minutos del equipo de desarrollo para coordinación e integración.

Scrum es un proceso en el que se aplican un conjunto de buenas practica para el

trabajo colaborativo, en equipo y obtener resultados posibles de un proyecto; estas

prácticas se tienen que apoyar una tras otra y su selección tiene origen en un estado

de la manera de trabajar en equipo.

Es un marco de trabajo que nos proporciona una serie de herramientas y roles

para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.

Page 12: CAPÍTULO Marco Teórico

31

En Scrum se realizan entregan parciales del producto final, por lo tanto, está

especialmente indica donde se necesitan obtener resultados pronto, donde los

requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la

flexibilidad y la productividad son fundamentales.

Scrum también se utiliza para resolver situaciones en que no se está entregando

al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se

disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante

la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es

necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere

trabajar utilizando un proceso especializado en el desarrollo de producto.

Figura 8 Diagrama de trabajo del método SCRUM

Page 13: CAPÍTULO Marco Teórico

32

2.11 Análisis

El analista se pone en contacto con la empresa para ver cómo está conformada,

a que se dedica, saber todas las actividades que realiza en sí, conocer la empresa de

manera general para posteriormente ver cuáles son sus necesidades o requerimientos

que la empresa tiene en ese momento para poder realizar un análisis de la misma. [17]

2.12 Diseño

Aquí entran todo el diseño del sistema es decir las pantallas, base de datos,

todo esto debe de cumplir con ciertos estándares los cuales se toman en cuenta para

poder desarrollar el diseño con calidad y así poder ofrecer un diseño amigable en

cuestión de colores, tamaños de botones, cajas de texto, etc.

Para implementar el proceso de diseño de sistemas hay que tener siempre en

cuenta los efectos que pueda ocasionar el nuevo sistema sobre el entorno en el que

deba funcionar, adecuando los criterios de diseño a las características del mismo. En

este contexto está adquiriendo una importancia creciente la adaptación de todo

sistema-producto a las capacidades de las personas que van a utilizarlo, de forma que

su operación sea sencilla, cómoda, efectiva y eficiente.

De estas cuestiones se ocupa una disciplina, la ergonomía, que tiene por objeto

la optimización de los entornos hombre-máquina. Si bien en un principio estaba

centrada en los aspectos antropométricos de la relación hombre-máquina, en la

actualidad ha pasado a intervenir con fuerza en todos los procesos cognitivos (análisis,

de menús, formato de iconos, nombres de comandos, control de cursores, tiempos de

respuesta, manejo de errores, estructuras de datos, utilización de lenguaje natural, etc.

2.13 Pruebas

Es donde al sistema se pone a prueba como su palabra lo dice para así poder

saber cuáles son los posibles errores que se están generando del sistema y con ello

mejorarlo para eliminar todos los errores que se puedan presentar porque un programa

con menores errores mayor calidad puede llegar a tener.

Page 14: CAPÍTULO Marco Teórico

33

2.14 Instalación

una vez realizado las pruebas correspondientes al sistema y haberlo corregido

totalmente se procede a la instalación del mismo ya en la empresa para su uso

correspondiente, todo con la finalidad de que los procesos se realicen de una manera

más eficiente eliminando costos, tiempo y esfuerzo dentro de la organización.

2.15 Herramientas.

Para el desarrollo de Secure Access se pretenden utilizar diferentes

herramientas. Existen diferentes lenguajes de programación c, c++, Java, c# etc. Para

este proyecto te opto por implementar el lenguaje c# por la cantidad de ventajas que

se obtienen.

Ventajas

Declaraciones en el espacio de nombres: al empezar a programar algo, se

puede definir una o más clases dentro de un mismo espacio de nombres.

Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos

que los que se encuentran en C, C++ o Java.

Atributos: cada miembro de una clase tiene un atributo de acceso del tipo

público, protegido, interno, interno protegido y privado.

Propiedades: un objeto tiene intrínsecamente propiedades, y debido a que las

clases en C# pueden ser utilizadas como objetos, C# permite la declaración de

propiedades dentro de cualquier clase.

Inicializador: un inicializador es como una propiedad, con la diferencia de que

en lugar de un nombre de propiedad, un valor de índice entre corchetes se utiliza

en forma anónima para hacer referencia al miembro de una clase.

Control de versiones: C# permite mantener múltiples versiones de clases en

forma binaria, colocándolas en diferentes espacios de nombres. Esto permite

que versiones nuevas y anteriores de software puedan ejecutarse en forma

simultánea.

Page 15: CAPÍTULO Marco Teórico

34

2.15.1 Lenguaje de programación C Sharp

Es un lenguaje de programación orientado a objetos desarrollado y

estandarizado por Microsoft como parte de su plataforma .NET, que después fue

aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es

uno de los lenguajes de programación diseñados para la infraestructura de lenguaje

común. [18]

Historia

Durante el desarrollo de la plataforma .NET, las bibliotecas de clases fueron

escritas originalmente usando un sistema de código gestionado llamado Simple

Managed C (SMC). En enero de 1999, Anders Hejlsberg formó un equipo con la misión

de desarrollar un nuevo lenguaje de programación llamado Cool (Lenguaje C orientado

a objetos). Este nombre tuvo que ser cambiado debido a problemas de marca,

pasando a llamarse C#.3 La biblioteca de clases de la plataforma .NET fue migrada

entonces al nuevo lenguaje. Hejlsberg lideró el proyecto de desarrollo de C#.

Anteriormente, ya había participado en el desarrollo de otros lenguajes como Turbo

Pascal, Delphi y J++. [18]

Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus

siglas en inglés) para sistemas operativos Windows. Soporta varios lenguajes de

programación tales como Visual C++, Visual C#, Visual J#, y Visual Basic .NET, al

igual que entornos de desarrollo web como ASP.NET. [18]

Page 16: CAPÍTULO Marco Teórico

35

2.15.2 Visual Studio

Microsoft Visual Studio es un entorno de desarrollo integrado (IDE) de Microsoft.

Se utiliza para el desarrollo de programas para Microsoft Windows, así como los sitios

web, aplicaciones web y servicios web. Visual Studio utiliza plataformas de desarrollo

de software de Microsoft, tales como API de Windows, Windows Forms, Windows

Presentation Foundation, Windows Store y Microsoft Silverlight. [19]

Visual Studio incluye un editor de código de soporte así como código de

refactorización. El depurador funciona tanto como un depurador a nivel de fuente y un

depurador a nivel de máquina. Otras herramientas integradas incluyen un diseñador

de formularios para la construcción GUI aplicaciones, diseñador de páginas web,

diseño de clases y esquema de base de diseño. Acepta plug-ins que mejoran la

funcionalidad en casi todos los niveles, incluyendo la adición de soporte para el control

de origen los sistemas y la adición de nuevos conjuntos de herramientas como editores

y diseñadores visuales para lenguajes específicos de dominio o conjuntos de

herramientas para otros aspectos del ciclo de vida de desarrollo de software. [19]

Visual Studio es compatible con diferentes lenguajes de programación y permite

que el editor de código y el depurador sea compatible con casi cualquier lenguaje de

programación, siempre que exista un servicio específico del idioma. Construido en

idiomas incluyen C, C ++ y C ++ / CLI (a través de Visual C ++), VB.NET, C # a través

de Visual C #, y F # a partir de Visual Studio 2010. Soporte para otros idiomas como

M, Python, y Rubí entre otros está disponible a través de los servicios de idiomas

instalados por separado. También es compatible con XML / XSLT, HTML / XHTML,

Javascript y CSS. Java (y J #) se apoyaron en el pasado.[19]

Visual Studio permite a los desarrolladores crear aplicaciones, sitios y

aplicaciones web, así como servicios web en cualquier entorno que soporte la

plataforma .NET Así se pueden crear aplicaciones que se intercomuniquen entre

estaciones de trabajo, páginas web y dispositivos móviles.

Microsoft Visual Studio es una colección completa de herramientas y servicios

para desarrollar aplicaciones para equipos de escritorio, la Web, dispositivos y la nube.

Tanto si va a crear su primera aplicación para la Tienda Windows como si va a compilar

Page 17: CAPÍTULO Marco Teórico

36

un sitio web compatible con los últimos exploradores, puede aprovechar los

conocimientos que ya tiene con el entorno de desarrollo vanguardista que ofrece Visual

Studio para lenguajes .NET, HTML/JavaScript y C++. Para aquellos equipos que

trabajen en varias plataformas, Visual Studio proporciona un entorno de colaboración

flexible que permite conectar con otras herramientas de desarrollo, como Eclipse y

Xcode. [19]

Tipos de Visual Studio

VISUAL STUDIO 6.0

VISUAL STUIDO .NET 2002

VISUAL STUDIO 2003

VISUAL STUDIO 2005

VISUAL STUDIO 2008

VISUAL STUDIO 2010

VISUAL STUDIO 2012

VISUAL STUDIO 2013

VISUAL STUDIO 2014

VISUAL STUDIO 2015

Figura 9 Logo de Visual Studio

Page 18: CAPÍTULO Marco Teórico

37

2.15.3 DevExpress

DevExpress es un empresa de desarrollo de software fundada en 1998 con

sede en Glendale, California. DevExpress inicialmente comenzó a producir controles

de interfaz de usuario para Borland Delphi / C ++ Builder y ActiveX Controls para

Microsoft Visual Studio. Actualmente, DevExpress tiene productos dirigidos a los

desarrolladores que utilizan Delphi / C ++ Builder, Visual Studio y HTML5 / JavaScript

tecnologías. [20]

La línea de productos DevExpress incluye lo siguiente:

Windows Forms suscripción - interfaz de usuario para Windows Forms.

Suscripción ASP.NET - UI Controls para ASP.NET y ASP.NET MVC.

WPF subscription - UI Controls para Windows Presentation Foundation (WPF).

Silverlight suscripción - Controles de interfaz de usuario para Microsoft

Silverlight.

Ventanas Suscripción 8 XAML - UI Controls para Windows RT.

Informes suscripción -. Informes congregada y procesador de texto de software

de informes basada en Microsoft Visual Studio Desarrolladores

Document Server - .NET Framework para el procesamiento de archivos de XLS,

DOC, RTF, ZIP.

DevExtreme móvil - HTML5 y JavaScript basadas en aplicaciones que permite

generar aplicaciones nativas para smartphones y tablets (Windows Phone, iOS

y Android.)

CodeRush - Microsoft Visual Studio Add-ins.

Figura 10 Logo de DevExpress

Page 19: CAPÍTULO Marco Teórico

38

2.15.4 MySQL

Es un sistema para la administración de bases de datos relacionales (RDBMS),

rápido y sólido. Las bases de datos permiten almacenar, buscar, ordenar y recuperar

datos de manera eficiente. El servidor de MySQL controla el acceso a los datos para

garantizar el uso simultáneo de varios usuarios, para proporcionar acceso a dichos

datos y para asegurarse de que sólo obtienen acceso a ellos los usuarios con

autorización. Por lo tanto MySQL, es un servidor multiusuario y de subprocesamiento

múltiple. Utiliza SQL (del inglés Structured Query Languaje, Lenguaje de Consulta

Estructurado), el lenguaje para la consulta de bases de datos utilizado mundialmente.

MySQL se distribuye bajo un sistema de licencias dual. Se puede utilizar bajo

una licencia de código abierto (GPL), que es gratuita mientras se cumplan las

condiciones de la misma. Si se desea distribuir una aplicación que no sea GPL y que

incluye MySQL, se puede adquirir una licencia comercial.

Figura 11 Logo de MySQL

Page 20: CAPÍTULO Marco Teórico

39

2.15.5 Relevador

Es un dispositivo electromagnético. Funciona como un interruptor controlado

por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se

acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos

eléctricos independientes. [21]

Funcionamiento

El electro imán hace girar la armadura verticalmente al ser alimentada, cerrando

los contactos dependiendo de si es N.A o N.C (normalmente abierto o normalmente

cerrado). Si se le aplica un voltaje a la bobina se genera un campo magnético, que

provoca que los contactos hagan una conexión. Estos contactos pueden ser

considerados como el interruptor, que permite que la corriente fluya entre los dos

puntos que cerraron el circuito. [21]

Figura 12 Diseño de un relevador electrónico

Page 21: CAPÍTULO Marco Teórico

40

2.15.6 Cámara IP

Una Cámara IP (también conocidas como cámaras Web o de Red) son

videocámaras especialmente diseñadas para enviar las señales (video, y en algunos

casos audio) a través de Internet desde un explorador (por ejemplo el Internet Explorer)

o a través de concentrador (un HUB o un SWITCH) en una Red Local (LAN). [22]

En las cámaras IP pueden integrarse aplicaciones como detección de presencia

(incluso el envío de mail si detectan presencia), grabación de imágenes o secuencias

en equipos informáticos (tanto en una red local o en una red externa (WAN), de manera

que se pueda comprobar por qué ha saltado la detección de presencia y se graben

imágenes de lo sucedido. [22]

Figura 13 Cámara de video por IP