Está en la página 1de 18

ACME Como ADL

U N I PA N A M E R I C A N A
Y E S I C A D A N I E L A VA R G A S E S P I T I A
Y D VA R G A S E @ U N I PA N A M E R I C A N A . E D U . C
O
•Es un lenguaje de intercambio de Arquitectura.

•El proyecto Acme comenzó a principios de 1995 en la


Escuela de Ciencias de la Computación de la
Universidad Carnegie Mellon (USA).

•Este proyecto se organiza en dos grandes grupos,


que son el lenguaje ACME propiamente dicho y el
Acme Tool Developers Library (AcmeLib).
Características

• Es útil por su capacidad de soportar el mapeo de


especificaciones arquitectónicas entre diferentes
ADLs.

• Orientado como un ADL que no es necesariamente


apto para cualquier clase de sistemas

• Es reconocido por su facilidad para describir con


facilidad sistemas relativamente simples.
Definición de estructura

• Se utilizan siete tipos de entidades:

• Componentes
• Conectores
• Sistemas
• Puertos
• Roles
• Representaciones
• Rep-mapas (mapas de representación)
Componentes

•Representan elementos computacionales y


almacenamientos de un sistema.

• Servidor de aplicaciones
• Base de datos relacional

•Un componente se define siempre dentro de una


familia de componentes
Interfaces

•Todos los ADLs soportan la especificación de


interfaces para sus componentes. En Acme cada
componente puede tener mútiples interfaces.

•Los puntos de interfaz se llaman puertos (ports)

•Los puertos pueden definir interfaces tanto simples


como complejas, desde una signatura de
procedimiento hasta una colección de rutinas a ser
invocadas en cierto orden, o un evento de multicast.
Conectores

•Acme modela sus conectores como entidades de


primera clase los cuales representan interacciones
entre componentes.
• Los conectores también tienen interfaces que
están definidas por un conjunto de roles.
• Los conectores binarios son los más sencillos.

–El invocador y el invocado de un conector RPC.


–La lectura y la escritura de un conector de tubería
–El remitente y el receptor de un conector de paso
de mensajes.
Semántica

•Muchos lenguajes de tipo ADL no modelan la


semántica de los componentes mas allá de sus
interfaces.

•En este sentido, Acme solo soporta cierta clase


de información semántica en listas de
propiedades. Estas propiedades no se interpretan,
y solo existen a efectos de documentación.
Definición de los componentes

• Se declaran tipos de componente que permiten


establecer la estructura requerida por el tipo. Esta
estructura se define mediante la misma sintaxis que la
instancia de un componente.

Component Client = {
Port sendRequest = {}
}
Definición de jerarquías de tipos

• Se extiende el tipo básico de filtro con una subclase


(herencia). Las instancia de WindowsFilterT tendrá
todas las propiedades y puertos de las instancias de
FilterT, más un puerto stderr y una propiedad
implementationFile.

Component Type WindowsFilterT extends FilterT


with { Port stderr;
Property implementationFile : String;
};
Definición de otros componentes

• Se declara el tipo de conector de tubería. Igual


que los tipos de componente, un tipo de conector
también describe la estructura requerida.

Connector PipeT = {
role = source{}
role = sink{}
Property bufferSize : int;
Ejemplo de un ADL (ACME)

rpc
client server
caller callee
send-request receive-request
Interfaces gráficas para ACME

• AcmeStudio: Entorno gráfico basado en Windows,


susceptible de ser configurado para soportar
visualizaciones específicas de estilos e invocación
de herramientas auxiliares.
• Armani: Utiliza Microsoft Visio como front-end y un
back-end Java, puede usar Microsoft Visual de .NET.
Armani no es un entorno redundante sino, por detrás
es un lenguaje de restricciones que extiende Acme
basándose en lógica de predicados de primer orden, y
que es por tanto útil para definir estilos.
• Un tercer ambiente, más experimental,
diseñado en ISI, utiliza sorprendentemente
el editor de PowerPoint para manipulación
gráfica acoplado con analizadores que
reaccionan a cambios de una
representación DCOM de los elementos
arquitectónicos y de sus propiedades
asociadas.
Herramientas

• Acme Estudio (ACME):


– Implementado como un
plugin de Eclipse para
portabilidad y extensibilidad
– Disponible para Windows,
Linux y Mac OS-X.
Representación gráfica:
Top Level (Partial System)
Nivel más interno
(conf y ord)
Nivel Communication
System

También podría gustarte