<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kamala</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kamala"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Kamala"/>
		<updated>2026-04-28T17:44:51Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU&amp;diff=3056</id>
		<title>EMU</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU&amp;diff=3056"/>
				<updated>2006-05-25T19:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kamala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Image:emu_logo_01.png|right|frame| EMUs: Eiffel Multi Users]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Name==&lt;br /&gt;
EMU stands for '''Eiffel Multi User'''.&lt;br /&gt;
==Goal==&lt;br /&gt;
The aim of this project is to integrate a simple repository functionality into EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Software Requirements Specification=&lt;br /&gt;
You can find our SRS [[EMU/SRS|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-emu@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
* wiki page up to date&lt;br /&gt;
* everyone managed to compile Eiffelstudio&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd==&lt;br /&gt;
* define EMU-Protocol as completely as possible&lt;br /&gt;
&lt;br /&gt;
==M3: May 23rd==&lt;br /&gt;
* emu-server prototype&lt;br /&gt;
* server-administration application&lt;br /&gt;
&lt;br /&gt;
==M4: May 30th==&lt;br /&gt;
* new EMU project wizard&lt;br /&gt;
* project-management tool: EMU Project Settings&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-emu es-emu@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Barnski| Bernhard Buss]] (project leader)&lt;br /&gt;
* [[User:Zandrea| Andrea Zimmermann]]&lt;br /&gt;
* [[User:Kamala| Claudia Kuster]]&lt;br /&gt;
* [[User:sdomenic| Domenic Schröder]]&lt;br /&gt;
* [[User:luc3D| Lucien Hansen]]&lt;br /&gt;
* [[User:ramons| Ramon Schwammberger]]&lt;br /&gt;
* [[User:Trickli| Tobias Rickli]]&lt;br /&gt;
* [[User:classens| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Kamala</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU/Protocol&amp;diff=3055</id>
		<title>EMU/Protocol</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU/Protocol&amp;diff=3055"/>
				<updated>2006-05-25T19:43:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kamala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:emu_logo_03.png|right|frame| EMUs: Eiffel Multi Users]]&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
Messages are encapsulated within objects that are being transmitted over the network.&lt;br /&gt;
All messages inherit from EMU_MESSAGE.&lt;br /&gt;
&lt;br /&gt;
====Client====&lt;br /&gt;
* login&lt;br /&gt;
 version&lt;br /&gt;
 projectname&lt;br /&gt;
 username&lt;br /&gt;
 password&lt;br /&gt;
&lt;br /&gt;
* update_request&lt;br /&gt;
 wants to receive new files&lt;br /&gt;
&lt;br /&gt;
* unlock_request&lt;br /&gt;
 wants to edit a code chunk&lt;br /&gt;
&lt;br /&gt;
* upload_chunk&lt;br /&gt;
 upload an edited chunk&lt;br /&gt;
&lt;br /&gt;
* relock_request&lt;br /&gt;
 wants to end locking session&lt;br /&gt;
&lt;br /&gt;
* lock_status_request&lt;br /&gt;
 get information about all classes&lt;br /&gt;
&lt;br /&gt;
* online_status_request&lt;br /&gt;
 get information about online users&lt;br /&gt;
&lt;br /&gt;
* logout&lt;br /&gt;
 informs about a logout of the client&lt;br /&gt;
&lt;br /&gt;
====Server====&lt;br /&gt;
* login_accepted&lt;br /&gt;
&lt;br /&gt;
* login_denied			&lt;br /&gt;
&lt;br /&gt;
* update&lt;br /&gt;
 class files&lt;br /&gt;
&lt;br /&gt;
* unlock_request_granted&lt;br /&gt;
 checks status&lt;br /&gt;
 sets status&lt;br /&gt;
&lt;br /&gt;
* unlock_request_denied&lt;br /&gt;
 status information&lt;br /&gt;
&lt;br /&gt;
* lock_status&lt;br /&gt;
 send status information of all classes&lt;br /&gt;
&lt;br /&gt;
* online_status&lt;br /&gt;
 send status of users online&lt;br /&gt;
&lt;br /&gt;
* server_down&lt;br /&gt;
 send information about server down&lt;br /&gt;
&lt;br /&gt;
* send_message&lt;br /&gt;
 send a message to all clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Server-Administration====&lt;br /&gt;
