blueprint - an enterprise architecture outcome
There are many outcomes to enterprise architecture work, but one of the important and most communicative one is a blueprint of your enterprise to-be architecture. People like to use city planning as an allegory to enterprise architecture. And similar to the role of city blueprints, which serves as a reference to building architects and designers, enterprise architecture blueprints are crucial for the success of enterprise architecture initiative.
In this post I would like to share with you a real-life example of enterprise architecture blueprint developed for one of my customers using system architect as a tool. The following blue print shows all the building blocks components (Information, Business, Applications and technology) and the relations between them as well as the defined interfaces between the building blocks and the interfaces qualities. We are using this blueprint for two main purposes:
- It serves as a reference to application architects and designers to understand what they need to follow and what are their boundaries (we’re also using principles for this purpose, but I'll address them in dedicate post).
- As part of the governance process we are using the blueprint in design review of applications to validate that they are compliance with the blueprint.
The blueprint is build from visual representation of all the building blocks and the relations between them. Following by textual explanation of all the building blocks, relations and interfaces that depicted visually.
The following blue print shows how internal applications need to be developed in order to support enterprise mash-up of different information types both for internal and external customers. It contain the main building block that each application expected to build and the allowed relationships between those building blocks. For example note that each application should separate it business rules, business tasks and business events and business conditions (to better support business agility). The application information is separated from actual data as business objects that are defined by the business and serve as the only data types that can flow between applications. The common layer is a set of common infrastructures that can be used by any application.
Following the visual representation of the blue print we provide a details explanation of all of the building blocks an the relations between them. It usually looks like that:
Last but not least is the services that we expect to be implemented by building blocks and interfaces implementers. Those services could be looked like the following example:
Following by textual descroption:
|
|
Building blocks interfaces |
|
|
Portlet |
|
|
IPortletComm: · Show(Entity) - get data and display it called by portal to initiate portlet on the first time · Refresh(Entity[]) - Refresh data on screen by other portlets / portal · GetAvailableEntities(Entity[]) - what are the entities that i can support as para,eters for call my refresh function.
|
|
|
IPortletBehavior · Minimize · Maximize · Move · Hide · Close
|
|
|
Outbound |
|
|
IOutBoundPA ExecuteExtService(NameOfService, Params) Results |
|
|
Task |
|
|
IBusinessTask · GetTaskStartTime · GetTaskEndTime
|
|
|
Business Rules Management |
|
|
IBusinessRule · ExecuteRule(Name, Params) Results
|
|
|
Report Manager |
|
|
IReport · convertFormat(Full_filename, DestFormat) - convert the report data into requested format (Excel, CSV, XML, Entity) and store in file specified by filename · generateReport(ReportName) - generate pre-defined report based on reportName, return status and store internally as a DOM object · GetReportList(GroupParam) - Return reports list · ScheduleReport (TimeParam, ReportName) - schedule the report by given params · GetSavedReport (ReportName, Date) - as part of producing reports each and every report should be saved to CSV and signed PDF. this service should return those two files by report name and dates.
|
|
|
Information Workflow IInformationProcessor · ExecuteAction(ActionName, Params) - execute one of the information workflow that ewsponsible for · calling several (or one ) business objects in order to do some action or return data back to the calling processStep or Rule engine.
|
|
|
Business object |
|
|
IBusinessObj · Query(Entity, criteria ) - to return the list of ID based on the criteria · Retrieve(Entity_ID) - to return entity based on the ID · RetrieveByParam(Entity_ID, AttList) - Return list of attributes of given entity by AttList · Create(Values[]) - Forward to ORM · Create(Name) - Forward to ORM · Update(AttList, Values[]) - Forward to ORM · Delete () - Forward to ORM
|
|
|
Identity Management |
|
|
IIdentifyMgr · requireSecondLevel(Process_ID) - check if the process requires 2 factor authenication · isAuthenticatedFirstLevel (UserCredential ) - if the user pass level one security · isAuthenicatedSecondLevel(UserCredential) - if the user pass level second security (RSA, certificate etc) · isPermissible(Process_ID, UserCredential) - check if user has right role to execute the process · getRoles(UserCredential) - get the list of permissible roles user has · getUserCredential(User_ID) - get the User Credential entity based on user id
|
|
|
Communication Manager |
|
|
ICommunicator · performFTP(Filepathsource, filepathdestination, filename) · performSecureFTP(Filepathsource, filepathdestination, filename) - perform secure FTP to transport a file from source to destination · performSMS(Phone_number, text) - SMS text to the phone number · performEmail(email_address[] , template_id, file[]) - email out to all addresses with the template and attachment file · perofrmSecureEmail(email_address[] , template_id, file[]) - same as above except secureEmail · ListentoFile(filename, filepath) - listen for the incoming of file at the path and creates an event · ListentoSMS(phone_number[], text) - wait for a sms from the phone_number list) and creates an event · ListentoEmail(email_addressp[) - wait for emails from the list email address and creates an event |
This blue print, as I already mentioned above, is also served as a guideline for applications architects and designers and as a tool in our enterprise architecture governance process. We accept application architects to connect each building block in their solution to one of the building blocks in the blueprint as well as doing the same for architecture principles. This enable us to find quickly who much the proposed solution is compliance with our architecture.