reflections on architecture
DESCRIPTION
reflections on architectureTRANSCRIPT
������������� �������� �
������������� �������� ����������� ��
��� �������� �������������� � ��
������ ��� ������������ ������ ���
A candid discussion on developing software the right way
����������� ������������������������
����������������
������������� �������� �
����������� �����
������ ��������������� �����������
� ��� � ���� ���������� ���� �� ��� ��
� !�"�� ���#�� �������������$%
� &��������� ������� ���'����������$(
� �����)�'��� ������ �������� ��*�+,-
� ��, �������������������� � ���� �������� ��*, ����������-
� ��� � ����� �����. ������� �������� ��*�� �$� -
� , �����������������������(� �����/������%�, ���
� #����/������$�������%
� )� ��0����#��������������0� ��� �������
������������� �������� �
����������� �����
�'���������� ��� �
� �� ��� ������������ ������ ���1�#�2�*3"��(��#�-�
� 4556��������0� ��74428�9�����
� :51555������%���)� ��0���
� +�%�9����� 9���1��������������0� ��� ���
� #�������, �����1�&����#� �������� ����9������
� /�������������� ����� ���;���, ��� �%�<�/�����%���� �����������=2�2
� &� $���=2�2� ���������� ����>� ��'�������������>� ��'���=��� ���&������ ���
������������� �������� �
��������������������
���� %������� ��$�����������'� �����
? &�$��$�(����'�%�;@�/.9.&�;@�/AA�;@�����? , ����(�)��� �����;@�#�� ������;@��$���? � �������� �(�, ����� ���;@�.'B����. ������;@��� �����. �����? �������(�, �� ���� %�;@�.������ ��? /������(�����������;@�/����C�� �� �;@�)�'�;@�� ��
������������� �������� �
��������������������
�������� ���������0� �
����'���0�%����� �������������� ��������������D;����+�%
; ��� ���� ��; ����$ �0������������E��%; ����� ����%������������%;������$�%���; ��������������������������������� ���; ������������������0� ������������� ��������������������%
������������� �������� �
��������������������
��������0� ��F����������,� ���E
9�����$�G�����%����0� ������������ �������������%��� �? ������� ���$����0� ����'������������������E��%
� ������������E������? 3������ %���$�0��0������'��������'��'����? 3������ %���$�0��0������'�����������'��'����
F�� ���2�, �������������$? /������ ���������%1�� ��������%H��'��������� �������0���$�? /��������%�������$����'�������� �������B��$���
������������� �������� �
��������������������
�������� ���������0� ���$��� �$
; /���E����; .������ ��; .���� ��$
; ��������; ��������; ,���� �. �����; ������F ���; F���� �����; �� �����. �����
; ������; /����'� �������������������� ����; ���������; 9��$; )���
������������� �������� �
��������������������
����0� ���$��� �$���45 I
; ������������ ������$ �0����'������$����������#�� �����0�%��E����; ������������ ��E�� ����������� ���� �������������'� �������������������� ����; &�0%� �� ���0�������%��� ������������������������; �������0� ����������������$������� ������ �����; 3�������/� �0����'��� ���� �$��
������������� �������� �
����������� ��� ������� ���������������
>��� �� ������� �������� ��*� ��������� �-
; ��$�����������$%���%�� ������������������������������ �������� �; 3��0� �; F���'��; ������0� �; �4��1����
; � �������� ������ ������B������������� �����; �������$%��������� �������� �1�'����� �������� �������� ���������� �'��'�������������������������$���������� ����2
������������� �������� �
����������� ��� ������� ���������������
� �������� � ��J��'������ ��
9���� ����E������� ����������$�'���� ���������������'��������������H�1������%1���� ������� ���������� ���%���
; #�� ������� �$������� ����$������������������� ����������; �����E��������; ������� ������ �����
������������� �������� �
����������� ��� ������� ���������������
� �������� � ���������
; ��� �������� ��������$K���%���������� ������; �E�� ���������� K�����'���� ��������� ��$ �0����'� ; ��� ������%���������'��%������0���$���'�������0� ��� �������� �; ������������'��%������0���$�������;��� ������ %
������������� �������� �
����������� ��� ������� ���������������
� �������� � ����� �
; ����'���� ��������0���� ���������������������� ���������������� ������; ���%���� ��������0����0� �; ���%����'������$��������0�%; ����� �������� �������� �����'�����'����������0���;�������� �������������������� ������
������������� �������� �
����������� ��� ������� ���������������
� �������� � �������'�����$�����$%
; 3���G����������0������%��; �����%��� �������$� ���$�*��0� ����-; ��G�� ���������������$%���� ; &�0� ���������������������������
������������� �������� �
���������� ������������
� �������0� ��<�.������ ��
Richard Stallman
Eric S. Raymond
Photos courtesy of Doc Searls
������������� �������� �
����������������
#��, �������
� �� $�������%
� . '��H
� >� �H�
� �� ����&%��
� ��� �������
� 9���$
������������� �������� �
����������������
� �������0� �
L� ������0� �M ��������� ������'� �%1����� ���2�"�����������������L� ��M ����L� ��������M �������L� ��� ���M
2 � ��������� ������� �$ ��1��� ��%��� ���
42 � ������������%���0������ �$ ���0� �����������������%�� ����
:2 � ��������� ���� �'������������%�����������%�� ���$�'�
62 � ������������ ��������� �$ ������ ������%�� ���� ����������������'����������0������������%�'�����2
������������� �������� �
������������������� �����������
���������
� .�� ���$��%����*�� �%�!5-
� ������������� �� �*�����I5-
� ��� ���9��������*�� �%�4555-
� #��� %�>� �����������������*455NO-
������������� �������� �
��������������������!���� ��� ��"������#�����
�����$�����������
� ��#������������������ ���� �� ������������
� $ ������ ��"��� ��� ����� ������������������
� %��� &���� ���� ���� ��� ���� �����$�������
� '��� ����� ������ ��� ������0�$������
)��� ������� �$�'���� �0�%������������$����0� ��'%����$������������$����� ������2��� ��$������0� ��0��
������������������(
������������� �������� �
������������������� �����������
����������$��
� 3�;������ ���$ �����
� &����$������
� /���� �
� .���� ��$
� ��� ��������#9�
������������� �������� �
���������$� �
9 ��������
������������� �������� �
��������������������
�� �����. ������� �������� �Business Process Member Requests an Rx
Refill (Call Center IVR or Online)
Request Denied
Rx Dept Processes RefillPC Physician
Approves or Denies Request (WS or Email)
Member Informed that Refill is Ready
Validate Member is Authorized to Make Request
Determine Member’s Coverages and Primary Care Physician
Send Request Notification to pharmacy
Send Request Notification to Notes
Patient Records
Services
Member Informed that Request has been Denied
Request Approved
WS Enabled
Not WS Enabled
CreditVerification
Office Scheduling
Email System
Authorization ServiceEmail Service
Outpatient ServiceMasters Service
HR
- long running- one or more persons interacting- multiple valid business process states- alternative workflows for non-normal
conditions
- short term, non-interactive- one change of business state - consumes one or more enterprise service- targeted level of service reuse- loose coupling important- may require compensating transactions
- collaborations to implement a single Web Service
- collaborating apps encapsulated via Web Services
- Performance favored over loose coupling
Components
������������� �������� �
���������(�������)��"� ��
��� ����
� 3����������������
� / �����������%� �*���������$-
� ����$������
� ��� �$�, ���
� ���� ���
������������� �������� �
���������%��������!
���/#
CollectUser Data
Get Quote
Select Policy
������������� �������� �
��������������������
�� �����. ������� �������� �
� ���.������������������������������� ����
� ��L� ����M �����������������������.�
� �� �����������������'����� ���
� �� �����, ����� ���$��� ���������
� �� ��������������(����1�9��1��E�����
� ����0���;��0���������)�'��� ����
ServiceRegistry
ServiceProvider
ServiceConsumer
Find Register
Bind,Execute
������������� �������� �
��������� �����������
�.��/�� ���� ����
� ������ ��������� �����
� �� ��������'������ ����
� &����%�/������
� #�� ��� �'��
� /��'������������ �����0� �
� &�������� ��� ��
� �������$%��$����
� #�����'���%���,��%�� ����
� /�����'��
� ����� ��#� �������
������������� �������� �
���������'���������
F� ���� ��
� L"����0�,�$�M ����0������%����'��� ����;� �����
� ����� ��H������ ��$�������*�������-�� ����������������� ����;� �����������%
������������� �������� �
����������������!
>��� �'������
� ����� �
� P�&��� %����
� P�&���$��� �
� P�&�+�%����$����
� >��� �'������
� F���������� ����
� P�&��E�� �������%
� 9���� �.�� ���0
������������� �������� �
����������������!
P�&��E�� �������%�������
QR�3�#�"������"�����L=�#M@
P�&�� ���� �'������ �������������(
S����(CC00020:2� $C��C��/;E��T������;��;�����U(
L)�����P�&�� ���� � ���$�H���� ��� ����������� �������%1��� �� ������������������������1������ ���� ��������������� ������������E�2�#����������%����E�� ��1��������� �����������������$�����������������P�&��������1������ ���� ���%1�'���������1����������������%J� ������������E�DM
������������� �������� �
���������*����&��
, �'���������
� �%�������$�����
� &����%���
� 9����, ����
������������� �������� �
���������*����&��
�%�������$����
� ����� �$
� ��� ��$
� ���� �$
� 9����$
� ���� ��$
������������� �������� �
���������*����&��
&����%���
� � ��� �����
� >� ���$
� F�� ������
� , ������$
� ������%��� ���
������������� �������� �
���������*����&��
9����, ����
� � ����������$����
� ���$��, �� ���H����
� 9�����������%������ �$
������������� �������� �
���������% �����
� �����'�����.��������� �������$
� ���������������3.����$���%���� ��$������$�������������'������'%����$���� $��H����
� �%�� ��� �����������
� ����/������D
� .'B���22F������
� ���� ��������/����'� ����
� F������� ���QQ���$ ����@@
������������� �������� �
���������% �����
�����������0�
������������� �������� �
��������������������
/������
; /�� ����$������'�����$��G�����%�0� ��$����0� ������������������ ����0���� ���������������%����������; �����0����������������0������$�� ���$ ��������� ����%1���'�$���%��������1�0���������������������������$�� �������%1�� ������'����%���� ������'����%2; ��������0� ���$��� �0�������� �����������������������%; #������� �����$������� ����'����%���������������0� �
������� �������$
������������� �������� �
����������� �&���
�������������� �� � ���
(� �
������� ��� � �!�"������