The administration tool is meant to maintain and control the server.&lt;br /&gt;
&lt;br /&gt;
* admin_login&lt;br /&gt;
 admin_name&lt;br /&gt;
 admin_password&lt;br /&gt;
&lt;br /&gt;
* admin_cmd&lt;br /&gt;
 command to be executed? or attribute indicating which command should be executed?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Project-Administration====&lt;br /&gt;
There are two ways of administrating an emu-project:&lt;br /&gt;
&lt;br /&gt;
1. using the New EMU Project Wizard (create)&lt;br /&gt;
&lt;br /&gt;
2. using the EMU Project Settings dialog (customize)&lt;br /&gt;
&lt;br /&gt;
All messages inherit from EMU_PROJECT_MESSAGE, which has an attribute &amp;quot;project_name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''to server'''&lt;br /&gt;
&lt;br /&gt;
* PROJECT_CREATE&lt;br /&gt;
 project_password&lt;br /&gt;
&lt;br /&gt;
* PROJECT_DELETE&lt;br /&gt;
 project_password&lt;br /&gt;
&lt;br /&gt;
* PROJECT_ADD_USER&lt;br /&gt;
 project_password&lt;br /&gt;
 user_name&lt;br /&gt;
 user_password&lt;br /&gt;
&lt;br /&gt;
* PROJECT_REMOVE_USER&lt;br /&gt;
 project_password&lt;br /&gt;
 user_name&lt;br /&gt;
&lt;br /&gt;
* PROJECT_CLASS_LIST_REQUEST&lt;br /&gt;
 project_password&lt;br /&gt;
&lt;br /&gt;
* PROJECT_USER_LIST_REQUEST&lt;br /&gt;
 project_password&lt;br /&gt;
&lt;br /&gt;
* PROJECT_CLASS_UNLOCK_REQUEST&lt;br /&gt;
 project_password&lt;br /&gt;
 class_name&lt;br /&gt;
&lt;br /&gt;
'''from server'''&lt;br /&gt;
&lt;br /&gt;
* PROJECT_ERROR&lt;br /&gt;
 error_code&lt;br /&gt;
 error_msg&lt;br /&gt;
&lt;br /&gt;
* PROJECT_OK&lt;br /&gt;
 ok_code&lt;br /&gt;
 ok_msg&lt;br /&gt;
&lt;br /&gt;
* PROJECT_CLASS_LIST&lt;br /&gt;
 class_list&lt;br /&gt;
&lt;br /&gt;
* PROJECT_USER_LIST&lt;br /&gt;
 user_list&lt;/div&gt;</summary>
		<author><name>Kamala</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=File:Emu_logo_03.png&amp;diff=3054</id>
		<title>File:Emu logo 03.png</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=File:Emu_logo_03.png&amp;diff=3054"/>
				<updated>2006-05-25T19:43:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kamala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kamala</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU/SRS&amp;diff=3053</id>
		<title>EMU/SRS</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU/SRS&amp;diff=3053"/>
				<updated>2006-05-25T19:42:26Z</updated>
		
		<summary type="html">&lt;p&gt;Kamala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:emu_logo_02.png|right|frame| EMUs: Eiffel Multi Users]]&lt;br /&gt;
&lt;br /&gt;
=The Parts=&lt;br /&gt;
* EMU-Protocol&lt;br /&gt;
* EMU-Server&lt;br /&gt;
* EMU-Client&lt;br /&gt;
* ES integration&lt;br /&gt;
&lt;br /&gt;
=Developer Requirements=&lt;br /&gt;
==EMU-Protocol==&lt;br /&gt;
defines Client/Server communication with&lt;br /&gt;
* client/server states&lt;br /&gt;
* available messages&lt;br /&gt;
* client/server actions&lt;br /&gt;
&lt;br /&gt;
You can find our complete Protocol Specification [[EMU/Protocol|here]]&lt;br /&gt;
&lt;br /&gt;
==EMU-Server==&lt;br /&gt;
* stores and manages code-repository&lt;br /&gt;
* synchronizes code of clients&lt;br /&gt;
* manages Locking-System&lt;br /&gt;
* Account-System&lt;br /&gt;
* project update&lt;br /&gt;
* add/create new code (classes)&lt;br /&gt;
* change-logging&lt;br /&gt;
* optional: Media-upload&lt;br /&gt;
* optional: BackUp-System&lt;br /&gt;
* optional: Release-versions&lt;br /&gt;
* optional: Server-Admin-Tool&lt;br /&gt;
&lt;br /&gt;
===Locking-System===&lt;br /&gt;
* list of locked code&lt;br /&gt;
* check if code (class) is locked&lt;br /&gt;
* lock / unlock code (class)&lt;br /&gt;
&lt;br /&gt;
===Code-Synchronization===&lt;br /&gt;
* broadcast code-changes&lt;br /&gt;
* bring user code up to date&lt;br /&gt;
&lt;br /&gt;
===Account-System===&lt;br /&gt;
The server uses an account-system to organize its projects and users.&lt;br /&gt;
Every project has its own users assigned.&lt;br /&gt;
&lt;br /&gt;
====Project-Accounts====&lt;br /&gt;
* project name&lt;br /&gt;
* project-admin(s)&lt;br /&gt;
* user lists&lt;br /&gt;
* project status&lt;br /&gt;
* editable / creatable with a project-admin-tool&lt;br /&gt;
&lt;br /&gt;
====User-Accounts====&lt;br /&gt;
* usernames&lt;br /&gt;
* used for logins&lt;br /&gt;
* assign locked code &amp;amp; changes to users&lt;br /&gt;
* online status&lt;br /&gt;
&lt;br /&gt;
===Change-Log===&lt;br /&gt;
The Log helps the users to know what has changed during their last login.&lt;br /&gt;
It is also used as a look-up table for synchronisation with the clients.&lt;br /&gt;
Every lock/unlock action is logged with following data:&lt;br /&gt;
* user name&lt;br /&gt;
* date and time&lt;br /&gt;
* type of action&lt;br /&gt;
* code element (class name)&lt;br /&gt;
Additionally, it provides the possibility for the user to add comments (e.g what he changed, what doesn't work yet...).&lt;br /&gt;
&lt;br /&gt;
==EMU-Client==&lt;br /&gt;
* interface for IDE and server&lt;br /&gt;
* provides features to login and communicate with server on an abstract base&lt;br /&gt;
* upload/download code elements to/from server&lt;br /&gt;
* notify IDE of server-messages (code-updates)&lt;br /&gt;
* modular / independent of IDE-integration&lt;br /&gt;
* optional: upload media files&lt;br /&gt;
&lt;br /&gt;
===IDE-Notifications===&lt;br /&gt;
The client needs to notify the IDE of the new changes.&lt;br /&gt;
&lt;br /&gt;
==ES integration==&lt;br /&gt;
* minimal change to existing ES-classes and features.&lt;br /&gt;
* modular integration: activatable and removable / hideable&lt;br /&gt;
* only a few GUI changes&lt;br /&gt;
&lt;br /&gt;
===ES-GUI Enhancement===&lt;br /&gt;
&lt;br /&gt;
===Internal Dialogs===&lt;br /&gt;
&lt;br /&gt;
===External Wizards===&lt;br /&gt;
====New EMU Project Wizard====&lt;br /&gt;
The following states need to be reflected by the wizard:&lt;br /&gt;
* emu-server hostname and port&lt;br /&gt;
* project-name and project-password&lt;br /&gt;
* add ES-libraries used&lt;br /&gt;
* add users and user-passwords&lt;br /&gt;
&lt;br /&gt;
=User Requirements=&lt;br /&gt;
* easy to use&lt;br /&gt;
* target is a small project group of up to 20 developers.&lt;br /&gt;
* code synchronisation process mostly hidden from user&lt;br /&gt;
* minimal extra work (less total work)&lt;br /&gt;
* better efficiency&lt;/div&gt;</summary>
		<author><name>Kamala</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=File:Emu_logo_02.png&amp;diff=3052</id>
		<title>File:Emu logo 02.png</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=File:Emu_logo_02.png&amp;diff=3052"/>
				<updated>2006-05-25T19:42:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kamala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kamala</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=File:Emu_logo_01.png&amp;diff=3051</id>
		<title>File:Emu logo 01.png</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=File:Emu_logo_01.png&amp;diff=3051"/>
				<updated>2006-05-25T18:26:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kamala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kamala</name></author>	</entry>

	</feed>